Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Jekyll | 47,283 | 77,497 | 2,470 | 2 days ago | 146 | January 30, 2023 | 194 | mit | Ruby | |
:globe_with_meridians: Jekyll is a blog-aware static site generator in Ruby | ||||||||||
Vuepress | 21,732 | 977 | 90 | a month ago | 87 | February 25, 2023 | 578 | mit | JavaScript | |
📝 Minimalistic Vue-powered static site generator | ||||||||||
Eleventy | 15,074 | 553 | 590 | 2 days ago | 166 | April 26, 2023 | 486 | mit | JavaScript | |
A simpler site generator. Transforms a directory of templates (of varying types) into HTML. | ||||||||||
Pelican | 11,737 | 1,689 | 111 | a month ago | 58 | February 09, 2022 | 90 | agpl-3.0 | Python | |
Static site generator that supports Markdown and reST syntax. Powered by Python. | ||||||||||
Zola | 11,591 | a day ago | 6 | June 19, 2017 | 224 | mit | Rust | |||
A fast static site generator in a single binary with everything built-in. https://www.getzola.org | ||||||||||
Nextra | 8,721 | 73 | 16 hours ago | 166 | July 13, 2023 | 209 | mit | TypeScript | ||
Simple, powerful and flexible site generation framework with everything you love from Next.js. | ||||||||||
Pagic | 1,587 | 12 | 15 | 7 days ago | 8 | April 03, 2017 | 10 | mit | JavaScript | |
A static site generator powered by Deno + React | ||||||||||
Statiq.web | 1,583 | 5 | 3 months ago | 79 | June 14, 2023 | 192 | other | C# | ||
Statiq Web is a flexible static site generator written in .NET. | ||||||||||
Lume | 1,484 | 17 hours ago | 23 | mit | TypeScript | |||||
🔥 Static site generator for Deno 🦕 | ||||||||||
Awesome Jamstack | 1,281 | 4 days ago | 1 | |||||||
Carefully curated list of awesome Jamstack resources |
The purely functional static site generator written in the Nix expression language.
Among other things, Styx has the following features:
Styx has no other dependency than Nix, if Nix is installed, run the following to use Styx:
# if using flakes
$ nix shell github:styx-static/styx
# otherwise
$ nix-shell -p styx
Styx supports content in Markdown, AsciiDoc and Nix format. Styx also extends AsciiDoc and Markdown with custom operators that can split a single markup file into many pages.
Nix can be embedded in markup files!
Upon site rendering, Styx will automatically convert SASS and SCSS files.
The generic-template
theme provides a template framework that can be leveraged to easily create new themes or sites.
Thank to this a theme like Hyde consists only in about 120 lines of Nix templates.
Styx sites use a configuration interface la NixOS modules. Every configuration declaration is type-checked, and documentation can be generated from that interface.
Linkcheck functionality is available out of the box, just run styx linkcheck
to run linkchecker on a site.
Styx supports themes. Multiple themes can be used, mixed and extended at the same time.
This makes it very easy to adapt an existing theme.
Official themes can also be used without any implicit installation, declaring the used theme(s) in site.nix
is enough!
Styx embeds its complete documentation that can be viewed at any time by running styx doc
.
A very unique feature of Styx is that it can generate the documentation for a site with the styx site-doc
.
Use nix profile
to install Styx, or nix shell
to just test without installing it:
$ nix profile install github:styx-static/styx
$ styx --help
$ nix shell github:styx-static/styx
$ styx --help
The official Styx site is an example of a basic software site with release news. It has some interesting features like:
See site.nix for implementation details.
This repository is also a playground for more exotic nix usages and experiments:
derivation.nix is the main builder for styx, it builds the command line interface, the library, styx themes and the documentation.
Library functions and theme templates use special functions (documentedFunction
and documentedTemplate
) that allow automatically generating documentation and tests.
The code used to generate tests from documentedFunctions
can be found in tests/lib.nix.
Library function tests can print a coverage or a report (with pretty printing):
```
$ system="$(nix eval --raw --expr "builtins.currentSystem" --impure)"
$ nix build .#"$system"._automation.tests.lib-report && cat ./result
$ nix build .#"$system"._automation.tests.lib-coverage && cat ./result
```
src/renderers/docs/library.nix is a nix expression that generate an AsciiDoc documentation from the library documentedFunction
s (example).
src/renderers/docs/site.nix is a nix expressions that automatically generate documentation for styx themes, including configuration interface and templates (example). This feature is leveraged in the styx site-doc
command to dynamically generate the documentation for a site according to used themes.
parsimonious is used to do some voodoo on markup files to turn them into valid nix expressions, so nix expressions can be embedded in Markdown or AsciiDoc.
std is a framework to keep bigger flake projects maintainable.
See contributing.md.
Any question or issue should be posted in the github issue tracker. Themes and features requests are welcome! And please let me know if you happen to run a site on styx!