v0.4.0
Release v0.4.0
We're so excited to release Just the Docs v0.4.0! This release has been almost a year in the making - after our new maintenance team has taken over the project, we've added two years of backlogged features and bugfixes to modernize the theme. This CHANGELOG will summarize some of the key changes, discuss migrations strategies, and outline broad future plans for this theme.
Brief Overview - Highlighted Changes
v0.4.0 contains many new features and bugfixes. We enumerate all of them in further sections in this changelog; however, we'd like to call out some of the most-requested changes:
- better support for dark theme: dark highlighting, search input color
- callouts, a new design component to highlight content
- configuring mermaid.js, a markdown-native diagram visualization library
- copy code button for code snippets
- external navigation links
- major improvements to nav generation efficiency and robustness
- minor improvements to built-in accessibility (SVG icons, nav titles, skip to main content)
- modularized site components (advanced feature)
- new custom includes: table of contents heading, navigation panel footer, search placeholder, lunr search indices
- bugfixes involving WEBrick and Ruby 3, Liquid processing in CSS comments, nested task lists, relative URLs, scroll navigation, corrupted search data from rake, breadcrumbs, and more!
- more documentation for custom includes, this changelog, and the migration guide
After usage instructions and the roadmap, we enumerate all changes from v0.3.3.
Using Release v0.4.0
Unlike pre-releases, v0.4.0 is a new semver minor release for the theme. That means that users who have not pinned the theme version will be automatically upgraded to v0.4.0 the next time they build their site.
To use this release explicitly as a remote theme:
remote_theme: just-the-docs/just-the-docs@v0.4.0To use this RC explicitly as a gem-based theme, pin the version in your Gemfile and re-run bundle install or bundle update just-the-docs:
gem "just-the-docs", "0.4.0"If you would prefer to not upgrade, you can enforce that explicitly:
- pin your gem version in your
Gemfile, like so
gem "just-the-docs", "0.3.3"- freeze the
remote_theme, like so
remote_theme: just-the-docs/just-the-docs@v0.3.3Migration Guide and Strategies
We've developed a new migration guide for users to migrate from version v0.3.3 to v0.4.0. It outlines major changes in project maintenance (e.g. new repository link, team) as well as breaking changes that may break your site (and potential solutions). We suggest that all users refer to the guide before manually upgrading their site.
For the vast majority of users, we do not anticipate that this will be a breaking change. The major touch points are surrounding new includes, navigation (ordering, pages, and collections), the favicon, and a shift to relative URLs. However, users who heavily customize the theme (primarily by overriding includes) will likely have to make minor changes.
Given the length of features added in this release, users may want to incrementally upgrade through the pre-releases. To follow this approach, read this changelog from v0.4.0.rc1 to v0.4.0.rc5; this breaks down the release into small chunks, each of which should be easier to upgrade. v0.4.0.rc5 is identical to this release.
For support with migrating to v0.4.0, open an issue or start a discussion and let us know!
Roadmap (What's Next?)
Moving forward, we plan to release more frequently with smaller, bite-sized changes. This should make it easier for users to upgrade in the future!
Broadly, many features are still on the radar. We anticipate the rest of v0.4.x to be bugfixes surrounding this new release.
For version v0.5, our roadmap includes:
- a theme toggle (light/dark mode), with automatic theme switching based on browser preferences
- better GDPR compliance for analytics
- multi-level/recursive navigation (unlimited hierarchy of child pages)
In future versions, we also plan on:
- adding better dark theme defaults
- adding better internationalization support
- exploring offline PDF generation
- improving accessibility within the theme
- improving search functionality
- refactoring and improving the robustness of our codebase
Have ideas for what's next, or want to get involved? Open an issue or start a discussion and let us know! We're looking for more contributors and maintainers to help us develop the theme.
New Features
- Added: Combination by [@pdmosses] in [#578]
- Added: dark highlighting in [#463]
- Added: pages and collections in [#448]
- Added: callouts in [#466]
- Fixed: breadcrumb behaviour … by [@AdityaTiwari2102] in [#477]
- Fixed: prevent rake command corrupting search data in [#495] (also listed below)
- Fixed: nested lists in [#496]
- Fixed: set color for search input in [#498] (also listed below)
- Fixed: sites with no child pages (no PR)
- Fixed: TOC/breadcrumbs for multiple collections in [#494]
- Added: collection configuration option
nav_fold(no PR) - Fixed: indentation and color for folded collection navigation (no PR)
- Fixed: scroll navigation to show the link to the current page in [#639]
- Fixed: Replace all uses of
absolute_urlbyrelative_url, by [@svrooij] in [#544]
- Added: custom favicon
_includesby [@burner1024] in [#364] - Added: set color for search input by [@pdmosses] in [#498]
- Added: search placeholder configuration by [@mattxwang] in [#613]
- Added: 'child_nav_order' front matter to be able to sort navigation pages in reverse by [@jmertic] in [#726]
- Added:
nav_footer_custominclude by [@nathanjessen] in [#474] - Added: style fixes for jekyll-asciidoc by [@alyssais] in [#829]
- Added: mermaid.js support by [@nascosto] in [#857]
- Added: support for external navigation links by [@SPGoding] in [#876]
- Added: refactor
mermaidconfig to usemermaid_config.jsinclude, only requiremermaid.versionin_config.ymlby [@mattxwang] in [#909] - Added: accessible titles to nested page nav toggle by [@JPrevost] in [#950]
- Added: better title styling for AsciiDoc examples by [@alyssais] in [#944]
- Added: docs for custom search placeholder by [@mattxwang] in [#939]
- Added: provide ability to skip to main content by [@JPrevost] in [#949]
- Added: styling for
<blockquote>by [@mattxwang] in [#965] - Added: custom include for TOC heading by [@pdmosses] in [#980]
- Added: experimental nav optimization for simple cases by [@pdmosses] in [#992]
- Added: support multiple Google Analytics tracking IDs, document UA -> GA4 switch by [@MichelleBlanchette] in [#1029]
- Added: copy code button to code snippets by [@simonebortolin] in [#945]
- Added: restore simple configuration of
favicon.icoviasite.static_filesby [@pdmosses] in [#1095] - Added: modularize site components by [@mattxwang] in [#1058]
- Added: includes for custom
lunrLiquid and JS code by [@diablodale] in [#1068] - Added: new
_sass/custom/setup.scssfor variable definition by [@mattxwang] in [#1135] - Added: configuration key to load a local version of mermaid by [@fabrik42] in [#1153]
Bugfixes
- Fixed: prepend
site.collections_dirif exists by [@alexsegura] in [#519] - Fixed: nested task lists (#517) by [@pdmosses] in [#855]
- Fixed: suppress Liquid processing in CSS comments by [@pdmosses] in [#686]
- Fixed: prevent rake command from corrupting search data by [@pdmosses] in [#495]
- Fixed: anchor heading links should be visible on focus by [@jacobhq] in [#846]
- Fixed: add
overflow-x: autotofigure.highlightby [@iridazzle] in [#727] - Fixed: add
overflow-wrap: word-breaktobodyby [@iridazzle] in [#889] - Fixed: vertical alignment for consecutive labels by [@Eisverygoodletter] in [#893]
- Fixed: allow links to wrap by [@pdmosses] in [#905]
- Fixed: nav scroll feature and absolute/relative URLs by [@pdmosses] in [#898]
- Fixed: exclude
vendor/in Jekyll config by [@manuelhenke] in [#941] - Fixed: improve build time of navigation panel by [@pdmosses] in [#956]
- Fixed: spacing issue when search is disabled by [@henryiii] in [#960]
- Fixed: active grandchild link class by [@pdmosses] in [#962]
- Fixed: HTML validation issues (W3C validator) by [@mattxwang] in [#964]
- Fixed: link styling now uses
text-decorationvalues by [@mattxwang] in [#967] - Fixed: cleaning up Jekyll excludes by [@pdmosses] in [#985]
- Fixed: docs, narrow styling for code highlighting with line numbers by [@pdmosses] in [#974]
- Fixed: default syntax highlighting in custom color schemes [@pdmosses] in [#986]
- Fixed: incorrect disambiguation in generated TOCs by [@pdmosses] in [#999]
- Fixed: duplicated external links in collections by [@pdmosses] in [#1001]
- Fixed: import order of
custom.scss; puts at end by [@deseo] in [#1010] - Fixed: top-level active link styling by [@pdmosses] in [#1015]
- Fixed: external links for sites with no pages by [@pdmosses] in [#1021]
- Fixed: duplicate
titleifjekyll-seo-tagnot in users's plugins by [@Tom-Brouwer] in [#1040] - Fixed: removes (duplicate)
favicon.html, shifts content tohead_custom.htmlby [@mattxwang] in [#1027] - Fixed: add
reversed, deprecatedescfor navchild_nav_orderby [@jmertic] in [#1061] - Fixed:
child.child_nav_ordertonode.child_nav_orderby [@mattxwang] in [#1065] - Fixed: remove all uses of
/as SASS division by [@mattxwang] in [#1074] - Fixed: skip nav collection generation when site has no pages by [@pdmosses] in [#1092]
- Fixed: standardize SCSS with
declaration-block-no-redundant-longhand-propertiesby [@simonebortolin] in [#1102] - Fixed: incorrect
paddingproperty value pair inlabels.scssby [@SConaway] in [#1104] - Fixed: various bugs with copy code button by [@simonebortolin] in [#1096]
- Fixed: replace inline styling for
<svg>icons by [@captn3m0] in [#1110] - Fixed: incorrect
paddingproperty value pair insearch.scssby [@kevinlin1] in [#1123] - Fixed: minor spacing and comment nits by [@EricFromCanada] in [#1128]
- Fixed: exclude images from being bundled with gem by [@m-r-mccormick] in [#1142]
- Fixed: dark theme code block background, line number colors by [@m-r-mccormick] in [#1124]
- Fixed: copy code button interaction with kramdown line numbers by [@mattxwang] in [#1143]
Maintenance
- Added: VScode devcontainer by [@max06] in [#783]
- Added:
webricktoGemfileby [@mattxwang] in [#799] - Added: 'This site is powered by Netlify.' to the footer by [@mattxwang] in [#797]
- Updated: new repo path by [@pmarsceill] in [#775]
- Updated: rename
master->mainby [@pmarsceill] in [#776] - Updated: README by [@pmarsceill] in [#777]
- Updated: Code of Conduct to Contributor Covenant v2.1 by [@mattxwang] in [#790]
- Updated: CI files, Ruby & Node Versions by [@mattxwang] in [#820]
- Updated: Stylelint to v14, extend SCSS plugins, remove primer-* configs, resolve issues by [@mattxwang] in [#821]
- Deleted: unused script directory by [@mattxwang] in [#937]
- Vendor: update
jekyll-anchor-headings,lunr.jsby [@mattxwang] in [#1071]
Documentation
- Added: docs on how to break an
olby [@pdmosses] in [#856] - Added: docs for custom includes by [@nathanjessen] in [#806]
- Added: document caveat about variable dependencies by [@waldyrious] in [#555]
- Added: docs on how to use
custom_headto add a custom favicon by [@UnclassedPenguin] in [#814] - Added: docs load mermaid.js by default by [@mattxwang] in [#935]
- Added: warning about mandatory
_-prefix for collections by [@max06] in [#1091] - Added: migration guide by [@pdmosses] in [#1059]
- Added: label new features introduced in
v0.4by [@mattxwang] in [#1138] - Fixed:
olonindex.mdby [@pmarsceill] in [#778] - Fixed: image link in Markdown kitchen sink by [@JeffGuKang] in [#221]
- Fixed: images in Markdown kitchen sink by [@dougaitken] in [#782]
- Fixed: clearer label of link to Jekyll quickstart by [@waldyrious] in [#549]
- Fixed: remove extra spaces in component docs by [@MichelleBlanchette] in [#554]
- Fixed: double "your" typo in
index.mdby [@sehilyi] in [#499] - Fixed: "you" -> "your" typo in
index.mdby [@nathanjessen] in [#473] - Fixed: spacing in toc example by [@henryiii] in [#835]
- Fixed: typo in
READMEon_config.ymlby [@ivanskodje] in [#891] - Fixed: missing code fence in navigation structure docs by [@mattxwang] in [#906]
- Fixed: table of contents on search docs by [@robinpokorny] in [#940]
- Fixed: broken docs link (custom footer) by [@olgarithms] in [#951]
- Fixed: clarify version docs by [@pdmosses] in [#955]
- Fixed: typo in changelog links [@koppor] in [#1000]
- Fixed: two bugs in "Customization" (custom favicon, new annotation) by [@mattxwang] in [#1090]
- Fixed: "View Typography Utilities" link by [@agabrys] in [#1130]
- Fixed: broken relative page links by [@mattxwang] in [#1106]
- Fixed: clarify steps to add custom
lunrindex code by [@diablodale] in [#1139] - Updated: homepage (focus: new features, conciseness, deduplication) by [@pdmosses] in [#1018]
- Updated: README (focus: new features, conciseness, deduplication) by [@pdmosses] in [#1019]
- Updated:
READMEdemo video by [@codewithfan] in [#1097]
New Contributors
- [@AdityaTiwari2102] made their first contribution in [#477]
- [@svrooij] made their first contribution in [#544]
- [@alexsegura] made their first contribution in [#519]
- [@burner1024] made their first contribution in [#364]
- [@JeffGuKang] made their first contribution in [#221]
- [@dougaitken] made their first contribution in [#782]
- [@max06] made their first contribution in [#783]
- [@sehilyi] made their first contribution in [#499]
- [@nathanjessen] made their first contribution in [#473]
- [@waldyrious] made their first contribution in [#549]
- [@MichelleBlanchette] made their first contribution in [#554]
- [@henryiii] made their first contribution in [#835]
- [@jmertic] made their first contribution in [#726]
- [@jacobhq] made their first contribution in [#846]
- [@UnclassedPenguin] made their first contribution in [#814]
- [@alyssais] made their first contribution in [#829]
- [@nascosto] made their first contribution in [#857]
- [@SPGoding] made their first contribution in [#876]
- [@iridazzle] made their first contribution in [#727]
- [@ivanskodje] made their first contribution in [#891]
- [@Eisverygoodletter] made their first contribution in [#893]
- [@robinpokorny] made their first contribution in [#940]
- [@olgarithms] made their first contribution in [#951]
- [@manuelhenke] made their first contribution in [#941]
- [@JPrevost] made their first contribution in [#950]
- [@koppor] made their first contribution in [#1000]
- [@deseo] made their first contribution in [#1010]
- [@Tom-Brouwer] made their first contribution in [#1040]
- [@simonebortolin] made their first contribution in [#945]
- [@SConaway] made their first contribution in [#1104]
- [@captn3m0] made their first contribution in [#1110]
- [@kevinlin1] made their first contribution in [#1123]
- [@codewithfan] made their first contribution in [#1097]
- [@agabrys] made their first contribution in [#1130]
- [@diablodale] made their first contribution in [#1068]
- [@m-r-mccormick] made their first contribution in [#1142]
- [@fabrik42] made their first contribution in [#1153]