diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 33 |
1 files changed, 25 insertions, 8 deletions
@@ -1,23 +1,28 @@ -# pyssg +# pyssg - Static Site Generator written in Python -Static Site Generator inspired by Roman Zolotarev's [`ssg5`](https://rgz.ee/bin/ssg5) and [`rssg`](https://rgz.ee/bin/rssg), Luke Smith's [`lb` and `sup`](https://github.com/LukeSmithxyz/lb) and, pedantic.software's [`blogit`](https://pedantic.software/git/blogit/). +Inspired (initially) by Roman Zolotarev's [`ssg5`](https://rgz.ee/bin/ssg5) and [`rssg`](https://rgz.ee/bin/rssg), Luke Smith's [`lb` and `sup`](https://github.com/LukeSmithxyz/lb) and, pedantic.software's great (but *"mamador"*, as I would say in spanish) [`blogit`](https://pedantic.software/git/blogit/). -The reason of making this in python is because I was tired of wanting (some) features from all of these minimal programs, but being a pain in the ass to maintain or add features on my own, specially to `blogit`...; making minimalist software it's great and all, but there is a limit on how pretentious and elitist a software can be for me to accept it. +I'm writing this in *pYtHoN* (thought about doing it in Go, but I'm most comfortable with Python at the moment) because I want features from all of these minimal programs (and more), but I don't really want to be stitching each one of the features on any of these programs, because they're written in a way to only work as how they were first imagined to work like; I already tried adding features to `ssg` and ended up rewriting it in POSIX shell, but it was a pain in the ass when I tried to add even more, and don't get me started on trying to extend `blogit`... And also because I want to. ## Current features -This is still a WIP. Still doesn't build `sitemap.xml` or `rss.xml` files. +**This is still a WIP. Still doesn't build `sitemap.xml` or `rss.xml` files.** - [x] Build static site parsing `markdown` files ( `*.md` -> `*.html`) + - [x] Using plain `*.html` files for templates. + - [ ] Would like to change to something more flexible and easier to manage ([`jinja`](), for example). - [x] Preserves hand-made `*.html` files. - [x] Tag functionality. - [ ] Open Graph (and similar) support. - [ ] Build `sitemap.xml` file. - [ ] Build `rss.xml` file. +- [x] Only build page if `*.md` is new or updated. + - [ ] Extend this to tag pages and index (right now all tags and index is built no matter if no new/updated file is present). +- [x] Configuration file as an alternative to using command line flags (configuration file options are prioritized). -## Markdown features +### Markdown features -This program uses [`python-markdown`](https://python-markdown.github.io/) package with the following [extensions](https://python-markdown.github.io/extensions/): +This program uses the base [`markdown` syntax]() plus additional syntax, all thanks to [`python-markdown`](https://python-markdown.github.io/) that provides [extensions](https://python-markdown.github.io/extensions/). The following extensions are used: - Extra (collection of QoL extensions). - Meta-Data. @@ -26,8 +31,20 @@ This program uses [`python-markdown`](https://python-markdown.github.io/) packag - Table of Contents. - WikiLinks. +## Installation + +Just install it with `pip`: + +```sh +pip install pyssg +``` + +*EW!*, I know..., I will try to make a PKBUILD and release it in AUR or something; hit me up if you do it to add it here. + ## Usage +It is intended to be used as a standalone terminal program running on the "root" directory where you have the `src` and `dst` directories in (defaults for both flags). + First initialize the directories you're going to use for the source files and destination files: ```sh @@ -39,7 +56,7 @@ That creates the desired directories with the basic templates that can be edited Build the site with: ```sh -pyssg -s src_dir -d dst_dir -b +pyssg -s src_dir -d dst_dir -u https://base.url -b ``` -That creates all `*.html` for the site and can be easily moved to the server. Where an optional `-u` flag can be provided for the base URL (don't include the trailing slash `/`) +That creates all `*.html` for the site and can be easily moved to the server. Here, the `-u` flag is technically optional in the sense that you'll not receive a warning/error, but it's used to prepend links with this URL (not strictly required everywhere), so don't ignore it; also don't include the trailing `/`. |