diff --git a/.gitignore b/.gitignore index b447a12d605ace944d4b5f46e384a2513e8af4f1..a802a863ac5ddcf32b32cdcc986f973cbca92f74 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.gem .bundle +.jekyll-cache .sass-cache _site Gemfile.lock diff --git a/.prettierignore b/.prettierignore index 41fbef863b9f50e5d6782cd74cc68e3d63f562ee..5dc073f5a8f3aa8fdb28879e48ca68cc8e76a7e7 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,8 +1,9 @@ package.json package-lock.json _site -assets/css/dark-mode-preview.scss -assets/css/just-the-docs.scss +assets/css/just-the-docs-default.scss +assets/css/just-the-docs-light.scss +assets/css/just-the-docs-dark.scss assets/js/vendor/lunr.min.js assets/js/search-data.json assets/js/just-the-docs.js diff --git a/.stylelintrc.json b/.stylelintrc.json index a14d9201fa9de3b7a8b547883a7f7016271054ac..329ca3425494b16487bbc533f28bbfa447e0d97f 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -1,7 +1,8 @@ { "ignoreFiles": [ - "assets/css/just-the-docs.scss", - "assets/css/dark-mode-preview.scss", + "assets/css/just-the-docs-default.scss", + "assets/css/just-the-docs-light.scss", + "assets/css/just-the-docs-dark.scss", "_sass/vendor/**/*.scss" ], "extends": ["stylelint-config-primer", "stylelint-config-prettier"], diff --git a/_config.yml b/_config.yml index c7dd5ee88e578d0f2e22676637358ddcef9d860d..ddaf13d06b7b8bade33a3360b8ab97b1b6acf6d1 100644 --- a/_config.yml +++ b/_config.yml @@ -41,15 +41,32 @@ aux_links: # Makes Aux links open in a new tab. Default is false aux_links_new_tab: false -# Footer content appears at the bottom of every page's main content -footer_content: "Copyright © 2017-2019 Patrick Marsceill. Distributed by an <a href=\"https://github.com/pmarsceill/just-the-docs/tree/master/LICENSE.txt\">MIT license.</a>" +# Sort order for navigation links +nav_sort: case_insensitive # default, equivalent to nil +# nav_sort: case_sensitive # Capital letters sorted before lowercase -# Color scheme currently only supports "dark" or nil (default) +# Footer content +# appears at the bottom of every page's main content +footer_content: "Copyright © 2017-2020 Patrick Marsceill. Distributed by an <a href=\"https://github.com/pmarsceill/just-the-docs/tree/master/LICENSE.txt\">MIT license.</a>" + +# Footer last edited timestamp +last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter +last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html + +# Footer "Edit this page on GitHub" link text +gh_edit_link: true # show or hide edit this page link +gh_edit_link_text: "Edit this page on GitHub" +gh_edit_repository: "https://github.com/pmarsceill/just-the-docs" # the github URL for your repo +gh_edit_branch: "master" # the branch that your docs is served from +gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately + +# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define color_scheme: nil # Google Analytics Tracking (optional) # e.g, UA-1234567-89 ga_tracking: UA-2709176-10 +ga_tracking_anonymize_ip: true # Use GDPR compliant Google Analytics settings (true/nil by default) plugins: - jekyll-seo-tag diff --git a/_includes/css/custom.scss.liquid b/_includes/css/custom.scss.liquid new file mode 100644 index 0000000000000000000000000000000000000000..2ad1576e05d91ddcf07654c1bec147cd5580a03a --- /dev/null +++ b/_includes/css/custom.scss.liquid @@ -0,0 +1 @@ +@import "./custom/custom"; diff --git a/_includes/css/just-the-docs.scss.liquid b/_includes/css/just-the-docs.scss.liquid new file mode 100644 index 0000000000000000000000000000000000000000..495cd6dd902a3e983bbfb1e7091f8fac59642909 --- /dev/null +++ b/_includes/css/just-the-docs.scss.liquid @@ -0,0 +1,7 @@ +{% if site.logo %} +$logo: "{{ site.logo | absolute_url }}"; +{% endif %} +@import "./support/support"; +@import "./color_schemes/{{ include.color_scheme }}"; +@import "./modules"; +{% include css/custom.scss.liquid %} diff --git a/_includes/head.html b/_includes/head.html index eae6a5e9f04f6906147a224afe162124ff7b8835..4f22497bb19f1c3cb3dff6771d3c8c8f37c63c3b 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -2,17 +2,17 @@ <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> - {% if site.plugins.jekyll-seo == nil %} + {% unless site.plugins contains "jekyll-seo-tag" %} <title>{{ page.title }} - {{ site.title }}</title> {% if page.description %} <meta name="Description" content="{{ page.description }}"> {% endif %} - {% endif %} + {% endunless %} <link rel="shortcut icon" href="{{ 'favicon.ico' | absolute_url }}" type="image/x-icon"> - <link rel="stylesheet" href="{{ '/assets/css/just-the-docs.css' | absolute_url }}"> + <link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | absolute_url }}"> {% if site.ga_tracking != nil %} <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.ga_tracking }}"></script> @@ -21,7 +21,7 @@ function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); - gtag('config', "{{ site.ga_tracking }}"); + gtag('config', '{{ site.ga_tracking }}'{% unless site.ga_tracking_anonymize_ip == nil %}, { 'anonymize_ip': true }{% endunless %}); </script> {% endif %} diff --git a/_includes/nav.html b/_includes/nav.html index d561a42a70b3e473f7ba41283965751423b7917b..6858dec980294a400ec5211b8a8f42e39d7a852a 100644 --- a/_includes/nav.html +++ b/_includes/nav.html @@ -1,6 +1,15 @@ <nav role="navigation" aria-label="Main navigation"> <ul class="navigation-list"> - {%- assign pages_list = site.html_pages | sort:"nav_order" -%} + {%- assign ordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order != nil" -%} + {%- assign unordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order == nil" -%} + {%- if site.nav_sort == 'case_sensitive' -%} + {%- assign sorted_ordered_pages_list = ordered_pages_list | sort:"nav_order" -%} + {%- assign sorted_unordered_pages_list = unordered_pages_list | sort:"title" -%} + {%- else -%} + {%- assign sorted_ordered_pages_list = ordered_pages_list | sort_natural:"nav_order" -%} + {%- assign sorted_unordered_pages_list = unordered_pages_list | sort_natural:"title" -%} + {%- endif -%} + {%- assign pages_list = sorted_ordered_pages_list | concat: sorted_unordered_pages_list -%} {%- for node in pages_list -%} {%- unless node.nav_exclude -%} {%- if node.parent == nil -%} @@ -10,16 +19,17 @@ {%- endif -%} <a href="{{ node.url | absolute_url }}" class="navigation-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a> {%- if node.has_children -%} - {%- assign children_list = site.html_pages | where: "parent", node.title | sort:"nav_order" -%} + {%- assign children_list = pages_list | where: "parent", node.title -%} <ul class="navigation-list-child-list "> {%- for child in children_list -%} + {%- unless child.nav_exclude -%} <li class="navigation-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}"> {%- if page.url == child.url or page.parent == child.title -%} {%- assign second_level_url = child.url | absolute_url -%} {%- endif -%} <a href="{{ child.url | absolute_url }}" class="navigation-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a> {%- if child.has_children -%} - {%- assign grand_children_list = site.html_pages | where: "parent", child.title | sort:"nav_order" -%} + {%- assign grand_children_list = pages_list | where: "parent", child.title -%} <ul class="navigation-list-child-list"> {%- for grand_child in grand_children_list -%} <li class="navigation-list-item {% if page.url == grand_child.url %} active{% endif %}"> @@ -29,6 +39,7 @@ </ul> {%- endif -%} </li> + {%- endunless -%} {%- endfor -%} </ul> {%- endif -%} diff --git a/_layouts/default.html b/_layouts/default.html index 9ca4550b0f5f0bb6611b9c337f499e43d12008ce..32d149ba5bb2fdcd293d258e73eba823c42d12d6 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -82,9 +82,8 @@ layout: table_wrappers {% if page.has_children == true and page.has_toc != false %} <hr> <h2 class="text-delta">Table of contents</h2> - {% assign children_list = site.pages | sort:"nav_order" %} <ul> - {% for child in children_list %} + {% for child in pages_list %} {% if child.parent == page.title and child.title != page.title %} <li> <a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %} @@ -94,10 +93,30 @@ layout: table_wrappers </ul> {% endif %} - {% if site.footer_content != nil %} + {% if site.footer_content != nil or site.last_edit_timestamp or site.gh_edit_link %} <hr> <footer role="contentinfo"> + {% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %} + <p class="text-small text-grey-dk-000 mb-0"> + Page last modified: {{ page.last_modified_date | date: site.last_edit_time_format }}. + </p> + {% endif %} + {% + if + site.gh_edit_link and + site.gh_edit_link_text and + site.gh_edit_repository and + site.gh_edit_branch and + site.gh_edit_view_mode + + %} + <p class="text-small text-grey-dk-000 mb-0"> + <a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}/{{ page.path }}">{{ site.gh_edit_link_text }}</a> + </p> + {% endif %} + {% if site.footer_content != nil %} <p class="text-small text-grey-dk-000 mb-0">{{ site.footer_content }}</p> + {% endif %} </footer> {% endif %} diff --git a/_layouts/table_wrappers.html b/_layouts/table_wrappers.html index cc6187addf3034552467d9841b89b40404a9a631..3f8f226a1202e61261d43697b24073c9f7a5bd60 100644 --- a/_layouts/table_wrappers.html +++ b/_layouts/table_wrappers.html @@ -4,4 +4,4 @@ layout: vendor/compress {% assign content_ = content | replace: '<table', '<div class="table-wrapper"><table' %} {% assign content_ = content_ | replace: '</table>', '</table></div>' %} -{{ content_ }} \ No newline at end of file +{{ content_ }} diff --git a/_sass/color_schemes/light.scss b/_sass/color_schemes/light.scss new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/_sass/custom/custom.scss b/_sass/custom/custom.scss index 9ac503b64b875103c2b99d2d8cde8bb91c49ca78..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/_sass/custom/custom.scss +++ b/_sass/custom/custom.scss @@ -1,129 +0,0 @@ -//// -//// Typography -//// - -//$body-font-family: -apple-system, BlinkMacSystemFont, "helvetica neue", helvetica, roboto, noto, "segoe ui", arial, sans-serif; -//$mono-font-family: "SFMono-Regular", Menlo, Consolas, Monospace; -//$root-font-size: 16px; // Base font-size for rems -//$body-line-height: 1.4; -//$content-line-height: 1.5; -//$body-heading-line-height: 1.15; - -//// -//// Colors -//// - -//$white: #fff; - -//$grey-dk-000: #959396; -//$grey-dk-100: #5c5962; -//$grey-dk-200: #44434d; -//$grey-dk-250: #302d36; -//$grey-dk-300: #27262b; - -//$grey-lt-000: #f5f6fa; -//$grey-lt-100: #eeebee; -//$grey-lt-200: #ecebed; -//$grey-lt-300: #e6e1e8; - -//$purple-000: #7253ed; -//$purple-100: #5e41d0; -//$purple-200: #4e26af; -//$purple-300: #381885; - -//$blue-000: #2c84fa; -//$blue-100: #2869e6; -//$blue-200: #264caf; -//$blue-300: #183385; - -//$green-000: #41d693; -//$green-100: #11b584; -//$green-200: #009c7b; -//$green-300: #026e57; - -//$yellow-000: #ffeb82; -//$yellow-100: #fadf50; -//$yellow-200: #f7d12e; -//$yellow-300: #e7af06; - -//$red-000: #f77e7e; -//$red-100: #f96e65; -//$red-200: #e94c4c; -//$red-300: #dd2e2e; - -//$body-background-color: $white; -//$sidebar-color: $grey-lt-000; -//$search-background-color: $white; -//$table-background-color: $white; -//$code-background-color: $grey-lt-000; - -//$body-text-color: $grey-dk-100; -//$body-heading-color: $grey-dk-300; -//$search-result-preview-color: $grey-dk-000; -//$nav-child-link-color: $grey-dk-100; -//$link-color: $purple-000; -//$btn-primary-color: $purple-100; -//$base-button-color: #f7f7f7; - -//// -//// Spacing -//// - -//$spacing-unit: 1rem; // 1rem == 16px - -//$spacers: ( -//sp-0: 0, -//sp-1: $spacing-unit * 0.25, -//sp-2: $spacing-unit * 0.5, -//sp-3: $spacing-unit * 0.75, -//sp-4: $spacing-unit, -//sp-5: $spacing-unit * 1.5, -//sp-6: $spacing-unit * 2, -//sp-7: $spacing-unit * 2.5, -//sp-8: $spacing-unit * 3, -//sp-9: $spacing-unit * 3.5, -//sp-10: $spacing-unit * 4 -//); - -//$sp-1: map-get($spacers, sp-1); // 0.25 rem == 4px -//$sp-2: map-get($spacers, sp-2); // 0.5 rem == 8px -//$sp-3: map-get($spacers, sp-3); // 0.75 rem == 12px -//$sp-4: map-get($spacers, sp-4); // 1 rem == 16px -//$sp-5: map-get($spacers, sp-5); // 1.5 rem == 24px -//$sp-6: map-get($spacers, sp-6); // 2 rem == 32px -//$sp-7: map-get($spacers, sp-7); // 2.5 rem == 40px -//$sp-8: map-get($spacers, sp-8); // 3 rem == 48px -//$sp-9: map-get($spacers, sp-9); // 4 rem == 48px -//$sp-10: map-get($spacers, sp-10); // 4.5 rem == 48px - -//// -//// Borders -//// - -//$border: 1px solid; -//$border-radius: 4px; -//$border-color: $grey-lt-100; - -//// -//// Grid system -//// - -//$gutter-spacing: $sp-6; -//$gutter-spacing-sm: $sp-4; -//$nav-width: 264px; -//$nav-width-md: 248px; -//$content-width: 800px; -//$header-height: 60px; -//$search-results-width: 500px; - -//// -//// Media queries in pixels -//// - -//$media-queries: ( -//xs: 320px, -//sm: 500px, -//md: $content-width, -//lg: $content-width + $nav-width, -//xl: 1400px -//); diff --git a/_sass/modules.scss b/_sass/modules.scss new file mode 100644 index 0000000000000000000000000000000000000000..dc94a4bd35ee843644beab2d6d3ab389e91e0720 --- /dev/null +++ b/_sass/modules.scss @@ -0,0 +1,19 @@ +// +// Import external dependencies +// +@import "./vendor/normalize.scss/normalize.scss"; + +// +// Modules +// +@import "./base"; +@import "./layout"; +@import "./content"; +@import "./navigation"; +@import "./typography"; +@import "./labels"; +@import "./buttons"; +@import "./search"; +@import "./tables"; +@import "./code"; +@import "./utilities/utilities"; diff --git a/_sass/overrides.scss b/_sass/overrides.scss deleted file mode 100644 index 21e9527d20b4b72ccec57bde40b1217a645420b8..0000000000000000000000000000000000000000 --- a/_sass/overrides.scss +++ /dev/null @@ -1,3 +0,0 @@ -// -// Custom overrides from a user. -// diff --git a/assets/css/dark-mode-preview.scss b/assets/css/dark-mode-preview.scss deleted file mode 100644 index c524e81286d4c220a73882b5f4dd6978714d2d8e..0000000000000000000000000000000000000000 --- a/assets/css/dark-mode-preview.scss +++ /dev/null @@ -1,45 +0,0 @@ ---- -# this ensures Jekyll reads the file to be transformed into CSS later -# only Main files contain this front matter, not partials. ---- - -{% if site.logo %} -$logo: "{{ site.logo | absolute_url }}"; -{% endif %} - -// -// Import external dependencies -// - -@import "./vendor/normalize.scss/normalize.scss"; - -// -// Import Just the Docs scss -// - -// Support -@import "./support/support"; - -// -// Import custom color scheme scss -// - -@import "./color_schemes/dark.scss"; - -// Modules -@import "./base"; -@import "./layout"; -@import "./content"; -@import "./navigation"; -@import "./typography"; -@import "./labels"; -@import "./buttons"; -@import "./search"; -@import "./tables"; -@import "./code"; -@import "./utilities/utilities"; - -// -// Import custom overrides -// -@import "./custom/custom"; diff --git a/assets/css/just-the-docs-dark.scss b/assets/css/just-the-docs-dark.scss new file mode 100644 index 0000000000000000000000000000000000000000..ac92fb1524cad7d6482e68bfe43b492302c6c67a --- /dev/null +++ b/assets/css/just-the-docs-dark.scss @@ -0,0 +1,3 @@ +--- +--- +{% include css/just-the-docs.scss.liquid color_scheme="dark" %} diff --git a/assets/css/just-the-docs-default.scss b/assets/css/just-the-docs-default.scss new file mode 100644 index 0000000000000000000000000000000000000000..63fde26e1c570de46d36491f4490d2ac307623a3 --- /dev/null +++ b/assets/css/just-the-docs-default.scss @@ -0,0 +1,8 @@ +--- +--- +{% if site.color_scheme and site.color_scheme != "nil" %} + {% assign color_scheme = site.color_scheme %} +{% else %} + {% assign color_scheme = "light" %} +{% endif %} +{% include css/just-the-docs.scss.liquid color_scheme=color_scheme %} diff --git a/assets/css/just-the-docs-light.scss b/assets/css/just-the-docs-light.scss new file mode 100644 index 0000000000000000000000000000000000000000..ac69688df081e0a8cac2cf54665779b1b87841b7 --- /dev/null +++ b/assets/css/just-the-docs-light.scss @@ -0,0 +1,3 @@ +--- +--- +{% include css/just-the-docs.scss.liquid color_scheme="light" %} diff --git a/assets/css/just-the-docs.scss b/assets/css/just-the-docs.scss deleted file mode 100644 index 199ad89ca35b896e91c96c8db41639ef28553355..0000000000000000000000000000000000000000 --- a/assets/css/just-the-docs.scss +++ /dev/null @@ -1,49 +0,0 @@ ---- -# this ensures Jekyll reads the file to be transformed into CSS later -# only Main files contain this front matter, not partials. ---- - -{% if site.logo %} -$logo: "{{ site.logo | absolute_url }}"; -{% endif %} - -// -// Import external dependencies -// - -@import "./vendor/normalize.scss/normalize.scss"; - -// -// Import Just the Docs scss -// - -// Support -@import "./support/support"; - -// -// Import custom overrides -// - -@import "./custom/custom"; - -// -// Import custom color scheme scss -// - -{% if site.color_scheme == "dark" %} -@import "./color_schemes/dark.scss"; -{% endif %} - -// Modules -@import "./base"; -@import "./layout"; -@import "./content"; -@import "./navigation"; -@import "./typography"; -@import "./labels"; -@import "./buttons"; -@import "./search"; -@import "./tables"; -@import "./code"; -@import "./utilities/utilities"; -@import "./overrides"; diff --git a/assets/js/dark-mode-preview.js b/assets/js/dark-mode-preview.js deleted file mode 100644 index bb3169f42bf286b26f005bf1ba254dd88adcb7fa..0000000000000000000000000000000000000000 --- a/assets/js/dark-mode-preview.js +++ /dev/null @@ -1,25 +0,0 @@ -document.addEventListener("DOMContentLoaded", function () { - const toggleDarkMode = document.querySelector(".js-toggle-dark-mode") - const cssFile = document.querySelector('[rel="stylesheet"]') - const originalCssRef = cssFile.getAttribute("href") - const darkModeCssRef = originalCssRef.replace( - "just-the-docs.css", - "dark-mode-preview.css" - ) - const buttonCopy = ["Return to the light side", "Preview dark color scheme"] - const updateButtonText = function (toggleDarkMode) { - toggleDarkMode.textContent === buttonCopy[0] - ? (toggleDarkMode.textContent = buttonCopy[1]) - : (toggleDarkMode.textContent = buttonCopy[0]) - } - - jtd.addEvent(toggleDarkMode, "click", function () { - if (cssFile.getAttribute("href") === originalCssRef) { - cssFile.setAttribute("href", darkModeCssRef) - updateButtonText(toggleDarkMode) - } else { - cssFile.setAttribute("href", originalCssRef) - updateButtonText(toggleDarkMode) - } - }) -}) diff --git a/assets/js/just-the-docs.js b/assets/js/just-the-docs.js index 2f6cea0eb55fc0b64dd21b1e77098c34b6c13852..2edf7f465040c3e2bc377c703b8b38ab1b9310a4 100644 --- a/assets/js/just-the-docs.js +++ b/assets/js/just-the-docs.js @@ -279,11 +279,25 @@ function initSearch() { } } +// Focus + function pageFocus() { var mainContent = document.querySelector('.js-main-content'); mainContent.focus(); } +// Switch theme + +jtd.getTheme = function() { + var cssFileHref = document.querySelector('[rel="stylesheet"]').getAttribute('href'); + return cssFileHref.substring(cssFileHref.lastIndexOf('-') + 1, cssFileHref.length - 4); +} + +jtd.setTheme = function(theme) { + var cssFile = document.querySelector('[rel="stylesheet"]'); + cssFile.setAttribute('href', '{{ "assets/css/just-the-docs-" | absolute_url }}' + theme + '.css'); +} + // Document ready jtd.onReady(function(){ diff --git a/docs/configuration.md b/docs/configuration.md index e18f75c7c940502316571f70eddd2e1c2cc2b07c..2367efbff76e4ccad829983bb52d5935ea0c6c56 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -38,7 +38,6 @@ search_enabled: true # Enable support for hyphenated search words: search_tokenizer_separator: /[\s/]+/ - ``` ## Aux links @@ -59,26 +58,56 @@ aux_links_new_tab: false # Heading anchor links appear on hover over h1-h6 tags in page content # allowing users to deep link to a particular heading on a page. # -# Supports true (default) or false/nil +# Supports true (default) or false heading_anchors: true ``` ## Footer content ```yaml -# Footer content appears at the bottom of every page's main content +# Footer content +# appears at the bottom of every page's main content footer_content: "Copyright © 2017-2019 Patrick Marsceill. Distributed by an <a href=\"https://github.com/pmarsceill/just-the-docs/tree/master/LICENSE.txt\">MIT license.</a>" + +# Footer last edited timestamp +last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter +last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html + +# Footer "Edit this page on GitHub" link text +gh_edit_link: true # show or hide edit this page link +gh_edit_link_text: "Edit this page on GitHub." +gh_edit_repository: "https://github.com/pmarsceill/just-the-docs" # the github URL for your repo +gh_edit_branch: "master" # the branch that your docs is served from +gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately ``` +- the "page last modified" data will only display if a page has a key called `last_modified_date`, formatted in some readable date format +- `last_edit_time_format` uses Ruby's DateTime formatter; see examples and more information [at this link.](https://apidock.com/ruby/DateTime/strftime) +- `gh_edit_repository` is the URL of the project's GitHub repository +- `gh_edit_branch` is the branch that the docs site is served from; defaults to `master` +- `gh_edit_view_mode` is `"tree"` by default, which brings the user to the github page; switch to `"edit"` to bring the user directly into editing mode + ## Color scheme ```yaml -# Color scheme currently only supports "dark" or nil (default) -color_scheme: "dark" +# Color scheme supports "light" (default) and "dark" +color_scheme: dark ``` <button class="btn js-toggle-dark-mode">Preview dark color scheme</button> -<script type="text/javascript" src="{{ "/assets/js/dark-mode-preview.js" | absolute_url }}"></script> +<script> +const toggleDarkMode = document.querySelector('.js-toggle-dark-mode'); + +jtd.addEvent(toggleDarkMode, 'click', function(){ + if (jtd.getTheme() === 'dark') { + jtd.setTheme('light'); + toggleDarkMode.textContent = 'Preview dark color scheme'; + } else { + jtd.setTheme('dark'); + toggleDarkMode.textContent = 'Return to the light side'; + } +}); +</script> See [Customization]({{ site.baseurl }}{% link docs/customization.md %}) for more information. @@ -88,4 +117,5 @@ See [Customization]({{ site.baseurl }}{% link docs/customization.md %}) for more # Google Analytics Tracking (optional) # e.g, UA-1234567-89 ga_tracking: UA-5555555-55 +ga_tracking_anonymize_ip: true # Use GDPR compliant Google Analytics settings (true by default) ``` diff --git a/docs/customization.md b/docs/customization.md index 883c94c14db18675f5aebab5d27e4dfbe279220c..cbcd38cc1c1350e95573be81ac1ec5384aa8bc1a 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -29,37 +29,77 @@ To enable a color scheme, set the `color_scheme` parameter in your site's `_conf {: .no_toc } ```yaml -# Color scheme currently only supports "dark" or nil (default) -color_scheme: "dark" +# Color scheme supports "light" (default) and "dark" +color_scheme: dark ``` <button class="btn js-toggle-dark-mode">Preview dark color scheme</button> -<script type="text/javascript" src="{{ "/assets/js/dark-mode-preview.js" | absolute_url }}"></script> +<script> +const toggleDarkMode = document.querySelector('.js-toggle-dark-mode'); -## Specific visual customization +jtd.addEvent(toggleDarkMode, 'click', function(){ + if (jtd.getTheme() === 'dark') { + jtd.setTheme('light'); + toggleDarkMode.textContent = 'Preview dark color scheme'; + } else { + jtd.setTheme('dark'); + toggleDarkMode.textContent = 'Return to the light side'; + } +}); +</script> -To customize your site’s aesthetic, open `_sass/custom/custom.scss` in your editor to see if there is a variable that you can override. Most styles like fonts, colors, spacing, etc. are derived from these variables. To override a specific variable, uncomment its line and change its value. +## Custom schemes -For example, to change the link color from the purple default to blue, open `_sass/custom/custom.css` and find the `$link-color` variable on line `50`. Uncomment it, and change its value to our `$blue-000` variable, or another shade of your choosing. +### Define a custom scheme + +You can add custom schemes. +If you want to add a scheme named `foo` (can be any name) just add a file `_sass/color_schemes/foo.scss` (replace `foo` by your scheme name) +where you override theme variables to change colors, fonts, spacing, etc. + +Available variables are listed in the [_variables.scss](https://github.com/pmarsceill/just-the-docs/tree/master/_sass/support/_variables.scss) file. + +For example, to change the link color from the purple default to blue, include the following inside your scheme file: #### Example {: .no_toc } ```scss -// ... -// -// $body-text-color: $grey-dk-100; -// $body-heading-color: $grey-dk-300; $link-color: $blue-000; -// -// ... ``` _Note:_ Editing the variables directly in `_sass/support/variables.scss` is not recommended and can cause other dependencies to fail. +Please use scheme files. + +### Use a custom scheme + +To use the custom color scheme, only set the `color_scheme` parameter in your site's `_config.yml` file: +```yaml +color_scheme: foo +``` + +### Switchable custom scheme + +If you want to be able to change the scheme dynamically, for example via javascript, just add a file `assets/css/just-the-docs-foo.scss` (replace `foo` by your scheme name) +with the following content:` + +{% raw %} + --- + --- + {% include css/just-the-docs.scss.liquid color_scheme="foo" %} +{% endraw %} + +This allows you to switch the scheme via the following javascript. + +```js +jtd.setTheme('foo'); +``` -## Override styles +## Override and completely custom styles -For styles that aren't defined as a variables, you may want to modify specific CSS classes. To add your own CSS overrides at the end of the cascade, edit `_sass/overrides.scss`. This will allow for all overrides to be kept in a single file, and for any upstream changes to still be applied. +For styles that aren't defined as variables, you may want to modify specific CSS classes. +Additionally, you may want to add completely custom CSS specific to your content. +To do this, put your styles in the file `_sass/custom/custom.scss`. +This will allow for all overrides to be kept in a single file, and for any upstream changes to still be applied. For example, if you'd like to add your own styles for printing a page, you could add the following styles. diff --git a/docs/navigation-structure.md b/docs/navigation-structure.md index a4fef75ef4a46d8e6bd5684652febb99c90f3e74..e5f29ad2682eb95fc5a07040ffccd11f25831491 100644 --- a/docs/navigation-structure.md +++ b/docs/navigation-structure.md @@ -38,6 +38,12 @@ nav_order: 4 --- ``` +The specified `nav_order` parameters on a site should be all integers or all strings. +Pages without a `nav_order` parameter are ordered alphabetically by their `title`, +and appear after the explicitly-ordered pages at each level. +To sort all Capital letters before lowercase letters, +add `nav_sort: case_sensitive` in the configuration file. + --- ## Excluding pages diff --git a/docs/utilities/color.md b/docs/utilities/color.md index ba90b3b95530f5a8917bf23f6178d68ce7158e78..0f375978afbf24ce47bdcd76f4b043883e0f5aae 100644 --- a/docs/utilities/color.md +++ b/docs/utilities/color.md @@ -2,7 +2,6 @@ layout: default title: Color parent: Utilities -nav_order: 3 --- # Color Utilities diff --git a/docs/utilities/layout.md b/docs/utilities/layout.md index 38ec1b2eec5f3cbec293f7a29767246fbba5b485..4410459f1d5ee7b30aecd72d638a09b2c791e0e6 100644 --- a/docs/utilities/layout.md +++ b/docs/utilities/layout.md @@ -2,7 +2,6 @@ layout: default title: Layout parent: Utilities -nav_order: 2 --- # Layout Utilities diff --git a/docs/utilities/responsive-modifiers.md b/docs/utilities/responsive-modifiers.md index bc5e2cb2def922e11109814a84ff095495bf76c5..c732530ed7a06df6730960f1c715689008da2a43 100644 --- a/docs/utilities/responsive-modifiers.md +++ b/docs/utilities/responsive-modifiers.md @@ -2,7 +2,6 @@ layout: default title: Responsive Modifiers parent: Utilities -nav_order: 1 --- # Responsive modifiers diff --git a/docs/utilities/typography.md b/docs/utilities/typography.md index 786b65a504da9e0fa99f7c3198de2e70a589f750..6b952a970e4906f394ce36c3a404c5736505e041 100644 --- a/docs/utilities/typography.md +++ b/docs/utilities/typography.md @@ -2,7 +2,6 @@ layout: default title: Typography parent: Utilities -nav_order: 4 --- # Typography Utilities diff --git a/index.md b/index.md index 7be9b224344075ece46186920ef6492f7b255c02..36fa2d961d75b9b10741ad27791402078a2bc359 100644 --- a/index.md +++ b/index.md @@ -4,6 +4,7 @@ title: Home nav_order: 1 description: "Just the Docs is a responsive Jekyll theme with built-in search that is easily customizable and hosted on GitHub Pages." permalink: / +last_modified_date: 2020-04-27T17:54:08+0000 --- # Focus on writing good documentation diff --git a/just-the-docs.gemspec b/just-the-docs.gemspec index a426d4e1eca5d6781ddd45096aeffd9779dd575d..239b47932f55d72552def6a51af15f36ab909e87 100644 --- a/just-the-docs.gemspec +++ b/just-the-docs.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |spec| spec.name = "just-the-docs" - spec.version = "0.2.8" + spec.version = "0.2.9" spec.authors = ["Patrick Marsceill"] spec.email = ["patrick.marsceill@gmail.com"] @@ -13,7 +13,7 @@ Gem::Specification.new do |spec| spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|bin|_layouts|_includes|lib|Rakefile|_sass|LICENSE|README)}i) } spec.executables << 'just-the-docs' - spec.add_runtime_dependency "bundler", "~> 2.1.4" + spec.add_development_dependency "bundler", "~> 2.1.4" spec.add_runtime_dependency "jekyll", ">= 3.8.5", "< 4.1.0" spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.0" spec.add_runtime_dependency "rake", ">= 12.3.1", "< 13.1.0" diff --git a/package-lock.json b/package-lock.json index 91ae4afdcf0191513e2c806581872b7081b25423..c878f4ffe72cee7a6153944467e28f64932e0871 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "just-the-docs", - "version": "0.2.8", + "version": "0.2.9", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a9fd8e12ba63e5f492b5c6db6a01b100e5fc2537..c2ab5fffef3f6a3059ac012537c36f32b9dee5d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "just-the-docs", - "version": "0.2.8", + "version": "0.2.9", "description": "A modern Jekyll theme for documentation", "repository": "pmarsceill/just-the-docs", "license": "MIT",