Releases: hlef/juliet
Releases · hlef/juliet
Releasing 0.2.1 (bugfix release)
Releasing 0.2
It's been almost two years since the v0.1. After two alphas, juliet seems pretty much ready for a new stable release.
Changes since alpha2
Breaking changes
- Drop Python < 3.5 support (see 3dbb43f)
- New python3-dateutil dependency (see bugs fixes section)
- Theme design: the post scope now provides
installed_filename
instead ofslug
(see af8d988) - Install pages with
.html
file extension (see bfe5a9c)
New features
juliet init
now installs a default theme (gram)- Add
--auto-baseurl
option (see 9205856) - Add
--config-file
(short-cf
). This can be used to pass alternative config files to the builder
Bug fixes
- Fix multiple issues with juliet new
date
variable. Support fordate
was quite bad, mostly because we did not perform date validity checks. We now rely on python3-dateutil to ensure input validity (see 4bccd1e) - Fix bugs in
--
arguments handling: do not limit installed fields to theme config (see d5b0c8b) - Fix error during exception handling of
build()
(see 28b6595)
Misc
- Add
-v
shortcut for--version
- Various cleanup, add more sanity checks
- Improve test coverage (now >90%)
- Improve documentation
Releasing 0.2 alpha2
New features
- Add permalink support: If
permalink
variable is defined, use it instead of file naming variable.
Misc
- Improved test coverage
- Add safety checks to make sure nothing is built outside of the build tree.
- Fix build with missing pages or posts folder in source tree
Changes since alpha1
- Major changes in the
juliet new
syntax:
In the alpha1 the juliet new command was taking two parameters: --date
and --title. This is absolutely not what we want because it restricts
the usage of juliet new to a very specific subset of article headers.
Instead we switch to a much more modular system:
1. juliet new
Creates an article with default values.
By default the article name formatting is $date-$title.md (title
in slugified form). Default values for title and date are taken
from the theme. It is highly recommended to the theme to let date
being set by juliet (this can be done by _not_ specifying a default
value for this variable). It is then set to the current date
YYYY-MM-DD.
2. juliet new --file-name FILENAME
Creates an article with default values in posts/FILENAME. For
default, values, same as 1.
3. juliet new (-f FILENAME) -- key: value key2: value2 key3: value3
Header values can always be passed as key value list after the --
(stop argument processing). These values are then used for article
name generation if filename is not specified + article header.
Missing key values are defaulted using the theme default values.
The syntax for the key-value list is as following: for each key/value
pair:
1. the key
- optional: the key might end with a ':' character. This is just
syntactic sugar, doesn't change anything.
- keep in mind: the key can't contains spaces ' ', underscores '_'
or colons ':'.
2. followed by one or more space characters
3. the value
If the theme doesn't define default values, execution of juliet
new is aborted with appropriate error message. That's why the
theme should always specify proper default values if these are not
going to be auto generated by juliet (like date_).
In the future we will provide a hook-system which will allow themes
to define Python hooks to generate values during juliet new
execution.
The article name formatting (default: $date-$slug_title.md) can be
specified by the user using the filenaming_pattern config variable.
The pattern is in Python Template form (PEP 292). Accessible variables
are:
- all command-line passed key: values
- all theme side default values (overwritten by command-line passed
key: values if key is identical)
- all generated entries:
o date_
Either current date or, if specified by user/theme, the same
value as the date variable
o for each key, a slugified version of the key as slug_'key'. e.g.
for title key, slug_title, date key, slug_date, etc.
EX:
juliet new
juliet new hello-world.md
juliet new -- title: "Hello, world !"
juliet new -- title "Hello, world !" date "1998-12-12"
Releasing 0.2 alpha1
New features
- Fresh new article initialization with
juliet new
- Version information can now be retrieved using
--version
option.
Misc
- Better test coverage
- Documentation improvements (ship manpage, various minor updates).
Releasing 0.1
Juliet is getting pretty stable now, so I think it's time for a stable 0.1.
Changes since alpha3
- Documentation improvements
Releasing alpha3
API break
@BASEURL
tag is not supported anymore. Juliet sites should migrate to the new Jinja-like tag{{ baseurl }}
.- Files without header are now rejected.
\
before preprocessor tags will now be interpreted as escaping character
New features
- Juliet file structures can now be initialized using
juliet init
- Cleanup destination directory before installation.
- Add command line arguments
--no-clean
(or-nc
) to disable destination directory cleanup before build - Allow escaping of preprocessor tags
Bug fixes
Misc
- Refactor numerous files under
juliet/
(more OOP, snake case instead of camel case, etc.). - Improve documentation
- New tests
Releasing alpha2
API break
- Drop Python < 3.3 support (why)
New features
- Add command line arguments
--build-src
and--build-dst
to build from/to passed directories - New logging features via
--debug
or-d
*
Misc
- Improve platform independence and robustness by using
os.path.join()
to build working paths - Exit more cleanly using
sys.exit()
and improve error messages - More checks, user-friendlier (check for existence of config file, header consistency, etc.)
- Rename and refactor numerous files under
juliet/
(more OOP, snake case instead of camel case, etc.). - Improve documentation
- New tests
Releasing alpha1
Initial, alpha release of Juliet.