Browse Source

Clean house

dev/hugo
Brett Langdon 9 years ago
parent
commit
f0a99e9b11
No known key found for this signature in database GPG Key ID: A2ECAB73CE12147F
13 changed files with 0 additions and 394 deletions
  1. +0
    -39
      Makefile
  2. +0
    -10
      base.md
  3. +0
    -27
      config.json
  4. +0
    -27
      package.json
  5. +0
    -86
      plugins/paginator.coffee
  6. +0
    -5
      templates/404.jade
  7. +0
    -37
      templates/archive.jade
  8. +0
    -24
      templates/article.jade
  9. +0
    -25
      templates/feed.jade
  10. +0
    -23
      templates/index.jade
  11. +0
    -56
      templates/layout.jade
  12. +0
    -18
      templates/mixins/disqus.jade
  13. +0
    -17
      templates/mixins/social.jade

+ 0
- 39
Makefile View File

@ -1,39 +0,0 @@
WINTERSMITH = ./node_modules/.bin/wintersmith
ARTICLE_DIR = ./contents/writing/about
build:
@./node_modules/.bin/cleancss ./contents/css/main.css > ./contents/css/main.min.css
@$(WINTERSMITH) build
clean:
@rm -rf build
preview:
@$(WINTERSMITH) preview
add_article:
@echo "Enter Article Title: "
@read title;\
dir=`echo $$title | sed "s/ /-/g" | tr "[:upper:]" "[:lower:]"`;\
mkdir -p $(ARTICLE_DIR)/$$dir;\
cat base.md | sed "s/{title}/$$title/g" | sed s/{date}/`date "+%Y-%m-%d"`/g> $(ARTICLE_DIR)/$$dir/index.md;\
$$EDITOR $(ARTICLE_DIR)/$$dir/index.md
remove_article:
@echo "Enter Article Title: "
@read title;\
dir=`echo $$title | sed "s/ /-/g"`;\
rm -rf $(ARTICLE_DIR)/$$dir
edit_article:
@echo "Enter Article Title: "
@read title;\
dir=`echo $$title | sed "s/ /-/g"`;\
$$EDITOR $(ARTICLE_DIR)/$$dir/index.md
pull:
git pull origin master
update: pull build
.PHONY: build clean preview add_article remove_article edit_article pull update

+ 0
- 10
base.md View File

@ -1,10 +0,0 @@
---
title: {title}
author: Brett Langdon
date: {date}
template: article.jade
---
Summary
---

+ 0
- 27
config.json View File

@ -1,27 +0,0 @@
{
"locals": {
"url": "http://brett.is",
"name": "Brett.Is",
"owner": "Brett Langdon",
"description": "A geek with a blog"
},
"plugins": [
"./plugins/paginator.coffee"
],
"require": {
"moment": "moment",
"_": "underscore",
"typogr": "typogr"
},
"jade": {
"pretty": true
},
"markdown": {
"smartLists": true,
"smartypants": true,
"gfm": true
},
"paginator": {
"perPage": 3
}
}

+ 0
- 27
package.json View File

@ -1,27 +0,0 @@
{
"name": "brett.is",
"version": "0.1.0",
"description": "Personal blog of Brett Langdon",
"main": "",
"private": true,
"dependencies": {
"clean-css": "^2.2.2",
"moment": "~2.3.1",
"typogr": "~0.5.2",
"underscore": "~1.4.4",
"wintersmith": "~2.0.8"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git://github.com/brettlangdon/brett.is.git"
},
"author": "Brett Langdon <brett@blangdon.com> (http://brett.is)",
"license": "MIT",
"bugs": {
"url": "https://github.com/brettlangdon/brett.is/issues"
}
}

+ 0
- 86
plugins/paginator.coffee View File

@ -1,86 +0,0 @@
module.exports = (env, callback) ->
### Paginator plugin. Defaults can be overridden in config.json
e.g. "paginator": {"perPage": 10} ###
defaults =
template: 'index.jade' # template that renders pages
first: 'index.html' # filename/url for first page
filename: 'page/%d/index.html' # filename for rest of pages
perPage: 2 # number of articles per page
# assign defaults any option not set in the config file
options = env.config.paginator or {}
for key, value of defaults
options[key] ?= defaults[key]
getArticles = (contents) ->
# helper that returns a list of articles found in *contents*
# note that each article is assumed to have its own directory in the articles directory
articles = contents.writing.about._.directories.map (item) -> item.index
articles.sort (a, b) -> b.date - a.date
return articles
class PaginatorPage extends env.plugins.Page
### A page has a number and a list of articles ###
constructor: (@pageNum, @articles) ->
getFilename: ->
if @pageNum is 1
options.first
else
options.filename.replace '%d', @pageNum
getView: -> (env, locals, contents, templates, callback) ->
# simple view to pass articles and pagenum to the paginator template
# note that this function returns a funciton
# get the pagination template
template = templates[options.template]
if not template?
return callback new Error "unknown paginator template '#{ options.template }'"
# setup the template context
ctx = {@articles, @prevPage, @nextPage}
# extend the template context with the enviroment locals
env.utils.extend ctx, locals
# finally render the template
template.render ctx, callback
# register a generator, 'paginator' here is the content group generated content will belong to
# i.e. contents._.paginator
env.registerGenerator 'paginator', (contents, callback) ->
# find all articles
articles = getArticles contents
# populate pages
numPages = Math.ceil articles.length / options.perPage
pages = []
for i in [0...numPages]
pageArticles = articles.slice i * options.perPage, (i + 1) * options.perPage
pages.push new PaginatorPage i + 1, pageArticles
# add references to prev/next to each page
for page, i in pages
page.prevPage = pages[i - 1]
page.nextPage = pages[i + 1]
# create the object that will be merged with the content tree (contents)
# do _not_ modify the tree directly inside a generator, consider it read-only
rv = {pages:{}}
for page in pages
rv.pages["#{ page.pageNum }.page"] = page # file extension is arbitrary
rv['index.page'] = pages[0] # alias for first page
# callback with the generated contents
callback null, rv
# add the article helper to the environment so we can use it later
env.helpers.getArticles = getArticles
# tell the plugin manager we are done
callback()

+ 0
- 5
templates/404.jade View File

@ -1,5 +0,0 @@
extends layout
block content
h3 Could not find the page you were logging for.

+ 0
- 37
templates/archive.jade View File

@ -1,37 +0,0 @@
extends layout
//- this logic should be moved to a view at some point
block content
- var lineHeight = 2.2;
- var archives = _.chain(env.helpers.getArticles(contents)).groupBy(function(item) {
- return item.date.getFullYear()
- }).value()
- for (var archive in archives) {
- archives[archive] = _.groupBy(archives[archive], function(item){return item.date.getMonth();})
- }
- var month_names = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
section.archive
h2 Archive
ul
- var yearsK = _.chain(archives).keys().reverse().value()
- for(var year in yearsK)
- months = archives[yearsK[year]]
- var yearHeight = lineHeight * _.reduce(months, function(memo,month) { return memo + month.length; }, 0);
li
span.year-label(style='line-height:' + yearHeight+'em')=yearsK[year]
ul(style='margin-left:4em')
- var monthsK = _.chain(months).keys().reverse().value()
- for(month in monthsK){
- var monthHeight = lineHeight * months[monthsK[month]].length
li
span.month-label(style='line-height:'+monthHeight+'em')=month_names[monthsK[month]]
ul(style='margin-left:7em')
each item in months[monthsK[month]]
li(style='height:'+ lineHeight + 'em;line-height:'+ lineHeight + 'em;')
a(href=item.url)=item.title
- }
block prepend footer
div.nav
a(href="/") Home »

+ 0
- 24
templates/article.jade View File

@ -1,24 +0,0 @@
include mixins/disqus
extends layout
block append vars
- bodyclass = 'article-detail'
block prepend title
| #{ page.title + " - "}
block append header
h1= page.title
p.author
| Written by #{page.metadata.author}
block content
article.article
section.content!= typogr(page.html).typogrify()
section.comments
+disqus
block prepend footer
div.nav
a(href=contents.index.url) « Home

+ 0
- 25
templates/feed.jade View File

@ -1,25 +0,0 @@
doctype xml
rss(version='2.0',
xmlns:content='http://purl.org/rss/1.0/modules/content/',
xmlns:wfw='http://wellformedweb.org/CommentAPI/',
xmlns:dc='http://purl.org/dc/elements/1.1/'
xmlns:atom='http://www.w3.org/2005/Atom')
channel
- var articles = env.helpers.getArticles(contents);
title= locals.name
atom:link(href=locals.url + '/feed.xml', rel='self', type='application/rss+xml')
link= locals.url
description= locals.description
pubDate= articles[0].rfc822date
generator Wintersmith - https://github.com/jnordberg/wintersmith
language en
for article in articles
- var permalink = locals.url + article.url
item
title= article.title
link= permalink
pubDate= article.rfc822date
guid(isPermaLink='true')= permalink
author= article.author
//- passing locals.url resolves all relative urls to absolute
description= article.getHtml(locals.url)

+ 0
- 23
templates/index.jade View File

@ -1,23 +0,0 @@
extends layout
block content
each article in articles
article.article.intro
header
p.date
span= moment.utc(article.date).format('DD. MMMM YYYY')
h2
a(href=article.url)= article.title
section.content !{typogr(article.intro).typogrify()}
if article.hasMore
p.more
a(href=article.url) more
block prepend footer
div.nav
if prevPage
a(href=prevPage.url) « Newer
else
a(href='/archive.html') « Archives
if nextPage
a(href=nextPage.url) Older »

+ 0
- 56
templates/layout.jade View File

@ -1,56 +0,0 @@
doctype html
block vars
- var bodyclass = null;
html(lang='en')
head
block head
meta(charset='utf-8')
meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
meta(name='viewport', content='width=device-width')
title
block title
= locals.name
link(href='/favicon.ico', rel='shortcut icon', type='image/x-icon')
link(rel='alternate', href=locals.url+'/feed.xml', type='application/rss+xml', title=locals.description)
link(rel='stylesheet', href='//fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic|Anonymous+Pro:400,700,400italic,700italic|Merriweather:400,700,300')
link(rel='stylesheet', href='/css/main.min.css')
body(class=bodyclass)
header.header
div.content-wrap
block header
div.logo
h1
a(href=locals.url)
img(src="/img/avatar.png")
= locals.name
p.description= locals.description
div#content
div.content-wrap
block content
h2 Welcome to brett.is!
div.ad
script(async, src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js")
ins.adsbygoogle(style="display:block", data-ad-client="ca-pub-3200991035275362"
data-ad-slot="4431182737", data-ad-format="auto")
footer
div.content-wrap
block footer
section.about
!=contents['about.md'].html
section.social-links
include mixins/social
+social_links
section.copy
p &copy; #{ new Date().getFullYear() } #{ locals.owner } &mdash; powered by&nbsp;
a(href='https://github.com/jnordberg/wintersmith') Wintersmith
//- please leave the "powered by" if you use the design
script(type='text/javascript').
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-34513423-1', 'brett.is');
ga('send', 'pageview');
(adsbygoogle = window.adsbygoogle || []).push({});

+ 0
- 18
templates/mixins/disqus.jade View File

@ -1,18 +0,0 @@
mixin disqus
#disqus_thread
script(type="text/javascript").
var disqus_shortname = 'brettlangdon';
var disqus_identifier = 'http://brett.is#{page.url}';
var disqus_title = '#{page.title.replace("\'", "")}';
var disqus_url = "http://brett.is#{page.url}";
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
noscript
| Please enable JavaScript to view the
a(href="http://disqus.com/?ref_noscript")=" comments powered by Disqus."
a(href="http://disqus.com").dsq-brlink
| comments powered by
span.logo-disqus=" Disqus"

+ 0
- 17
templates/mixins/social.jade View File

@ -1,17 +0,0 @@
mixin link_img(type, link, image)
a(href=link, target="_blank")
img(src=image, title="Follow Me on: " + type, alt="Follow Me on: " + type)
mixin social_links
ul
li
+link_img("Twitter", "//www.twitter.com/#!/brett_langdon", "/img/twitter.png")
li
+link_img("Linkedin", "//www.linkedin.com/in/brettlangdon", "/img/linkedin.png")
li
+link_img("GitHub", "//github.com/brettlangdon", "/img/github.svg")
li
+link_img("RSS", "//brett.is/feed.xml", "/img/rss.png")
li
+link_img("E-Mail", "mailto:brett@blangdon.com", "/img/email.png")
span(style="clear:both")

Loading…
Cancel
Save