jekyll-reloaded 0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. data/Gemfile +2 -0
  2. data/History.txt +321 -0
  3. data/LICENSE +21 -0
  4. data/README.textile +41 -0
  5. data/Rakefile +161 -0
  6. data/bin/jekyll +289 -0
  7. data/cucumber.yml +1 -0
  8. data/features/create_sites.feature +112 -0
  9. data/features/embed_filters.feature +60 -0
  10. data/features/markdown.feature +30 -0
  11. data/features/pagination.feature +27 -0
  12. data/features/permalinks.feature +65 -0
  13. data/features/post_data.feature +153 -0
  14. data/features/site_configuration.feature +145 -0
  15. data/features/site_data.feature +82 -0
  16. data/features/step_definitions/jekyll_steps.rb +145 -0
  17. data/features/support/env.rb +19 -0
  18. data/jekyll.gemspec +146 -0
  19. data/lib/guard/jekyll.rb +57 -0
  20. data/lib/jekyll/converter.rb +50 -0
  21. data/lib/jekyll/converters/identity.rb +22 -0
  22. data/lib/jekyll/converters/markdown.rb +125 -0
  23. data/lib/jekyll/converters/textile.rb +50 -0
  24. data/lib/jekyll/convertible.rb +116 -0
  25. data/lib/jekyll/core_ext.rb +52 -0
  26. data/lib/jekyll/errors.rb +6 -0
  27. data/lib/jekyll/filters.rb +118 -0
  28. data/lib/jekyll/generator.rb +7 -0
  29. data/lib/jekyll/generators/pagination.rb +113 -0
  30. data/lib/jekyll/layout.rb +51 -0
  31. data/lib/jekyll/live_site.rb +216 -0
  32. data/lib/jekyll/migrators/csv.rb +26 -0
  33. data/lib/jekyll/migrators/drupal.rb +103 -0
  34. data/lib/jekyll/migrators/enki.rb +49 -0
  35. data/lib/jekyll/migrators/joomla.rb +53 -0
  36. data/lib/jekyll/migrators/marley.rb +52 -0
  37. data/lib/jekyll/migrators/mephisto.rb +84 -0
  38. data/lib/jekyll/migrators/mt.rb +86 -0
  39. data/lib/jekyll/migrators/posterous.rb +67 -0
  40. data/lib/jekyll/migrators/rss.rb +47 -0
  41. data/lib/jekyll/migrators/textpattern.rb +58 -0
  42. data/lib/jekyll/migrators/tumblr.rb +195 -0
  43. data/lib/jekyll/migrators/typo.rb +51 -0
  44. data/lib/jekyll/migrators/wordpress.rb +294 -0
  45. data/lib/jekyll/migrators/wordpressdotcom.rb +70 -0
  46. data/lib/jekyll/page.rb +160 -0
  47. data/lib/jekyll/plugin.rb +77 -0
  48. data/lib/jekyll/post.rb +262 -0
  49. data/lib/jekyll/site.rb +339 -0
  50. data/lib/jekyll/static_file.rb +77 -0
  51. data/lib/jekyll/tags/highlight.rb +118 -0
  52. data/lib/jekyll/tags/include.rb +37 -0
  53. data/lib/jekyll/tags/post_url.rb +38 -0
  54. data/lib/jekyll.rb +134 -0
  55. data/test/helper.rb +34 -0
  56. data/test/source/.htaccess +8 -0
  57. data/test/source/_includes/sig.markdown +3 -0
  58. data/test/source/_layouts/default.html +27 -0
  59. data/test/source/_layouts/simple.html +1 -0
  60. data/test/source/_posts/2008-02-02-not-published.textile +8 -0
  61. data/test/source/_posts/2008-02-02-published.textile +8 -0
  62. data/test/source/_posts/2008-10-18-foo-bar.textile +8 -0
  63. data/test/source/_posts/2008-11-21-complex.textile +8 -0
  64. data/test/source/_posts/2008-12-03-permalinked-post.textile +9 -0
  65. data/test/source/_posts/2008-12-13-include.markdown +8 -0
  66. data/test/source/_posts/2009-01-27-array-categories.textile +10 -0
  67. data/test/source/_posts/2009-01-27-categories.textile +7 -0
  68. data/test/source/_posts/2009-01-27-category.textile +7 -0
  69. data/test/source/_posts/2009-01-27-empty-categories.textile +7 -0
  70. data/test/source/_posts/2009-01-27-empty-category.textile +7 -0
  71. data/test/source/_posts/2009-03-12-hash-#1.markdown +6 -0
  72. data/test/source/_posts/2009-05-18-empty-tag.textile +6 -0
  73. data/test/source/_posts/2009-05-18-empty-tags.textile +6 -0
  74. data/test/source/_posts/2009-05-18-tag.textile +6 -0
  75. data/test/source/_posts/2009-05-18-tags.textile +9 -0
  76. data/test/source/_posts/2009-06-22-empty-yaml.textile +3 -0
  77. data/test/source/_posts/2009-06-22-no-yaml.textile +1 -0
  78. data/test/source/_posts/2010-01-08-triple-dash.markdown +5 -0
  79. data/test/source/_posts/2010-01-09-date-override.textile +7 -0
  80. data/test/source/_posts/2010-01-09-time-override.textile +7 -0
  81. data/test/source/_posts/2010-01-09-timezone-override.textile +7 -0
  82. data/test/source/_posts/2010-01-16-override-data.textile +4 -0
  83. data/test/source/_posts/2011-04-12-md-extension.md +7 -0
  84. data/test/source/_posts/2011-04-12-text-extension.text +0 -0
  85. data/test/source/about.html +6 -0
  86. data/test/source/category/_posts/2008-9-23-categories.textile +6 -0
  87. data/test/source/contacts.html +5 -0
  88. data/test/source/css/screen.css +76 -0
  89. data/test/source/deal.with.dots.html +7 -0
  90. data/test/source/foo/_posts/bar/2008-12-12-topical-post.textile +8 -0
  91. data/test/source/index.html +22 -0
  92. data/test/source/sitemap.xml +32 -0
  93. data/test/source/win/_posts/2009-05-24-yaml-linebreak.markdown +7 -0
  94. data/test/source/z_category/_posts/2008-9-23-categories.textile +6 -0
  95. data/test/suite.rb +11 -0
  96. data/test/test_configuration.rb +29 -0
  97. data/test/test_core_ext.rb +66 -0
  98. data/test/test_filters.rb +62 -0
  99. data/test/test_generated_site.rb +72 -0
  100. data/test/test_kramdown.rb +23 -0
  101. data/test/test_page.rb +117 -0
  102. data/test/test_pager.rb +113 -0
  103. data/test/test_post.rb +450 -0
  104. data/test/test_rdiscount.rb +18 -0
  105. data/test/test_redcarpet.rb +21 -0
  106. data/test/test_redcloth.rb +86 -0
  107. data/test/test_site.rb +220 -0
  108. data/test/test_tags.rb +201 -0
  109. metadata +332 -0
@@ -0,0 +1,118 @@
1
+ module Jekyll
2
+
3
+ # Highlights code using Pygments.rb
4
+ #
5
+ # The syntax for the tag is "highlight <lang> [<opt>[=<value>], ...]".
6
+ #
7
+ # See `pygmentize -L lexers` for the list of available languages.
8
+ #
9
+ # Options:
10
+ #
11
+ # cssclass - CSS class for the wrapping DIV tag (default: 'highlight')
12
+ # classprefix - string to prepend to all generated CSS class names
13
+ # (default: '')
14
+ # hl_lines - list of lines to be highlighted (default: none)
15
+ # linenos - show line numbers in "inline" style; when set to "table"
16
+ # render line numbers in a separate table column
17
+ # (default: false)
18
+ # linenostart - initial line number (default: 1)
19
+ # lineanchors - a string prefix that triggers wrapping each output line
20
+ # in an anchor tag with name in "<prefix>-<line>" format
21
+ # (default: none)
22
+ # anchorlinenos - in combination with `linenos=table` and `lineanchors`, turn
23
+ # line numbers into links to individual lines (default: false)
24
+ #
25
+ # Examples
26
+ #
27
+ # {% highlight ruby %}
28
+ # ... ruby code ...
29
+ # {% endhighlight %}
30
+ #
31
+ # # Show line numbers:
32
+ # {% highlight js linenos linenostart=5 %}
33
+ #
34
+ # # Highlight lines 1,3,5:
35
+ # {% highlight css hl_lines=1_3_5 %}
36
+ #
37
+ class HighlightBlock < Liquid::Block
38
+ include Liquid::StandardFilters
39
+
40
+ # The regular expression syntax checker. Start with the language specifier.
41
+ # Follow that by zero or more space separated options that take one of two
42
+ # forms:
43
+ #
44
+ # 1. name
45
+ # 2. name=value
46
+ SYNTAX = /^([a-zA-Z0-9.+#-]+)((\s+\w+(=[\w-]+)?)*)$/
47
+
48
+ def initialize(tag_name, markup, tokens)
49
+ super
50
+ @options = { :encoding => 'utf-8' }
51
+ if markup.strip =~ SYNTAX
52
+ @lang = $1
53
+ $2.to_s.split.inject(@options) do |opts, opt|
54
+ process_option(*opt.split('=', 2)) do |key, value|
55
+ opts[key] = value
56
+ end
57
+ opts
58
+ end
59
+ else
60
+ raise SyntaxError.new("Syntax Error in 'highlight' - Valid syntax: highlight <lang> [linenos]")
61
+ end
62
+ end
63
+
64
+ # Validates option for Pygments.
65
+ #
66
+ # Yields key, value if the option has value.
67
+ #
68
+ # Raises ArgumentError for unsupported options.
69
+ def process_option(key, value = nil)
70
+ case key
71
+ when 'linenos' then value ||= 'inline'
72
+ when 'hl_lines' then value = value.to_s.split(/\D/)
73
+ when 'anchorlinenos' then value ||= true
74
+ when 'lineanchors', 'linenostart', 'cssclass', 'classprefix'
75
+ # these have a string value
76
+ else
77
+ raise ArgumentError, "unsupported Pygments option: #{key}"
78
+ end
79
+
80
+ yield key, value unless value.nil?
81
+ end
82
+
83
+ def render(context)
84
+ if context.registers[:site].pygments
85
+ render_pygments(context, super)
86
+ else
87
+ render_codehighlighter(context, super)
88
+ end
89
+ end
90
+
91
+ def render_pygments(context, code)
92
+ pretty = Pygments.highlight code, :lexer => @lang, :options => @options
93
+ output = add_code_tags(pretty, @lang)
94
+ output = context["pygments_prefix"] + output if context["pygments_prefix"]
95
+ output = output + context["pygments_suffix"] if context["pygments_suffix"]
96
+ output
97
+ end
98
+
99
+ def render_codehighlighter(context, code)
100
+ #The div is required because RDiscount blows ass
101
+ <<-HTML
102
+ <div>
103
+ <pre><code class='#{@lang}'>#{h(code).strip}</code></pre>
104
+ </div>
105
+ HTML
106
+ end
107
+
108
+ def add_code_tags(code, lang)
109
+ # Add nested <code> tags to code blocks
110
+ code = code.sub(/<pre>/,'<pre><code class="' + lang + '">')
111
+ code = code.sub(/<\/pre>/,"</code></pre>")
112
+ end
113
+
114
+ end
115
+
116
+ end
117
+
118
+ Liquid::Template.register_tag('highlight', Jekyll::HighlightBlock)
@@ -0,0 +1,37 @@
1
+ module Jekyll
2
+
3
+ class IncludeTag < Liquid::Tag
4
+ def initialize(tag_name, file, tokens)
5
+ super
6
+ @file = file.strip
7
+ end
8
+
9
+ def render(context)
10
+ includes_dir = File.join(context.registers[:site].source, '_includes')
11
+
12
+ if File.symlink?(includes_dir)
13
+ return "Includes directory '#{includes_dir}' cannot be a symlink"
14
+ end
15
+
16
+ if @file !~ /^[a-zA-Z0-9_\/\.-]+$/ || @file =~ /\.\// || @file =~ /\/\./
17
+ return "Include file '#{@file}' contains invalid characters or sequences"
18
+ end
19
+
20
+ Dir.chdir(includes_dir) do
21
+ choices = Dir['**/*'].reject { |x| File.symlink?(x) }
22
+ if choices.include?(@file)
23
+ source = File.read(@file)
24
+ partial = Liquid::Template.parse(source)
25
+ context.stack do
26
+ partial.render(context)
27
+ end
28
+ else
29
+ "Included file '#{@file}' not found in _includes directory"
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+ Liquid::Template.register_tag('include', Jekyll::IncludeTag)
@@ -0,0 +1,38 @@
1
+ module Jekyll
2
+
3
+ class PostComparer
4
+ MATCHER = /^(?:.+\/)*(\d+-\d+-\d+)-(.*)$/
5
+
6
+ attr_accessor :date, :slug
7
+
8
+ def initialize(name)
9
+ _, date, slug = *name.match(MATCHER)
10
+ @slug = slug
11
+ @date = Time.parse(date)
12
+ end
13
+ end
14
+
15
+ class PostUrl < Liquid::Tag
16
+ def initialize(tag_name, post, tokens)
17
+ super
18
+ @orig_post = post.strip
19
+ @post = PostComparer.new(@orig_post)
20
+ end
21
+
22
+ def render(context)
23
+ site = context.registers[:site]
24
+
25
+ site.posts.each do |p|
26
+ if p == @post
27
+ return p.url
28
+ end
29
+ end
30
+
31
+ puts "ERROR: post_url: \"#{@orig_post}\" could not be found"
32
+
33
+ return "#"
34
+ end
35
+ end
36
+ end
37
+
38
+ Liquid::Template.register_tag('post_url', Jekyll::PostUrl)
data/lib/jekyll.rb ADDED
@@ -0,0 +1,134 @@
1
+ # Require all of the Ruby files in the given directory.
2
+ #
3
+ # path - The String relative path from here to the directory.
4
+ #
5
+ # Returns nothing.
6
+ def require_all(path)
7
+ glob = File.join(File.dirname(__FILE__), path, '*.rb')
8
+ Dir[glob].each do |f|
9
+ require f
10
+ end
11
+ end
12
+
13
+ # rubygems
14
+ require 'rubygems'
15
+
16
+ # stdlib
17
+ require 'fileutils'
18
+ require 'time'
19
+ require 'yaml'
20
+ require 'English'
21
+
22
+ # 3rd party
23
+ require 'liquid'
24
+ require 'maruku'
25
+ require 'pygments'
26
+
27
+ # internal requires
28
+ require 'jekyll/core_ext'
29
+ require 'jekyll/site'
30
+ require 'jekyll/convertible'
31
+ require 'jekyll/layout'
32
+ require 'jekyll/page'
33
+ require 'jekyll/post'
34
+ require 'jekyll/filters'
35
+ require 'jekyll/static_file'
36
+ require 'jekyll/errors'
37
+
38
+ # extensions
39
+ require 'jekyll/plugin'
40
+ require 'jekyll/converter'
41
+ require 'jekyll/generator'
42
+ require_all 'jekyll/converters'
43
+ require_all 'jekyll/generators'
44
+ require_all 'jekyll/tags'
45
+
46
+ module Jekyll
47
+ VERSION = '0.12'
48
+
49
+ # Default options. Overriden by values in _config.yml or command-line opts.
50
+ # (Strings rather symbols used for compatability with YAML).
51
+ DEFAULTS = {
52
+ 'safe' => false,
53
+ 'auto' => false,
54
+ 'server' => false,
55
+ 'server_port' => 4000,
56
+
57
+ 'source' => Dir.pwd,
58
+ 'destination' => File.join(Dir.pwd, '_site'),
59
+ 'plugins' => File.join(Dir.pwd, '_plugins'),
60
+
61
+ 'future' => true,
62
+ 'lsi' => false,
63
+ 'pygments' => false,
64
+ 'markdown' => 'maruku',
65
+ 'permalink' => 'date',
66
+ 'include' => ['.htaccess'],
67
+
68
+ 'markdown_ext' => 'markdown,mkd,mkdn,md',
69
+ 'textile_ext' => 'textile',
70
+
71
+ 'maruku' => {
72
+ 'use_tex' => false,
73
+ 'use_divs' => false,
74
+ 'png_engine' => 'blahtex',
75
+ 'png_dir' => 'images/latex',
76
+ 'png_url' => '/images/latex'
77
+ },
78
+ 'rdiscount' => {
79
+ 'extensions' => []
80
+ },
81
+ 'redcarpet' => {
82
+ 'extensions' => []
83
+ },
84
+ 'kramdown' => {
85
+ 'auto_ids' => true,
86
+ 'footnote_nr' => 1,
87
+ 'entity_output' => 'as_char',
88
+ 'toc_levels' => '1..6',
89
+ 'use_coderay' => false,
90
+
91
+ 'coderay' => {
92
+ 'coderay_wrap' => 'div',
93
+ 'coderay_line_numbers' => 'inline',
94
+ 'coderay_line_number_start' => 1,
95
+ 'coderay_tab_width' => 4,
96
+ 'coderay_bold_every' => 10,
97
+ 'coderay_css' => 'style'
98
+ }
99
+ },
100
+ 'redcloth' => {
101
+ 'hard_breaks' => true
102
+ }
103
+ }
104
+
105
+ # Public: Generate a Jekyll configuration Hash by merging the default
106
+ # options with anything in _config.yml, and adding the given options on top.
107
+ #
108
+ # override - A Hash of config directives that override any options in both
109
+ # the defaults and the config file. See Jekyll::DEFAULTS for a
110
+ # list of option names and their defaults.
111
+ #
112
+ # Returns the final configuration Hash.
113
+ def self.configuration(override)
114
+ # _config.yml may override default source location, but until
115
+ # then, we need to know where to look for _config.yml
116
+ source = override['source'] || Jekyll::DEFAULTS['source']
117
+
118
+ # Get configuration from <source>/_config.yml
119
+ config_file = File.join(source, '_config.yml')
120
+ begin
121
+ config = YAML.load_file(config_file)
122
+ raise "Invalid configuration - #{config_file}" if !config.is_a?(Hash)
123
+ $stdout.puts "Configuration from #{config_file}"
124
+ rescue => err
125
+ $stderr.puts "WARNING: Could not read configuration. " +
126
+ "Using defaults (and options)."
127
+ $stderr.puts "\t" + err.to_s
128
+ config = {}
129
+ end
130
+
131
+ # Merge DEFAULTS < _config.yml < override
132
+ Jekyll::DEFAULTS.deep_merge(config).deep_merge(override)
133
+ end
134
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'rubygems'
2
+ gem 'RedCloth', '>= 4.2.1'
3
+
4
+ require 'jekyll'
5
+
6
+ require 'RedCloth'
7
+ require 'rdiscount'
8
+ require 'kramdown'
9
+ require 'redcarpet'
10
+
11
+ require 'redgreen' if RUBY_VERSION < '1.9'
12
+ require 'shoulda'
13
+ require 'rr'
14
+
15
+ include Jekyll
16
+
17
+ # Send STDERR into the void to suppress program output messages
18
+ STDERR.reopen(test(?e, '/dev/null') ? '/dev/null' : 'NUL:')
19
+
20
+ class Test::Unit::TestCase
21
+ include RR::Adapters::TestUnit
22
+
23
+ def dest_dir(*subdirs)
24
+ File.join(File.dirname(__FILE__), 'dest', *subdirs)
25
+ end
26
+
27
+ def source_dir(*subdirs)
28
+ File.join(File.dirname(__FILE__), 'source', *subdirs)
29
+ end
30
+
31
+ def clear_dest
32
+ FileUtils.rm_rf(dest_dir)
33
+ end
34
+ end
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: nil
3
+ ---
4
+ ErrorDocument 404 /404.html
5
+ ErrorDocument 500 /500.html
6
+ {% for post in site.posts %}
7
+ # {{ post.url }}
8
+ {% endfor %}
@@ -0,0 +1,3 @@
1
+ --
2
+ Tom Preston-Werner
3
+ github.com/mojombo
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us">
5
+ <head>
6
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
7
+ <title>{{ page.title }}</title>
8
+ <meta name="author" content="<%= @page.author %>" />
9
+
10
+ <!-- CodeRay syntax highlighting CSS -->
11
+ <link rel="stylesheet" href="/css/coderay.css" type="text/css" />
12
+
13
+ <!-- Homepage CSS -->
14
+ <link rel="stylesheet" href="/css/screen.css" type="text/css" media="screen, projection" />
15
+ </head>
16
+ <body>
17
+
18
+ <div class="site">
19
+ <div class="title">
20
+ Tom Preston-Werner
21
+ </div>
22
+
23
+ {{ content }}
24
+ </div>
25
+
26
+ </body>
27
+ </html>
@@ -0,0 +1 @@
1
+ <<< {{ content }} >>>
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: default
3
+ title: Not published!
4
+ published: false
5
+ category: publish_test
6
+ ---
7
+
8
+ This should *not* be published!
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: default
3
+ title: Publish
4
+ category: publish_test
5
+ ---
6
+
7
+ This should be published.
8
+
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: default
3
+ title: Foo Bar
4
+ ---
5
+
6
+ h1. {{ page.title }}
7
+
8
+ Best *post* ever
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: default
3
+ title: Complex
4
+ ---
5
+
6
+ url: {{ page.url }}
7
+ date: {{ page.date }}
8
+ id: {{ page.id }}
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Post with Permalink
3
+ permalink: my_category/permalinked-post
4
+ ---
5
+
6
+ h1. {{ page.title }}
7
+
8
+
9
+ <p>Best <strong>post</strong> ever</p>
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: default
3
+ title: Include
4
+ ---
5
+
6
+ {% include sig.markdown %}
7
+
8
+ This _is_ cool
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ title: Array categories in YAML
4
+ categories:
5
+ - foo
6
+ - bar
7
+ - baz
8
+ ---
9
+
10
+ Best *post* ever
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: default
3
+ title: Categories in YAML
4
+ categories: foo bar baz
5
+ ---
6
+
7
+ Best *post* ever
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: default
3
+ title: Category in YAML
4
+ category: foo
5
+ ---
6
+
7
+ Best *post* ever
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: default
3
+ title: Category in YAML
4
+ categories:
5
+ ---
6
+
7
+ Best *post* ever
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: default
3
+ title: Category in YAML
4
+ category:
5
+ ---
6
+
7
+ Best *post* ever
@@ -0,0 +1,6 @@
1
+ ---
2
+ layout: default
3
+ title: Hash #1
4
+ ---
5
+
6
+ Hashes are nice
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: A Tag
3
+ tag:
4
+ ---
5
+
6
+ Whoa.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: Some Tags
3
+ tags:
4
+ ---
5
+
6
+ Awesome!
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: A Tag
3
+ tag: code
4
+ ---
5
+
6
+ Whoa.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Some Tags
3
+ tags:
4
+ - food
5
+ - cooking
6
+ - pizza
7
+ ---
8
+
9
+ Awesome!
@@ -0,0 +1,3 @@
1
+ ---
2
+ ---
3
+ Empty YAML.
@@ -0,0 +1 @@
1
+ No YAML.
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: Foo --- Bar
3
+ ---
4
+
5
+ Triple the fun!
@@ -0,0 +1,7 @@
1
+ ---
2
+ date: 2010-01-10
3
+ ---
4
+
5
+ Post with a front matter date
6
+
7
+ {{ page.date | date_to_string }}
@@ -0,0 +1,7 @@
1
+ ---
2
+ date: 2010-01-10 13:07:09
3
+ ---
4
+
5
+ Post with a front matter time
6
+
7
+ {{ page.date | date_to_string }}
@@ -0,0 +1,7 @@
1
+ ---
2
+ date: 2010-01-10 13:07:09 +00:00
3
+ ---
4
+
5
+ Post with a front matter time with timezone
6
+
7
+ {{ page.date | date_to_string }}
@@ -0,0 +1,4 @@
1
+ ---
2
+ date: 2010-01-10 13:07:09
3
+ tags: A string
4
+ ---
@@ -0,0 +1,7 @@
1
+ ---
2
+ date: 2011-04-12 13:07:09
3
+ ---
4
+
5
+ under default configuration, this post should get processed by the identity converter. By changing
6
+ textile extension or markdown extension configuration parameters, you should be able to associate
7
+ it with either of those converters
File without changes
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: About
3
+ permalink: /about/
4
+ ---
5
+
6
+ About the site
@@ -0,0 +1,6 @@
1
+ ---
2
+ layout: default
3
+ title: Categories
4
+ ---
5
+
6
+ Categories _should_ work
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: Contact Information
3
+ ---
4
+
5
+ Contact Information