├── _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 |
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 |
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 | Please enable JavaScript to view the comments powered by Disqus.
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 | [](https://rubygems.org/gems/jekyll-docs-theme)
4 | [](https://github.com/allejo/jekyll-docs-theme/releases)
5 | [](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 | 
16 |
17 | **Dark Mode**
18 |
19 | 
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 |
18 | Hide
19 |
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 |
2 |
3 |
{{ site.name }}
4 |
5 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | {% assign sorted_pages = site.pages | sort: "title" %}
22 | {% for p in sorted_pages %}
23 | {% assign is_homepage = false %}
24 | {% if p.homepage == true or p.isHome == true %}
25 | {% assign is_homepage = true %}
26 | {% endif %}
27 |
28 | {% assign show_in_menu = true %}
29 | {% if p.show_in_menu != nil and p.show_in_menu == false %}
30 | {% assign show_in_menu = false %}
31 | {% elsif p.hide != nil and p.hide == true %}
32 | {% assign show_in_menu = false %}
33 | {% endif %}
34 |
35 | {% if is_homepage != true and show_in_menu == true and p.title %}
36 |
37 |
41 | {{ p.title }}
42 |
43 |
44 | {% endif %}
45 | {% endfor %}
46 |
47 |
60 |
61 |
62 |
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 | 
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 |
78 |
79 |
80 | {% if site.links.footer %}
81 |
97 | {% endif %}
98 |
99 |
100 |
101 | {% if site.license %}
102 |
133 | {% endif %}
134 |
135 |
136 |
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 |
--------------------------------------------------------------------------------