github ppoffice/hexo-theme-icarus 6.4.0

latest release: 6.4.1
2 hours ago

Upgrade Notes

  • Icarus now requires hexo-component-inferno 4.2.1 or later. If you install Icarus from npm, you get it automatically. If you cloned the theme into themes/icarus, run the install command that the dependency check prints, for example npm install --save hexo-component-inferno@^4.2.1 6ba6d0c

  • Waline: image_uploader, highlighter, tex_renderer and search now work the way the configuration has always described them: true disables the feature. Before, leaving an option unset or setting it to false disabled the feature, and true or null kept Waline's default, which enables it. If you use Waline, check these options:

    Value in _config.icarus.yml Before (4.1.0) Now (4.2.1)
    not set disabled Waline's default (enabled)
    false disabled Waline's default (enabled)
    true Waline's default (enabled) disabled
    null (empty) Waline's default (enabled) Waline's default (enabled)

    For example, if you never set these options, image upload, code highlighting, TeX rendering and the GIF search now appear in your comment box. To turn a feature off, set its option to true 5522384

  • Category pages now have pages of per_page posts, the site setting, when category_generator.per_page is not set, like hexo-generator-category. Before, they showed all posts on one page. To keep one page, set category_generator.per_page: 0 in _config.yml 5522384

  • og:type: configurations generated by earlier versions have head.open_graph.type: blog. blog is not an Open Graph type, so every page had og:type "blog". Icarus now ignores it: posts get article and other pages get website. The configuration check prints a one-line warning. Delete the type: blog line to remove the warning 9e911ca

  • Deprecated (each one prints a warning when a page uses it):

    • Valine: LeanCloud, where Valine stores the comments, shuts down on January 12, 2027. Switch to Waline, Twikoo or another comment plugin. Icarus still warns that Valine exposes commenters' email addresses, now on a single line 5d9e5ec #788
    • Gitment: it is no longer maintained, and its GitHub sign-in proxy no longer works. Use Giscus, Utterances or Gitalk instead
    • AddThis: it shut down on May 31, 2023. Use AddToAny or ShareThis instead
    • Google FeedBurner subscribe_email widget: FeedBurner stopped email subscriptions in July 2021. Use the followit widget instead. New configurations no longer include it 85b6910
  • widget.archives.showCount, widget.categories.orderBy, showCurrent and showCount (camelCase) still work, but the documented names are now snake_case: show_count, order_by, show_current

New Features

  • Archives widget: show_count, and the group_by (monthly/yearly), order (1/-1) and format options, which worked before but were not in the schema 5522384
  • Categories widget: order_by, order, show_current, show_count, and depth to show only the first levels of categories 5522384
  • Recent posts widget: limit (default 5) is now documented in the schema 5522384
  • Giscus: term is now documented in the schema. The specific and number mappings need it

Improvements

  • Upgrade hexo-component-inferno to 4.2.1 5522384 6ba6d0c
  • Security: values from the configuration and front-matter that go into inline scripts and JSON-LD are now escaped, so a title containing </script> cannot end a script early. Insight and Algolia search results escape what they index. content.json now holds plain text
  • Insight search no longer fails on keywords with characters such as + or (, and highlights matches next to characters such as "İ" correctly
  • JSON-LD accepts .jpeg, .avif and .svg images, and image URLs with a query string
  • Web app manifest icons and the tile icon are resolved against the site root, which fixes sites that are not at the domain root
  • A newly generated _config.icarus.yml passes the configuration check. Without the fix, the new empty group_by and order options of the archives and categories widgets failed it 6ba6d0c
  • Empty options in the configuration no longer fail the check or break the widgets: Valine avatar, Giscus mapping/inputPosition/theme, Utterances theme/dark_theme and Waline lang/login accept an empty value, and the archives, categories, recent posts and tags widgets use their defaults for options left empty 6ba6d0c
  • New configurations no longer include type: blog for Open Graph
  • CI: npm trusted publishing failures are now reported clearly. The publish workflow no longer falls back to a placeholder token, and it installs the npm version that trusted publishing needs 8c92980

Bug Fixes

  • Fix PJAX keeping the stylesheets and fonts of the previous page when the next page sets another variant in its front-matter, such as a cyberpunk post on a default site 9e257db
  • Fix the link to the CDN guide in the comments of the generated _config.icarus.yml 9307e52
  • Fix the {% message %} and {% tabs %} options cutting a value at its second colon, as in title:Step 1: Install
  • Fix the tab named in the URL not opening when the page loads, also for non-ASCII tab IDs
  • Fix Facebook comments not showing after a PJAX navigation
  • Fix Gitalk ignoring enable_hotkey: false
  • Fix Isso when url includes http:// or https://
  • DisqusJS without api_key and Twikoo without env_id now show the usual "You forgot to set..." message instead of a broken comment box
  • Fix &, ' and " being escaped twice in the description and og:description meta tags, e.g. Tom &amp;amp; Jerry, and HTML entities showing in the JSON-LD description
  • Fix og:locale being set to a two-letter language code that is not a locale, such as sv
  • Fix head.meta cutting a value at a second =
  • Fix the configuration check failing when the version is written as a number, such as version: 4.1
  • Fix a script that fails to load, for example a comment library, never being retried after a PJAX navigation

Don't miss a new hexo-theme-icarus release

NewReleases is sending notifications on new releases.