Release notes
4.13.2 (2024-11-12)
Fixes:
4.13.1 (2024-11-04)
Enhancements:
4.13.0 (2024-06-19)
Features:
- Added
--focus
option to thecompile
andlive
commands (#1707)
Fixes:
- Made
delete
log lines use relative (not absolute) paths (#1706)
Changes:
- Dropped support for Ruby 3.0 (EOL) (#1704)
4.12.21 (2024-04-27)
Fixes:
- Fixed a rare “private method printf” error (#1694)
Enhancements:
- Sped up checksummer and made it more reliable and correct (#1693)
- Removed Nokogiri warning message on JRuby (#1700)
4.12.20 (2024-03-15)
Enhancements:
- Add base64 as a gem dependency (#1681)
- Specify pry as one of nanoc-cli’s runtime dependencies (#1679) [Junichi Sato]
- Add
org
extension (for Org Mode) to list of text file extensions (#1688) [Antar]
4.12.19 (2023-12-08)
Fixes:
- Restored support for YAML aliases (#1677) [zor-el]
- Fixed inadvertent reference to
Nanoc::
namespace from withinnanoc-cli
gem (#1673)
Enhancements:
- Made the default Rules file use
#passthrough
(#1668) [Hendrik Jäger] - Added support for slim 5.x (#1675)
- Added support for psych 5.x (#1674)
- Added
source_code_uri
metadata to gemspecs (#1669) [Junichi Sato]
4.12.18 (2023-10-15)
Fixes:
- Fixed example kramdown rules generated by
create-site
to have the correct extension for non-index .md files (#1665) [Hendrik Jäger] - Fixed issue which could cause not all pages to be compiled after an interrupt (⌃C) (#1641, #1667)
Enhancements:
- Made
create-site
generate aGemfile
that includesnanoc
(#1666)
4.12.17 (2023-09-30)
Fixes:
- Fix dart-sass compatibility (#1664)
- Remove accidental dependency from
nanoc-core
ontonanoc
4.12.16 (2023-06-24)
Fixes:
- Made error handler print full error message if available (#1657)
4.12.15 (2023-02-06)
Fixes:
- Fixed an issue which made items always be considered outdated in sites with data sources with a custom
items_root
defined (#1640, #1644)
4.12.14 (2022-12-03)
Fixes:
- Fixed an issue which would cause
Invalid argument @ io_write
on larger sites (#1636)
Enhancements:
- Made Nanoc store temporary data (in
tmp/nanoc/
) in compressed form (#1637)
4.12.13 (2022-11-30)
Fixes:
- Prevented an issue where items could have two leading slashes in their identifier when using the
filesystem
data source’sextra_files
option (#1622) - Fixed an issue which would make
nanoc compile --watch
ornanoc live
crash if the layouts directory does not exist (#1625, #1626) - Fixed the usage of the
show-rules
command (it takes no arguments) (#1628) - Fixed an issue which could make Nanoc crash with
Stopwatch::AlreadyRunningError
(#1631, #1633)
4.12.12 (2022-11-15)
Fixes:
- Fixed a bug that could incorrectly raise compilation dependency cycle errors (#1620)
4.12.11 (2022-11-12)
Enhancements:
- Further improved compilation speed, especially for partial recompilation (#1609, #1612, #1613, #1615)
4.12.10 (2022-10-18)
Enhancements:
4.12.9 (2022-10-08)
Fixes:
4.12.8 (2022-10-03)
Fixes:
- Fixed incorrect documentation regarding the IP addresses that the
live
andview
commands listen on (#1584, #1585)
Enhancements:
- Wrapped URLs printed to stdout in angular brackets (like
<http://…>
) so terminals can detect them properly (#1589) [Daniel Aleksandersen] - Made various performance improvements (#1596, #1597, #1598)
4.12.7 (2022-06-06)
Fixes:
Enhancements:
- Replaced UglifyJS (unmaintained) with Terser (#1578, #1579)
- Dropped support for Ruby 2.6 (EOL) (#1580)
4.12.6 (2022-05-28)
Fixes:
- Fixed a crash in
nanc view
when a TUN device is present (#1567) [Sergio Durigan Junior] - Fixed a crash when content/ has non-writable binary files (#1576)
- Fixed inconsistency in allowed YAML classes in metadata (#1574) [Daniel Aleksandersen]
4.12.5 (2022-01-22)
Fixes:
- Prefer YAML.safe_load over YAML.load (#1566)
Enhancements:
- Added
Time
to the list of permitted classes for YAML (#1565) [Hideaki Nagamine]
4.12.4 (2022-01-15)
Fixes:
Enhancements:
- Added
Date
to the list of permitted classes for YAML (#1560) [Damien Mathieu] - Made Nanoc log the filename when it is not absolute (#1557) [Johnny Willemsen]
4.12.3 (2021-10-09)
Fixes:
- Switched ERB to use keyword arguments (#1547, #1550) [Daniel Aleksandersen]
- Removed use_helper re-definition warning (#1548, #1553) [Daniel Aleksandersen]
- Fixed issue which could cause items not to be recalculated when removing items in the preprocess block (#1554, #1555)
- Dropped Nokogumbo in favor of Nokogiri (#1546, #1549) [Daniel Aleksandersen]
4.12.2 (2021-05-28)
Enhancements:
- Add support for
video/@poster
to relativize_paths (#1544) [Masayuki Higashino]
4.12.1 (2021-04-05)
Enhancements:
- Made Nanoc expand paths containing
~
(home directory) in the filesystem data source configuration (!4, !5, !6)
4.12.0 (2021-02-20)
Features:
- Added
-W
/--watch
flag to thecompile
command (requires thenanoc-live
gem)
Enhancements:
- Made the compiler cache binary items
4.11.23 (2021-01-16)
Fixes:
- Fixed issue which could cause nanoc-live to keep running and use 100% CPU (#1538)
4.11.22 (2021-01-01)
Changes:
- Dropped support for Ruby 2.4 (EOL)
Fixes:
- Added support for Ruby 3.0
4.11.21 (2020-12-18)
Fixes:
- Made clonefile usage optional
You can add clonefile
to your Gemfile to let Nanoc make use of your filesystem’s copy-on-write functionality (if available), which is not only faster but also more space-efficient. In the previous release, 4.11.20, clonefile was mandatory, even though it won’t properly compile on older operating systems.
4.11.20 (2020-12-18)
Enhancements:
- Made Nanoc use copy-on-write when available (preferred over hardlinking/copying) (#1509, #1511) [Daniel Aleksandersen]
4.11.19 (2020-10-16)
Fixes:
- Fixed an issue which could cause compiled pages to contain the content of another page (#1501, #1510)
4.11.18 (2020-06-17)
Fixes:
- Fixed a
Encoding::CompatibilityError
that would be thrown e.g. when using thecontracts
library (#1502, #1505) [Ethan Crawford] - Fixed an issue which could cause Nanoc not to compile all items on Ruby 2.7 (#1501, #1507)
4.11.17 (2020-06-12)
Fixes:
- Fixed issue which could cause Nanoc to throw a timeout exception (#1503)
4.11.16 (2020-04-26)
Fixes:
- Fixed uninitialized constant/undefined method bug with guard-nanoc (#1494, #1495)
- Removed remaining more “Using the last argument …” warnings (#1498)
Enhancements:
- Ignore redirects to self (misued for cookies) (#1496) [Daniel Aleksandersen]
4.11.15 (2020-03-07)
Enhancements:
- Made
prune
print files to delete when using dry run (#1474, #1476) - Made Nanoc emit a warning when the
contracts
library is loaded, as it can cause severe slowdowns (#1483, #1489) - Made the default Rules handle
index.*
files (#1485, #1490)
Fixes:
- Fixed warnings on Ruby 2.7
- Made
@rep
(not just@item_rep
) available in the Rendering helper (#1484, #1488) - Made the
:relativize_paths
filter relativize thevalue
attribute, not thecontent
one, of theparam
HTML element (#1491) - Made the
:relativize_paths
filter support relativizing paths insrcset
attributes (#1475, #1492) - Fixed an issue that could cause items to be marked as outdated when they shouldn’t be (#1471, #1493).
4.11.14 (2019-11-10)
Fixes:
- Fixed an issue where removing and re-adding an item would not cause dependent items to be recompiled (#1463, #1464)
4.11.13 (2019-11-02)
Fixes:
- Fixed an issue which could cause Nanoc to freeze when generating the output diff on Windows
4.11.12 (2019-09-21)
Fixes:
- Fixed an issue with the output diff, where some hunks would not appear (#1457)
4.11.11 (2019-09-07)
Fixes:
4.11.10 (2019-08-31)
Fixes:
- Fixed problem with sporadic
DDMetrics::Stopwatch::AlreadyRunningError
(#1445)
4.11.9 (2019-08-17)
Enhancements:
- Allowed specifying excluded files across all checks (#1438)
- Replace handlebars.rb with ruby-handlebars (#1443)
- Improved dependency tracking for Sass imports (#1451, #1452) [Romain Goyet]
4.11.8 (2019-08-08)
Fixes:
- Fixed issue with
#find_all
yielding incorrect objects, causing a crash when attempting to access attributes (#1446, #1447)
4.11.7 (2019-07-28)
Fixes:
- Fixed handling of protocol-relative URLs (#1444)
4.11.6 (2019-07-06)
Fixes:
- Fixed crash in the
show-data
command when printing layout outdatedness (#1432) - Fixed crash in the
view
command when host/port is not specified
Enhancements:
- Added
#env_name
to@config
(#1437) - Made the
external_links
checker detect more kinds of broken links (#1422) [Daniel Aleksandersen] - Made the
external_links
checker shuffle the list of links (#1429) [Daniel Aleksandersen]
4.11.5 (2019-04-30)
Fixes:
4.11.4 (2019-04-28)
Fixes:
- Fixed an issue which could cause
#compiled_content
to sometimes return compiled content that erroneously includes the layout (#1412, #1421)
4.11.3 (2019-04-27)
Enhancements:
- Set a User-Agent for HTTP requests made by the
external_links
check (#1417) [Daniel Aleksandersen] - Added
atom:link[type]
attributes (#1415) [Daniel Aleksandersen] - Made the
external_links
check treat permanent redirects as errors (#1419) [Daniel Aleksandersen]
4.11.2 (2019-02-16)
Fixes:
- Fixed issue which prevented Sass (not SCSS) files from being imported (#1397, #1407) [Alexander Groß]
4.11.1 (2019-02-09)
Fixes:
4.11.0 (2018-12-01)
Features:
- Added support for generating inline source maps for Sass (#1376) [Gregory Pakosz]
- Added
:tiebreaker
option to the breadcrumbs helper, so that it can deal with ambiguity (#1368)
4.10.4 (2018-12-01)
Fixes:
4.10.3 (2018-10-28)
Fixes:
4.10.2 (2018-10-21)
Fixes:
- Fixed an issue where changing a layout rule’s parameters would not recompile items that use the layout for this layout rule (#1372, #1373)
4.10.1 (2018-10-16)
Fixes:
- Made Nanoc no longer crash when the Sass gem is not available (#1371)
4.10.0 (2018-10-14)
Features:
- Added source map support to the Sass filter (#1365) [Gregory Pakosz]
- Added a
nanoc()
Sass function (#1365) [Gregory Pakosz]
Fixes:
- Ensured breadcrumb trail always ends in item itself (#1367)
Enhancemens:
- Made Nanoc error when meta-file cannot be unambiguously associated (#1370)
4.9.9 (2018-10-06)
Fixes:
- Allowed
items_root
andlayouts_root
to be null
4.9.8 (2018-10-05)
Fixes:
- Fixed missing
configuration-schema.json
file
4.9.7 (2018-10-05)
Enhancements:
- Added
title_proc:
option to the blogging helper (#1362, #1363) [Thomas Hochstein] - Dropped Ruby 2.3 support, as it is no longer maintained (#1361)
- Added static configuration file verification (#1360)
4.9.6 (2018-09-19)
Fixes:
- Fixed an issue which would cause the checksum of binary items created by the filesystem data source not to be updated when the content changes (#1358, #1359)
4.9.5 (2018-09-15)
Fixes:
- Fixed an issue which would cause Nanoc to trip up when the working directory changes during compilation (#1338, #1353, #1354, #1357)
4.9.4 (2018-08-19)
Fixes:
- Fixed an issue where compiled content of items generated in the preprocessor would not be available in the postprocessor (#1341, #1348)
4.9.3 (2018-06-09)
Enhancements:
- Added an
:exclude
option torelativize_paths
, to exclude certain paths from being relativized (#1340)
4.9.2 (2018-03-30)
Fixes:
- Fixed bug which caused
output_dir
not to be ignored when checking for excludes in pruner (#1313, #1324) - Fixed bug which caused
Filter#depend_on
not to create a proper dependency when the depended-on item has no representations (#1330)
Enhancements:
- Made Nanoc use hardlinks instead of copying files when possible (#1321) [Antonio Terceiro]
- Made Nanoc show an understandable error when a filter returns
nil
by accident (#1323, #1326) - Made the checks also consider
.xhtml
and.htm
files (#1328, #1329) - Made Nanoc not report thread exceptions, which would freeze Ruby (#1332)
4.9.1 (2018-02-22)
Fixes:
- Fixed issue which could cause terminal output to be jumbled up (#1312, #1316)
- Made pruner ignore
output_dir
configuration attribute when checking for excludes (#1313, #1317) - Fixed handling of interrupts (SIGINT) in the
shell
command (#1309, #1318) - Added workaround for
relativize_paths
manglinggcse:search
elements (#1319, #1320)
Enhancements:
- Allowed overriding
<id>
and<link rel="alternate">
elements in Atom feed generator (#1301) [Ian Young] - Made
sh
an alias for theshell
command (#1308) - Simplified the default configuration (#1311)
- Removed routing rules from newly-created sites (#1310)
4.9.0 (2018-01-31)
Features:
- Added
Identifier#match?
(#1305) - Added
Nanoc::Check.define
- Made Nanoc read checks configuration from
nanoc.yaml
(#1296)
Enhancements:
- Made Nanoc write out files asynchronously (#1288)
- Made the filesystem data source ignore an initial blank line after the frontmatter (#1292, #1293)
- Made the
check
command run deploy checks by default (#1304) - Made Nanoc honor the
NO_COLOR
environment variable (#1306)
Bugs:
- Fixed a potential deadlock in the
external_links
check (#1294, #1295) - Fixed the
external_links
check’s handling of redirects without aLocation
header (#1297, #1302) - Fixed the
external_links
check’s handling of URLs with invalid components (#1303)
4.8.19 (2018-01-01)
Enhancements:
- Made
write nil
skip routing rule (#1286)
4.8.18 (2017-12-28)
Enhancements:
- Added
.tex
to the default list of text extensions (#1280) [Rien Maertens]
Fixes:
- Made
#breadcrumbs_trail
smarter about picking the right parent when there is ambiguity (#1278, #1279) - Made
#find_all
be callable with block instead of an argument (likeEnumerable#find_all
) (#1284, #1285)
4.8.17 (2017-12-16)
Enhancements:
4.8.16 (2017-12-09)
Fixes:
- Made
adsf-live
not be required fornanoc view
, unless running with--live-reload
4.8.15 (2017-12-02)
Fixes:
- Made
nanoc
show item being compiled in crash logs of all errors, not just errors inheriting fromStandardError
(#1258) - Made Erubi stack traces include the filename of the item or layout that is being compiled (#1255, #1259)
- Prevented
view --live-reload
from crashing when the output directory does not exist (#1254, #1261)
Enhancements:
- Made pruner not remove the output directory if it’s empty (#1260)
4.8.14 (2017-11-27)
Same as 4.8.13, but published with the proper release date.
4.8.13 (2017-11-27)
Enhancements:
- Added
-L
/--live-reload
option tonanoc view
(#1251)
4.8.12 (2017-11-16)
Fixes:
- Fixed issue where changing
:output_dir
during preprocessing would prevent Nanoc from performing incremental compilation (#1248, #1249)
Enhancements:
- Allowed creation of pattern from symbols, not just strings (#1247) [Gregory Pakosz]
4.8.11 (2017-10-28)
Enhancements:
- Added
:save_with
parameter torelativize_paths
filter (#1237) [Gregory Pakosz] - Made error messages more compact and easier to read
4.8.10 (2017-10-08)
Fixes:
- Fixed handling of four dashes for separating metadata (#1222, #1223)
- Made
#raw_path
unavailable in rules context (#1231)
4.8.9 (2017-09-22)
Fixes:
- Fixed “uninitialized constant DisabledContracts::Args” error
4.8.8 (2017-09-22)
Enhancements:
- Added
#dig
to configuration (#1221) [Gregory Pakosz]
4.8.7 (2017-09-18)
Fixes:
- Fixed “uninitialized constant CGI” issue (#1218)
4.8.6 (2017-09-17)
Fixes:
- Fixed issue which would cause items not to be considered as outdated when their content and/or attributes are changed in the preprocessor (#1216, #1217)
4.8.5 (2017-09-07)
Enhancements:
- Made
nanoc check
accept hyphenated check names (e.g.internal-links
, in addition tointernal_links
). -
compile --verbose
now prints “cached” rather than “identical” when cached compiled content is used. (#1214)
4.8.4 (2017-09-03)
Fixes:
4.8.3 (2017-08-30)
Fixes:
- Disallowed full identifiers from ending with a slash (#1206)
- Made
nanoc view
listen on 127.0.0.1, not 0.0.0.0, by default (#1205)
Enhancements:
- Made
nanoc view
print site URL (#1204) - Made
nanoc
search for parent directory containing Nanoc site (#1210)
4.8.2 (2017-08-19)
Fixes:
- Fixed compatibility issue with guard-nanoc
4.8.1 (2017-08-06)
Enhancements:
- Various speed improvements
4.8 (2017-07-17)
Features:
- Added
asciidoctor
filter (#1199)
4.7.14 (2017-07-16)
Enhancements:
4.7.13 (2017-07-02)
Enhancements:
4.7.12 (2017-06-23)
Fixes:
- Fixed an issue in which the fog deployer could run out of open file descriptors (#1189)
Enhancements:
- Made changes to
@config
only cause outdatedness of items that depend on@config
(#1188)
4.7.11 (2017-06-17)
Fixes:
- Made the
external_links
check always use GET, not HEAD (#1178, #1179) - Fixed an issue where changing identifiers during preprocessing could cause a crash (#1184, #1185)
Enhancements:
- Added
--preprocess
toshell
command, to load preprocessed site data (#1180)
4.7.10 (2017-05-14)
Fixes:
- Fixed behavior of
parent_config_file
so that it merges, rather than overwrites (#1176) [Gregory Pakosz]
Enhancements:
- Made
slim
filter show the filename in error messages (#1175) [Alexander Groß] - Added
#use_helper
as an alternative to#include
for enabling helpers (#1170)
4.7.9 (2017-05-01)
Fixes:
Enhancements:
This release drops support for Ruby 2.2, as it is no longer maintained.
4.7.8 (2017-04-22)
Fixes:
- Fixed a crash when printing dependency cycle error messages (#1164, #1166)
- Fixed incorrect ordering in dependency cycle error messages (#1167, #1168)
- Fixed a crash when attempting to print malformed UTF-8 strings (#1163, #1165)
Enhancements:
4.7.7 (2017-04-16)
Enhancements:
- Added
--diff
option tocompile
command as a one-time alternative toenable_output_diff
(#1155) - Sped up incremental compilation (#1156, #1157)
4.7.6 (2017-04-15)
Enhancements:
- Added support for
:html5
inrelativize_paths
andcolorize_syntax
filters (#1153)
4.7.5 (2017-04-01)
Fixes:
Enhancements:
- Made
show-data
print all outdatedness reasons, not just the first (#1142) - Sped up
@items.find_all
(#1147)
4.7.4 (2017-03-29)
Enhancements:
- Made attribute dependencies cause outdatedness less often (#1136, #1137, #1138)
- Improved speed of Rules file handling (#1140)
4.7.3 (2017-03-26)
Fixes:
- Fixed an issue which could cause a missing file for a snapshot that is not
:last
not to be regenerated when compiling (#1134, #1135)
4.7.2 (2017-03-21)
Fixes:
4.7.1 (2017-03-19)
Fixes:
Enhancements:
- Made
compile --verbose
print percentiles rather than averages (#1122) - Improved dependency cycle error messages (#1123)
4.7 (2017-03-15)
Features:
4.6.4 (2017-03-10)
Fixes:
- Fixed issue where
compile --verbose
would show misleading timing information (#1113)
4.6.3 (2017-03-05)
Fixes:
- Fixed
Errno::ENOENT
crash (#1094, #1109) - Fixed undefined method
#reverse_each
crash (#1107, #1108) - Fixed compilation speed issue introduced in 4.6.2 (#1106)
4.6.2 (2017-03-04)
Fixes:
- Fixed crash in
#binary?
(#1082, #1083, #1084) - Fixed issue which would cause the file referenced by
#raw_path
not to exist (#1097, #1099)
Enhancements:
- Allowed calling
#write
multiple times in the same rule (#1037, #1085) - Changed the
html
check to use validator.nu (#1104)
4.6.1 (2017-01-29)
Fixes:
- Fixed table formatting in
compile --verbose
(#1074) [Hugo Peixoto]
Enhancements:
4.6 (2017-01-22)
Features:
- Made
#content_for
accept a string as well as a block, to allow setting captured content outside of ERB (#1066, #1073) - Added
#raw_content=
to items and layouts during preprocessing (#1057) - Added
#snapshot?
to item rep views (#1056)
Enhancements:
4.5.4 (2017-01-16)
Fixes:
4.5.3 (2017-01-15)
Fixes:
- Fixed “Fixnum is deprecated” message (#1061, #1062)
- Fixed
:pre
snapshot not being created for items that are not laid out (#1064, #1065)
4.5.2 (2017-01-11)
Fixes:
- Fixed handling of periods in full identifiers (#1022, #1059)
- Fixed “cannot layout binary items” error message (#1058)
- Fixed escaping of URLs in sitemaps (#1052, #1054)
4.5.1 (2017-01-09)
Fixes:
- Fixed crash when Nokogiri is not installed (#1053)
4.5 (2017-01-09)
Features:
- Added Git deployer (#997)
4.4.7 (2017-01-05)
Fixes:
- Fixed issue that caused an item not to be considered outdated when only the mtime has changed (#1046)
- Removed stray
require 'parallel'
which could break theexternal_links
check (#1051) [Cédric Boutillier]
Enhancements:
- Made Nanoc not recompile compiled items after an exception occurs (#1044)
4.4.6 (2016-12-28)
Fixes:
4.4.5 (2016-12-24)
Fixes:
- Prevented stale data from making it into the checksum store and thereby blowing up in memory (#1004, #1027)
- Fixed slow recompile after adding many items to a site (#1028)
- Fixed wrong capturing helper output when the output field separator (
$,
) is set - Fixed issue that could cause items with multiple reps not to be recompiled when needed (#1031, #1032)
- Fixed error when fetching textual content of item whose
:last
snapshot is binary (#1035, #1036)
4.4.4 (2016-12-19)
Enhancements:
4.4.3 (2016-12-17)
Fixes:
- Prevented stale data from making it into the compiled content cache and thereby blowing up in memory (#1004, #1013)
- Fixed “about” and “IRC channel” links in default site
- Fixed accuracy of
<updated>
in Atom feed (use most recentupdated_at
orcreated_at
) (#1007, #1014)
Enhancements:
- Added support for non-legacy identifiers in
#breadcrumbs_trail
(#1010, #1011) - Defined checksum for
Nanoc::Int::Context
to make outdatedness checker more precise (#1008, #1012) - Made Nanoc raise an error when item reps are routed to a path that does not start with a slash (#1015, #1016)
4.4.2 (2016-11-27)
Fixes:
- Fixed “Maximum call stack size exceeded” issue in the
less
filter (#1001) - Fixed issue that could cause the
less
filter to not generate all necessary dependencies (#1003)
Enhancements:
- Improved the way that the crash log displays the item rep that is being compiled (#1000)
4.4.1 (2016-11-21)
Fixes:
- Fixed an issue where the
xsl
filter would not generate a correct dependency on the layout (#996)
Enhancements:
- Made
view
command use index filenames specified in theindex_filenames
site configuration attribute (#998)
4.4 (2016-11-19)
Features:
- Added support for Nanoc environments (#859)
4.3.8 (2016-11-18)
Enhancements:
- Improved support for Rouge 1.x and 2.x (#880) [Rémi Barraquand]
- Added
#include
to thenanoc shell
command (#973) - Improved speed of full and incremental compilations (#977, #985)
Fixes:
- Made routing rules and
#write
calls accept an identifier, and not just a string (#976) - Removed GC speed-up hacks, which became counterproductive in Ruby 2.2 (#975)
- Fixed issue which caused items to be always recompiled if
rep
/item_rep
orself
are used in those items’ rules (#982)
4.3.7 (2016-10-29)
Fixes:
- Fixed issue with
show-data
andshow-rules
commands not showing all data (#970) [Chris Chapman]
Enhancements:
- Improved speed of
compile
command (#968) - Improved speed of
prune
command (#969) - Made kramdown warnings include affected item rep (#967) [Gregory Pakosz]
- Made kramdown warnings configurable (#967) [Gregory Pakosz]
4.3.6 (2016-10-23)
Fixes:
- Made legacy patterns properly support full identifiers (#957)
- Fixed timezone issues in
#to_iso8601_date
(#961) - Fixed error when accessing item (rep) paths in shell command (#963)
- Fixed issue that caused
#path
to be nil inside compilation rules (#964) - Made
__FILE__
in Checks file be a absolute path (#966)
Enhancements:
- Made the command line write status information to stderr, not stdout (#958)
4.3.5 (2016-10-14)
Fixes:
- Handle
form/@action
inrelativize_paths
filter (#950) [Lorin Werthen]
Experimental features:
-
profiler
: adds--profile
option to thecompile
command to profile compilation (#903) -
environments
: adds support for Nanoc environments (#859)
4.3.4 (2016-10-02)
Fixes:
- Fixed compilation crash when output directory does not exist and auto-pruning is enabled (#948, #949)
4.3.3 (2016-09-26)
Fixes:
- Fixed issue causing
Bundler::GemfileNotFound
to be thrown (#936) [Lorin Werthen] - Fixed issue when replacing a directory with a file or vice versa (#942, #946)
Enhancements:
- Modified the
compile
command to allow specifying the deploy target as argument (#945)
4.3.2 (2016-08-23)
Identical to 4.3.1, but with corrected release notes.
4.3.1 (2016-08-23)
Fixes:
- Fixed “outdatedness of LayoutView” error (#927, #931)
- Fixed bug causing some checks not to appear in
nanoc check --list
(#928, #930) - Fixed
@item
, … not being accessible in filters defined withNanoc::Filter.define
(#932, #934)
4.3 (2016-08-21)
Features:
- Added
Nanoc::Filter.define
, to easily define filters (#895) - Made the
nanoc
Gemfile group be auto-required when Nanoc starts (#910) [whitequark]
4.2.4 (2016-07-24)
Fixes:
Enhancements:
- Sped up Nanoc by not releasing cache memory as quickly (#902)
- Let
internal_links
check also verify resource paths, such as scripts and images (#912) [Lorin Werthen] - Improved error reporting for errors in the Rules file (#908, #914, #915, #916)
- Removed
win32console
support, as it’s deprecated and causing problems (#900, #918)
4.2.3 (2016-07-03)
Fixes:
Enhancements:
- Sped up compiler (#894)
- Improved
#inspect
output of some classes (#896) - Deprecated
Item#modified
and replaced it withItem#modified_reps
(#898)
4.2.2 (2016-07-02)
Fixes:
- Fixed confusing “invalid prefix” error message (#873, #879)
- Ensured filter arguments are frozen, to prevent outdatedness checker errors (#881, #886)
- Fixed issue with dependencies of items generated in the preprocessor not being tracked (#885, #891, #893)
Enhancements:
- Added specific handling for
Sass::Importers::Filesystem
in the checksummer, which should reduce unnecessary recompiles in sites using Compass (#866, #884) - Improved speed of checksummer (#864, #887)
4.2.1 (2016-06-19)
Fixes:
- Fixed an occasional
WeakRef::RefError
(#863, #865) - Fixed
show-data
command not running preprocessor (#867, #870)
4.2 (2016-06-04)
Enhancements:
- Dropped Ruby 2.1 support (#856)
This release also includes the changes from 4.2.0b1.
4.1.6 (2016-04-17)
Fixes:
- Strip index.html only if it is a full component (#850, #851)
- Force UTF-8 for item rep paths (#837, #852)
4.2.0b1 (2016-04-17)
Features:
- Allow creating items and layouts with a pre-calculated checksum (#793) [Ruben Verborgh]
- Allow lazy-loading item/layout content and attributes (#794) [Ruben Verborgh]
- Added
exclude_origins
configuration option to internal links checker (#847) - Added
ChildParent
helper, providing#children_of
and#parent_of
(#849)
Enhancements:
- Made
#html_escape
raise an appropriate error when the given argument is not a String (#840) [Micha Rosenbaum] - Improved memory usage of memoized values by using weak refs (#846)
4.1.5 (2016-03-24)
Fixes:
- Fixed crash in
show-data
command (#833, #835) - Fixed preprocessor not being invoked before running checks (#841, #842)
4.1.4 (2016-02-13)
Fixes:
- Added missing
Configuration#key?
method (#815, #820) - Made output diff use correct snapshot rather than
:last
(#813, #814)
Enhancements:
- Sped up item resolution in Sass filter (#821)
- Made
#link_to
more resilient to unsupported argument types (#816, #819)
4.1.3 (2016-01-30)
Fixes:
- Fixed crash in
check
command when the subject of an issue is nil (#804, #811) - Made stale check not ignore non-final snapshot paths (#809, #810)
4.1.2 (2016-01-16)
Fixes:
- Made @-variables (e.g.
@items
) report their frozenness properly, so that optimisations based on frozenness work once again (#795, #797) - Removed environment from
crash.log
to prevent leaking sensitive information (#798, #800)
Enhancements:
- Removed redundant checksum calculation (#789) [Ruben Verborgh]
4.1.1 (2015-12-30)
Fixes:
Enhancements:
4.1 (2015-12-18)
Fixes:
- Fixed crash when attempting to
#puts
an object that’s not a string (#778) - Made pruner not prune away files from routes defined for custom snapshots (#779)
- Wrapped
@layout
in a layout view (#773)
Enhancements:
- Added a base path to the Checks file, so that it supports
#require_relative
(#774)
This release also includes the changes from 4.1.0a1 to 4.1.0rc2.
4.1.0rc2 (2015-12-13)
Fixes:
Enhancements:
- Made
#path
,#compiled_content
and#reps
unavailable during pre-processing, compilation and routing, because they do not make sense in these contexts (#571, #767, #768)
4.1.0rc1 (2015-12-12)
Fixes:
4.1.0b1 (2015-12-11)
Fixes:
- Fixed issue with
:pre
snapshot not being generated properly (#764)
Enhancements:
- Updated default site to use
#write
(#759)
4.1.0a1 (2015-12-05)
Features:
- Added
postprocess
block (#726) [Garen Torikian] - Added
#write
compilation instruction andpath
option to#snapshot
(#753)
Fixes:
- Fixed crash when printing non-string object (#712) [Garen Torikian]
- Removed English text from
#link_to
helper (#736) [Lucas Vuotto]
Enhancements:
- Allowed excluding URLs from external links check (#686) [Yannick Ihmels]
- Added
atom
to list of text extensions (#657) [Yannick Ihmels] - Added
#each
toNanoc::ConfigView
(#705) [Garen Torikian] - Made
#attribute_to_time
handleDateTime
(#717) [Micha Rosenbaum] - Added
Identifier#components
(#677) - Added
:existing
option to#content_for
(can be:error
,:overwrite
and:append
) (#744)
4.0.2 (2015-11-30)
Fixes:
- Properly set required Ruby version to 2.1 in the gem specification (#747)
- Fixed issue with CLI commands not being loaded as UTF-8 (#742)
- Added missing
#identifier=
method to items and layouts during preprocessing (#750)
Enhancements:
- Let attempts to fetch an item rep by number, rather than symbol, fail with a meaningful error (#749)
4.0.1 (2015-11-28)
Fixes:
- Fixed params documentation for :rdiscount filter (#722)
- Fixed crash when comparing item rep views (#735, #738)
Enhancements:
- Lowered minimum required Ruby version from 2.2 to 2.1 (#732)
4.0 (2015-11-07)
Enhancements:
-
#parent
and#children
now raise an exception when used on items with a non-legacy identifier (#710)
This release also includes the changes from 4.0.0a1 to 4.0.0rc3.
4.0.0rc3 (2015-09-20)
Features:
- Added
Identifier#without_exts
andIdentifier#exts
(#644, #696) [Rémi Barraquand] - Added
DocumentView#attributes
(#699, #702)
Fixes:
Enhancements:
- Made
#base_url
argument in#tags_for
optional (#687) [Croath Liu] - Allowed
IdentifiableCollection#[]
to be passed an identifier (#681, #695) - Improved
Pattern.from
error message (#683, #692) - Let default site use a direct link to the stylesheet (#685, #701)
Changes:
- Removed
Identifier#with_ext
because its behavior was confusing (#697, #700) - Disallowed storing document (views) in attributes (#682, #694)
4.0.0rc2 (2015-07-11)
Fixes:
Enhancements:
- Made Nanoc error when multiple items have the same output path (#665, #669)
- Improved error message for non-hash frontmatter (#670, #673)
Changes:
- nanoc is now called Nanoc
4.0.0rc1 (2015-06-21)
Fixes:
4.0.0b4 (2015-06-10)
Fixes:
- Added missing
#ext
method to identifiers (#612) - Fixed issue where identifiers would have the wrong extension (#611)
- Fixed rule context exposing entities rather than views (#614, #615)
- Fixed
#key?
and#fetch
not being available on layout views (#618) - Fixed
#update_attributes
not being available on mutable layout views (#619)
4.0.0b3 (2015-05-31)
Changes:
- Removed
filesystem_verbose
data source (#599) - Set minimum required Ruby version to 2.2
Enhancements:
- Made
@config
,@items
and@layouts
available in checks (#598) - Made
filesystem
an alias forfilesystem_unified
(#599) - Made specific reps for an item accessible using
@item.reps[:name]
(#586, #607) - Removed
allow_periods_in_identifiers
documentation (#605) - Made fog deployer not upload files with identical ETags to AWS (#480, #536, #552) [Paul Boone]
Fixes:
- Made
ItemView#parent
return nil if parent is nil (#600, #602) - Added missing
identifier_type
documentation (#604)
4.0.0b2 (2015-05-23)
Changes:
- Removed
ItemCollectionView#at
(#582) - Removed support for calling
ItemCollectionView#[]
with an integer (#582) - Renamed
identifier_style
toidentifier_type
, and made its values be"full"
or"legacy"
(#593) - Renamed
pattern_syntax
tostring_pattern_type
, and made its values be"glob"
or"legacy"
(#593) - Made
"full"
the default foridentifier_type
(#592, #594) - Made
"glob"
the default forstring_pattern_type
(#592) - Enabled auto-pruning by default for new sites (#590)
Enhancements:
- Added
--force
tocreate-site
command (#580) [David Alexander] - Made default Rules file more future-proof (#591)
Fixes:
- Fixed
LayoutCollectionView#[]
documentation (it mentioned items) - Fixed
ItemCollectionView#[]
returning an array when passed a regex - Fixed an issue with mutable collection views’
#delete_if
not yielding mutable views - Fixed an issue with collection views’
#find_all
returning entities instead of views
4.0.0b1 (2015-05-14)
Changes:
- Removed tasks
- Removed several private methods in the view API
- Removed default
base_url
in tagging helper
Enhancements:
- Removed unused options from CLI
- Added
Nanoc::Identifier#without_ext
- Made
Nanoc::Identifier#=~
work with a glob - Added
Nanoc::LayoutCollectionView#[]
- Allowed creation of site in current directory (#549) [David Alexander]
Fixes:
- Fixed
#passthrough
for identifiers with extensions - Fixed rendering helper for identifiers with extensions
- Fixed filtering helper
4.0.0a2 (2015-05-12)
Features:
- Glob patterns (opt-in by setting
pattern_syntax
to"glob"
in the site configuration) - Identifiers with extensions (opt-in by setting
identifier_style
to"full"
in the data source configuration)
Enhancements:
See the nanoc 4 upgrade guide for details.
4.0.0a1 (2015-05-09)
This is a major upgrade. For details on upgrading, see the nanoc 4 upgrade guide.
This release provides no new features, but streamlines the API and functionality, in order to easen future development, both for features and for optimisations.
3.8 (2015-05-04)
Features:
- Added
mixed_content
check (#542, #543) [Mike Pennisi] - Added
commands_dirs
configuration option for specifying directories to read commands from (#475) [Gregory Pakosz] - Added
:cdn_id
option to fog deployer for invalidating CDN objects (#451) [Vlatko Kosturjak] - Add access to regular expressions group matches in rules (#478) [Michal Papis]
- Allow filtering the items array by regex (#458) [Mike Pennisi]
Enhancements:
- Added
:preserve_order
option to preserve order in Atom feed (#533, #534) - Allowed accessing
:pre
snapshot from within item itself (#537, #538, #548)
Fixes:
- Allowed passing generic Pandoc options with :args (#526, #535)
- Fix crash when compiling extensionless binary items (#524, #525)
- Fix double snapshot creation error (#547)
3.7.5 (2015-01-12)
Enhancements:
- Allowed extra patterns to be specified in the data source configuration, so that dotfiles are no longer necessary ignored (e.g.
extra_files: ['.htaccess']
) (#492, #498) [Andy Drop, Michal Papis] - Removed Ruby 1.8.x support (details) (#517)
- Improved CSS and HTML error messages (#484, #504)
- Let kramdown filter print warnings (#459, #519)
Fixes:
- Fixed HTML class names for recent Rouge versions (#502)
- Fixed crash when using items or layouts in attributes (#469, #518)
3.7.4 (2014-11-23)
Enhancements:
- Made
check
command fail when output directory is missing (#472) [Mike Pennisi] - Made external links check timeouts start small and grow (#483) [Michal Papis]
- Made code and API adhere much more closely to the Ruby style guide (#476)
Fixes:
- Fixed potential “parent directory is world writable” error (#465, #474)
- Fixed retrying requests in the external link checker (#483) [Michal Papis]
- Fixed issue with data sources not being unloaded (#491) [Michal Papis]
3.7.3 (2014-08-31)
Fixes:
- Fixed issue which caused metadata sections not be recognised in files that use CRLF line endings (#470, #471) [Gregory Pakosz]
3.7.2 (2014-08-17)
Fixes:
- Fixed broken links to the now defunct RubyForge (#454, #467)
- Fixed crash when Gemfile is missing but Bundler is installed (#464)
- Made filesystem data source not strip any whitespace (#463) [Gregory Pakosz]
Enhancements:
- Fixed issue which could cause items to be unnecessarily marked as outdated (#461) [Gregory Pakosz]
- Prevented binary layouts from being generated (#468) [Gregory Pakosz]
3.7.1 (2014-06-16)
Fixes:
3.7 (2014-06-08)
New features:
- Allowed excluding links from the internal links check (
@config[:checks][:internal_links][:exclude]
) (#242) [Remko Tronçon] - Added Rouge syntax coloring filter (#398) [Guilherme Garnier]
- Backported
after_setup
from nanoc 4 to make it easier to create CLI plugins (#407) [Rémi Barraquand] - Make lib dirs configurable using
lib_dirs
config attribute (#424) [Gregory Pakosz] - Added support for setting parent config dir using
parent_config_file
config attribute (#419) [Gregory Pakosz]
Enhancements:
- Added
:with_toc
support to RedCarpet (#222, #232) - Added
slim
to the list of text extensions (#316) - Made
content/
andlayouts/
dirs configurable (#412) [Gregory Pakosz] - Allowed included rules files to have their own preprocess block (#420) [Gregory Pakosz]
Fixes:
3.6.11 (2014-05-09)
Identical to 3.6.10 but published with corrected release notes.
This release was previously known as 3.6.10.1, but was renamed due to incompatibilities with the Semantic Versioning specification.
3.6.10 (2014-05-09)
Fixes:
- Fixed occasional “no such file” error on JRuby (#422)
- Prevented multiple items and layouts from having the same identifier (#434, #435)
Enhancements:
- Set default encoding to UTF-8 (#428)
- Improved checksummer to reduce number of unnecessary recompiles (#310, #431)
- Disabled USR1 on JRuby in order to suppress warning (#425, #426)
- Made pandoc filter argument passing more generic (#210, #433)
3.6.9 (2014-04-15)
Fixes:
- Fixed path to default stylesheet (#410, #411)
- Improved reliability of piping from/to external processes in JRuby (#417)
- Added workaround for “cannot modify” errors when using Nokogiri on JRuby (#416)
- Made corrupted cached data auto-repair itself if possible (#409, #418)
3.6.8 (2014-03-22)
Fixes:
- Fixed issue with missing compilation durations (#374, #379)
- Made XSL filter transform item rather than layout (#399, #401) [Simon South]
- Made XSL filter honor omit-xml-declaration (#403, #404) [Simon South]
- Removed “see full crash log” line from crash log (#397, #402)
Enhancements:
- Added warning when multiple preprocessors are defined (#389)
- Improve stylesheet handling in default site (#339, #395)
3.6.7 (2013-12-09)
Fixes:
- Made Handlebars filter usable outside layouts (#346, #348)
- Fixed ANSI color support on Windows (#352, #356)
- Made fog deployer handle prefixes properly (#351) [Oliver Byford]
- Fixed crash in watcher (#358)
- Fixed huge durations when showing skipped items after compilation (#360, #364)
- Fixed output of
--verbose
compilation statistics (#359, #365) - Fixed issue with Sass files not recompiling (#350, #370)
Enhancements:
- Fixed Windows compatibility issues in test suite (#353) [Raphael von der Grün]
- Hid deprecated
autocompile
andwatch
commands in help - Made CLI swallow broken pipe errors when piping to a process that terminates prematurely (#318, #369)
3.6.6 (2013-11-08)
Enhancements:
- Reduced number of dependencies generated by Sass filter (#306) [Gregory Pakosz]
- Recognised lowercase
utf
in language value (e.g.en_US.utf8
) as being UTF-8 (#335, #338) - Set Thin as the default server for
nanoc view
(#342, #345) - Removed watcher section from the default configuration file (#343, #344)
Fixes:
3.6.5 (2013-09-29)
Fixes:
- Fixed bug which could cause incorrect dependencies to be generated in some cases (#329)
- Fixed handling of index filenames when allowing periods in identifiers (#330)
3.6.4 (2013-05-29)
Enhancements:
- Deprecated
watch
andautocompile
commands in favour ofguard-nanoc
Fixes:
- Fixed bug which could cause the
tmp/
dir to blow up in size - Unescaped URLs when checking internal links
3.6.3 (2013-04-24)
Fixes:
- Added support for growlnotify on Windows (#253, #267)
- Fixed bug which caused the external links checker to ignore the query string (#279, #297)
- Removed weird treatment of
DOCTYPE
s in therelativize_paths
filter (#296) - Fixed CodeRay syntax coloring on Ruby 2.0
- Silenced “Could not find files for the given pattern(s)” message on Windows (#298)
- Fixed issue which could cause
output.diff
not to be generated correctly (#255, #301) - Let filesystem and static data sources follow symlinks (#299, #302)
- Added compatibility with Listen 1.0 (#309)
- Let
#passthrough
in Rules work well with the static data source (#251) [Gregory Pakosz] - Made timing information be more accurate (#303)
3.6.2 (2013-03-23)
Fixes:
- Removed the list of available deployers from the
deploy
help text and moved them into a new--list-deployers
option [Damien Pollet] - Fixed warning about
__send__
andobject_id
being redefined on Ruby 1.8.x [Justin Hileman]
Enhancements:
- Added possible alternative names for the
Checks
file for consistency with theRules
file:Checks.rb
,checks
,checks.rb
[Damien Pollet] - Made sure unchanged files never have their mtime updated [Justin Hileman]
- Made link checker retry 405 Method Not Allowed results with GET instead of HEAD [Daniel Hofstetter]
3.6.1 (2013-02-25)
Fixes:
- Fixed bug which could cause the Sass filter to raise a load error [Damien Pollet]
- Fixed warnings about
__send__
andobject_id
being redefined [Justin Hileman] - Made
files_to_watch
containnanoc.yaml
, notconfig.yaml
by default
3.6 (2013-02-24)
Features:
- Added
sync
command, allowing data sources to update local caches of external data [Justin Hileman] - Added
#ignore
compiler DSL method - Allowed accessing items by identifier using e.g.
@items['/about/']
- Added
shell
command
Enhancements:
- Renamed the nanoc configuration file from
config.yaml
tonanoc.yaml
Fixes:
- Updated references to old web site and old repository
- Made
require
errors mention Bundler if appropriate - Fixed bug which caused pruner not to delete directories in some cases [Matthias Reitinger]
- Made
check
command exit with the proper exit status - Added support for the
HTML_TOC
Redcarpet renderer - Made
stale
check honor files excluded by the pruner
3.5 (2013-01-27)
Major changes:
- Added checks
Minor changes:
- Added
#include_rules
for modularising Rules files [Justin Hileman] - Replaced FSSM with Listen [Takashi Uchibe]
- Made USR1 print stack trace (not on Windows)
- Added ability to configure autocompiler host/port in config.yaml [Stuart Montgomery]
- Added static data source
- Added
:rep_select
parameter to XML sitemap to allow filtering reps - Removed use of bright/bold colors for compatibility with Solarized
Exensions:
- Added support for parameters in Less filter [Ruben Verborgh]
- Added support for icon and logo in Atom feed [Ruben Verborgh]
Fixes:
- Made syntax colorizer only use the first non-empty line when extracting the language comment
- Fixed XSL filter
3.4.3 (2012-12-09)
Improvements:
- Item reps are now accessible in a consistent way: in Rules and during
compilation, they can be accessed using both
@rep
and@item_rep
Fixes:
- Made cleaning streams (stdout/stderr as used by nanoc) compatible with Ruby’s built-in Logger
- Made prune work when the output directory is a symlink
- Made Handlebars filter compatible with the latest version
- Made
show-data
command show more accurate dependencies [Stefan Bühler] - Restored compatibility with Sass 3.2.2
3.4.2 (2012-11-01)
Fixes:
- Made passthrough rules be inserted in the right place [Gregory Pakosz]
- Fixed crashes in the progress indicator when compiling
- Made auto-pruning honor excluded files [Grégory Karékinian]
- Made lack of which/where not crash watch command
Improvements:
- Fixed constant reinitialization warnings [Damien Pollet]
- Made UTF-8 not be decomposed when outputting to a file from a non-UTF-8 terminal
- Made syntax colorizer wrap CodeRay output in required CodeRay divs
- Made fog delete after upload, not before [Go Maeda]
- Made requesting compiled content of binary item impossible
3.4.1 (2012-09-22)
Fixes:
- Fixed auto-pruning
- Made slim filter work with the capturing helper [Bil Bas]
Improvements:
- Made several speed improvements
- Added prune configuration to config.yaml
- Made nanoc check for presence of nanoc in Gemfile
- Made compile command not show identicals (use
--verbose
if you want them) - Made
relativize_paths
filter recognise more paths to relativize [Arnau Siches] - Fixed #passthrough for items without extensions [Justin Hileman]
- Added more IO/File proxy methods to cleaning streams
3.4 (2012-06-09)
- Improved error output and added crash log
- Renamed
debug
andinfo
commands toshow-data
andshow-plugins
, respectively - Added
show-rules
command (akaexplain
)
Extensions:
- Added
:yield
key for Mustache filter - Added Handebars filter
- Added Pandoc filter
- Made the deployer use the
default
target if no target is specified - Converted HTML/CSS/link validation tasks to commands
- Made link validator follow relative redirects
3.3.7 (2012-05-28)
- Added filename to YAML parser errors
- Fixed issue which caused extra dependencies to be generated
- Made timing information take filtering helper into account
3.3.6 (2012-04-27)
- Fixed issue with relative_link_to stripping HTML boilerplate
3.3.5 (2012-04-23)
- Fixed issue with relative_link_to not working properly
3.3.4 (2012-04-23)
- Fixed bug which caused the compilation stack to be empty
- Restored Ruby 1.8 compatibility
3.3.3 (2012-04-11)
- Fixed directed graph implementation on Rubinius
- Made capturing helper not remember content between runs
- Fixed Date#freeze issue on Ruby 1.8.x
- Made it possible to have any kind of object as parameters in the Rules file
- Fixed bug which caused changed routes not to cause a recompile
3.3.2 (2012-03-16)
- Removed bin/nanoc3 (use nanoc3 gem if you want it)
- Fixed wrong “no such snapshot” errors
- Made deployer default to rsync for backwards compatibility
- Fixed missing Nanoc::OrigCLI in deployment tasks
- Fixed “unrecognised kind” deployer error
3.3.1 (2012-02-18)
- Fixed issue with long paths on Windows
- Fixed a few deployer crashes
- Added nanoc3.rb, nanoc3/tasks.rb, … for compatibility with older versions
- Made nanoc setup Bundler at startup [John Nishinaga]
3.3 (2012-02-12)
Base:
- Dropped the “3” suffix on nanoc3/Nanoc3
- Turned Rake tasks into proper nanoc commands
- Improved dependency tracking
- Added support for locals in filters and layouts
Extensions:
- Added support for deployment using Fog [Jack Chu]
- Added CoffeeScript filter [Riley Goodside]
- Added XSL filter [Arnau Siches]
- Added YUICompress filter [Matt Keveney]
- Added pygments.rb to supported syntax colorizers
- Allowed syntax colorizer to colorize outside
pre
elements [Kevin Lynagh] - Added support for HTTPS link validation [Fabian Buch]
- Added support for (automatically) pruning stray output files [Justin Hileman]
- Added deploy command
3.2.4 (2012-01-09)
- Fixed bug which would cause some reps not to be compiled when invoking nanoc programmatically
- Made data source configuration location a bit more obvious
- Fixed watch command under Windows
- Made filesystem data source ignore UTF-8 BOM
- Improved compatibility of
colorize_syntax
filter with older libxml versions
3.2.3 (2011-10-31)
- Made syntax colorizer only strip trailing blank lines instead of all blanks
- Improved Ruby 1.9.x compatibility
- Made default rakefile require rubygems if necessary
- Made filename/content argument of
Nanoc3::Item#initialize
mandatory
3.2.2 (2011-09-04)
- Fixed command usage printing
- Made
relativize_paths
filter handle Windows network paths [Ruben Verborgh] - Made watcher use correct configuration
- Allowed code blocks to start with a non-language shebang line
3.2.1 (2011-07-27)
- Made
@config
available in rules file - Fixed
#readpartial
issue on JRuby [Matt Keveney] - Fixed possible
@cache
name clash in memoization module - Fixed options with required arguments (such as
--port
and--host
) - Fixed broken
#check_availability
- Fixed error handling in watch command
3.2 (2011-07-24)
Base:
- Sped up nanoc quite a bit
- Added progress indicator for long-running filters
- Made all source data, such as item attributes, frozen during compilation
- Added –color option to force color on
- Cleaned up internals, deprecating several parts and/or marking them as private in the progress
- Allowed custom commands in commands/
Extensions:
- Added AsciiDoc filter
- Added Redcarpet filter [Peter Aronoff]
- Added Slim filter [Zaiste de Grengolada]
- Added Typogruby filter
- Added UglifyJS filter [Justin Hileman]
- Added
:items
parameter for the XML site map [Justin Hileman] - Added support for params to ERB
- Added
:default_colorizer
parameter to the:colorize_syntax
filter - Allowed for passing arbitrary options to pygmentize [Matthias Vallentin]
- Exposed RedCloth parameters in the filter [Vincent Driessen]
3.1.9 (2011-06-30)
- Really fixed dependency generation between Sass partials this time
- Updated Less filter to 2.0
- Made
colorize_syntax
filter throw an error if pygmentize is not available
3.1.8 (2011-06-25)
- Made link validator accept https: URLs
- Fixed erroneous handling of layouts with names ending in index
- Fixed dependency generation between Sass partials
- Fixed errors related to thread requires
- Fixed crash while handling load errors
- Improved encoding handling while reading files
3.1.7 (2011-05-03)
- Restored compatibility with Sass 3.1
3.1.6 (2010-11-21)
- Fixed issues with incompatible encodings
3.1.5 (2010-08-24)
- Improved
#render
documentation - Improved metadata section check so that e.g. raw diffs are handled properly
- Deprecated using
Nanoc3::Site#initialize
with a non-"."
argument - Added Ruby engine to version string
- Allowed the
created_at
andupdated_at
attributes used in theBlogging
helper to beDate
instances
3.1.4 (2010-07-25)
- Made INT and TERM signals always quit the CLI
- Allowed relative imports in LESS
- Made sure modification times are unchanged for identical recompiled items
- Improved link validator error handling
- Made pygmentize not output extra divs and pres
- Allowed colorizers to be specified using symbols instead of strings
- Added scss to the default list of text extensions
3.1.3 (2010-04-25)
- Removed annoying win32console warning [Eric Sunshine]
- Removed color codes when not writing to a terminal, or when writing to Windows’ console when win32console is not installed [Eric Sunshine]
- Added .xhtml and .xml to list of text extensions
- Improved support for relative Sass @imports [Chris Eppstein]
3.1.2 (2010-04-07)
- Fixed bug which could cause incorrect output when compilation of an item is delayed due to an unmet dependency
3.1.1 (2010-04-05)
- Sass
@import
s now work for files not managed by nanoc - Rake tasks now have their Unicode description decomposed if necessary
3.1 (2010-04-03)
New:
- An
Item#rep_named(name)
function for quickly getting a certain rep - An
Item#compiled_content
function for quickly getting compiled content - An
Item#path
function for quickly getting the path of an item rep - A new “+” wildcard in rule patterns that matches one or more characters
- A
view
command that starts a web server in the output directory - A
debug
command that shows information about the items, reps and layouts - A
kramdown
filter (kramdown site) - A diff between the previously compiled content and the last compiled content is now written to
output.diff
if theenable_output_diff
site configuration attribute is true - Assigns, such as
@items
,@layouts
,@item
, … are accessible without@
- Support for binary items
Changed:
- New sites now come with a stylesheet item instead of a
style.css
file in the output directory - The
deploy:rsync
task now use sensible default options - The
deploy:rsync
task now accepts a config environment variable - The
deploy:rsync
task now uses a lowercasedry_run
environment variable - The
maruku
filter now accepts parameters - The
rainpress
filter now accepts parameters - The
filesystem
data source is now known asfilesystem_verbose
- Meta files and content files are now optional
- The
filesystem_compact
andfilesystem_combined
data sources have been merged into a newfilesystem_unified
data source - The metadata section in
filesystem_unified
is now optional [Chris Eppstein] - The
--server
autocompile option is now known as--handler
- Assigns in filters are now available as instance variables and methods
- The
#breadcrumbs_trail
function now allows missing parents - The
sass
filter now properly handles@import
dependencies
Deprecated:
-
Nanoc3::FileProxy
; use one of the filename attributes instead -
ItemRep#content_at_snapshot
; use#compiled_content
instead - The
last_fm
,delicious
andtwitter
data sources; fetch online content into a cache by a rake task and load data from this cache instead
3.0.9 (2010-02-24)
- Fixed 1.8.x parsing bug due to lack of parens which could cause “undefined method
to_iso8601_time
for #<String:0x…>” errors
3.0.8 (2010-02-24)
-
#atom_tag_for
now works withbase_url
s that contain a path [Eric Sunshine] - Generated root URLs in
#atom_feed
now end with a slash [Eric Sunshine] - Autocompiler now recognises requests to index files
-
Blogging
helper now allowscreated_at
to be a Time instance
3.0.7 (2010-01-29)
- Fixed bug which could cause layout rules not be matched in order
3.0.6 (2010-01-17)
- Error checking in
filesystem_combined
has been improved [Brian Candler] - Generated HTML files now have a default encoding of UTF-8
- Periods in identifiers for layouts now behave correctly
- The
relativize_paths
filter now correctly handles “/” [Eric Sunshine]
3.0.5 (2010-01-12)
- 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 ifallow_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/
).
3.0.4 (2010-01-07)
- 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]
3.0.3 (2010-01-06)
- The
Blogging
helper now properly handles item reps without paths - The
relativize_paths
filter now only operates inside tags - The autocompiler now handles escaped paths
- The
LinkTo
andTagging
helpers now output escaped HTML - Fixed
played_at
attribute assignment in theLastFM
data source for tracks playing now, and added anow_playing
attribute [Nicky Peeters] - The
filesystem_*
data sources can now handle dots in identifiers - Required enumerator to make sure
#enum_with_index
always works -
Array#stringify_keys
now properly recurses
3.0.2 (2009-11-07)
- Children-only identifier patterns no longer erroneously also match parent (e.g.
/foo/*/
no longer matches/foo/
) - The
create_site
command no longer uses those ugly HTML entities - Install message now mentions the IRC channel
3.0.1 (2009-10-05)
- The proper exception is now raised when no matching compilation rules can be found
- The autocompile command no longer has a duplicate
--port
option - The
#url_for
and#feed_url
methods now check the presence of thebase_url
site configuration attribute - Several outdated URLs are now up-to-date
- Error handling has been improved in general
3.0 (2009-08-14)
New:
- Multiple data sources
- Dependency tracking between items
- Filters can now optionally take arguments
-
#create_page
and#create_layout
methods in data sources - A new way to specify compilation/routing rules using a Rules file
- A
coderay
filter (CodeRay site) - A
filesystem_compact
data source which uses less directories
Changed:
- Pages and textual assets are now known as “items”
Removed:
- Support for drafts
- Support for binary assets
- Support for templates
- Everything that was deprecated in nanoc 2.x
-
save_*
,move_*
anddelete_*
methods in data sources - Processing instructions in metadata
2.2.2 (2009-05-18)
- Removed
relativize_paths
filter; userelativize_paths_in_html
orrelativize_paths_in_css
instead - Fixed bug which could cause nanoc to eat massive amounts of memory when an exception occurs
- Fixed bug which would cause nanoc to complain about the open file limit being reached when using a large amount of assets
2.2.1 (2009-04-08)
- Fixed bug which prevented
relative_path_to
from working - Split
relativize_paths
filter into two filter:relativize_paths_in_html
andrelativize_paths_in_css
- Removed bundled mime-types library
2.2 (2009-04-06)
New:
-
--pages
and--assets
compiler options -
--no-color
command-line option -
Filtering
helper -
#relative_path_to
function inLinkTo
helper -
rainpress
filter (Rainpress site) -
relativize_paths
filter - The current layout is now accessible through the
@layout
variable - Much more informative stack traces when something goes wrong
Changed:
- The command-line option parser is now a lot more reliable
-
#atom_feed
now takes optional:content_proc
,:excerpt_proc
and:articles
parameters - The compile command show non-written items (those with
skip_output: true
) - The compile command compiles everything by default
- Added
--only-outdated
option to compile only outdated pages
Removed:
- deprecated extension-based code
2.1.6 (2009-02-28)
- The
filesystem_combined
data source now supports empty metadata sections - The
rdoc
filter now works for both RDoc 1.x and 2.x - The autocompiler now serves a 500 when an exception occurs outside compilation
- The autocompiler no longer serves index files when the request path does not end with a slash
- The autocompiler now always serves asset content correctly
2.1.5 (2009-02-01)
- Added Ruby 1.9 compatibility
- The
filesystem
andfilesystem_combined
data sources now preserve custom extensions
2.1.4 (2008-11-15)
- Fixed an issue where the autocompiler in Windows would serve broken assets
2.1.3 (2008-09-27)
- The
haml
andsass
filters now correctly take their options from assets - The autocompiler now serves index files instead of 404s
- Layouts named “index” are now handled correctly
- The
filesystem_combined
data source now properly handles assets
2.1.2 (2008-09-08)
- The utocompiler now compiles assets as well
- The
sass
filter now takes options (just like thehaml
filter) - Haml/Sass options are now taken from the page rep instead of the page
2.1.1 (2008-08-18)
- Fixed issue which would cause files not to be required in the right order
2.1 (2008-08-17)
This is only a short summary of all changes in 2.1. For details, see the nanoc web site. Especially the blog and the updated manual will be useful.
New:
- New
rdiscount
filter (RDiscount site) - New
maruku
filter (Maruku site) - New
erubis
filter (Erubis site) - A better command-line frontend
- A new filesystem data source named
filesystem_combined
- Routers, which decide where compiled pages should be written to
- Page/layout mtimes can now be retrieved through
page.mtime
/layout.mtime
Changed:
- Already compiled pages will no longer be re-compiled unless outdated
- Layout processors and filters have been merged
- Layouts no longer rely on file extensions to determine the layout processor
- Greatly improved source code documentation
- Greatly improved unit test suite
Removed:
- Several filters have been removed and replaced by newer filters:
-
eruby
: useerb
orerubis
instead -
markdown
: usebluecloth
,rdiscount
ormaruku
instead -
textile
: useredcloth
instead
-
2.0.4 (2008-05-04)
- Fixed
default.rb
’s#html_escape
- Updated Haml filter and layout processor so that @page, @pages and @config are now available as instance variables instead of local variables
2.0.3 (2008-03-25)
- The autocompiler now honors custom paths
- The autocompiler now attempts to serve pages with the most appropriate MIME type, instead of always serving everything as
text/html
2.0.2 (2008-01-26)
- nanoc now requires Ruby 1.8.5 instead of 1.8.6
2.0.1 (2008-01-21)
- Fixed a “too many open files” error that could appear during (auto)compiling
2.0 (2007-12-25)
New:
- Support for custom layout processors
- Support for custom data sources
- Database data source
- An auto-compiler
- Pages have
parent
andchildren
Changed:
- The source has been restructured and cleaned up a great deal
- Filters are defined in a different way now
- The
eruby
filter now uses ERB instead of Erubis
Removed:
- The
filters
property; usefilters_pre
instead - Support for Liquid
1.6.2 (2007-10-23)
- Fixed an issue which prevented the content capturing plugin from working
1.6.1 (2007-10-14)
- Removed a stray debug message
1.6 (2007-10-13)
- Added support for post-layout filters
- 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
) - Cleaned up the source code a lot
- Removed deprecated asset-copying functionality
1.5 (2007-09-10)
- Added support for custom filters
- Improved Liquid support – Liquid is now a first-class nanoc citizen
- Deprecated assets – use something like rsync instead
- Added
eruby_engine
option, which can beerb
orerubis
1.4 (2007-07-06)
- nanoc now supports ERB (as well as Erubis); Erubis no longer is a dependency
-
meta.yaml
can now havehaml_options
property, which is passed to Haml - Pages can now have a
filename
property, which defaults toindex
[Dennis Sutch] - Pages now know in what order they should be compiled, eliminating the need for custom page ordering [Dennis Sutch]
1.3.1 (2007-06-30)
- The contents of the
assets
directory are now copied into the output directory specified inconfig.yaml
1.3 (2007-06-24)
- The
@pages
array now also contains uncompiled pages - Pages with
skip_output
set to true will not be outputted - Added new filters
- Textile/RedCloth
- Sass
- nanoc now warns before overwriting in
create_site
,create_page
andcreate_template
(but not in compile)
1.2 (2007-06-05)
- Sites now have an
assets
directory, whose contents are copied to theoutput
directory when compiling [Stanley Rost] - Added support for non-eRuby layouts (Markaby, Haml, Liquid, …)
- Added more filters (Markaby, Haml, Liquid, RDoc [Dmitry Bilunov]
- Improved error reporting
- Accessing page attributes using instance variables, and not through
@page
, is no longer possible - Page attributes can now be accessed using dot notation, i.e.
@page.title
as well as@page[:title]
1.1.3 (2007-05-18)
- Fixed bug which would cause layoutless pages to be outputted incorrectly
1.1.2 (2007-05-17)
- Backup files (files ending with a “~”) are now ignored
- Fixed bug which would cause subpages not to be generated correctly
1.1 (2007-05-08)
- Added support for nested layouts
- Added coloured logging
-
@page
now hold the page that is currently being processed - Index files are now called “content” files and are now named after the directory they are in [Colin Barrett]
- It is now possible to access
@page
in the page’s content file
1.0.1 (2007-05-05)
- 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
- Fixed bug which would cause pages not to be sorted by order before compiling
1.0 (2007-05-03)
- Initial release