diff --git a/app/blog.rb b/app/blog.rb index f74e9ea..e939702 100644 --- a/app/blog.rb +++ b/app/blog.rb @@ -38,6 +38,9 @@ class Blog < Sinatra::Base @description = @post.description @keywords = @post.keywords @title = @post.title + if @post.redirect + redirect @post.redirect, 301 + end haml :post end diff --git a/app/post.rb b/app/post.rb index 484259a..6504c50 100644 --- a/app/post.rb +++ b/app/post.rb @@ -5,8 +5,8 @@ module Blossome class Post - attr_accessor :title, :description, :keywords, :date, :markdown, :html_content, :time, :url + attr_accessor :title, :description, :keywords, :date, :markdown, :html_content, :time, :url, :redirect def initialize(name) yaml, @markdown = Post.split(name) @@ -16,6 +16,7 @@ def initialize(name) @description = metadata["description"] @keywords = metadata["keywords"] @date = metadata["date"] + @redirect = metadata["redirect"] @markdown = MarkdownHelpers.render(@markdown) #Go through mustache first @html_content = RDiscount.new(@markdown).to_html @time = date_to_time(@date) diff --git a/posts/redirect-test.md b/posts/redirect-test.md new file mode 100644 index 0000000..5c59eef --- /dev/null +++ b/posts/redirect-test.md @@ -0,0 +1,134 @@ +----------------------- + +title: "Test 1" +description: "Test 1 description" +keywords: "test1, keywords" +date: September 14, 2012 +redirect: "https://github.com/danpal/blossome" + +----------------------- + +Paragraphs are separated by a blank line. + +2nd paragraph. *Italic*, **bold**, `monospace`. Itemized lists +look like: + + * this one + * that one + * the other one + +Note that --- not considering the asterisk --- the actual text +content starts at 4-columns in. + +> Block quotes are +> written like so. +> +> They can span multiple paragraphs, +> if you like. + +Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex. "it's all in +chapters 12--14"). Three dots ... will be converted to an ellipsis. + + +# An h1 header +##An h2 header +###An h3 header +####An h4 header +#####An h5 header +###### An h6 header +Here's a numbered list: + + 1. first item + 2. second item + 3. third item + +Note again how the actual text starts at 4 columns in (4 characters +from the left side). Here's a code sample: + + # Let me re-iterate ... + for i in 1 .. 10 { do-something(i) } + +As you probably guessed, indented 4 spaces. By the way, instead of +indenting the block, you can use delimited blocks, if you like: + +~~~ +define foobar() { + print "Welcome to flavor country!"; +} +~~~ + +(which makes copying & pasting easier). You can optionally mark the +delimited block for Pandoc to syntax highlight it: + +~~~python +import time +# Quick, count to ten! +for i in range(10): + # (but not *too* quick) + time.sleep(0.5) + print i +~~~ + + + +### An h3 header ### + +Now a nested list: + + 1. First, get these ingredients: + + * carrots + * celery + * lentils + + 2. Boil some water. + + 3. Dump everything in the pot and follow + this algorithm: + + find wooden spoon + uncover pot + stir + cover pot + balance wooden spoon precariously on pot handle + wait 10 minutes + goto first step (or shut off burner when done) + + Do not bump wooden spoon or it will fall. + +Notice again how text always lines up on 4-space indents (including +that last line which continues item 3 above). Here's a link to [a +website](http://foo.bar). Here's a link to a [local +doc](local-doc.html). Here's a footnote [^1]. + +[^1]: Footnote text goes here. + +Tables can look like this: + +size material color +---- ------------ ------------ +9 leather brown +10 hemp canvas natural +11 glass transparent + +Table: Shoes, their sizes, and what they're made of + +(The above is the caption for the table.) Here's a definition list: + +apples + : Good for making applesauce. +oranges + : Citrus! +tomatoes + : There's no "e" in tomatoe. + +Again, text is indented 4 spaces. (Alternately, put blank lines in +between each of the above definition list lines to spread things +out more.) + +Inline math equations go in like so: $\omega = d\phi / dt$. Display +math should get its own line and be put in in double-dollarsigns: + +$$I = \int \rho R^{2} dV$$ + +Done.