So where am I up to with this? What I have right now you can give a folder of AO3-generated HTML files and it will output a list of works, including their tags, and format the works according to a custom template.
It works pretty well... as long as you have used all the metadata fields AO3 supports.
If, for example, your work doesn't have a category, or a relationship, or isn't in a series, it outputs ugly templating placeholders. This is because I based it on makesite.py, which has a very basic templating system.
There are multiple ways I could get around this, such as:
a) Add a(nother) field to the configuration to allow us to define the format, label and wrapper for every metadata field. Achieves the aim in a flexible way but is fiddly and requires more documentation.
b) Replace the individual metadata fields with one big metadata block that are all formatted the same way. Not flexible if you want to display work metadata in a Non-AO3 way.
c) Just give in and implement Jinja2 templating, which allows the use of if/else/then structures in the templates, among many other features. Will still require some documentation but at least it's a useful skill for people who are new to it (as opposed to learning something unique to this system). I've never used it before but I have used the PHP equivalent so hopefully it's transferable.
So I think I'm going to have to go with option c. (The list of changes in my git fork is going to be ridiculous.) This will still be useful if I decide to output Hugo-friendly Markdown in the future.
( List of features it currently supports )
It works pretty well... as long as you have used all the metadata fields AO3 supports.
If, for example, your work doesn't have a category, or a relationship, or isn't in a series, it outputs ugly templating placeholders. This is because I based it on makesite.py, which has a very basic templating system.
There are multiple ways I could get around this, such as:
a) Add a(nother) field to the configuration to allow us to define the format, label and wrapper for every metadata field. Achieves the aim in a flexible way but is fiddly and requires more documentation.
b) Replace the individual metadata fields with one big metadata block that are all formatted the same way. Not flexible if you want to display work metadata in a Non-AO3 way.
c) Just give in and implement Jinja2 templating, which allows the use of if/else/then structures in the templates, among many other features. Will still require some documentation but at least it's a useful skill for people who are new to it (as opposed to learning something unique to this system). I've never used it before but I have used the PHP equivalent so hopefully it's transferable.
So I think I'm going to have to go with option c. (The list of changes in my git fork is going to be ridiculous.) This will still be useful if I decide to output Hugo-friendly Markdown in the future.
( List of features it currently supports )