Migrating to 1.1
If your comic_git site is already working, and you are happy with it, you do not have to move to 1.1 right away.
However, if you want the new features and fixes in 1.1, this upgrade should be much simpler than the move to 1.0.
For most users, upgrading to 1.1 is mainly:
update your
Engine versionto1.1update your GitHub Actions workflow to use the
v1.1build actionmove website files such as
favicon.icoand.nojekyllfrom the repository root intoyour_content/site_rootrebuild or republish your site, then check any customizations
Basic upgrade steps
If you are already using the 1.0 engine layout, start here:
Open your
comic_info.inifile.In the
[Comic Settings]section, update:
Engine version = 1.1Open your
.github/workflows/main.yamlfile.Find the
call-build-sitejob and update theuses:line to point to thev1.1version of the reusable workflow:
uses: comic-git/comic_git_engine/.github/workflows/build_site.yaml@v1.1Move files that need to go at the root-level of your website into the
your_content/site_root/folder. Create that folder if necessary.
Move only the files that need to appear at the root of the published website into it. Even an uncustomized older comic_git repository normally has favicon.ico and .nojekyll in the repository root, so move those files to your_content/site_root/favicon.ico and your_content/site_root/.nojekyll. You may have other files that need to be moved as well, like CNAME if you use a custom domain.
Rebuild or republish your site normally.
Check your site for any custom workflows, themes, or expert-level setup that may need to be updated.
If you do not use any advanced customizations, that may be all you need to do.
The workflow version and engine version are separate choices. The values above follow compatible 1.1 patch updates. For an exact, reproducible 1.1.0 build, use workflow tag v1.1.0 together with engine version 1.1.0.
What changed in 1.1?
Version 1.1 adds several end-user features, including:
optional TOML Configuration for comic settings and page content
structured per-image titles, alt text, and thumbnails on multi-image pages
page-based or image-based Archive entries, including text-only page support
customizable Social Media Previews
built-in support for deploying to Neocities
a documented Webring feature
more RSS feed options for Extra Comics
Most of these are new features, not breaking changes.
Your existing INI and text files remain supported. Moving to TOML is optional and can be done later.
The main migration concerns in 1.1 are for people who use advanced or custom setup.
Changes advanced users should check
Local build script paths changed
If you run engine scripts directly on your own computer, some important file paths have changed.
Update any custom notes, scripts, shortcuts, or external tooling that still points to the old paths.
Also note that local builds now write the finished site into build by default unless you explicitly override OUTPUT_DIR. Check your .gitignore file and add build/ if the folder is not already ignored.
Common path updates:
comic_git_engine\scripts\build_site.pyis nowcomic_git_engine\src\build\build_site.pycomic_git_engine\scripts\delete_autogenerated_files.pyis nowcomic_git_engine\src\scripts\delete_autogenerated_files.pycomic_git_engine\scripts\requirements.txtis nowcomic_git_engine\requirements.txt
Custom Python code may also import old engine modules rather than run them directly. Search your theme scripts and other custom Python for imports beginning with comic_git_engine.scripts; those paths no longer exist. For example, helpers formerly imported from comic_git_engine.scripts.utils now live in core.utils when your code runs as part of the comic_git build:
The documented Code Hook names, arguments, and page objects are the supported extension API. Other engine modules and helpers may move between releases, so custom code that imports them should be reviewed during upgrades. A standalone Python script does not automatically have comic_git_engine/src on its import path; either run that code through a Code Hook or explicitly add that folder to the standalone script's Python path.
If you build locally and use Code Hooks with extra Python libraries, your local setup should also match the current GitHub Actions workflow:
See Building Your Website On Your Own PC for the current local workflow.
Neocities workflow settings may need updating
If you already set up a custom Neocities deployment workflow before the current docs existed, review it carefully.
In particular:
update the
uses:line tocomic-git/comic_git_engine/.github/workflows/build_site.yaml@v1.1use
OUTPUT_DIR: buildfor Neocities deploysuse
NEOCITIES_CLEAN, notNEOCITIES_CLEARmake sure your Neocities API token is stored as
NEOCITIES_API_TOKEN
See Hosting comic_git Elsewhere for the current setup.
Webring behavior may need updating
If you experimented with the webring feature before it was fully documented, check your setup against the current rules.
In particular:
Webring IDis now required whenever the webring feature is enabledlocal testing should use
Endpoint = localsettings like
Exclude own comic from membersdepend onWebring IDmatching your memberidexactly
See Webring for the current setup.
Social Media Preview setup should be reviewed
If you already customized Social Media Preview behavior using older examples or partial docs, review your setup against the current feature docs.
In particular:
image size metadata should be set through
og:image:widthandog:image:heightinyour_content/social_media.jsonyou can override preview images by replacing
your_content/images/preview_image.pngor by settingog:imagedirectlyExtra Comics now fall back to the main comic's
your_content/social_media.jsonif they do not define their own file
See Social Media Previews for the current setup.
Custom templates and Code Hooks must use structured page data
Version 1.1 represents every comic page as a structured page object with an ordered list of image objects. Default themes already support this, but custom templates or hooks that depend on 1.0 dictionaries may need changes.
Copied templates are complete replacements and do not automatically receive fixes made to the engine's templates. Compare each template your theme overrides with the current engine template, especially comic.tpl, archive.tpl, tagged.tpl, and infinite_scroll.tpl.
Common replacements include:
comic_paths
ordered images, using image.web_path for each image
escaped_alt_text
image.alt_text, normally rendered with | e
page-wide thumbnail_path
page.thumbnail_path, or entry.thumbnail_path in an Archive loop
_title
page.title, or entry.title in an Archive loop
archive_post_date or _post_date in an Archive loop
entry.post_date
a hand-built Archive URL using page_name
entry.page_url plus the content fragment shown below
Preserve the image list's order and add the positional anchor when a custom comic template renders images:
Custom Archive templates must also link each entry to the content it represents. This is what makes separately listed images open at the correct image instead of the top of the same page:
An Archive entry may have no thumbnail, particularly for a text-only post, so custom templates should check entry.thumbnail_path before rendering an <img>. Use {{ base_dir }}/{{ entry.thumbnail_path | e }} rather than assuming the site is published at the domain root.
Custom Infinite Scroll chapter navigation should use infinite_scroll_chapters, not the first item in each storylines group. Archive settings can change what storylines contains.
Page-related Code Hooks now receive objects rather than dictionaries. Read standard data through attributes, and put custom page values in page.extra:
Public values in page.extra appear in the page's extra object in page_info_list.json; keys beginning with ! remain private. A hook that previously copied a page dictionary and added template values must instead build its custom template context explicitly from the page attributes, configuration, and its own values. In particular, build_other_pages receives comic_folder, comic_info, and list[ComicPage], not a ready-made template dictionary or the final global_values dictionary.
See Template and Hook Data and Code Hooks.
Custom page metadata consumers must use the new format
The public comic/page_info_list.json file now contains a versioned document with structured pages and images. If you have custom JavaScript or another tool that reads this file, update it to use schema_version and the pages list. See Generated Page Metadata for the current format.
Archive behavior has new options
The Archive defaults to one entry per page. You can opt into one entry per image with List images separately = True. When images are listed separately, Show text-only posts controls whether pages without images remain listed, and Image title fallback controls titles for images without their own title.
Existing sites retain page-based behavior unless they enable the new mode. See the Archive settings.
TOML migration is optional
comic_git can read comic_info.toml and page info.toml files, and includes a dry-run-first migration command. A TOML file takes complete precedence over its matching legacy file rather than merging values.
Do not delete your legacy files until you have reviewed the TOML and successfully rebuilt your site. See TOML Configuration for the command and safety steps.
Check your site layout on mobile
Version 1.1 includes a number of CSS changes to improve mobile responsiveness.
Those changes should be helpful for most sites, but if you have custom CSS, a custom Theme, or edited templates, it is a good idea to check that your layout still looks the way you expect on smaller screens.
In particular, check:
your homepage
comic pages
navigation bars
archive pages
any heavily customized themed pages
What probably does not need migration work
Many 1.1 changes are improvements or new options that do not require you to change existing files unless you want to use them.
For example:
the new Neocities docs do not affect GitHub Pages users
the Webring feature does not affect you unless you enable it
the new RSS feed options for Extra Comics are optional
the mobile style improvements and banner sizing fixes do not require manual action
Recommended upgrade check
After moving to 1.1, it is a good idea to check:
your site still builds successfully
your
.github/workflows/main.yamlfile points tocomic-git/comic_git_engine/.github/workflows/build_site.yaml@v1.1local build instructions, imports, or helper scripts you use still point at the right engine files
any Neocities workflow you use still matches the current parameters
any Webring setup you use still matches the current documented behavior
any Social Media Preview customization still matches the current docs
custom templates and Code Hooks use the 1.1 page and image objects and preserve positional links
any optional TOML migration builds correctly before legacy files are removed
If all of those look correct, your upgrade is probably complete.
Last updated