flamebyrd: (Default)
I need to admit at this point, over a year later, that I have mentally checked out of this project and thus I am now releasing it into the wild, in its mostly-complete state.

This does not mean I don't plan to fix bugs or answer questions, or even provide configuration instructions that I can later turn into wiki entries, if anybody wants to actually use it! It's just that I want to work on other things more right now in my limited free time (I have more than I used to, but it's still limited).

In short, this is a Python script that will take a folder of AO3 HTML files and format them into a consistent style/template, and generate an index listing all the pages, including work metadata.

Many many thanks go to [personal profile] sqbr for helping document this mess! They are also to thank for most of the excellent fake fandom names in the sample content.

You can download the script here:
https://github.com/flamebyrd/makesite

If you'd like some handholding on setting this up, please feel free to drop me a comment or ping me on Discord, and I can make time to go through it with you. Definitely let me know if you use it so I can keep you informed of any changes!

I'm sure as soon as I put this out there I'll discover a ton of bugs or suddenly be inspired to make changes, so keep an eye on this post for updates!
flamebyrd: (Default)

I swear, I'm still alive, it's just I was sick for a while and then just overwhelmed. But now I am taking steps to tackle this problem by writing out what still needs to be done.

Things required in order to release an alpha version:

  • Write quick setup instructions
  • Create sample content
  • Finalise default themes, including dark/light theme switcher
  • Test quick run shell script for OSX (Windows .cmd file is complete)
  • Document all configuration options and how to use them
  • Code walkthrough (like the original makesite.py)
  • Complete feature list
  • Document advanced usage, like single directory output
  • Check the dang thing into git (yes, yes, bad practice, I know)

Things not yet implemented that I would like to have by beta release:

  • JSON file output for use in frontend scripts
  • RSS support
  • Automated tests (yes, yes, bad practice, I know)

Basically I have a lot of documentation to write, and I just cannot seem to get into the headspace to do it /o\

flamebyrd: (Default)
Sunday: I have made some real progress on my static site generator project, I should be about ready to release a public alpha by the end of the week!
Monday: Surprise! Conjunctivitis!*

Maybe by the end of next week...

But if there's anyone reading this who would like to help me knock out any bugs/finalise features before the first release, please drop me a line!

Incidentally this project now has a tag, fanfic.py. This is not what the program itself is called but it is the title of my todo list for it.

* Only a surprise because my spouse had contracted it last Monday and I thought I might have escaped...
flamebyrd: (Default)
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 )
flamebyrd: (Sleepy!Duck)
I've been sick this week, which has sapped most of my physical ability so I've been mostly sitting around resting, but mentally I'm... not fine, but functional, so I've been poking at the idea I mentioned in my last post about using a static site generator to manage your personal fanfic archive (a la Melannen's tutorial).

The biggest hurdle I'm hitting is that I'm not actually sure what I want to create. Is it:
a) A script and tutorial for importing an existing collection of AO3-generated HTML files into Hugo (or something similar), extracting the metadata from the AO3 files and reformatting it for use in Hugo, with sample HTML templates and tips for how to manage the site in Hugo going forwards, or
b) An entirely customised static site generator (based on makesite.py that works on a folder of AO3-generated HTML files (and potentially non-AO3 generated files too) and generates the entire site based on the metadata in those files, with granular options for how things should be grouped/sorted/etc.

Obviously there are advantages and disadvantages to both! Option b) is going to be a lot more work, both initially and ongoing, so naturally that's what I've been focusing on so far. But I feel probably option a) is the more sensible direction to go?

If this idea sounds interesting to you, what would you want out of it? You don't need to work off my suggested options, just share your vision!
flamebyrd: (Default)
I don't think I posted about this here when I wrote it last year, but it helped me out today, so here goes:

Bookmarklet: Show Spoilers (Beta)

This will take whatever text you have highlighted and make the background colour white and the text colour black. I use it on my mobile browser to show spoilers where people have made the text and background the same colour.

(When I opened up the link to paste it in I reread my code and immediately felt the need to re-do it because it was hideous. Why am I like this!)
flamebyrd: (Default)
As is frequently the way, a bit of sleep helped clear the mind. Thus, I now have a working beta for keyboard navigation in Pillowfort.io.

https://random.fangirling.net/fun/ao3/pillowfort_keyboard_shortcuts.user.js

There were a few things going wrong. For a lot of the time I thought I was being tripped up by PillowFort's lazy loading of content, but what was actually happening was the height of the top bar and the bottom position of the entry were encountering rounding errors.

Anyway, it's working for me now in recent versions of Firefox and Chrome.

Every time I visit PillowFort I am instantly turned off by the UI, so this may not be the last time I decide to do something about it...
flamebyrd: (Default)
The Yuletide 2017 Tag Set is open! \o/

However, I'm highly unlikely to sign up this year because I'm not in a good writing/requesting place right now, so this is a note to let people know if there are any bugs or UI improvements for my tag set filter bookmarklet, please let me know as I probably won't notice on my own.
Page generated May. 15th, 2025 12:13 pm
Powered by Dreamwidth Studios