nanoc 3.2.4 → 3.3.0

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 (230) hide show
  1. data/.gemtest +0 -0
  2. data/ChangeLog +3 -0
  3. data/Gemfile +32 -0
  4. data/LICENSE +19 -0
  5. data/NEWS.md +470 -0
  6. data/README.md +114 -0
  7. data/Rakefile +14 -0
  8. data/bin/nanoc +7 -27
  9. data/bin/nanoc3 +3 -0
  10. data/doc/yardoc_templates/default/layout/html/footer.erb +10 -0
  11. data/lib/nanoc.rb +41 -0
  12. data/lib/nanoc/base.rb +49 -0
  13. data/lib/nanoc/base/compilation/checksum_store.rb +57 -0
  14. data/lib/nanoc/base/compilation/compiled_content_cache.rb +62 -0
  15. data/lib/nanoc/base/compilation/compiler.rb +458 -0
  16. data/lib/nanoc/base/compilation/compiler_dsl.rb +214 -0
  17. data/lib/nanoc/base/compilation/dependency_tracker.rb +200 -0
  18. data/lib/nanoc/base/compilation/filter.rb +165 -0
  19. data/lib/nanoc/base/compilation/item_rep_proxy.rb +103 -0
  20. data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +102 -0
  21. data/lib/nanoc/base/compilation/outdatedness_checker.rb +223 -0
  22. data/lib/nanoc/base/compilation/outdatedness_reasons.rb +46 -0
  23. data/lib/nanoc/base/compilation/rule.rb +73 -0
  24. data/lib/nanoc/base/compilation/rule_context.rb +84 -0
  25. data/lib/nanoc/base/compilation/rule_memory_calculator.rb +40 -0
  26. data/lib/nanoc/base/compilation/rule_memory_store.rb +53 -0
  27. data/lib/nanoc/base/compilation/rules_collection.rb +243 -0
  28. data/lib/nanoc/base/context.rb +47 -0
  29. data/lib/nanoc/base/core_ext.rb +6 -0
  30. data/lib/nanoc/base/core_ext/array.rb +62 -0
  31. data/lib/nanoc/base/core_ext/hash.rb +63 -0
  32. data/lib/nanoc/base/core_ext/pathname.rb +26 -0
  33. data/lib/nanoc/base/core_ext/string.rb +46 -0
  34. data/lib/nanoc/base/directed_graph.rb +275 -0
  35. data/lib/nanoc/base/errors.rb +211 -0
  36. data/lib/nanoc/base/memoization.rb +67 -0
  37. data/lib/nanoc/base/notification_center.rb +84 -0
  38. data/lib/nanoc/base/ordered_hash.rb +200 -0
  39. data/lib/nanoc/base/plugin_registry.rb +181 -0
  40. data/lib/nanoc/base/result_data/item_rep.rb +492 -0
  41. data/lib/nanoc/base/source_data/code_snippet.rb +58 -0
  42. data/lib/nanoc/base/source_data/configuration.rb +24 -0
  43. data/lib/nanoc/base/source_data/data_source.rb +234 -0
  44. data/lib/nanoc/base/source_data/item.rb +301 -0
  45. data/lib/nanoc/base/source_data/layout.rb +130 -0
  46. data/lib/nanoc/base/source_data/site.rb +361 -0
  47. data/lib/nanoc/base/store.rb +135 -0
  48. data/lib/nanoc/cli.rb +137 -0
  49. data/lib/nanoc/cli/command_runner.rb +104 -0
  50. data/lib/nanoc/cli/commands/autocompile.rb +58 -0
  51. data/lib/nanoc/cli/commands/compile.rb +297 -0
  52. data/lib/nanoc/cli/commands/create_item.rb +60 -0
  53. data/lib/nanoc/cli/commands/create_layout.rb +73 -0
  54. data/lib/nanoc/cli/commands/create_site.rb +411 -0
  55. data/lib/nanoc/cli/commands/debug.rb +117 -0
  56. data/lib/nanoc/cli/commands/deploy.rb +79 -0
  57. data/lib/nanoc/cli/commands/info.rb +98 -0
  58. data/lib/nanoc/cli/commands/nanoc.rb +38 -0
  59. data/lib/nanoc/cli/commands/prune.rb +50 -0
  60. data/lib/nanoc/cli/commands/update.rb +70 -0
  61. data/lib/nanoc/cli/commands/view.rb +82 -0
  62. data/lib/nanoc/cli/commands/watch.rb +124 -0
  63. data/lib/nanoc/cli/error_handler.rb +199 -0
  64. data/lib/nanoc/cli/logger.rb +92 -0
  65. data/lib/nanoc/data_sources.rb +29 -0
  66. data/lib/nanoc/data_sources/deprecated/delicious.rb +42 -0
  67. data/lib/nanoc/data_sources/deprecated/last_fm.rb +87 -0
  68. data/lib/nanoc/data_sources/deprecated/twitter.rb +38 -0
  69. data/lib/nanoc/data_sources/filesystem.rb +299 -0
  70. data/lib/nanoc/data_sources/filesystem_unified.rb +121 -0
  71. data/lib/nanoc/data_sources/filesystem_verbose.rb +91 -0
  72. data/lib/nanoc/extra.rb +24 -0
  73. data/lib/nanoc/extra/auto_compiler.rb +103 -0
  74. data/lib/nanoc/extra/chick.rb +125 -0
  75. data/lib/nanoc/extra/core_ext.rb +6 -0
  76. data/lib/nanoc/extra/core_ext/enumerable.rb +33 -0
  77. data/lib/nanoc/extra/core_ext/pathname.rb +30 -0
  78. data/lib/nanoc/extra/core_ext/time.rb +19 -0
  79. data/lib/nanoc/extra/deployer.rb +47 -0
  80. data/lib/nanoc/extra/deployers.rb +15 -0
  81. data/lib/nanoc/extra/deployers/fog.rb +98 -0
  82. data/lib/nanoc/extra/deployers/rsync.rb +70 -0
  83. data/lib/nanoc/extra/file_proxy.rb +40 -0
  84. data/lib/nanoc/extra/pruner.rb +86 -0
  85. data/lib/nanoc/extra/validators.rb +12 -0
  86. data/lib/nanoc/extra/validators/links.rb +268 -0
  87. data/lib/nanoc/extra/validators/w3c.rb +95 -0
  88. data/lib/nanoc/extra/vcs.rb +66 -0
  89. data/lib/nanoc/extra/vcses.rb +17 -0
  90. data/lib/nanoc/extra/vcses/bazaar.rb +25 -0
  91. data/lib/nanoc/extra/vcses/dummy.rb +24 -0
  92. data/lib/nanoc/extra/vcses/git.rb +25 -0
  93. data/lib/nanoc/extra/vcses/mercurial.rb +25 -0
  94. data/lib/nanoc/extra/vcses/subversion.rb +25 -0
  95. data/lib/nanoc/filters.rb +59 -0
  96. data/lib/nanoc/filters/asciidoc.rb +38 -0
  97. data/lib/nanoc/filters/bluecloth.rb +19 -0
  98. data/lib/nanoc/filters/coderay.rb +21 -0
  99. data/lib/nanoc/filters/coffeescript.rb +20 -0
  100. data/lib/nanoc/filters/colorize_syntax.rb +298 -0
  101. data/lib/nanoc/filters/erb.rb +38 -0
  102. data/lib/nanoc/filters/erubis.rb +34 -0
  103. data/lib/nanoc/filters/haml.rb +27 -0
  104. data/lib/nanoc/filters/kramdown.rb +20 -0
  105. data/lib/nanoc/filters/less.rb +53 -0
  106. data/lib/nanoc/filters/markaby.rb +20 -0
  107. data/lib/nanoc/filters/maruku.rb +20 -0
  108. data/lib/nanoc/filters/mustache.rb +24 -0
  109. data/lib/nanoc/filters/rainpress.rb +19 -0
  110. data/lib/nanoc/filters/rdiscount.rb +22 -0
  111. data/lib/nanoc/filters/rdoc.rb +33 -0
  112. data/lib/nanoc/filters/redcarpet.rb +62 -0
  113. data/lib/nanoc/filters/redcloth.rb +47 -0
  114. data/lib/nanoc/filters/relativize_paths.rb +94 -0
  115. data/lib/nanoc/filters/rubypants.rb +20 -0
  116. data/lib/nanoc/filters/sass.rb +74 -0
  117. data/lib/nanoc/filters/slim.rb +25 -0
  118. data/lib/nanoc/filters/typogruby.rb +23 -0
  119. data/lib/nanoc/filters/uglify_js.rb +42 -0
  120. data/lib/nanoc/filters/xsl.rb +46 -0
  121. data/lib/nanoc/filters/yui_compressor.rb +23 -0
  122. data/lib/nanoc/helpers.rb +16 -0
  123. data/lib/nanoc/helpers/blogging.rb +319 -0
  124. data/lib/nanoc/helpers/breadcrumbs.rb +40 -0
  125. data/lib/nanoc/helpers/capturing.rb +138 -0
  126. data/lib/nanoc/helpers/filtering.rb +50 -0
  127. data/lib/nanoc/helpers/html_escape.rb +55 -0
  128. data/lib/nanoc/helpers/link_to.rb +151 -0
  129. data/lib/nanoc/helpers/rendering.rb +140 -0
  130. data/lib/nanoc/helpers/tagging.rb +71 -0
  131. data/lib/nanoc/helpers/text.rb +44 -0
  132. data/lib/nanoc/helpers/xml_sitemap.rb +76 -0
  133. data/lib/nanoc/tasks.rb +10 -0
  134. data/lib/nanoc/tasks/clean.rake +16 -0
  135. data/lib/nanoc/tasks/clean.rb +29 -0
  136. data/lib/nanoc/tasks/deploy/rsync.rake +16 -0
  137. data/lib/nanoc/tasks/validate.rake +92 -0
  138. data/nanoc.gemspec +49 -0
  139. data/tasks/doc.rake +16 -0
  140. data/tasks/test.rake +46 -0
  141. data/test/base/core_ext/array_spec.rb +73 -0
  142. data/test/base/core_ext/hash_spec.rb +98 -0
  143. data/test/base/core_ext/pathname_spec.rb +27 -0
  144. data/test/base/core_ext/string_spec.rb +37 -0
  145. data/test/base/test_checksum_store.rb +35 -0
  146. data/test/base/test_code_snippet.rb +31 -0
  147. data/test/base/test_compiler.rb +403 -0
  148. data/test/base/test_compiler_dsl.rb +161 -0
  149. data/test/base/test_context.rb +31 -0
  150. data/test/base/test_data_source.rb +46 -0
  151. data/test/base/test_dependency_tracker.rb +262 -0
  152. data/test/base/test_directed_graph.rb +288 -0
  153. data/test/base/test_filter.rb +83 -0
  154. data/test/base/test_item.rb +179 -0
  155. data/test/base/test_item_rep.rb +579 -0
  156. data/test/base/test_layout.rb +59 -0
  157. data/test/base/test_memoization.rb +90 -0
  158. data/test/base/test_notification_center.rb +34 -0
  159. data/test/base/test_outdatedness_checker.rb +394 -0
  160. data/test/base/test_plugin.rb +30 -0
  161. data/test/base/test_rule.rb +19 -0
  162. data/test/base/test_rule_context.rb +65 -0
  163. data/test/base/test_site.rb +190 -0
  164. data/test/cli/commands/test_compile.rb +33 -0
  165. data/test/cli/commands/test_create_item.rb +14 -0
  166. data/test/cli/commands/test_create_layout.rb +28 -0
  167. data/test/cli/commands/test_create_site.rb +24 -0
  168. data/test/cli/commands/test_deploy.rb +74 -0
  169. data/test/cli/commands/test_help.rb +12 -0
  170. data/test/cli/commands/test_info.rb +11 -0
  171. data/test/cli/commands/test_prune.rb +98 -0
  172. data/test/cli/commands/test_update.rb +10 -0
  173. data/test/cli/test_cli.rb +102 -0
  174. data/test/cli/test_error_handler.rb +29 -0
  175. data/test/cli/test_logger.rb +10 -0
  176. data/test/data_sources/test_filesystem.rb +433 -0
  177. data/test/data_sources/test_filesystem_unified.rb +536 -0
  178. data/test/data_sources/test_filesystem_verbose.rb +357 -0
  179. data/test/extra/core_ext/test_enumerable.rb +30 -0
  180. data/test/extra/core_ext/test_pathname.rb +17 -0
  181. data/test/extra/core_ext/test_time.rb +15 -0
  182. data/test/extra/deployers/test_fog.rb +67 -0
  183. data/test/extra/deployers/test_rsync.rb +100 -0
  184. data/test/extra/test_auto_compiler.rb +417 -0
  185. data/test/extra/test_file_proxy.rb +19 -0
  186. data/test/extra/test_vcs.rb +22 -0
  187. data/test/extra/validators/test_links.rb +62 -0
  188. data/test/extra/validators/test_w3c.rb +47 -0
  189. data/test/filters/test_asciidoc.rb +22 -0
  190. data/test/filters/test_bluecloth.rb +18 -0
  191. data/test/filters/test_coderay.rb +44 -0
  192. data/test/filters/test_coffeescript.rb +18 -0
  193. data/test/filters/test_colorize_syntax.rb +379 -0
  194. data/test/filters/test_erb.rb +105 -0
  195. data/test/filters/test_erubis.rb +78 -0
  196. data/test/filters/test_haml.rb +96 -0
  197. data/test/filters/test_kramdown.rb +18 -0
  198. data/test/filters/test_less.rb +113 -0
  199. data/test/filters/test_markaby.rb +24 -0
  200. data/test/filters/test_maruku.rb +18 -0
  201. data/test/filters/test_mustache.rb +25 -0
  202. data/test/filters/test_rainpress.rb +29 -0
  203. data/test/filters/test_rdiscount.rb +31 -0
  204. data/test/filters/test_rdoc.rb +18 -0
  205. data/test/filters/test_redcarpet.rb +73 -0
  206. data/test/filters/test_redcloth.rb +33 -0
  207. data/test/filters/test_relativize_paths.rb +533 -0
  208. data/test/filters/test_rubypants.rb +18 -0
  209. data/test/filters/test_sass.rb +229 -0
  210. data/test/filters/test_slim.rb +35 -0
  211. data/test/filters/test_typogruby.rb +21 -0
  212. data/test/filters/test_uglify_js.rb +30 -0
  213. data/test/filters/test_xsl.rb +105 -0
  214. data/test/filters/test_yui_compressor.rb +44 -0
  215. data/test/gem_loader.rb +11 -0
  216. data/test/helper.rb +207 -0
  217. data/test/helpers/test_blogging.rb +754 -0
  218. data/test/helpers/test_breadcrumbs.rb +81 -0
  219. data/test/helpers/test_capturing.rb +41 -0
  220. data/test/helpers/test_filtering.rb +106 -0
  221. data/test/helpers/test_html_escape.rb +32 -0
  222. data/test/helpers/test_link_to.rb +249 -0
  223. data/test/helpers/test_rendering.rb +89 -0
  224. data/test/helpers/test_tagging.rb +87 -0
  225. data/test/helpers/test_text.rb +24 -0
  226. data/test/helpers/test_xml_sitemap.rb +103 -0
  227. data/test/tasks/test_clean.rb +67 -0
  228. metadata +327 -15
  229. data/bin/nanoc-select +0 -86
  230. data/lib/nanoc-select.rb +0 -11
File without changes
@@ -0,0 +1,3 @@
1
+ For a list of all changes, please see the changelog on the project repository
2
+ instead (http://projects.stoneship.org/hg/nanoc). For release notes, please
3
+ see the NEWS file.
data/Gemfile ADDED
@@ -0,0 +1,32 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem 'albino'
6
+ gem 'bluecloth'
7
+ gem 'builder'
8
+ gem 'coderay'
9
+ gem 'coffee-script'
10
+ gem 'erubis'
11
+ gem 'haml'
12
+ gem 'kramdown'
13
+ gem 'less', '~> 2.0'
14
+ gem 'markaby'
15
+ gem 'maruku'
16
+ gem 'mime-types'
17
+ gem 'mustache'
18
+ gem 'nokogiri'
19
+ gem 'rack'
20
+ gem 'rainpress'
21
+ gem 'rdiscount'
22
+ gem 'rdoc'
23
+ gem 'redcarpet'
24
+ gem 'RedCloth'
25
+ gem 'rubypants'
26
+ gem 'sass', '~> 3.1'
27
+ gem 'slim'
28
+ gem 'systemu'
29
+ gem 'typogruby'
30
+ gem 'uglifier'
31
+ gem 'w3c_validators'
32
+ gem 'yuicompressor'
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2007-2012 Denis Defreyne and contributors
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
data/NEWS.md ADDED
@@ -0,0 +1,470 @@
1
+ # nanoc news
2
+
3
+ ## 3.3 (2012-02-12)
4
+
5
+ Base:
6
+
7
+ * Dropped the “3” suffix on nanoc3/Nanoc3
8
+ * Turned Rake tasks into proper nanoc commands
9
+ * Improved dependency tracking
10
+ * Added support for locals in filters and layouts
11
+
12
+ Extensions:
13
+
14
+ * Added support for deployment using Fog [Jack Chu]
15
+ * Added CoffeeScript filter [Riley Goodside]
16
+ * Added XSL filter [Arnau Siches]
17
+ * Added YUICompress filter [Matt Keveney]
18
+ * Added pygments.rb to supported syntax colorizers
19
+ * Allowed syntax colorizer to colorize outside `pre` elements [Kevin Lynagh]
20
+ * Added support for HTTPS link validation [Fabian Buch]
21
+ * Added support for (automatically) pruning stray output files [Justin Hileman]
22
+ * Added deploy command
23
+
24
+ ## 3.2.4 (2012-01-09)
25
+
26
+ * Fixed bug which would cause some reps not to be compiled when invoking nanoc programmatically
27
+ * Made data source configuration location a bit more obvious
28
+ * Fixed watch command under Windows
29
+ * Made filesystem data source ignore UTF-8 BOM
30
+ * Improved compatibility of colorize_syntax filter with older libxml versions
31
+
32
+ ## 3.2.3 (2011-10-31)
33
+
34
+ * Made syntax colorizer only strip trailing blank lines instead of all blanks
35
+ * Improved Ruby 1.9.x compatibility
36
+ * Made default rakefile require rubygems if necessary
37
+ * Made filename/content argument of `Nanoc3::Item#initialize` mandatory
38
+
39
+ ## 3.2.2 (2011-09-04)
40
+
41
+ * Fixed command usage printing
42
+ * Made relativize_paths filter handle Windows network paths [Ruben Verborgh]
43
+ * Made watcher use correct configuration
44
+ * Allowed code blocks to start with a non-language shebang line
45
+
46
+ ## 3.2.1 (2011-07-27)
47
+
48
+ * Made `@config` available in rules file
49
+ * Fixed `#readpartial` issue on JRuby [Matt Keveney]
50
+ * Fixed possible `@cache` name clash in memoization module
51
+ * Fixed options with required arguments (such as `--port` and `--host`)
52
+ * Fixed broken `#check_availability`
53
+ * Fixed error handling in watch command
54
+
55
+ ## 3.2 (2011-07-24)
56
+
57
+ Base:
58
+
59
+ * Sped up nanoc quite a bit
60
+ * Added progress indicator for long-running filters
61
+ * Made all source data, such as item attributes, frozen during compilation
62
+ * Added --color option to force color on
63
+ * Cleaned up internals, deprecating several parts and/or marking them as private in the progress
64
+ * Allowed custom commands in commands/
65
+
66
+ Extensions:
67
+
68
+ * Added AsciiDoc filter
69
+ * Added Redcarpet filter [Peter Aronoff]
70
+ * Added Slim filter [Zaiste de Grengolada]
71
+ * Added Typogruby filter
72
+ * Added UglifyJS filter [Justin Hileman]
73
+ * Added `:items` parameter for the XML site map [Justin Hileman]
74
+ * Added support for params to ERB
75
+ * Added `:default_colorizer` parameter to the `:colorize_syntax` filter
76
+ * Allowed for passing arbitrary options to pygmentize [Matthias Vallentin]
77
+ * Exposed RedCloth parameters in the filter [Vincent Driessen]
78
+
79
+ ## 3.1.9 (2011-06-30)
80
+
81
+ * Really fixed dependency generation between Sass partials this time
82
+ * Updated Less filter to 2.0
83
+ * Made colorize_syntax filter throw an error if pygmentize is not available
84
+
85
+ ## 3.1.8 (2011-06-25)
86
+
87
+ * Made link validator accept https: URLs
88
+ * Fixed erroneous handling of layouts with names ending in index
89
+ * Fixed dependency generation between Sass partials
90
+ * Fixed errors related to thread requires
91
+ * Fixed crash while handling load errors
92
+ * Improved encoding handling while reading files
93
+
94
+ ## 3.1.7 (2011-05-03)
95
+
96
+ * Restored compatibility with Sass 3.1
97
+
98
+ ## 3.1.6 (2010-11-21)
99
+
100
+ * Fixed issues with incompatible encodings
101
+
102
+ ## 3.1.5 (2010-08-24)
103
+
104
+ * Improved `#render` documentation
105
+ * Improved metadata section check so that e.g. raw diffs are handled properly
106
+ * Deprecated using `Nanoc3::Site#initialize` with a non-`"."` argument
107
+ * Added Ruby engine to version string
108
+ * Allowed the `created_at` and `updated_at` attributes used in the `Blogging` helper to be `Date` instances
109
+
110
+ ## 3.1.4 (2010-07-25)
111
+
112
+ * Made INT and TERM signals always quit the CLI
113
+ * Allowed relative imports in LESS
114
+ * Made sure modification times are unchanged for identical recompiled items
115
+ * Improved link validator error handling
116
+ * Made pygmentize not output extra divs and pres
117
+ * Allowed colorizers to be specified using symbols instead of strings
118
+ * Added scss to the default list of text extensions
119
+
120
+ ## 3.1.3 (2010-04-25)
121
+
122
+ * Removed annoying win32console warning [Eric Sunshine]
123
+ * Removed color codes when not writing to a terminal, or when writing to Windows’ console when win32console is not installed [Eric Sunshine]
124
+ * Added .xhtml and .xml to list of text extensions
125
+ * Improved support for relative Sass @imports [Chris Eppstein]
126
+
127
+ ## 3.1.2 (2010-04-07)
128
+
129
+ * Fixed bug which could cause incorrect output when compilation of an item is delayed due to an unmet dependency
130
+
131
+ ## 3.1.1 (2010-04-05)
132
+
133
+ * Sass `@import`s now work for files not managed by nanoc
134
+ * Rake tasks now have their Unicode description decomposed if necessary
135
+
136
+ ## 3.1 (2010-04-03)
137
+
138
+ New:
139
+
140
+ * An `Item#rep_named(name)` function for quickly getting a certain rep
141
+ * An `Item#compiled_content` function for quickly getting compiled content
142
+ * An `Item#path` function for quickly getting the path of an item rep
143
+ * A new “+” wildcard in rule patterns that matches one or more characters
144
+ * A `view` command that starts a web server in the output directory
145
+ * A `debug` command that shows information about the items, reps and layouts
146
+ * A `kramdown` filter ([kramdown site](http://kramdown.rubyforge.org/))
147
+ * A diff between the previously compiled content and the last compiled content is now written to `output.diff` if the `enable_output_diff` site configuration attribute is true
148
+ * Assigns, such as `@items`, `@layouts`, `@item`, … are accessible without `@`
149
+ * Support for binary items
150
+
151
+ Changed:
152
+
153
+ * New sites now come with a stylesheet item instead of a `style.css` file in the output directory
154
+ * The `deploy:rsync` task now use sensible default options
155
+ * The `deploy:rsync` task now accepts a config environment variable
156
+ * The `deploy:rsync` task now uses a lowercase `dry_run` environment variable
157
+ * The `maruku` filter now accepts parameters
158
+ * The `rainpress` filter now accepts parameters
159
+ * The `filesystem` data source is now known as `filesystem_verbose`
160
+ * Meta files and content files are now optional
161
+ * The `filesystem_compact` and `filesystem_combined` data sources have been merged into a new `filesystem_unified` data source
162
+ * The metadata section in `filesystem_unified` is now optional [Christopher Eppstein]
163
+ * The `--server` autocompile option is now known as `--handler`
164
+ * Assigns in filters are now available as instance variables and methods
165
+ * The `#breadcrumbs_trail` function now allows missing parents
166
+ * The `sass` filter now properly handles `@import` dependencies
167
+
168
+ Deprecated:
169
+
170
+ * `Nanoc3::FileProxy`; use one of the filename attributes instead
171
+ * `ItemRep#content_at_snapshot`; use `#compiled_content` instead
172
+ * The `last_fm`, `delicious` and `twitter` data sources; fetch online content into a cache by a rake task and load data from this cache instead
173
+
174
+ ## 3.0.9 (2010-02-24)
175
+
176
+ * Fixed 1.8.x parsing bug due to lack of parens which could cause “undefined method `to_iso8601_time` for #<String:0x…>” errors
177
+
178
+ ## 3.0.8 (2010-02-24)
179
+
180
+ * `#atom_tag_for` now works with base_urls that contain a path [Eric Sunshine]
181
+ * Generated root URLs in `#atom_feed` now end with a slash [Eric Sunshine]
182
+ * Autocompiler now recognises requests to index files
183
+ * `Blogging` helper now allows created_at to be a Time instance
184
+
185
+ ## 3.0.7 (2010-01-29)
186
+
187
+ * Fixed bug which could cause layout rules not be matched in order
188
+
189
+ ## 3.0.6 (2010-01-17)
190
+
191
+ * Error checking in `filesystem_combined` has been improved [Brian Candler]
192
+ * Generated HTML files now have a default encoding of UTF-8
193
+ * Periods in identifiers for layouts now behave correctly
194
+ * The `relativize_paths` filter now correctly handles “/” [Eric Sunshine]
195
+
196
+ ## 3.0.5 (2010-01-12)
197
+
198
+ * Restored pre-3.0.3 behaviour of periods in identifiers. By default, a file can have multiple extensions (e.g. `content/foo.html.erb` will have the identifier `/foo/`), but if `allow_periods_in_identifiers` in the site configuration is true, a file can have only one extension (e.g. `content/blog/stuff.entry.html` will have the identifier `/blog/stuff.entry/`).
199
+
200
+ ## 3.0.4 (2010-01-07)
201
+
202
+ * Fixed a bug which would cause the `filesystem_compact` data source to incorrectly determine the content filename, leading to weird “Expected 1 content file but found 3” errors [Eric Sunshine]
203
+
204
+ ## 3.0.3 (2010-01-06)
205
+
206
+ * The `Blogging` helper now properly handles item reps without paths
207
+ * The `relativize_paths` filter now only operates inside tags
208
+ * The autocompiler now handles escaped paths
209
+ * The `LinkTo` and `Tagging` helpers now output escaped HTML
210
+ * Fixed `played_at` attribute assignment in the `LastFM` data source for tracks playing now, and added a `now_playing` attribute [Nicky Peeters]
211
+ * The `filesystem_*` data sources can now handle dots in identifiers
212
+ * Required enumerator to make sure `#enum_with_index` always works
213
+ * `Array#stringify_keys` now properly recurses
214
+
215
+ ## 3.0.2 (2009-11-07)
216
+
217
+ * Children-only identifier patterns no longer erroneously also match parent (e.g.` /foo/*/` no longer matches `/foo/`)
218
+ * The `create_site` command no longer uses those ugly HTML entities
219
+ * Install message now mentions the IRC channel
220
+
221
+ ## 3.0.1 (2009-10-05)
222
+
223
+ * The proper exception is now raised when no matching compilation rules can be found
224
+ * The autocompile command no longer has a duplicate `--port` option
225
+ * The `#url_for` and `#feed_url` methods now check the presence of the `base_url` site configuration attribute
226
+ * Several outdated URLs are now up-to-date
227
+ * Error handling has been improved in general
228
+
229
+ ## 3.0 (2009-08-14)
230
+
231
+ New:
232
+
233
+ * Multiple data sources
234
+ * Dependency tracking between items
235
+ * Filters can now optionally take arguments
236
+ * `#create_page` and `#create_layout` methods in data sources
237
+ * A new way to specify compilation/routing rules using a Rules file
238
+ * A `coderay` filter ([CodeRay site](http://coderay.rubychan.de/))
239
+ * A `filesystem_compact` data source which uses less directories
240
+
241
+ Changed:
242
+
243
+ * Pages and textual assets are now known as “items”
244
+
245
+ Removed:
246
+
247
+ * Support for drafts
248
+ * Support for binary assets
249
+ * Support for templates
250
+ * Everything that was deprecated in nanoc 2.x
251
+ * `save_*`, `move_*` and `delete_*` methods in data sources
252
+ * Processing instructions in metadata
253
+
254
+ ## 2.2.2 (2009-05-18)
255
+
256
+ * Removed `relativize_paths` filter; use `relativize_paths_in_html` or `relativize_paths_in_css` instead
257
+ * Fixed bug which could cause nanoc to eat massive amounts of memory when an exception occurs
258
+ * Fixed bug which would cause nanoc to complain about the open file limit being reached when using a large amount of assets
259
+
260
+ ## 2.2.1 (2009-04-08)
261
+
262
+ * Fixed bug which prevented `relative_path_to` from working
263
+ * Split `relativize_paths` filter into two filter: `relativize_paths_in_html` and `relativize_paths_in_css`
264
+ * Removed bundled mime-types library
265
+
266
+ ## 2.2 (2009-04-06)
267
+
268
+ New:
269
+
270
+ * `--pages` and `--assets` compiler options
271
+ * `--no-color` commandline option
272
+ * `Filtering` helper
273
+ * `#relative_path_to` function in `LinkTo` helper
274
+ * `rainpress` filter ([Rainpress site](http://code.google.com/p/rainpress/))
275
+ * `relativize_paths` filter
276
+ * The current layout is now accessible through the `@layout` variable
277
+ * Much more informative stack traces when something goes wrong
278
+
279
+ Changed:
280
+
281
+ * The commandline option parser is now a lot more reliable
282
+ * `#atom_feed` now takes optional `:content_proc`, `:excerpt_proc` and `:articles` parameters
283
+ * The compile command show non-written items (those with `skip_output: true`)
284
+ * The compile command compiles everything by default
285
+ * Added `--only-outdated` option to compile only outdated pages
286
+
287
+ Removed:
288
+
289
+ * deprecated extension-based code
290
+
291
+ ## 2.1.6 (2009-02-28)
292
+
293
+ * The `filesystem_combined` data source now supports empty metadata sections
294
+ * The `rdoc` filter now works for both RDoc 1.x and 2.x
295
+ * The autocompiler now serves a 500 when an exception occurs outside compilation
296
+ * The autocompiler no longer serves index files when the request path does not end with a slash
297
+ * The autocompiler now always serves asset content correctly
298
+
299
+ ## 2.1.5 (2009-02-01)
300
+
301
+ * Added Ruby 1.9 compatibility
302
+ * The `filesystem` and `filesystem_combined` data sources now preserve custom extensions
303
+
304
+ ## 2.1.4 (2008-11-15)
305
+
306
+ * Fixed an issue where the autocompiler in Windows would serve broken assets
307
+
308
+ ## 2.1.3 (2008-09-27)
309
+
310
+ * The `haml` and `sass` filters now correctly take their options from assets
311
+ * The autocompiler now serves index files instead of 404s
312
+ * Layouts named “index” are now handled correctly
313
+ * The `filesystem_combined` data source now properly handles assets
314
+
315
+ ## 2.1.2 (2008-09-08)
316
+
317
+ * The utocompiler now compiles assets as well
318
+ * The `sass` filter now takes options (just like the `haml` filter)
319
+ * Haml/Sass options are now taken from the page *rep* instead of the page
320
+
321
+ ## 2.1.1 (2008-08-18)
322
+
323
+ * Fixed issue which would cause files not to be required in the right order
324
+
325
+ ## 2.1 (2008-08-17)
326
+
327
+ This is only a short summary of all changes in 2.1. For details, see the
328
+ [nanoc web site](http://nanoc.stoneship.org/). Especially the blog and the
329
+ updated manual will be useful.
330
+
331
+ New:
332
+
333
+ * New `rdiscount` filter ([RDiscount site](http://github.com/rtomayko/rdiscount))
334
+ * New `maruku` filter ([Maruku site](http://maruku.rubyforge.org/))
335
+ * New `erubis` filter ([Erubis site](http://www.kuwata-lab.com/erubis/))
336
+ * A better commandline frontend
337
+ * A new filesystem data source named `filesystem_combined`
338
+ * Routers, which decide where compiled pages should be written to
339
+ * Page/layout mtimes can now be retrieved through `page.mtime`/`layout.mtime`
340
+
341
+ Changed:
342
+
343
+ * Already compiled pages will no longer be re-compiled unless outdated
344
+ * Layout processors and filters have been merged
345
+ * Layouts no longer rely on file extensions to determine the layout processor
346
+ * Greatly improved source code documentation
347
+ * Greatly improved unit test suite
348
+
349
+ Removed:
350
+
351
+ * Several filters have been removed and replaced by newer filters:
352
+ * `eruby`: use `erb` or `erubis` instead
353
+ * `markdown`: use `bluecloth`, `rdiscount` or `maruku` instead
354
+ * `textile`: use `redcloth` instead
355
+
356
+ ## 2.0.4 (2008-05-04)
357
+
358
+ * Fixed `default.rb`’s `#html_escape`
359
+ * Updated Haml filter and layout processor so that @page, @pages and @config are now available as instance variables instead of local variables
360
+
361
+ ## 2.0.3 (2008-03-25)
362
+
363
+ * The autocompiler now honors custom paths
364
+ * The autocompiler now attempts to serve pages with the most appropriate MIME type, instead of always serving everything as `text/html`
365
+
366
+ ## 2.0.2 (2008-01-26)
367
+
368
+ * nanoc now requires Ruby 1.8.5 instead of 1.8.6
369
+
370
+ ## 2.0.1 (2008-01-21)
371
+
372
+ * Fixed a “too many open files” error that could appear during (auto)compiling
373
+
374
+ ## 2.0 (2007-12-25)
375
+
376
+ New:
377
+
378
+ * Support for custom layout processors
379
+ * Support for custom data sources
380
+ * Database data source
381
+ * An auto-compiler
382
+ * Pages have `parent` and `children`
383
+
384
+ Changed:
385
+
386
+ * The source has been restructured and cleaned up a great deal
387
+ * Filters are defined in a different way now
388
+ * The `eruby` filter now uses ERB instead of Erubis
389
+
390
+ Removed:
391
+
392
+ * The `filters` property; use `filters_pre` instead
393
+ * Support for Liquid
394
+
395
+ ## 1.6.2 (2007-10-23)
396
+
397
+ * Fixed an issue which prevented the content capturing plugin from working
398
+
399
+ ## 1.6.1 (2007-10-14)
400
+
401
+ * Removed a stray debug message
402
+
403
+ ## 1.6 (2007-10-13)
404
+
405
+ * Added support for post-layout filters
406
+ * Added support for getting a File object for the page, so you can now e.g. easily get the modification time for a given page (`@page.file.mtime`)
407
+ * Cleaned up the source code a lot
408
+ * Removed deprecated asset-copying functionality
409
+
410
+ ## 1.5 (2007-09-10)
411
+
412
+ * Added support for custom filters
413
+ * Improved Liquid support -- Liquid is now a first-class nanoc citizen
414
+ * Deprecated assets -- use something like rsync instead
415
+ * Added `eruby_engine` option, which can be `erb` or `erubis`
416
+
417
+ ## 1.4 (2007-07-06)
418
+
419
+ * nanoc now supports ERB (as well as Erubis); Erubis no longer is a dependency
420
+ * `meta.yaml` can now have `haml_options` property, which is passed to Haml
421
+ * Pages can now have a `filename` property, which defaults to `index` [Dennis Sutch]
422
+ * Pages now know in what order they should be compiled, eliminating the need for custom page ordering [Dennis Sutch]
423
+
424
+ ## 1.3.1 (2007-06-30)
425
+
426
+ * The contents of the `assets` directory are now copied into the output directory specified in `config.yaml`
427
+
428
+ ## 1.3 (2007-06-24)
429
+
430
+ * The `@pages` array now also contains uncompiled pages
431
+ * Pages with `skip_output` set to true will not be outputted
432
+ * Added new filters
433
+ * Textile/RedCloth
434
+ * Sass
435
+ * nanoc now warns before overwriting in `create_site`, `create_page` and `create_template` (but not in compile)
436
+
437
+ ## 1.2 (2007-06-05)
438
+
439
+ * Sites now have an `assets` directory, whose contents are copied to the `output` directory when compiling [Soryu]
440
+ * Added support for non-eRuby layouts (Markaby, Haml, Liquid, …)
441
+ * Added more filters (Markaby, Haml, Liquid, RDoc [Dmitry Bilunov])
442
+ * Improved error reporting
443
+ * Accessing page attributes using instance variables, and not through `@page`, is no longer possible
444
+ * Page attributes can now be accessed using dot notation, i.e. `@page.title` as well as `@page[:title]`
445
+
446
+ ## 1.1.3 (2007-05-18)
447
+
448
+ * Fixed bug which would cause layoutless pages to be outputted incorrectly
449
+
450
+ ## 1.1.2 (2007-05-17)
451
+
452
+ * Backup files (files ending with a “~”) are now ignored
453
+ * Fixed bug which would cause subpages not to be generated correctly
454
+
455
+ ## 1.1 (2007-05-08)
456
+
457
+ * Added support for nested layouts
458
+ * Added coloured logging
459
+ * `@page` now hold the page that is currently being processed
460
+ * Index files are now called “content” files and are now named after the directory they are in [Colin Barrett]
461
+ * It is now possible to access `@page` in the page’s content file
462
+
463
+ ## 1.0.1 (2007-05-05)
464
+
465
+ * Fixed a bug which would cause a “no such template” error to be displayed when the template existed but compiling it would raise an exception
466
+ * Fixed bug which would cause pages not to be sorted by order before compiling
467
+
468
+ ## 1.0 (2007-05-03)
469
+
470
+ * Initial release