{ lib, styx, runCommand, writeText
, styx-themes
, extraConf ? {}
}@args:
rec {
/* Importing styx library
*/
styxLib = import styx.lib args;
Simplified template loading in site.nix
More flexible interface for conf.nix
Compatible frontmatter according to usual standards written in yaml
and enclosed by ---
New intro section separator in Markdown: <!-- more -→
New intro section separator in Markdown: [more]
Learn more in the Styx 0.7.5 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Uses now niv to pin dependencies
New maintainership
caddy now is caddy2
caddy fails with no bin
, removing the .bin fixes it
proofreading
Fixed styx
command path resolution when styx was installed globally.
Learn more in the Styx 0.7.2 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Styx use its own version without relying on global <nixpkgs>
, this ensure that site.nix
format, used styx-themes and styx versions are matching.
Instructions and helpers for multi-locale sites.
Block feature for flexible single page websites, used in the Agency theme.
Better support for Darwin platforms.
Nix
Ghostwriter
styx preview-theme
: Preview a styx-theme theme, eg: styx preview-theme ghostwriter
.
site.nix
format have been simplified. Required arguments are styx
and extraConf
only.
The themes set styx-themes
, can be accessed with import styx.themes
and is tied to the styx version.
{ lib, styx, runCommand, writeText
, styx-themes
, extraConf ? {}
}@args:
rec {
/* Importing styx library
*/
styxLib = import styx.lib args;
{ styx
, extraConf ? {}
}:
rec {
/* Importing styx library
*/
styxLib = import styx.lib styx;
/* Importing styx themes from styx
*/
styx-themes = import styx.themes;
Thoughts:
At the moment of writing, styx 0.7.0 is only available in the nixpkgs-unstable
channel.
If you are on a different channel and want to test / install styx 0.7.0, use the following command:
Testing with nix-shell:
$ nix-shell -p styx -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Installing:
$ nix-env -A styx -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Learn more in the Styx 0.7.0 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Nix expressions can be embedded in markup files.
Site building perfomance improvements.
New commands:
styx site-doc
: generate documentation for a styx site.
styx gen-sample-data
: generate sample data.
styx linkcheck
: check the internal links of a site.
New features in the generic templates theme:
templates.media.*
: For embedding media. (giphy, github gists, slideshare, speakerdeck, twitter, vimeo and youtube)
conf.services.*
: For third party services integration. (disqus, piwik and google analytics)
conf.lib.*
: highlightjs, google fonts and mathjax support added.
Performance.
Drafts can be automatically handled with metadata.
mkPageList
automatically handle multipage pages.
Themes and library documentations.
Substitutions in data files have been removed in favor embedded nix. (substitutions can still be used in static files)
themes.load
function arguments were renamed:
templates.extraEnv
renamed to extraEnv
.
conf.extraConf
renamed to extraConf
.
loadDir
and loadFile
functions arguments have changed.
mkMultiTail
function have been removed in favor of mkPageList
.
loadDir
and loadFile
functions arguments has been modified.
generateSite
was renamed to mkSite
and its pagesList
argument was renamed to pageList
.
mkPageList
now outputs a pages set, with a list
attribute containing the page list. To refer pages generated with mkPageList
use the list
attribute, eg pages.posts.list
.
Thoughts:
At the moment of writing, styx 0.6.0 is only available in the nixpkgs-unstable
channel.
If you are on a different channel and want to test / install styx 0.6.0, use the following command:
Testing with nix-shell:
$ nix-shell -p styx -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Installing:
$ nix-env -A styx -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Note that the build
, preview
, live
, serve
and deploy
commands require system active nixpkgs
to provide the same version of styx as the one used, 0.5.0.
For these commands -I nixpkgs=…
can also be used to set the version of nixpkgs
to use, for example:
$ styx preview -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Learn more in the Styx 0.6.0 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Highlights:
styx-themes
full documentation.nix-repl.
site.nix
Breaking Changes:
site.nix
was greatly refactored.theme.nix
was removed, its functionality is divided in two files, conf.nix
and meta.nix
. conf.nix
for configuration interface and meta.nix
for theme metadata.meta.nix
file must be present and must declare a id
attribute specifying the theme identifier.lib.pages.setDefaultLayout
was removed (default pages values can be set with the default
argument of lib.generation.pagesToList
).href
in function names / parameters and template variables has been replaced with path
, pages path
attribute must start with a /
.Upgrading:
This release brings many incompatible changes that requires to refactor site.nix
to upgrade.
Changes involve, among others, the init section of site.nix
, site.nix
returning a set instead of a generateSite
call and href
occurrences replaced by path
(path
attributes must start with a /
).
Thoughts:
At the moment of writing, styx 0.5.0 is only available in the nixpkgs-unstable
channel.
If you are on a different channel and want to test / install styx 0.5.0, use the following command:
Testing with nix-shell:
$ nix-shell -p styx -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Installing:
$ nix-env -A styx -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Note that the build
, preview
, live
, serve
and deploy
commands require system active nixpkgs
to provide the same version of styx as the one used, 0.5.0.
For these commands -I nixpkgs=...
can also be used to set the version of nixpkgs
to use, for example:
$ styx preview -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixpkgs-unstable.tar.gz
Learn more in the Styx 0.5.0 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Highlights:
callPackage
styx-themes
set of packagesmanual
subcommand to open the HTML documentation in a browserBreaking Changes
state
variable in site.nix
site.nix
init section was refactoredLearn more in the Styx 0.4.0 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
This release contains the following bug fixes:
styx server
and styx preview
command --site-url
flag handlingstyx --help
fixLearn more in the Styx 0.3.1 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Highlights:
site.nix
Learn more in the Styx 0.3.0 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
Highlights:
Learn more in the Styx 0.2.0 Documentation, release notes.
Contribute to Styx via GitHub repository.
Problems and bugs should be reported to the issue tracker.
First release of Styx!
Styx is a functional static site generator based on the Nix package manager.
It is possible to test this release of Styx in a nix-shell
:
$ nix-shell -p $(nix-build https://github.com/ericsagnes/styx/archive/0.1.0.tar.gz)
$ styx --help
Styx can be installed with the nix-env
command:
$ nix-env -i $(nix-build https://github.com/ericsagnes/styx/archive/0.1.0.tar.gz)
$ styx --help
Learn more in the Styx 0.1.0 Documentation, release notes.
If you want to contribute to Styx, please join the GitHub repository.
Bugs should be reported to the issue tracker.