Migrate and upgrade
From another theme
- Replace
theme:orremote_theme:with this theme (see Install) and pin a version. - Set
layout: docas a default in_config.yml, or keep your own layouts and include only the parts you need. - Keep page bodies as they are. GitHub alerts, tables and fenced code already work. Remove raw HTML and Liquid from bodies where you can;
modootoday-checklists what is not portable. - Move colours and fonts into
modootoday.tokensinstead of overriding CSS selectors. - Run
jekyll buildandmodootoday-check SRC _site, then fix what it reports.
Common mappings: minima layout: page and just-the-docs layout: default become layout: doc; callouts made with an include note.html tag become > [!NOTE]; badges written in HTML become `status:available` code spans.
Adopting in an existing project
| Method | Use when | Updates |
|---|---|---|
Gem (theme:) |
the site has a Gemfile (Jekyll 4 or the github-pages gem) |
bundle update jekyll-theme-modootoday |
remote_theme: |
classic GitHub Pages without a Gemfile |
change the @vX.Y.Z tag |
| Copy-in | you need to fork layouts or cannot add a dependency | copy _layouts, _includes, _sass and assets from a tagged release and record the version; you merge updates by hand |
Prefer the gem or remote_theme: pinned to a tag. Copy-in loses upgrades and checker guarantees for the files you change.
Markdown twins
Pick one of three ways to publish the agent-readable twin of each page:
- Stub files (default, classic GitHub Pages): one small
<page>.md.txtper page. - Plugin (Jekyll 4 or GitHub Actions):
plugins: [jekyll-theme-modootoday]creates twins andllms.txtwithout stubs. - Source mode (classic GitHub Pages, no stubs):
modootoday.twins: sourcewith pages that have no front matter. Classic GitHub Pages serves the raw copy astext/markdown; charset=utf-8, identical to the source (see RULES.md §5a for the limits).
Switching between them does not change page bodies. See Agents and section 5a of RULES.md.
From jekyll-seo-tag
To let the kit write the SEO tags instead of jekyll-seo-tag:
- Remove
jekyll-seo-tagfromplugins:and theGemfile, and theseotag from_includes/head-custom.html. - Remove
seo: falseandhreflang: truefrommodootoday:. The kit writes the canonical link, thehreflangalternates and Open Graph again; delete any alternate links you added by hand, so no page lists them twice. - Set the browser bar colour with
modootoday.theme_color(see Configuration). The kit writes twotheme-colortags by default, one for light and one for dark; remove anytheme-colortag of your own, or the page has three. - The kit writes only
twitter:card(summary_large_imagewhen the page has an image). It reads notwitter:setting; put atwitter:sitemeta tag in_includes/head-custom.htmlif you need one. - Rebuild and run
modootoday-check SRC _site: the warning about jekyll-seo-tag JSON-LD should be gone.
Upgrading
Read CHANGELOG.md for every version you skip. The Public API page lists the documented names. After upgrading, run modootoday-check --strict.
| From | To | What to do |
|---|---|---|
| a build from the repository before 1.0.0 | 1.0 | pin ~> 1.0 or @v1.0.0; run modootoday-check --strict |
| 1.0 or 1.1 | 1.2 | pin ~> 1.2 (or the newest v1.2.x tag with remote_theme); the new section and hero options (bleed:, reveal:, c: split with visual:) are opt-in, so pages need no edits; run modootoday-check --strict |
| 1.2 | 1.3 | pin ~> 1.3 (or @v1.3.0 with remote_theme); the reference sidebar (sidebar: true) and package table (packages:) are opt-in, so pages need no edits; run modootoday-check --strict |
| 1.3 | 1.4 | pin ~> 1.4 (or @v1.4.1 with remote_theme); packages_compact and packages_position are opt-in, and reference pages now convert alerts like doc, so pages need no edits; run modootoday-check --strict |
If your pages come from a pre-1.0 draft that allowed fewer sections: items than ## headings, add a plain name (such as notes) for each remaining heading: the count must now match, and modootoday-check reports the page and both numbers.