├── _includes ├── head │ ├── content-post.html │ ├── content-pre.html │ ├── stylesheets-post.html │ ├── stylesheets-pre.html │ ├── base.html │ ├── full.html │ ├── content.html │ └── stylesheets.html ├── sidebar │ ├── content-post.html │ ├── content-pre.html │ └── content.html ├── footer │ ├── content-post.html │ ├── content-pre.html │ ├── scripts-post.html │ ├── scripts-pre.html │ ├── full.html │ ├── scripts.html │ └── content.html ├── masthead │ ├── title.html │ ├── button.html │ └── buttons.html ├── fa-icon.html ├── facebook.html ├── twitter.html ├── google-analytics.html ├── masthead.html ├── disqus.html ├── internal │ └── variables.html ├── jekyll-docs-theme │ ├── toc.html │ ├── anchor_headings.html │ └── vendor │ │ ├── anchor_headings.html │ │ └── toc.html └── navigation.html ├── _sass ├── utilities │ ├── _js.scss │ └── _colors.scss ├── components │ ├── _alert.scss │ ├── _header.scss │ ├── _mobile-toc.scss │ ├── _footer.scss │ ├── _highlight.scss │ ├── _masthead.scss │ └── _sidebar.scss ├── abstracts │ ├── _variables.scss │ ├── _themer.scss │ ├── _highlight-dark.scss │ └── _highlight-light.scss └── base │ ├── _horizontal-rule.scss │ ├── _body.scss │ ├── _blockquote.scss │ ├── _anchor.scss │ └── _scope-markdown.scss ├── screenshot.png ├── screenshot-dark.png ├── .gitignore ├── Gemfile ├── .editorconfig ├── _layouts ├── full.html ├── default.html └── page.html ├── jekyll-docs-theme.gemspec ├── LICENSE.md ├── README.md ├── assets ├── css │ └── styles.scss └── js │ └── docs.js ├── documentation ├── front-matter.md ├── markdown.md └── config.md ├── _config.yml └── index.md /_includes/head/content-post.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/head/content-pre.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/head/stylesheets-post.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/head/stylesheets-pre.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/sidebar/content-post.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/sidebar/content-pre.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_sass/utilities/_js.scss: -------------------------------------------------------------------------------- 1 | .no-js .js-only { 2 | display: none; 3 | } 4 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allejo/jekyll-docs-theme/HEAD/screenshot.png -------------------------------------------------------------------------------- /screenshot-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allejo/jekyll-docs-theme/HEAD/screenshot-dark.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | .bundle 3 | .idea 4 | .jekyll-cache 5 | .sass-cache 6 | _site 7 | Gemfile.lock 8 | -------------------------------------------------------------------------------- /_sass/components/_alert.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | p:last-of-type { 3 | margin-bottom: 0; 4 | } 5 | } -------------------------------------------------------------------------------- /_includes/head/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source "https://rubygems.org" 4 | gemspec 5 | 6 | gem "jekyll", ENV["JEKYLL_VERSION"] if ENV["JEKYLL_VERSION"] 7 | gem "kramdown-parser-gfm" if ENV["JEKYLL_VERSION"] == "~> 3.9" 8 | -------------------------------------------------------------------------------- /_includes/footer/content-post.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This file was intentionally left blank so that it can be overriden by theme 3 | developers. This file is loaded AFTER the footer's main body is loaded. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /_includes/footer/content-pre.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This file was intentionally left blank so that it can be overriden by theme 3 | developers. This file is loaded BEFORE the footer's main body is loaded. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /_sass/abstracts/_variables.scss: -------------------------------------------------------------------------------- 1 | $background-color-dark: #252525 !default; 2 | $background-color-light: #ffffff !default; 3 | $color-dark: #d8d8d8 !default; 4 | $color-light: #222222 !default; 5 | 6 | $sidebar-border-width: 2px !default; 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 4 5 | indent_style = space 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.yml] 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /_includes/footer/scripts-post.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This file was intentionally left blank so that it can be overriden by theme 3 | developers. This file is loaded AFTER the theme's JavaScript files are loaded. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /_includes/footer/scripts-pre.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This file was intentionally left blank so that it can be overriden by theme 3 | developers. This file is loaded BEFORE the theme's JavaScript files are loaded. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /_includes/masthead/title.html: -------------------------------------------------------------------------------- 1 |

{{ page.title | default: site.name }}

2 | 3 | {% if page.description %} 4 |

5 | {{ page.description }} 6 |

7 | {% endif %} 8 | -------------------------------------------------------------------------------- /_sass/base/_horizontal-rule.scss: -------------------------------------------------------------------------------- 1 | hr { 2 | @include themer(border-top-color, ( 3 | 'dark': $site-ui-border-color-dark, 4 | 'light': $site-ui-border-color-light, 5 | )); 6 | 7 | margin-bottom: 2.5rem; 8 | margin-top: 2.5rem; 9 | } 10 | -------------------------------------------------------------------------------- /_layouts/full.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 |
7 | {% include jekyll-docs-theme/anchor_headings.html %} 8 |
9 | 10 | {% include disqus.html %} 11 |
12 | -------------------------------------------------------------------------------- /_includes/masthead/button.html: -------------------------------------------------------------------------------- 1 | 5 | {% include fa-icon.html 6 | icon=include.icon 7 | brand=include.brand 8 | class="mr-1" 9 | %} 10 | {{ include.title }} 11 | 12 | -------------------------------------------------------------------------------- /_includes/head/full.html: -------------------------------------------------------------------------------- 1 | {% include head/base.html %} 2 | 3 | {% include head/content-pre.html %} 4 | {% include head/content.html %} 5 | {% include head/content-post.html %} 6 | 7 | {% include head/stylesheets-pre.html %} 8 | {% include head/stylesheets.html %} 9 | {% include head/stylesheets-post.html %} 10 | -------------------------------------------------------------------------------- /_sass/base/_body.scss: -------------------------------------------------------------------------------- 1 | body { 2 | @include themer(background-color, ( 3 | 'dark': $background-color-dark, 4 | 'light': $background-color-light, 5 | )); 6 | @include themer(color, ( 7 | 'dark': $color-dark, 8 | 'light': $color-light, 9 | )); 10 | 11 | position: relative; 12 | } 13 | -------------------------------------------------------------------------------- /_includes/sidebar/content.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /_includes/fa-icon.html: -------------------------------------------------------------------------------- 1 | {% if include.icon %} 2 | {% capture fa_prefix -%} 3 | {%- if include.brand -%} 4 | fab 5 | {%- else -%} 6 | fas 7 | {%- endif -%} 8 | {%- endcapture -%} 9 | 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /_includes/facebook.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /_includes/twitter.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/google-analytics.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/footer/full.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | {% include footer/scripts-pre.html %} 8 | {% include footer/scripts.html %} 9 | {% include footer/scripts-post.html %} 10 | 11 | {% if site.analytics.google %} 12 | {% include google-analytics.html %} 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /_sass/components/_header.scss: -------------------------------------------------------------------------------- 1 | .navbar-custom { 2 | a { 3 | border-bottom: 0; 4 | } 5 | 6 | .navbar-brand { 7 | font-weight: bold; 8 | } 9 | 10 | .icon-bar { 11 | @include themer(background, ( 12 | 'dark': $site-ui-brand-dark, 13 | 'light': $site-ui-brand-light, 14 | )); 15 | 16 | border-radius: 1px; 17 | display: block; 18 | height: 2px; 19 | margin: 4px 0; 20 | width: 22px; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /_includes/masthead.html: -------------------------------------------------------------------------------- 1 | {% capture alignment_class -%} 2 | {%- if page.homepage -%} 3 | text-{{ site.ui.masthead.align.homepage | default: 'center' }} 4 | {%- else -%} 5 | text-{{ site.ui.masthead.align.page | default: 'left' }} 6 | {%- endif -%} 7 | {%- endcapture %} 8 |
9 |
10 | {% include masthead/title.html %} 11 | {% include masthead/buttons.html %} 12 |
13 |
14 | -------------------------------------------------------------------------------- /_sass/base/_blockquote.scss: -------------------------------------------------------------------------------- 1 | blockquote { 2 | @include themer(border-bottom-color, ( 3 | 'dark': $site-ui-border-color-dark, 4 | 'light': $site-ui-border-color-light, 5 | )); 6 | 7 | @include themer(color, ( 8 | 'dark': rgba($color-dark, 60%), 9 | 'light': rgba($color-light, 60%), 10 | )); 11 | 12 | border-left-style: solid; 13 | border-left-width: 4px; 14 | padding: 0.5rem 1.25rem; 15 | 16 | *:last-child { 17 | margin-bottom: 0; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /_sass/base/_anchor.scss: -------------------------------------------------------------------------------- 1 | a { 2 | @include themer(color, ( 3 | 'dark': $site-ui-brand-dark, 4 | 'light': $site-ui-brand-light, 5 | )); 6 | 7 | border-bottom: 1px dashed currentColor; 8 | text-decoration: none; 9 | 10 | &:active, 11 | &:focus, 12 | &:hover { 13 | @include themer(color, ( 14 | 'dark': darken($site-ui-brand-dark, 10%), 15 | 'light': darken($site-ui-brand-light, 10%), 16 | )); 17 | 18 | text-decoration: none; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /_sass/abstracts/_themer.scss: -------------------------------------------------------------------------------- 1 | @mixin themer($property, $values) { 2 | @if $site-ui-mode == 'auto' { 3 | @media (prefers-color-scheme: dark) { 4 | & { 5 | #{$property}: map-get($values, 'dark'); 6 | } 7 | } 8 | 9 | @media (prefers-color-scheme: light) { 10 | & { 11 | #{$property}: map-get($values, 'light'); 12 | } 13 | } 14 | } 15 | @else if $site-ui-mode == 'dark' or $site-ui-mode == 'light' { 16 | #{$property}: map-get($values, $site-ui-mode); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /_includes/head/content.html: -------------------------------------------------------------------------------- 1 | {% assign pageTitle = page.title | default: site.name ~ ' ' ~ site.project.version | escape %} 2 | {% assign pageDescription = page.description | page.excerpt | default: site.description %} 3 | 4 | {{ pageTitle | strip_html | escape }} 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /_includes/head/stylesheets.html: -------------------------------------------------------------------------------- 1 | 7 | 13 | 17 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head/full.html %} 5 | 6 | 7 | {% assign scrollSpyOffset = page.scrollSpyOffset | default: layout.scrollSpyOffset | default: 0 %} 8 | 14 | {% include navigation.html %} 15 | {% include masthead.html %} 16 | 17 | {{ content }} 18 | 19 | {% include footer/full.html %} 20 | 21 | 22 | -------------------------------------------------------------------------------- /_sass/components/_mobile-toc.scss: -------------------------------------------------------------------------------- 1 | .mobile-toc { 2 | h2 { 3 | font-size: 1rem; 4 | font-weight: bold; 5 | } 6 | 7 | ul { 8 | padding-left: 1.4rem; 9 | } 10 | 11 | .toggle-toc { 12 | @include themer(color, ( 13 | 'dark': $site-ui-brand-dark, 14 | 'light': $site-ui-brand-light, 15 | )); 16 | 17 | background-color: transparent; 18 | border: none; 19 | cursor: pointer; 20 | padding: 0; 21 | 22 | &::before { 23 | content: '['; 24 | } 25 | 26 | &::after { 27 | content: ']'; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /_sass/components/_footer.scss: -------------------------------------------------------------------------------- 1 | .site-footer { 2 | } 3 | 4 | .site-footer__social-links { 5 | .github-btn { 6 | border: 0; 7 | overflow: hidden 8 | } 9 | 10 | .twitter-follow-button { 11 | width: 225px!important 12 | } 13 | 14 | .twitter-share-button { 15 | width: 98px!important 16 | } 17 | 18 | } 19 | 20 | .site-footer__links { 21 | .list-inline-item { 22 | &:not(:last-child)::after { 23 | content: '\00b7'; 24 | padding-left: 0.5rem; 25 | } 26 | } 27 | } 28 | 29 | .site-footer__link { 30 | border-bottom: 0; 31 | 32 | span { 33 | border-bottom: 1px dashed currentColor; 34 | } 35 | } 36 | 37 | .site-footer__summary { 38 | font-size: 0.8rem; 39 | } 40 | -------------------------------------------------------------------------------- /_includes/disqus.html: -------------------------------------------------------------------------------- 1 | {% if site.disqus != false and page.comments != false and jekyll.environment == "production" %} 2 |
3 | 15 | 16 | {% endif %} -------------------------------------------------------------------------------- /jekyll-docs-theme.gemspec: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | # coding: utf-8 3 | 4 | Gem::Specification.new do |spec| 5 | spec.name = "jekyll-docs-theme" 6 | spec.version = "1.0.0" 7 | spec.authors = ["Vladimir 'allejo' Jimenez"] 8 | spec.email = ["me@allejo.io"] 9 | 10 | spec.summary = "A Jekyll Gem-based Theme for hosting documentation style websites" 11 | spec.homepage = "https://github.com/allejo/jekyll-docs-theme" 12 | spec.license = "MIT" 13 | 14 | spec.metadata["plugin_type"] = "theme" 15 | 16 | spec.files = `git ls-files -z`.split("\x0").select do |f| 17 | f.match(%r!^(assets|_(includes|layouts|sass)/|(LICENSE|README)((\.(txt|md|markdown)|$)))!i) 18 | end 19 | 20 | spec.add_runtime_dependency "jekyll", ">= 3.5", "< 5.0" 21 | 22 | spec.add_development_dependency "bundler", "~> 2.1" 23 | end 24 | -------------------------------------------------------------------------------- /_includes/masthead/buttons.html: -------------------------------------------------------------------------------- 1 | {% if page.homepage %} 2 |
3 | {% if site.project.download_url %} 4 | {% capture button_text -%} 5 | {{ site.project.download_text | default: 'Download' }} 6 | {%- endcapture %} 7 | 8 | {% include masthead/button.html 9 | url=site.project.download_url 10 | icon="download" 11 | title=button_text 12 | %} 13 | {% endif %} 14 | 15 | {% for link in site.links.homepage %} 16 | {% include masthead/button.html 17 | url=link.url 18 | icon=link.icon 19 | title=link.title 20 | brand=link.brand 21 | %} 22 | {% endfor %} 23 |
24 | 25 | {% if site.project.version %} 26 |

27 | Latest release v{{ site.project.version }} 28 |

29 | {% endif %} 30 | {% endif %} 31 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright © 2020 Vladimir "allejo" Jimenez 5 | 6 | Permission is hereby granted, free of charge, to any person 7 | obtaining a copy of this software and associated documentation 8 | files (the "Software"), to deal in the Software without 9 | restriction, including without limitation the rights to use, 10 | copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the 12 | Software is furnished to do so, subject to the following 13 | conditions: 14 | 15 | The above copyright notice and this permission notice shall be 16 | included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 20 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 22 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 23 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 25 | OTHER DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /_includes/internal/variables.html: -------------------------------------------------------------------------------- 1 | {%- assign site_ui_mode = site.ui.mode | default: 'auto' -%} 2 | 3 | {%- assign site_ui_brand_dark = site.ui.brand.dark | default: '#00ceff' -%} 4 | {%- assign site_ui_brand_light = site.ui.brand.light | default: '#a20000' -%} 5 | 6 | {%- assign site_ui_border_color_dark = site.ui.border_color.dark | default: '#5f5f5f' -%} 7 | {%- assign site_ui_border_color_light = site.ui.border_color.light | default: '#dee2e6' -%} 8 | 9 | {%- if site.ui.header.trianglify == true or site.ui.header.trianglify == false -%} 10 | {%- assign site_ui_header_trianglify = site.ui.header.trianglify -%} 11 | {%- else -%} 12 | {%- assign site_ui_header_trianglify = true -%} 13 | {%- endif -%} 14 | 15 | {%- assign site_ui_header_dark_color1 = site.ui.header.dark.color1 | default: '#062a48' -%} 16 | {%- assign site_ui_header_dark_color2 = site.ui.header.dark.color2 | default: '#304e67' -%} 17 | {%- assign site_ui_header_light_color1 = site.ui.header.light.color1 | default: '#080331' -%} 18 | {%- assign site_ui_header_light_color2 = site.ui.header.light.color2 | default: '#673051' -%} 19 | 20 | {%- assign site_ui_masthead_color_dark = site.ui.masthead.color.dark | default: '#fff' -%} 21 | {%- assign site_ui_masthead_color_light = site.ui.masthead.color.light | default: '#fff' -%} 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jekyll Docs Theme 2 | 3 | [![Gem](https://img.shields.io/gem/v/jekyll-docs-theme)](https://rubygems.org/gems/jekyll-docs-theme) 4 | [![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/allejo/jekyll-docs-theme?include_prereleases)](https://github.com/allejo/jekyll-docs-theme/releases) 5 | [![GitHub license](https://img.shields.io/github/license/allejo/jekyll-docs-theme)](https://github.com/allejo/jekyll-docs-theme/blob/master/LICENSE.md) 6 | 7 | A Jekyll theme inspired by Bootstrap's official documentation theme from a few years back. This theme started off by stealing all of Bootstrap Docs' CSS and being used in [mistic100's theme](https://github.com/mistic100/jekyll-bootstrap-doc). This theme has since be rewritten from scratch and remains solely inspired by the original design. 8 | 9 | This theme is designed for writing documentation websites instead of having large unmaintainable README files or several markdown files inside of a folder in a repository. 10 | 11 | ## Screenshots 12 | 13 | **Light Mode** 14 | 15 | ![Theme Screenshot](./screenshot.png) 16 | 17 | **Dark Mode** 18 | 19 | ![Theme Screenshot](./screenshot-dark.png) 20 | 21 | ## License 22 | 23 | The theme is available as open source under the terms of the [MIT License](./LICENSE.md). 24 | -------------------------------------------------------------------------------- /_sass/components/_highlight.scss: -------------------------------------------------------------------------------- 1 | @if $site-ui-mode == 'auto' { 2 | @media (prefers-color-scheme: dark) { 3 | @include highlight-dark-theme(); 4 | } 5 | 6 | @media (prefers-color-scheme: light) { 7 | @include highlight-light-theme(); 8 | } 9 | } 10 | @else if $site-ui-mode == 'dark' { 11 | @include highlight-dark-theme(); 12 | } 13 | @else if $site-ui-mode == 'light' { 14 | @include highlight-light-theme(); 15 | } 16 | 17 | .highlight { 18 | @include themer(background-color, ( 19 | 'dark': #3f3f3f, 20 | 'light': #f7f7f9, 21 | )); 22 | @include themer(border-color, ( 23 | 'dark': #222222, 24 | 'light': #e1e1e8, 25 | )); 26 | 27 | border-style: solid; 28 | border-width: 1px; 29 | border-radius: 4px; 30 | padding: 9px 14px; 31 | margin-bottom: 14px; 32 | } 33 | 34 | .highlight pre { 35 | background-color: transparent; 36 | border: 0; 37 | padding: 0; 38 | margin-top: 0; 39 | margin-bottom: 0; 40 | } 41 | 42 | .highlight pre code { 43 | @include themer(color, ( 44 | 'dark': #fdce93, 45 | 'light': #333, 46 | )); 47 | 48 | font-size: inherit; 49 | white-space: pre; 50 | } 51 | 52 | .highlight pre .lineno { 53 | display: inline-block; 54 | color: #bebec5; 55 | margin-right: 10px; 56 | padding-right: 5px; 57 | text-align: right; 58 | width: 22px; 59 | } 60 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 |
7 |
8 |
9 |
10 |

Table of Contents

11 | 12 | 20 |
21 | 22 | {% include jekyll-docs-theme/toc.html 23 | class="js-toc.mb-0.mt-2" 24 | id="mobileTOC" 25 | %} 26 |
27 | 28 |
29 | {% include jekyll-docs-theme/anchor_headings.html %} 30 |
31 |
32 | 33 | 38 |
39 | 40 | {% include disqus.html %} 41 |
42 | -------------------------------------------------------------------------------- /assets/css/styles.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | $site-ui-mode: {{ site.ui.mode | default: 'auto' }}; 5 | 6 | $site-ui-brand-dark: {{ site.ui.brand.dark | default: '#00ceff' }}; 7 | $site-ui-brand-light: {{ site.ui.brand.light | default: '#a20000' }}; 8 | 9 | $site-ui-border-color-dark: {{ site.ui.border_color.dark | default: '#5f5f5f' }}; 10 | $site-ui-border-color-light: {{ site.ui.border_color.light | default: '#dee2e6' }}; 11 | 12 | $site-ui-header-dark-color1: {{ site.ui.header.dark.color1 | default: '#062a48' }}; 13 | $site-ui-header-dark-color2: {{ site.ui.header.dark.color2 | default: '#304e67' }}; 14 | $site-ui-header-light-color1: {{ site.ui.header.light.color1 | default: '#080331' }}; 15 | $site-ui-header-light-color2: {{ site.ui.header.light.color2 | default: '#673051' }}; 16 | 17 | $site-ui-masthead-color-dark: {{ site.ui.masthead.color.dark | default: '#fff' }}; 18 | $site-ui-masthead-color-light: {{ site.ui.masthead.color.light | default: '#fff' }}; 19 | 20 | @import 'abstracts/highlight-dark'; 21 | @import 'abstracts/highlight-light'; 22 | @import 'abstracts/themer'; 23 | @import 'abstracts/variables'; 24 | 25 | // Base Styles 26 | @import 'base/anchor'; 27 | @import 'base/body'; 28 | @import 'base/blockquote'; 29 | @import 'base/horizontal-rule'; 30 | @import 'base/scope-markdown'; 31 | 32 | // Components 33 | @import 'components/alert'; 34 | @import 'components/footer'; 35 | @import 'components/header'; 36 | @import 'components/highlight'; 37 | @import 'components/masthead'; 38 | @import 'components/mobile-toc'; 39 | @import 'components/sidebar'; 40 | 41 | // Utilities 42 | @import 'utilities/colors'; 43 | @import 'utilities/js'; 44 | -------------------------------------------------------------------------------- /documentation/front-matter.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Front Matter 4 | description: ~ 5 | --- 6 | 7 | This theme introduces special [front matter](https://jekyllrb.com/docs/front-matter/) options available in all pages to configure the behavior of said page. 8 | 9 | ## Setting a Homepage 10 | 11 | In order to define a homepage for a website, set the `homepage` front matter variable to `true` on whichever **one** page you'd like as the homepage. 12 | 13 | | Name | Type | Default | 14 | |:-----------|:--------|:-------:| 15 | | `homepage` | boolean | false | 16 | 17 | ## Configuring Heading Anchors 18 | 19 | By default, all page content will automatically inject anchors next to each of the headers on a page. These anchors can be configured and disabled via front matter on a per page or per layout basis. 20 | 21 | To achieve this on a per layout basis, you would need to create your own layout and extend the provided layouts in this theme and set the default front matter values there. 22 | 23 | ### Disabling Anchors 24 | 25 | To disable the anchors from being injected in a page, use the boolean `disable_anchors` front matter option. 26 | 27 | | Name | Type | Default | 28 | |:------------------|:--------|:-------:| 29 | | `disable_anchors` | boolean | false | 30 | 31 | ## Hiding a Page from the Menu 32 | 33 | All pages will automatically be listed in the navigation bar at the top of the website; but not all pages belong there. To hide a page from the menu bar, use the `show_in_menu` boolean front matter option. 34 | 35 | | Name | Type | Default | 36 | |:---------------|:--------|:-------:| 37 | | `show_in_menu` | boolean | true | 38 | -------------------------------------------------------------------------------- /assets/js/docs.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | $('html').toggleClass('no-js js'); 3 | 4 | // Update sidebar highlighting based on Scrollspy 5 | $(window).on('activate.bs.scrollspy', function () { 6 | const spyTarget = $('[data-spy="scroll"]').data('target'); 7 | const $activeSpy = $(spyTarget).find('.nav-link.active'); 8 | const $tree = $activeSpy.parentsUntil('.bs-docs-sidenav', 'li'); 9 | 10 | $tree.find('> a').addClass('active'); 11 | }); 12 | 13 | // Toggleable mobile table of contents button 14 | $('.toggle-toc').on('click', function () { 15 | const $this = $(this); 16 | const $toc = $("#mobileTOC"); 17 | 18 | $toc.toggle(); 19 | $this.attr('aria-expanded', $toc.is(':visible')); 20 | 21 | const $btn = $this.find('[data-role="toggle"]'); 22 | 23 | if ($btn.text() === 'Hide') { 24 | $btn.text('Show'); 25 | } else { 26 | $btn.text('Hide'); 27 | } 28 | }); 29 | 30 | // Make the triangular pattern in the header 31 | if (uiColors) { 32 | const $masthead = $('.site-masthead'); 33 | 34 | if ($masthead.length) { 35 | const t = new Trianglify({ 36 | cellsize: 90, 37 | noiseIntensity: 0, 38 | x_gradient: [ 39 | uiColors[0], 40 | uiColors[1], 41 | ], 42 | }); 43 | const pattern = t.generate(window.screen.width | $masthead.outerWidth(), $masthead.outerHeight() * 1.2); 44 | 45 | const style = $(''); 46 | $('html > head').append(style); 47 | } 48 | } 49 | }); 50 | -------------------------------------------------------------------------------- /_includes/jekyll-docs-theme/toc.html: -------------------------------------------------------------------------------- 1 | {% assign fm_class = layout.table_of_contents.class | default: page.table_of_contents.class | default: "" %} 2 | {% assign fm_anchor_class = layout.table_of_contents.anchor_class | default: page.table_of_contents.anchor_class | default: "" %} 3 | 4 | {% capture class -%} 5 | {{- include.class -}} 6 | {%- if fm_class != "" -%} 7 | .{{- fm_class -}} 8 | {%- endif -%} 9 | {%- endcapture %} 10 | 11 | {% capture anchor_class %} 12 | {{- include.anchor_class -}} 13 | {%- if fm_anchor_class != "" -%} 14 | .{{- fm_anchor_class -}} 15 | {%- endif -%} 16 | {% endcapture %} 17 | 18 | {% assign sanitize = page.table_of_contents.sanitize | default: layout.table_of_contents.sanitize | default: false %} 19 | {% assign h_min = page.table_of_contents.h_min | default: layout.table_of_contents.h_min | default: 1 %} 20 | {% assign h_max = page.table_of_contents.h_max | default: layout.table_of_contents.h_max | default: 3 %} 21 | {% assign ordered = page.table_of_contents.ordered | default: layout.table_of_contents.ordered | default: false %} 22 | {% assign item_class = page.table_of_contents.item_class | default: layout.table_of_contents.item_class | default: '' %} 23 | {% assign baseurl = page.table_of_contents.baseurl | default: layout.table_of_contents.baseurl | default: '' %} 24 | {% assign skipNoIDs = page.table_of_contents.skipNoIDs | default: layout.table_of_contents.skipNoIDs | default: false %} 25 | 26 | {% include jekyll-docs-theme/vendor/toc.html 27 | html=content 28 | id=include.id 29 | class=class 30 | sanitize=sanitize 31 | h_min=h_min 32 | h_max=h_max 33 | ordered=ordered 34 | item_class=item_class 35 | baseurl=baseurl 36 | anchor_class=anchor_class 37 | skipNoIDs=skipNoIDs 38 | %} 39 | -------------------------------------------------------------------------------- /_includes/jekyll-docs-theme/anchor_headings.html: -------------------------------------------------------------------------------- 1 | {% assign fm_anchorClass = layout.anchor_headings.anchorClass | default: page.anchor_headings.anchorClass | default: "" %} 2 | 3 | {% capture anchorClass -%} 4 | {{- include.anchorClass -}} 5 | {%- if fm_anchorClass -%} 6 | .{{- fm_anchorClass -}} 7 | {%- endif -%} 8 | {%- endcapture %} 9 | 10 | {% assign beforeHeading = page.anchor_headings.beforeHeading | default: layout.anchor_headings.beforeHeading | default: false %} 11 | {% assign anchorAttrs = page.anchor_headings.anchorAttrs | default: layout.anchor_headings.anchorAttrs | default: '' %} 12 | {% assign anchorBody = page.anchor_headings.anchorBody | default: layout.anchor_headings.anchorBody | default: "#" %} 13 | {% assign anchorTitle = page.anchor_headings.anchorTitle | default: layout.anchor_headings.anchorTitle | default: '' %} 14 | {% assign h_min = page.anchor_headings.h_min | default: layout.anchor_headings.h_min | default: 1 %} 15 | {% assign h_max = page.anchor_headings.h_max | default: layout.anchor_headings.h_max | default: 6 %} 16 | {% assign bodyPrefix = page.anchor_headings.bodyPrefix | default: layout.anchor_headings.bodyPrefix | default: '' %} 17 | {% assign bodySuffix = page.anchor_headings.bodySuffix | default: layout.anchor_headings.bodySuffix | default: '' %} 18 | 19 | {% unless page.disable_anchors %} 20 | {% include jekyll-docs-theme/vendor/anchor_headings.html 21 | html=content 22 | beforeHeading=beforeHeading 23 | anchorAttrs=anchorAttrs 24 | anchorBody=anchorBody 25 | anchorClass=anchorClass 26 | anchorTitle=anchorTitle 27 | h_min=h_min 28 | h_max=h_max 29 | bodyPrefix=bodyPrefix 30 | bodySuffix=bodySuffix 31 | %} 32 | {% else %} 33 | {{ content }} 34 | {% endunless %} 35 | -------------------------------------------------------------------------------- /_sass/components/_masthead.scss: -------------------------------------------------------------------------------- 1 | .site-masthead { 2 | @include themer(background, ( 3 | 'dark': $site-ui-header-dark-color1, 4 | 'light': $site-ui-header-light-color1, 5 | )); 6 | @include themer(background, ( 7 | 'dark': linear-gradient(135deg, $site-ui-header-dark-color1, $site-ui-header-dark-color2), 8 | 'light': linear-gradient(135deg, $site-ui-header-light-color1, $site-ui-header-light-color2), 9 | )); 10 | 11 | color: white; 12 | position: relative; 13 | 14 | &::after { 15 | @include themer(background, ( 16 | 'dark': linear-gradient(135deg, transparent 50px, $background-color-dark 50px), 17 | 'light': linear-gradient(135deg, transparent 50px, $background-color-light 50px), 18 | )); 19 | 20 | bottom: 0; 21 | content: ""; 22 | height: 50px; 23 | position: absolute; 24 | right: 0; 25 | width: 30%; 26 | } 27 | } 28 | 29 | .site-masthead__button { 30 | @include themer(border-color, ( 31 | 'dark': $site-ui-masthead-color-dark, 32 | 'light': $site-ui-masthead-color-light, 33 | )); 34 | @include themer(color, ( 35 | 'dark': $site-ui-masthead-color-dark, 36 | 'light': $site-ui-masthead-color-light, 37 | )); 38 | 39 | border-radius: 5px; 40 | border-style: solid; 41 | border-width: 1px; 42 | display: inline-block; 43 | font-size: 1.25rem; 44 | padding: 0.75rem 2rem; 45 | 46 | &:hover { 47 | @include themer(background-color, ( 48 | 'dark': $site-ui-masthead-color-dark, 49 | 'light': $site-ui-masthead-color-light, 50 | )); 51 | @include themer(color, ( 52 | 'dark': $site-ui-brand-dark, 53 | 'light': $site-ui-brand-light, 54 | )); 55 | 56 | text-decoration: none; 57 | } 58 | } 59 | 60 | .site-masthead__version { 61 | font-size: 0.8rem; 62 | } 63 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # name of the software 2 | name: Jekyll Docs Theme 3 | 4 | project: 5 | version: 1.0.0 6 | download_url: https://github.com/allejo/jekyll-docs-theme/releases 7 | download_text: Download 8 | 9 | license: 10 | software: MIT License 11 | software_url: https://opensource.org/licenses/MIT 12 | 13 | docs: CC BY 3.0 14 | docs_url: https://creativecommons.org/licenses/by/3.0/ 15 | 16 | links: 17 | header: 18 | - title: GitHub 19 | icon: github 20 | brand: true 21 | url: https://github.com/allejo/jekyll-docs-theme 22 | homepage: 23 | - title: View on GitHub 24 | icon: github 25 | brand: true 26 | url: https://github.com/allejo/jekyll-docs-theme 27 | footer: 28 | - title: GitHub 29 | icon: github 30 | brand: true 31 | url: https://github.com/allejo/jekyll-docs-theme 32 | - title: Issues 33 | icon: bug 34 | url: https://github.com/allejo/jekyll-docs-theme/issues?state=open 35 | 36 | ui: 37 | mode: 'auto' # 'auto', 'dark', 'light' 38 | brand: 39 | dark: "#00ceff" 40 | light: "#a20000" 41 | border_color: 42 | dark: "#5f5f5f" 43 | light: "#dee2e6" 44 | header: 45 | trianglify: true 46 | dark: 47 | color1: "#062a48" 48 | color2: "#304e67" 49 | light: 50 | color1: "#080331" 51 | color2: "#673051" 52 | masthead: 53 | color: 54 | dark: "#fff" 55 | light: "#fff" 56 | align: 57 | homepage: 'center' 58 | page: 'left' 59 | 60 | social: 61 | github: 62 | user: allejo 63 | repo: jekyll-docs-theme 64 | twitter: 65 | enabled: false 66 | via: 67 | hash: 68 | account: 69 | facebook: 70 | enabled: false 71 | profileUrl: 72 | 73 | analytics: 74 | google: UA-123456-1 75 | 76 | # Build settings 77 | markdown: kramdown 78 | exclude: 79 | - Gemfile 80 | - Gemfile.lock 81 | - jekyll-docs-theme.gemspec 82 | - LICENSE.md 83 | - README.md 84 | - screenshot.png 85 | -------------------------------------------------------------------------------- /_includes/footer/scripts.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 14 | 15 | {% include internal/variables.html %} 16 | {% if site_ui_header_trianglify %} 17 | 18 | 19 | 46 | {% endif %} 47 | 48 | 49 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: full 3 | homepage: true 4 | disable_anchors: true 5 | description: If mediocrity had a Jekyll theme... 6 | --- 7 | 8 | A Jekyll theme inspired by Bootstrap's official documentation theme from a few years back. This theme started off by stealing all of Bootstrap Docs' CSS and being used in [mistic100's theme](https://github.com/mistic100/jekyll-bootstrap-doc). This theme has since be rewritten from scratch and remains solely inspired by the original design. 9 | 10 | > I've never seen a more mediocre theme it actually hurts my insides. 11 | > 12 | > ~ _Anonymous_, 2020 13 | 14 | This theme is designed for writing documentation websites instead of having large unmaintainable README files or several markdown files inside of a folder in a repository. 15 | 16 |
17 |
18 | 19 | ## Installation 20 | {:.mt-lg-0} 21 | 22 | This theme is designed to work both as a Gem or as a remote theme, meaning we officially support GitHub Pages. 23 | 24 | ### Gem 25 | 26 | Add this line to your Jekyll site's Gemfile: 27 | 28 | ```ruby 29 | gem "jekyll-docs-theme" 30 | ``` 31 | 32 | And then enable and use the theme in your Jekyll site via its `_config.yml`. 33 | 34 | ```yaml 35 | theme: jekyll-docs-theme 36 | ``` 37 | 38 | ### GitHub Pages 39 | 40 | And add this line to your Jekyll site's `_config.yml`: 41 | 42 | ```yaml 43 | remote_theme: allejo/jekyll-docs-theme@v{{ site.project.version }} 44 | ``` 45 | 46 |
47 |
48 | 49 | ## Features 50 | {:.mt-lg-0} 51 | 52 | Despite being a mediocre theme, we've got a features that we're especially proud of and dedicate a lot of our time to making sure they work as expected. 53 | 54 | ### Graceful Degradation 55 | 56 | This theme uses as little JavaScript as possible. All of our anchors and table of contents are generated at build time. Any features that rely on JavaScript have fallbacks for graceful degradation. It's how the web should be nowadays. 57 | 58 | ### Heavily Customizable 59 | 60 | A lot of parts in these theme consist of empty Jekyll includes that are designed to be overridden by website owners. Inject your custom code easily to any part of the website! 61 | 62 | ### Dark Mode 63 | 64 | We all know that dark mode makes you a better human. This theme supports a dark mode based on each user's preference. 65 | 66 |
67 |
68 | 69 | -------------------------------------------------------------------------------- /_sass/components/_sidebar.scss: -------------------------------------------------------------------------------- 1 | // Only hide nested ULs if they are accessible via JS 2 | .js .page-sidebar { 3 | ul ul { 4 | display: none; 5 | } 6 | } 7 | 8 | .page-sidebar { 9 | max-height: 100vh; 10 | position: -webkit-sticky; 11 | position: sticky; 12 | overflow: auto; 13 | top: 20px; 14 | 15 | a { 16 | @include themer(color, ( 17 | 'dark': #c7c7c7, 18 | 'light': #999, 19 | )); 20 | 21 | border-bottom: 0; 22 | } 23 | 24 | ul { 25 | padding-left: 15px; 26 | 27 | & ul { 28 | font-size: 90%; 29 | } 30 | 31 | li { 32 | list-style: none; 33 | } 34 | 35 | a { 36 | border-bottom: 0; 37 | display: block; 38 | font-weight: 500; 39 | position: relative; 40 | 41 | &:focus, 42 | &:hover { 43 | @include themer(color, ( 44 | 'dark': $site-ui-brand-dark, 45 | 'light': $site-ui-brand-light, 46 | )); 47 | 48 | background-color: transparent; 49 | } 50 | 51 | &.active, 52 | &.active:focus, 53 | &.active:hover { 54 | @include themer(color, ( 55 | 'dark': $site-ui-brand-dark, 56 | 'light': $site-ui-brand-light, 57 | )); 58 | 59 | font-weight: 700; 60 | 61 | // In order to prevent being affected by the extra width misaligning 62 | // content, we'll do position absolute the border. 63 | &::before { 64 | @include themer(border-left-color, ( 65 | 'dark': $site-ui-brand-dark, 66 | 'light': $site-ui-brand-light, 67 | )); 68 | 69 | border-left-style: solid; 70 | border-left-width: $sidebar-border-width; 71 | content: ''; 72 | display: block; 73 | height: 100%; 74 | left: 0; 75 | position: absolute; 76 | top: 0; 77 | } 78 | } 79 | 80 | // Unhide any nested ULs when this TOC section is active 81 | &.active + ul { 82 | display: block; 83 | } 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /_sass/base/_scope-markdown.scss: -------------------------------------------------------------------------------- 1 | .scope-markdown { 2 | code { 3 | @include themer(color, ( 4 | 'dark': #ffa6a6, 5 | 'light': #e83e8c, 6 | )); 7 | } 8 | 9 | h1, h2, h3, 10 | h4, h5, h6 { 11 | .heading-anchor { 12 | border-bottom: 0; 13 | font-size: 0.8em; 14 | opacity: 0.6; 15 | transition: opacity 0.2s; 16 | } 17 | 18 | &:hover { 19 | .heading-anchor { 20 | opacity: 1; 21 | 22 | &:active, 23 | &:focus, 24 | &:hover { 25 | @include themer(color, ( 26 | 'dark': $site-ui-brand-dark, 27 | 'light': $site-ui-brand-light, 28 | )); 29 | 30 | text-decoration: underline; 31 | } 32 | } 33 | } 34 | } 35 | 36 | h1 { 37 | font-size: 2.25rem; 38 | } 39 | 40 | h2 { 41 | @include themer(border-bottom-color, ( 42 | 'dark': $site-ui-border-color-dark, 43 | 'light': $site-ui-border-color-light, 44 | )); 45 | 46 | border-bottom-style: solid; 47 | border-bottom-width: 1px; 48 | font-size: 2rem; 49 | margin-bottom: 1.25rem; 50 | margin-top: 2rem; 51 | padding-bottom: 0.5rem; 52 | } 53 | 54 | h3, h4, h5, h6 { 55 | font-size: 1.5rem; 56 | font-weight: bold; 57 | margin-bottom: 0.75rem; 58 | margin-top: 1.75rem; 59 | } 60 | 61 | h4 { 62 | font-size: 1.25rem; 63 | } 64 | 65 | h5 { 66 | font-size: 1.15rem; 67 | } 68 | 69 | h6 { 70 | font-size: 1rem; 71 | } 72 | 73 | img { 74 | display: block; 75 | max-width: 100%; 76 | } 77 | 78 | table { 79 | width: 100%; 80 | 81 | thead, 82 | tr { 83 | @include themer(border-bottom-color, ( 84 | 'dark': $site-ui-border-color-dark, 85 | 'light': $site-ui-border-color-light, 86 | )); 87 | 88 | border-bottom-style: solid; 89 | } 90 | 91 | thead { 92 | border-bottom-width: 2px; 93 | } 94 | 95 | tr { 96 | border-bottom-width: 1px; 97 | 98 | &:last-child { 99 | border-bottom: 0; 100 | } 101 | } 102 | 103 | td, 104 | th { 105 | padding: 0.5rem 0.25rem; 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /_includes/navigation.html: -------------------------------------------------------------------------------- 1 | 63 | -------------------------------------------------------------------------------- /documentation/markdown.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Markdown 4 | description: ~ 5 | --- 6 | 7 | An h1 header 8 | ============ 9 | 10 | Paragraphs are separated by a blank line. 11 | 12 | 2nd paragraph. *Italic*, **bold**, and `monospace`. Itemized lists 13 | look like: 14 | 15 | * this one 16 | * that one 17 | * the other one 18 | 19 | Note that --- not considering the asterisk --- the actual text 20 | content starts at 4-columns in. 21 | 22 | > Block quotes are 23 | > written like so. 24 | > 25 | > They can span multiple paragraphs, 26 | > if you like. 27 | 28 | Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all 29 | in chapters 12--14"). Three dots ... will be converted to an ellipsis. 30 | Unicode is supported. ☺ 31 | 32 | An h2 header 33 | ------------ 34 | 35 | Here's a numbered list: 36 | 37 | 1. first item 38 | 2. second item 39 | 3. third item 40 | 41 | Note again how the actual text starts at 4 columns in (4 characters 42 | from the left side). Here's a code sample: 43 | 44 | # Let me re-iterate ... 45 | for i in 1 .. 10 { do-something(i) } 46 | 47 | As you probably guessed, indented 4 spaces. By the way, instead of 48 | indenting the block, you can use delimited blocks, if you like: 49 | 50 | ~~~ 51 | define foobar() { 52 | print "Welcome to flavor country!"; 53 | } 54 | ~~~ 55 | 56 | (which makes copying & pasting easier). You can optionally mark the 57 | delimited block for Pandoc to syntax highlight it: 58 | 59 | ~~~python 60 | import time 61 | # Quick, count to ten! 62 | for i in range(10): 63 | # (but not *too* quick) 64 | time.sleep(0.5) 65 | print i 66 | ~~~ 67 | 68 | ### An h3 header ### 69 | 70 | Now a nested list: 71 | 72 | 1. First, get these ingredients: 73 | 74 | * carrots 75 | * celery 76 | * lentils 77 | 78 | 2. Boil some water. 79 | 80 | 3. Dump everything in the pot and follow 81 | this algorithm: 82 | 83 | find wooden spoon 84 | uncover pot 85 | stir 86 | cover pot 87 | balance wooden spoon precariously on pot handle 88 | wait 10 minutes 89 | goto first step (or shut off burner when done) 90 | 91 | Do not bump wooden spoon or it will fall. 92 | 93 | Notice again how text always lines up on 4-space indents (including 94 | that last line which continues item 3 above). 95 | 96 | Here's a link to [a website](http://foo.bar), to a [local 97 | doc](local-doc.html), and to a [section heading in the current 98 | doc](#an-h2-header). Here's a footnote [^1]. 99 | 100 | [^1]: Footnote text goes here. 101 | 102 | Tables can look like this: 103 | 104 | | size | material | color | 105 | |:-----|:------------|:------------| 106 | | 9 | leather | brown | 107 | | 10 | hemp canvas | natural | 108 | | 11 | glass | transparent | 109 | 110 | A horizontal rule follows. 111 | 112 | *** 113 | 114 | #### A definition list 115 | 116 | apples 117 | : Good for making applesauce. 118 | 119 | oranges 120 | : Citrus! 121 | 122 | tomatoes 123 | : There's no "e" in tomatoe. 124 | 125 | Again, text is indented 4 spaces. (Put a blank line between each term/definition pair to spread things out more.) 126 | 127 | ##### Images! 128 | 129 | Images can be specified like so: 130 | 131 | ![example image](https://i.picsum.photos/id/237/200/300.jpg) 132 | 133 | ###### A 6th level heading 134 | 135 | And notesubscript that you can backslash-escape any punctuation characters which you wish to be displayed literally, ex.: \`foo\`, \*bar\*, etc. 136 | -------------------------------------------------------------------------------- /_sass/abstracts/_highlight-dark.scss: -------------------------------------------------------------------------------- 1 | @mixin highlight-dark-theme() { 2 | // "Zenburn" Theme 3 | // https://github.com/jwarby/jekyll-pygments-themes 4 | 5 | .highlight .hll { 6 | background-color:#222; 7 | } 8 | 9 | .highlight .err { 10 | color:#e37170; 11 | background-color:#3d3535; 12 | } 13 | 14 | .highlight .k { 15 | color:#f0dfaf; 16 | } 17 | 18 | .highlight .p { 19 | color:#41706f; 20 | } 21 | 22 | .highlight .cs { 23 | color:#cd0000; 24 | font-weight:700; 25 | } 26 | 27 | .highlight .gd { 28 | color:#cd0000; 29 | } 30 | 31 | .highlight .ge { 32 | color:#ccc; 33 | font-style:italic; 34 | } 35 | 36 | .highlight .gr { 37 | color:red; 38 | } 39 | 40 | .highlight .go { 41 | color:gray; 42 | } 43 | 44 | .highlight .gs { 45 | color:#ccc; 46 | font-weight:700; 47 | } 48 | 49 | .highlight .gu { 50 | color:purple; 51 | font-weight:700; 52 | } 53 | 54 | .highlight .gt { 55 | color:#0040D0; 56 | } 57 | 58 | .highlight .kc { 59 | color:#dca3a3; 60 | } 61 | 62 | .highlight .kd { 63 | color:#ffff86; 64 | } 65 | 66 | .highlight .kn { 67 | color:#dfaf8f; 68 | font-weight:700; 69 | } 70 | 71 | .highlight .kp { 72 | color:#cdcf99; 73 | } 74 | 75 | .highlight .kr { 76 | color:#cdcd00; 77 | } 78 | 79 | .highlight .ni { 80 | color:#c28182; 81 | } 82 | 83 | .highlight .ne { 84 | color:#c3bf9f; 85 | font-weight:700; 86 | } 87 | 88 | .highlight .nn { 89 | color:#8fbede; 90 | } 91 | 92 | .highlight .vi { 93 | color:#ffffc7; 94 | } 95 | 96 | .highlight .c,.preview-zenburn .highlight .g,.preview-zenburn .highlight .cm,.preview-zenburn .highlight .cp,.preview-zenburn .highlight .c1 { 97 | color:#7f9f7f; 98 | } 99 | 100 | .highlight .l,.preview-zenburn .highlight .x,.preview-zenburn .highlight .no,.preview-zenburn .highlight .nd,.preview-zenburn .highlight .nl,.preview-zenburn .highlight .nx,.preview-zenburn .highlight .py,.preview-zenburn .highlight .w { 101 | color:#ccc; 102 | } 103 | 104 | .highlight .n,.preview-zenburn .highlight .nv,.preview-zenburn .highlight .vg { 105 | color:#dcdccc; 106 | } 107 | 108 | .highlight .o,.preview-zenburn .highlight .ow { 109 | color:#f0efd0; 110 | } 111 | 112 | .highlight .gh,.preview-zenburn .highlight .gp { 113 | color:#dcdccc; 114 | font-weight:700; 115 | } 116 | 117 | .highlight .gi,.preview-zenburn .highlight .kt { 118 | color:#00cd00; 119 | } 120 | 121 | .highlight .ld,.preview-zenburn .highlight .s,.preview-zenburn .highlight .sb,.preview-zenburn .highlight .sc,.preview-zenburn .highlight .sd,.preview-zenburn .highlight .s2,.preview-zenburn .highlight .se,.preview-zenburn .highlight .sh,.preview-zenburn .highlight .si,.preview-zenburn .highlight .sx,.preview-zenburn .highlight .sr,.preview-zenburn .highlight .s1,.preview-zenburn .highlight .ss { 122 | color:#cc9393; 123 | } 124 | 125 | .highlight .m,.preview-zenburn .highlight .mf,.preview-zenburn .highlight .mh,.preview-zenburn .highlight .mi,.preview-zenburn .highlight .mo,.preview-zenburn .highlight .il { 126 | color:#8cd0d3; 127 | } 128 | 129 | .highlight .na,.preview-zenburn .highlight .nt { 130 | color:#9ac39f; 131 | } 132 | 133 | .highlight .nb,.preview-zenburn .highlight .nc,.preview-zenburn .highlight .nf,.preview-zenburn .highlight .bp,.preview-zenburn .highlight .vc { 134 | color:#efef8f; 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /_sass/abstracts/_highlight-light.scss: -------------------------------------------------------------------------------- 1 | @mixin highlight-light-theme() { 2 | .hll { 3 | background-color: #ffc 4 | } 5 | 6 | .c { 7 | color: #999 8 | } 9 | 10 | .err { 11 | color: #A00; 12 | background-color: #FAA 13 | } 14 | 15 | .k { 16 | color: #069 17 | } 18 | 19 | .o { 20 | color: #555 21 | } 22 | 23 | .cm { 24 | color: #999 25 | } 26 | 27 | .cp { 28 | color: #099 29 | } 30 | 31 | .c1 { 32 | color: #999 33 | } 34 | 35 | .cs { 36 | color: #999 37 | } 38 | 39 | .gd { 40 | background-color: #FCC; 41 | border: 1px solid #C00 42 | } 43 | 44 | .ge { 45 | font-style: italic 46 | } 47 | 48 | .gr { 49 | color: red 50 | } 51 | 52 | .gh { 53 | color: #030 54 | } 55 | 56 | .gi { 57 | background-color: #CFC; 58 | border: 1px solid #0C0 59 | } 60 | 61 | .go { 62 | color: #AAA 63 | } 64 | 65 | .gp { 66 | color: #009 67 | } 68 | 69 | .gu { 70 | color: #030 71 | } 72 | 73 | .gt { 74 | color: #9C6 75 | } 76 | 77 | .kc { 78 | color: #069 79 | } 80 | 81 | .kd { 82 | color: #069 83 | } 84 | 85 | .kn { 86 | color: #069 87 | } 88 | 89 | .kp { 90 | color: #069 91 | } 92 | 93 | .kr { 94 | color: #069 95 | } 96 | 97 | .kt { 98 | color: #078 99 | } 100 | 101 | .m { 102 | color: #F60 103 | } 104 | 105 | .s { 106 | color: #d44950 107 | } 108 | 109 | .na { 110 | color: #4f9fcf 111 | } 112 | 113 | .nb { 114 | color: #366 115 | } 116 | 117 | .nc { 118 | color: #0A8 119 | } 120 | 121 | .no { 122 | color: #360 123 | } 124 | 125 | .nd { 126 | color: #99F 127 | } 128 | 129 | .ni { 130 | color: #999 131 | } 132 | 133 | .ne { 134 | color: #C00 135 | } 136 | 137 | .nf { 138 | color: #C0F 139 | } 140 | 141 | .nl { 142 | color: #99F 143 | } 144 | 145 | .nn { 146 | color: #0CF 147 | } 148 | 149 | .nt { 150 | color: #2f6f9f 151 | } 152 | 153 | .nv { 154 | color: #033 155 | } 156 | 157 | .ow { 158 | color: #000 159 | } 160 | 161 | .w { 162 | color: #bbb 163 | } 164 | 165 | .mf { 166 | color: #F60 167 | } 168 | 169 | .mh { 170 | color: #F60 171 | } 172 | 173 | .mi { 174 | color: #F60 175 | } 176 | 177 | .mo { 178 | color: #F60 179 | } 180 | 181 | .sb { 182 | color: #C30 183 | } 184 | 185 | .sc { 186 | color: #C30 187 | } 188 | 189 | .sd { 190 | color: #C30; 191 | font-style: italic 192 | } 193 | 194 | .s2 { 195 | color: #C30 196 | } 197 | 198 | .se { 199 | color: #C30 200 | } 201 | 202 | .sh { 203 | color: #C30 204 | } 205 | 206 | .si { 207 | color: #A00 208 | } 209 | 210 | .sx { 211 | color: #C30 212 | } 213 | 214 | .sr { 215 | color: #3AA 216 | } 217 | 218 | .s1 { 219 | color: #C30 220 | } 221 | 222 | .ss { 223 | color: #FC3 224 | } 225 | 226 | .bp { 227 | color: #366 228 | } 229 | 230 | .vc { 231 | color: #033 232 | } 233 | 234 | .vg { 235 | color: #033 236 | } 237 | 238 | .vi { 239 | color: #033 240 | } 241 | 242 | .il { 243 | color: #F60 244 | } 245 | 246 | .css .o, 247 | .css .o+.nt, 248 | .css .nt+.nt { 249 | color: #999 250 | } 251 | } 252 | -------------------------------------------------------------------------------- /documentation/config.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Theme Configuration 4 | --- 5 | 6 | This project can be configured to look and behave differently by toggling and setting options in your `_config.yml` file. All these options are optional and have defaults set in place if any of them are are not set. 7 | 8 | ## Project 9 | 10 | The project object can be specified with information related to the software this; this information will appear on the homepage's jumbotron area. 11 | 12 | ```yaml 13 | project: 14 | version: 1.0.0 15 | download_url: https://github.com/USER/PROJECT/releases 16 | ``` 17 | 18 | | Field | Description | 19 | |:---------------|:------------------------------------| 20 | | `version` | The current version of the software | 21 | | `download_url` | The URL to the current download | 22 | 23 | ## Licenses 24 | 25 | The license object accepts four fields regarding information about the licensing of your software and documentation. 26 | 27 | ```yaml 28 | license: 29 | software: MIT License 30 | software_url: http://opensource.org/licenses/MIT 31 | 32 | docs: CC BY 3.0 33 | docs_url: http://creativecommons.org/licenses/by/3.0/ 34 | ``` 35 | 36 | | Field | Description | 37 | |:---------------|:------------------------------------------------------------------| 38 | | `software` | The license the software is distributed under | 39 | | `software_url` | A URL to the license text for the license specified in `software` | 40 | | `docs` | The license this documentation is distributed under | 41 | | `docs_url` | A URL to the license text for the license specified in `docs` | 42 | 43 | ## Links 44 | 45 | The links object has two subobjects, `header` and `footer`; both of these objects accept an array of elements with a `title` and `url`. The links defined in the `header` object will appear in the navigation of the website and the links in the `footer` will appear at the bottom of the website. 46 | 47 | ```yaml 48 | links: 49 | header: 50 | - title: GitHub 51 | url: https://github.com/allejo/jekyll-docs-theme 52 | footer: 53 | - title: GitHub 54 | url: https://github.com/allejo/jekyll-docs-theme 55 | - title: Issues 56 | url: https://github.com/allejo/jekyll-docs-theme/issues?state=open 57 | ``` 58 | 59 | | Field | Description | 60 | |:--------|:--------------------------------------| 61 | | `title` | The textual representation of the URL | 62 | | `url` | The URL of the link | 63 | 64 | ## UI 65 | 66 | The ui object will contain all the settings in regards to the aesthetics of the website 67 | 68 | ```yaml 69 | ui: 70 | header: 71 | color1: "#080331" 72 | color2: "#673051" 73 | trianglify: true 74 | ``` 75 | 76 | | Field | Description | 77 | |:--------------------|:--------------------------------------------------------------------------| 78 | | `color1` & `color2` | The two colors that will create the gradient of the page header | 79 | | `trianglify` | When set to true, the page header will be a generated triangular pattern | 80 | 81 | ## Analytics 82 | 83 | ```yaml 84 | analytics: 85 | google: UA-123456-1 86 | ``` 87 | 88 | | Field | Description | 89 | |:---------|:------------------------------------------------------------------------------| 90 | | `google` | The unique identifier for Google Analytics; typically looks like `U-123456-1` | 91 | 92 | ## Social 93 | 94 | Options for configuring buttons to "like", "tweet" or "star" this site with the respective social media websites. 95 | 96 | ```yaml 97 | social: 98 | github: 99 | user: allejo 100 | repo: jekyll-docs-theme 101 | twitter: 102 | enabled: false 103 | via: 104 | hash: 105 | account: 106 | facebook: 107 | enabled: false 108 | profileUrl: 109 | ``` 110 | -------------------------------------------------------------------------------- /_includes/jekyll-docs-theme/vendor/anchor_headings.html: -------------------------------------------------------------------------------- 1 | {% capture headingsWorkspace %} 2 | {% comment %} 3 | Version 1.0.6 4 | https://github.com/allejo/jekyll-anchor-headings 5 | 6 | "Be the pull request you wish to see in the world." ~Ben Balter 7 | 8 | Usage: 9 | {% include anchor_headings.html html=content %} 10 | 11 | Parameters: 12 | * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll 13 | 14 | Optional Parameters: 15 | * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content 16 | * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `` tag; you may NOT use `href`, `class` or `title`; 17 | the `%heading%` placeholder is available 18 | * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available 19 | * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space 20 | * anchorTitle (string) : '' - The `title` attribute that will be used for anchors 21 | * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored 22 | * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored 23 | * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content 24 | * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content 25 | 26 | Output: 27 | The original HTML with the addition of anchors inside of all of the h1-h6 headings. 28 | {% endcomment %} 29 | 30 | {% assign minHeader = include.h_min | default: 1 %} 31 | {% assign maxHeader = include.h_max | default: 6 %} 32 | {% assign beforeHeading = include.beforeHeading %} 33 | {% assign nodes = include.html | split: ' 48 | {% if headerLevel == 0 %} 49 | 50 | {% assign firstChunk = node | split: '>' | first %} 51 | 52 | 53 | {% unless firstChunk contains '<' %} 54 | {% capture node %}' | first }}>{% endcapture %} 67 | {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} 68 | 69 | 70 | {% capture anchor %}{% endcapture %} 71 | 72 | {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %} 73 | {% capture anchor %}href="#{{ html_id }}"{% endcapture %} 74 | 75 | {% if include.anchorClass %} 76 | {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %} 77 | {% endif %} 78 | 79 | {% if include.anchorTitle %} 80 | {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %} 81 | {% endif %} 82 | 83 | {% if include.anchorAttrs %} 84 | {% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', header }}{% endcapture %} 85 | {% endif %} 86 | 87 | {% capture anchor %}{{ include.anchorBody | replace: '%heading%', header | default: '' }}{% endcapture %} 88 | 89 | 90 | {% if beforeHeading %} 91 | {% capture anchor %}{{ anchor }} {% endcapture %} 92 | {% else %} 93 | {% capture anchor %} {{ anchor }}{% endcapture %} 94 | {% endif %} 95 | {% endif %} 96 | 97 | {% capture new_heading %} 98 | maxHeader %} 55 | {% continue %} 56 | {% endif %} 57 | 58 | {% if firstHeader %} 59 | {% assign firstHeader = false %} 60 | {% assign minHeader = headerLevel %} 61 | {% endif %} 62 | 63 | {% assign indentAmount = headerLevel | minus: minHeader %} 64 | {% assign _workspace = node | split: '' | first }}>{% endcapture %} 79 | {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} 80 | 81 | {% assign space = '' %} 82 | {% for i in (1..indentAmount) %} 83 | {% assign space = space | prepend: ' ' %} 84 | {% endfor %} 85 | 86 | {% if include.item_class and include.item_class != blank %} 87 | {% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %} 88 | {% endif %} 89 | 90 | {% capture anchor_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %} 91 | {% capture anchor_body %}{{ anchor_body | replace: "|", "\|" }}{% endcapture %} 92 | 93 | {% if html_id %} 94 | {% capture list_item %}[{{ anchor_body }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% endcapture %} 95 | {% else %} 96 | {% capture list_item %}{{ anchor_body }}{% endcapture %} 97 | {% endif %} 98 | 99 | {% capture my_toc %}{{ my_toc }} 100 | {{ space }}{{ listModifier }} {{ listItemClass }} {{ list_item }}{% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %} 101 | {% endfor %} 102 | 103 | {% if include.class and include.class != blank %} 104 | {% capture my_toc %}{:.{{ include.class }}} 105 | {{ my_toc | lstrip }}{% endcapture %} 106 | {% endif %} 107 | 108 | {% if include.id %} 109 | {% capture my_toc %}{: #{{ include.id }}} 110 | {{ my_toc | lstrip }}{% endcapture %} 111 | {% endif %} 112 | {% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }} 113 | -------------------------------------------------------------------------------- /_includes/footer/content.html: -------------------------------------------------------------------------------- 1 |
2 | {% if site.social %} 3 | 75 | {% endif %} 76 | 77 | 137 |
138 | -------------------------------------------------------------------------------- /_sass/utilities/_colors.scss: -------------------------------------------------------------------------------- 1 | // Calculate the luminance for a color. 2 | // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests 3 | @function luminance($color) { 4 | $red: nth($linear-channel-values, red($color) + 1); 5 | $green: nth($linear-channel-values, green($color) + 1); 6 | $blue: nth($linear-channel-values, blue($color) + 1); 7 | 8 | @return .2126 * $red + .7152 * $green + .0722 * $blue; 9 | } 10 | 11 | // Calculate the contrast ratio between two colors. 12 | // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests 13 | @function contrast($back, $front) { 14 | $backLum: luminance($back) + .05; 15 | $foreLum: luminance($front) + .05; 16 | 17 | @return max($backLum, $foreLum) / min($backLum, $foreLum); 18 | } 19 | 20 | // Determine whether to use dark or light text on top of given color. 21 | // Returns black for dark text and white for light text. 22 | @function choose-contrast-color($color) { 23 | $lightContrast: contrast($color, white); 24 | $darkContrast: contrast($color, black); 25 | 26 | @if ($lightContrast > $darkContrast) { 27 | @return white; 28 | } 29 | @else { 30 | @return black; 31 | } 32 | } 33 | 34 | // Precomputed linear color channel values, for use in contrast calculations. 35 | // See https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests 36 | // 37 | // Algorithm, for c in 0 to 255: 38 | // f(c) { 39 | // c = c / 255; 40 | // return c < 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4); 41 | // } 42 | // 43 | // This lookup table is needed since there is no `pow` in SASS. 44 | $linear-channel-values: 45 | 0 46 | .0003035269835488375 47 | .000607053967097675 48 | .0009105809506465125 49 | .00121410793419535 50 | .0015176349177441874 51 | .001821161901293025 52 | .0021246888848418626 53 | .0024282158683907 54 | .0027317428519395373 55 | .003035269835488375 56 | .003346535763899161 57 | .003676507324047436 58 | .004024717018496307 59 | .004391442037410293 60 | .004776953480693729 61 | .005181516702338386 62 | .005605391624202723 63 | .006048833022857054 64 | .006512090792594475 65 | .006995410187265387 66 | .007499032043226175 67 | .008023192985384994 68 | .008568125618069307 69 | .009134058702220787 70 | .00972121732023785 71 | .010329823029626936 72 | .010960094006488246 73 | .011612245179743885 74 | .012286488356915872 75 | .012983032342173012 76 | .013702083047289686 77 | .014443843596092545 78 | .01520851442291271 79 | .01599629336550963 80 | .016807375752887384 81 | .017641954488384078 82 | .018500220128379697 83 | .019382360956935723 84 | .0202885630566524 85 | .021219010376003555 86 | .022173884793387385 87 | .02315336617811041 88 | .024157632448504756 89 | .02518685962736163 90 | .026241221894849898 91 | .027320891639074894 92 | .028426039504420793 93 | .0295568344378088 94 | .030713443732993635 95 | .03189603307301153 96 | .033104766570885055 97 | .03433980680868217 98 | .03560131487502034 99 | .03688945040110004 100 | .0382043715953465 101 | .03954623527673284 102 | .04091519690685319 103 | .042311410620809675 104 | .043735029256973465 105 | .04518620438567554 106 | .046665086336880095 107 | .04817182422688942 108 | .04970656598412723 109 | .05126945837404324 110 | .052860647023180246 111 | .05448027644244237 112 | .05612849004960009 113 | .05780543019106723 114 | .0595112381629812 115 | .06124605423161761 116 | .06301001765316767 117 | .06480326669290577 118 | .06662593864377289 119 | .06847816984440017 120 | .07036009569659588 121 | .07227185068231748 122 | .07421356838014963 123 | .07618538148130785 124 | .07818742180518633 125 | .08021982031446832 126 | .0822827071298148 127 | .08437621154414882 128 | .08650046203654976 129 | .08865558628577294 130 | .09084171118340768 131 | .09305896284668745 132 | .0953074666309647 133 | .09758734714186246 134 | .09989872824711389 135 | .10224173308810132 136 | .10461648409110419 137 | .10702310297826761 138 | .10946171077829933 139 | .1119324278369056 140 | .11443537382697373 141 | .11697066775851084 142 | .11953842798834562 143 | .12213877222960187 144 | .12477181756095049 145 | .12743768043564743 146 | .1301364766903643 147 | .13286832155381798 148 | .13563332965520566 149 | .13843161503245183 150 | .14126329114027164 151 | .14412847085805777 152 | .14702726649759498 153 | .14995978981060856 154 | .15292615199615017 155 | .1559264637078274 156 | .1589608350608804 157 | .162029375639111 158 | .1651321945016676 159 | .16826940018969075 160 | .1714411007328226 161 | .17464740365558504 162 | .17788841598362912 163 | .18116424424986022 164 | .184474994500441 165 | .18782077230067787 166 | .19120168274079138 167 | .1946178304415758 168 | .19806931955994886 169 | .20155625379439707 170 | .20507873639031693 171 | .20863687014525575 172 | .21223075741405523 173 | .21586050011389926 174 | .2195261997292692 175 | .2232279573168085 176 | .22696587351009836 177 | .23074004852434915 178 | .23455058216100522 179 | .238397573812271 180 | .24228112246555486 181 | .24620132670783548 182 | .25015828472995344 183 | .25415209433082675 184 | .2581828529215958 185 | .26225065752969623 186 | .26635560480286247 187 | .2704977910130658 188 | .27467731206038465 189 | .2788942634768104 190 | .2831487404299921 191 | .2874408377269175 192 | .29177064981753587 193 | .2961382707983211 194 | .3005437944157765 195 | .3049873140698863 196 | .30946892281750854 197 | .31398871337571754 198 | .31854677812509186 199 | .32314320911295075 200 | .3277780980565422 201 | .33245153634617935 202 | .33716361504833037 203 | .3419144249086609 204 | .3467040563550296 205 | .35153259950043936 206 | .3564001441459435 207 | .3613067797835095 208 | .3662525955988395 209 | .3712376804741491 210 | .3762621229909065 211 | .38132601143253014 212 | .386429433787049 213 | .39157247774972326 214 | .39675523072562685 215 | .4019777798321958 216 | .4072402119017367 217 | .41254261348390375 218 | .4178850708481375 219 | .4232676699860717 220 | .4286904966139066 221 | .43415363617474895 222 | .4396571738409188 223 | .44520119451622786 224 | .45078578283822346 225 | .45641102318040466 226 | .4620769996544071 227 | .467783796112159 228 | .47353149614800955 229 | .4793201831008268 230 | .4851499400560704 231 | .4910208498478356 232 | .4969329950608704 233 | .5028864580325687 234 | .5088813208549338 235 | .5149176653765214 236 | .5209955732043543 237 | .5271151257058131 238 | .5332764040105052 239 | .5394794890121072 240 | .5457244613701866 241 | .5520114015120001 242 | .5583403896342679 243 | .5647115057049292 244 | .5711248294648731 245 | .5775804404296506 246 | .5840784178911641 247 | .5906188409193369 248 | .5972017883637634 249 | .6038273388553378 250 | .6104955708078648 251 | .6172065624196511 252 | .6239603916750761 253 | .6307571363461468 254 | .6375968739940326 255 | .6444796819705821 256 | .6514056374198242 257 | .6583748172794485 258 | .665387298282272 259 | .6724431569576875 260 | .6795424696330938 261 | .6866853124353135 262 | .6938717612919899 263 | .7011018919329731 264 | .7083757798916868 265 | .7156935005064807 266 | .7230551289219693 267 | .7304607400903537 268 | .7379104087727308 269 | .7454042095403874 270 | .7529422167760779 271 | .7605245046752924 272 | .768151147247507 273 | .7758222183174236 274 | .7835377915261935 275 | .7912979403326302 276 | .799102738014409 277 | .8069522576692516 278 | .8148465722161012 279 | .8227857543962835 280 | .8307698767746546 281 | .83879901174074 282 | .846873231509858 283 | .8549926081242338 284 | .8631572134541023 285 | .8713671191987972 286 | .8796223968878317 287 | .8879231178819663 288 | .8962693533742664 289 | .9046611743911496 290 | .9130986517934192 291 | .9215818562772946 292 | .9301108583754237 293 | .938685728457888 294 | .9473065367331999 295 | .9559733532492861 296 | .9646862478944651 297 | .9734452903984125 298 | .9822505503331171 299 | .9911020971138298 300 | 1 301 | ; 302 | --------------------------------------------------------------------------------