Skip to content

BlogMore ChangeLog

v2.9.0

Released: 2026-04-04

  • Added styling for <kbd> elements. Keys are now rendered with a subtle raised appearance using a border, background, and monospaced font. Two new CSS variables β€” --kbd-bg and --kbd-border β€” control the appearance and can be overridden in a custom stylesheet. Both light and dark modes are supported via the corresponding --dark-kbd-bg and --dark-kbd-border palette variables. (#363)

v2.8.0

Released: 2026-04-02

  • Fixed a bug where post or page content starting with a line of the form <digit>:<rest> (e.g. 7:54am …) was silently dropped from the rendered HTML output. (#360)

v2.7.0

Released: 2026-04-01

  • Replaced the regex-based extract_first_paragraph implementation with a Markdown-library-powered approach. (#354)
  • Draft posts now receive a clear visual indicator wherever a post title is rendered: the title is displayed in a contrasting amber colour and a 🚧 emoji is appended after the title text. (#357)

v2.6.0

Released: 2026-03-28

  • Fixed auto-generated post descriptions so that reference-style links are stripped to plain text, matching the existing behaviour for inline links. Strikethrough (~~text~~) and underscore bold/italic (__text__, _text_) are now also stripped. Reference link definition lines ([ref]: url) found inside a paragraph block are skipped rather than included in the description. (#349)

v2.5.0

Released: 2026-03-27

  • Added support for strikethrough text using ~~text~~ syntax, which renders as an HTML <del> element. (#346)

v2.4.0

Released: 2026-03-25

  • Broke out page-specific styles from the main style.css into separate stylesheets (search.css, stats.css, archive.css, tag-cloud.css). Each stylesheet is loaded only on the pages that need it. (#341)
  • Fixed singular/plural in the "Word Count" section of the stats page so that a count of 1 now correctly shows "1 word" rather than "1 words". (#343)

v2.3.0

Released: 2026-03-24

  • Fixed sitemap generation not excluding the search page if a custom search_path was in use. (#331)
  • Added light_mode_code_style and dark_mode_code_style configuration options that allow the Pygments syntax-highlighting colour scheme to be configured independently for light and dark mode. (#334)
  • Fixed serve mode not restoring configuration defaults when a setting is removed from the YAML file. (#337)
  • Added an optional blog statistics page (--with-stats / with_stats: true). When enabled, a stats page is generated showing all sorts of statistics about posts in the blog. The output path is configurable via the stats_path configuration file option, which honours clean_urls in the same way as the other path options. (#338)

v2.2.1

Released: 2026-03-23

  • Fixed sidebar page links on individual post pages not respecting the configured page_path and clean_urls settings. (#329)

v2.2.0

Released: 2026-03-23

  • Added post counts to the archive page. (#326)

v2.1.0

Released: 2026-03-22

  • Fixed false-positive stripping of index.html from URLs such as /my-index.html. (#315)
  • Overhauled the styling of code blocks, adding a language label in the top-left corner and a copy-to-clipboard button in the top-right corner. (#323)

v2.0.1

Released: 2026-03-17

  • Fixed categories_path and tags_path not loading correctly from the configuration file. (#313)

v2.0.0

Released: 2026-03-17

  • Added configurable search page path option via the search_path configuration option. (#304)
  • BREAKING CHANGE: Added configurable pagination path options page_1_path and page_n_path. These configuration file settings control the output path template for the first page and for pages 2+ of any paginated listing (main index, year/month/day archives, tag pages, and category pages). The defaults (index.html and page/{page}.html) keep the existing URL structure in some cases, but break the pre-existing default structure for categories and tags. When clean_urls is enabled, the same trailing-slash transformation is applied to pagination URLs as to post and page URLs. (#307)
  • Added configurable archive page path via the archive_path configuration option. (#308)
  • Added configurable tags overview page path via the tags_path configuration option. (#310)
  • Added configurable categories overview page path via the categories_path configuration option. (#310)

v1.16.0

Released: 2026-03-16

  • Added optional pages configuration option. When set to a list of page slugs, only those pages are linked in the sidebar, in the order given. Pages not listed are still generated but receive no automatic sidebar link. Omitting the option (or leaving it empty) preserves the existing behaviour where all pages are shown. (#294)
  • The title of the "Links" section in the sidebar can now be customised. (#295)

v1.15.0

Released: 2026-03-15

  • Added head configuration option. This allows extra <head> tags (such as <link> or <meta>) to be injected into every generated page without needing to create or override templates. (#286)
  • Added configurable page output path scheme via the page_path configuration option. (#288)

v1.14.0

Released: 2026-03-14

  • Added optional HTML minification via the --minify-html command-line switch or the minify_html: true configuration option. (#272)
  • Consolidated and better documented the theming infrastructure to make custom themes easier to create. (#275)

v1.13.0

Released: 2026-03-13

  • Added clean_urls configuration file option (off by default). When set to true, any post whose resolved URL ends with /index.html has the index.html portion removed so that the URL ends with a trailing slash instead. (#266)
  • Fixed serve mode so that all configuration file settings are properly reloaded on rebuild. Previously, clean_urls, minify_css, minify_js, clean_first, include_drafts, and extra_stylesheets changes were silently ignored when the config file was modified while the server was running. (#269)

v1.12.0

Released: 2026-03-12

  • The "Generated with" footer is now optional and can be turned off via with_advert: false in the configuration file. (#258)
  • Added support for custom heading IDs using the {#custom-id} syntax (e.g. ### My Heading {#custom-id}). Headings without a custom ID continue to receive auto-generated IDs as before. (#260)
  • Heading elements (h2–h6) now display a ΒΆ hover-anchor link when the reader moves the mouse over them, making it easy to copy a permalink to any section. (#260)

v1.11.0

Released: 2026-03-11

  • All locally-generated stylesheets (the main stylesheet and the FontAwesome CSS when generated locally) now include a generation-specific cache-busting query parameter (e.g. ?v=1741698000) so that browsers re-download updated stylesheets after a fresh site generation/deploy. (#253)
  • When minify_css is enabled, the generated fontawesome.css is now minified and written as fontawesome.min.css instead. (#252)

v1.10.0

Released: 2026-03-11

  • BREAKING CHANGE: The /attachments/ directory no longer has special treatment. If you should have a /attachments/ directory in your output then place attachments/ under extras/ in the content directory. (#248)

v1.9.1

Released: 2026-03-10

  • Fixed an error when using a relative path for the output configuration option. Using a relative path such as site now works correctly. (#242)

v1.9.0

Released: 2026-03-09

  • Added configurable post output path scheme via the post_path configuration option. (#237)

v1.8.0

Released: 2026-03-07

  • Social media icons in the sidebar are now rendered at a consistent, fixed width. Also reduced their default size. (#228)
  • The title of the social media icons section in the sidebar can now be customised. (#228)

v1.7.0

Released: 2026-03-07

  • Estimated reading time is now optional and disabled by default. Use --with-read-time on the command line or set with_read_time: true in the configuration file to show reading time on posts. (#218)
  • Reduced some of the repeated boilerplate in the templates. (#221)
  • The main archive page now shows a right-hand sidebar table of contents if the viewport is wide enough. This can be used to quickly navigate the archives. (#224)

v1.6.2

Released: 2026-03-05

  • Fixed spurious regenerations and "Directory not empty" errors during blogmore serve on Linux (#213)

v1.6.1

Released: 2026-03-04

  • A bare tags: frontmatter entry is now silently treated as an empty tag list instead of causing a warning and skipping the post. (#207)

v1.6.0

Released: 2026-03-04

  • Improved mobile layout: in "mobile view" the sidebar is collapsed by default to show only the site title and a burger menu (☰) button. Clicking the burger menu expands the full sidebar (logo, subtitle, pages, links, socials). (#202)
  • Fixed a site-build crash ("Argument must be bytes or unicode, got 'int'") that occurred when a post's frontmatter contained a bare number as a tag or category value (e.g. tags: [2024, python] or category: 2024). Also added some other checks and warnings for frontmatter values that could appear ambiguous. (#204)

v1.5.0

Released: 2026-03-03

  • Fixed serve mode rebuilding once per changed file when multiple files are modified or added at the same time. (#194)
  • Reduced excessive vertical whitespace in generated HTML output. (#197)
  • Added support for a custom 404 page. The serve command will serve this page for any missing resource during local development. (#199)

v1.4.0

Released: 2026-03-01

  • Fixed a publish failure when working across multiple machines: the publish branch is now fetched from remote before use, so a local branch that is behind its remote counterpart no longer causes a non-fast-forward push error. (#187)
  • Tags are now displayed in casefold alphabetical order wherever a list of tags is shown (post pages, index, archive, category, and tag pages). (#189)
  • Fixed the default description finder not skipping images that are also links (i.e. [![alt](img)](url) syntax), so posts starting with a linked banner image now correctly use the first text paragraph as the description. (#191)

v1.3.0

Released: 2026-02-28

  • Made cosmetic changes to the categories and tags pages to make the clouds look a bit more compact. (#184)

v1.2.0

Released: 2026-02-26

  • Pagination navigation on archival pages (categories, tags, date archives, and the main index) has been improved: previous/next links are now styled as buttons to match the rest of the site's navigation, numbered page links are shown between them (with ellipsis for large page counts), and pagination is now displayed at both the top and bottom of each paginated page (the front page of the site excepted, which only shows it at the bottom). (#177)
  • Fixes pages appearing in the post history. (#180)
  • Paginated listing pages (the main index, category pages, tag pages, and date-based archive pages) now include <link rel="prev" href="..."> and <link rel="next" href="..."> tags in the <head> where appropriate. (#181)

v1.1.0

Released: 2026-02-26

  • Every generated page now includes a <link rel="canonical" href="..."> tag in the <head>, pointing to the fully-qualified URL for that page. (#174)

v1.0.0

Released: 2026-02-25

  • Post pages that have previous and/or next post navigation now also include <link rel="prev"> and <link rel="next"> tags in the <head> of the generated HTML. (#171)

v0.14.0

Released: 2026-02-24

  • Added optional JavaScript minification via the --minify-js command-line switch or the minify_js: true configuration option. (#166)

v0.13.0

Released: 2026-02-23

  • FontAwesome loading is now non-blocking: font-display changed from block to swap, and a <link rel="preload"> hint for the WOFF2 font file is added to all pages that use FontAwesome icons, improving initial page rendering speed. (#163)

v0.12.0

Released: 2026-02-23

  • Removed redundant CSS rules from style.css. (#159)
  • The default og:image for the site index page now uses the icon_source generated platform icon (android-chrome-512x512.png) when available, falling back to site_logo if no platform icons have been generated. Post and page templates that don't have an explicit cover image set now also default to the platform icon for og:image and twitter:image. (#160)
  • Added optional CSS minification via the --minify-css command-line switch or the minify_css: true configuration option. (#161)

v0.11.0

Released: 2026-02-22

  • Added the site_description configuration option. When set, it is used as a fallback description for any head metadata that uses a description of the page. (#146)
  • Added the site_keywords configuration option. When set, it is used as a a fallback set of keywords for any head metadata that uses them. (#150)
  • Author metadata is now added to the head of all pages, if the site's default author has been set. (#152)
  • Added og:title meta tag to all generated pages that previously lacked it (index, archive, tag, category, tags overview, categories overview, and search pages). The title is derived from the site name, subtitle, and a description of the page type. (#153)
  • Added full social/share-friendly <head> meta tags to the main index page, including og:type, og:url, og:site_name, og:image, twitter:card, twitter:title, and twitter:image. The image is taken from the configured site logo, or the largest generated platform icon if no logo is set. (#154)
  • Added automatic FontAwesome CSS optimisation. This reduces the FontAwesome CSS overhead down to only what's needed for the "social icons" in the sidebar, rather than pulling down the whole FontAwesome CSS. (#155)

v0.10.0

Released: 2026-02-22

  • Fixed admonitions merging multiple paragraphs into one. (#135)
  • Fixed article:modified_time meta tag not using ISO 8601 format when a modified frontmatter value is set. (#138)
  • When icons are generated, a copy of favicon.ico is now also placed in the root of the output for backward compatibility. A shortcut icon link header is also included for legacy browser support. (#140)

v0.9.0

Released: 2026-02-21

  • Added optional XML sitemap generation. (#127)
  • Fixed posts not being discovered recursively (Copilot documented that this was a feature, but never actually implemented it). (#130)
  • Fixed the top-level navigation menu overflowing the viewport on narrow/mobile screens. (#131)

v0.8.0

Released: 2026-02-20

  • Footnotes are now rendered in a slightly smaller font size to visually differentiate them from body text. (#121)
  • Post date timestamps are now formatted as YYYY-MM-DD HH:MM:SS TZ and each component (year, month, day) links to its corresponding archive page. (#123)
  • Added optional client-side full-text search across post titles and content. Search is off by default. (#124)

v0.7.0

Released: 2026-02-20

  • Fixed serve mode failing with FileNotFoundError when clean_first is enabled. (#118)

v0.6.0

Released: 2026-02-19

  • Fixed duplicate HTML element IDs when multiple posts with footnotes appear on the same index page. (#114)
  • Improved table styling with subtle borders, a distinct header background, and alternating row shading that works in both light and dark modes. (#115)

v0.5.0

Released: 2026-02-19

  • Fixed relative URLs in RSS/Atom feed entry content being left as root-relative paths; they are now rewritten to absolute URLs using the configured site URL, resolving feed-validator warnings. (#110)

v0.4.0

Released: 2026-02-19

  • Added auto-generation of various 'favicon' types from a single source image. (#103)

v0.3.0

Released: 2026-02-18

  • Initial public release.