tigefa 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/History.markdown +0 -144
  2. data/LICENSE +1 -1
  3. data/README.markdown +6 -10
  4. data/Rakefile +6 -13
  5. data/bin/tigefa +22 -26
  6. data/features/create_sites.feature +0 -11
  7. data/features/include_tag.feature +0 -22
  8. data/features/markdown.feature +4 -41
  9. data/features/site_configuration.feature +4 -33
  10. data/features/site_data.feature +4 -4
  11. data/features/step_definitions/{tigefa_steps.rb → jekyll_steps.rb} +17 -32
  12. data/features/support/env.rb +2 -38
  13. data/lib/site_template/_config.yml +2 -2
  14. data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +1 -0
  15. data/lib/site_template/css/main.css +15 -15
  16. data/lib/tigefa.rb +2 -5
  17. data/lib/tigefa/cleaner.rb +8 -8
  18. data/lib/tigefa/commands/build.rb +8 -14
  19. data/lib/tigefa/commands/new.rb +1 -1
  20. data/lib/tigefa/commands/serve.rb +0 -2
  21. data/lib/tigefa/configuration.rb +5 -21
  22. data/lib/tigefa/converters/markdown/kramdown_parser.rb +1 -1
  23. data/lib/tigefa/converters/markdown/maruku_parser.rb +1 -6
  24. data/lib/tigefa/convertible.rb +6 -17
  25. data/lib/tigefa/core_ext.rb +0 -19
  26. data/lib/tigefa/deprecator.rb +1 -1
  27. data/lib/tigefa/filters.rb +2 -12
  28. data/lib/tigefa/generators/pagination.rb +6 -9
  29. data/lib/tigefa/page.rb +1 -1
  30. data/lib/tigefa/post.rb +4 -4
  31. data/lib/tigefa/related_posts.rb +1 -1
  32. data/lib/tigefa/site.rb +50 -90
  33. data/lib/tigefa/stevenson.rb +4 -4
  34. data/lib/tigefa/tags/gist.rb +1 -9
  35. data/lib/tigefa/tags/highlight.rb +1 -1
  36. data/lib/tigefa/tags/include.rb +32 -75
  37. data/lib/tigefa/tags/post_url.rb +4 -6
  38. data/lib/tigefa/url.rb +0 -2
  39. data/site/_includes/docs_contents.html +1 -1
  40. data/site/_includes/docs_contents_mobile.html +1 -1
  41. data/site/_includes/top.html +1 -1
  42. data/site/docs/configuration.md +0 -19
  43. data/site/docs/deployment-methods.md +3 -3
  44. data/site/docs/drafts.md +3 -4
  45. data/site/docs/history.md +3 -147
  46. data/site/docs/installation.md +0 -10
  47. data/site/docs/migrations.md +240 -3
  48. data/site/docs/pages.md +7 -7
  49. data/site/docs/pagination.md +37 -16
  50. data/site/docs/plugins.md +7 -72
  51. data/site/docs/posts.md +1 -1
  52. data/site/docs/structure.md +0 -17
  53. data/site/docs/templates.md +7 -40
  54. data/site/docs/upgrading.md +3 -3
  55. data/site/docs/usage.md +1 -1
  56. data/site/docs/variables.md +2 -2
  57. data/test/helper.rb +1 -4
  58. data/test/test_configuration.rb +7 -16
  59. data/test/test_convertible.rb +1 -1
  60. data/test/test_excerpt.rb +3 -3
  61. data/test/test_filters.rb +0 -11
  62. data/test/test_generated_site.rb +1 -1
  63. data/test/test_kramdown.rb +5 -32
  64. data/test/test_new_command.rb +1 -1
  65. data/test/test_page.rb +0 -10
  66. data/test/test_post.rb +1 -12
  67. data/test/test_redcloth.rb +3 -3
  68. data/test/test_site.rb +64 -58
  69. data/test/test_tags.rb +35 -68
  70. data/tigefa.gemspec +15 -39
  71. metadata +101 -126
  72. checksums.yaml +0 -7
  73. data/features/data.feature +0 -65
  74. data/lib/tigefa/entry_filter.rb +0 -35
  75. data/site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown +0 -19
  76. data/site/_posts/2013-11-04-jekyll-1-3-0-released.markdown +0 -43
  77. data/site/_posts/2013-11-26-jekyll-1-3-1-released.markdown +0 -21
  78. data/site/_posts/2013-12-07-jekyll-1-4-0-released.markdown +0 -30
  79. data/site/_posts/2013-12-16-jekyll-1-4-2-released.markdown +0 -18
  80. data/site/_posts/2014-01-13-jekyll-1-4-3-released.markdown +0 -27
  81. data/site/docs/datafiles.md +0 -63
  82. data/test/source/_config.dev.toml +0 -2
  83. data/test/source/_data/languages.yml +0 -2
  84. data/test/source/_data/members.yaml +0 -7
  85. data/test/source/_data/products.yml +0 -1
  86. data/test/source/_includes/tmp +0 -1
  87. data/test/source/_layouts/post/simple.html +0 -1
  88. data/test/source/_posts/2014-01-06-permalink-traversal.md +0 -5
  89. data/test/source/exploit.md +0 -5
  90. data/test/source/products.yml +0 -4
  91. data/test/source/symlink-test/_data +0 -1
  92. data/test/test_entry_filter.rb +0 -74
@@ -7,7 +7,7 @@ module Tigefa
7
7
  WARN = 2
8
8
  ERROR = 3
9
9
 
10
- # Public: Create a new instance of Stevenson, Tigefa's logger
10
+ # Public: Create a new instance of Stevenson, Jekyll's logger
11
11
  #
12
12
  # level - (optional, integer) the log level
13
13
  #
@@ -46,7 +46,7 @@ module Tigefa
46
46
  $stderr.puts(message(topic, message).yellow) if log_level <= WARN
47
47
  end
48
48
 
49
- # Public: Print a Tigefa error message to stderr
49
+ # Public: Print a jekyll error message to stderr
50
50
  #
51
51
  # topic - the topic of the message, e.g. "Configuration file", "Deprecation", etc.
52
52
  # message - the message detail
@@ -56,7 +56,7 @@ module Tigefa
56
56
  $stderr.puts(message(topic, message).red) if log_level <= ERROR
57
57
  end
58
58
 
59
- # Public: Print a Tigefa error message to stderr and immediately abort the process
59
+ # Public: Print a Jekyll error message to stderr and immediately abort the process
60
60
  #
61
61
  # topic - the topic of the message, e.g. "Configuration file", "Deprecation", etc.
62
62
  # message - the message detail (can be omitted)
@@ -67,7 +67,7 @@ module Tigefa
67
67
  abort
68
68
  end
69
69
 
70
- # Public: Build a Tigefa topic method
70
+ # Public: Build a Jekyll topic method
71
71
  #
72
72
  # topic - the topic of the message, e.g. "Configuration file", "Deprecation", etc.
73
73
  # message - the message detail
@@ -12,15 +12,7 @@ module Tigefa
12
12
  gist_id, filename = tag_contents[0], tag_contents[1]
13
13
  gist_script_tag(gist_id, filename)
14
14
  else
15
- raise ArgumentError.new <<-eos
16
- Syntax error in tag 'gist' while parsing the following markup:
17
-
18
- #{@markup}
19
-
20
- Valid syntax:
21
- for public gists: {% gist 1234567 %}
22
- for private gists: {% gist user/1234567 %}
23
- eos
15
+ "Error parsing gist id"
24
16
  end
25
17
  end
26
18
 
@@ -14,7 +14,7 @@ module Tigefa
14
14
  def initialize(tag_name, markup, tokens)
15
15
  super
16
16
  if markup.strip =~ SYNTAX
17
- @lang = $1.downcase
17
+ @lang = $1
18
18
  @options = {}
19
19
  if defined?($2) && $2 != ''
20
20
  $2.split.each do |opt|
@@ -1,33 +1,21 @@
1
1
  module Tigefa
2
2
  module Tags
3
- class IncludeTagError < StandardError
4
- attr_accessor :path
5
-
6
- def initialize(msg, path)
7
- super(msg)
8
- @path = path
9
- end
10
- end
11
-
12
3
  class IncludeTag < Liquid::Tag
13
4
 
14
- SYNTAX_EXAMPLE = "{% include file.ext param='value' param2='value' %}"
15
-
16
- VALID_SYNTAX = /([\w-]+)\s*=\s*(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w\.-]+))/
17
-
18
- INCLUDES_DIR = '_includes'
5
+ MATCHER = /([\w-]+)\s*=\s*(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w\.-]+))/
19
6
 
20
7
  def initialize(tag_name, markup, tokens)
21
8
  super
22
9
  @file, @params = markup.strip.split(' ', 2);
23
- validate_params if @params
24
10
  end
25
11
 
26
12
  def parse_params(context)
13
+ validate_syntax
14
+
27
15
  params = {}
28
16
  markup = @params
29
17
 
30
- while match = VALID_SYNTAX.match(markup) do
18
+ while match = MATCHER.match(markup) do
31
19
  markup = markup[match.end(0)..-1]
32
20
 
33
21
  value = if match[2]
@@ -43,90 +31,59 @@ module Tigefa
43
31
  params
44
32
  end
45
33
 
46
- def validate_file_name(file)
47
- if file !~ /^[a-zA-Z0-9_\/\.-]+$/ || file =~ /\.\// || file =~ /\/\./
48
- raise ArgumentError.new <<-eos
49
- Invalid syntax for include tag. File contains invalid characters or sequences:
50
-
51
- #{@file}
52
-
53
- Valid syntax:
54
-
55
- #{SYNTAX_EXAMPLE}
56
-
57
- eos
58
- end
59
- end
60
-
61
- def validate_params
62
- full_valid_syntax = Regexp.compile('\A\s*(?:' + VALID_SYNTAX.to_s + '(?=\s|\z)\s*)*\z')
63
- unless @params =~ full_valid_syntax
64
- raise ArgumentError.new <<-eos
34
+ # ensure the entire markup string from start to end is valid syntax, and params are separated by spaces
35
+ def validate_syntax
36
+ full_matcher = Regexp.compile('\A\s*(?:' + MATCHER.to_s + '(?=\s|\z)\s*)*\z')
37
+ unless @params =~ full_matcher
38
+ raise SyntaxError.new <<-eos
65
39
  Invalid syntax for include tag:
66
40
 
67
41
  #{@params}
68
42
 
69
43
  Valid syntax:
70
44
 
71
- #{SYNTAX_EXAMPLE}
45
+ {% include file.ext param='value' param2="value" %}
72
46
 
73
47
  eos
74
48
  end
75
49
  end
76
50
 
77
- # Grab file read opts in the context
78
- def file_read_opts(context)
79
- context.registers[:site].file_read_opts
80
- end
81
-
82
- def retrieve_variable(context)
83
- if /\{\{([\w\-\.]+)\}\}/ =~ @file
84
- raise ArgumentError.new("No variable #{$1} was found in include tag") if context[$1].nil?
85
- context[$1]
86
- end
87
- end
88
-
89
51
  def render(context)
90
- dir = File.join(File.realpath(context.registers[:site].source), INCLUDES_DIR)
52
+ includes_dir = File.join(context.registers[:site].source, '_includes')
91
53
 
92
- file = retrieve_variable(context) || @file
93
- validate_file_name(file)
94
-
95
- path = File.join(dir, file)
96
- validate_path(path, dir, context.registers[:site].safe)
54
+ if error = validate_file(includes_dir)
55
+ return error
56
+ end
97
57
 
98
- begin
99
- partial = Liquid::Template.parse(source(path, context))
58
+ source = File.read(File.join(includes_dir, @file))
59
+ partial = Liquid::Template.parse(source)
100
60
 
101
- context.stack do
102
- context['include'] = parse_params(context) if @params
103
- partial.render!(context)
104
- end
105
- rescue => e
106
- raise IncludeTagError.new e.message, File.join(INCLUDES_DIR, @file)
61
+ context.stack do
62
+ context['include'] = parse_params(context) if @params
63
+ partial.render(context)
107
64
  end
108
65
  end
109
66
 
110
- def validate_path(path, dir, safe)
111
- if safe && !realpath_prefixed_with?(path, dir)
112
- raise IOError.new "The included file '#{path}' should exist and should not be a symlink"
113
- elsif !File.exist?(path)
114
- raise IOError.new "Included file '#{path}' not found"
67
+ def validate_file(includes_dir)
68
+ if File.symlink?(includes_dir)
69
+ return "Includes directory '#{includes_dir}' cannot be a symlink"
70
+ end
71
+
72
+ if @file !~ /^[a-zA-Z0-9_\/\.-]+$/ || @file =~ /\.\// || @file =~ /\/\./
73
+ return "Include file '#{@file}' contains invalid characters or sequences"
115
74
  end
116
- end
117
75
 
118
- def realpath_prefixed_with?(path, dir)
119
- File.exist?(path) && File.realpath(path).start_with?(dir)
76
+ file = File.join(includes_dir, @file)
77
+ if !File.exists?(file)
78
+ return "Included file #{@file} not found in _includes directory"
79
+ elsif File.symlink?(file)
80
+ return "The included file '_includes/#{@file}' should not be a symlink"
81
+ end
120
82
  end
121
83
 
122
84
  def blank?
123
85
  false
124
86
  end
125
-
126
- # This method allows to modify the file content by inheriting from the class.
127
- def source(file, context)
128
- File.read_with_options(file, file_read_opts(context))
129
- end
130
87
  end
131
88
  end
132
89
  end
@@ -19,9 +19,9 @@ module Tigefa
19
19
  end
20
20
 
21
21
  private
22
- # Construct the directory-aware post slug for a TigefaTigefa::Post
22
+ # Construct the directory-aware post slug for a Tigefa::Post
23
23
  #
24
- # other - the TigefaTigefa::Post
24
+ # other - the Tigefa::Post
25
25
  #
26
26
  # Returns the post slug with the subdirectory (relative to _posts)
27
27
  def post_slug(other)
@@ -50,11 +50,9 @@ module Tigefa
50
50
  end
51
51
  end
52
52
 
53
- raise ArgumentError.new <<-eos
54
- Could not find post "#{@orig_post}" in tag 'post_url'.
53
+ puts "ERROR: post_url: \"#{@orig_post}\" could not be found"
55
54
 
56
- Make sure the post exists and the name is correct.
57
- eos
55
+ return "#"
58
56
  end
59
57
  end
60
58
  end
data/lib/tigefa/url.rb CHANGED
@@ -50,7 +50,6 @@ module Tigefa
50
50
 
51
51
  # Returns a sanitized String URL
52
52
  def sanitize_url(in_url)
53
-
54
53
  # Remove all double slashes
55
54
  url = in_url.gsub(/\/\//, "/")
56
55
 
@@ -62,7 +61,6 @@ module Tigefa
62
61
 
63
62
  # Always add a leading slash
64
63
  url.gsub!(/\A([^\/])/, '/\1')
65
-
66
64
  url
67
65
  end
68
66
  end
@@ -3,7 +3,7 @@
3
3
  <h4>Getting Started</h4>
4
4
  {% include docs_ul.html items='home quickstart installation usage structure configuration' %}
5
5
  <h4>Your Content</h4>
6
- {% include docs_ul.html items='frontmatter posts drafts pages variables datafiles migrations' %}
6
+ {% include docs_ul.html items='frontmatter posts drafts pages variables migrations' %}
7
7
  <h4>Customization</h4>
8
8
  {% include docs_ul.html items='templates permalinks pagination plugins extras' %}
9
9
  <h4>Deployment</h4>
@@ -5,7 +5,7 @@
5
5
  {% include docs_option.html items='home quickstart installation usage structure configuration' %}
6
6
  </optgroup>
7
7
  <optgroup label="Your Content">
8
- {% include docs_option.html items='frontmatter posts drafts pages variables datafiles migrations' %}
8
+ {% include docs_option.html items='frontmatter posts drafts pages variables migrations' %}
9
9
  </optgroup>
10
10
  <optgroup label="Customization">
11
11
  {% include docs_option.html items='templates permalinks pagination plugins extras' %}
@@ -12,6 +12,6 @@
12
12
  <link rel="stylesheet" href="{{ site.url }}/css/gridism.css" />
13
13
  <link rel="stylesheet" href="{{ site.url }}/css/style.css" />
14
14
  <link rel="stylesheet" href="{{ site.url }}/css/pygments.css" />
15
- <link rel="icon" type="image/png" href="{{ site.url }}/favicon.png" />
15
+ <link rel="icon" type="image/x-icon" href="{{ site.url }}/favicon.png" />
16
16
  <script src="{{ site.url }}/js/modernizr-2.5.3.min.js"></script>
17
17
  </head>
@@ -99,22 +99,6 @@ class="flag">flags</code> (specified on the command-line) that control them.
99
99
  <p><code class="option">timezone: TIMEZONE</code></p>
100
100
  </td>
101
101
  </tr>
102
- <tr class='setting'>
103
- <td>
104
- <p class='name'><strong>Encoding</strong></p>
105
- <p class="description">
106
- Set the encoding of files by name. Only available for Ruby
107
- 1.9 or later).
108
- The default value is nil, which use Ruby default,
109
- <code>ASCII-8BIT</code>.
110
- Available encoding for the ruby in use, can be shown by
111
- command <code>ruby -e 'puts Encoding::list.join("\n")'</code>
112
- </p>
113
- </td>
114
- <td class='align-center'>
115
- <p><code class="option">encoding: ENCODING</code></p>
116
- </td>
117
- </tr>
118
102
  </tbody>
119
103
  </table>
120
104
  </div>
@@ -281,9 +265,7 @@ layouts: ./_layouts
281
265
  include: ['.htaccess']
282
266
  exclude: []
283
267
  keep_files: ['.git','.svn']
284
- gems: []
285
268
  timezone: nil
286
- encoding: nil
287
269
 
288
270
  future: true
289
271
  show_drafts: nil
@@ -316,7 +298,6 @@ maruku:
316
298
  png_engine: blahtex
317
299
  png_dir: images/latex
318
300
  png_url: /images/latex
319
- fenced_code_blocks: true
320
301
 
321
302
  rdiscount:
322
303
  extensions: []
@@ -37,7 +37,7 @@ this](http://web.archive.org/web/20091223025644/http://www.taknado.com/en/2009/0
37
37
  To have a remote server handle the deploy for you every time you push changes using Git, you can create a user account which has all the public keys that are authorized to deploy in its `authorized_keys` file. With that in place, setting up the post-receive hook is done as follows:
38
38
 
39
39
  {% highlight bash %}
40
- laptop$ ssh deployer@example.com
40
+ laptop$ ssh deployer@myserver.com
41
41
  server$ mkdir myrepo.git
42
42
  server$ cd myrepo.git
43
43
  server$ git --bare init
@@ -63,7 +63,7 @@ Finally, run the following command on any users laptop that needs to be able to
63
63
  deploy using this hook:
64
64
 
65
65
  {% highlight bash %}
66
- laptops$ git remote add deploy deployer@example.com:~/myrepo.git
66
+ laptops$ git remote add deploy deployer@myserver.com:~/myrepo.git
67
67
  {% endhighlight %}
68
68
 
69
69
  Deploying is now as easy as telling nginx or Apache to look at
@@ -76,7 +76,7 @@ laptops$ git push deploy master
76
76
  ### Rake
77
77
 
78
78
  Another way to deploy your Jekyll site is to use [Rake](https://github.com/jimweirich/rake), [HighLine](https://github.com/JEG2/highline), and
79
- [Net::SSH](http://net-ssh.rubyforge.org/). A more complex example of deploying Jekyll with Rake that deals with multiple branches can be found in [Git Ready](https://github.com/gitready/gitready/blob/cdfbc4ec5321ff8d18c3ce936e9c749dbbc4f190/Rakefile).
79
+ [Net::SSH](http://net-ssh.rubyforge.org/). A more complex example of deploying Jekyll with Rake that deals with multiple branches can be found in [Git Ready](https://github.com/gitready/gitready/blob/en/Rakefile).
80
80
 
81
81
  ### rsync
82
82
 
data/site/docs/drafts.md CHANGED
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  layout: docs
3
3
  title: Working with drafts
4
- prev_section: posts
5
- next_section: pages
6
4
  permalink: /docs/drafts/
7
5
  ---
8
6
 
@@ -17,5 +15,6 @@ first draft:
17
15
  {% endhighlight %}
18
16
 
19
17
  To preview your site with drafts, simply run `jekyll serve` or `jekyll build` with
20
- the `--drafts` switch. Each will be assigned the value modification time of the draft file
21
- for its date, and thus you will see currently edited drafts as the latest posts.
18
+ the `--drafts` switch. Each will be assigned the value of `Time.now`
19
+ for its date, and thus you will see them generated as the latest posts.
20
+
data/site/docs/history.md CHANGED
@@ -1,154 +1,10 @@
1
- ---
2
- prev_section: contributing
3
- title: History
1
+ ---
4
2
  layout: docs
3
+ title: History
5
4
  permalink: /docs/history/
5
+ prev_section: contributing
6
6
  ---
7
7
 
8
- ## 1.4.3 / 2014-01-13
9
-
10
- ### Bug Fixes
11
-
12
- - Patch show-stopping security vulnerabilities ([#1944]({{ site.repository }}/issues/1944))
13
-
14
- ## 1.4.2 / 2013-12-16
15
-
16
- ### Bug Fixes
17
- - Turn on Maruku fenced code blocks by default ([#1830]({{ site.repository }}/issues/1830))
18
-
19
- ## 1.4.1 / 2013-12-09
20
-
21
- ### Bug Fixes
22
- - Don't allow nil entries when loading posts ([#1796]({{ site.repository }}/issues/1796))
23
-
24
- ## 1.4.0 / 2013-12-07
25
-
26
- ### Major Enhancements
27
- - Add support for TOML config files ([#1765]({{ site.repository }}/issues/1765))
28
-
29
- ### Minor Enhancements
30
- - Sort plugins as a way to establish a load order ([#1682]({{ site.repository }}/issues/1682))
31
- - Update Maruku to 0.7.0 ([#1775]({{ site.repository }}/issues/1775))
32
-
33
- ### Bug Fixes
34
- - Add a space between two words in a Pagination warning message ([#1769]({{ site.repository }}/issues/1769))
35
- - Upgrade `toml` gem to `v0.1.0` to maintain compat with Ruby 1.8.7 ([#1778]({{ site.repository }}/issues/1778))
36
-
37
- ### Development Fixes
38
- - Remove some whitespace in the code ([#1755]({{ site.repository }}/issues/1755))
39
- - Remove some duplication in the reading of posts and drafts ([#1779]({{ site.repository }}/issues/1779))
40
-
41
- ### Site Enhancements
42
- - Fixed case of a word in the Jekyll v1.3.0 release post ([#1762]({{ site.repository }}/issues/1762))
43
- - Fixed the mime type for the favicon ([#1772]({{ site.repository }}/issues/1772))
44
-
45
- ## 1.3.1 / 2013-11-26
46
-
47
- ### Minor Enhancements
48
- - Add a `--prefix` option to passthrough for the importers ([#1669]({{ site.repository }}/issues/1669))
49
- - Push the paginator plugin lower in the plugin priority order so
50
- other plugins run before it ([#1759]({{ site.repository }}/issues/1759))
51
-
52
- ### Bug Fixes
53
- - Fix the include tag when ran in a loop ([#1726]({{ site.repository }}/issues/1726))
54
- - Fix errors when using `--watch` on 1.8.7 ([#1730]({{ site.repository }}/issues/1730))
55
- - Specify where the include is called from if an included file is
56
- missing ([#1746]({{ site.repository }}/issues/1746))
57
-
58
- ### Development Fixes
59
- - Extract `Site#filter_entries` into its own object ([#1697]({{ site.repository }}/issues/1697))
60
- - Enable Travis' bundle caching ([#1734]({{ site.repository }}/issues/1734))
61
- - Remove trailing whitespace in some files ([#1736]({{ site.repository }}/issues/1736))
62
- - Fix a duplicate test name ([#1754]({{ site.repository }}/issues/1754))
63
-
64
- ### Site Enhancements
65
- - Update link to example Rakefile to point to specific commit ([#1741]({{ site.repository }}/issues/1741))
66
- - Fix drafts docs to indicate that draft time is based on file modification
67
- time, not `Time.now` ([#1695]({{ site.repository }}/issues/1695))
68
- - Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to
69
- list of third-party plugins ([#1693]({{ site.repository }}/issues/1693))
70
- - Add `jekyll-asset-path-plugin` to list of third-party plugins ([#1670]({{ site.repository }}/issues/1670))
71
- - Add `emoji-for-jekyll` to list of third-part plugins ([#1708]({{ site.repository }}/issues/1708))
72
- - Fix previous section link on plugins page to point to pagination page ([#1707]({{ site.repository }}/issues/1707))
73
- - Add `org-mode` converter plugin to third-party plugins ([#1711]({{ site.repository }}/issues/1711))
74
- - Point "Blog migrations" page to http://import.jekyllrb.com ([#1732]({{ site.repository }}/issues/1732))
75
- - Add docs for `post_url` when posts are in subdirectories ([#1718]({{ site.repository }}/issues/1718))
76
- - Update the docs to point to `example.com` ([#1448]({{ site.repository }}/issues/1448))
77
-
78
- ## 1.3.0 / 2013-11-04
79
-
80
- ### Major Enhancements
81
- - Add support for adding data as YAML files under a site's `_data`
82
- directory ([#1003]({{ site.repository }}/issues/1003))
83
- - Allow variables to be used with `include` tags ([#1495]({{ site.repository }}/issues/1495))
84
- - Allow using gems for plugin management ([#1557]({{ site.repository }}/issues/1557))
85
-
86
- ### Minor Enhancements
87
- - Decrease the specificity in the site template CSS ([#1574]({{ site.repository }}/issues/1574))
88
- - Add `encoding` configuration option ([#1449]({{ site.repository }}/issues/1449))
89
- - Provide better error handling for Jekyll's custom Liquid tags
90
- ([#1514]({{ site.repository }}/issues/1514))
91
- - If an included file causes a Liquid error, add the path to the
92
- include file that caused the error to the error message ([#1596]({{ site.repository }}/issues/1596))
93
- - If a layout causes a Liquid error, change the error message so that
94
- we know it comes from the layout ([#1601]({{ site.repository }}/issues/1601))
95
- - Update Kramdown dependency to `~> 1.2` ([#1610]({{ site.repository }}/issues/1610))
96
- - Update `safe_yaml` dependency to `~> 0.9.7` ([#1602]({{ site.repository }}/issues/1602))
97
- - Allow layouts to be in subfolders like includes ([#1622]({{ site.repository }}/issues/1622))
98
- - Switch to listen for site watching while serving ([#1589]({{ site.repository }}/issues/1589))
99
- - Add a `json` liquid filter to be used in sites ([#1651]({{ site.repository }}/issues/1651))
100
- - Point people to the migration docs when the `jekyll-import` gem is
101
- missing ([#1662]({{ site.repository }}/issues/1662))
102
-
103
- ### Bug Fixes
104
- - Fix up matching against source and destination when the two
105
- locations are similar ([#1556]({{ site.repository }}/issues/1556))
106
- - Fix the missing `pathname` require in certain cases ([#1255]({{ site.repository }}/issues/1255))
107
- - Use `+` instead of `Array#concat` when building `Post` attribute list ([#1571]({{ site.repository }}/issues/1571))
108
- - Print server address when launching a server ([#1586]({{ site.repository }}/issues/1586))
109
- - Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering ([#1598]({{ site.repository }}/issues/1598))
110
- - Fix error with failing include tag when variable was file name ([#1613]({{ site.repository }}/issues/1613))
111
- - Downcase lexers before passing them to pygments ([#1615]({{ site.repository }}/issues/1615))
112
- - Capitalize the short verbose switch because it conflicts with the
113
- built-in Commander switch ([#1660]({{ site.repository }}/issues/1660))
114
- - Fix compatibility with 1.8.x ([#1665]({{ site.repository }}/issues/1665))
115
- - Fix an error with the new file watching code due to library version
116
- incompatibilities ([#1687]({{ site.repository }}/issues/1687))
117
-
118
- ### Development Fixes
119
- - Add coverage reporting with Coveralls ([#1539]({{ site.repository }}/issues/1539))
120
- - Refactor the Liquid `include` tag ([#1490]({{ site.repository }}/issues/1490))
121
- - Update launchy dependency to `~> 2.3` ([#1608]({{ site.repository }}/issues/1608))
122
- - Update rr dependency to `~> 1.1` ([#1604]({{ site.repository }}/issues/1604))
123
- - Update cucumber dependency to `~> 1.3` ([#1607]({{ site.repository }}/issues/1607))
124
- - Update coveralls dependency to `~> 0.7.0` ([#1606]({{ site.repository }}/issues/1606))
125
- - Update rake dependency to `~> 10.1` ([#1603]({{ site.repository }}/issues/1603))
126
- - Clean up `site.rb` comments to be more concise/uniform ([#1616]({{ site.repository }}/issues/1616))
127
- - Use the master branch for the build badge in the readme ([#1636]({{ site.repository }}/issues/1636))
128
- - Refactor Site#render ([#1638]({{ site.repository }}/issues/1638))
129
- - Remove duplication in command line options ([#1637]({{ site.repository }}/issues/1637))
130
- - Add tests for all the coderay options ([#1543]({{ site.repository }}/issues/1543))
131
- - Improve some of the cucumber test code ([#1493]({{ site.repository }}/issues/1493))
132
- - Improve comparisons of timestamps by ignoring the seconds ([#1582]({{ site.repository }}/issues/1582))
133
-
134
- ### Site Enhancements
135
- - Fix params for `JekyllImport::WordPress.process` arguments ([#1554]({{ site.repository }}/issues/1554))
136
- - Add `jekyll-suggested-tweet` to list of third-party plugins ([#1555]({{ site.repository }}/issues/1555))
137
- - Link to Liquid's docs for tags and filters ([#1553]({{ site.repository }}/issues/1553))
138
- - Add note about installing Xcode on the Mac in the Installation docs ([#1561]({{ site.repository }}/issues/1561))
139
- - Simplify/generalize pagination docs ([#1577]({{ site.repository }}/issues/1577))
140
- - Add documentation for the new data sources feature ([#1503]({{ site.repository }}/issues/1503))
141
- - Add more information on how to create generators ([#1590]({{ site.repository }}/issues/1590), [#1592]({{ site.repository }}/issues/1592))
142
- - Improve the instructions for mimicking GitHub Flavored Markdown
143
- ([#1614]({{ site.repository }}/issues/1614))
144
- - Add `jekyll-import` warning note of missing dependencies ([#1626]({{ site.repository }}/issues/1626))
145
- - Fix grammar in the Usage section ([#1635]({{ site.repository }}/issues/1635))
146
- - Add documentation for the use of gems as plugins ([#1656]({{ site.repository }}/issues/1656))
147
- - Document the existence of a few additional plugins ([#1405]({{ site.repository }}/issues/1405))
148
- - Document that the `date_to_string` always returns a two digit day ([#1663]({{ site.repository }}/issues/1663))
149
- - Fix navigation in the "Working with Drafts" page ([#1667]({{ site.repository }}/issues/1667))
150
- - Fix an error with the data documentation ([#1691]({{ site.repository }}/issues/1691))
151
-
152
8
  ## 1.2.1 / 2013-09-14
153
9
 
154
10
  ### Minor Enhancements