Skip to content
Snippets Groups Projects
  1. Feb 09, 2023
  2. Feb 06, 2023
  3. Feb 05, 2023
    • Christian Bäuerlein's avatar
      Add configuration key to load a local version of mermaid (#1153) · b2bbdb70
      Christian Bäuerlein authored
      Hi there!
      
      Thank you for the great theme! I am a happy user and was delighted to see that mermaid support has landed.
      
      In some cases the usage of jsDelivr might not be possible for technical or compliance reasons.
      
      This commit adds a second way to include the mermaid lib by specifying a path in the mermaid config. This way a local version of the lib can be used.
      
      It should be fully backwards compatible, not requiring any action by users that already include the lib from the CDN.
      
      I already added some documentation, but I am also happy to extend this, if this change is generally well-received.
      
      Cheers,
      Christian
      b2bbdb70
  4. Jan 30, 2023
    • Cassandra Gould van Praag's avatar
      7d9d0e45
    • Matt Wang's avatar
      docs: label new features introduced in `v0.4` (#1138) · 5f91e326
      Matt Wang authored
      In #1058, I noted:
      
      > Tangentially related work:
      > ...
      > - better annotate new features (motivated by writing these docs)
      >     - we should add "New" to new features :) 
      >     - we should note when a feature was introduced (I think this is a core part of most software documentation)
      >     - we should annotate things that are "Advanced" in so far as the average Just the Docs user will not use them / they require significant Jekyll knowledge
      > 
      
      This came up again in https://github.com/just-the-docs/just-the-docs/discussions/1136#discussioncomment-4716253, so I think it's best for us to resolve this sooner rather than later.
      
      This PR is me doing that. I:
      
      - have added a headings-level "New" label to every new heading introduced since `v0.3`
      - added, when possible, inline YAML comments when new configuration options have been introduced
      
      I did this by scanning through the CHANGELOG and selecting each feature that is either tagged with `Add` and has documentation.
      
      I may have also missed any new features, so some double-checking would be helpful!
      5f91e326
  5. Jan 23, 2023
  6. Jan 18, 2023
    • Matt Wang's avatar
      Add new `_sass/custom/setup.scss` for variable definition (#1135) · d423c96d
      Matt Wang authored
      
      This is an alternative PR that resolves #1011. Unlike #1013, this PR defines a *new* SASS file, `_sass/custom/setup.scss`, specifically designed for new custom variables (and other SASS-only constructs). It's imported after our `support` SASS files are (functions, variables), but otherwise is imported before all other files (ex, when CSS is emitted).
      
      So, custom callout colors can now be defined in this file. I also move the custom callout colors present in `custom.scss` to the right location.
      
      I've added some docs that briefly explain how to use the feature. Feedback is welcome!
      
      ---
      
      As an aside, I chose not to add a `_includes/css` file that imports this, and then import that file. I think that's only necessary if we're trying to render liquid somehow in the SASS file; since we're not trying to do that for `setup.scss`, I've opted to not include it. If we think this is relevant, I can re-add it.
      
      Co-authored-by: default avatarPeter Mosses <18308236+pdmosses@users.noreply.github.com>
      d423c96d
  7. Jan 14, 2023
  8. Jan 13, 2023
    • Matt Wang's avatar
      docs: fix broken relative page links (#1106) · a789198b
      Matt Wang authored
      In touching up the migration guide, I noticed that many of our documentation site links are broken! For example, on the homepage, this link:
      
      <img width="782" alt="screenshot of homepage; code snippet is in next block" src="https://user-images.githubusercontent.com/14893287/210462690-31aa7bf5-dd79-4e8f-a3c5-1213e73771c4.png">
      
      which has the following href
      
      ```code
      <a href="/just-the-docs/just-the-docs/CHANGELOG/">the CHANGELOG</a>
      ```
      
      duplicates the `baseurl` twice. There are 14 such broken links across the site. Each link duplicates the `baseurl` and `link` tags, which has since been resolved with links being relative by default (there's a set of PRs that document this - I can't find the exact paper trail right now).
      
      To resolve this, I:
      
      - find and replace site-wide `{{ site.baseurl }}{% link` with `{% link`
      - tested each link, which now works properly locally *and* on the deploy preview
      
      I'm surprised we didn't catch this earlier! I also could be missing something else, in which case feedback on this PR is certainly welcome.
      a789198b
  9. Jan 11, 2023
  10. Jan 08, 2023
    • Matt Wang's avatar
      refactor: modularize site components (#1058) · 2495d3e6
      Matt Wang authored
      Hi everyone, this is a large refactoring PR that looks to **modularize site components** following the discussion in #959. At the top-level, it:
      
      - moves icons, the sidebar, header (navbar, search, aux links), footer, and mermaid components of the `default` layout into their own `_includes`
      - creates a new `minimal` layout that does not render the header or sidebar as a proof-of-concept for the composability of components
      - documents all existing and new layouts (including vendor code) in the "Customization" section 
      
      An important goal of this PR is for it to be **just code motion and flexibility**: there should be **zero impact** on the average end user that only consumes the `default` theme.
      
      The next few sections go in-depth on each of the listed changes.
      
      ### new components
      
      The `default` layout contains a "list" of all relevant components. Importantly, some of these components have sub-components:
      
      - the header is split into the search bar, custom code, and aux links
      - the icons include imports different icon components, some of which are conditionally imported by feature guards
      
      There are also candidates for future splits and joins:
      
      - the sidebar could be split into navigation, collections, external link, and header/footer code
      - the "search footer" could be joined with other search code, which would make it easier to "include search" in one go; *however, this is a markup change*
      - @kevinlin1 has pointed out that there is some leakage between the sidebar (which computes parents/grandparents) and the breadcrumbs (which needs them to render). He's graciously added a bandaid fix to `minimal` (which does not render the sidebar). However, in the long term, we should either:
          - calculate this in a parent and pass the information to both components
          - change how this works entirely (which may happen with multi-level navigation)
      
      @pdmosses has done a great job outlining this and more in his [Modular Layouts test site](https://pdmosses.github.io/modular-layouts/docs/main/).
      
      ### minimal layout
      
      Based on @kevinlin1's use-case in just-the-class (see: his [Winter 2023 CSE 373 site](https://courses.cs.washington.edu/courses/cse373/23wi/)), we've created a first-class `minimal` layout that does not render the sidebar or header.
      
      In a [comment](https://github.com/just-the-docs/just-the-docs/pull/1058#discussion_r1057015039), Kevin has indicated that we can re-add the search bar in the minimal layout; however, it seems like this would be a code change. I think we should punt this to a future issue/PR.
      
      @pdmosses has also discussed the confusion of `minimal` as a layout and its meaning in inheritance. I've added a note in documentation to clarify the (lack of) inheritance relationship.
      
      ### documentation
      
      I've written documentation in the "Customization" page / [Custom layouts and includes](https://deploy-preview-1058--just-the-docs.netlify.app/docs/customization/#custom-layouts-and-includes) section explaining:
      
      - generally, that we use includes/layouts (and pointing to docs)
      - the `default` layout and its constituent components (with a warning about name collisions)
      - creating alternative layouts with `minimal` as an example
      - the inheritance chain of layouts and the vendor layouts that we consume
      
      I've also created (and linked to) a [minimal layout test](https://deploy-preview-1058--just-the-docs.netlify.app/docs/minimal-test/) that is currently a copy of the markdown kitchen sink but with the minimal layout. I think there's room to improve this in the future.
      
      ### future work
      
      I think there's a lot we can do. Let me break this into various sections.
      
      Potential follow-ups before `v0.4.0`:
      
      - re-including search in `minimal` (anticipating a minor code change)
      - fixing the leakage of parent/grandparent information between the sidebar and breadcrumbs (anticipating no end-user code change, but good to evaluate separately and discuss)
      - heavily document this in the migration guide (#1059) and in our RC4 release docs
      - improve semantic markup for components (ex `main`, `nav`)
      
      Related work in later minor versions:
      
      - split up components into smaller components
      - allow users to easily customize new layouts using frontmatter (see @kevinlin1's [comment in #959](https://github.com/just-the-docs/just-the-docs/issues/959#issuecomment-1249755249))
      
      Related work for `v1.0` (i.e. a major breaking change):
      
      - rename and better categorize existing includes
          - standardizing the "custom" includes
          - moving other components to the `components/` folder (ex `head`, `nav`)
          - potentially: less confusing naming for various components
      - potentially separate the search and header as components, so that they are completely independent 
      
      Tangentially related work:
      
      - more flexible grid (see @JPrevost's [comment in this PR thread](https://github.com/just-the-docs/just-the-docs/pull/1058#issuecomment-1363314610))
      - a formal [feature model](https://en.wikipedia.org/wiki/Feature_model) of JTD, documenting feature dependence (see @pdmosses's [comment in this PR thread](https://github.com/just-the-docs/just-the-docs/pull/1058#issuecomment-1365414023))
      - better annotate new features (motivated by writing these docs)
          - we should add "New" to new features :) 
          - we should note when a feature was introduced (I think this is a core part of most software documentation)
          - we should annotate things that are "Advanced" in so far as the average Just the Docs user will not use them / they require significant Jekyll knowledge
      
      
      --- 
      
      Closes #959.
      2495d3e6
  11. Dec 27, 2022
  12. Dec 21, 2022
  13. Dec 20, 2022
  14. Dec 18, 2022
    • Michelle Blanchette's avatar
      analytics: support multiple tracking IDs, document UA -> GA4 switch (#1029) · 9bccf07f
      Michelle Blanchette authored
      * Issue #1023 - note that GA4 properties are supported
      
      * Issue #1023 - parameterize Google Analytics property script
      
      * Issue #1023 - support a list of multiple Google Analytics tracking IDs in config
      
      * Issue #1023 - update Google Analytics configuration doc
      
      * Fix configuration of multiple Google Analytics properties and simplify type checking
      
      * simplify unnecessary code repetition
      
      * tweak Google Analytics config documentation wording
      9bccf07f
  15. Dec 17, 2022
  16. Dec 13, 2022
  17. Dec 12, 2022
  18. Dec 06, 2022
  19. Nov 03, 2022
  20. Oct 24, 2022
  21. Oct 14, 2022
  22. Oct 11, 2022
  23. Oct 10, 2022
    • Matt Wang's avatar
      Experimental nav optimization for simple cases (#992) · b4b951fe
      Matt Wang authored
      
      * Optimize simple navigation cases
      
      Fix inefficiency reported in feedback on v0.4.0.rc2 (see discussion #958).
      
      This PR:
      
      * essentially reverts `_includes/nav.html` to v0.4.0.rc1
      * preserves the ARIA labels added by #950
      * adds a test to optimize builds of sites that rely on `title` fields to order pages.
      
      Building the `endoflife.date` site (130 pages) now takes only about 7 seconds.
      
      Building the `machinetranslate.org` site ( 350 pages) takes about 7 minutes. (Without the added test, it takes just over 5 minutes: the condition of the test is merely to compare the size of two arrays, but that is apparently enough to prevent Jekyll from applying some optimization).
      
      A warning is added to the docs about the need for numbers to be in quotes when used as title values.
      
      * Update navigation-structure.md
      
      A clarification is added to the docs about the need for numbers to be in quotes when used as title values.
      
      * Simplify the control and data flow
      
      - Defer concatenation of `string_order_pages` with `title_order_pages` until needed.
      - Replace tests on size with tests for `empty`.
      - Rename variables accordingly.
      
      * Fix child nav order
      
      This PR started from the navigation in RC1. Some cosmetic improvements had been made in RC2. This commit adds some of those changes to this PR.
      
      It also fixes a bug (revealed by a new regression test) due to a reference to `node.child_nav_order` instead of `child.child_nav_order`, which prevented reversal of the order in children of children. Presumably a top-level reversal should apply only to direct children, and not to grandchildren. The latter interpretation would be very confusing in a deep multi-level hierarchy.
      
      * Allow pages with numeric titles
      
      An omitted `nav_order` value should default to the `title` value, regardless of its type. Jekyll 3 gives build errors when numbers and strings are sorted together. This commit drops the assumption that `title` values are always strings – a 404 page naturally has a numeric title. It updates the docs page accordingly.
      
      The extra code does not affect the build time for the `endoflife.date` site (7 seconds). For the `machinetranslate` site, changing the title of the 404 page to a number increases the build time from 7 minutes to 9 minutes – the `nav_order` numbers on that site are program-generated in the range 1..1000, which might be atypical.
      
      This commit has not yet been checked using the regression tests.
      
      The gemspec used for testing specifies `spec.add_runtime_dependency "jekyll", "~> 3.8.5"`, and `Gemfile.lock` shows `jekyll (3.8.7)`.
      
      * Update nav.html
      
      Add comment about an optimization that will be possible in Jekyll 4.
      
      * Update nav.html
      
      - Update the comment about optimization possibility.
      - TEMPORARILY add Jekyll 3 code for conditionally optimizing.
      
      * Update nav.html
      
      Minor improvements and cosmetic changes.
      
      * Major revision
      
      This update is based on extensive experimentation and profiling with alternative versions of the Liquid code used to build the main navigation panel.
      
      Due to the fragility of Jekyll's optimizations, combining alternative approaches with conditionals turned out to be too expensive: merely adding a condition to check whether some array of pages is empty can add about 20% to the build time!
      
      The current code avoids sorting pages on `nav_order` and `title` fields together. The standard way of doing that in Jekyll is to use the `group_by` filter; but extracting the sorted pages from the groups turned out to be too inefficient (as seen in RC1), as was generating links directly from the groups (in RC2).
      
      Making all pages with `nav_order` values come before all those ordered by their `title` values is not ideal (it doesn't support tweaking the relative order of two pages in a list of pages ordered by their titles) but it appears to be necessary for efficient builds on large sites.
      
      This version has not yet been fully tested for regression, but otherwise seems to give the expected navigation on the endoflife.date and machinetranslate websites. (I'm unable to install the Python-based how2data repository on my laptop, due to package version issues on Apple silicon).
      
      Co-authored-by: default avatarPeter Mosses <18308236+pdmosses@users.noreply.github.com>
      b4b951fe
  24. Oct 09, 2022
Loading