Springheel Changelog¶
Version 7.0.1¶
Date: 2021-06-29
Minor updates to documentation and file manifest.
Improved extra generation’s file size calculator.
Version 7.0.0 “Chilchuck”¶
Date: 2021-06-21
It’s Springheel’s biggest release yet! I’ve changed or improved almost every aspect of the program, so there’s almost too much to describe.
New Features¶
Springheel now accepts metadata, transcript, and character files in JSON format. It expects the extensions “.meta.json” and “.transcript.json” for the former (respectively); character files can be named whatever you like, as they’re specified in the comic configuration. Set
json_mode
inconf.ini
to True to try it out. The tutorial has detailed syntax examples. Note that generation may behave erratically if some input files are JSON and others are not; if you’re going to use JSON mode, make sure to convert all metadata, transcript, and character files to JSON format first.A new command line script,
springheel-addimg
, will automatically generate metadata files for strip images.Springheel now automatically detects sizes for all images, removing the need to manually specify them in metadata. Dimensions are also stated in the output HTML, so page elements do not move or jitter as images load. This feature and
springheel-addimg
add Pillow as a dependency.You can now create “webtoon”-style comics with multiple image files per strip! Set
mode
to “webtoon” in both the comic.conf
and the strip’s metadata, then add a list of image filenames to the latter aspieces:
, à lapieces: panel2.png, panel3.png
.Springheel now contains proper documentation built with Sphinx. It’s the future! The rst files can be found in
docsource
when you download Springheel’s source code, but they’re mostly just automodule stuff, so I don’t know how useful they’ll be. I also built them with my own customized theme, so locally-produced output may vary. Note that you’ll need the numpydoc extension to build the docs from source.Springheel can now generate “about” pages with long descriptions of comics, optionally with a subset of HTML. To use it, set
about
to True inconf.ini
and define the about section in the relevant.conf
file with “about =
”. You can include line breaks by writing\n
where needed. This feature adds a new dependency on html-sanitizer.Some non-integer page numbers – decimals (like “6.5”) and double-page ranges (like “116–117”; en dashes and hyphens both work) – are now accepted.
Alt text on navigation arrows includes numbers, so assistive tech users can more quickly tell where they are actually going (without having to look at other areas of the page, identify relevant bits of long URLs, etc.).
Added a new “chapter view” – if chapters are enabled, you can generate pages for each chapter that show all that chapter’s strips (and the appropriate metadata) and allow navigation between chapters; as with individual comics, navigation will not appear if there is only one chapter. On sufficiently wide screens, two pages appear side by side, much like pages of a physical book.
The separator between stat line elements is now a translatable template string, so you can edit it locally if you want a different one.
Allow setting raw HTML copyright/license statements with
license_html
in .conf files.The date formatting string is now editable in strings.json. Caveats: for compatibility, there is no single string passed directly to strftime. Instead, the values of
strf_format
(default: “%Y{y}%m{m}%d{d}”) anddate_format
(list of 3 strings, can be “”) are combined. Warning: because of the variety of different areas of the code where dates are used, substantial changes tostrf_format
may cause unpredictable problems during build.The extras page now indicates the size of downloadable files in bytes, kibibytes, or mebibytes.
You can now manually specify slugs. For categories, add a line like
slug = desired-slug
to the.conf
file. For strips, addtitle_slug: desired-slug
to the.meta
file. (Strip slugs are only used in image rename patterns.) This is especially useful for non-ASCII languages that get odd output from the existing slug system.Added rudimentary support for OpenGraph and Twitter Card tags.
If a comic is based on an existing work, you can now add a link to the source in its
.meta
file à lasource: https://example.com
, and it will appear in the statline.Springheel’s command-line messages are now translatable with gettext, making the program easier to use in other languages.
Type hints have been added to all functions.
New Default Themes¶
“elemental” subthemes “electricity”, “ice”, “wood”, and “metal”.
“staples”
“meikai”
“berryheart”
“blacktea”
Improvements¶
File copying and similar features are now performed asynchronously, so they should be considerably faster. This increases the minimum Python version required to 3.7.
Previous/next buttons are no longer displayed if there is only one more strip in that direction (i.e., first/previous or next/last have the same value), to avoid having multiple buttons going to the same page.
If only one strip (or chapter) exists in a category, navigation is not generated at all.
Figure captions are no longer displayed if nothing has been set for them. (Of course actual alt text is present for the images themselves.)
“Permalink” has been added to the stat line.
Chapters no longer must have titles (this was intended to be the case already, but I forgot).
Transcript parsing is much neater and cleaner, and accepts more line endings.
Lots of fixes to make the code faster and cleaner.
Tuned up all themes and templates significantly. They are cleaner and more accessible all around.
The “twothousand” theme in particular has been almost entirely rewritten. It should be less ugly and more faithful to the era it evokes.
Category/chapter/page information has been moved to the stat line (“Posted by Jane Smith on such-and-such date”), and links to the chapter-view page if applicable.
Copyright footer information is more detailed, especially when strips in the same category have different authors.
Copyright years are now listed as a range from the original posting date to the current year as of site-generation time.
Meta lines include links to transcript files, instead of just metadata files.
Springheel now fails to build if a page without a chapter specified is in a category that is divided into chapters. (At present, Springheel is not designed to allow this.)
Post dates are now displayed in archives.
On Japanese sites, dates now appear formatted like “[year]年[month]月[day]日”, as this isn’t substantially different from ISO 8601.
Table of contents generation has been expanded to include non-chaptered comics.
The scrollto preference has been removed, as it was causing issues with other necessary features.
Comics without transcripts no longer display a message to that effect on generated pages. I reasoned that it was confusing to have a “transcript” heading if there was in fact no transcript present. The JSON endpoints file will still contain
transcript_c: "<p>The author has not provided a transcript for this comic.</p>"
(or the equivalent in the site language) for consistency.In the same vein, comics without commentary do not display the “no commentary” message and have the “Commentary” heading switched out for “Metadata”.
The links to metadata and transcript files now indicate the approximate type of file they are. In default mode, this will be “YAML” for metadata and “TXT” for transcripts, and in JSON mode, “JSON” for both.
Made it less annoying to add new fields to
strings.json
.Logging has been improved and now defaults to off. To enable it, just add
--logging
as an argument tospringheel-build
.Skip-navigation links are now always visible in all themes, rather than being visually hidden until activated.
The “home” link in top navigation has been removed, and the header image is now a link to the home page.
Bugfixes¶
Finally switched the meanings of “header” and “banner” in configuration files and templates, and renamed the
banner_filename
option inconf.ini
toheader_filename
. This is a backwards-incompatible change. (I originally got them the wrong way around by mistake, and was waiting for a major version to fix it.)Navigation goes only to existent pages, to avoid 404 errors from numbering gaps.
If multiple comics on a multi-theme site use the same theme, that theme is no longer relentlessly duplicated by the stylesheet concatenation process.
Comics are now sorted consistently on index and archive pages.
Chapter titles no longer contain trailing newlines.
If a comic has multiple authors, this is reflected in the JSON Feed.
Characters are attributed to the correct comics in the site JSON endpoints file.
Commentaries no longer contain empty
<p>
elements.
No matter how many times the Sun rises or the Moon sets, like the lodestar above that guides us, may the winds of fortune ever blow your way.
Version 6.0.3¶
Date: 2020-07-26
Fixed a bug that kept headers and banners from copying to output under some circumstances.
Version 6.0.1¶
Date: 2020-07-18
Replaced awesome-slugify with python-slugify, as the former is no longer actively developed.
Minor updates to JSON Feed generation to comply with version 1.1 of the spec.
Version 6.0.0 “Ukyou”¶
Date: 2020-05-27
Added new themes “fluff”, “crystal”, and “elemental” (which is configurable, like “seasonal”).
Added progress bars for time-consuming parts of site generation, like finding images and creating tag index pages. This feature adds tdqm as a dependency.
Added rudimentary JSON Feed support. I hacked this together myself based on existing JSON endpoint bits; it validates, but should be considered experimental.
Added feature to generate tables of contents on archive pages if the comic has chapters.
Improvements to the “book”, “fairy”, “gothic”, and “city” themes.
Optimized some graphics slightly. There should be little or no visual difference.
Cut some unneeded mixin imports from the theme SCSS files.
Fixed an error in the default conf.ini –
scrollto
was mistakenly listed asskipto
and so did not work.Fixed several bugs in non-chaptered comic archives.
Changed the recommended alternate value of
scrollto
from “comic” to “topbox” so that above-strip navigation can still be accessed. “comic” is still accepted as a valid value forscrollto
.Added
scrollto
to archive links as well.Allow disabling
scrollto
by setting it toFalse
.Added classes and I.D.s to some elements that did not have them.
Added social button for Mastodon.
RSS feed generation bugfixes: less hacky output selection and comment creation, and strips with a more recent date will appear closer to the top of the XML file.
Cleaned up social media icon code and markup a bit.
Removed trailing spaces that were accidentally inserted after speaker identifiers in transcripts.
Many improvements to the HOWTO.md tutorial file.
Adding page URL as an argument to
format()
when generating pages. If you want to add something like a “share” button to your page templates (per the “Extending Springheel Sites” section of HOWTO.md), you can use{url}
in place of a static permalink. Springheel will now replace that with the page’s URL.The default alt text that appears when
alt
is unset is now more informative.Page numbering now sensibly allows for page number 0. (It previously started from 1.) This allows for cover pages and the like without creating confusing constructions like “Page #2 ‘Page 1’”.
If they exist, some non-strip assets (e.g. stylesheets, site graphics, navigation arrows) are no longer rewritten when building, to avoid them being copied and re-copied over and over. Delete
output/assets
andoutput/arrows
if you do want to overwrite these files.
Version 5.2.4¶
Date: 2019-12-29
Alt text for comic pages is now a translated string.
Extra images now have alt text, allowing screen readers on some platforms to announce their captions properly.
Version 5.2.3¶
Date: 2019-12-29
Finally accepted that my paltry attempt to support favicons was in error. Users who want to add favicons should edit their site’s local templates (the old/bad favicon code has been replaced with a comment indicating where to insert the output from a dedicated favicon generator) and manually copy the appropriate files into
output
.Fixed a couple of minor HTML errors in templates (mostly extra whitespace and single-quoted elements) and the processing of same.
Version 5.2.2¶
Date: 2019-12-16
Improved metadata parsing a bit.
Added missing docstrings.
Fixed some quirks in page-footer copyright statements.
Cleaned up some unused functions.
Updated HOWTO.md
Version 5.2.1¶
Date: 2019-10-31
Removed the
langcodes
dependency. Multi-language site linking should work the same as before, if not better.Added display of the original language code as a fallback if Springheel doesn’t know the proper name for a language during multi-language site linking.
Version 5.2.0 “Bossun”¶
Date: 2019-10-27
Made it possible to insert links to your Springheel site in other languages in the site footer, using the new
multilang
config option. Notably, this addslangcodes
as a dependency (to display the language names correctly).Added functionality to generate a JSON file (
output/site.json
) with detailed information about the site, including URL endpoints. This should theoretically make it easier to extend Springheel sites with other programs.Fixed an error in social icon spacing. (Re-init any existing site templates.)
Updated HOWTO.md
Version 5.1.0 “Senku”¶
Date: 2019-10-23
Added a configuration option for skip links and comic navigation to scroll directly to the comic image, instead of to the page title.
Fixed an error that was preventing sites’ local
strings.json
files from being used.Completely rewrote comic navigation.
Started work on a Spanish translation. It’s incomplete and likely weird in many places; I don’t actually speak Spanish. (The translation is based entirely on poking around on Spanish webcomic sites to see how they render the common terms, double-checking with several dictionaries.)
Started a French translation in the same way, although I’m even less sure of this one’s accuracy.
Removed references to GitHub from
setup.py
and templates in protest of their contract with ICE.
Version 5.0.3¶
Date: 2019-10-10
Fixed a major bug where comics on multi-comic sites were added to the wrong chapters.
Corrected the error message that appears if “status” is unset.
Version 5.0.2¶
Date: 2019-10-2
Fixed a bug where tag page results weren’t being sorted correctly.
Archive page titles for single-comic sites are now translatable.
Fixed an error where colons couldn’t be used in some metadata fields.
Removed the long-unnecessary language prompt when running
springheel-init
.Lots of improvements to all themes. (Make sure to re-run
springheel-init
to update your stylesheets)
Version 5.0.0 “Azumane”¶
Date: 2019-09-3
Added proper tagging system.
Added option for zero-padding page numbers.
Cleared out some unused stuff from archive and navigation generation + the default conf.ini
Fixed some issues with image renaming.
Fixed error where chaptered works sometimes appeared twice on archive pages.
Started naming major/minor versions [STRIKEOUT:after hot anime dudes]
Version 4.1.0¶
Date: 2019-07-23
Springheel now generates XML site maps of comic sites.
Cleaned up logging a bit.
Version 4.0.0¶
Date: 2019-06-20
Added new themes “revolution”, “fairy”, “sysadmin”, and “might”.
Separated traits from descriptions on character pages.
Fixed major error where a multi-comic site wouldn’t generate if some comics had a characters file and some didn’t.
Fixed bug where slugs were not URL-safe.
Fixed bug where the archive page’s main heading wasn’t getting translated.
Fixed bug where extras pages used a comic’s title and banner, instead of the sitewide ones.
Slight improvements to “seasonal” and “showtime” themes.
Version 3.0.3¶
Date: 2019-06-15
Fixed a very stupid copy+paste error that caused public domain comics to be described as published from a U.R.L. (instead of their respective country).
Version 3.0.2¶
Date: 2019-06-15
Did a better job fixing the character bug from the previous version.
Fixed an error where non-transcribed comics wouldn’t generate on Windows.
Fiddled with the markdown in HOWTO.md because it was displaying strangely in some programs.
Version 3.0.1¶
Date: 2019-05-25
Fixed a bug where archives weren’t generating correctly for non-chaptered comics.
Fixed a bug where the ordering of character attributes changed randomly every time the page was regenerated.
Updated some information in the default conf.ini file.
Version 3.0.0¶
Date: 2019-05-10
Added extras page functionality
Added new theme “showtime”
Corrected
<title>
elements for character pagesImproved logging
Version 2.0.0¶
Date: 2019-02-9
Condensed template files into one
Improved accessibility
Updated translations
Version 1.0.2¶
Date: 2019-01-25
Fixed a bug where archives couldn’t be generated for multi-comic sites.
Version 1.0.1¶
Date: 2019-01-25
Fixed the parts of the readme that said arrow was a dependency (it isn’t).
Fixed a bug where .sass-cache was getting installed as if it were a theme.
Version 1.0.0¶
Date: 2019-01-24
First public release!
Streamlined config files.
Tidied up all stylesheets and templates.
Added some more translation strings.
Refactored a whole lot of code and made it neater.
Fixed miscellaneous bugs.
Added new themes “rock” and “western”.
Added better arrows for some themes.