Compare commits

...
35 Commits
Author SHA1 Message Date
squidfunk 4b9c8b9a49 Prepare 0.2.1 release 2016-03-12 13:25:05 +01:00
squidfunk a58cb0aea6 Added documentation for Google Analytics integration 2016-03-12 13:21:06 +01:00
squidfunk cf8e992c24 Fixed empty list in table of contents when no headline is defined 2016-03-12 13:20:19 +01:00
squidfunk bf227de93e Fixed #13: Table cells don't wrap 2016-03-12 13:15:15 +01:00
squidfunk c829555313 Set up tracking of site search for Google Analytics 2016-02-27 12:20:49 +01:00
squidfunk f6195de306 Corrected wrong path for static asset monitoring in Gulpfile 2016-02-27 12:19:18 +01:00
squidfunk 3e508f45f2 Fixed #10: Invisible header after closing search bar with ESC key 2016-02-25 19:05:53 +01:00
squidfunk 573b74881d Prepare 0.2.0 release 2016-02-24 18:11:04 +01:00
squidfunk a65b1a05d8 Added images showing colors to documentation 2016-02-24 18:10:11 +01:00
squidfunk bb5f98e617 Updated documentation 2016-02-24 17:31:01 +01:00
squidfunk e256360619 Remove bottom border on footer hover and fix default label 2016-02-24 17:30:42 +01:00
squidfunk 0eb02a0d10 Fixed #7: Better colors for links inside admonition notes and warnings 2016-02-24 16:40:00 +01:00
squidfunk 32a14cbb12 Fixed #6: Include multiple color palettes via mkdocs.yml 2016-02-24 16:24:32 +01:00
squidfunk bf8be26e0a Fixed #9: Text for prev/next footer navigation should be customizable 2016-02-24 12:40:02 +01:00
squidfunk 60f2982c25 Prepare 0.1.3 release 2016-02-21 18:30:49 +01:00
squidfunk 610d8c0e95 Fixed #5: Page without headlines renders empty list in table of contents 2016-02-21 18:19:25 +01:00
squidfunk ba72ddb949 Fixed #4: Click on Logo/Title without Github-Repository: None 2016-02-21 17:32:36 +01:00
squidfunk e7a41822a0 Moved Modernizr to top to ensure basic usability in IE8 2016-02-20 17:25:14 +01:00
squidfunk fd290d0d7c Fixed #2: Ordered lists within an unordered list have ::before content 2016-02-20 17:03:27 +01:00
squidfunk 9d9effc106 Updated documentation 2016-02-17 18:08:11 +01:00
squidfunk e1cf87b483 Prepare 0.1.2 release 2016-02-16 17:04:03 +01:00
squidfunk 075d144ca1 Changed styles for admonition notes and warnings 2016-02-16 16:49:48 +01:00
squidfunk cf37693e2b Fixed print styles in mobile/tablet configuration 2016-02-16 15:51:07 +01:00
squidfunk 42ba9c32cf Fixed styles for deep navigational hierarchies 2016-02-16 14:49:37 +01:00
squidfunk cec4f1885b Set up tracking of outgoing links and actions for Google Analytics 2016-02-16 13:11:43 +01:00
squidfunk 863e1482dc Added option to configure fonts in mkdocs.yml with fallbacks 2016-02-16 13:10:33 +01:00
squidfunk 9233074124 Set download link to latest version if available 2016-02-13 17:24:16 +01:00
squidfunk de5be52f18 Preparing 0.1.1 release 2016-02-11 12:41:59 +01:00
squidfunk 231131d76f Updated README 2016-02-11 12:33:28 +01:00
squidfunk 8ab9afeb4c Changed footer/copyright link to Material theme to GitHub pages 2016-02-11 12:33:08 +01:00
squidfunk 5041803cf0 Fixed typo in bower.json 2016-02-11 12:14:27 +01:00
squidfunk 001fbc130a Updated npm/bower dependencies and refactored Gulpfile 2016-02-11 12:09:58 +01:00
squidfunk 900cab527c Trigger first build 2016-02-11 10:47:15 +01:00
squidfunk 74e699166d Setup Travis CI 2016-02-11 10:44:42 +01:00
squidfunk ee05f7d870 Fixed #1: GitHub stars don't work if the repo_url ends with a '/' 2016-02-10 14:09:30 +01:00
58 changed files with 1448 additions and 754 deletions
+39
View File
@@ -0,0 +1,39 @@
# Copyright (c) 2013-2016 Martin Donath <martin.donath@squidfunk.com>
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
language: node_js
# Node.js versions
node_js:
- '4.1'
- '0.11'
# Install dependencies
before_script:
# Install bower
- npm install -g bower
# Install project dependencies
- npm install
- bower install
# Perform build and tests
script: gulp build --production
+40
View File
@@ -1,3 +1,43 @@
mkdocs-material-0.2.1 (2016-03-12)
* Fixed #10: Invisible header after closing search bar with ESC key
* Fixed #13: Table cells don't wrap
* Fixed empty list in table of contents when no headline is defined
* Corrected wrong path for static asset monitoring in Gulpfile.js
* Set up tracking of site search for Google Analytics
mkdocs-material-0.2.0 (2016-02-24)
* Fixed #6: Include multiple color palettes via mkdocs.yml
* Fixed #7: Better colors for links inside admonition notes and warnings
* Fixed #9: Text for prev/next footer navigation should be customizable
* Refactored templates (replaced if/else with modifiers where possible)
mkdocs-material-0.1.3 (2016-02-21)
* Fixed #3: Ordered lists within an unordered list have ::before content
* Fixed #4: Click on Logo/Title without Github-Repository: "None"
* Fixed #5: Page without headlines renders empty list in table of contents
* Moved Modernizr to top to ensure basic usability in IE8
mkdocs-material-0.1.2 (2016-02-16)
* Fixed styles for deep navigational hierarchies
* Fixed webfont delivery problem when hosted in subdirectories
* Fixed print styles in mobile/tablet configuration
* Added option to configure fonts in mkdocs.yml with fallbacks
* Changed styles for admonition notes and warnings
* Set download link to latest version if available
* Set up tracking of outgoing links and actions for Google Analytics
mkdocs-material-0.1.1 (2016-02-11)
* Fixed #1: GitHub stars don't work if the repo_url ends with a '/'
* Updated npm and bower dependencies to most recent versions
* Changed footer/copyright link to Material theme to GitHub pages
* Made MkDocs building/serving in build process optional
* Set up continuous integration with travis-ci.org
mkdocs-material-0.1.0 (2016-02-09)
* Initial release
+21 -19
View File
@@ -27,7 +27,7 @@
var gulp = require('gulp');
var addsrc = require('gulp-add-src');
var args = require('yargs').argv;
var autoprefix = require('autoprefixer-core');
var autoprefix = require('autoprefixer');
var child = require('child_process');
var clean = require('del');
var collect = require('gulp-rev-collector');
@@ -35,7 +35,7 @@ var compact = require('gulp-remove-empty-lines');
var concat = require('gulp-concat');
var ignore = require('gulp-ignore');
var gulpif = require('gulp-if');
var mincss = require('gulp-minify-css');
var mincss = require('gulp-cssnano');
var minhtml = require('gulp-htmlmin');
var minimage = require('gulp-image-optimization');
var modernizr = require('gulp-modernizr');
@@ -54,7 +54,7 @@ var vinyl = require('vinyl-paths');
* Locals
* ------------------------------------------------------------------------- */
/* Application server */
/* MkDocs server */
var server = null;
/* ----------------------------------------------------------------------------
@@ -204,7 +204,7 @@ gulp.task('assets:views', args.production ? [
*/
gulp.task('assets:revisions:clean', function() {
return gulp.src(['material/**/*.{ico,css,js,png,jpg,gif}'])
.pipe(ignore.include(/-[a-f0-9]{8}\.(ico|css|js|png|jpg|gif)$/))
.pipe(ignore.include(/-[a-f0-9]{8,}\.(ico|css|js|png|jpg|gif)$/))
.pipe(vinyl(clean));
});
@@ -218,7 +218,7 @@ gulp.task('assets:revisions', [
'assets:static'
], function() {
return gulp.src(['material/**/*.{ico,css,js,png,jpg,gif}'])
.pipe(ignore.exclude(/-[a-f0-9]{8}\.(css|js|png|jpg|gif)$/))
.pipe(ignore.exclude(/-[a-f0-9]{8,}\.(css|js|png|jpg|gif)$/))
.pipe(rev())
.pipe(gulp.dest('material'))
.pipe(rev.manifest('manifest.json'))
@@ -254,7 +254,7 @@ gulp.task('assets:watch', function() {
/* Copy static assets */
gulp.watch([
'assets/assets/{fonts,images}/*'
'src/assets/{fonts,images}/*'
], ['assets:static']);
/* Minify views */
@@ -268,22 +268,22 @@ gulp.task('assets:watch', function() {
* ------------------------------------------------------------------------- */
/*
* Build application server.
* Build documentation.
*/
gulp.task('server:build', [
gulp.task('mkdocs:build', [
'assets:build'
], function() {
return child.spawnSync('mkdocs', ['build']);
});
/*
* Restart application server.
* Restart MkDocs server.
*/
gulp.task('server:spawn', function() {
gulp.task('mkdocs:serve', function() {
if (server)
server.kill();
/* Spawn application server */
/* Spawn MkDocs server */
server = child.spawn('mkdocs', ['serve', '-a', '0.0.0.0:8000']);
/* Pretty print server log output */
@@ -305,23 +305,25 @@ gulp.task('server:spawn', function() {
* ------------------------------------------------------------------------- */
/*
* Build assets and application server.
* Build assets and documentation.
*/
gulp.task('build', [
'assets:build',
'server:build'
]);
'assets:build'
].concat(args.mkdocs
? 'mkdocs:build'
: []));
/*
* Start asset and server watchdogs.
* Start asset and MkDocs watchdogs.
*/
gulp.task('watch', [
'assets:build',
], function() {
return gulp.start([
'assets:watch',
'server:spawn'
]);
'assets:watch'
].concat(args.mkdocs
? 'mkdocs:serve'
: []));
});
/*
+34 -10
View File
@@ -1,13 +1,14 @@
# Material
[![Travis CI][travis-image]][travis-link]
[![PyPI Downloads][pypi-dl-image]][pypi-dl-link]
[![PyPI Version][pypi-v-image]][pypi-v-link]
[![Release Status][release-image]][release-link]
[![License][license-image]][license-link]
A material design theme for MkDocs.
A material design theme for [MkDocs](http://www.mkdocs.org).
![iOS](docs/images/screen.png)
[![iOS](docs/images/screen.png)](http://squidfunk.github.io/mkdocs-material/)
## Quick start
Install with `pip`:
@@ -21,13 +22,36 @@ Add the following line to your `mkdocs.yml`:
theme: 'material'
```
For detailed installation instructions and a demo, visit [squidfunk.github.io/mkdocs-material/](http://squidfunk.github.io/mkdocs-material/)
For detailed installation instructions and a demo, visit
http://squidfunk.github.io/mkdocs-material/
## License
**MIT License**
Copyright (c) 2016 Martin Donath
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
[travis-image]: https://travis-ci.org/squidfunk/mkdocs-material.svg
[travis-link]: https://travis-ci.org/squidfunk/mkdocs-material
[pypi-dl-image]: https://img.shields.io/pypi/dm/mkdocs-material.png
[pypi-dl-link]: https://pypi.python.org/pypi/mkdocs-material
[pypi-v-image]: https://img.shields.io/pypi/v/mkdocs-material.png
[pypi-v-link]: https://pypi.python.org/pypi/mkdocs-material
[release-image]: https://img.shields.io/github/release/squidfunk/mkdocs-material.svg
[release-link]: https://github.com/squidfunk/mkdocs-material/releases/latest
[license-image]: https://img.shields.io/github/license/squidfunk/mkdocs-material.svg
[license-link]: https://github.com/squidfunk/mkdocs-material/blob/master/LICENSE
[pypi-v-link]: https://pypi.python.org/pypi/mkdocs-material
+10 -10
View File
@@ -1,6 +1,6 @@
{
"name": "Material",
"version": "0.1.0",
"name": "mkdocs-material",
"version": "0.2.1",
"description": "A material design theme for MkDocs",
"homepage": "http://squidfunk.github.io/mkdocs-material/",
"authors": [
@@ -17,15 +17,15 @@
],
"private": true,
"dependencies": {
"classlist": "~2014.12.13",
"fastclick": "~1.0.6",
"lunr.js": "~0.5.10",
"pegasus": "~0.3.1",
"respond": "~1.4.2"
"classlist": "^2014.12.13",
"fastclick": "^1.0.6",
"lunr.js": "^0.6.0",
"pegasus": "^0.3.2",
"respond": "^1.4.2"
},
"devDependencies": {
"bourbon": "~4.2.2",
"quantum-colors": "~1.0.1",
"quantum-shadows": "~1.0.0"
"bourbon": "^4.2.6",
"quantum-colors": "^1.0.1",
"quantum-shadows": "^1.0.0"
}
}
+26 -14
View File
@@ -26,23 +26,28 @@ Further assistance on including extra CSS and Javascript can be found in the
## Fundamental changes
If you want to make larger adjustments like changing the color palette or
typography, you should check out the repository of the project and compile
the SASS sources with your changes. The project design is very modular, so
most things can be changed by tweaking a few variables.
typography, you should check out or download the repository of the project and
compile the SASS sources with your changes. The project design is very modular,
so most things can be tweaked by changing a few variables.
### Setup
In order to compile the project, you need `node`, `bower` and `gulp` up and
running. It's best to use the most recent versions, but it should also work if
your installations are not too dated. The project itself is hosted on GitHub,
so the next thing you should do is clone the project from GitHub:
In order to compile the project, you need `node` with a version greater than
`0.11` up and running. Then, make sure `bower` is installed or install it:
``` sh
npm install -g bower
```
The project itself is hosted on GitHub, so the next
thing you should do is clone the project from GitHub:
``` sh
git clone https://github.com/squidfunk/mkdocs-material
```
Then you change the directory and install all dependencies specified in the
`package.json` and `bower.json`:
`package.json` and `bower.json` with the following command:
``` sh
cd mkdocs-material
@@ -52,12 +57,12 @@ npm install && bower install
### Development
The asset pipeline is contained in `Gulpfile.js`, which you can start with
`gulp watch`. This will also run `mkdocs serve`, to monitor changes to the
documentation. Point your browser to [localhost:8000](http://localhost:8000)
and you should see this very documentation in front of your eyes.
`gulp watch`. If you specify the `--mkdocs` flag, this will also run
`mkdocs serve`, to monitor changes to the documentation. Point your browser to [localhost:8000](http://localhost:8000) and you should see this very
documentation in front of your eyes.
``` sh
gulp watch
gulp watch --mkdocs
```
For example, changing the color palette is as simple as changing the `$primary`
@@ -80,11 +85,18 @@ When you finished making your changes, you can build the theme by invoking:
gulp build --production
```
The `production` flag triggers the production-level compilation and
The `--production` flag triggers the production-level compilation and
minification of all CSS and Javascript sources. When the command is ready,
the final theme is located in the `material` directory. Add the `theme_dir`
variable pointing to the aforementioned directory in your original
`mkdocs.yml` and you should see your documentation with your changes!
`mkdocs.yml`:
``` yaml
theme_dir: 'mkdocs-material/material'
```
Now you can run `mkdocs build` and you should see your documentation with your
changes to the original Material theme.
[MkDocs]: http://www.mkdocs.org
[MkDocs documentation]: http://www.mkdocs.org/user-guide/styling-your-docs/#customising-a-theme
+135 -26
View File
@@ -4,11 +4,11 @@
### Installing MkDocs
In order to install [MkDocs][], Python and `pip` - the Python package manager -
need to be up and running. Assuming you are a developer and have a basic
understanding of how things work and what StackOverflow is, we won't provide
guidelines on setting those up. You can verify if you're already good to go
with the following commands:
Before installing [MkDocs][], you need to make sure you have Python and `pip`
the Python package manager up and running. Assuming you are a developer and
have a basic understanding of how things work and what StackOverflow is, we
won't provide guidelines on setting those up. You can verify if you're already
good to go with the following commands:
``` sh
python --version
@@ -76,19 +76,6 @@ on and customize the theme through some options.
The Material theme adds some extra variables for configuration via your
project's `mkdocs.yml`. See the following section for all available options.
### Adding a logo
If your project has a logo, you can add it to the drawer/navigation by defining
the variable `extra.logo`. Ideally, the image of your logo should have
rectangular shape with a minimum resolution of 128x128. The logo will also be
used as a web application icon on iOS. Simply create the folder `docs/images`,
add your image and reference it via:
``` yaml
extra:
logo: 'images/logo.png'
```
### Adding a version
In order to add the current version next to the project banner inside the
@@ -99,6 +86,86 @@ extra:
version: '0.1.0'
```
This will also change the link behind the download button to point to the
archive with the respective version on GitHub, assuming a release tagged with
this exact version identifier.
### Adding a logo
If your project has a logo, you can add it to the drawer/navigation by defining
the variable `extra.logo`. Ideally, the image of your logo should have
rectangular shape with a minimum resolution of 128x128 and leave some room
towards the edges. The logo will also be used as a web application icon on iOS.
Simply create the folder `docs/images`, add your image and reference it via:
``` yaml
extra:
logo: 'images/logo.png'
```
### Changing the color palette
Material defines a default hue for every primary and accent color on Google's
material design [color palette][]. This makes it very easy to change the
overall look of the theme. Just set the variables `extra.palette.primary` and
`extra.palette.accent` to one of the colors defined in the palette:
``` yaml
extra:
palette:
primary: 'indigo'
accent: 'light blue'
```
Color names can be written upper- or lowercase but must match the names of the
material design [color palette][]. Valid values are: _red_, _pink_, _purple_,
_deep purple_, _indigo_, _blue_, _light blue_, _cyan_, _teal_, _green_, _light
green_, _lime_, _yellow_, _amber_, _orange_, _deep orange_, _brown_, _grey_ and
_blue grey_. The last three colors can only be used as a primary color.
![Material Screenshot](images/colors.png)
If the color is set via this configuration, an additional CSS file called
`palettes.css` is included that defines the color palettes. If you want to
keep things lean, clone the repository and recompile the theme with your
custom colors set. See [this article](customization.md) for more information.
### Changing the font family
Material uses the [Ubuntu font family][] by default, specifically the regular
sans-serif type for text and the monospaced type for code. Both fonts are
loaded from [Google Fonts][] and can be easily changed to other fonts, like for
example Google's own [Roboto font][]:
``` yaml
extra:
font:
text: 'Roboto'
code: 'Roboto Mono'
```
The text font will be loaded in font-weights 400 and **700**, the monospaced
font in regular weight. If you want to load fonts from other destinations or
don't want to use the Google Fonts loading magic, just set `extra.font` to
`'none'`:
``` yaml
extra:
font: 'none'
```
### Localization
The **Previous** and **Next** labels in the footer can easily be changed by
defining the variables `extra.i18n.prev` and `extra.i18n.next`:
``` yaml
extra:
i18n:
prev: 'Previous'
next: 'Next'
```
### Adding a GitHub and Twitter account
If you have a GitHub and/or Twitter account, you can add links to your
@@ -112,11 +179,23 @@ extra:
twitter: 'my-twitter-handle'
```
### Google Analytics integration
Material makes it easy to integrate site tracking with Google Analytics.
Besides basic tracking, clicks on all outgoing links can be tracked, clicks on
the download and star button, as well as how site search is used. Tracking can
be activated in your project's `mkdocs.yml`:
``` yaml
google_analytics:
- 'UA-XXXXXXXX-X'
- 'auto'
```
### More advanced customization
If you want to change the fonts or colors - you are lucky. The Material theme
is built with a sophisticated asset pipeline. See
[this article](/customization) for more information on advanced customization.
If you want to change the general appearance of the Material theme, see
[this article](customization.md) for more information on advanced customization.
## Extensions
@@ -169,13 +248,25 @@ In order to add a note, use the following syntax inside your article:
Nothing to see here, move along.
```
This will print the following:
This will print the following block:
!!! note
Nothing to see here, move along.
The Material template adds a light color for the `note` class and a red color
for the `warning` class. More colors can be freely defined.
The Material template adds a neutral color for the `note` class and a red color
for the `warning` class. You can also add a custom title:
``` markdown
!!! warning "Don't try this at home"
If you do, you will regret it.
```
This will print:
!!! warning "Don't try this at home"
If you do, you will regret it.
More colors can be freely defined.
## Full example
@@ -186,7 +277,7 @@ Below is a full example configuration for a mkdocs.yml:
site_name: 'My Project'
site_description: 'A short description of my project'
site_author: 'John Doe'
site_url: 'https://github.com/my-github-handle/my-project'
site_url: 'https://my-github-handle.github.io/my-project'
# Repository
repo_name: 'GitHub'
@@ -203,10 +294,24 @@ theme: 'material'
extra:
version: '0.1.0'
logo: 'images/logo.png'
palette:
primary: 'indigo'
accent: 'light blue'
font:
text: 'Roboto'
code: 'Roboto Mono'
i18n:
prev: 'Previous'
next: 'Next'
author:
github: 'my-github-handle'
twitter: 'my-twitter-handle'
# Google Analytics
google_analytics:
- 'UA-XXXXXXXX-X'
- 'auto'
# Extensions
markdown_extensions:
- codehilite(css_class=code)
@@ -216,8 +321,12 @@ markdown_extensions:
```
[MkDocs]: http://www.mkdocs.org
[color palette]: http://www.materialui.co/colors
[Ubuntu font family]: http://font.ubuntu.com
[Google Fonts]: https://www.google.com/fonts
[Roboto font]: https://www.google.com/fonts/specimen/Roboto
[Markdown extensions]: http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions
[highlight.js]: https://highlightjs.org/
[highlight.js]: https://highlightjs.org
[extra]: http://www.mkdocs.org/user-guide/styling-your-docs/#customising-a-theme
[permalinks]: https://en.wikipedia.org/wiki/Permalink
[Admonition]: https://pythonhosted.org/Markdown/extensions/admonition.html
Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 24 KiB

+44 -25
View File
@@ -2,46 +2,65 @@
## Beautiful documentation
You're currently looking at a full responsive [MkDocs][] theme in the spirit of
Google's [material design][] guidelines. MkDocs is an excellent static site
documentation generator that is meant for building good looking project
documentation.
Material is a theme for [MkDocs][], an excellent static site generator geared
towards project documentation. It is built using Google's [material design][]
guidelines, full responsive, optimized for touch and pointer devices as well
as all sorts of screen sizes.
![Material Screenshot](/images/screen.png)
![Material Screenshot](images/screen.png)
This theme is **optimized for all sorts of devices** and is built from scratch
without any bloated Javascript or CSS Frameworks with **only 24kb of JS and
CSS** (minified, gzipped and excluding Google WebFonts and Analytics). Yet, it
is highly customizable in terms of fonts, colors and gracefully supports older
Material is very lightweight it is built from scratch using Javascript and
CSS that weighs less than 30kb (minified, gzipped and excluding Google Fonts
and Analytics). Yet, it is highly customizable and degrades gracefully in older
browsers.
## Quick start
Install with `pip`:
``` sh
pip install mkdocs-material
```
Add the following line to your `mkdocs.yml`:
``` yaml
theme: 'material'
```
## Features
- Beautiful, readable and very user-friendly design based on Google's
**material design** guidelines, packed in a **full responsive** template
with a well-defined color palette, great typography, as well as a beautiful
search interface and footer.
- Beautiful, readable and very user-friendly design based on Google's material
design guidelines, packed in a full responsive template with a well-defined
and [easily customizable color palette][], great typography, as well as a
beautiful search interface and footer.
- Well-tested and **optimized CSS and Javascript**, including a cross-browser
- Well-tested and optimized Javascript and CSS including a cross-browser
fixed/sticky header, a drawer that even works without Javascript using
the `checkbox:checked` hack with fallbacks, **responsive tables** that scroll
when the screen is too small and **well-defined print styles**.
the [checkbox hack][] with fallbacks, responsive tables that scroll when
the screen is too small and well-defined print styles.
- Extra configuration options like **project logo**, links to the authors
**GitHub and Twitter accounts** and display of the **amount of stars** the
project has on GitHub.
- Extra configuration options like a [project logo][], links to the authors
[GitHub and Twitter accounts][], display of the amount of stars the
project has on GitHub and [Google Analytics integration][].
- **Easily extendable and customizable** due to a well-designed asset pipeline
- Easily [extendable and customizable][] due to a well-designed asset pipeline
built on-top of [Gulp][] with `npm` and `bower` and modular and abstracted
style definitions built with [SASS][].
- **Web application capability** on iOS - when the page is saved to the
homescreen, it behaves and looks like a native application.
- Web application capability on iOS when the page is saved to the homescreen,
it behaves and looks like a native application.
See the [getting started guide](/getting-started) for instructions how to get
See the [getting started guide](getting-started.md) for instructions how to get
it up and running.
[material design]: https://www.google.com/design/spec/material-design
[MkDocs]: http://www.mkdocs.org
[material design]: https://www.google.com/design/spec/material-design
[checkbox hack]: http://tutorialzine.com/2015/08/quick-tip-css-only-dropdowns-with-the-checkbox-hack/
[project logo]: getting-started.md#adding-a-logo
[easily customizable color palette]: getting-started.md#changing-the-color-palette
[GitHub and Twitter accounts]: getting-started.md#adding-a-github-and-twitter-account
[Google Analytics integration]: getting-started.md#google-analytics-integration
[extendable and customizable]: customization.md
[Gulp]: http://gulpjs.com
[SASS]: http://sass-lang.com/
[SASS]: http://sass-lang.com
+2
View File
@@ -1,5 +1,7 @@
# License
**MIT License**
Copyright (c) 2016 Martin Donath
Permission is hereby granted, free of charge, to any person obtaining a copy
Binary file not shown.
+2
View File
@@ -17,4 +17,6 @@
<glyph unicode="&#xe607;" glyph-name="github" d="M512.008 926.025c-282.738 0-512.008-229.218-512.008-511.998 0-226.214 146.704-418.132 350.136-485.836 25.586-4.738 34.992 11.11 34.992 24.632 0 12.204-0.48 52.542-0.696 95.324-142.448-30.976-172.504 60.41-172.504 60.41-23.282 59.176-56.848 74.916-56.848 74.916-46.452 31.778 3.51 31.124 3.51 31.124 51.4-3.61 78.476-52.766 78.476-52.766 45.672-78.27 119.776-55.64 149.004-42.558 4.588 33.086 17.852 55.68 32.506 68.464-113.73 12.942-233.276 56.85-233.276 253.032 0 55.898 20.004 101.574 52.76 137.428-5.316 12.9-22.854 64.972 4.952 135.5 0 0 43.006 13.752 140.84-52.49 40.836 11.348 84.636 17.036 128.154 17.234 43.502-0.198 87.336-5.886 128.256-17.234 97.734 66.244 140.656 52.49 140.656 52.49 27.872-70.528 10.35-122.6 5.036-135.5 32.82-35.856 52.694-81.532 52.694-137.428 0-196.654-119.778-239.95-233.79-252.624 18.364-15.89 34.724-47.046 34.724-94.812 0-68.508-0.596-123.644-0.596-140.508 0-13.628 9.222-29.594 35.172-24.566 203.322 67.776 349.842 259.626 349.842 485.768 0 282.78-229.234 511.998-511.992 511.998z" />
<glyph unicode="&#xe608;" glyph-name="download" d="M810.667 554.667h-170.667v256h-256v-256h-170.667l298.667-298.667 298.667 298.667zM213.333 170.667v-85.333h597.333v85.333h-597.333z" />
<glyph unicode="&#xe609;" glyph-name="star" d="M512 201.814l263.68-159.147-69.973 299.947 232.96 201.813-306.773 26.027-119.893 282.88-119.893-282.88-306.773-26.027 232.96-201.813-69.973-299.947z" />
<glyph unicode="&#xe610;" glyph-name="warning" d="M554 340.667v172h-84v-172h84zM554 170.667v86h-84v-86h84zM42 42.667l470 810 470-810h-940z" />
<glyph unicode="&#xe611;" glyph-name="hint" d="M614 682.667h240v-426h-300l-16 84h-240v-298h-84v726h384z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+71 -16
View File
@@ -34,18 +34,59 @@
{% if config.extra.logo %}
<link rel="apple-touch-icon" href="{{ base_url }}/{{ config.extra.logo }}">
{% endif %}
{% set icon = icon | default('assets/images/favicon-e565ddfa.ico') %}
{% set icon = icon | default("assets/images/favicon-e565ddfa3b.ico") %}
<link rel="shortcut icon" type="image/x-icon" href="{{ base_url }}/{{ icon }}">
<link rel="icon" type="image/x-icon" href="{{ base_url }}/{{ icon }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu:400,700">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Ubuntu+Mono">
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-334f02ec.css">
<style>
@font-face {
font-family: 'Icon';
src: url('{{ base_url }}/assets/fonts/icon.eot?52m981');
src: url('{{ base_url }}/assets/fonts/icon.eot?#iefix52m981')
format('embedded-opentype'),
url('{{ base_url }}/assets/fonts/icon.woff?52m981')
format('woff'),
url('{{ base_url }}/assets/fonts/icon.ttf?52m981')
format('truetype'),
url('{{ base_url }}/assets/fonts/icon.svg?52m981#icon')
format('svg');
font-weight: normal;
font-style: normal;
}
</style>
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-20d5debb47.css">
{% if config.extra.palette %}
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/palettes-05ab2406df.css">
{% endif %}
{% if config.extra.font != "none" %}
{% set text = config.extra.get("font", {}).text | default("Ubuntu") %}
{% set code = config.extra.get("font", {}).code | default("Ubuntu Mono") %}
{% set font = text + ':400,700|' + code | replace(' ', '+') %}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family={{ font }}">
<style>
body, input {
font-family: '{{ text }}', Helvetica, Arial, sans-serif;
}
pre, code {
font-family: '{{ code }}', 'Courier New', 'Courier', monospace;
}
</style>
{% endif %}
{% for path in extra_css %}
<link rel="stylesheet" href="{{ path }}">
{% endfor %}
<script src="{{ base_url }}/assets/javascripts/modernizr-4ab42b99fd.js"></script>
{% block extrahead %}{% endblock %}
</head>
<body>
{% set palette = config.extra.get("palette", {}) %}
{% set primary = palette.primary | replace(' ', '-') | lower %}
{% set accent = palette.accent | replace(' ', '-') | lower %}
<body class="{% if primary %}palette-primary-{{ primary }}{% endif %} {% if accent %}palette-accent-{{ accent }}{% endif %}">
{% if repo_name == "GitHub" and repo_url %}
{% set repo_id = repo_url | replace("https://github.com/", "") %}
{% if repo_id[-1:] == "/" %}
{% set repo_id = repo_id[:-1] %}
{% endif %}
{% endif %}
<div class="backdrop">
<div class="backdrop-paper"></div>
</div>
@@ -63,11 +104,7 @@
<article class="article">
<div class="wrapper">
{% if not h1 %}
{% if page_title %}
<h1>{{ page_title }}</h1>
{% else %}
<h1>{{ site_name }}</h1>
{% endif %}
<h1>{{ page_title | default(site_name, true)}}</h1>
{% endif %}
{{ content }}
<aside class="copyright" role="note">
@@ -77,7 +114,7 @@
Documentation built with
<a href="http://www.mkdocs.org" target="_blank">MkDocs</a>
using the
<a href="https://github.com/squidfunk/mkdocs-material" target="_blank">
<a href="http://squidfunk.github.io/mkdocs-material/" target="_blank">
Material
</a>
theme.
@@ -87,7 +124,8 @@
{% include "footer.html" %}
</footer>
{% endblock %}
</div></article>
</div>
</article>
<div class="results" role="status" aria-live="polite">
<div class="scrollable">
<div class="wrapper">
@@ -97,13 +135,11 @@
</div>
</div>
</main>
<script src="{{ base_url }}/assets/javascripts/modernizr-79394028.js"></script>
{% set repo_id = repo_url | replace('https://github.com/', '') %}
<script>
var base_url = '{{ base_url }}';
var repo_id = '{{ repo_id }}';
</script>
<script src="{{ base_url }}/assets/javascripts/application-d84ecdee.js"></script>
<script src="{{ base_url }}/assets/javascripts/application-997097ee0c.js"></script>
{% for path in extra_javascript %}
<script src="{{ path }}"></script>
{% endfor %}
@@ -115,10 +151,29 @@
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;
m.parentNode.insertBefore(a,m)
})(window, document,
'script', '//www.google-analytics.com/analytics.js','ga');
'script', '//www.google-analytics.com/analytics.js', 'ga');
/* General initialization */
ga('create', '{{ google_analytics[0] }}', '{{ google_analytics[1] }}');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
/* Track outbound links */
var buttons = document.querySelectorAll('a');
Array.prototype.map.call(buttons, function(item) {
if (item.host != document.location.host) {
item.addEventListener('click', function() {
var action = item.getAttribute('data-action') || 'follow';
ga('send', 'event', 'outbound', action, item.href);
});
}
});
/* Register handler to log search on blur */
var query = document.querySelector('.query');
query.addEventListener('blur', function() {
if (this.value) {
var path = document.location.pathname;
ga('send', 'pageview', path + '?q=' + this.value);
}
});
</script>
{% endif %}
</body>
+35 -34
View File
@@ -1,8 +1,6 @@
{% if repo_name == 'GitHub' %}
{% set repo_id = repo_url | replace('https://github.com/', '') %}
{% endif %}
<nav aria-label="navigation">
<a href="{{ repo_url }}" class="project">
<nav aria-label="Navigation">
{% set home = repo_url | default("/", true) %}
<a href="{{ home }}" class="project">
<div class="banner">
{% if config.extra.logo %}
<div class="logo">
@@ -20,49 +18,52 @@
</a>
<div class="scrollable">
<div class="wrapper">
{% if repo_name == 'GitHub' %}
{% if repo_name == "GitHub" and repo_url %}
<ul class="repo">
<li class="repo-download">
<a href="https://github.com/{{ repo_id }}/archive/master.zip" target="_blank" aria-label="Download {{ repo_id }} on GitHub">
{% set version = config.extra.version | default("master") %}
<a href="{{ repo_url }}/archive/{{ version }}.zip" target="_blank" title="Download" data-action="download">
<i class="icon icon-download"></i> Download
</a>
</li>
<li class="repo-stars">
<a href="https://github.com/{{ repo_id }}" target="_blank" aria-label="Star {{ repo_id }} on GitHub">
<i class="icon icon-star"></i> Star
<a href="{{ repo_url }}/stargazers" target="_blank" title="Stargazers" data-action="star">
<i class="icon icon-star"></i> Stars
<span class="count">&ndash;</span>
</a>
</li>
</ul>
<hr>
{% endif %}
<ul class="toc">
{% for nav_item in nav %}
{% include "nav.html" %}
{% endfor %}
<div class="toc">
<ul>
{% for nav_item in nav %}
{% include "nav.html" %}
{% endfor %}
</ul>
{% if config.extra.author %}
<li>
<hr>
<span class="section">The author</span>
<ul>
{% if config.extra.author.twitter %}
<li>
<a href="https://twitter.com/{{ config.extra.author.twitter }}" title="@{{ config.extra.author.twitter }} on Twitter" target="_blank">
@{{ config.extra.author.twitter }} on Twitter
</a>
</li>
{% endif %}
{% if config.extra.author.github %}
<li>
<a href="https://github.com/{{ config.extra.author.github }}" title="@{{ config.extra.author.twitter }} on GitHub" target="_blank">
@{{ config.extra.author.github }} on GitHub
</a>
</li>
{% endif %}
</ul>
</li>
<hr>
<span class="section">The author</span>
<ul>
{% if config.extra.author.twitter %}
{% set author = config.extra.author.twitter %}
<li>
<a href="https://twitter.com/{{ author }}" target="_blank" title="@{{ author }} on Twitter">
@{{ author }} on Twitter
</a>
</li>
{% endif %}
{% if config.extra.author.github %}
{% set author = config.extra.author.github %}
<li>
<a href="https://github.com/{{ author }}" target="_blank" title="@{{ author }} on GitHub">
@{{ author }} on GitHub
</a>
</li>
{% endif %}
</ul>
{% endif %}
</ul>
</div>
</div>
</div>
</nav>
+7 -3
View File
@@ -1,9 +1,11 @@
{% if include_next_prev %}
<nav class="pagination" aria-label="footer navigation">
<nav class="pagination" aria-label="Footer">
<div class="previous">
{% if previous_page %}
<a href="{{ previous_page.url }}" title="{{ previous_page.title }}">
<span class="direction">Previous</span>
<span class="direction">
{{ config.extra.get("i18n", {}).prev | default("Previous") }}
</span>
<div class="page">
<div class="button button-previous" role="button" aria-label="Previous">
<i class="icon icon-back"></i>
@@ -20,7 +22,9 @@
<div class="next">
{% if next_page %}
<a href="{{ next_page.url }}" title="{{ next_page.title }}">
<span class="direction">Next</span>
<span class="direction">
{{ config.extra.get("i18n", {}).next | default("Next") }}
</span>
<div class="page">
<div class="stretch">
<div class="title">
+8 -10
View File
@@ -1,4 +1,4 @@
<nav aria-label="top navigation">
<nav aria-label="Header">
<div class="bar default">
<div class="button button-menu" role="button" aria-label="Menu">
<label class="toggle-button icon icon-menu" for="toggle-drawer">
@@ -19,21 +19,19 @@
{% endfor %}
</span>
{% endif %}
{% if page_title %}
{{ page_title }}
{% else %}
{{ site_name }}
{% endif %}
{{ page_title | default(site_name, true) }}
</div>
</div>
{% if config.extra.author and config.extra.author.twitter %}
{% if config.extra.get("author", {}).twitter %}
{% set author = config.extra.author.twitter %}
<div class="button button-twitter" role="button" aria-label="Twitter">
<a href="https://twitter.com/{{ config.extra.author.twitter }}" title="@{{ config.extra.author.twitter }} on Twitter" target="_blank" class="toggle-button icon icon-twitter"></a>
<a href="https://twitter.com/{{ author }}" title="@{{ author }} on Twitter" target="_blank" class="toggle-button icon icon-twitter"></a>
</div>
{% endif %}
{% if config.extra.author and config.extra.author.github %}
{% if config.extra.get("author", {}).github %}
{% set author = config.extra.author.github %}
<div class="button button-github" role="button" aria-label="GitHub">
<a href="https://github.com/{{ config.extra.author.github }}" title="@{{ config.extra.author.github }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
<a href="https://github.com/{{ author }}" title="@{{ author }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
</div>
{% endif %}
<div class="button button-search" role="button" aria-label="Search">
+5 -4
View File
@@ -1,6 +1,7 @@
{
"assets/images/favicon.ico": "assets/images/favicon-e565ddfa.ico",
"assets/javascripts/application.js": "assets/javascripts/application-d84ecdee.js",
"assets/javascripts/modernizr.js": "assets/javascripts/modernizr-79394028.js",
"assets/stylesheets/application.css": "assets/stylesheets/application-334f02ec.css"
"assets/images/favicon.ico": "assets/images/favicon-e565ddfa3b.ico",
"assets/javascripts/application.js": "assets/javascripts/application-997097ee0c.js",
"assets/javascripts/modernizr.js": "assets/javascripts/modernizr-4ab42b99fd.js",
"assets/stylesheets/application.css": "assets/stylesheets/application-20d5debb47.css",
"assets/stylesheets/palettes.css": "assets/stylesheets/palettes-05ab2406df.css"
}
+15 -21
View File
@@ -1,10 +1,9 @@
{% if nav_item.children %}
<li>
<hr>
<span class="section">{{ nav_item.title }}</span>
<ul>
{% for nav_item in nav_item.children %}
{% include 'nav.html' %}
{% include "nav.html" %}
{% endfor %}
</ul>
</li>
@@ -14,25 +13,20 @@
{{ nav_item.title }}
</a>
{% if nav_item == current_page %}
<ul>
{% for toc_item in toc %}
{% if h1 %}
{% for toc_item in toc_item.children %}
<li class="anchor">
<a title="{{ toc_item.title }}" href="{{ toc_item.url }}">
{{ toc_item.title }}
</a>
</li>
{% endfor %}
{% else %}
<li class="anchor">
<a title="{{ toc_item.title }}" href="{{ toc_item.url }}">
{{ toc_item.title }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
{% if h1 %}
{% set toc = (toc | first).children %}
{% endif %}
{% if toc and (toc | first) %}
<ul>
{% for toc_item in toc %}
<li class="anchor">
<a title="{{ toc_item.title }}" href="{{ toc_item.url }}">
{{ toc_item.title }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
</li>
{% endif %}
+2 -2
View File
@@ -36,7 +36,7 @@ theme_dir: material
# Options
extra:
version: 0.1.0
version: 0.2.1
logo: images/logo.png
author:
github: squidfunk
@@ -47,7 +47,7 @@ markdown_extensions:
- codehilite(css_class=code)
- admonition
- toc:
permalink:
permalink: '#'
# Page tree
pages:
+23 -26
View File
@@ -1,6 +1,6 @@
{
"name": "Material",
"version": "0.1.0",
"name": "mkdocs-material",
"version": "0.2.1",
"description": "A material design theme for MkDocs",
"homepage": "http://squidfunk.github.io/mkdocs-material/",
"authors": [
@@ -17,32 +17,29 @@
},
"private": true,
"devDependencies": {
"autoprefixer-core": "^5.1.11",
"css-mqpacker": "^3.1.0",
"del": "^1.1.1",
"gulp": "^3.8.11",
"autoprefixer": "^6.3.2",
"css-mqpacker": "^4.0.0",
"del": "^2.2.0",
"gulp": "^3.9.1",
"gulp-add-src": "^0.2.0",
"gulp-concat": "^2.5.2",
"gulp-debug": "^2.0.1",
"gulp-htmlmin": "^1.1.1",
"gulp-if": "^1.2.5",
"gulp-ignore": "^1.2.1",
"gulp-concat": "^2.6.0",
"gulp-cssnano": "^2.1.1",
"gulp-htmlmin": "^1.3.0",
"gulp-if": "^2.0.0",
"gulp-ignore": "^2.0.1",
"gulp-image-optimization": "^0.1.3",
"gulp-match": "^0.2.1",
"gulp-minify-css": "^1.1.0",
"gulp-modernizr": "^1.0.0-alpha",
"gulp-plumber": "^1.0.0",
"gulp-postcss": "^5.1.3",
"gulp-modernizr": "0.0.0",
"gulp-plumber": "^1.1.0",
"gulp-postcss": "^6.1.0",
"gulp-remove-empty-lines": "0.0.2",
"gulp-rev": "^3.0.1",
"gulp-rev-collector": "^1.0.0",
"gulp-sass": "^2.0.3",
"gulp-sourcemaps": "^1.5.2",
"gulp-sync": "^0.1.4",
"gulp-uglify": "^1.2.0",
"gulp-util": "^3.0.4",
"node-notifier": "^4.2.1",
"vinyl-paths": "^1.0.0",
"yargs": "^3.8.0"
"gulp-rev": "^7.0.0",
"gulp-rev-collector": "^1.0.2",
"gulp-sass": "^2.2.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-uglify": "^1.5.2",
"gulp-util": "^3.0.7",
"node-notifier": "^4.5.0",
"vinyl-paths": "^2.1.0",
"yargs": "^3.32.0"
}
}
+1 -1
View File
@@ -23,7 +23,7 @@ from setuptools import setup, find_packages
# Package description
setup(
name = 'mkdocs-material',
version = '0.1.0',
version = '0.2.1',
url = 'http://squidfunk.github.io/mkdocs-material/',
license = 'MIT',
description = 'A material design theme for MkDocs',
Binary file not shown.
+346 -294
View File
@@ -1,296 +1,348 @@
{
"IcoMoonType": "selection",
"icons": [
{
"icon": {
"paths": [
"M661.333 597.333h-33.92l-11.733-11.733c41.813-48.427 66.987-111.36 66.987-180.267 0-153.173-124.16-277.333-277.333-277.333s-277.333 124.16-277.333 277.333 124.16 277.333 277.333 277.333c68.907 0 131.84-25.173 180.267-66.773l11.733 11.733v33.707l213.333 212.907 63.573-63.573-212.907-213.333zM405.333 597.333c-106.027 0-192-85.973-192-192s85.973-192 192-192 192 85.973 192 192-85.973 192-192 192z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"search"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 0,
"order": 7,
"prevSize": 24,
"code": 58880,
"name": "search"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 0
},
{
"icon": {
"paths": [
"M853.333 469.333h-519.253l238.293-238.293-60.373-60.373-341.333 341.333 341.333 341.333 60.373-60.373-238.293-238.293h519.253v-85.333z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"arrow-back"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 1,
"order": 4,
"prevSize": 24,
"code": 58881,
"name": "arrow-back"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 1
},
{
"icon": {
"paths": [
"M426.667 256l-60.373 60.373 195.627 195.627-195.627 195.627 60.373 60.373 256-256z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"chevron-right"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 2,
"order": 9,
"prevSize": 24,
"code": 58882,
"name": "chevron-right"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 2
},
{
"icon": {
"paths": [
"M810.667 273.707l-60.373-60.373-238.293 238.293-238.293-238.293-60.373 60.373 238.293 238.293-238.293 238.293 60.373 60.373 238.293-238.293 238.293 238.293 60.373-60.373-238.293-238.293z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"close"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 3,
"order": 8,
"prevSize": 24,
"code": 58883,
"name": "close"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 3
},
{
"icon": {
"paths": [
"M128 768h768v-85.333h-768v85.333zM128 554.667h768v-85.333h-768v85.333zM128 256v85.333h768v-85.333h-768z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"menu"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 4,
"order": 10,
"prevSize": 24,
"code": 58884,
"name": "menu"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 4
},
{
"icon": {
"paths": [
"M512 170.667l-60.373 60.373 238.293 238.293h-519.253v85.333h519.253l-238.293 238.293 60.373 60.373 341.333-341.333z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"arrow-forward"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 5,
"order": 15,
"prevSize": 24,
"code": 58885,
"name": "arrow-forward"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 5
},
{
"icon": {
"paths": [
"M1024 194.418c-37.676 16.708-78.164 28.002-120.66 33.080 43.372-26 76.686-67.17 92.372-116.23-40.596 24.078-85.556 41.56-133.41 50.98-38.32-40.83-92.922-66.34-153.346-66.34-116.022 0-210.088 94.058-210.088 210.078 0 16.466 1.858 32.5 5.44 47.878-174.6-8.764-329.402-92.4-433.018-219.506-18.084 31.028-28.446 67.116-28.446 105.618 0 72.888 37.088 137.192 93.46 174.866-34.438-1.092-66.832-10.542-95.154-26.278-0.020 0.876-0.020 1.756-0.020 2.642 0 101.788 72.418 186.696 168.522 206-17.626 4.8-36.188 7.372-55.348 7.372-13.538 0-26.698-1.32-39.528-3.772 26.736 83.46 104.32 144.206 196.252 145.896-71.9 56.35-162.486 89.934-260.916 89.934-16.958 0-33.68-0.994-50.116-2.94 92.972 59.61 203.402 94.394 322.042 94.394 386.422 0 597.736-320.124 597.736-597.744 0-9.108-0.206-18.168-0.61-27.18 41.056-29.62 76.672-66.62 104.836-108.748z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"twitter",
"brand",
"tweet",
"social"
],
"defaultCode": 58525,
"grid": 24
},
"attrs": [],
"properties": {
"id": 6,
"order": 9,
"prevSize": 24,
"code": 58886,
"ligatures": "twitter, brand11",
"name": "twitter"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 6
},
{
"icon": {
"paths": [
"M810.667 384h-170.667v-256h-256v256h-170.667l298.667 298.667 298.667-298.667zM213.333 768v85.333h597.333v-85.333h-597.333z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"file-download"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 7,
"order": 10,
"prevSize": 24,
"code": 58888,
"name": "download"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 7
},
{
"icon": {
"paths": [
"M512 736.853l263.68 159.147-69.973-299.947 232.96-201.813-306.773-26.027-119.893-282.88-119.893 282.88-306.773 26.027 232.96 201.813-69.973 299.947z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"star"
],
"grid": 24
},
"attrs": [],
"properties": {
"id": 8,
"order": 9,
"prevSize": 24,
"code": 58889,
"name": "star"
},
"setIdx": 1,
"setId": 4,
"iconIdx": 8
},
{
"icon": {
"paths": [
"M512.008 12.642c-282.738 0-512.008 229.218-512.008 511.998 0 226.214 146.704 418.132 350.136 485.836 25.586 4.738 34.992-11.11 34.992-24.632 0-12.204-0.48-52.542-0.696-95.324-142.448 30.976-172.504-60.41-172.504-60.41-23.282-59.176-56.848-74.916-56.848-74.916-46.452-31.778 3.51-31.124 3.51-31.124 51.4 3.61 78.476 52.766 78.476 52.766 45.672 78.27 119.776 55.64 149.004 42.558 4.588-33.086 17.852-55.68 32.506-68.464-113.73-12.942-233.276-56.85-233.276-253.032 0-55.898 20.004-101.574 52.76-137.428-5.316-12.9-22.854-64.972 4.952-135.5 0 0 43.006-13.752 140.84 52.49 40.836-11.348 84.636-17.036 128.154-17.234 43.502 0.198 87.336 5.886 128.256 17.234 97.734-66.244 140.656-52.49 140.656-52.49 27.872 70.528 10.35 122.6 5.036 135.5 32.82 35.856 52.694 81.532 52.694 137.428 0 196.654-119.778 239.95-233.79 252.624 18.364 15.89 34.724 47.046 34.724 94.812 0 68.508-0.596 123.644-0.596 140.508 0 13.628 9.222 29.594 35.172 24.566 203.322-67.776 349.842-259.626 349.842-485.768 0-282.78-229.234-511.998-511.992-511.998z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"github",
"brand",
"octacat",
"social"
],
"grid": 24
},
"attrs": [],
"properties": {
"order": 27,
"prevSize": 24,
"ligatures": "github, brand40",
"name": "github",
"id": 433,
"code": 58887
},
"setIdx": 5,
"setId": 0,
"iconIdx": 432
}
],
"height": 1024,
"metadata": {
"name": "icon"
},
"preferences": {
"showGlyphs": true,
"showQuickUse": true,
"showQuickUse2": true,
"showSVGs": true,
"fontPref": {
"prefix": "icon-",
"metadata": {
"fontFamily": "icon",
"majorVersion": 1,
"minorVersion": 0
},
"metrics": {
"emSize": 1024,
"baseline": 6.25,
"whitespace": 50
},
"ie7": true,
"showSelector": true,
"selector": "class",
"classSelector": ".icon",
"showMetrics": true,
"showMetadata": true,
"cssVars": true,
"embed": false,
"noie8": false
},
"imagePref": {
"prefix": "icon-",
"png": true,
"useClassSelector": true,
"color": 4473924,
"bgColor": 16777215
},
"historySize": 100,
"showCodes": true,
"gridSize": 16
}
  "IcoMoonType": "selection",
  "icons": [
    {
      "icon": {
        "paths": [
          "M661.333 597.333h-33.92l-11.733-11.733c41.813-48.427 66.987-111.36 66.987-180.267 0-153.173-124.16-277.333-277.333-277.333s-277.333 124.16-277.333 277.333 124.16 277.333 277.333 277.333c68.907 0 131.84-25.173 180.267-66.773l11.733 11.733v33.707l213.333 212.907 63.573-63.573-212.907-213.333zM405.333 597.333c-106.027 0-192-85.973-192-192s85.973-192 192-192 192 85.973 192 192-85.973 192-192 192z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "search"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 0,
        "order": 7,
        "prevSize": 24,
        "code": 58880,
        "name": "search"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 0
    },
    {
      "icon": {
        "paths": [
          "M853.333 469.333h-519.253l238.293-238.293-60.373-60.373-341.333 341.333 341.333 341.333 60.373-60.373-238.293-238.293h519.253v-85.333z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "arrow-back"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 1,
        "order": 4,
        "prevSize": 24,
        "code": 58881,
        "name": "arrow-back"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 1
    },
    {
      "icon": {
        "paths": [
          "M426.667 256l-60.373 60.373 195.627 195.627-195.627 195.627 60.373 60.373 256-256z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "chevron-right"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 2,
        "order": 9,
        "prevSize": 24,
        "code": 58882,
        "name": "chevron-right"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 2
    },
    {
      "icon": {
        "paths": [
          "M810.667 273.707l-60.373-60.373-238.293 238.293-238.293-238.293-60.373 60.373 238.293 238.293-238.293 238.293 60.373 60.373 238.293-238.293 238.293 238.293 60.373-60.373-238.293-238.293z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "close"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 3,
        "order": 8,
        "prevSize": 24,
        "code": 58883,
        "name": "close"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 3
    },
    {
      "icon": {
        "paths": [
          "M128 768h768v-85.333h-768v85.333zM128 554.667h768v-85.333h-768v85.333zM128 256v85.333h768v-85.333h-768z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "menu"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 4,
        "order": 10,
        "prevSize": 24,
        "code": 58884,
        "name": "menu"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 4
    },
    {
      "icon": {
        "paths": [
          "M512 170.667l-60.373 60.373 238.293 238.293h-519.253v85.333h519.253l-238.293 238.293 60.373 60.373 341.333-341.333z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "arrow-forward"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 5,
        "order": 15,
        "prevSize": 24,
        "code": 58885,
        "name": "arrow-forward"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 5
    },
    {
      "icon": {
        "paths": [
          "M1024 194.418c-37.676 16.708-78.164 28.002-120.66 33.080 43.372-26 76.686-67.17 92.372-116.23-40.596 24.078-85.556 41.56-133.41 50.98-38.32-40.83-92.922-66.34-153.346-66.34-116.022 0-210.088 94.058-210.088 210.078 0 16.466 1.858 32.5 5.44 47.878-174.6-8.764-329.402-92.4-433.018-219.506-18.084 31.028-28.446 67.116-28.446 105.618 0 72.888 37.088 137.192 93.46 174.866-34.438-1.092-66.832-10.542-95.154-26.278-0.020 0.876-0.020 1.756-0.020 2.642 0 101.788 72.418 186.696 168.522 206-17.626 4.8-36.188 7.372-55.348 7.372-13.538 0-26.698-1.32-39.528-3.772 26.736 83.46 104.32 144.206 196.252 145.896-71.9 56.35-162.486 89.934-260.916 89.934-16.958 0-33.68-0.994-50.116-2.94 92.972 59.61 203.402 94.394 322.042 94.394 386.422 0 597.736-320.124 597.736-597.744 0-9.108-0.206-18.168-0.61-27.18 41.056-29.62 76.672-66.62 104.836-108.748z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "twitter",
          "brand",
          "tweet",
          "social"
        ],
        "defaultCode": 58525,
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 6,
        "order": 9,
        "prevSize": 24,
        "code": 58886,
        "ligatures": "twitter, brand11",
        "name": "twitter"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 6
    },
    {
      "icon": {
        "paths": [
          "M810.667 384h-170.667v-256h-256v256h-170.667l298.667 298.667 298.667-298.667zM213.333 768v85.333h597.333v-85.333h-597.333z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "file-download"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 7,
        "order": 10,
        "prevSize": 24,
        "code": 58888,
        "name": "download"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 7
    },
    {
      "icon": {
        "paths": [
          "M512 736.853l263.68 159.147-69.973-299.947 232.96-201.813-306.773-26.027-119.893-282.88-119.893 282.88-306.773 26.027 232.96 201.813-69.973 299.947z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "star"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "id": 8,
        "order": 9,
        "prevSize": 24,
        "code": 58889,
        "name": "star"
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 8
    },
    {
      "icon": {
        "paths": [
          "M512.008 12.642c-282.738 0-512.008 229.218-512.008 511.998 0 226.214 146.704 418.132 350.136 485.836 25.586 4.738 34.992-11.11 34.992-24.632 0-12.204-0.48-52.542-0.696-95.324-142.448 30.976-172.504-60.41-172.504-60.41-23.282-59.176-56.848-74.916-56.848-74.916-46.452-31.778 3.51-31.124 3.51-31.124 51.4 3.61 78.476 52.766 78.476 52.766 45.672 78.27 119.776 55.64 149.004 42.558 4.588-33.086 17.852-55.68 32.506-68.464-113.73-12.942-233.276-56.85-233.276-253.032 0-55.898 20.004-101.574 52.76-137.428-5.316-12.9-22.854-64.972 4.952-135.5 0 0 43.006-13.752 140.84 52.49 40.836-11.348 84.636-17.036 128.154-17.234 43.502 0.198 87.336 5.886 128.256 17.234 97.734-66.244 140.656-52.49 140.656-52.49 27.872 70.528 10.35 122.6 5.036 135.5 32.82 35.856 52.694 81.532 52.694 137.428 0 196.654-119.778 239.95-233.79 252.624 18.364 15.89 34.724 47.046 34.724 94.812 0 68.508-0.596 123.644-0.596 140.508 0 13.628 9.222 29.594 35.172 24.566 203.322-67.776 349.842-259.626 349.842-485.768 0-282.78-229.234-511.998-511.992-511.998z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "github",
          "brand",
          "octacat",
          "social"
        ],
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "order": 27,
        "prevSize": 24,
        "ligatures": "github, brand40",
        "name": "github",
        "id": 9,
        "code": 58887
      },
      "setIdx": 0,
      "setId": 3,
      "iconIdx": 9
    },
    {
      "icon": {
        "paths": [
          "M554 598v-172h-84v172h84zM554 768v-86h-84v86h84zM42 896l470-810 470 810h-940z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "warning"
        ],
        "defaultCode": 57346,
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "order": 11,
        "prevSize": 24,
        "name": "warning",
        "ligatures": "warning",
        "id": 2,
        "code": 58896
      },
      "setIdx": 1,
      "setId": 2,
      "iconIdx": 2
    },
    {
      "icon": {
        "paths": [
          "M614 256h240v426h-300l-16-84h-240v298h-84v-726h384z"
        ],
        "attrs": [],
        "isMulticolor": false,
        "tags": [
          "flag"
        ],
        "defaultCode": 57683,
        "grid": 24
      },
      "attrs": [],
      "properties": {
        "order": 13,
        "prevSize": 24,
        "name": "note",
        "ligatures": "flag",
        "id": 140,
        "code": 58897
      },
      "setIdx": 1,
      "setId": 2,
      "iconIdx": 140
    }
  ],
  "height": 1024,
  "metadata": {
    "name": "icon"
  },
  "preferences": {
    "showGlyphs": true,
    "showQuickUse": true,
    "showQuickUse2": true,
    "showSVGs": true,
    "fontPref": {
      "prefix": "icon-",
      "metadata": {
        "fontFamily": "icon",
        "majorVersion": 1,
        "minorVersion": 0
      },
      "metrics": {
        "emSize": 1024,
        "baseline": 6.25,
        "whitespace": 50
      },
      "ie7": true,
      "showSelector": true,
      "selector": "class",
      "classSelector": ".icon",
      "showMetrics": true,
      "showMetadata": true,
      "cssVars": true,
      "embed": false,
      "noie8": false
    },
    "imagePref": {
      "prefix": "icon-",
      "png": true,
      "useClassSelector": true,
      "color": 4473924,
      "bgColor": 16777215
    },
    "historySize": 100,
    "showCodes": true,
    "gridSize": 16
  }
}
+2
View File
@@ -17,4 +17,6 @@
<glyph unicode="&#xe607;" glyph-name="github" d="M512.008 926.025c-282.738 0-512.008-229.218-512.008-511.998 0-226.214 146.704-418.132 350.136-485.836 25.586-4.738 34.992 11.11 34.992 24.632 0 12.204-0.48 52.542-0.696 95.324-142.448-30.976-172.504 60.41-172.504 60.41-23.282 59.176-56.848 74.916-56.848 74.916-46.452 31.778 3.51 31.124 3.51 31.124 51.4-3.61 78.476-52.766 78.476-52.766 45.672-78.27 119.776-55.64 149.004-42.558 4.588 33.086 17.852 55.68 32.506 68.464-113.73 12.942-233.276 56.85-233.276 253.032 0 55.898 20.004 101.574 52.76 137.428-5.316 12.9-22.854 64.972 4.952 135.5 0 0 43.006 13.752 140.84-52.49 40.836 11.348 84.636 17.036 128.154 17.234 43.502-0.198 87.336-5.886 128.256-17.234 97.734 66.244 140.656 52.49 140.656 52.49 27.872-70.528 10.35-122.6 5.036-135.5 32.82-35.856 52.694-81.532 52.694-137.428 0-196.654-119.778-239.95-233.79-252.624 18.364-15.89 34.724-47.046 34.724-94.812 0-68.508-0.596-123.644-0.596-140.508 0-13.628 9.222-29.594 35.172-24.566 203.322 67.776 349.842 259.626 349.842 485.768 0 282.78-229.234 511.998-511.992 511.998z" />
<glyph unicode="&#xe608;" glyph-name="download" d="M810.667 554.667h-170.667v256h-256v-256h-170.667l298.667-298.667 298.667 298.667zM213.333 170.667v-85.333h597.333v85.333h-597.333z" />
<glyph unicode="&#xe609;" glyph-name="star" d="M512 201.814l263.68-159.147-69.973 299.947 232.96 201.813-306.773 26.027-119.893 282.88-119.893-282.88-306.773-26.027 232.96-201.813-69.973-299.947z" />
<glyph unicode="&#xe610;" glyph-name="warning" d="M554 340.667v172h-84v-172h84zM554 170.667v86h-84v-86h84zM42 42.667l470 810 470-810h-940z" />
<glyph unicode="&#xe611;" glyph-name="hint" d="M614 682.667h240v-426h-300l-16 84h-240v-298h-84v726h384z" />
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.
Binary file not shown.
+23 -18
View File
@@ -253,7 +253,7 @@ document.addEventListener('DOMContentLoaded', function() {
/* Close search and jump to anchor when on same page */
var parts = link.href.split('#');
if (parts[0] == window.location.href.split('#')[0]) {
if (parts[0] == document.location.href.split('#')[0]) {
link.addEventListener('click', function(e) {
document.body.classList.remove('toggle-search');
document.body.classList.remove('locked');
@@ -373,6 +373,9 @@ document.addEventListener('DOMContentLoaded', function() {
window.addEventListener('keyup', function(e) {
var code = e.keyCode || e.which;
if (code == 27) {
query.blur();
/* Exit locked state */
document.body.classList.remove('toggle-search');
document.body.classList.remove('locked');
toggle.checked = false;
@@ -502,24 +505,26 @@ document.addEventListener('DOMContentLoaded', function() {
* ------------------------------------------------------------------------- */
/* Get Stars for current repository */
pegasus('https://api.github.com/repos/' + repo_id).then(
if (repo_id) {
pegasus('https://api.github.com/repos/' + repo_id).then(
/* Request successful, we got the stars */
function(data, xhr) {
var count = data.stargazers_count;
if (count > 10000)
count = (count / 1000).toFixed(0) + "k";
else if (count > 1000)
count = (count / 1000).toFixed(1) + "k";
/* Request successful, we got the stars */
function(data, xhr) {
var count = data.stargazers_count;
if (count > 10000)
count = (count / 1000).toFixed(0) + 'k';
else if (count > 1000)
count = (count / 1000).toFixed(1) + 'k';
/* Set number of stars */
var stars = document.querySelector('.repo-stars .count');
stars.innerHTML = count;
},
/* Set number of stars */
var stars = document.querySelector('.repo-stars .count');
stars.innerHTML = count;
},
/* Handle error */
function(data, xhr) {
console.error(data, xhr.status);
}
);
/* Handle error */
function(data, xhr) {
console.error(data, xhr.status);
}
);
}
});
+1 -8
View File
@@ -24,13 +24,6 @@
* Code highlighter
* ------------------------------------------------------------------------- */
/*
* Inline code
*/
code {
color: $primary;
}
/*
* Code block
*/
@@ -69,7 +62,7 @@ pre {
/*
* Strings
*/
.s {
.s, .s1 {
color: #183691;
}
+12 -1
View File
@@ -32,7 +32,7 @@
/*
* Hide non-relevant elements
*/
.header, .project, .footer {
.header, .drawer, .headerlink, .footer {
display: none;
}
@@ -41,6 +41,13 @@
*/
.article {
/*
* Remove top spacing
*/
.wrapper {
padding-top: 0;
}
/*
* Remove color in all code blocks
*/
@@ -48,6 +55,10 @@
color: $black !important;
}
pre {
border: 1px solid $black-lightest;
}
/*
* Border-radius makes this table entirely black on paper, so scrap it
*/
+28 -20
View File
@@ -21,28 +21,22 @@
*/
/* ----------------------------------------------------------------------------
* Font faces
* Font faces - defined in base.html for correct path resolution
* ------------------------------------------------------------------------- */
/*
* Base URL and path for icon font.
*/
$base: '../..';
$path: $base + '/assets/fonts/';
/*
* Icon font
*/
@font-face {
font-family: 'Icon';
src: url($path + 'icon.eot?52m981');
src: url($path + 'icon.eot?#iefix52m981') format('embedded-opentype'),
url($path + 'icon.woff?52m981') format('woff'),
url($path + 'icon.ttf?52m981') format('truetype'),
url($path + 'icon.svg?52m981#icon') format('svg');
font-weight: normal;
font-style: normal;
}
// /*
// * Icon font
// */
// @font-face {
// font-family: 'Icon';
// src: url('/assets/fonts/icon.eot?52m981');
// src: url('/assets/fonts/icon.eot?#iefix52m981') format('embedded-opentype'),
// url('/assets/fonts/icon.woff?52m981') format('woff'),
// url('/assets/fonts/icon.ttf?52m981') format('truetype'),
// url('/assets/fonts/icon.svg?52m981#icon') format('svg');
// font-weight: normal;
// font-style: normal;
// }
/* ----------------------------------------------------------------------------
* Representational classes
@@ -133,4 +127,18 @@ $path: $base + '/assets/fonts/';
*/
.icon-star:before {
content: "\e609";
}
/*
* Warning icon
*/
.icon-warning:before {
content: "\e610";
}
/*
* Star icon
*/
.icon-note:before {
content: "\e611";
}
@@ -44,9 +44,9 @@
}
/*
* Headlines and chapters in primary color
* Headlines, chapters, links and inline code
*/
h1, h2 {
h1, h2, a, code {
color: $primary;
}
@@ -58,18 +58,25 @@
}
/*
* Color links
* Underline links
*/
a {
color: $primary;
border-bottom: 1px dotted;
}
/*
* Hovered link
*/
&:hover,
&:focus {
color: $accent;
}
/*
* Hovered and focused links
*/
a:hover, a:focus {
color: $accent;
}
/*
* Light permalinks
*/
.headerlink {
color: $black-lighter;
border: none;
}
/*
@@ -117,6 +124,13 @@
.footer {
background: $primary;
color: $white;
/*
* Remove bottom border on links
*/
a {
border: none;
}
}
/*
@@ -134,10 +148,8 @@
/*
* Inherit color for links
*/
a,
a:hover,
a:focus {
color: inherit;
a .title, a .button {
color: $white;
}
/*
@@ -152,7 +164,8 @@
* Admonition support
*/
.admonition {
background: mix($light-blue-500, $white, 10%);
background: $light-blue-400;
color: $white;
/*
* Embedded code blocks
@@ -165,17 +178,13 @@
* A warning hint
*/
&.warning {
background: mix($red-500, $white, 10%);
background: $red-400;
}
}
/*
* Permalink support
*/
.article {
h2, h3, h4, h5, h6 {
a {
color: $black-lighter;
}
/*
* Headlines, chapters, links and inline code
*/
a, a:hover {
color: $white;
}
}
@@ -126,6 +126,22 @@
}
}
/*
* Align permalinks on the right
*/
.headerlink {
float: right;
margin-left: 20px;
font-size: 14px;
/*
* Hide permalink to main headline
*/
h1 & {
display: none;
}
}
/*
* Paragraphs and section titles
*/
@@ -133,6 +149,13 @@
margin-top: 1.5em;
}
/*
* Smaler top spacing for nested lists
*/
li ul, li ol {
margin-top: 0.75em;
}
/*
* List elements
*/
@@ -151,7 +174,7 @@
/*
* Add icon for elements of an unordered list
*/
ul li:before {
ul > li:before {
content: "\e602";
display: block;
float: left;
@@ -219,7 +242,7 @@
padding: 12px 16px;
font-size: 12px;
text-align: left;
white-space: nowrap;
vertical-align: top;
}
/*
@@ -227,7 +250,7 @@
*/
td {
padding: 12px 16px;
white-space: nowrap;
vertical-align: top;
}
}
@@ -514,27 +537,31 @@
margin: 20px -24px 0;
padding: 20px 24px;
}
}
/*
* Permalink support
*/
.article {
/*
* Hide link to main headline
* Admonition title, if given
*/
h1 a {
display: none;
}
.admonition-title {
font-size: 20px;
/*
* Align permalinks on the right
*/
h2, h3, h4, h5, h6 {
a {
float: right;
margin-left: 20px;
/*
* Default icon
*/
&:before {
content: "\e611";
display: block;
float: left;
font-family: 'Icon';
font-size: 24px;
vertical-align: -0.1em;
margin-right: 5px;
}
}
/*
* Warning icon
*/
&.warning .admonition-title:before {
content: "\e610";
}
}
@@ -45,13 +45,6 @@
}
}
/*
* Admonition support
*/
.admonition-title {
font-weight: 700;
}
/*
* Permalink support
*/
@@ -28,7 +28,7 @@
* Default font styles
*/
body, input {
font-family: 'Ubuntu', 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 400;
/* Enable font-smoothing in Webkit and FF */
@@ -47,7 +47,7 @@ body, input {
* Proportional fonts
*/
pre, code {
font-family: 'Ubuntu Mono', 'Courier New', 'Courier', monospace;
font-family: 'Courier New', 'Courier', monospace;
/*
* Use system fonts, if browser doesn't support webfonts
@@ -31,7 +31,7 @@
/* [tablet landscape-]: Light gray background */
@include break-to-device(tablet landscape) {
background: darken($white, 5%);
background: $white;
}
/*
@@ -50,27 +50,23 @@
* Hovered link
*/
&:hover, &:focus {
color: $accent;
color: $primary;
}
}
/*
* Color anchors menu
*/
.anchor a {
border-left: 2px solid $primary;
}
/*
* Main sections
*/
.section {
color: $black-light;
}
/*
* Content wrapper
*/
.wrapper {
/* [tablet landscape-]: Light gray background */
@include break-to-device(tablet landscape) {
background: darken($white, 5%);
}
}
}
/*
@@ -106,7 +102,7 @@
*/
&:hover .logo img,
&:focus .logo img {
@include drop-shadow(3);
@include drop-shadow(2);
}
}
@@ -114,8 +110,6 @@
* Repository buttons
*/
.repo a {
@include drop-shadow(1);
background: $accent;
color: $white;
border-radius: 3px;
@@ -124,7 +118,7 @@
* Hovered button
*/
&:hover, &:focus {
@include drop-shadow(3);
@include drop-shadow(2);
opacity: 0.8;
}
@@ -66,10 +66,25 @@
}
/*
* Links to chapters inside the current article
* Links to anchors
*/
.toc li.anchor a {
padding: 10px 24px 10px 48px;
margin-left: 12px;
padding: 10px 24px 10px 12px;
}
/*
* Nested links and anchors
*/
.toc li ul {
margin-left: 12px;
}
/*
* Nested anchors
*/
.current + ul {
margin-bottom: 9px;
}
/*
@@ -77,7 +92,6 @@
*/
.section {
display: block;
font-size: 11px;
padding: 14.5px 24px;
}
@@ -47,7 +47,6 @@
* Main sections
*/
.section {
text-transform: uppercase;
font-weight: 700;
}
}
+221
View File
@@ -0,0 +1,221 @@
/*
* Copyright (c) 2016 Martin Donath <martin.donath@squidfunk.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/* ----------------------------------------------------------------------------
* Dependencies
* ------------------------------------------------------------------------- */
@import "bourbon";
@import "quantum-colors";
@import "quantum-shadows";
/* ----------------------------------------------------------------------------
* Application
* ------------------------------------------------------------------------- */
@import "palette";
@import "mixins/break";
/* ----------------------------------------------------------------------------
* Palette
* ------------------------------------------------------------------------- */
/*
* Build primary palette
*/
@each $name, $color in (
'red': $red-400,
'pink': $pink-500,
'purple': $purple-400,
'deep-purple': $deep-purple-400,
'indigo': $indigo-500,
'blue': $blue-500,
'light-blue': $light-blue-500,
'cyan': $cyan-500,
'teal': $teal-500,
'green': $green-500,
'light-green': $light-green-600,
'lime': $lime-600,
'yellow': $yellow-800,
'amber': $amber-600,
'orange': $orange-600,
'deep-orange': $deep-orange-400,
'brown': $brown-500,
'grey': $grey-600,
'blue-grey': $blue-grey-600
) {
/*
* Device specific background hacks related to rubberband
*/
.palette-primary-#{$name} {
/* Hack [Chrome, Opera]: Set background color in Chrome and Opera */
@supports (-webkit-appearance: none) {
background: $color;
}
/*
* Application header and footer
*/
.header, .footer {
background: $color;
}
/*
* Drawer container
*/
.drawer {
/*
* Color links
*/
.toc a {
/*
* Current active element
*/
&.current {
color: $color;
}
/*
* Hovered link
*/
&:hover, &:focus {
color: $color;
}
}
/*
* Color anchors menu
*/
.anchor a {
border-left: 2px solid $color;
}
}
/*
* Project information
*/
.project {
/* [tablet landscape-]: Set background color */
@include break-to-device(tablet landscape) {
background: $color;
}
}
/*
* Article
*/
.article {
/*
* Differing top and bottom rubberband backgrounds in iOS web application
*/
.ios.standalone & {
background: linear-gradient(
to bottom, $white 50%, $color 50%);
}
/*
* Headlines, chapters, links and inline code
*/
h1, h2, a, code {
color: $color;
}
/*
* Light permalinks
*/
.headerlink {
color: $black-lighter;
}
/*
* Data table headings
*/
table th {
background: mix($color, $white, 75%);
}
}
/*
* Search meta data
*/
.results .meta {
background: $color;
}
}
}
/*
* Build accent palette
*/
@each $name, $color in (
'red': $red-a400,
'pink': $pink-a400,
'purple': $purple-a200,
'deep-purple': $deep-purple-a200,
'indigo': $indigo-a200,
'blue': $blue-a200,
'light-blue': $light-blue-a700,
'cyan': $cyan-a700,
'teal': $teal-a700,
'green': $green-a700,
'light-green': $light-green-a700,
'lime': $lime-a700,
'yellow': $yellow-a700,
'amber': $amber-a700,
'orange': $orange-a400,
'deep-orange': $deep-orange-a200
) {
/*
* Device specific background hacks related to rubberband
*/
.palette-accent-#{$name} {
/*
* Article
*/
.article {
/*
* Hovered and focused links
*/
a:hover,
a:focus {
color: $color;
}
}
/*
* Repository buttons
*/
.repo a {
background: $color;
}
}
}
+94 -21
View File
@@ -58,29 +58,89 @@
{% endif %}
<!-- Favicon -->
{% set icon = icon | default('assets/images/favicon.ico') %}
{% set icon = icon | default("assets/images/favicon.ico") %}
<link rel="shortcut icon" type="image/x-icon"
href="{{ base_url }}/{{ icon }}" />
<link rel="icon" type="image/x-icon"
href="{{ base_url }}/{{ icon }}" />
<!-- Webfonts -->
<link rel="stylesheet" type="text/css"
href="https://fonts.googleapis.com/css?family=Ubuntu:400,700" />
<link rel="stylesheet" type="text/css"
href="https://fonts.googleapis.com/css?family=Ubuntu+Mono" />
<!-- Configure icons (placed here to omit issues with subdirectories) -->
<style>
@font-face {
font-family: 'Icon';
src: url('{{ base_url }}/assets/fonts/icon.eot?52m981');
src: url('{{ base_url }}/assets/fonts/icon.eot?#iefix52m981')
format('embedded-opentype'),
url('{{ base_url }}/assets/fonts/icon.woff?52m981')
format('woff'),
url('{{ base_url }}/assets/fonts/icon.ttf?52m981')
format('truetype'),
url('{{ base_url }}/assets/fonts/icon.svg?52m981#icon')
format('svg');
font-weight: normal;
font-style: normal;
}
</style>
<!-- Theme-related and custom stylesheets -->
<!-- Theme-related stylesheets -->
<link rel="stylesheet" type="text/css"
href="{{ base_url }}/assets/stylesheets/application.css" />
<!-- Extra palettes -->
{% if config.extra.palette %}
<link rel="stylesheet" type="text/css"
href="{{ base_url }}/assets/stylesheets/palettes.css" />
{% endif %}
<!-- Configure webfonts -->
{% if config.extra.font != "none" %}
{% set text = config.extra.get("font", {}).text | default("Ubuntu") %}
{% set code = config.extra.get("font", {}).code | default("Ubuntu Mono") %}
{% set font = text + ':400,700|' + code | replace(' ', '+') %}
<link rel="stylesheet" type="text/css"
href="//fonts.googleapis.com/css?family={{ font }}" />
<style>
body, input {
font-family: '{{ text }}', Helvetica, Arial, sans-serif;
}
pre, code {
font-family: '{{ code }}', 'Courier New', 'Courier', monospace;
}
</style>
{% endif %}
<!-- Custom stylesheets -->
{% for path in extra_css %}
<link rel="stylesheet" type="text/css" href="{{ path }}" />
{% endfor %}
<!-- Modernizr -->
<script src="{{ base_url }}/assets/javascripts/modernizr.js"></script>
<!-- Custom header -->
{% block extrahead %}{% endblock %}
</head>
<body>
<!-- Define palette -->
{% set palette = config.extra.get("palette", {}) %}
{% set primary = palette.primary | replace(' ', '-') | lower %}
{% set accent = palette.accent | replace(' ', '-') | lower %}
<body class="
{% if primary %}palette-primary-{{ primary }}{% endif %}
{% if accent %}palette-accent-{{ accent }}{% endif %}
">
<!--
Sadly the jinja template engine is not very flexible - it doesn't support
regular expressions out-of-the-box. Since there might be a slash at the
end of the repository name, we just do a string comparison and kill it.
-->
{% if repo_name == "GitHub" and repo_url %}
{% set repo_id = repo_url | replace("https://github.com/", "") %}
{% if repo_id[-1:] == "/" %}
{% set repo_id = repo_id[:-1] %}
{% endif %}
{% endif %}
<!-- Backdrop -->
<div class="backdrop">
@@ -121,11 +181,7 @@
<!-- Headline -->
{% if not h1 %}
{% if page_title %}
<h1>{{ page_title }}</h1>
{% else %}
<h1>{{ site_name }}</h1>
{% endif %}
<h1>{{ page_title | default(site_name, true)}}</h1>
{% endif %}
<!-- Article content -->
@@ -139,7 +195,7 @@
Documentation built with
<a href="http://www.mkdocs.org" target="_blank">MkDocs</a>
using the
<a href="https://github.com/squidfunk/mkdocs-material"
<a href="http://squidfunk.github.io/mkdocs-material/"
target="_blank">
Material
</a>
@@ -152,8 +208,8 @@
{% include "footer.html" %}
</footer>
{% endblock %}
</article>
</div>
</div>
</article>
<!-- Search results -->
<div class="results" role="status" aria-live="polite">
@@ -166,11 +222,7 @@
</div>
</main>
<!-- Modernizr -->
<script src="{{ base_url }}/assets/javascripts/modernizr.js"></script>
<!-- Theme-related and custom javascripts -->
{% set repo_id = repo_url | replace('https://github.com/', '') %}
<script>
var base_url = '{{ base_url }}';
var repo_id = '{{ repo_id }}';
@@ -189,11 +241,32 @@
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;
m.parentNode.insertBefore(a,m)
})(window, document,
'script', '//www.google-analytics.com/analytics.js','ga');
'script', '//www.google-analytics.com/analytics.js', 'ga');
/* General initialization */
ga('create', '{{ google_analytics[0] }}', '{{ google_analytics[1] }}');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
/* Track outbound links */
var buttons = document.querySelectorAll('a');
Array.prototype.map.call(buttons, function(item) {
if (item.host != document.location.host) {
item.addEventListener('click', function() {
var action = item.getAttribute('data-action') || 'follow';
ga('send', 'event', 'outbound', action, item.href);
});
}
});
/* Register handler to log search on blur */
var query = document.querySelector('.query');
query.addEventListener('blur', function() {
if (this.value) {
var path = document.location.pathname;
ga('send', 'pageview', path + '?q=' + this.value);
}
});
</script>
{% endif %}
</body>
+41 -43
View File
@@ -1,12 +1,9 @@
{% if repo_name == 'GitHub' %}
{% set repo_id = repo_url | replace('https://github.com/', '') %}
{% endif %}
<!-- Navigation -->
<nav aria-label="navigation">
<nav aria-label="Navigation">
{% set home = repo_url | default("/", true) %}
<!-- Project information -->
<a href="{{ repo_url }}" class="project">
<a href="{{ home }}" class="project">
<!-- Name and logo -->
<div class="banner">
@@ -36,18 +33,19 @@
<div class="wrapper">
<!-- Repository -->
{% if repo_name == 'GitHub' %}
{% if repo_name == "GitHub" and repo_url %}
<ul class="repo">
<li class="repo-download">
<a href="https://github.com/{{ repo_id }}/archive/master.zip"
target="_blank" aria-label="Download {{ repo_id }} on GitHub">
{% set version = config.extra.version | default("master") %}
<a href="{{ repo_url }}/archive/{{ version }}.zip" target="_blank"
title="Download" data-action="download">
<i class="icon icon-download"></i> Download
</a>
</li>
<li class="repo-stars">
<a href="https://github.com/{{ repo_id }}"
target="_blank" aria-label="Star {{ repo_id }} on GitHub">
<i class="icon icon-star"></i> Star
<a href="{{ repo_url }}/stargazers" target="_blank"
title="Stargazers" data-action="star">
<i class="icon icon-star"></i> Stars
<span class="count">&ndash;</span>
</a>
</li>
@@ -56,43 +54,43 @@
{% endif %}
<!-- Table of contents -->
<ul class="toc">
{% for nav_item in nav %}
{% include "nav.html" %}
{% endfor %}
<div class="toc">
<ul>
{% for nav_item in nav %}
{% include "nav.html" %}
{% endfor %}
</ul>
<!-- Author-related links -->
{% if config.extra.author %}
<li>
<hr />
<span class="section">The author</span>
<ul>
<hr />
<span class="section">The author</span>
<ul>
<!-- Twitter -->
{% if config.extra.author.twitter %}
<li>
<a href="https://twitter.com/{{ config.extra.author.twitter }}"
title="@{{ config.extra.author.twitter }} on Twitter"
target="_blank">
@{{ config.extra.author.twitter }} on Twitter
</a>
</li>
{% endif %}
<!-- Twitter -->
{% if config.extra.author.twitter %}
{% set author = config.extra.author.twitter %}
<li>
<a href="https://twitter.com/{{ author }}" target="_blank"
title="@{{ author }} on Twitter">
@{{ author }} on Twitter
</a>
</li>
{% endif %}
<!-- GitHub -->
{% if config.extra.author.github %}
<li>
<a href="https://github.com/{{ config.extra.author.github }}"
title="@{{ config.extra.author.twitter }} on GitHub"
target="_blank">
@{{ config.extra.author.github }} on GitHub
</a>
</li>
{% endif %}
</ul>
</li>
<!-- GitHub -->
{% if config.extra.author.github %}
{% set author = config.extra.author.github %}
<li>
<a href="https://github.com/{{ author }}" target="_blank"
title="@{{ author }} on GitHub">
@{{ author }} on GitHub
</a>
</li>
{% endif %}
</ul>
{% endif %}
</ul>
</div>
</div>
</div>
</nav>
+7 -3
View File
@@ -1,12 +1,14 @@
<!-- Previous and next page -->
{% if include_next_prev %}
<nav class="pagination" aria-label="footer navigation">
<nav class="pagination" aria-label="Footer">
<!-- Previous page -->
<div class="previous">
{% if previous_page %}
<a href="{{ previous_page.url }}" title="{{ previous_page.title }}">
<span class="direction">Previous</span>
<span class="direction">
{{ config.extra.get("i18n", {}).prev | default("Previous") }}
</span>
<div class="page">
<div class="button button-previous"
role="button" aria-label="Previous">
@@ -26,7 +28,9 @@
<div class="next">
{% if next_page %}
<a href="{{ next_page.url }}" title="{{ next_page.title }}">
<span class="direction">Next</span>
<span class="direction">
{{ config.extra.get("i18n", {}).next | default("Next") }}
</span>
<div class="page">
<div class="stretch">
<div class="title">
+10 -12
View File
@@ -1,5 +1,5 @@
<!-- Top-level navigation -->
<nav aria-label="top navigation">
<nav aria-label="Header">
<!-- Default bar -->
<div class="bar default">
@@ -26,28 +26,26 @@
{% endfor %}
</span>
{% endif %}
{% if page_title %}
{{ page_title }}
{% else %}
{{ site_name }}
{% endif %}
{{ page_title | default(site_name, true) }}
</div>
</div>
<!-- Twitter -->
{% if config.extra.author and config.extra.author.twitter %}
{% if config.extra.get("author", {}).twitter %}
{% set author = config.extra.author.twitter %}
<div class="button button-twitter" role="button" aria-label="Twitter">
<a href="https://twitter.com/{{ config.extra.author.twitter }}"
title="@{{ config.extra.author.twitter }} on Twitter" target="_blank"
<a href="https://twitter.com/{{ author }}"
title="@{{ author }} on Twitter" target="_blank"
class="toggle-button icon icon-twitter"></a>
</div>
{% endif %}
<!-- GitHub -->
{% if config.extra.author and config.extra.author.github %}
{% if config.extra.get("author", {}).github %}
{% set author = config.extra.author.github %}
<div class="button button-github" role="button" aria-label="GitHub">
<a href="https://github.com/{{ config.extra.author.github }}"
title="@{{ config.extra.author.github }} on GitHub" target="_blank"
<a href="https://github.com/{{ author }}"
title="@{{ author }} on GitHub" target="_blank"
class="toggle-button icon icon-github"></a>
</div>
{% endif %}
+23 -31
View File
@@ -1,13 +1,12 @@
<!-- Render sections -->
{% if nav_item.children %}
<li>
<hr />
<span class="section">{{ nav_item.title }}</span>
<ul>
<!-- Render pages of section -->
{% for nav_item in nav_item.children %}
{% include 'nav.html' %}
{% include "nav.html" %}
{% endfor %}
</ul>
</li>
@@ -22,38 +21,31 @@
<!-- Expand active pages -->
{% if nav_item == current_page %}
<ul>
<!-- Render anchors of active page -->
{% for toc_item in toc %}
<!--
The top-level anchor must be skipped if the article contains a h1
headline, since it would be redundant to the link to the current page
that is located just above the anchor. Therefore we directly continue
with the children of the anchor.
-->
{% if h1 %}
{% set toc = (toc | first).children %}
{% endif %}
<!--
The top-level anchor must be skipped if the article contains a h1
headline, since it would be redundant to the link to the current
page that is located just above the anchor. Therefore we directly
continue with the children of the anchor.
-->
{% if h1 %}
{% for toc_item in toc_item.children %}
<!-- Render anchors of active page -->
{% if toc and (toc | first) %}
<ul>
{% for toc_item in toc %}
<!-- Render anchor -->
<li class="anchor">
<a title="{{ toc_item.title }}" href="{{ toc_item.url }}">
{{ toc_item.title }}
</a>
</li>
{% endfor %}
{% else %}
<!-- Render anchor -->
<li class="anchor">
<a title="{{ toc_item.title }}" href="{{ toc_item.url }}">
{{ toc_item.title }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<!-- Render anchor -->
<li class="anchor">
<a title="{{ toc_item.title }}" href="{{ toc_item.url }}">
{{ toc_item.title }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
{% endif %}
</li>
{% endif %}