open-source-documentation-jekyll-theme 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +20 -0
- data/LICENSE +16 -0
- data/README.md +134 -0
- data/_layouts/default.html +195 -0
- data/assets/css/highlight-js.min.css +7 -0
- data/assets/css/stylesheet.css +112 -0
- data/assets/css/stylesheet.min.css +5 -0
- data/assets/images/avatar.png +0 -0
- data/assets/images/cover/forest.jpg +0 -0
- data/assets/images/cover/mountains.jpg +0 -0
- data/assets/images/installs-badge.png +0 -0
- data/assets/images/patreon-badge.png +0 -0
- data/assets/js/highlight-js.min.js +1244 -0
- data/assets/js/javascript.js +80 -0
- data/assets/js/javascript.min.js +1 -0
- metadata +92 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 4dd75823dbf82183f77e41b275c70dc646d836f016d4a32bca7a97aba54a7704
|
|
4
|
+
data.tar.gz: 8dc0f7837268c42be5ca4e1d64a74b108c47441280188bb7946e1871826892ed
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c8c33cfc8cb52876fd631d2d63c4a238181ff88beeeadfbaaa33475c1afe0723f20b058143d2532490da719c524e7499caf629c83eed9dd7f3dab866094e865a
|
|
7
|
+
data.tar.gz: 8decfd233ea6981277646bea19d5e872143c729d0f532c496f574f7b945e381cdb47dd7963bdbb2fe93aaba4daeac3cd5ddca7b91ce4cceda5be98611edf0407
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the [Open Source Documentation (Jekyll Theme)](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme) will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/) and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
## [v1.1.0](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/releases/tag/v1.1.0) (June 27, 2026)
|
|
8
|
+
* Added Open Graph and Twitter Card meta tags, configurable at the site or page level, via the new `image`, `twitter_site`/`twitter_creator` site options and the new `image` and `og_type` page options
|
|
9
|
+
* Added page-level `description` support so a page can override the site description for its meta description and social tags
|
|
10
|
+
* Added page-level `keywords` support so a page can override the site keywords in its meta tags
|
|
11
|
+
* Added an optional `nav` site option for navigation links that are not tied to a page, merged with page-based links and sorted together by `nav_order`
|
|
12
|
+
* Limited the social links aside to the first ten entries so the icon grid stays intact
|
|
13
|
+
* Changed syntax highlighting to be self-hosted instead of loaded from a CDN — highlight.js is now vendored from the `@highlightjs/cdn-assets` npm package and built with gulp, with the styles stripped to colour, weight and style declarations so they cannot conflict with the stylesheet
|
|
14
|
+
* Added support for older browsers via cross-browser JavaScript fallbacks
|
|
15
|
+
* Added automated install tracking with an installs badge and a generated `INSTALLS.md` report
|
|
16
|
+
* Hardened HTML output by escaping interpolated configuration values (titles, descriptions, labels and URLs) to prevent broken markup from special characters
|
|
17
|
+
* Added support for installing the theme as a RubyGem in addition to `remote_theme`
|
|
18
|
+
|
|
19
|
+
## [v1.0.0](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/releases/tag/v1.0.0) (June 14, 2026)
|
|
20
|
+
* Initial release of the theme
|
data/LICENSE
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Andrew G. Johnson <andrew@andrewgjohnson.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
6
|
+
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
|
|
7
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
+
persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
|
|
11
|
+
Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
14
|
+
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
15
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
16
|
+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Open Source Documentation (Jekyll Theme)
|
|
2
|
+
|
|
3
|
+
[](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/blob/main/LICENSE)
|
|
4
|
+
[](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/releases)
|
|
5
|
+
[](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/issues)
|
|
6
|
+
[](INSTALLS.md)
|
|
7
|
+
[](https://patreon.com/agjopensource)
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme" title="Open Source Documentation (Jekyll Theme)">
|
|
11
|
+
<img src="assets/images/avatar.png" width="400" alt="Open Source Documentation (Jekyll Theme)" />
|
|
12
|
+
</a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
## Description
|
|
16
|
+
|
|
17
|
+
**Open Source Documentation (Jekyll Theme)** is a shared Jekyll theme started by [Andrew G. Johnson](https://github.com/andrewgjohnson) for open source documentation.
|
|
18
|
+
|
|
19
|
+
## Usage/Installation
|
|
20
|
+
|
|
21
|
+
The theme can be used as a RubyGem or via `remote_theme`.
|
|
22
|
+
|
|
23
|
+
### As a gem
|
|
24
|
+
|
|
25
|
+
Add to your `Gemfile`:
|
|
26
|
+
|
|
27
|
+
```ruby
|
|
28
|
+
gem "open-source-documentation-jekyll-theme"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
And to your `_config.yml`:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
theme: open-source-documentation-jekyll-theme
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Via `remote_theme` (e.g. GitHub Pages)
|
|
38
|
+
|
|
39
|
+
```yaml
|
|
40
|
+
remote_theme: andrewgjohnson/open-source-documentation-jekyll-theme
|
|
41
|
+
plugins:
|
|
42
|
+
- jekyll-remote-theme
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Variables
|
|
46
|
+
|
|
47
|
+
### Site config (`_config.yml`)
|
|
48
|
+
|
|
49
|
+
| Variable | Required | Description |
|
|
50
|
+
|----------|----------|-------------|
|
|
51
|
+
| `name` | yes | Project name displayed in the wordmark and social links aside |
|
|
52
|
+
| `title` | yes | Site title used in `<title>` and keywords meta tag |
|
|
53
|
+
| `description` | yes | Site description used in meta tags; overridable per page with page-level `description` |
|
|
54
|
+
| `favicon` | no | URL of the favicon |
|
|
55
|
+
| `image` | no | Absolute URL of the default Open Graph / Twitter share image |
|
|
56
|
+
| `twitter_site` | no | Twitter/X `@handle` for the site, emitted as `twitter:site` |
|
|
57
|
+
| `twitter_creator` | no | Twitter/X `@handle` for the author, emitted as `twitter:creator` |
|
|
58
|
+
| `cover_image` | no | Filename (without extension) of a bundled cover image — `mountains` or `forest` |
|
|
59
|
+
| `cover_image_url` | no | Absolute URL of a custom cover image, takes precedence over `cover_image` |
|
|
60
|
+
| `menu_url` | no | URL for the menu toggle link — if omitted the toggle renders as a `<span>` instead of `<a>` |
|
|
61
|
+
| `keywords` | no | Comma-separated keywords prepended to the auto-generated keywords meta tag |
|
|
62
|
+
| `social_links` | no | Array of social links shown in the aside — each entry has `platform`, `url`, and `label` fields |
|
|
63
|
+
| `nav` | no | Array of navigation links not tied to a page — each entry has `url`, `label`, and `nav_order`. Merged with page-based nav links and sorted together by `nav_order` |
|
|
64
|
+
| `footer_text` | no | Text displayed in the footer before the copyright notice |
|
|
65
|
+
| `footer_url` | no | Absolute URL that wraps `footer_text` as a link — only used when `footer_text` is also set |
|
|
66
|
+
| `copyright_year_start` | no | Four-digit year the project was first released (e.g. `2013`) — when set and different from the current year, renders as a year range |
|
|
67
|
+
| `syntax_highlighting` | no | Set to `true` to include highlight.js CSS and JS |
|
|
68
|
+
| `custom_head` | no | Raw HTML injected at the end of `<head>` |
|
|
69
|
+
| `custom_body` | no | Raw HTML injected at the end of `<body>` |
|
|
70
|
+
|
|
71
|
+
#### `social_links` example
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
social_links:
|
|
75
|
+
- platform: github
|
|
76
|
+
url: https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme
|
|
77
|
+
label: GitHub Repository
|
|
78
|
+
- platform: facebook
|
|
79
|
+
url: https://www.facebook.com/andrewgjohnson
|
|
80
|
+
label: Facebook Profile
|
|
81
|
+
- platform: homepage
|
|
82
|
+
url: https://www.andrewgjohnson.com/
|
|
83
|
+
label: Personal Homepage
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Supported platforms: `bluesky`, `codepen`, `dev`, `discord`, `facebook`, `github`, `gitlab`, `instagram`, `linkedin`, `mastodon`, `npm`, `packagist`, `patreon`, `reddit`, `slack`, `stackoverflow`, `threads`, `tiktok`, `twitch`, `twitter`, `x` and `youtube`. Any unrecognized platform will render a generic link icon.
|
|
87
|
+
|
|
88
|
+
#### `nav` example
|
|
89
|
+
|
|
90
|
+
Extra links (typically external) that appear in the main navigation alongside pages, ordered by `nav_order`:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
nav:
|
|
94
|
+
- url: https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme
|
|
95
|
+
label: GitHub
|
|
96
|
+
nav_order: 101
|
|
97
|
+
- url: https://example.com/changelog/
|
|
98
|
+
label: Changelog
|
|
99
|
+
nav_order: 102
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Page-based links use the page's `nav_order`; `nav` links use their own. Because both share a single ordering you can interleave them. Unlike page links, `nav` URLs are used verbatim (no `baseurl` is prepended), so use absolute URLs.
|
|
103
|
+
|
|
104
|
+
### Page frontmatter
|
|
105
|
+
|
|
106
|
+
| Variable | Required | Description |
|
|
107
|
+
|----------|----------|-------------|
|
|
108
|
+
| `nav_order` | no | Integer controlling this page’s position in the navigation — pages without this set are excluded from the nav entirely |
|
|
109
|
+
| `nav_text` | no | Label for this page’s navigation link — required when `nav_order` is set |
|
|
110
|
+
| `canonical` | no | Canonical URL injected as `<link rel="canonical">` in `<head>` |
|
|
111
|
+
| `description` | no | Overrides `site.description` for this page (meta description + Open Graph/Twitter) |
|
|
112
|
+
| `image` | no | Absolute URL of this page’s share image — overrides `site.image` |
|
|
113
|
+
| `og_type` | no | Open Graph `og:type` for this page (defaults to `website`; use `article` for posts) |
|
|
114
|
+
|
|
115
|
+
## Layout
|
|
116
|
+
|
|
117
|
+
The theme provides a single `default` layout. Used by setting `layout: default` in the page frontmatter.
|
|
118
|
+
|
|
119
|
+
## Projects using this theme
|
|
120
|
+
|
|
121
|
+
You can see projects currently using this theme in the [INSTALLS.md](INSTALLS.md) file.
|
|
122
|
+
|
|
123
|
+
## Acknowledgements
|
|
124
|
+
|
|
125
|
+
This theme was started by [Andrew G. Johnson (@andrewgjohnson)](https://github.com/andrewgjohnson).
|
|
126
|
+
|
|
127
|
+
Full list of contributors:
|
|
128
|
+
* [Andrew G. Johnson (@andrewgjohnson)](https://github.com/andrewgjohnson)
|
|
129
|
+
|
|
130
|
+
Our [security policies and procedures](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/blob/main/.github/SECURITY.md) come via the [atomist/samples](https://github.com/atomist/samples/blob/master/SECURITY.md) project. Our [issue templates](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/tree/main/.github/ISSUE_TEMPLATE) come via the [tensorflow/tensorflow](https://github.com/tensorflow/tensorflow/tree/master/.github/ISSUE_TEMPLATE) project. Our [pull request template](https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/blob/main/.github/PULL_REQUEST_TEMPLATE.md) comes via the [stevemao/github-issue-templates](https://github.com/stevemao/github-issue-templates) project. The [mountains photo](https://unsplash.com/photos/qJvpykJ5SKs) comes via [Gabriel Garcia Marengo](https://unsplash.com/@gabrielgm). The [forest photo](https://unsplash.com/photos/RfTD9NoLMEE) comes via [Radek Homola](https://unsplash.com/@radekhomola).
|
|
131
|
+
|
|
132
|
+
## Changelog
|
|
133
|
+
|
|
134
|
+
You can find all notable changes in the [changelog](CHANGELOG.md).
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!--
|
|
3
|
+
/**
|
|
4
|
+
* Open Source Documentation (Jekyll Theme)
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2026 Andrew G. Johnson <andrew@andrewgjohnson.com>
|
|
7
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
8
|
+
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
|
|
9
|
+
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
* permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
11
|
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
|
|
12
|
+
* Software.
|
|
13
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
14
|
+
* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
15
|
+
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
16
|
+
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
17
|
+
*
|
|
18
|
+
* @category AndrewGJohnson
|
|
19
|
+
* @package Open Source Documentation (Jekyll Theme)
|
|
20
|
+
* @author Andrew G. Johnson <andrew@andrewgjohnson.com>
|
|
21
|
+
* @copyright 2026 Andrew G. Johnson <andrew@andrewgjohnson.com>
|
|
22
|
+
* @license https://opensource.org/licenses/mit/ The MIT License
|
|
23
|
+
* @link https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme
|
|
24
|
+
*/
|
|
25
|
+
-->
|
|
26
|
+
<html lang="en">
|
|
27
|
+
<head>
|
|
28
|
+
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
|
29
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
30
|
+
{% assign meta_title = page.title | default: site.title %}
|
|
31
|
+
{% assign meta_description = page.description | default: site.description %}
|
|
32
|
+
{% assign meta_keywords = page.keywords | default: site.keywords %}
|
|
33
|
+
{% assign meta_image = page.image | default: site.image %}
|
|
34
|
+
{% assign meta_url = page.canonical | default: page.url | absolute_url %}
|
|
35
|
+
<title>{{ meta_title | escape }}</title>
|
|
36
|
+
<meta name="description" content="{{ meta_description | escape }}" />
|
|
37
|
+
<meta name="keywords" content="{% if meta_keywords %}{{ meta_keywords | escape }},{% endif %}{% if page.title %}{{ page.title | escape }},{% endif %}{% if site.title %}{{ site.title | escape }}{% endif %}" />
|
|
38
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
39
|
+
<link rel="shortcut icon" href="{{ site.favicon | escape }}" />
|
|
40
|
+
<link rel="icon" href="{{ site.favicon | escape }}" />
|
|
41
|
+
{% if page.canonical %}
|
|
42
|
+
<link rel="canonical" href="{{ page.canonical | escape }}" />
|
|
43
|
+
{% endif %}
|
|
44
|
+
<meta property="og:type" content="{{ page.og_type | default: 'website' | escape }}" />
|
|
45
|
+
<meta property="og:site_name" content="{{ site.name | escape }}" />
|
|
46
|
+
<meta property="og:title" content="{{ meta_title | escape }}" />
|
|
47
|
+
<meta property="og:description" content="{{ meta_description | escape }}" />
|
|
48
|
+
<meta property="og:url" content="{{ meta_url | escape }}" />
|
|
49
|
+
{% if meta_image %}
|
|
50
|
+
<meta property="og:image" content="{{ meta_image | absolute_url | escape }}" />
|
|
51
|
+
{% endif %}
|
|
52
|
+
<meta name="twitter:card" content="{% if meta_image %}summary_large_image{% else %}summary{% endif %}" />
|
|
53
|
+
<meta name="twitter:title" content="{{ meta_title | escape }}" />
|
|
54
|
+
<meta name="twitter:description" content="{{ meta_description | escape }}" />
|
|
55
|
+
{% if meta_image %}
|
|
56
|
+
<meta name="twitter:image" content="{{ meta_image | absolute_url | escape }}" />
|
|
57
|
+
{% endif %}
|
|
58
|
+
{% assign twitter_site = page.twitter_site | default: site.twitter_site %}
|
|
59
|
+
{% if twitter_site %}
|
|
60
|
+
<meta name="twitter:site" content="{{ twitter_site | escape }}" />
|
|
61
|
+
{% endif %}
|
|
62
|
+
{% assign twitter_creator = page.twitter_creator | default: site.twitter_creator %}
|
|
63
|
+
{% if twitter_creator %}
|
|
64
|
+
<meta name="twitter:creator" content="{{ twitter_creator | escape }}" />
|
|
65
|
+
{% endif %}
|
|
66
|
+
{% if jekyll.environment == "production" %}
|
|
67
|
+
<link rel="stylesheet" href="{{ '/assets/css/stylesheet.min.css' | prepend: site.baseurl }}?_={{ site.time | date: '%Y%m%d%H%M%S' }}" />
|
|
68
|
+
{% else %}
|
|
69
|
+
<link rel="stylesheet" href="{{ '/assets/css/stylesheet.css' | prepend: site.baseurl }}" />
|
|
70
|
+
{% endif %}
|
|
71
|
+
{% if site.cover_image_url %}
|
|
72
|
+
<style>#cover-image { background-image:url("{{ site.cover_image_url | uri_escape }}") }</style>
|
|
73
|
+
{% elsif site.cover_image %}
|
|
74
|
+
<style>#cover-image { background-image:url("{{ '/assets/images/cover/' | append: site.cover_image | append: '.jpg' | prepend: site.baseurl | uri_escape }}") }</style>
|
|
75
|
+
{% endif %}
|
|
76
|
+
{% if site.syntax_highlighting %}
|
|
77
|
+
<link rel="stylesheet" href="{{ '/assets/css/highlight-js.min.css' | prepend: site.baseurl }}?_={{ site.time | date: '%Y%m%d%H%M%S' }}" />
|
|
78
|
+
{% endif %}
|
|
79
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css" integrity="sha512-2SwdPD6INVrV/lHTZbO2nodKhrnDdJK9/kg2XD1r9uGqPo1cUbujc+IYdlYdEErWNu69gVcYgdxlmVmzTWnetw==" crossorigin="anonymous" />
|
|
80
|
+
{% if site.custom_head %}
|
|
81
|
+
{{ site.custom_head }}
|
|
82
|
+
{% endif %}
|
|
83
|
+
</head>
|
|
84
|
+
<body>
|
|
85
|
+
<div id="container">
|
|
86
|
+
<main>
|
|
87
|
+
{{ content }}
|
|
88
|
+
</main>
|
|
89
|
+
{% if site.social_links %}
|
|
90
|
+
<aside aria-label="Social links">
|
|
91
|
+
{% assign social_limit = 10 %}
|
|
92
|
+
{% assign social_count = site.social_links | size %}
|
|
93
|
+
{% if social_count > social_limit %}
|
|
94
|
+
{% assign social_count = social_limit %}
|
|
95
|
+
{% endif %}
|
|
96
|
+
<div id="aside" class="aside-{{ social_count }}">
|
|
97
|
+
<p>Follow <strong>{{ site.name | escape }}</strong> online</p>
|
|
98
|
+
<ul>
|
|
99
|
+
{% for social_link in site.social_links limit: social_limit %}
|
|
100
|
+
<li>
|
|
101
|
+
<a href="{{ social_link.url | escape }}" title="{{ social_link.label | escape }}">
|
|
102
|
+
<span>{{ social_link.label | escape }}</span>
|
|
103
|
+
{% case social_link.platform %}
|
|
104
|
+
{% when 'bluesky' %}<i class="fab fa-bluesky" aria-hidden="true"></i>
|
|
105
|
+
{% when 'codepen' %}<i class="fab fa-codepen" aria-hidden="true"></i>
|
|
106
|
+
{% when 'dev' %}<i class="fab fa-dev" aria-hidden="true"></i>
|
|
107
|
+
{% when 'discord' %}<i class="fab fa-discord" aria-hidden="true"></i>
|
|
108
|
+
{% when 'facebook' %}<i class="fab fa-facebook" aria-hidden="true"></i>
|
|
109
|
+
{% when 'github' %}<i class="fab fa-github" aria-hidden="true"></i>
|
|
110
|
+
{% when 'gitlab' %}<i class="fab fa-gitlab" aria-hidden="true"></i>
|
|
111
|
+
{% when 'instagram' %}<i class="fab fa-instagram" aria-hidden="true"></i>
|
|
112
|
+
{% when 'linkedin' %}<i class="fab fa-linkedin" aria-hidden="true"></i>
|
|
113
|
+
{% when 'mastodon' %}<i class="fab fa-mastodon" aria-hidden="true"></i>
|
|
114
|
+
{% when 'npm' %}<i class="fab fa-npm" aria-hidden="true"></i>
|
|
115
|
+
{% when 'packagist' %}<i class="fa-solid fa-box-open" aria-hidden="true"></i>
|
|
116
|
+
{% when 'patreon' %}<i class="fab fa-patreon" aria-hidden="true"></i>
|
|
117
|
+
{% when 'reddit' %}<i class="fab fa-reddit" aria-hidden="true"></i>
|
|
118
|
+
{% when 'slack' %}<i class="fab fa-slack" aria-hidden="true"></i>
|
|
119
|
+
{% when 'stackoverflow' %}<i class="fab fa-stack-overflow" aria-hidden="true"></i>
|
|
120
|
+
{% when 'threads' %}<i class="fab fa-threads" aria-hidden="true"></i>
|
|
121
|
+
{% when 'tiktok' %}<i class="fab fa-tiktok" aria-hidden="true"></i>
|
|
122
|
+
{% when 'twitch' %}<i class="fab fa-twitch" aria-hidden="true"></i>
|
|
123
|
+
{% when 'twitter' %}<i class="fab fa-twitter" aria-hidden="true"></i>
|
|
124
|
+
{% when 'x' %}<i class="fab fa-x-twitter" aria-hidden="true"></i>
|
|
125
|
+
{% when 'youtube' %}<i class="fab fa-youtube" aria-hidden="true"></i>
|
|
126
|
+
{% else %}<i class="fa-solid fa-link" aria-hidden="true"></i>
|
|
127
|
+
{% endcase %}
|
|
128
|
+
</a>
|
|
129
|
+
</li>
|
|
130
|
+
{% endfor %}
|
|
131
|
+
</ul>
|
|
132
|
+
</div>
|
|
133
|
+
</aside>
|
|
134
|
+
{% endif %}
|
|
135
|
+
</div>
|
|
136
|
+
<header>
|
|
137
|
+
<div id="header">
|
|
138
|
+
<div id="header-inner">
|
|
139
|
+
{% assign nav_items = site.pages | where_exp: "item", "item.nav_order != nil" %}
|
|
140
|
+
{% if site.nav %}
|
|
141
|
+
{% assign nav_items = nav_items | concat: site.nav %}
|
|
142
|
+
{% endif %}
|
|
143
|
+
{% assign nav_items = nav_items | sort: 'nav_order' %}
|
|
144
|
+
<p>
|
|
145
|
+
<a href="{{ '/' | prepend: site.baseurl }}" title="{{ site.name | escape }}" id="wordmark">{{ site.name | escape }}</a>
|
|
146
|
+
{% if nav_items.size > 0 %}
|
|
147
|
+
{% if site.menu_url %}
|
|
148
|
+
<a href="{{ site.menu_url | prepend: site.baseurl | escape }}" title="Menu" id="menu-toggle" aria-expanded="false" aria-controls="nav">Menu</a>
|
|
149
|
+
{% else %}
|
|
150
|
+
<span title="Menu" id="menu-toggle" role="button" tabindex="0" aria-expanded="false" aria-controls="nav">Menu</span>
|
|
151
|
+
{% endif %}
|
|
152
|
+
{% endif %}
|
|
153
|
+
</p>
|
|
154
|
+
{% if nav_items.size > 0 %}
|
|
155
|
+
<nav aria-label="Main navigation" id="nav">
|
|
156
|
+
<ul>
|
|
157
|
+
{% for nav_item in nav_items %}
|
|
158
|
+
{% assign nav_text = nav_item.nav_text | default: nav_item.title %}
|
|
159
|
+
<li>
|
|
160
|
+
<a href="{{ nav_item.url | relative_url | escape }}" title="{{ nav_text | escape }}">{{ nav_text | escape }}</a>
|
|
161
|
+
</li>
|
|
162
|
+
{% endfor %}
|
|
163
|
+
</ul>
|
|
164
|
+
</nav>
|
|
165
|
+
{% endif %}
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
</header>
|
|
169
|
+
<footer>
|
|
170
|
+
<div id="footer">
|
|
171
|
+
<p>
|
|
172
|
+
{% if site.footer_url %}<a href="{{ site.footer_url | escape }}" title="{{ site.footer_text | default: site.footer_url | escape }}">{{ site.footer_text | default: site.footer_url | escape }}</a>{% elsif site.footer_text %}{{ site.footer_text | escape }} {% endif %}
|
|
173
|
+
©
|
|
174
|
+
{% assign current_year = site.time | date: '%Y' | plus: 0 %}
|
|
175
|
+
{% if site.copyright_year_start and site.copyright_year_start != current_year %}{{ site.copyright_year_start }}–{% endif %}{{ site.time | date: '%Y' }}
|
|
176
|
+
</p>
|
|
177
|
+
</div>
|
|
178
|
+
</footer>
|
|
179
|
+
<div id="cover-image" aria-hidden="true"></div>
|
|
180
|
+
{% if jekyll.environment == "production" %}
|
|
181
|
+
<script type="text/javascript" src="{{ '/assets/js/javascript.min.js' | prepend: site.baseurl }}?_={{ site.time | date: '%Y%m%d%H%M%S' }}"></script>
|
|
182
|
+
{% else %}
|
|
183
|
+
<script type="text/javascript" src="{{ '/assets/js/javascript.js' | prepend: site.baseurl }}"></script>
|
|
184
|
+
{% endif %}
|
|
185
|
+
{% if site.syntax_highlighting %}
|
|
186
|
+
<script type="text/javascript" src="{{ '/assets/js/highlight-js.min.js' | prepend: site.baseurl }}?_={{ site.time | date: '%Y%m%d%H%M%S' }}"></script>
|
|
187
|
+
<script type="text/javascript">
|
|
188
|
+
hljs.highlightAll();
|
|
189
|
+
</script>
|
|
190
|
+
{% endif %}
|
|
191
|
+
{% if site.custom_body %}
|
|
192
|
+
{{ site.custom_body }}
|
|
193
|
+
{% endif %}
|
|
194
|
+
</body>
|
|
195
|
+
</html>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED FILE - do not edit by hand.
|
|
3
|
+
* Regenerate with `npx gulp` (sourced from the @highlightjs/cdn-assets
|
|
4
|
+
* npm package; bump that dependency to update). Only the color, font-style, font-weight
|
|
5
|
+
* properties are kept so layout rules cannot conflict with stylesheet.css.
|
|
6
|
+
* highlight.js (c) highlight.js contributors, BSD-3-Clause.
|
|
7
|
+
*/.hljs{color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
YUI 3.18.1 (build f7e7bcb)
|
|
3
|
+
Copyright 2014 Yahoo! Inc. All rights reserved.
|
|
4
|
+
Licensed under the BSD License.
|
|
5
|
+
*/
|
|
6
|
+
html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;*font-size:100%}legend{color:#000}#yui3-css-stamp.cssreset{display:none}
|
|
7
|
+
|
|
8
|
+
html,body,code { color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px }
|
|
9
|
+
a,a code { color:#0366d6;text-decoration:none }
|
|
10
|
+
a:hover { text-decoration:underline }
|
|
11
|
+
strong { font-weight:bold }
|
|
12
|
+
em { font-style:italic }
|
|
13
|
+
strong em,em strong { font-style:italic;font-weight:bold }
|
|
14
|
+
h1,h2,h3,h4,h5,h6 { border-bottom:1px solid #dbdddf;clear:both;font-size:32px;font-weight:600;padding:15px 10px 5px }
|
|
15
|
+
h2 { font-size:24px }
|
|
16
|
+
h3,h4,h5,h6 { border-bottom:0;font-size:20px;padding-bottom:0 }
|
|
17
|
+
h4 { font-size:16px }
|
|
18
|
+
h5 { font-size:15px }
|
|
19
|
+
h6 { font-size:14px }
|
|
20
|
+
p,ul,ol { line-height:150%;margin:0;padding:10px 10px 0 }
|
|
21
|
+
ul,ol { padding-left:35px }
|
|
22
|
+
ul li { list-style-type:disc }
|
|
23
|
+
ol li { list-style-type:decimal }
|
|
24
|
+
img { box-sizing:border-box;max-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box }
|
|
25
|
+
table { display:block;line-height:150%;max-width:100%;overflow:auto;padding:10px 10px 0;width:100%;width:max-content }
|
|
26
|
+
table tr { background-color:#ffffff;border-top:1px solid #dbdddf }
|
|
27
|
+
table tr:nth-child(even) { background-color:#f6f8fa }
|
|
28
|
+
table tr:hover { background-color:#ffffdd }
|
|
29
|
+
table th,table td { border:1px solid #dbdddf;padding:6px 13px }
|
|
30
|
+
table th { background-color:#ffffff;font-weight:bold;text-align:center }
|
|
31
|
+
table tr:nth-child(even) code { background-color:#e9eaea }
|
|
32
|
+
table tr:nth-child(even):hover code { background-color:#f3f4f4 }
|
|
33
|
+
code { background-color:#f3f4f4;padding:0 5px }
|
|
34
|
+
pre,pre code { background-color:#f6f8fa;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:150%;padding:0 }
|
|
35
|
+
pre { border:0 solid #ffffff;border-width:0 10px;box-sizing:border-box;display:block;margin:10px 0 0;-moz-box-sizing:border-box;overflow-x:scroll;overflow-y:visible;padding:10px;-webkit-box-sizing:border-box;width:100% }
|
|
36
|
+
hr { background-color:#eceef0;border:0;color:#eceef0;height:1px;margin:15px auto 0;padding:0;width:100% }
|
|
37
|
+
hr + p,hr + ul,hr + ol { padding-top:15px }
|
|
38
|
+
|
|
39
|
+
div.highlight { position:relative }
|
|
40
|
+
span.copy-code { background-color:#ffffff;background-color:rgba(255,255,255,0.67);border-radius:5px;color:#48525c;cursor:pointer;display:block;float:right;font-size:13px;-moz-border-radius:5px;padding:3px 5px;position:absolute;right:10px;top:10px;z-index:8 }
|
|
41
|
+
div.highlight span.copy-code { right:20px }
|
|
42
|
+
span.copy-code:hover { background-color:#ffffff;text-decoration:underline }
|
|
43
|
+
span.copy-code i { color:#6c7b8a;margin-right:5px }
|
|
44
|
+
|
|
45
|
+
form.interactive { background-color:#eeeeee;border:1px solid #dddddd;margin:10px 10px 0;overflow:auto;position:relative }
|
|
46
|
+
form.interactive p,form.interactive pre { display:block;float:left;padding-bottom:10px;padding-top:10px;width:200px }
|
|
47
|
+
form.interactive pre { background-color:#f9f9f9;border:0 solid #dddddd;border-width:0 0 0 1px;float:none;font-family:'Consolas','Courier New','Courier',mono-space;font-size:12px;margin:0 0 0 195px;_margin:0;width:598px;_width:595px }
|
|
48
|
+
form.interactive-tall pre { bottom:0;position:absolute;right:0;top:0 }
|
|
49
|
+
form.interactive pre li { height:14px;*height:auto }
|
|
50
|
+
form.interactive select,form.interactive input { display:block;float:left;font-size:12px;height:20px;*height:24px;margin-right:5px }
|
|
51
|
+
form.interactive input { height:16px;padding:1px;width:111px }
|
|
52
|
+
form.interactive-tall input,form.interactive-tall select { box-sizing:border-box;height:22px;-moz-box-sizing:border-box;padding:1px;-webkit-box-sizing:border-box;width:175px }
|
|
53
|
+
form.interactive input.checkbox { height:25px;margin-right:10px;padding:0;width:25px }
|
|
54
|
+
form.interactive input.submit { background-color:#0366d6;border:0;border-radius:5px;color:#ffffff;cursor:pointer;font-size:16px;font-weight:bold;height:auto;-moz-border-radius:5px;padding:10px 20px;width:auto }
|
|
55
|
+
form.interactive br { clear:both }
|
|
56
|
+
form.interactive + p { padding-top:0;text-align:right }
|
|
57
|
+
|
|
58
|
+
#container { background-color:#ffffff;margin:0 auto;max-width:840px;padding:61px 10px 30px;position:relative;*width:840px;_width:840px;z-index:8 }
|
|
59
|
+
#header { background-color:#f6f8fa;border-bottom:1px solid #dbdddf;height:60px;left:0;position:fixed;right:0;top:0;z-index:9 }
|
|
60
|
+
#header-inner { margin:0 auto;max-width:840px;padding:0;position:relative;*width:840px;_width:840px;z-index:9 }
|
|
61
|
+
#wordmark { display:block;float:left;font-weight:bold;height:60px;left:0;line-height:60px;padding:0 10px;position:absolute;top:0;z-index:2 }
|
|
62
|
+
#menu-toggle { display:none }
|
|
63
|
+
#header ul { float:right;padding:0 5px 0 0;position:absolute;right:5px;top:0 }
|
|
64
|
+
#header li { display:block;float:left;list-style-type:none }
|
|
65
|
+
#header ul a { display:block;float:left;height:60px;line-height:60px;padding:0 5px }
|
|
66
|
+
#aside { background-color:#eeeeee;border-radius:5px;margin:15px 10px 0;-moz-border-radius:5px;padding:5px 15px 15px;text-align:center }
|
|
67
|
+
#aside ul { font-size:48px;height:48px;padding:5px 5% 0;width:90% }
|
|
68
|
+
#aside li { display:block;float:left;height:48px;list-style-type:none;padding:0 }
|
|
69
|
+
div.aside-1 li { width:100% }
|
|
70
|
+
div.aside-2 li { width:50% }
|
|
71
|
+
div.aside-3 li { width:33.3% }
|
|
72
|
+
div.aside-4 li { width:25% }
|
|
73
|
+
div.aside-5 li { width:20% }
|
|
74
|
+
div.aside-6 li { width:16.6% }
|
|
75
|
+
div.aside-7 li { font-size:33px;width:14.2% }
|
|
76
|
+
div.aside-8 li { font-size:30px;width:12.5% }
|
|
77
|
+
div.aside-9 li { font-size:27px;width:11.1% }
|
|
78
|
+
div.aside-10 li { font-size:24px;width:10% }
|
|
79
|
+
#aside a { cursor:pointer;display:block;float:left;height:48px;line-height:48px;width:100% }
|
|
80
|
+
#aside a:hover { color:#000000;text-decoration:none }
|
|
81
|
+
#aside i { margin:0 auto }
|
|
82
|
+
#aside span { display:none }
|
|
83
|
+
#footer { margin:0 auto;max-width:860px;position:relative;*width:860px;_width:860px;z-index:8 }
|
|
84
|
+
#footer p { background-color:#ffffff;border-radius:0 0 5px 5px;border-top:1px solid #eceef0;clear:both;color:#caccce;-moz-border-radius:0 0 5px 5px;padding-bottom:15px;padding-top:15px;text-align:center }
|
|
85
|
+
#cover-image { background-color:#eceef0;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;height:400px;left:0;margin:0;padding:0;position:absolute;right:0;top:61px;z-index:2 }
|
|
86
|
+
#cover-image:before { background-image:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);background-image:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(255,255,255,0)),color-stop(100%,rgba(255,255,255,1)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);bottom:0;content:"";display:block;left:0;height:200px;position:absolute;right:0;z-index:2 }
|
|
87
|
+
|
|
88
|
+
@media only screen and (max-width : 879px) {
|
|
89
|
+
h1,h2,h3,h4,h5,h6 { font-size:24px;overflow:hidden;text-overflow:ellipsis }
|
|
90
|
+
h2 { font-size:21px }
|
|
91
|
+
h3 { font-size:18px }
|
|
92
|
+
h4 { font-size:16px }
|
|
93
|
+
h5 { font-size:15px }
|
|
94
|
+
h6 { font-size:14px }
|
|
95
|
+
span.copy-code { display:none }
|
|
96
|
+
form.interactive p { float:none;padding-bottom:20px;padding-top:15px;overflow:auto;width:auto }
|
|
97
|
+
form.interactive pre { border-width:1px 0 0;margin-left:0;width:auto }
|
|
98
|
+
form.interactive-tall pre { bottom:auto;position:static;right:auto;top:auto }
|
|
99
|
+
#container { max-width:none }
|
|
100
|
+
#header-inner { max-width:none }
|
|
101
|
+
#wordmark { padding-left:20px;padding-right:20px }
|
|
102
|
+
#menu-toggle { background-color:#eceef0;border:1px solid #dbdddf;border-radius:5px;color:#5d5f61;cursor:pointer;display:block;font-size:10px;font-weight:bold;height:22px;line-height:22px;-moz-border-radius:5px;padding:16px 0 0;position:absolute;right:10px;text-align:center;text-decoration:none!important;top:10px;width:38px;z-index:3 }
|
|
103
|
+
#menu-toggle:before { background-color:#5d5f61;content:"";height:12px;left:10px;position:absolute;right:10px;top:6px }
|
|
104
|
+
#menu-toggle:after { border:0 solid #eceef0;border-width:3px 0;content:"";height:2px;left:10px;position:absolute;right:10px;top:8px }
|
|
105
|
+
#header ul { background-color:#f6f8fa;border-bottom:1px solid #dbdddf;display:none;float:none;left:0;padding:0 0 5px;position:absolute;right:0;top:60px }
|
|
106
|
+
body.menu-open #header ul { display:block }
|
|
107
|
+
#header li { float:none }
|
|
108
|
+
#header ul a { float:none;height:auto;line-height:normal;padding:5px 10px;text-align:center }
|
|
109
|
+
#aside { margin-left:0;margin-right:0 }
|
|
110
|
+
#aside ul { font-size:36px;padding-left:2.5%;padding-right:2.5%;width:95% }
|
|
111
|
+
#cover-image { display:none }
|
|
112
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
YUI 3.18.1 (build f7e7bcb)
|
|
3
|
+
Copyright 2014 Yahoo! Inc. All rights reserved.
|
|
4
|
+
Licensed under the BSD License.
|
|
5
|
+
*/html{color:#000;background:#fff}blockquote,body,code,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:after,q:before{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit;*font-size:100%}legend{color:#000}#yui3-css-stamp.cssreset{display:none}body,code,html{color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px}a,a code{color:#0366d6;text-decoration:none}a:hover{text-decoration:underline}strong{font-weight:bold}em{font-style:italic}em strong,strong em{font-style:italic;font-weight:bold}h1,h2,h3,h4,h5,h6{border-bottom:1px solid #dbdddf;clear:both;font-size:32px;font-weight:600;padding:15px 10px 5px}h2{font-size:24px}h3,h4,h5,h6{border-bottom:0;font-size:20px;padding-bottom:0}h4{font-size:16px}h5{font-size:15px}h6{font-size:14px}ol,p,ul{line-height:150%;margin:0;padding:10px 10px 0}ol,ul{padding-left:35px}ul li{list-style-type:disc}ol li{list-style-type:decimal}img{box-sizing:border-box;max-width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}table{display:block;line-height:150%;max-width:100%;overflow:auto;padding:10px 10px 0;width:100%;width:max-content}table tr{background-color:#fff;border-top:1px solid #dbdddf}table tr:nth-child(even){background-color:#f6f8fa}table tr:hover{background-color:#ffd}table td,table th{border:1px solid #dbdddf;padding:6px 13px}table th{background-color:#fff;font-weight:bold;text-align:center}table tr:nth-child(even) code{background-color:#e9eaea}table tr:nth-child(even):hover code{background-color:#f3f4f4}code{background-color:#f3f4f4;padding:0 5px}pre,pre code{background-color:#f6f8fa;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:150%;padding:0}pre{border:0 solid #fff;border-width:0 10px;box-sizing:border-box;display:block;margin:10px 0 0;-moz-box-sizing:border-box;overflow-x:scroll;overflow-y:visible;padding:10px;-webkit-box-sizing:border-box;width:100%}hr{background-color:#eceef0;border:0;color:#eceef0;height:1px;margin:15px auto 0;padding:0;width:100%}hr+ol,hr+p,hr+ul{padding-top:15px}div.highlight{position:relative}span.copy-code{background-color:#fff;background-color:rgba(255,255,255,.67);border-radius:5px;color:#48525c;cursor:pointer;display:block;float:right;font-size:13px;-moz-border-radius:5px;padding:3px 5px;position:absolute;right:10px;top:10px;z-index:8}div.highlight span.copy-code{right:20px}span.copy-code:hover{background-color:#fff;text-decoration:underline}span.copy-code i{color:#6c7b8a;margin-right:5px}form.interactive{background-color:#eee;border:1px solid #ddd;margin:10px 10px 0;overflow:auto;position:relative}form.interactive p,form.interactive pre{display:block;float:left;padding-bottom:10px;padding-top:10px;width:200px}form.interactive pre{background-color:#f9f9f9;border:0 solid #ddd;border-width:0 0 0 1px;float:none;font-family:Consolas,'Courier New',Courier,mono-space;font-size:12px;margin:0 0 0 195px;_margin:0;width:598px;_width:595px}form.interactive-tall pre{bottom:0;position:absolute;right:0;top:0}form.interactive pre li{height:14px;*height:auto}form.interactive input,form.interactive select{display:block;float:left;font-size:12px;height:20px;*height:24px;margin-right:5px}form.interactive input{height:16px;padding:1px;width:111px}form.interactive-tall input,form.interactive-tall select{box-sizing:border-box;height:22px;-moz-box-sizing:border-box;padding:1px;-webkit-box-sizing:border-box;width:175px}form.interactive input.checkbox{height:25px;margin-right:10px;padding:0;width:25px}form.interactive input.submit{background-color:#0366d6;border:0;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:bold;height:auto;-moz-border-radius:5px;padding:10px 20px;width:auto}form.interactive br{clear:both}form.interactive+p{padding-top:0;text-align:right}#container{background-color:#fff;margin:0 auto;max-width:840px;padding:61px 10px 30px;position:relative;*width:840px;_width:840px;z-index:8}#header{background-color:#f6f8fa;border-bottom:1px solid #dbdddf;height:60px;left:0;position:fixed;right:0;top:0;z-index:9}#header-inner{margin:0 auto;max-width:840px;padding:0;position:relative;*width:840px;_width:840px;z-index:9}#wordmark{display:block;float:left;font-weight:bold;height:60px;left:0;line-height:60px;padding:0 10px;position:absolute;top:0;z-index:2}#menu-toggle{display:none}#header ul{float:right;padding:0 5px 0 0;position:absolute;right:5px;top:0}#header li{display:block;float:left;list-style-type:none}#header ul a{display:block;float:left;height:60px;line-height:60px;padding:0 5px}#aside{background-color:#eee;border-radius:5px;margin:15px 10px 0;-moz-border-radius:5px;padding:5px 15px 15px;text-align:center}#aside ul{font-size:48px;height:48px;padding:5px 5% 0;width:90%}#aside li{display:block;float:left;height:48px;list-style-type:none;padding:0}div.aside-1 li{width:100%}div.aside-2 li{width:50%}div.aside-3 li{width:33.3%}div.aside-4 li{width:25%}div.aside-5 li{width:20%}div.aside-6 li{width:16.6%}div.aside-7 li{font-size:33px;width:14.2%}div.aside-8 li{font-size:30px;width:12.5%}div.aside-9 li{font-size:27px;width:11.1%}div.aside-10 li{font-size:24px;width:10%}#aside a{cursor:pointer;display:block;float:left;height:48px;line-height:48px;width:100%}#aside a:hover{color:#000;text-decoration:none}#aside i{margin:0 auto}#aside span{display:none}#footer{margin:0 auto;max-width:860px;position:relative;*width:860px;_width:860px;z-index:8}#footer p{background-color:#fff;border-radius:0 0 5px 5px;border-top:1px solid #eceef0;clear:both;color:#caccce;-moz-border-radius:0 0 5px 5px;padding-bottom:15px;padding-top:15px;text-align:center}#cover-image{background-color:#eceef0;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;height:400px;left:0;margin:0;padding:0;position:absolute;right:0;top:61px;z-index:2}#cover-image:before{background-image:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%);background-image:-moz-linear-gradient(top,rgba(255,255,255,0) 0,#fff 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,0) 0,#fff 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,0) 0,#fff 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(255,255,255,0)),color-stop(100%,#fff));background-image:-webkit-linear-gradient(top,rgba(255,255,255,0) 0,#fff 100%);bottom:0;content:"";display:block;left:0;height:200px;position:absolute;right:0;z-index:2}@media only screen and (max-width :879px){h1,h2,h3,h4,h5,h6{font-size:24px;overflow:hidden;text-overflow:ellipsis}h2{font-size:21px}h3{font-size:18px}h4{font-size:16px}h5{font-size:15px}h6{font-size:14px}span.copy-code{display:none}form.interactive p{float:none;padding-bottom:20px;padding-top:15px;overflow:auto;width:auto}form.interactive pre{border-width:1px 0 0;margin-left:0;width:auto}form.interactive-tall pre{bottom:auto;position:static;right:auto;top:auto}#container{max-width:none}#header-inner{max-width:none}#wordmark{padding-left:20px;padding-right:20px}#menu-toggle{background-color:#eceef0;border:1px solid #dbdddf;border-radius:5px;color:#5d5f61;cursor:pointer;display:block;font-size:10px;font-weight:bold;height:22px;line-height:22px;-moz-border-radius:5px;padding:16px 0 0;position:absolute;right:10px;text-align:center;text-decoration:none!important;top:10px;width:38px;z-index:3}#menu-toggle:before{background-color:#5d5f61;content:"";height:12px;left:10px;position:absolute;right:10px;top:6px}#menu-toggle:after{border:0 solid #eceef0;border-width:3px 0;content:"";height:2px;left:10px;position:absolute;right:10px;top:8px}#header ul{background-color:#f6f8fa;border-bottom:1px solid #dbdddf;display:none;float:none;left:0;padding:0 0 5px;position:absolute;right:0;top:60px}body.menu-open #header ul{display:block}#header li{float:none}#header ul a{float:none;height:auto;line-height:normal;padding:5px 10px;text-align:center}#aside{margin-left:0;margin-right:0}#aside ul{font-size:36px;padding-left:2.5%;padding-right:2.5%;width:95%}#cover-image{display:none}}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|