Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
872a953ee0 | ||
|
|
ea81720a52 | ||
|
|
6c42611aa2 | ||
|
|
fd6c7e81bb | ||
|
|
880581dba3 | ||
|
|
16a120a019 | ||
|
|
5272abd70c | ||
|
|
93c2c777ac | ||
|
|
57158e7d10 | ||
|
|
9f30a13921 | ||
|
|
65442dccaf | ||
|
|
76c282c175 | ||
|
|
80bdd9670a | ||
|
|
7004e5cf2e | ||
|
|
12d1a2822a | ||
|
|
55a908f23a | ||
|
|
52b255c04a | ||
|
|
90ad175b00 | ||
|
|
2b6ad0053a | ||
|
|
d1376b89d7 | ||
|
|
707038db64 | ||
|
|
3d617ba270 | ||
|
|
739a41210d | ||
|
|
efd6efc855 | ||
|
|
ff3731ec05 | ||
|
|
94d0e888cf | ||
|
|
ecf5369891 | ||
|
|
91b87d1c91 | ||
|
|
50e6328d1f | ||
|
|
9694d23223 | ||
|
|
43484824ee | ||
|
|
60d3a49aed | ||
|
|
c6cb673abd | ||
|
|
a37bdac33e | ||
|
|
1511c43fca | ||
|
|
2537e39c75 | ||
|
|
a1a18404e3 | ||
|
|
2ae628ed6d | ||
|
|
bca99813d1 | ||
|
|
6a8eb11378 | ||
|
|
aff623aaac | ||
|
|
3f80ada54d | ||
|
|
19feb7a67d | ||
|
|
53a4221b53 | ||
|
|
4e748c5a55 | ||
|
|
1e5611f1e8 | ||
|
|
cf78aa3a9a | ||
|
|
c8d11a83bb | ||
|
|
39c38e6812 | ||
|
|
4d4c76c979 | ||
|
|
fc4d13de7d | ||
|
|
35dbc1c0bb | ||
|
|
4768d78530 | ||
|
|
a09d5e5819 | ||
|
|
cc7facb199 | ||
|
|
18b2ca47b2 | ||
|
|
3b6ee1e1cb | ||
|
|
14f85c52de | ||
|
|
c0164698cd | ||
|
|
bbb3455c52 | ||
|
|
fde1e25a69 | ||
|
|
8ff457a7fc | ||
|
|
fd305fe801 | ||
|
|
d204b63ee4 | ||
|
|
ef1c5a4043 | ||
|
|
147e5ef75d | ||
|
|
e7fd2b494c | ||
|
|
932be00bc8 | ||
|
|
bda96f88df | ||
|
|
357c6f4122 | ||
|
|
4887a7e062 | ||
|
|
fce9e77c26 | ||
|
|
993fb4782c | ||
|
|
b2969d6f24 | ||
|
|
39d18b6947 | ||
|
|
77e1a8031c | ||
|
|
546a32f87a | ||
|
|
6067536ea5 | ||
|
|
605d274523 | ||
|
|
e3bfb68115 | ||
|
|
eb3062b809 | ||
|
|
a0f0345a24 | ||
|
|
11c4693328 | ||
|
|
21918c8d54 | ||
|
|
ea3909dcc1 | ||
|
|
4aaf9d6491 | ||
|
|
47ac324dd7 | ||
|
|
a2cab75d96 | ||
|
|
bea89e87c1 | ||
|
|
32f6d63a29 | ||
|
|
a2261041dd | ||
|
|
d85ef155de | ||
|
|
7d373a128c | ||
|
|
cb8900d973 | ||
|
|
ad9388ab42 | ||
|
|
80c6474683 | ||
|
|
ef1a71a973 | ||
|
|
324e62e569 | ||
|
|
f4fd1c3cea | ||
|
|
876b71466f | ||
|
|
eed002861e | ||
|
|
ba0b46e9b0 | ||
|
|
e5761ccfb1 | ||
|
|
42d208560f | ||
|
|
6abed20acb | ||
|
|
95d014032f | ||
|
|
5305e3920a | ||
|
|
c586f9a799 | ||
|
|
cb12b4e587 | ||
|
|
00898eda30 | ||
|
|
dcb0ee3f22 | ||
|
|
271d974266 | ||
|
|
d40f6ce69f | ||
|
|
d17b0fbb90 | ||
|
|
974f07ccb4 | ||
|
|
745058c77e | ||
|
|
9a24b60cdf | ||
|
|
bca2077c1e | ||
|
|
0253d6e6c8 | ||
|
|
fba1883def | ||
|
|
3b544b94d9 | ||
|
|
13cd1d1a26 | ||
|
|
670ae4a44c | ||
|
|
c07ef90f0e | ||
|
|
9bb8ecc6b0 | ||
|
|
f86b79b0e5 | ||
|
|
f717345ec9 | ||
|
|
0e30256604 | ||
|
|
056e91e9f4 | ||
|
|
f8df576a2d | ||
|
|
db397f3151 | ||
|
|
7024070572 | ||
|
|
e473a1fedc | ||
|
|
4b6ffe6628 | ||
|
|
adc98fac48 | ||
|
|
2d66c7ed22 | ||
|
|
3516542c98 | ||
|
|
6b5629317f | ||
|
|
5255eaa813 | ||
|
|
2bc2517658 | ||
|
|
58288f87ac | ||
|
|
60a897152c | ||
|
|
f6c5529467 | ||
|
|
e7a72a3d5d | ||
|
|
00ba4be6aa | ||
|
|
5e9ee23b9b | ||
|
|
f5a0596b91 | ||
|
|
6609324bd6 | ||
|
|
0beb885666 | ||
|
|
7ae0a42654 | ||
|
|
f6238f3bae | ||
|
|
6336e5055c | ||
|
|
eea31eb528 | ||
|
|
eaaefe4fc4 | ||
|
|
00b7e600a8 | ||
|
|
a5b06b9839 | ||
|
|
3ac96ee1d2 | ||
|
|
8ac6712dc3 | ||
|
|
fab1ab54d6 | ||
|
|
45e57c29e2 | ||
|
|
0e971367c0 | ||
|
|
77e972753c | ||
|
|
a54f57affc | ||
|
|
c315a786fa | ||
|
|
87538c1745 | ||
|
|
7a6acb8a7b | ||
|
|
463fd5202d | ||
|
|
49ac0e2111 | ||
|
|
bdf359bafd | ||
|
|
ddab77a120 | ||
|
|
9abb64f1a1 | ||
|
|
5df7a85618 | ||
|
|
67bea5e152 | ||
|
|
ccde3239f8 | ||
|
|
5ef40b5e3d | ||
|
|
b283236770 | ||
|
|
ed0f7b96fe | ||
|
|
100f6c0e3b | ||
|
|
f921f45787 | ||
|
|
2ab6083ebe | ||
|
|
5b1bbea2a3 | ||
|
|
2c429eb739 | ||
|
|
3f1d258cb6 | ||
|
|
315fa4b590 | ||
|
|
6e5b9d0754 | ||
|
|
189e403d70 | ||
|
|
85d0a82706 | ||
|
|
aa0b80ef9b | ||
|
|
ecc04128f1 | ||
|
|
f375dd6f67 | ||
|
|
e4f4e630ce | ||
|
|
a00c8b1fdb | ||
|
|
758f07cadc | ||
|
|
92d77fd896 | ||
|
|
0ca71b6e8c | ||
|
|
9d066f5f78 | ||
|
|
de54e6e800 | ||
|
|
c732082a1c | ||
|
|
931465af9f | ||
|
|
544b1243aa | ||
|
|
3c1eb193bc | ||
|
|
89fff8a6ab | ||
|
|
50efda702a | ||
|
|
a2ff177885 | ||
|
|
da02320bb5 | ||
|
|
41df5e4d24 | ||
|
|
7da699a3fe | ||
|
|
17f67ae625 | ||
|
|
41ed99c3d3 | ||
|
|
4e6041364e | ||
|
|
f45e706c55 | ||
|
|
526842404a | ||
|
|
4cfd1d7d6c | ||
|
|
0f932c0520 | ||
|
|
c293fcfb42 | ||
|
|
a4012cf6f1 | ||
|
|
dfc7ed362a | ||
|
|
de20cdd67f | ||
|
|
e08e828e0a | ||
|
|
d77d900479 | ||
|
|
675a75e000 | ||
|
|
c4c7beaefa | ||
|
|
3c1cfa86e0 | ||
|
|
7485a2ec50 | ||
|
|
cd64b7372a | ||
|
|
e54dcba38e | ||
|
|
be5f4a5658 | ||
|
|
8359c24804 | ||
|
|
71c28f5f0a | ||
|
|
2bd669c7ab | ||
|
|
8f9124bc3f | ||
|
|
536554c18b | ||
|
|
1440c62e57 | ||
|
|
ba3565625d | ||
|
|
f72a88721e | ||
|
|
e8fc5132a1 | ||
|
|
e00d5fb98a | ||
|
|
59b2ae1a9d | ||
|
|
34b09a6724 | ||
|
|
b8f4b62b72 | ||
|
|
7cf5d428a4 | ||
|
|
200a28289b | ||
|
|
0862c7587f | ||
|
|
96efd18c32 | ||
|
|
fa6a343555 | ||
|
|
1801dd7b58 | ||
|
|
159466d448 | ||
|
|
19fb287cef | ||
|
|
d12f17e520 | ||
|
|
0fa899fe0b | ||
|
|
25b366ce7f | ||
|
|
12e12135c1 | ||
|
|
a911dd31b3 | ||
|
|
6f64bcc3e1 | ||
|
|
bbc48e75bf | ||
|
|
009b41cdb1 | ||
|
|
0a6e70262b | ||
|
|
68896b1a78 | ||
|
|
a58904c8c2 | ||
|
|
acf74131cc | ||
|
|
253d805352 | ||
|
|
7f37798408 | ||
|
|
fc4a466346 | ||
|
|
8bf2368892 | ||
|
|
ca4b8aa94b | ||
|
|
842146183d | ||
|
|
d52f605200 | ||
|
|
eb6aedf5cc | ||
|
|
0eee81b048 | ||
|
|
09d579b516 | ||
|
|
2c3ca5aeb4 | ||
|
|
eb66e7f894 | ||
|
|
968516a9c8 | ||
|
|
aaa3c8d6b4 | ||
|
|
ac2f924dad | ||
|
|
c6e5159cc6 | ||
|
|
2823b2b53d | ||
|
|
22a2f084a1 | ||
|
|
672a39b697 | ||
|
|
8f48f0bce6 | ||
|
|
de3bd8d665 | ||
|
|
ad39b98734 | ||
|
|
26b83b0365 | ||
|
|
0c7f500c41 | ||
|
|
e55aa3bc77 | ||
|
|
43a994245e | ||
|
|
bf439d34b7 | ||
|
|
604be71a37 | ||
|
|
309a951b93 | ||
|
|
0f7782a321 | ||
|
|
521ef0b8ee | ||
|
|
a9e7a5d421 | ||
|
|
7908140dc5 | ||
|
|
07e2eb4f85 | ||
|
|
af4db15a27 | ||
|
|
3e50c3394a | ||
|
|
5765619416 | ||
|
|
6fcf8d2ec1 | ||
|
|
5b92b29dc4 | ||
|
|
c59d776031 | ||
|
|
dccfcb8732 | ||
|
|
281449f418 | ||
|
|
b7fa2448a4 | ||
|
|
8f5aa8ad5f | ||
|
|
4927e57c88 | ||
|
|
9b471c682f | ||
|
|
18262ce8d2 | ||
|
|
769727e886 | ||
|
|
99bc558d5c | ||
|
|
b33a92e37b | ||
|
|
eadce61e75 | ||
|
|
13ab32f631 | ||
|
|
e483055e17 | ||
|
|
c890255c39 | ||
|
|
5e5b680fa0 | ||
|
|
0975c7d1be | ||
|
|
31836391e1 | ||
|
|
6a68347a87 | ||
|
|
c9a7019333 | ||
|
|
b6b5904a7a | ||
|
|
80fe7e010d | ||
|
|
7c36b5c4ef | ||
|
|
099799cdf5 | ||
|
|
854663ff03 | ||
|
|
885053bfbd | ||
|
|
0cfee35151 | ||
|
|
89c68b03f0 | ||
|
|
ee198dd6d2 | ||
|
|
401b512dda | ||
|
|
4fc2a6c02e | ||
|
|
7199f7ad6c | ||
|
|
8792079cb3 | ||
|
|
26d2ae36e3 | ||
|
|
2b0b90c5e9 | ||
|
|
c8ffa5203a | ||
|
|
f1ee7add1c | ||
|
|
78d7cdaf0b | ||
|
|
9028461c72 | ||
|
|
d75aec1b7e | ||
|
|
0beec63367 | ||
|
|
57871449ea | ||
|
|
038288d489 | ||
|
|
3e2fa37250 | ||
|
|
7e601d485a | ||
|
|
0bff78cd1b | ||
|
|
1fc01efe8b | ||
|
|
641b4ca13d | ||
|
|
cbb8567c76 | ||
|
|
70154b6047 | ||
|
|
d78e4e6a0b | ||
|
|
52a3761d65 | ||
|
|
07329f4304 | ||
|
|
f40585f528 | ||
|
|
9e3403ee4f | ||
|
|
76a383fb1b | ||
|
|
d4c796c73e | ||
|
|
64bd1d141a | ||
|
|
551138e7c1 | ||
|
|
7d94975960 | ||
|
|
8a7d9001fd | ||
|
|
55cae2d1f1 | ||
|
|
4fe26f24db | ||
|
|
87c440c003 | ||
|
|
ef7b07a90e | ||
|
|
17808d964d | ||
|
|
7d46ed2a85 | ||
|
|
3783eceb09 | ||
|
|
8f46cc6f09 | ||
|
|
0eb24a04ae | ||
|
|
c4ba189c05 | ||
|
|
79f277c8fe | ||
|
|
9a36dd67b2 | ||
|
|
82a98ae9d3 | ||
|
|
c994ce1dd9 | ||
|
|
1655f18a20 | ||
|
|
4c4edff9cb | ||
|
|
4997d1f63c | ||
|
|
fc900aa4b5 | ||
|
|
cae45a60b3 | ||
|
|
53e1977c65 | ||
|
|
33616c7deb | ||
|
|
25e1960511 | ||
|
|
758ae36c92 | ||
|
|
e9af74f3df | ||
|
|
c3231f1a9e | ||
|
|
fc71fd4c71 | ||
|
|
71b300aaa1 | ||
|
|
2c3ae17131 | ||
|
|
8b28c1f5a1 | ||
|
|
f474f63d6b | ||
|
|
aa8b3a6cf7 | ||
|
|
b04c3d1354 | ||
|
|
b09e334f3f | ||
|
|
f71359ce65 | ||
|
|
80be8bb1ec | ||
|
|
38f0099fc8 | ||
|
|
4186b7b7f8 | ||
|
|
bb9e1eb3df | ||
|
|
32ffc58d12 | ||
|
|
2e228af92d | ||
|
|
28d024af2f | ||
|
|
21f2617c9c | ||
|
|
203087bcb1 | ||
|
|
680725ed3a | ||
|
|
1e61603b4e | ||
|
|
f51f3c453d | ||
|
|
61533af0ef | ||
|
|
62ff9d0ac0 | ||
|
|
460164b560 | ||
|
|
9d24e6880b | ||
|
|
ceea88e066 | ||
|
|
ed1ae7226a | ||
|
|
f81a0c578a | ||
|
|
96168d05d8 | ||
|
|
c691fff501 | ||
|
|
c101debc8c | ||
|
|
65d725f260 | ||
|
|
040d3a303c | ||
|
|
823b24aa9c | ||
|
|
e3ac58a7c6 | ||
|
|
e0855d4002 | ||
|
|
b54813ffd8 | ||
|
|
5593f99c14 | ||
|
|
a463798593 | ||
|
|
c55cf5cba9 | ||
|
|
5257fe67a6 | ||
|
|
180da60770 | ||
|
|
7fd5811bf1 | ||
|
|
eea4ebdaf4 | ||
|
|
7b653fac4e | ||
|
|
7178bb4180 | ||
|
|
87bc1c8ef9 | ||
|
|
99b057a9ae | ||
|
|
9633f69b74 | ||
|
|
7661631e3e | ||
|
|
2ba776bb0e | ||
|
|
e37f517240 | ||
|
|
c0fe88004a | ||
|
|
6f324afb37 | ||
|
|
cf17f3b71e | ||
|
|
9ecc9aa8c9 | ||
|
|
e68f54c79f | ||
|
|
4086c2c973 |
@@ -2,9 +2,6 @@
|
||||
"presets": ["es2015"],
|
||||
"plugins": [
|
||||
"add-module-exports",
|
||||
"babel-root-import",
|
||||
["transform-react-jsx", {
|
||||
"pragma": "JSX.createElement"
|
||||
}]
|
||||
"root-import"
|
||||
]
|
||||
}
|
||||
|
||||
+5
-1
@@ -18,7 +18,11 @@
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
# Build files
|
||||
# Files generated by build
|
||||
/build
|
||||
/material
|
||||
/site
|
||||
|
||||
# Files used and generated by flow
|
||||
/lib/declarations
|
||||
/tmp
|
||||
|
||||
@@ -1,28 +1,5 @@
|
||||
{
|
||||
"extends": "eslint:recommended",
|
||||
"ecmaFeatures": {
|
||||
"arrowFunctions": true,
|
||||
"binaryLiterals": true,
|
||||
"blockBindings": true,
|
||||
"classes": true,
|
||||
"defaultParams": true,
|
||||
"destructuring": true,
|
||||
"forOf": true,
|
||||
"generators": true,
|
||||
"globalReturn": true,
|
||||
"modules": true,
|
||||
"objectLiteralComputedProperties": true,
|
||||
"objectLiteralDuplicateProperties": true,
|
||||
"objectLiteralShorthandMethods": true,
|
||||
"objectLiteralShorthandProperties": true,
|
||||
"octalLiterals": true,
|
||||
"regexUFlag": true,
|
||||
"regexYFlag": true,
|
||||
"spread": true,
|
||||
"superInFunctions": false,
|
||||
"templateStrings": true,
|
||||
"unicodeCodePointEscapes": true
|
||||
},
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true,
|
||||
@@ -35,6 +12,29 @@
|
||||
"parser": "babel-eslint",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"ecmaFeatures": {
|
||||
"arrowFunctions": true,
|
||||
"binaryLiterals": true,
|
||||
"blockBindings": true,
|
||||
"classes": true,
|
||||
"defaultParams": true,
|
||||
"destructuring": true,
|
||||
"forOf": true,
|
||||
"generators": true,
|
||||
"globalReturn": true,
|
||||
"modules": true,
|
||||
"objectLiteralComputedProperties": true,
|
||||
"objectLiteralDuplicateProperties": true,
|
||||
"objectLiteralShorthandMethods": true,
|
||||
"objectLiteralShorthandProperties": true,
|
||||
"octalLiterals": true,
|
||||
"regexUFlag": true,
|
||||
"regexYFlag": true,
|
||||
"spread": true,
|
||||
"superInFunctions": false,
|
||||
"templateStrings": true,
|
||||
"unicodeCodePointEscapes": true
|
||||
},
|
||||
"impliedStrict": true,
|
||||
"sourceType": "module"
|
||||
},
|
||||
@@ -169,7 +169,7 @@
|
||||
"space-unary-ops": 2,
|
||||
"spaced-comment": [2, "always", {
|
||||
"line": {
|
||||
"markers": ["/"],
|
||||
"markers": ["/", ":"],
|
||||
"exceptions": ["-", "+"]
|
||||
},
|
||||
"block": {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
[ignore]
|
||||
.*/node_modules/.*
|
||||
|
||||
[libs]
|
||||
lib/declarations/
|
||||
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2016-2017 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.
|
||||
|
||||
# Exit, if there's no .travisignore file
|
||||
if [[ ! -a .travisignore ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# Filter relevant files for linting
|
||||
FILES=$(git diff --cached --name-only)
|
||||
|
||||
# Resolve the patterns we want to skip
|
||||
BLACKLIST=$(< .travisignore)
|
||||
|
||||
# Remove the pattern from the list of changes
|
||||
for f in $BLACKLIST; do
|
||||
FILES=( ${FILES[@]/$f/} )
|
||||
|
||||
# If we've exhausted the list of changes before we've finished going
|
||||
# through patterns, that's okay, just quit the loop
|
||||
if [[ ${#FILES[@]} -eq 0 ]]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# If there's changes left, then we have stuff to build, leave the commit alone
|
||||
if [[ ${#FILES[@]} -gt 0 ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# Don't build this commit
|
||||
sed -i '' '1s/$/ [ci skip]/' "$1"
|
||||
|
||||
# We're good
|
||||
exit 0
|
||||
@@ -25,6 +25,6 @@ CHANGED="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
|
||||
|
||||
# Perform install and prune of NPM dependencies if package.json changed
|
||||
if $(echo "$CHANGED" | grep --quiet package.json); then
|
||||
echo "Hook[post-merge]: Updating dependencies..."
|
||||
npm install && npm prune
|
||||
echo -e "\x1B[33m!\x1B[0m Updating dependencies"
|
||||
yarn install
|
||||
fi
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) 2016-2017 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.
|
||||
|
||||
# Determine current branch
|
||||
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
MESSAGE="Commits on master are only allowed via Pull Requests. Aborting."
|
||||
|
||||
# If we're on master, abort commit
|
||||
if [[ "$BRANCH" == "master" ]]; then
|
||||
echo -e "\x1B[31m✗\x1B[0m Branch: $BRANCH - \x1B[31m$MESSAGE\x1B[0m"
|
||||
exit 1
|
||||
else
|
||||
echo -e "\x1B[32m✓\x1B[0m Branch: $BRANCH"
|
||||
fi
|
||||
|
||||
# We're good
|
||||
exit 0
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
# Patch file to store unindexed changes
|
||||
PATCH_FILE=".working-tree.patch"
|
||||
MESSAGE="Terminated with errors"
|
||||
|
||||
# Revert changes that have been registered in the patch file
|
||||
function cleanup {
|
||||
@@ -30,7 +31,7 @@ function cleanup {
|
||||
git apply "$PATCH_FILE" 2> /dev/null
|
||||
rm "$PATCH_FILE"
|
||||
fi
|
||||
exit $EXIT_CODE
|
||||
exit $EXIT_CODE
|
||||
}
|
||||
|
||||
# Register signal handlers
|
||||
@@ -44,8 +45,26 @@ git checkout -- .
|
||||
FILES=$(git diff --cached --name-only --diff-filter=ACMR | \
|
||||
grep "\.\(js\|jsx\|scss\)$")
|
||||
|
||||
# Run the check and print indicator
|
||||
# Run check and print indicator
|
||||
if [ "$FILES" ]; then
|
||||
echo "Hook[pre-commit]: Running linter..."
|
||||
npm run lint --silent || exit 1
|
||||
|
||||
# If linter terminated with errors, abort commit
|
||||
if [ $? -gt 0 ]; then
|
||||
echo -e "\x1B[31m✗\x1B[0m Linter - \x1B[31m$MESSAGE\x1B[0m"
|
||||
exit 1
|
||||
else
|
||||
echo -e "\x1B[32m✓\x1B[0m Linter"
|
||||
fi
|
||||
|
||||
# If flow terminated with errors, abort commit
|
||||
yarn run flow --silent
|
||||
if [ $? -gt 0 ]; then
|
||||
echo -e "\x1B[31m✗\x1B[0m Flow - \x1B[31m$MESSAGE\x1B[0m"
|
||||
exit 1
|
||||
else
|
||||
echo -e "\x1B[32m✓\x1B[0m Flow"
|
||||
fi
|
||||
fi
|
||||
|
||||
# We're good
|
||||
exit 0
|
||||
@@ -18,11 +18,17 @@
|
||||
|
||||
### Package versions
|
||||
|
||||
- Python: `python --version`
|
||||
- MkDocs: `mkdocs --version`
|
||||
- Material: `pip show mkdocs-material | grep -E ^Version`
|
||||
* Python: `python --version`
|
||||
* MkDocs: `mkdocs --version`
|
||||
* Material: `pip show mkdocs-material | grep -E ^Version`
|
||||
|
||||
### Project configuration
|
||||
|
||||
``` yaml
|
||||
The contents of your mkdocs.yml
|
||||
```
|
||||
|
||||
### System information
|
||||
|
||||
- OS: [The operating system you're running]
|
||||
- Browser: [The browser used, if relevant]
|
||||
* OS: [The operating system you're running]
|
||||
* Browser: [The browser used, if relevant]
|
||||
|
||||
+6
-2
@@ -23,14 +23,18 @@
|
||||
|
||||
# NPM-related
|
||||
/node_modules
|
||||
/npm-debug.log
|
||||
/npm-debug.log*
|
||||
/yarn-error.log
|
||||
|
||||
# Build files
|
||||
# Files generated by build
|
||||
/build
|
||||
/manifest.json
|
||||
/MANIFEST
|
||||
/site
|
||||
|
||||
# Files generated by flow typechecker
|
||||
/tmp
|
||||
|
||||
# Distribution files
|
||||
/dist
|
||||
/mkdocs_material.egg-info
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Copyright (c) 2016-2017 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.
|
||||
|
||||
# Don't line shame
|
||||
src/assets/stylesheets/_shame.scss
|
||||
+3
-3
@@ -6,6 +6,7 @@
|
||||
],
|
||||
"rules": {
|
||||
"at-rule-empty-line-before": null,
|
||||
"at-rule-no-unknown": null,
|
||||
"at-rule-no-vendor-prefix": true,
|
||||
"block-opening-brace-space-before": null,
|
||||
"block-closing-brace-newline-after": ["always", {
|
||||
@@ -25,11 +26,11 @@
|
||||
"font-weight-notation": "numeric",
|
||||
"function-url-quotes": "always",
|
||||
"no-unknown-animations": true,
|
||||
"order/declaration-block-order": [
|
||||
"order/order": [
|
||||
"custom-properties",
|
||||
"declarations"
|
||||
],
|
||||
"order/declaration-block-properties-specified-order": [
|
||||
"order/properties-order": [
|
||||
"display",
|
||||
"position",
|
||||
"top",
|
||||
@@ -180,7 +181,6 @@
|
||||
"z-index"
|
||||
],
|
||||
"property-no-vendor-prefix": true,
|
||||
"root-no-standard-properties": true,
|
||||
"selector-class-pattern": "^[a-z0-9]+(-[a-z0-9]+)*(__[a-z]+)?(--[a-z]+)?$",
|
||||
"selector-descendant-combinator-no-non-space": null,
|
||||
"string-quotes": "double",
|
||||
|
||||
+22
-8
@@ -21,21 +21,35 @@
|
||||
language: node_js
|
||||
sudo: false
|
||||
|
||||
# Node.js versions
|
||||
node_js:
|
||||
- 4
|
||||
- 5
|
||||
- 6
|
||||
# -----------------------------------------------------------------------------
|
||||
# Regular builds
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Node.js version and necessary services
|
||||
node_js: 5
|
||||
services:
|
||||
- docker
|
||||
|
||||
# Limit clone depth to 5, to speed up build
|
||||
git:
|
||||
depth: 5
|
||||
|
||||
# Cache dependencies
|
||||
cache:
|
||||
pip: true
|
||||
yarn: true
|
||||
directories:
|
||||
- node_modules
|
||||
|
||||
# Install yarn as Travis doesn't support it out of the box
|
||||
before_install:
|
||||
- npm install -g yarn@v0.22.0
|
||||
|
||||
# Install dependencies
|
||||
before_script:
|
||||
install:
|
||||
- yarn install --ignore-optional
|
||||
- pip install --user -r requirements.txt
|
||||
|
||||
# Perform build and tests
|
||||
script: npm run build
|
||||
# Perform build and release
|
||||
script:
|
||||
- yarn run travis
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
.github/*
|
||||
material/*
|
||||
.editorconfig
|
||||
.gitignore
|
||||
CHANGELOG
|
||||
LICENSE
|
||||
*.md
|
||||
git
|
||||
@@ -1,3 +1,225 @@
|
||||
mkdocs-material-1.10.2 (2017-10-06)
|
||||
|
||||
* Fixed #468: Sidebar shows scrollbar if content is shorter (in Safari)
|
||||
|
||||
mkdocs-material-1.10.1 (2017-09-14)
|
||||
|
||||
* Fixed #455: Bold code blocks rendered with normal font weight
|
||||
|
||||
mkdocs-material-1.10.0 (2017-09-01)
|
||||
|
||||
* Added support to make logo default icon configurable
|
||||
* Fixed uninitialized overflow scrolling on main pane for iOS
|
||||
* Fixed error in mobile navigation in case JavaScript is not available
|
||||
* Fixed incorrect color transition for nested panes in mobile navigation
|
||||
* Improved checkbox styles for Tasklist from PyMdown Extension package
|
||||
|
||||
mkdocs-material-1.9.0 (2017-08-29)
|
||||
|
||||
* Added info (synonym: todo) style for Admonition
|
||||
* Added question (synonym: help, faq) style for Admonition
|
||||
* Added support for Details from PyMdown Extensions package
|
||||
* Improved Admonition styles to match Details
|
||||
* Improved styles for social links in footer
|
||||
* Replaced ligatures with Unicode code points to avoid broken layout
|
||||
* Upgraded PyMdown Extensions package dependency to >= 3.4
|
||||
|
||||
mkdocs-material-1.8.1 (2017-08-07)
|
||||
|
||||
* Fixed #421: Missing pagination for GitHub API
|
||||
|
||||
mkdocs-material-1.8.0 (2017-08-02)
|
||||
|
||||
* Added support for lazy-loading of search results for better performance
|
||||
* Added support for customization of search tokenizer/separator
|
||||
* Fixed #424: Search doesn't handle capital letters anymore
|
||||
* Fixed #419: Search doesn't work on whole words
|
||||
|
||||
mkdocs-material-1.7.5 (2017-07-25)
|
||||
|
||||
* Fixed #398: Forms broken due to search shortcuts
|
||||
* Improved search overall user experience
|
||||
* Improved search matching and highlighting
|
||||
* Improved search accessibility
|
||||
|
||||
mkdocs-material-1.7.4 (2017-06-21)
|
||||
|
||||
* Fixed functional link colors in table of contents for active palette
|
||||
* Fixed #368: Compatibility issues with IE11
|
||||
|
||||
mkdocs-material-1.7.3 (2017-06-07)
|
||||
|
||||
* Fixed error when setting language to Japanese for site search
|
||||
|
||||
mkdocs-material-1.7.2 (2017-06-06)
|
||||
|
||||
* Fixed offset of search box when repo_url is not set
|
||||
* Fixed non-disappearing tooltip
|
||||
|
||||
mkdocs-material-1.7.1 (2017-06-01)
|
||||
|
||||
* Fixed wrong z-index order of header, overlay and drawer
|
||||
* Fixed wrong offset of targeted footnote back references
|
||||
|
||||
mkdocs-material-1.7.0 (2017-06-01)
|
||||
|
||||
* Added "copy to clipboard" buttons to code blocks
|
||||
* Added support for multilingual site search
|
||||
* Fixed search term highlighting for non-latin languages
|
||||
|
||||
mkdocs-material-1.6.4 (2017-05-24)
|
||||
|
||||
* Fixed #337: JavaScript error for GitHub organization URLs
|
||||
|
||||
mkdocs-material-1.6.3 (2017-05-16)
|
||||
|
||||
* Fixed #329: Broken source stats for private or unknown GitHub repos
|
||||
|
||||
mkdocs-material-1.6.2 (2017-05-15)
|
||||
|
||||
* Fixed #316: Fatal error for git clone on Windows
|
||||
* Fixed #320: Chrome 58 creates double underline for abbr tags
|
||||
* Fixed #323: Ligatures rendered inside code blocks
|
||||
* Fixed miscalculated sidebar height due to missing margin collapse
|
||||
* Changed deprecated MathJax CDN to Cloudflare
|
||||
|
||||
mkdocs-material-1.6.1 (2017-04-23)
|
||||
|
||||
* Fixed following of active/focused element if search input is focused
|
||||
* Fixed layer order of search component elements
|
||||
|
||||
mkdocs-material-1.6.0 (2017-04-22)
|
||||
|
||||
* Added build test for Docker image on Travis
|
||||
* Added search overlay for better user experience (focus)
|
||||
* Added language from localizations to html tag
|
||||
* Fixed #270: Source links broken for absolute URLs
|
||||
* Fixed missing top spacing for first targeted element in content
|
||||
* Fixed too small footnote divider when using larger font sizes
|
||||
|
||||
mkdocs-material-1.5.5 (2017-04-20)
|
||||
|
||||
* Fixed #282: Browser search (META+F) is hijacked
|
||||
|
||||
mkdocs-material-1.5.4 (2017-04-08)
|
||||
|
||||
* Fixed broken highlighting for two or more search terms
|
||||
* Fixed missing search results when only a h1 is present
|
||||
* Fixed unresponsive overlay on Android
|
||||
|
||||
mkdocs-material-1.5.3 (2017-04-07)
|
||||
|
||||
* Fixed deprecated calls for template variables
|
||||
* Fixed wrong palette color for focused search result
|
||||
* Fixed JavaScript errors on 404 page
|
||||
* Fixed missing top spacing on 404 page
|
||||
* Fixed missing right spacing on overflow of source container
|
||||
|
||||
mkdocs-material-1.5.2 (2017-04-05)
|
||||
|
||||
* Added requirements as explicit dependencies in setup.py
|
||||
* Fixed non-synchronized transitions in search form
|
||||
|
||||
mkdocs-material-1.5.1 (2017-03-30)
|
||||
|
||||
* Fixed rendering and offset of targetted footnotes
|
||||
* Fixed #238: Link on logo is not set to site_url
|
||||
|
||||
mkdocs-material-1.5.0 (2017-03-24)
|
||||
|
||||
* Added support for localization of search placeholder
|
||||
* Added keyboard events for quick access of search
|
||||
* Added keyboard events for search control
|
||||
* Added opacity on hover for search buttons
|
||||
* Added git hook to skip CI build on non-src changes
|
||||
* Fixed non-resetting search placeholder when input is cleared
|
||||
* Fixed error for unescaped parentheses in search term
|
||||
* Fixed #229: Button to clear search missing
|
||||
* Fixed #231: Escape key doesn't exit search
|
||||
* Removed old-style figures from font feature settings
|
||||
|
||||
mkdocs-material-1.4.1 (2017-03-16)
|
||||
|
||||
* Fixed invalid destructuring attempt on NodeList (in Safari, Edge, IE)
|
||||
|
||||
mkdocs-material-1.4.0 (2017-03-16)
|
||||
|
||||
* Added support for grouping searched sections by documents
|
||||
* Added support for highlighting of search terms
|
||||
* Added support for localization of search results
|
||||
* Fixed #216: table of contents icon doesn't show if h1 is not present
|
||||
* Reworked style and layout of search results for better usability
|
||||
|
||||
mkdocs-material-1.3.0 (2017-03-11)
|
||||
|
||||
* Added support for page-specific title and description using metadata
|
||||
* Added support for linking source files to documentation
|
||||
* Fixed jitter and offset of sidebar when zooming browser
|
||||
* Fixed incorrectly initialized tablet sidebar height
|
||||
* Fixed regression for #1: GitHub stars break if the repo_url ends with a '/'
|
||||
* Fixed undesired white line below copyright footer due to base font scaling
|
||||
* Fixed issue with whitespace in path for scripts
|
||||
* Fixed #205: support non-fixed (static) header
|
||||
* Refactored footnote references for better visibility
|
||||
* Reduced repaints to a minimum for non-tabs configuration
|
||||
* Reduced contrast of edit button (slightly)
|
||||
|
||||
mkdocs-material-1.2.0 (2017-03-03)
|
||||
|
||||
* Added quote (synonym: cite) style for Admonition
|
||||
* Added help message to build pipeline
|
||||
* Fixed wrong navigation link colors when applying palette
|
||||
* Fixed #197: Link missing in tabs navigation on deeply nested items
|
||||
* Removed unnecessary dev dependencies
|
||||
|
||||
mkdocs-material-1.1.1 (2017-02-26)
|
||||
|
||||
* Fixed incorrectly displayed nested lists when using tabs
|
||||
|
||||
mkdocs-material-1.1.0 (2017-02-26)
|
||||
|
||||
* Added tabs navigation feature (optional)
|
||||
* Added Disqus integration (optional)
|
||||
* Added a high resolution Favicon with the new logo
|
||||
* Added static type checking using Facebook's Flow
|
||||
* Fixed #173: Dictionary elements have no bottom spacing
|
||||
* Fixed #175: Tables cannot be set to 100% width
|
||||
* Fixed race conditions in build related to asset revisioning
|
||||
* Fixed accidentally re-introduced Permalink on top-level headline
|
||||
* Fixed alignment of logo in drawer on IE11
|
||||
* Refactored styles related to tables
|
||||
* Refactored and automated Docker build and PyPI release
|
||||
* Refactored build scripts
|
||||
|
||||
mkdocs-material-1.0.5 (2017-02-18)
|
||||
|
||||
* Fixed #153: Sidebar flows out of constrained area in Chrome 56
|
||||
* Fixed #159: Footer jitter due to JavaScript if content is short
|
||||
|
||||
mkdocs-material-1.0.4 (2017-02-16)
|
||||
|
||||
* Fixed #142: Documentation build errors if h1 is defined as raw HTML
|
||||
* Fixed #164: PyPI release does not build and install
|
||||
* Fixed offsets of targeted headlines
|
||||
* Increased sidebar font size by 0.12rem
|
||||
|
||||
mkdocs-material-1.0.3 (2017-01-22)
|
||||
|
||||
* Fixed #117: Table of contents items don't blur on fast scrolling
|
||||
* Refactored sidebar positioning logic
|
||||
* Further reduction of repaints
|
||||
|
||||
mkdocs-material-1.0.2 (2017-01-15)
|
||||
|
||||
* Fixed #108: Horizontal scrollbar in content area
|
||||
|
||||
mkdocs-material-1.0.1 (2017-01-14)
|
||||
|
||||
* Fixed massive repaints happening when scrolling
|
||||
* Fixed footer back reference positions in case of overflow
|
||||
* Fixed header logo from showing when the menu icon is rendered
|
||||
* Changed scrollbar behavior to only show when content overflows
|
||||
|
||||
mkdocs-material-1.0.0 (2017-01-13)
|
||||
|
||||
* Introduced Webpack for more sophisticated JavaScript bundling
|
||||
@@ -17,7 +239,7 @@ mkdocs-material-1.0.0 (2017-01-13)
|
||||
* Restructured templates into base templates and partials
|
||||
* Added build and watch scripts in package.json
|
||||
* Added support for Metadata and Footnotes Markdown extensions
|
||||
* Added support for pymdownx.* Markdown extensions
|
||||
* Added support for PyMdown Extensions package
|
||||
* Added support for collapsible sections in navigation
|
||||
* Added support for separate table of contents
|
||||
* Added support for better accessibility through REM-based layout
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at https://gitter.im/squidfunk/mkdocs-material. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
+7
-6
@@ -10,7 +10,7 @@ you do, please read the following guidelines.
|
||||
For quick questions there's no need to open an issue as you can reach us on
|
||||
[gitter.im][1].
|
||||
|
||||
[1]: https://gitter.im/mkdocs-material/general
|
||||
[1]: https://gitter.im/squidfunk/mkdocs-material
|
||||
|
||||
### Found a bug?
|
||||
|
||||
@@ -30,12 +30,12 @@ proposal for your work first, to be sure that it is of use for everyone, as
|
||||
the Material theme is highly opinionated. Please consider what kind of change
|
||||
it is:
|
||||
|
||||
* For a **Major Feature**, first open an issue and outline your proposal so
|
||||
* For a **major feature**, first open an issue and outline your proposal so
|
||||
that it can be discussed. This will also allow us to better coordinate our
|
||||
efforts, prevent duplication of work, and help you to craft the change so
|
||||
that it is successfully accepted into the project.
|
||||
|
||||
* **Small Features** and bugs can be crafted and directly submitted as a Pull
|
||||
* **Small features and bugs** can be crafted and directly submitted as a Pull
|
||||
Request. However, there is no guarantee that your feature will make it into
|
||||
the master, as it's always a matter of opinion whether if benefits the
|
||||
overall functionality of the theme.
|
||||
@@ -66,8 +66,8 @@ go ahead.
|
||||
make your changes in a separate git branch and add descriptive messages to
|
||||
your commits.
|
||||
|
||||
2. **Build**: Before submitting a pull requests, build the theme. This is a
|
||||
mandatory requirement for your PR to get accepted, as the theme should at
|
||||
2. **Build**: Before submitting a pull requests, [build the theme][5]. This is
|
||||
a mandatory requirement for your PR to get accepted, as the theme should at
|
||||
all times be installable through GitHub.
|
||||
|
||||
3. **Pull Request**: After building the theme, commit the compiled output, push
|
||||
@@ -78,4 +78,5 @@ go ahead.
|
||||
After your PR is merged, you can safely delete your branch and pull the changes
|
||||
from the main (upstream) repository.
|
||||
|
||||
[4]: http://localhost:8000/customization/#theme-development
|
||||
[4]: http://squidfunk.github.io/mkdocs-material/customization/#environment-setup
|
||||
[5]: http://squidfunk.github.io/mkdocs-material/customization/#build-process
|
||||
|
||||
+17
-8
@@ -19,18 +19,27 @@
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
FROM jfloff/alpine-python:2.7-slim
|
||||
MAINTAINER Martin Donath <martin.donath@squidfunk.com>
|
||||
|
||||
# Set work directory
|
||||
WORKDIR /usr/src
|
||||
# Set build directory
|
||||
WORKDIR /tmp
|
||||
|
||||
# Install packages
|
||||
COPY requirements.txt .
|
||||
# Copy files necessary for build
|
||||
COPY material material
|
||||
COPY MANIFEST.in MANIFEST.in
|
||||
COPY package.json package.json
|
||||
COPY requirements.txt requirements.txt
|
||||
COPY setup.py setup.py
|
||||
|
||||
# Perform build and cleanup artifacts
|
||||
RUN \
|
||||
pip install -r requirements.txt && \
|
||||
pip install mkdocs-material && \
|
||||
rm requirements.txt
|
||||
python setup.py install 2>/dev/null && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
# Expose MkDocs default port
|
||||
# Set working directory
|
||||
WORKDIR /docs
|
||||
|
||||
# Expose MkDocs development server port
|
||||
EXPOSE 8000
|
||||
|
||||
# Start development server by default
|
||||
|
||||
+152
-68
@@ -20,6 +20,7 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import chalk from "chalk"
|
||||
import gulp from "gulp"
|
||||
import notifier from "node-notifier"
|
||||
import plumber from "gulp-plumber"
|
||||
@@ -30,28 +31,97 @@ import yargs from "yargs"
|
||||
* Configuration and arguments
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
/* General configuration */
|
||||
const config = {
|
||||
assets: {
|
||||
src: "src/assets", /* Source directory for assets */
|
||||
build: "material/assets" /* Target directory for assets */
|
||||
},
|
||||
lib: "lib", /* Libraries */
|
||||
lib: "lib", /* Libraries and tasks */
|
||||
views: {
|
||||
src: "src", /* Source directory for views */
|
||||
build: "material" /* Target directory for views */
|
||||
}
|
||||
}
|
||||
|
||||
const args = yargs
|
||||
.default("clean", false) /* Clean before build */
|
||||
.default("karma", true) /* Karma watchdog */
|
||||
.default("lint", true) /* Lint sources */
|
||||
.default("mkdocs", true) /* MkDocs watchdog */
|
||||
.default("optimize", false) /* Optimize sources */
|
||||
.default("revision", false) /* Revision assets */
|
||||
.default("sourcemaps", false) /* Create sourcemaps */
|
||||
/* Commandline arguments */
|
||||
let args = yargs
|
||||
.locale("en")
|
||||
.usage(`\n${chalk.yellow("Usage:")} yarn run <command> -- [options]`)
|
||||
.wrap(84)
|
||||
.updateStrings({
|
||||
"Commands:": chalk.yellow("Commands:"),
|
||||
"Examples:": chalk.yellow("Examples:")
|
||||
})
|
||||
|
||||
/* Commands */
|
||||
.command("build", chalk.grey("build assets and views"))
|
||||
.command("clean", chalk.grey("clean build artifacts"))
|
||||
.command("flow", chalk.grey("type check with flow"))
|
||||
.command("help", chalk.grey("display this message"))
|
||||
.command("lint", chalk.grey("lint sources"))
|
||||
.command("start", chalk.grey("start development server"))
|
||||
|
||||
/* Options */
|
||||
.group([
|
||||
"help", "clean"
|
||||
], chalk.yellow("Options:"))
|
||||
.help("help", chalk.grey("display this message"))
|
||||
.option("clean", {
|
||||
describe: chalk.grey("clean artifacts before command"),
|
||||
default: false,
|
||||
global: true
|
||||
})
|
||||
|
||||
/* Build options */
|
||||
.group([
|
||||
"lint", "optimize", "revision", "sourcemaps", "mkdocs"
|
||||
], chalk.yellow("Build Options:"))
|
||||
.option("lint", {
|
||||
describe: chalk.grey("lint sources before build"),
|
||||
default: true,
|
||||
global: true
|
||||
})
|
||||
.option("optimize", {
|
||||
describe: chalk.grey("optimize and minify assets"),
|
||||
default: false,
|
||||
global: true
|
||||
})
|
||||
.option("revision", {
|
||||
describe: chalk.grey("revision assets for cache busting"),
|
||||
default: false,
|
||||
global: true
|
||||
})
|
||||
.option("sourcemaps", {
|
||||
describe: chalk.grey("generate sourcemaps for assets"),
|
||||
default: false,
|
||||
global: true
|
||||
})
|
||||
.option("mkdocs", {
|
||||
describe: chalk.grey("build documentation or start watchdog"),
|
||||
default: true,
|
||||
global: true
|
||||
})
|
||||
|
||||
/* Example commands */
|
||||
.example("yarn run build")
|
||||
.example("yarn run build -- --no-optimize")
|
||||
.example("yarn run clean")
|
||||
.example("yarn run flow")
|
||||
.example("yarn run lint")
|
||||
.example("yarn run start")
|
||||
|
||||
/* Apply to process.argv */
|
||||
.argv
|
||||
|
||||
/* Only use the last seen value if boolean, so overrides are possible */
|
||||
args = Object.keys(args).reduce((result, arg) => {
|
||||
result[arg] = Array.isArray(args[arg]) && typeof args[arg][0] === "boolean"
|
||||
? [].concat(args[arg]).pop()
|
||||
: args[arg]
|
||||
return result
|
||||
}, {})
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Overrides and helpers
|
||||
* ------------------------------------------------------------------------- */
|
||||
@@ -90,9 +160,16 @@ gulp.src = (...glob) => {
|
||||
|
||||
/*
|
||||
* Helper function to load a task
|
||||
*
|
||||
* This function returns a callback that will require the task with the given
|
||||
* name and execute the function that is returned by this task. It omits the
|
||||
* need to load all tasks upfront, speeding up the build a gazillion times.
|
||||
*/
|
||||
const load = task => {
|
||||
return require(`./${config.lib}/tasks/${task}`)(gulp, config, args)
|
||||
return done => {
|
||||
return require(`./${config.lib}/tasks/${task}`)
|
||||
.call(gulp, gulp, config, args)(done)
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
@@ -102,26 +179,24 @@ const load = task => {
|
||||
/*
|
||||
* Copy favicon
|
||||
*/
|
||||
gulp.task("assets:images:build:ico",
|
||||
load("assets/images/build/ico"))
|
||||
gulp.task("assets:images:build:ico", [
|
||||
args.clean ? "assets:images:clean" : false
|
||||
].filter(Boolean), load("assets/images/build/ico"))
|
||||
|
||||
/*
|
||||
* Copy and minify vector graphics
|
||||
*/
|
||||
gulp.task("assets:images:build:svg",
|
||||
load("assets/images/build/svg"))
|
||||
gulp.task("assets:images:build:svg", [
|
||||
args.clean ? "assets:images:clean" : false
|
||||
].filter(Boolean), load("assets/images/build/svg"))
|
||||
|
||||
/*
|
||||
* Copy images
|
||||
*/
|
||||
gulp.task("assets:images:build", args.clean ? [
|
||||
"assets:images:clean"
|
||||
] : [], () => {
|
||||
return gulp.start([
|
||||
"assets:images:build:ico",
|
||||
"assets:images:build:svg"
|
||||
])
|
||||
})
|
||||
gulp.task("assets:images:build", [
|
||||
"assets:images:build:ico",
|
||||
"assets:images:build:svg"
|
||||
])
|
||||
|
||||
/*
|
||||
* Clean images generated by build
|
||||
@@ -135,30 +210,45 @@ gulp.task("assets:images:clean",
|
||||
|
||||
/*
|
||||
* Build application logic
|
||||
*
|
||||
* When revisioning assets, the build must be serialized due to possible race
|
||||
* conditions when two tasks try to write manifest.json simultaneously
|
||||
*/
|
||||
gulp.task("assets:javascripts:build:application",
|
||||
load("assets/javascripts/build/application"))
|
||||
|
||||
gulp.task("assets:javascripts:build:application", [
|
||||
args.clean ? "assets:javascripts:clean" : false,
|
||||
args.lint ? "assets:javascripts:lint" : false,
|
||||
args.revision ? "assets:stylesheets:build" : false
|
||||
].filter(Boolean), load("assets/javascripts/build/application"))
|
||||
|
||||
/*
|
||||
* Build custom modernizr
|
||||
*
|
||||
* When revisioning assets, the build must be serialized due to possible race
|
||||
* conditions when two tasks try to write manifest.json simultaneously
|
||||
*/
|
||||
gulp.task("assets:javascripts:build:modernizr", [
|
||||
"assets:stylesheets:build"
|
||||
], load("assets/javascripts/build/modernizr"))
|
||||
"assets:stylesheets:build",
|
||||
args.clean ? "assets:javascripts:clean" : false,
|
||||
args.lint ? "assets:javascripts:lint" : false,
|
||||
args.revision ? "assets:javascripts:build:application" : false
|
||||
].filter(Boolean), load("assets/javascripts/build/modernizr"))
|
||||
|
||||
/*
|
||||
* Build application logic and modernizr
|
||||
* Build search language support files
|
||||
*/
|
||||
gulp.task("assets:javascripts:build", (args.clean ? [
|
||||
"assets:javascripts:clean"
|
||||
] : []).concat(args.lint ? [
|
||||
"assets:javascripts:lint"
|
||||
] : []), () => {
|
||||
return gulp.start([
|
||||
"assets:javascripts:build:application",
|
||||
"assets:javascripts:build:modernizr"
|
||||
])
|
||||
})
|
||||
gulp.task("assets:javascripts:build:languages", [
|
||||
args.clean ? "assets:javascripts:clean" : false
|
||||
].filter(Boolean), load("assets/javascripts/build/languages"))
|
||||
|
||||
/*
|
||||
* Build JavaScript
|
||||
*/
|
||||
gulp.task("assets:javascripts:build", [
|
||||
"assets:javascripts:build:application",
|
||||
"assets:javascripts:build:modernizr",
|
||||
"assets:javascripts:build:languages"
|
||||
])
|
||||
|
||||
/*
|
||||
* Clean JavaScript generated by build
|
||||
@@ -166,6 +256,12 @@ gulp.task("assets:javascripts:build", (args.clean ? [
|
||||
gulp.task("assets:javascripts:clean",
|
||||
load("assets/javascripts/clean"))
|
||||
|
||||
/*
|
||||
* Annotate JavaScript
|
||||
*/
|
||||
gulp.task("assets:javascripts:annotate",
|
||||
load("assets/javascripts/annotate"))
|
||||
|
||||
/*
|
||||
* Lint JavaScript
|
||||
*/
|
||||
@@ -179,12 +275,10 @@ gulp.task("assets:javascripts:lint",
|
||||
/*
|
||||
* Build stylesheets from SASS source
|
||||
*/
|
||||
gulp.task("assets:stylesheets:build", (args.clean ? [
|
||||
"assets:stylesheets:clean"
|
||||
] : []).concat(args.lint ? [
|
||||
"assets:stylesheets:lint"
|
||||
] : []),
|
||||
load("assets/stylesheets/build"))
|
||||
gulp.task("assets:stylesheets:build", [
|
||||
args.clean ? "assets:stylesheets:clean" : false,
|
||||
args.lint ? "assets:stylesheets:lint" : false
|
||||
].filter(Boolean), load("assets/stylesheets/build"))
|
||||
|
||||
/*
|
||||
* Clean stylesheets generated by build
|
||||
@@ -227,13 +321,13 @@ gulp.task("assets:clean", [
|
||||
/*
|
||||
* Minify views
|
||||
*/
|
||||
gulp.task("views:build", (args.revision ? [
|
||||
"assets:images:build",
|
||||
"assets:stylesheets:build",
|
||||
"assets:javascripts:build"
|
||||
] : []).concat(args.clean ? [
|
||||
"views:clean"
|
||||
] : []), load("views/build"))
|
||||
|
||||
gulp.task("views:build", [
|
||||
args.clean ? "views:clean" : false,
|
||||
args.revision ? "assets:images:build" : false,
|
||||
args.revision ? "assets:stylesheets:build" : false,
|
||||
args.revision ? "assets:javascripts:build" : false
|
||||
].filter(Boolean), load("views/build"))
|
||||
|
||||
/*
|
||||
* Clean views
|
||||
@@ -266,16 +360,6 @@ gulp.task("mkdocs:clean",
|
||||
gulp.task("mkdocs:serve",
|
||||
load("mkdocs/serve"))
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Tests
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Start karma test runner
|
||||
*/
|
||||
gulp.task("tests:unit:watch",
|
||||
load("tests/unit/watch"))
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Interface
|
||||
* ------------------------------------------------------------------------- */
|
||||
@@ -285,10 +369,9 @@ gulp.task("tests:unit:watch",
|
||||
*/
|
||||
gulp.task("build", [
|
||||
"assets:build",
|
||||
"views:build"
|
||||
].concat(args.mkdocs
|
||||
? "mkdocs:build"
|
||||
: []))
|
||||
"views:build",
|
||||
args.mkdocs ? "mkdocs:build" : false
|
||||
].filter(f => f))
|
||||
|
||||
/*
|
||||
* Clean assets and documentation
|
||||
@@ -312,10 +395,6 @@ gulp.task("watch", [
|
||||
if (args.mkdocs)
|
||||
gulp.start("mkdocs:serve")
|
||||
|
||||
/* Start karma test runner */
|
||||
// if (args.karma)
|
||||
// gulp.start("tests:unit:watch")
|
||||
|
||||
/* Rebuild stylesheets */
|
||||
gulp.watch([
|
||||
`${config.assets.src}/stylesheets/**/*.scss`
|
||||
@@ -337,6 +416,11 @@ gulp.task("watch", [
|
||||
], ["views:build"])
|
||||
})
|
||||
|
||||
/*
|
||||
* Print help message
|
||||
*/
|
||||
gulp.task("help")
|
||||
|
||||
/*
|
||||
* Build assets by default
|
||||
*/
|
||||
|
||||
@@ -3,3 +3,5 @@ recursive-exclude site *
|
||||
recursive-exclude * __pycache__
|
||||
recursive-exclude * *.py[co]
|
||||
include LICENSE
|
||||
include package.json
|
||||
include requirements.txt
|
||||
|
||||
@@ -1,37 +1,57 @@
|
||||
[![Travis][travis-image]][travis-link]
|
||||
[![Dependencies][deps-image]][deps-link]
|
||||
[![Gitter][gitter-image]][gitter-link]
|
||||
[![Codacy][codacy-image]][codacy-link]
|
||||
[![Docker][docker-image]][docker-link]
|
||||
[![PyPI][pypi-image]][pypi-link]
|
||||
|
||||
[travis-image]: https://travis-ci.org/squidfunk/mkdocs-material.svg
|
||||
[travis-image]: https://travis-ci.org/squidfunk/mkdocs-material.svg?branch=master
|
||||
[travis-link]: https://travis-ci.org/squidfunk/mkdocs-material
|
||||
[deps-image]: https://david-dm.org/squidfunk/mkdocs-material/dev-status.svg
|
||||
[deps-link]: https://david-dm.org/squidfunk/mkdocs-material?type=dev
|
||||
[gitter-image]: https://img.shields.io/gitter/room/squidfunk/mkdocs-material.svg
|
||||
[gitter-link]: https://gitter.im/squidfunk/mkdocs-material
|
||||
[codacy-image]: https://api.codacy.com/project/badge/Grade/fe07aa1fa91d453cb69711d3885c5d7e
|
||||
[codacy-link]: https://www.codacy.com/app/squidfunk/mkdocs-material?utm_source=github.com&utm_medium=referral&utm_content=squidfunk/mkdocs-material&utm_campaign=Badge_Grade
|
||||
[docker-image]: https://img.shields.io/docker/pulls/squidfunk/mkdocs-material.svg
|
||||
[docker-link]: https://hub.docker.com/r/squidfunk/mkdocs-material/
|
||||
[pypi-image]: https://img.shields.io/pypi/v/mkdocs-material.svg
|
||||
[pypi-link]: https://pypi.python.org/pypi/mkdocs-material
|
||||
|
||||
# Material for MkDocs
|
||||
|
||||
A Material Design theme for [MkDocs](http://www.mkdocs.org).
|
||||
A Material Design theme for [MkDocs][1].
|
||||
|
||||
[](http://squidfunk.github.io/mkdocs-material/)
|
||||
[][2]
|
||||
|
||||
[1]: http://www.mkdocs.org
|
||||
[2]: http://squidfunk.github.io/mkdocs-material/
|
||||
|
||||
## Quick start
|
||||
|
||||
Install with `pip`:
|
||||
Install the latest version of Material with `pip`:
|
||||
|
||||
``` sh
|
||||
pip install mkdocs-material
|
||||
```
|
||||
|
||||
Add the following line to your `mkdocs.yml`:
|
||||
Append the following line to your project's `mkdocs.yml`:
|
||||
|
||||
``` yaml
|
||||
theme: 'material'
|
||||
```
|
||||
|
||||
## What to expect
|
||||
|
||||
* Responsive design and fluid layout for all kinds of screens and devices,
|
||||
designed to serve your project documentation in a user-friendly way with
|
||||
optimal readability.
|
||||
|
||||
* Easily customizable primary and accent color, fonts, favicon and logo;
|
||||
straight forward localization through theme extension; integrated with Google
|
||||
Analytics, Disqus and GitHub.
|
||||
|
||||
* Well-designed search interface accessible through hotkeys (<kbd>F</kbd> or
|
||||
<kbd>S</kbd>), intelligent grouping of search results, search term
|
||||
highlighting and lazy loading.
|
||||
|
||||
For detailed installation instructions and a demo, visit
|
||||
http://squidfunk.github.io/mkdocs-material/
|
||||
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
# Contributing
|
||||
|
||||
Interested in contributing to the Material theme? Want to report a bug? Before
|
||||
you do, please read the following guidelines.
|
||||
|
||||
## Submission context
|
||||
|
||||
### Got a question or problem?
|
||||
|
||||
For quick questions there's no need to open an issue as you can reach us on
|
||||
[gitter.im][1].
|
||||
|
||||
[1]: https://gitter.im/mkdocs-material/general
|
||||
|
||||
### Found a bug?
|
||||
|
||||
If you found a bug in the source code, you can help us by submitting an issue
|
||||
to the [issue tracker][2] in our GitHub repository. Even better, you can submit
|
||||
a Pull Request with a fix. However, before doing so, please read the
|
||||
[submission guidelines][3].
|
||||
|
||||
[2]: https://github.com/squidfunk/mkdocs-material/issues
|
||||
[3]: #submission-guidelines
|
||||
|
||||
### Missing a feature?
|
||||
|
||||
You can request a new feature by submitting an issue to our GitHub Repository.
|
||||
If you would like to implement a new feature, please submit an issue with a
|
||||
proposal for your work first, to be sure that it is of use for everyone, as
|
||||
the Material theme is highly opinionated. Please consider what kind of change
|
||||
it is:
|
||||
|
||||
* For a **major feature**, first open an issue and outline your proposal so
|
||||
that it can be discussed. This will also allow us to better coordinate our
|
||||
efforts, prevent duplication of work, and help you to craft the change so
|
||||
that it is successfully accepted into the project.
|
||||
|
||||
* **Small features and bugs** can be crafted and directly submitted as a Pull
|
||||
Request. However, there is no guarantee that your feature will make it into
|
||||
the master, as it's always a matter of opinion whether if benefits the
|
||||
overall functionality of the theme.
|
||||
|
||||
## Submission guidelines
|
||||
|
||||
### Submitting an issue
|
||||
|
||||
Before you submit an issue, please search the issue tracker, maybe an issue for
|
||||
your problem already exists and the discussion might inform you of workarounds
|
||||
readily available.
|
||||
|
||||
We want to fix all the issues as soon as possible, but before fixing a bug we
|
||||
need to reproduce and confirm it. In order to reproduce bugs we will
|
||||
systematically ask you to provide a minimal reproduction scenario using the
|
||||
custom issue template. Please stick to the issue template.
|
||||
|
||||
Unfortunately we are not able to investigate / fix bugs without a minimal
|
||||
reproduction scenario, so if we don't hear back from you we may close the issue.
|
||||
|
||||
### Submitting a Pull Request (PR)
|
||||
|
||||
Search GitHub for an open or closed PR that relates to your submission. You
|
||||
don't want to duplicate effort. If you do not find a related issue or PR,
|
||||
go ahead.
|
||||
|
||||
1. **Development**: Fork the project, set up the [development environment][4],
|
||||
make your changes in a separate git branch and add descriptive messages to
|
||||
your commits.
|
||||
|
||||
2. **Build**: Before submitting a pull requests, build the theme. This is a
|
||||
mandatory requirement for your PR to get accepted, as the theme should at
|
||||
all times be installable through GitHub.
|
||||
|
||||
3. **Pull Request**: After building the theme, commit the compiled output, push
|
||||
your branch to GitHub and send a PR to `mkdocs-material:master`. If we
|
||||
suggest changes, make the required updates, rebase your branch and push the
|
||||
changes to your GitHub repository, which will automatically update your PR.
|
||||
|
||||
After your PR is merged, you can safely delete your branch and pull the changes
|
||||
from the main (upstream) repository.
|
||||
|
||||
[4]: http://localhost:8000/customization/#theme-development
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../CONTRIBUTING.md
|
||||
+21
-14
@@ -4,8 +4,8 @@
|
||||
|
||||
Project documentation is as diverse as the projects themselves and the Material
|
||||
theme is a good starting point for making it look great. However, as you write
|
||||
your documentation, you may reach some point where some small adjustments are
|
||||
necessary to preserve the style.
|
||||
your documentation, you may reach a point where some small adjustments are
|
||||
necessary to preserve the desired style.
|
||||
|
||||
## Adding assets
|
||||
|
||||
@@ -98,6 +98,7 @@ The directory layout of the Material theme is as follows:
|
||||
│ ├─ javascripts/ # JavaScript
|
||||
│ └─ stylesheets/ # Stylesheets
|
||||
├─ partials/
|
||||
│ ├─ disqus.html # Disqus integration
|
||||
│ ├─ footer.html # Footer bar
|
||||
│ ├─ header.html # Header bar
|
||||
│ ├─ language.html # Localized labels
|
||||
@@ -106,6 +107,8 @@ The directory layout of the Material theme is as follows:
|
||||
│ ├─ search.html # Search box
|
||||
│ ├─ social.html # Social links
|
||||
│ ├─ source.html # Repository information
|
||||
│ ├─ tabs-item.html # Tabs navigation item
|
||||
│ ├─ tabs.html # Tabs navigation
|
||||
│ ├─ toc-item.html # Table of contents item
|
||||
│ └─ toc.html # Table of contents
|
||||
├─ 404.html # 404 error page
|
||||
@@ -141,6 +144,7 @@ The Material theme provides the following template blocks:
|
||||
| ------------ | ----------------------------------------------- |
|
||||
| `analytics` | Wraps the Google Analytics integration |
|
||||
| `content` | Wraps the main content |
|
||||
| `disqus` | Wraps the disqus integration |
|
||||
| `extrahead` | Empty block to define additional meta tags |
|
||||
| `fonts` | Wraps the webfont definitions |
|
||||
| `footer` | Wraps the footer with navigation and copyright |
|
||||
@@ -149,6 +153,7 @@ The Material theme provides the following template blocks:
|
||||
| `libs` | Wraps the JavaScript libraries, e.g. Modernizr |
|
||||
| `repo` | Wraps the repository link in the header bar |
|
||||
| `scripts` | Wraps the JavaScript application logic |
|
||||
| `source` | Wraps the linked source files |
|
||||
| `search_box` | Wraps the search form in the header bar |
|
||||
| `site_meta` | Wraps the meta tags in the document head |
|
||||
| `site_name` | Wraps the site name in the header bar |
|
||||
@@ -174,7 +179,8 @@ theme and recompile it. This is fairly easy.
|
||||
### Environment setup
|
||||
|
||||
In order to start development on the Material theme, a [Node.js][8] version of
|
||||
at least 4 is required. Clone the repository from GitHub:
|
||||
at least 5 is required, as well as the package manager [yarn][9] which is a
|
||||
better version of `npm`. First, clone the repository:
|
||||
|
||||
``` sh
|
||||
git clone https://github.com/squidfunk/mkdocs-material
|
||||
@@ -185,23 +191,24 @@ Next, all dependencies need to be installed, which is done with:
|
||||
``` sh
|
||||
cd mkdocs-material
|
||||
pip install -r requirements.txt
|
||||
npm install
|
||||
yarn install
|
||||
```
|
||||
|
||||
[8]: https://nodejs.org
|
||||
[9]: https://yarnpkg.com/
|
||||
|
||||
### Development mode
|
||||
|
||||
The Material theme uses a sophisticated asset pipeline using [Gulp][9] and
|
||||
The Material theme uses a sophisticated asset pipeline using [Gulp][10] and
|
||||
Webpack which can be started with the following command:
|
||||
|
||||
``` sh
|
||||
npm run start
|
||||
yarn start
|
||||
```
|
||||
|
||||
This will also start the MkDocs development server which will monitor changes
|
||||
on assets, templates and documentation. Point your browser to
|
||||
[localhost:8000][10] and you should see this documentation in front of you.
|
||||
[localhost:8000][11] and you should see this documentation in front of you.
|
||||
|
||||
For example, changing the color palette is as simple as changing the
|
||||
`$md-color-primary` and `$md-color-accent` variables in
|
||||
@@ -218,21 +225,21 @@ $md-color-accent: $clr-teal-a700;
|
||||
directory are automatically generated from the `src` directory and will be
|
||||
overriden when the theme is built.
|
||||
|
||||
[9]: http://gulpjs.com
|
||||
[10]: http://localhost:8000
|
||||
[10]: http://gulpjs.com
|
||||
[11]: http://localhost:8000
|
||||
|
||||
### Build process
|
||||
|
||||
When you finished making your changes, you can build the theme by invoking:
|
||||
When you've finished making your changes, you can build the theme by invoking:
|
||||
|
||||
``` sh
|
||||
npm run build
|
||||
yarn run build
|
||||
```
|
||||
|
||||
This triggers the production-level compilation and minification of all
|
||||
stylesheets 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`.
|
||||
stylesheets and JavaScript sources. When the command exits, the final theme is
|
||||
located in the `material` directory. Add the `theme_dir` variable pointing to
|
||||
the aforementioned directory in your original `mkdocs.yml`.
|
||||
|
||||
Now you can run `mkdocs build` and you should see your documentation with your
|
||||
changes to the original Material theme.
|
||||
|
||||
@@ -95,7 +95,7 @@ standard Markdown library does not account for those.
|
||||
|
||||
However, the [PyMdown Extensions][4] package adds an extension called
|
||||
[SuperFences][5], which makes it possible to nest code blocks within other
|
||||
blocks.
|
||||
blocks, respectively Admonition blocks.
|
||||
|
||||
[4]: https://facelessuser.github.io/pymdown-extensions
|
||||
[5]: https://facelessuser.github.io/pymdown-extensions/extensions/superfences/
|
||||
@@ -128,14 +128,40 @@ Example:
|
||||
sem ut cursus. Nullam sit amet tincidunt ipsum, sit amet elementum turpis.
|
||||
Etiam ipsum quam, mattis in purus vitae, lacinia fermentum enim.
|
||||
|
||||
### Collapsible blocks
|
||||
|
||||
The [Details][6] extension which is also part of the [PyMdown Extensions][4]
|
||||
package adds support for rendering collapsible Admonition blocks. This is
|
||||
useful for FAQs or content that is of secondary nature.
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
??? note "Phasellus posuere in sem ut cursus"
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
??? note "Phasellus posuere in sem ut cursus"
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
|
||||
By adding a `+` sign directly after the start marker, blocks can be rendered
|
||||
open by default.
|
||||
|
||||
[6]: https://facelessuser.github.io/pymdown-extensions/extensions/details/
|
||||
|
||||
## Types
|
||||
|
||||
Admonition supports user-defined type qualifiers which may influence the style
|
||||
of the inserted block. Following is a list of type qualifiers supported by the
|
||||
of the inserted block. Following is a list of type qualifiers provided by the
|
||||
Material theme, whereas the default type, and thus fallback for unknown type
|
||||
qualifiers, is [note][6].
|
||||
|
||||
[6]: #note
|
||||
qualifiers, is `note`.
|
||||
|
||||
### Note
|
||||
|
||||
@@ -185,6 +211,30 @@ Qualifiers:
|
||||
* `summary`
|
||||
* `tldr`
|
||||
|
||||
### Info
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
!!! info
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
!!! info
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
|
||||
Qualifiers:
|
||||
|
||||
* `info`
|
||||
* `todo`
|
||||
|
||||
### Tip
|
||||
|
||||
Example:
|
||||
@@ -235,6 +285,31 @@ Qualifiers:
|
||||
* `check`
|
||||
* `done`
|
||||
|
||||
### Question
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
!!! question
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
!!! question
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
|
||||
Qualifiers:
|
||||
|
||||
* `question`
|
||||
* `help`
|
||||
* `faq`
|
||||
|
||||
### Warning
|
||||
|
||||
Example:
|
||||
@@ -331,3 +406,27 @@ Result:
|
||||
Qualifiers:
|
||||
|
||||
* `bug`
|
||||
|
||||
### Quote
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
!!! quote
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
!!! quote
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod
|
||||
nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor
|
||||
massa, nec semper lorem quam in massa.
|
||||
|
||||
Qualifiers:
|
||||
|
||||
* `quote`
|
||||
* `cite`
|
||||
|
||||
@@ -4,13 +4,21 @@
|
||||
and is included in the standard Markdown library. The highlighting process is
|
||||
executed during compilation of the Markdown file.
|
||||
|
||||
!!! failure "Syntax highlighting not working?"
|
||||
|
||||
Please ensure that [Pygments][2] is installed. See the next section for
|
||||
further directions on how to set up Pygments or use the official
|
||||
[Docker image][3] with all dependencies pre-installed.
|
||||
|
||||
[1]: https://pythonhosted.org/Markdown/extensions/code_hilite.html
|
||||
[2]: http://pygments.org
|
||||
[3]: https://hub.docker.com/r/squidfunk/mkdocs-material/
|
||||
|
||||
## Installation
|
||||
|
||||
CodeHilite parses code blocks and wraps them in `<pre>` tags. If [Pygments][2]
|
||||
CodeHilite parses code blocks and wraps them in `pre` tags. If [Pygments][2]
|
||||
is installed, which is a generic syntax highlighter with support for over
|
||||
[300 languages][3], CodeHilite will also highlight the code block. Pygments can
|
||||
[300 languages][4], CodeHilite will also highlight the code block. Pygments can
|
||||
be installed with the following command:
|
||||
|
||||
``` sh
|
||||
@@ -32,8 +40,7 @@ markdown_extensions:
|
||||
that and defines styles for the default `.codehilite` class, so the part
|
||||
`css_class=code` needs to be removed.
|
||||
|
||||
[2]: http://pygments.org
|
||||
[3]: http://pygments.org/languages
|
||||
[4]: http://pygments.org/languages
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
path: tree/master/docs/extensions
|
||||
source: metadata.md
|
||||
|
||||
# Metadata
|
||||
|
||||
The [Metadata][1] extension makes it possible to add metadata to a document
|
||||
which gives more control over the theme in a page-specific context.
|
||||
|
||||
[1]: https://pythonhosted.org/Markdown/extensions/meta_data.html
|
||||
|
||||
## Installation
|
||||
|
||||
Add the following lines to your `mkdocs.yml`:
|
||||
|
||||
``` yaml
|
||||
markdown_extensions:
|
||||
- meta
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Metadata is written as a series of key-value pairs at the beginning of the
|
||||
Markdown document, delimited by a blank line which ends the metadata context.
|
||||
Naturally, the metadata is stripped from the document before rendering the
|
||||
actual page content and made available to the theme.
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
title: Lorem ipsum dolor sit amet
|
||||
description: Nullam urna elit, malesuada eget finibus ut, ac tortor.
|
||||
path: path/to/file
|
||||
source: file.js
|
||||
|
||||
# Headline
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
See the next section which covers the metadata that is supported by Material.
|
||||
|
||||
### Overriding the title
|
||||
|
||||
The page title can be overridden on a per-document level:
|
||||
|
||||
``` markdown
|
||||
title: Lorem ipsum dolor sit amet
|
||||
```
|
||||
|
||||
This will set the `title` tag inside the document `head` for the current page
|
||||
to the provided value. It will also override the default behavior of Material
|
||||
for MkDocs which appends the site title using a dash as a separator to the page
|
||||
title.
|
||||
|
||||
### Overriding the description
|
||||
|
||||
The page description can also be overridden on a per-document level:
|
||||
|
||||
``` yaml
|
||||
description: Nullam urna elit, malesuada eget finibus ut, ac tortor.
|
||||
```
|
||||
|
||||
This will set the `meta` tag containing the site description inside the
|
||||
document `head` for the current page to the provided value.
|
||||
|
||||
### Linking sources
|
||||
|
||||
When a document is related to a specific set of source files and the `repo_url`
|
||||
is defined inside the project's `mkdocs.yml`, the files can be linked using the
|
||||
`source` key:
|
||||
|
||||
``` markdown
|
||||
source: file.js
|
||||
```
|
||||
|
||||
A new entry at the bottom of the table of contents is generated that is linking
|
||||
to the section listing the linked source files. Multiple files can be linked by
|
||||
adding filenames on separate lines:
|
||||
|
||||
``` markdown
|
||||
source: file.js
|
||||
file.css
|
||||
```
|
||||
|
||||
The filenames are appended to the `repo_url` set in your `mkdocs.yml`, but can
|
||||
be prefixed with a `path` to ensure correct path resolving:
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
path: tree/master/docs/extensions
|
||||
source: metadata.md
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
See the [source][2] section for the resulting output.
|
||||
|
||||
[2]: #__source
|
||||
+159
-159
@@ -24,6 +24,7 @@ markdown_extensions:
|
||||
- pymdownx.betterem(smart_enable=all)
|
||||
- pymdownx.caret
|
||||
- pymdownx.critic
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_generator: !!python/name:pymdownx.emoji.to_svg
|
||||
- pymdownx.inlinehilite
|
||||
@@ -37,169 +38,22 @@ markdown_extensions:
|
||||
|
||||
## Usage
|
||||
|
||||
### GitHub Flavored Markdown
|
||||
|
||||
Most of the extensions included in the PyMdown Extensions package try to bring
|
||||
the Markdown experience closer to GitHub Flavored Markdown (GFM).
|
||||
|
||||
The PyMdown Extensions package adds a shorthand to enable all of the included
|
||||
extensions that provide the GFM experience. However, usage of the shorthand is
|
||||
discouraged, because some extensions are not supported, as the Material theme
|
||||
uses some incompatible extensions included in the standard Markdown library.
|
||||
|
||||
#### BetterEm
|
||||
|
||||
[BetterEm][2] improves the handling of emphasis markup (**bold** and *italic*)
|
||||
within Markdown by providing a more sophisticated parser for better detecting
|
||||
start and end tokens. Read the documentation for [usage notes][3].
|
||||
|
||||
[2]: https://facelessuser.github.io/pymdown-extensions/extensions/betterem/
|
||||
[3]: https://facelessuser.github.io/pymdown-extensions/usage_notes/
|
||||
|
||||
#### Emoji
|
||||
|
||||
[Emoji][4] adds the ability to insert a :shit:-load of emojis that we use in
|
||||
our daily lives. See the [EmojiOne demo][5] for a list of all available
|
||||
emojis. Happy scrolling :tada:
|
||||
|
||||
!!! warning "Legal disclaimer"
|
||||
|
||||
Material has no affiliation with [EmojiOne][6] which is released under
|
||||
[CC BY 4.0][7]. When including EmojiOne images or CSS, please read the
|
||||
[EmojiOne license][8] to ensure proper usage and attribution.
|
||||
|
||||
[4]: https://facelessuser.github.io/pymdown-extensions/extensions/emoji/
|
||||
[5]: http://emojione.com/demo/
|
||||
[6]: http://emojione.com
|
||||
[7]: https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
[8]: http://emojione.com/licensing/
|
||||
|
||||
#### MagicLink
|
||||
|
||||
[MagicLink][9] detects links in Markdown and auto-generates the necessary
|
||||
markup, so no special syntax is required. It auto-links `http[s]://` and
|
||||
`ftp://` links, as well as references to email addresses:
|
||||
|
||||
[9]: https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/
|
||||
|
||||
#### SuperFences
|
||||
|
||||
[SuperFences][10] provides the ability to nest code blocks under blockquotes,
|
||||
lists and other block elements, which the [Fenced Code Blocks][11] extension
|
||||
from the standard Markdown library doesn't parse correctly.
|
||||
|
||||
[10]: https://facelessuser.github.io/pymdown-extensions/extensions/superfences/
|
||||
[11]: https://pythonhosted.org/Markdown/extensions/fenced_code_blocks.html
|
||||
|
||||
#### Tasklist
|
||||
|
||||
[Tasklist][12] adds support for styled checkbox lists. This is useful for
|
||||
keeping track of tasks and showing what has been done and has yet to be done.
|
||||
Checkbox lists are like regular lists, but prefixed with `[ ]` for empty or
|
||||
`[x]` for filled checkboxes.
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
* [x] Lorem ipsum dolor sit amet, consectetur adipiscing elit
|
||||
* [x] Nulla lobortis egestas semper
|
||||
* [x] Curabitur elit nibh, euismod et ullamcorper at, iaculis feugiat est
|
||||
* [ ] Vestibulum convallis sit amet nisi a tincidunt
|
||||
* [x] In hac habitasse platea dictumst
|
||||
* [x] In scelerisque nibh non dolor mollis congue sed et metus
|
||||
* [x] Sed egestas felis quis elit dapibus, ac aliquet turpis mattis
|
||||
* [ ] Praesent sed risus massa
|
||||
* [ ] Aenean pretium efficitur erat, donec pharetra, ligula non scelerisque
|
||||
* [ ] Nulla vel eros venenatis, imperdiet enim id, faucibus nisi
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
* [x] Lorem ipsum dolor sit amet, consectetur adipiscing elit
|
||||
* [x] Nulla lobortis egestas semper
|
||||
* [x] Curabitur elit nibh, euismod et ullamcorper at, iaculis feugiat est
|
||||
* [ ] Vestibulum convallis sit amet nisi a tincidunt
|
||||
* [x] In hac habitasse platea dictumst
|
||||
* [x] In scelerisque nibh non dolor mollis congue sed et metus
|
||||
* [x] Sed egestas felis quis elit dapibus, ac aliquet turpis mattis
|
||||
* [ ] Praesent sed risus massa
|
||||
* [ ] Aenean pretium efficitur erat, donec pharetra, ligula non scelerisque
|
||||
* [ ] Nulla vel eros venenatis, imperdiet enim id, faucibus nisi
|
||||
|
||||
[12]: https://facelessuser.github.io/pymdown-extensions/extensions/tasklist/
|
||||
|
||||
#### Tilde
|
||||
|
||||
[Tilde][13] provides an easy way to ~~strike through~~ cross out text.
|
||||
The portion of text that should be erased must be enclosed in two tildes
|
||||
`~~...~~` and the extension will take care of the rest.
|
||||
|
||||
[13]: https://facelessuser.github.io/pymdown-extensions/extensions/tilde/
|
||||
|
||||
### More syntactic sugar
|
||||
|
||||
#### Caret
|
||||
|
||||
[Caret][14] is the sister extension of [Tilde][15] and makes it possible to
|
||||
highlight ^^inserted text^^. The portion of text that should be marked as added
|
||||
must be enclosed in two carets `^^...^^`.
|
||||
|
||||
[14]: https://facelessuser.github.io/pymdown-extensions/extensions/caret/
|
||||
[15]: #tilde
|
||||
|
||||
#### Mark
|
||||
|
||||
[Mark][16] adds the ability to ==highlight text== like it was marked with a
|
||||
==yellow text marker==. The portion of text that should be highlighted must be
|
||||
enclosed in two equal signs `==...==`.
|
||||
|
||||
[16]: https://facelessuser.github.io/pymdown-extensions/extensions/mark/
|
||||
|
||||
#### SmartSymbols
|
||||
|
||||
[SmartSymbols][17] converts markup for special characters into their
|
||||
corresponding symbols, e.g. arrows (<--, -->, <-->), trademark and copyright
|
||||
symbols ((c), (tm), (r)) and fractions (1/2, 1/4, ...).
|
||||
|
||||
[17]: https://facelessuser.github.io/pymdown-extensions/extensions/smartsymbols/
|
||||
|
||||
#### Critic
|
||||
|
||||
[Critic][18] implements [Critic Markup][19], a Markdown extension that enables
|
||||
the tracking of changes (additions, deletions and comments) on documents.
|
||||
During compilation of the Markdown document, changes can be rendered (default),
|
||||
accepted or rejected.
|
||||
|
||||
Text can be {--deleted--} and replacement text {++added++}. This can also be
|
||||
combined into {~~one~>a single~~} operation. {==Highlighting==} is also
|
||||
possible {>>and comments can be added inline<<}.
|
||||
|
||||
{==
|
||||
|
||||
Formatting can also be applied to blocks, by putting the opening and closing
|
||||
tags on separate lines and adding new lines between the tags and the content.
|
||||
|
||||
==}
|
||||
|
||||
[18]: https://facelessuser.github.io/pymdown-extensions/extensions/critic/
|
||||
[19]: http://criticmarkup.com/
|
||||
|
||||
### Arithmatex <small>MathJax</small>
|
||||
|
||||
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML"></script>
|
||||
|
||||
[Arithmatex][20] integrates Material with [MathJax][21] which parses
|
||||
[Arithmatex][2] integrates Material with [MathJax][3] which parses
|
||||
block-style and inline equations written in TeX markup and outputs them in
|
||||
mathematical notation. See [this thread][22] for a short introduction and quick
|
||||
mathematical notation. See [this thread][4] for a short introduction and quick
|
||||
reference on how to write equations in TeX syntax.
|
||||
|
||||
Besides activating the extension in the `mkdocs.yml`, the MathJax JavaScript
|
||||
runtime needs to be included. This must be done with
|
||||
[additional JavaScript][23]:
|
||||
[additional JavaScript][5]:
|
||||
|
||||
``` yaml
|
||||
extra_javascript:
|
||||
- 'https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML'
|
||||
- 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML'
|
||||
```
|
||||
|
||||
If you want to override the default MathJax configuration, you can do this by
|
||||
@@ -234,13 +88,13 @@ In your `mkdocs.yml`, include it with:
|
||||
``` yaml
|
||||
extra_javascript:
|
||||
- 'javascripts/extra.js'
|
||||
- 'https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML'
|
||||
- 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML'
|
||||
```
|
||||
|
||||
[20]: https://facelessuser.github.io/pymdown-extensions/extensions/arithmatex/
|
||||
[21]: https://www.mathjax.org/
|
||||
[22]: http://meta.math.stackexchange.com/questions/5020/
|
||||
[23]: ../customization.md#additional-javascript
|
||||
[2]: https://facelessuser.github.io/pymdown-extensions/extensions/arithmatex/
|
||||
[3]: https://www.mathjax.org/
|
||||
[4]: http://meta.math.stackexchange.com/questions/5020/
|
||||
[5]: ../customization.md#additional-javascript
|
||||
|
||||
#### Blocks
|
||||
|
||||
@@ -274,11 +128,157 @@ Result:
|
||||
|
||||
Lorem ipsum dolor sit amet: $p(x|y) = \frac{p(y|x)p(x)}{p(y)}$
|
||||
|
||||
### BetterEm
|
||||
|
||||
[BetterEm][6] improves the handling of emphasis markup (**bold** and *italic*)
|
||||
within Markdown by providing a more sophisticated parser for better detecting
|
||||
start and end tokens. Read the documentation for [usage notes][7].
|
||||
|
||||
[6]: https://facelessuser.github.io/pymdown-extensions/extensions/betterem/
|
||||
[7]: https://facelessuser.github.io/pymdown-extensions/usage_notes/
|
||||
|
||||
### Caret
|
||||
|
||||
[Caret][8] makes it possible to highlight ^^inserted text^^. The portion of
|
||||
text that should be marked as added must be enclosed in two carets `^^...^^`.
|
||||
|
||||
[8]: https://facelessuser.github.io/pymdown-extensions/extensions/caret/
|
||||
|
||||
### Critic
|
||||
|
||||
[Critic][9] implements [Critic Markup][10], a Markdown extension that enables
|
||||
the tracking of changes (additions, deletions and comments) on documents.
|
||||
During compilation of the Markdown document, changes can be rendered (default),
|
||||
accepted or rejected.
|
||||
|
||||
Text can be {--deleted--} and replacement text {++added++}. This can also be
|
||||
combined into {~~one~>a single~~} operation. {==Highlighting==} is also
|
||||
possible {>>and comments can be added inline<<}.
|
||||
|
||||
{==
|
||||
|
||||
Formatting can also be applied to blocks, by putting the opening and closing
|
||||
tags on separate lines and adding new lines between the tags and the content.
|
||||
|
||||
==}
|
||||
|
||||
[9]: https://facelessuser.github.io/pymdown-extensions/extensions/critic/
|
||||
[10]: http://criticmarkup.com/
|
||||
|
||||
### Details
|
||||
|
||||
[Details][11] adds collapsible [Admonition-style blocks][12] which can contain
|
||||
arbitrary content using the HTML5 `details` and `summary` tags. Additionally,
|
||||
all Admonition qualifiers can be used, e.g. `note`, `question`, `warning` etc.:
|
||||
|
||||
??? question "How many Prolog programmers does it take to change a lightbulb?"
|
||||
|
||||
Yes.
|
||||
|
||||
[11]: https://facelessuser.github.io/pymdown-extensions/extensions/details/
|
||||
[12]: admonition.md
|
||||
|
||||
### Emoji
|
||||
|
||||
[Emoji][13] adds the ability to insert a :shit:-load of emojis that we use in
|
||||
our daily lives. See the [EmojiOne demo][14] for a list of all available
|
||||
emojis. Happy scrolling :tada:
|
||||
|
||||
!!! warning "Legal disclaimer"
|
||||
|
||||
Material has no affiliation with [EmojiOne][15] which is released under
|
||||
[CC BY 4.0][16]. When including EmojiOne images or CSS, please read the
|
||||
[EmojiOne license][17] to ensure proper usage and attribution.
|
||||
|
||||
[13]: https://facelessuser.github.io/pymdown-extensions/extensions/emoji/
|
||||
[14]: https://emoji.codes/
|
||||
[15]: http://emojione.com
|
||||
[16]: https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
[17]: http://emojione.com/licensing/
|
||||
|
||||
### InlineHilite
|
||||
|
||||
[InlineHilite][24] adds support for inline code highlighting. It's useful for
|
||||
[InlineHilite][18] adds support for inline code highlighting. It's useful for
|
||||
short snippets included within body copy, e.g. `#!js var test = 0;` and can be
|
||||
achived by prefixing inline code with a shebang and language identifier,
|
||||
e.g. `#!js`.
|
||||
|
||||
[24]: https://facelessuser.github.io/pymdown-extensions/extensions/inlinehilite/
|
||||
[18]: https://facelessuser.github.io/pymdown-extensions/extensions/inlinehilite/
|
||||
|
||||
### MagicLink
|
||||
|
||||
[MagicLink][19] detects links in Markdown and auto-generates the necessary
|
||||
markup, so no special syntax is required. It auto-links `http[s]://` and
|
||||
`ftp://` links, as well as references to email addresses.
|
||||
|
||||
[19]: https://facelessuser.github.io/pymdown-extensions/extensions/magiclink/
|
||||
|
||||
### Mark
|
||||
|
||||
[Mark][20] adds the ability to ==highlight text== like it was marked with a
|
||||
==text marker==. The portion of text that should be highlighted must be
|
||||
enclosed in two equal signs `==...==`.
|
||||
|
||||
[20]: https://facelessuser.github.io/pymdown-extensions/extensions/mark/
|
||||
|
||||
### SmartSymbols
|
||||
|
||||
[SmartSymbols][21] converts markup for special characters into their
|
||||
corresponding symbols, e.g. arrows (<--, -->, <-->), trademark and copyright
|
||||
symbols ((c), (tm), (r)) and fractions (1/2, 1/4, ...).
|
||||
|
||||
[21]: https://facelessuser.github.io/pymdown-extensions/extensions/smartsymbols/
|
||||
|
||||
### SuperFences
|
||||
|
||||
[SuperFences][22] provides the ability to nest code blocks under blockquotes,
|
||||
lists and other block elements, which the [Fenced Code Blocks][23] extension
|
||||
from the standard Markdown library doesn't parse correctly.
|
||||
|
||||
[22]: https://facelessuser.github.io/pymdown-extensions/extensions/superfences/
|
||||
[23]: https://pythonhosted.org/Markdown/extensions/fenced_code_blocks.html
|
||||
|
||||
### Tasklist
|
||||
|
||||
[Tasklist][24] adds support for styled checkbox lists. This is useful for
|
||||
keeping track of tasks and showing what has been done and has yet to be done.
|
||||
Checkbox lists are like regular lists, but prefixed with `[ ]` for empty or
|
||||
`[x]` for filled checkboxes.
|
||||
|
||||
Example:
|
||||
|
||||
``` markdown
|
||||
* [x] Lorem ipsum dolor sit amet, consectetur adipiscing elit
|
||||
* [x] Nulla lobortis egestas semper
|
||||
* [x] Curabitur elit nibh, euismod et ullamcorper at, iaculis feugiat est
|
||||
* [ ] Vestibulum convallis sit amet nisi a tincidunt
|
||||
* [x] In hac habitasse platea dictumst
|
||||
* [x] In scelerisque nibh non dolor mollis congue sed et metus
|
||||
* [x] Sed egestas felis quis elit dapibus, ac aliquet turpis mattis
|
||||
* [ ] Praesent sed risus massa
|
||||
* [ ] Aenean pretium efficitur erat, donec pharetra, ligula non scelerisque
|
||||
* [ ] Nulla vel eros venenatis, imperdiet enim id, faucibus nisi
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
* [x] Lorem ipsum dolor sit amet, consectetur adipiscing elit
|
||||
* [x] Nulla lobortis egestas semper
|
||||
* [x] Curabitur elit nibh, euismod et ullamcorper at, iaculis feugiat est
|
||||
* [ ] Vestibulum convallis sit amet nisi a tincidunt
|
||||
* [x] In hac habitasse platea dictumst
|
||||
* [x] In scelerisque nibh non dolor mollis congue sed et metus
|
||||
* [x] Sed egestas felis quis elit dapibus, ac aliquet turpis mattis
|
||||
* [ ] Praesent sed risus massa
|
||||
* [ ] Aenean pretium efficitur erat, donec pharetra, ligula non scelerisque
|
||||
* [ ] Nulla vel eros venenatis, imperdiet enim id, faucibus nisi
|
||||
|
||||
[24]: https://facelessuser.github.io/pymdown-extensions/extensions/tasklist/
|
||||
|
||||
### Tilde
|
||||
|
||||
[Tilde][25] provides an easy way to ~~strike through~~ cross out text.
|
||||
The portion of text that should be erased must be enclosed in two tildes
|
||||
`~~...~~` and the extension will take care of the rest.
|
||||
|
||||
[25]: https://facelessuser.github.io/pymdown-extensions/extensions/tilde/
|
||||
|
||||
+261
-97
@@ -2,6 +2,14 @@
|
||||
|
||||
## Installation
|
||||
|
||||
!!! tip "Set up Material using Docker"
|
||||
|
||||
The official [Docker image][1] for Material comes with all dependencies
|
||||
pre-installed and ready-to-use with the latest version published on PyPI,
|
||||
packaged in a very small image (23MB compressed).
|
||||
|
||||
[1]: https://hub.docker.com/r/squidfunk/mkdocs-material/
|
||||
|
||||
### Installing MkDocs
|
||||
|
||||
Before installing [MkDocs][2], you need to make sure you have Python and `pip`
|
||||
@@ -22,26 +30,15 @@ pip install mkdocs && mkdocs --version
|
||||
# mkdocs, version 0.16.0
|
||||
```
|
||||
|
||||
!!! warning "MkDocs for Material requirements"
|
||||
!!! warning "MkDocs version requirements"
|
||||
|
||||
Material requires MkDocs >= 0.16.
|
||||
|
||||
Furthermore, it is highly recommended to install [Pygments][3] and the
|
||||
[PyMdown Extensions][4] to get the most out of the Material theme:
|
||||
|
||||
```sh
|
||||
pip install pygments
|
||||
pip install pymdown-extensions
|
||||
```
|
||||
|
||||
[1]: https://hub.docker.com/r/squidfunk/mkdocs-material/
|
||||
[2]: http://www.mkdocs.org
|
||||
[3]: http://pygments.org
|
||||
[4]: http://facelessuser.github.io/pymdown-extensions/
|
||||
|
||||
### Installing Material
|
||||
|
||||
#### by using pip
|
||||
#### using pip
|
||||
|
||||
Material can be installed with `pip`:
|
||||
|
||||
@@ -49,11 +46,44 @@ Material can be installed with `pip`:
|
||||
pip install mkdocs-material
|
||||
```
|
||||
|
||||
#### using choco
|
||||
|
||||
If you're on Windows you can use [Chocolatey][3] to install [Material][4]:
|
||||
|
||||
``` dos
|
||||
choco install mkdocs-material
|
||||
```
|
||||
|
||||
This will install all required dependencies like [Python][5] and [MkDocs][6].
|
||||
|
||||
[3]: https://chocolatey.org
|
||||
[4]: https://chocolatey.org/packages/mkdocs-material
|
||||
[5]: https://chocolatey.org/packages/python
|
||||
[6]: https://chocolatey.org/packages/mkdocs
|
||||
|
||||
#### cloning from GitHub
|
||||
|
||||
Material can also be used without a system-wide installation by cloning the
|
||||
repository into a subfolder of your project's root directory:
|
||||
|
||||
``` sh
|
||||
git clone https://github.com/squidfunk/mkdocs-material.git
|
||||
```
|
||||
|
||||
This is especially useful if you want to [extend the theme][7] and
|
||||
[override some parts][8] of the theme. The theme will reside in the folder
|
||||
`mkdocs-material/material`.
|
||||
|
||||
[7]: customization.md#extending-the-theme
|
||||
[8]: customization.md#overriding-partials
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
!!! warning "Installation on macOS"
|
||||
|
||||
When you're running the pre-installed version of Python on macOS, `pip`
|
||||
tries to install packages in a folder for which your user might not have
|
||||
the adequate permissions. There are two possible solutions to this:
|
||||
the adequate permissions. There are two possible solutions for this:
|
||||
|
||||
1. **Installing in user space** (recommended): Provide the `--user` flag
|
||||
to the install command and `pip` will install the package in a user-site
|
||||
@@ -63,23 +93,17 @@ pip install mkdocs-material
|
||||
to a self-contained solution by installing Python with Homebrew. This
|
||||
should eliminate a lot of problems you may be having with `pip`.
|
||||
|
||||
#### by cloning from GitHub
|
||||
!!! failure "Error: unrecognized theme 'material'"
|
||||
|
||||
Material can also be used without a system-wide installation by cloning the
|
||||
repository into a subfolder of your project's root directory:
|
||||
|
||||
``` sh
|
||||
git clone https://github.com/squidfunk/mkdocs-material.git
|
||||
```
|
||||
|
||||
This is especially useful if you want to extend the theme and override some
|
||||
parts of the theme. The theme will reside in the folder
|
||||
`mkdocs-material/material`.
|
||||
If you run into this error, the most common reason is that you installed
|
||||
MkDocs through some package manager (e.g. Homebrew or `apt-get`) and the
|
||||
Material theme through `pip`, so both packages end up in different
|
||||
locations. MkDocs only checks its install location for themes.
|
||||
|
||||
## Usage
|
||||
|
||||
In order to enable the Material theme just add one of the following lines to
|
||||
your `mkdocs.yml`. If you installed Material using pip:
|
||||
In order to enable the theme just add one of the following lines to your
|
||||
project's `mkdocs.yml`. If you installed Material using pip:
|
||||
|
||||
``` yaml
|
||||
theme: 'material'
|
||||
@@ -91,30 +115,30 @@ If you cloned Material from GitHub:
|
||||
theme_dir: 'mkdocs-material/material'
|
||||
```
|
||||
|
||||
MkDocs includes a development server, so you can view your changes as you go.
|
||||
MkDocs includes a development server, so you can review your changes as you go.
|
||||
The development server can be started with the following command:
|
||||
|
||||
``` sh
|
||||
mkdocs serve
|
||||
```
|
||||
|
||||
Now you can point your browser to [localhost:8000][5] and the Material theme
|
||||
should be visible. From here on, you can start writing your documentation, or
|
||||
read on and customize the theme through some options.
|
||||
Now you can point your browser to [http://localhost:8000][9] and the Material
|
||||
theme should be visible. From here on, you can start writing your documentation,
|
||||
or read on and customize the theme through some options.
|
||||
|
||||
[5]: http://localhost:8000
|
||||
[9]: http://localhost:8000
|
||||
|
||||
## Options
|
||||
|
||||
The Material theme adds some extra variables for configuration via your
|
||||
project's `mkdocs.yml`. See the following section for all available options.
|
||||
project's `mkdocs.yml`. See the following sections for all available options.
|
||||
|
||||
### Changing the color palette
|
||||
|
||||
Material defines a default hue for every primary and accent color on Google's
|
||||
Material Design [color palette][6]. This makes it very easy to change the
|
||||
A default is hue is defined for every primary and accent color on Google's
|
||||
Material Design [color palette][10], which makes it very easy to change the
|
||||
overall look of the theme. Just set the primary and accent colors using the
|
||||
following variables in your `mkdocs.yml`:
|
||||
following variables:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
@@ -130,12 +154,12 @@ Design color palette. Valid values are: `red`, `pink`, `purple`, `deep purple`,
|
||||
The last three colors can only be used as a primary color.
|
||||
|
||||
If the color is set via this configuration, an additional CSS file that
|
||||
defines the color palette is included. If you want to keep things lean, clone
|
||||
the repository and recompile the theme with your custom colors set. See the
|
||||
guide on [customization][7] for more information.
|
||||
defines the color palette is automatically included. If you want to keep things
|
||||
lean, clone the repository and recompile the theme with your custom colors set.
|
||||
See the guide on [customization][11] for more information.
|
||||
|
||||
[6]: http://www.materialui.co/colors
|
||||
[7]: customization.md
|
||||
[10]: http://www.materialui.co/colors
|
||||
[11]: customization.md
|
||||
|
||||
#### Primary colors
|
||||
|
||||
@@ -202,10 +226,10 @@ Click on a tile to change the accent color of the theme:
|
||||
|
||||
### Changing the font family
|
||||
|
||||
Material uses the [Roboto font family][8] by default, specifically the regular
|
||||
sans-serif type for text and the `monospaced` type for code. Both fonts are
|
||||
loaded from [Google Fonts][9] and can easily be changed to other fonts, like
|
||||
for example the [Ubuntu font family][10]:
|
||||
By default the [Roboto font family][12] is included with the theme, specifically
|
||||
the regular sans-serif type for text and the `monospaced` type for code. Both
|
||||
fonts are loaded from [Google Fonts][13] and can be changed to other fonts,
|
||||
like for example the [Ubuntu font family][14]:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
@@ -214,39 +238,88 @@ extra:
|
||||
code: 'Ubuntu 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 `font` to `'none'`:
|
||||
The text font will be loaded in 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 `font` to `false`:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
font: 'none'
|
||||
font: false
|
||||
```
|
||||
|
||||
[8]: https://fonts.google.com/specimen/Roboto
|
||||
[9]: https://fonts.google.com/
|
||||
[10]: https://fonts.google.com/specimen/Ubuntu
|
||||
[12]: https://fonts.google.com/specimen/Roboto
|
||||
[13]: https://fonts.google.com
|
||||
[14]: https://fonts.google.com/specimen/Ubuntu
|
||||
|
||||
### Adding a source repository
|
||||
|
||||
To include a link to the repository of your project within your documentation,
|
||||
set the following variables via your project's `mkdocs.yml`:
|
||||
|
||||
``` yaml
|
||||
repo_name: 'my-github-handle/my-project'
|
||||
repo_url: 'https://github.com/my-github-handle/my-project'
|
||||
```
|
||||
|
||||
The name of the repository will be rendered next to the search bar on big
|
||||
screens and as part of the main navigation drawer on smaller screen sizes.
|
||||
Furthermore, if `repo_url` points to a GitHub, BitBucket or GitLab repository,
|
||||
the respective service logo will be shown next to the name of the repository.
|
||||
Additionally, for GitHub, the number of stars and forks is shown.
|
||||
|
||||
If the repository is hosted in a private environment, the service logo can be
|
||||
set explicitly by setting `extra.repo_icon` to `github`, `gitlab` or
|
||||
`bitbucket`.
|
||||
|
||||
!!! warning "Why is there an edit button at the top of every article?"
|
||||
|
||||
If the `repo_url` is set to a GitHub or BitBucket repository, and the
|
||||
`repo_name` is set to *GitHub* or *BitBucket* (implied by default), an
|
||||
edit button will appear at the top of every article. This is the automatic
|
||||
behavior that MkDocs implements. See the [MkDocs documentation][15] on more
|
||||
guidance regarding the `edit_uri` attribute, which defines whether the edit
|
||||
button is shown or not.
|
||||
|
||||
[15]: http://www.mkdocs.org/user-guide/configuration/#edit_uri
|
||||
|
||||
### Adding a favicon
|
||||
|
||||
A favicon can be added by setting the `site_favicon` variable to an `.ico` or
|
||||
image file:
|
||||
|
||||
``` yaml
|
||||
site_favicon: 'images/favicon.ico'
|
||||
```
|
||||
|
||||
### Adding a logo
|
||||
|
||||
Material makes it easy to add your logo. Your logo should have rectangular
|
||||
shape with a minimum resolution of 128x128, leave some room towards the edges
|
||||
and be composed of high contrast areas on a transparent ground, as it will be
|
||||
placed on the colored header bar and drawer. Simply create the folder
|
||||
`docs/images`, add your logo and embed it with:
|
||||
Your logo should have rectangular shape with a minimum resolution of 128x128,
|
||||
leave some room towards the edges and be composed of high contrast areas on a
|
||||
transparent ground, as it will be placed on the colored header bar and drawer.
|
||||
Simply create the folder `docs/images`, add your logo and embed it with:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
logo: 'images/logo.svg'
|
||||
```
|
||||
|
||||
Additionally, the default icon can be changed by setting an arbitrary ligature
|
||||
(or Unicode code point) from the [Material Design icon font][16], e.g.
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
logo:
|
||||
icon: 'cloud'
|
||||
```
|
||||
|
||||
[16]: https://material.io/icons/
|
||||
|
||||
### Adding social links
|
||||
|
||||
If you want to link your social accounts, the Material theme provides an easy
|
||||
way for doing this in the footer of the documentation using the automatically
|
||||
included [FontAwesome][11] webfont. The syntax is simple – the `type` must
|
||||
denote the name of the social service, e.g. `github`, `twitter` or `linkedin`
|
||||
and the `link` must contain the URL you want to link to:
|
||||
Social accounts can be linked in the footer of the documentation using the
|
||||
automatically included [FontAwesome][17] webfont. The `type` must denote the
|
||||
name of the social service, e.g. `github`, `twitter` or `linkedin` and the
|
||||
`link` must contain the URL you want to link to:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
@@ -256,14 +329,14 @@ extra:
|
||||
- type: 'twitter'
|
||||
link: 'https://twitter.com/squidfunk'
|
||||
- type: 'linkedin'
|
||||
link: 'https://de.linkedin.com/in/martin-donath-20a95039'
|
||||
link: 'https://linkedin.com/in/squidfunk'
|
||||
```
|
||||
|
||||
The links are generated in order and the `type` of the links must match the
|
||||
name of the FontAwesome glyph. The `fa` is automatically added, so `github`
|
||||
will result in `fa fa-github`.
|
||||
|
||||
[11]: http://fontawesome.io/icons/
|
||||
[17]: http://fontawesome.io/icons/
|
||||
|
||||
### Google Analytics integration
|
||||
|
||||
@@ -278,44 +351,135 @@ google_analytics:
|
||||
- 'auto'
|
||||
```
|
||||
|
||||
### Localization <small>L10N</small>
|
||||
### Disqus integation
|
||||
|
||||
In order to localize the labels (e.g. *Previous* and *Next* in the footer),
|
||||
you can override the file `partials/language.html` to provide your own
|
||||
translations inside the macro `t`:
|
||||
Material for MkDocs is integrated with [Disqus][18], so if you want to add a
|
||||
comments section to your documentation set the shortname of your Disqus project
|
||||
in your `mkdocs.yml`:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
disqus: 'your-disqus-shortname'
|
||||
```
|
||||
|
||||
The comments section is inserted in *every page, except the index page*.
|
||||
Additionally, a new entry at the bottom of the table of contents is generated
|
||||
that is linking to the comments section. The necessary JavaScript is
|
||||
automatically included.
|
||||
|
||||
!!! warning "Requirements"
|
||||
|
||||
`site_url` value must be set in `mkdocs.yml` for the Disqus integration to
|
||||
load properly.
|
||||
|
||||
[18]: https://disqus.com
|
||||
|
||||
### Localization
|
||||
|
||||
#### Translations
|
||||
|
||||
Material for MkDocs supports internationalization (i18n). In order to translate
|
||||
the labels (e.g. *Previous* and *Next* in the footer), you can override the
|
||||
file `partials/language.html` and provide your own translations inside the
|
||||
macro `t`:
|
||||
|
||||
``` jinja
|
||||
{% macro t(key) %}{{ {
|
||||
"language": "en",
|
||||
"edit.link.title": "Edit this page",
|
||||
"footer.previous": "Previous",
|
||||
"footer.next": "Next",
|
||||
"meta.comments": "Comments",
|
||||
"meta.source": "Source",
|
||||
"search.languages": "",
|
||||
"search.placeholder": "Search",
|
||||
"search.result.placeholder": "Type to start searching",
|
||||
"search.result.none": "No matching documents",
|
||||
"search.result.one": "1 matching document",
|
||||
"search.result.other": "# matching documents",
|
||||
"search.tokenizer": "[\s\-]+",
|
||||
"source.link.title": "Go to repository",
|
||||
"toc.title": "Table of contents"
|
||||
}[key] }}{% endmacro %}
|
||||
```
|
||||
|
||||
Just copy the file from the original theme and make your adjustments. See the
|
||||
section on [overriding partials][12] in the customization guide.
|
||||
section on [overriding partials][19] and the general guide on
|
||||
[theme extension][20] in the customization guide. Furthermore, see the
|
||||
[example configuration][21] for a head start.
|
||||
|
||||
!!! warning "Migrating from Material 0.2.x"
|
||||
[19]: customization.md#overriding-partials
|
||||
[20]: customization.md#extending-the-theme
|
||||
[21]: https://github.com/squidfunk/mkdocs-material/tree/master/examples/language
|
||||
|
||||
In 0.2.x localization was done within the `extra` configuration of your
|
||||
`mkdocs.yml`. With 1.0.0 this is no longer possible as the configuration
|
||||
will be ignored.
|
||||
#### Site search
|
||||
|
||||
[12]: customization.md#overriding-partials
|
||||
Site search is implemented using [lunr.js][22], which includes stemmers for the
|
||||
English language by default, while stemmers for other languages are included
|
||||
with [lunr-languages][23], both of which are integrated with this theme. Support
|
||||
for other languages and even multilingual search can be activated by setting
|
||||
the key `search.languages` to a comma-separated list of supported 2-letter
|
||||
language codes, e.g.:
|
||||
|
||||
``` jinja
|
||||
{% macro t(key) %}{{ {
|
||||
...
|
||||
"search.languages": "en, de, ru",
|
||||
...
|
||||
}[key] }}{% endmacro %}
|
||||
```
|
||||
|
||||
This will automatically load the stemmers for the specified languages and
|
||||
set them up with site search, nothing else to be done.
|
||||
|
||||
At the time of writing, the following languages are supported: English `en`,
|
||||
French `fr`, Spanish `es`, Italian `it`, Japanese `jp`, Dutch `du`, Danish `da`,
|
||||
Portguese `pt`, Finnish `fi`, Romanian `ro`, Hungarian `hu`, Russian `ru`,
|
||||
Norwegian `no`, Swedish `sv` and Turkish `tr`.
|
||||
|
||||
!!! warning "Only specify the languages you really need"
|
||||
|
||||
Be aware that including suppport for other languages increases the general
|
||||
JavaScript payload by around 20kb (without gzip) and by another 15-30kb per
|
||||
language.
|
||||
|
||||
The separator for tokenization can also be customized, which makes it possible
|
||||
to index parts of words that are separated by `-` or `.` for example:
|
||||
|
||||
``` jinja
|
||||
{% macro t(key) %}{{ {
|
||||
...
|
||||
"search.tokenizer": "[\s\-\.]+",
|
||||
...
|
||||
}[key] }}{% endmacro %}
|
||||
```
|
||||
|
||||
[22]: https://lunrjs.com
|
||||
[23]: https://github.com/MihaiValentin/lunr-languages
|
||||
|
||||
### Tabs
|
||||
|
||||
From version 1.1.0 on, Material supports another layer on top of the main
|
||||
navigation for larger screens in the form of tabs. This is especially useful
|
||||
for larger documentation projects with only few top-level sections. Tabs can be
|
||||
enabled by setting the respective feature flag to true:
|
||||
|
||||
``` yaml
|
||||
extra:
|
||||
feature:
|
||||
tabs: true
|
||||
```
|
||||
|
||||
### More advanced customization
|
||||
|
||||
If you want to change the general appearance of the Material theme, see
|
||||
[this article][13] for more information on advanced customization.
|
||||
[this article][24] for more information on advanced customization.
|
||||
|
||||
[13]: customization.md
|
||||
[24]: customization.md
|
||||
|
||||
## Extensions
|
||||
|
||||
MkDocs supports several [Markdown extensions][14]. The following extensions
|
||||
MkDocs supports several [Markdown extensions][25]. The following extensions
|
||||
are not enabled by default (see the link for which are enabled by default)
|
||||
but highly recommended, so they should be switched on at all times:
|
||||
|
||||
@@ -329,18 +493,20 @@ markdown_extensions:
|
||||
For more information, see the following list of extensions supported by the
|
||||
Material theme including more information regarding installation and usage:
|
||||
|
||||
* [Admonition][15]
|
||||
* [Codehilite][16]
|
||||
* [Permalinks][17]
|
||||
* [Footnotes][18]
|
||||
* [PyMdown Extensions][19]
|
||||
* [Admonition][26]
|
||||
* [Codehilite][27]
|
||||
* [Footnotes][28]
|
||||
* [Metadata][29]
|
||||
* [Permalinks][30]
|
||||
* [PyMdown Extensions][31]
|
||||
|
||||
[14]: http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions
|
||||
[15]: extensions/admonition.md
|
||||
[16]: extensions/codehilite.md
|
||||
[17]: extensions/permalinks.md
|
||||
[18]: extensions/footnotes.md
|
||||
[19]: extensions/pymdown.md
|
||||
[25]: http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions
|
||||
[26]: extensions/admonition.md
|
||||
[27]: extensions/codehilite.md
|
||||
[28]: extensions/footnotes.md
|
||||
[29]: extensions/metadata.md
|
||||
[30]: extensions/permalinks.md
|
||||
[31]: extensions/pymdown.md
|
||||
|
||||
## Full example
|
||||
|
||||
@@ -351,14 +517,14 @@ 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://my-github-handle.github.io/my-project'
|
||||
site_url: 'https://john-doe.github.io/my-project'
|
||||
|
||||
# Repository
|
||||
repo_name: 'GitHub'
|
||||
repo_url: 'https://github.com/my-github-handle/my-project'
|
||||
repo_name: 'my-github-handle/my-project'
|
||||
repo_url: 'https://github.com/john-doe/my-project'
|
||||
|
||||
# Copyright
|
||||
copyright: 'Copyright © 2016 John Doe'
|
||||
copyright: 'Copyright © 2016 - 2017 John Doe'
|
||||
|
||||
# Documentation and theme
|
||||
theme: 'material'
|
||||
@@ -374,11 +540,11 @@ extra:
|
||||
code: 'Roboto Mono'
|
||||
social:
|
||||
- type: 'github'
|
||||
link: 'https://github.com/squidfunk'
|
||||
link: 'https://github.com/john-doe'
|
||||
- type: 'twitter'
|
||||
link: 'https://twitter.com/squidfunk'
|
||||
link: 'https://twitter.com/john-doe'
|
||||
- type: 'linkedin'
|
||||
link: 'https://de.linkedin.com/in/martin-donath-20a95039'
|
||||
link: 'https://linkedin.com/in/john-doe'
|
||||
|
||||
# Google Analytics
|
||||
google_analytics:
|
||||
@@ -389,7 +555,5 @@ google_analytics:
|
||||
markdown_extensions:
|
||||
- admonition
|
||||
- codehilite(guess_lang=false)
|
||||
- footnotes
|
||||
- meta
|
||||
- toc(permalink=true)
|
||||
```
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 757 KiB After Width: | Height: | Size: 1.3 MiB |
+16
-2
@@ -9,7 +9,7 @@ guidelines.
|
||||
[](images/material.png)
|
||||
|
||||
[1]: http://www.mkdocs.org
|
||||
[2]: https://www.google.com/design/spec/material-design
|
||||
[2]: https://material.io/guidelines/material-design/
|
||||
|
||||
## Quick start
|
||||
|
||||
@@ -19,12 +19,26 @@ Install the latest version of Material with `pip`:
|
||||
pip install mkdocs-material
|
||||
```
|
||||
|
||||
Add the following line to your `mkdocs.yml`:
|
||||
Append the following line to your project's `mkdocs.yml`:
|
||||
|
||||
``` yaml
|
||||
theme: 'material'
|
||||
```
|
||||
|
||||
## What to expect
|
||||
|
||||
* Responsive design and fluid layout for all kinds of screens and devices,
|
||||
designed to serve your project documentation in a user-friendly way with
|
||||
optimal readability.
|
||||
|
||||
* Easily customizable primary and accent color, fonts, favicon and logo;
|
||||
straight forward localization through theme extension; integrated with Google
|
||||
Analytics, Disqus and GitHub.
|
||||
|
||||
* Well-designed search interface accessible through hotkeys (<kbd>F</kbd> or
|
||||
<kbd>S</kbd>), intelligent grouping of search results, search term
|
||||
highlighting and lazy loading.
|
||||
|
||||
For detailed instructions see the [getting started guide][3].
|
||||
|
||||
[3]: getting-started.md
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
**MIT License**
|
||||
|
||||
Copyright © 2016 Martin Donath
|
||||
Copyright © 2016 - 2017 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
|
||||
|
||||
+283
-12
@@ -1,4 +1,4 @@
|
||||
# Release Notes
|
||||
# Release notes
|
||||
|
||||
## Upgrading
|
||||
|
||||
@@ -12,12 +12,283 @@ To determine the currently installed version, use the following command:
|
||||
|
||||
``` sh
|
||||
pip show mkdocs-material | grep -E ^Version
|
||||
# Version 1.0.0
|
||||
# Version 1.10.1
|
||||
```
|
||||
|
||||
## Changelog
|
||||
|
||||
### 1.0.0 <small> _ January 13, 2017</small>
|
||||
### 1.10.2 <small>_ October 6, 2017</small>
|
||||
|
||||
* Fixed [#468][468]: Sidebar shows scrollbar if content is shorter (in Safari)
|
||||
|
||||
[468]: https://github.com/squidfunk/mkdocs-material/issues/468
|
||||
|
||||
### 1.10.1 <small>_ September 14, 2017</small>
|
||||
|
||||
* Fixed [#455][455]: Bold code blocks rendered with normal font weight
|
||||
|
||||
[455]: https://github.com/squidfunk/mkdocs-material/issues/455
|
||||
|
||||
### 1.10.0 <small>_ September 1, 2017</small>
|
||||
|
||||
* Added support to make logo default icon configurable
|
||||
* Fixed uninitialized overflow scrolling on main pane for iOS
|
||||
* Fixed error in mobile navigation in case JavaScript is not available
|
||||
* Fixed incorrect color transition for nested panes in mobile navigation
|
||||
* Improved checkbox styles for Tasklist from PyMdown Extension package
|
||||
|
||||
### 1.9.0 <small>_ August 29, 2017</small>
|
||||
|
||||
* Added `info` (synonym: `todo`) style for Admonition
|
||||
* Added `question` (synonym: `help`, `faq`) style for Admonition
|
||||
* Added support for Details from PyMdown Extensions package
|
||||
* Improved Admonition styles to match Details
|
||||
* Improved styles for social links in footer
|
||||
* Replaced ligatures with Unicode code points to avoid broken layout
|
||||
* Upgraded PyMdown Extensions package dependency to >= 3.4
|
||||
|
||||
### 1.8.1 <small>_ August 7, 2017</small>
|
||||
|
||||
* Fixed [#421][421]: Missing pagination for GitHub API
|
||||
|
||||
[421]: https://github.com/squidfunk/mkdocs-material/issues/421
|
||||
|
||||
### 1.8.0 <small>_ August 2, 2017</small>
|
||||
|
||||
* Added support for lazy-loading of search results for better performance
|
||||
* Added support for customization of search tokenizer/separator
|
||||
* Fixed [#424][424]: Search doesn't handle capital letters anymore
|
||||
* Fixed [#419][419]: Search doesn't work on whole words
|
||||
|
||||
[419]: https://github.com/squidfunk/mkdocs-material/issues/419
|
||||
[424]: https://github.com/squidfunk/mkdocs-material/issues/424
|
||||
|
||||
### 1.7.5 <small>_ July 25, 2017</small>
|
||||
|
||||
* Fixed [#398][398]: Forms broken due to search shortcuts
|
||||
* Improved search overall user experience
|
||||
* Improved search matching and highlighting
|
||||
* Improved search accessibility
|
||||
|
||||
[398]: https://github.com/squidfunk/mkdocs-material/issues/398
|
||||
|
||||
### 1.7.4 <small>_ June 21, 2017</small>
|
||||
|
||||
* Fixed functional link colors in table of contents for active palette
|
||||
* Fixed [#368][368]: Compatibility issues with IE11
|
||||
|
||||
[368]: https://github.com/squidfunk/mkdocs-material/issues/368
|
||||
|
||||
### 1.7.3 <small>_ June 7, 2017</small>
|
||||
|
||||
* Fixed error when setting language to Japanese for site search
|
||||
|
||||
### 1.7.2 <small>_ June 6, 2017</small>
|
||||
|
||||
* Fixed offset of search box when `repo_url` is not set
|
||||
* Fixed non-disappearing tooltip
|
||||
|
||||
### 1.7.1 <small>_ June 1, 2017</small>
|
||||
|
||||
* Fixed wrong `z-index` order of header, overlay and drawer
|
||||
* Fixed wrong offset of targeted footnote back references
|
||||
|
||||
### 1.7.0 <small>_ June 1, 2017</small>
|
||||
|
||||
* Added "copy to clipboard" buttons to code blocks
|
||||
* Added support for multilingual site search
|
||||
* Fixed search term highlighting for non-latin languages
|
||||
|
||||
### 1.6.4 <small>_ May 24, 2017</small>
|
||||
|
||||
* Fixed [#337][337]: JavaScript error for GitHub organization URLs
|
||||
|
||||
[337]: https://github.com/squidfunk/mkdocs-material/issues/337
|
||||
|
||||
### 1.6.3 <small>_ May 16, 2017</small>
|
||||
|
||||
* Fixed [#329][329]: Broken source stats for private or unknown GitHub repos
|
||||
|
||||
[329]: https://github.com/squidfunk/mkdocs-material/issues/329
|
||||
|
||||
### 1.6.2 <small>_ May 15, 2017</small>
|
||||
|
||||
* Fixed [#316][316]: Fatal error for git clone on Windows
|
||||
* Fixed [#320][320]: Chrome 58 creates double underline for `abbr` tags
|
||||
* Fixed [#323][323]: Ligatures rendered inside code blocks
|
||||
* Fixed miscalculated sidebar height due to missing margin collapse
|
||||
* Changed deprecated MathJax CDN to Cloudflare
|
||||
|
||||
[316]: https://github.com/squidfunk/mkdocs-material/issues/316
|
||||
[320]: https://github.com/squidfunk/mkdocs-material/issues/320
|
||||
[323]: https://github.com/squidfunk/mkdocs-material/issues/323
|
||||
|
||||
### 1.6.1 <small>_ April 23, 2017</small>
|
||||
|
||||
* Fixed following of active/focused element if search input is focused
|
||||
* Fixed layer order of search component elements
|
||||
|
||||
### 1.6.0 <small>_ April 22, 2017</small>
|
||||
|
||||
* Added build test for Docker image on Travis
|
||||
* Added search overlay for better user experience (focus)
|
||||
* Added language from localizations to `html` tag
|
||||
* Fixed [#270][270]: source links broken for absolute URLs
|
||||
* Fixed missing top spacing for first targeted element in content
|
||||
* Fixed too small footnote divider when using larger font sizes
|
||||
|
||||
[270]: https://github.com/squidfunk/mkdocs-material/issues/270
|
||||
|
||||
### 1.5.5 <small>_ April 20, 2017</small>
|
||||
|
||||
* Fixed [#282][282]: Browser search (<kbd>Meta</kbd>+<kbd>F</kbd>) is hijacked
|
||||
|
||||
[282]: https://github.com/squidfunk/mkdocs-material/issues/282
|
||||
|
||||
### 1.5.4 <small>_ April 8, 2017</small>
|
||||
|
||||
* Fixed broken highlighting for two or more search terms
|
||||
* Fixed missing search results when only a `h1` is present
|
||||
* Fixed unresponsive overlay on Android
|
||||
|
||||
### 1.5.3 <small>_ April 7, 2017</small>
|
||||
|
||||
* Fixed deprecated calls for template variables
|
||||
* Fixed wrong palette color for focused search result
|
||||
* Fixed JavaScript errors on 404 page
|
||||
* Fixed missing top spacing on 404 page
|
||||
* Fixed missing right spacing on overflow of source container
|
||||
|
||||
### 1.5.2 <small>_ April 5, 2017</small>
|
||||
|
||||
* Added requirements as explicit dependencies in `setup.py`
|
||||
* Fixed non-synchronized transitions in search form
|
||||
|
||||
### 1.5.1 <small>_ March 30, 2017</small>
|
||||
|
||||
* Fixed rendering and offset of targetted footnotes
|
||||
* Fixed [#238][238]: Link on logo is not set to `site_url`
|
||||
|
||||
[238]: https://github.com/squidfunk/mkdocs-material/issues/238
|
||||
|
||||
### 1.5.0 <small>_ March 24, 2017</small>
|
||||
|
||||
* Added support for localization of search placeholder
|
||||
* Added keyboard events for quick access of search
|
||||
* Added keyboard events for search control
|
||||
* Added opacity on hover for search buttons
|
||||
* Added git hook to skip CI build on non-src changes
|
||||
* Fixed non-resetting search placeholder when input is cleared
|
||||
* Fixed error for unescaped parentheses in search term
|
||||
* Fixed [#229][229]: Button to clear search missing
|
||||
* Fixed [#231][231]: Escape key doesn't exit search
|
||||
* Removed old-style figures from font feature settings
|
||||
|
||||
[229]: https://github.com/squidfunk/mkdocs-material/issues/229
|
||||
[231]: https://github.com/squidfunk/mkdocs-material/issues/231
|
||||
|
||||
### 1.4.1 <small>_ March 16, 2017</small>
|
||||
|
||||
* Fixed invalid destructuring attempt on NodeList (in Safari, Edge, IE)
|
||||
|
||||
### 1.4.0 <small>_ March 16, 2017</small>
|
||||
|
||||
* Added support for grouping searched sections by documents
|
||||
* Added support for highlighting of search terms
|
||||
* Added support for localization of search results
|
||||
* Fixed [#216][216]: table of contents icon doesn't show if `h1` is not present
|
||||
* Reworked style and layout of search results for better usability
|
||||
|
||||
[216]: https://github.com/squidfunk/mkdocs-material/issues/216
|
||||
|
||||
### 1.3.0 <small>_ March 11, 2017</small>
|
||||
|
||||
* Added support for page-specific title and description using metadata
|
||||
* Added support for linking source files to documentation
|
||||
* Fixed jitter and offset of sidebar when zooming browser
|
||||
* Fixed incorrectly initialized tablet sidebar height
|
||||
* Fixed regression for [#1][1]: GitHub stars break if `repo_url` ends with a `/`
|
||||
* Fixed undesired white line below copyright footer due to base font scaling
|
||||
* Fixed issue with whitespace in path for scripts
|
||||
* Fixed [#205][205]: support non-fixed (static) header
|
||||
* Refactored footnote references for better visibility
|
||||
* Reduced repaints to a minimum for non-tabs configuration
|
||||
* Reduced contrast of edit button (slightly)
|
||||
|
||||
[205]: https://github.com/squidfunk/mkdocs-material/issues/205
|
||||
|
||||
### 1.2.0 <small>_ March 3, 2017</small>
|
||||
|
||||
* Added `quote` (synonym: `cite`) style for Admonition
|
||||
* Added help message to build pipeline
|
||||
* Fixed wrong navigation link colors when applying palette
|
||||
* Fixed [#197][197]: Link missing in tabs navigation on deeply nested items
|
||||
* Removed unnecessary dev dependencies
|
||||
|
||||
[197]: https://github.com/squidfunk/mkdocs-material/issues/197
|
||||
|
||||
### 1.1.1 <small>_ February 26, 2017</small>
|
||||
|
||||
* Fixed incorrectly displayed nested lists when using tabs
|
||||
|
||||
### 1.1.0 <small>_ February 26, 2017</small>
|
||||
|
||||
* Added tabs navigation feature (optional)
|
||||
* Added Disqus integration (optional)
|
||||
* Added a high resolution Favicon with the new logo
|
||||
* Added static type checking using Facebook's Flow
|
||||
* Fixed [#173][173]: Dictionary elements have no bottom spacing
|
||||
* Fixed [#175][175]: Tables cannot be set to 100% width
|
||||
* Fixed race conditions in build related to asset revisioning
|
||||
* Fixed accidentally re-introduced Permalink on top-level headline
|
||||
* Fixed alignment of logo in drawer on IE11
|
||||
* Refactored styles related to tables
|
||||
* Refactored and automated Docker build and PyPI release
|
||||
* Refactored build scripts
|
||||
|
||||
[173]: https://github.com/squidfunk/mkdocs-material/issues/173
|
||||
[175]: https://github.com/squidfunk/mkdocs-material/issues/175
|
||||
|
||||
### 1.0.5 <small>_ February 18, 2017</small>
|
||||
|
||||
* Fixed [#153][153]: Sidebar flows out of constrained area in Chrome 56
|
||||
* Fixed [#159][159]: Footer jitter due to JavaScript if content is short
|
||||
|
||||
[153]: https://github.com/squidfunk/mkdocs-material/issues/153
|
||||
[159]: https://github.com/squidfunk/mkdocs-material/issues/159
|
||||
|
||||
### 1.0.4 <small>_ February 16, 2017</small>
|
||||
|
||||
* Fixed [#142][142]: Documentation build errors if `h1` is defined as raw HTML
|
||||
* Fixed [#164][164]: PyPI release does not build and install
|
||||
* Fixed offsets of targeted headlines
|
||||
* Increased sidebar font size by `0.12rem`
|
||||
|
||||
[142]: https://github.com/squidfunk/mkdocs-material/issues/142
|
||||
[164]: https://github.com/squidfunk/mkdocs-material/issues/164
|
||||
|
||||
### 1.0.3 <small>_ January 22, 2017</small>
|
||||
|
||||
* Fixed [#117][117]: Table of contents items don't blur on fast scrolling
|
||||
* Refactored sidebar positioning logic
|
||||
* Further reduction of repaints
|
||||
|
||||
[117]: https://github.com/squidfunk/mkdocs-material/issues/117
|
||||
|
||||
### 1.0.2 <small>_ January 15, 2017</small>
|
||||
|
||||
* Fixed [#108][108]: Horizontal scrollbar in content area
|
||||
|
||||
[108]: https://github.com/squidfunk/mkdocs-material/issues/108
|
||||
|
||||
### 1.0.1 <small>_ January 14, 2017</small>
|
||||
|
||||
* Fixed massive repaints happening when scrolling
|
||||
* Fixed footer back reference positions in case of overflow
|
||||
* Fixed header logo from showing when the menu icon is rendered
|
||||
* Changed scrollbar behavior to only show when content overflows
|
||||
|
||||
### 1.0.0 <small>_ January 13, 2017</small>
|
||||
|
||||
* Introduced Webpack for more sophisticated JavaScript bundling
|
||||
* Introduced ESLint and Stylelint for code style checks
|
||||
@@ -46,7 +317,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
* Fixed live reload chain in watch mode when saving a template
|
||||
* Fixed variable references to work with MkDocs 0.16
|
||||
|
||||
### 0.2.4 <small> _ June 26, 2016</small>
|
||||
### 0.2.4 <small>_ June 26, 2016</small>
|
||||
|
||||
* Fixed improperly set default favicon
|
||||
* Fixed [#33][33]: Protocol relative URL for webfonts doesn't work with
|
||||
@@ -58,7 +329,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[34]: https://github.com/squidfunk/mkdocs-material/issues/26
|
||||
[35]: https://github.com/squidfunk/mkdocs-material/issues/30
|
||||
|
||||
### 0.2.3 <small> _ May 16, 2016</small>
|
||||
### 0.2.3 <small>_ May 16, 2016</small>
|
||||
|
||||
* Fixed [#25][25]: Highlight inline fenced blocks
|
||||
* Fixed [#26][26]: Better highlighting for keystrokes
|
||||
@@ -68,7 +339,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[26]: https://github.com/squidfunk/mkdocs-material/issues/26
|
||||
[30]: https://github.com/squidfunk/mkdocs-material/issues/30
|
||||
|
||||
### 0.2.2 <small> _ March 20, 2016</small>
|
||||
### 0.2.2 <small>_ March 20, 2016</small>
|
||||
|
||||
* Fixed [#15][15]: Document Pygments dependency for CodeHilite
|
||||
* Fixed [#16][16]: Favicon could not be set through `mkdocs.yml`
|
||||
@@ -80,7 +351,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[17]: https://github.com/squidfunk/mkdocs-material/issues/17
|
||||
[20]: https://github.com/squidfunk/mkdocs-material/issues/20
|
||||
|
||||
### 0.2.1 <small> _ March 12, 2016</small>
|
||||
### 0.2.1 <small>_ March 12, 2016</small>
|
||||
|
||||
* Fixed [#10][10]: Invisible header after closing search bar with
|
||||
<kbd>ESC</kbd> key
|
||||
@@ -92,7 +363,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[10]: https://github.com/squidfunk/mkdocs-material/issues/10
|
||||
[13]: https://github.com/squidfunk/mkdocs-material/issues/13
|
||||
|
||||
### 0.2.0 <small> _ February 24, 2016</small>
|
||||
### 0.2.0 <small>_ February 24, 2016</small>
|
||||
|
||||
* Fixed [#6][6]: Include multiple color palettes via `mkdocs.yml`
|
||||
* Fixed [#7][7]: Better colors for links inside admonition notes and warnings
|
||||
@@ -103,7 +374,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[7]: https://github.com/squidfunk/mkdocs-material/issues/7
|
||||
[9]: https://github.com/squidfunk/mkdocs-material/issues/9
|
||||
|
||||
### 0.1.3 <small> _ February 21, 2016</small>
|
||||
### 0.1.3 <small>_ February 21, 2016</small>
|
||||
|
||||
* Fixed [#3][3]: Ordered lists within an unordered list have `::before` content
|
||||
* Fixed [#4][4]: Click on Logo/Title without Github-Repository: `"None"`
|
||||
@@ -114,7 +385,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[4]: https://github.com/squidfunk/mkdocs-material/issues/4
|
||||
[5]: https://github.com/squidfunk/mkdocs-material/issues/5
|
||||
|
||||
### 0.1.2 <small> _ February 16, 2016</small>
|
||||
### 0.1.2 <small>_ February 16, 2016</small>
|
||||
|
||||
* Fixed styles for deep navigational hierarchies
|
||||
* Fixed webfont delivery problem when hosted in subdirectories
|
||||
@@ -124,7 +395,7 @@ pip show mkdocs-material | grep -E ^Version
|
||||
* Set download link to latest version if available
|
||||
* Set up tracking of outgoing links and actions for Google Analytics
|
||||
|
||||
### 0.1.1 <small> _ February 11, 2016</small>
|
||||
### 0.1.1 <small>_ February 11, 2016</small>
|
||||
|
||||
* Fixed [#1][1]: GitHub stars don't work if the repo_url ends with a `/`
|
||||
* Updated NPM and Bower dependencies to most recent versions
|
||||
@@ -135,6 +406,6 @@ pip show mkdocs-material | grep -E ^Version
|
||||
[1]: https://github.com/squidfunk/mkdocs-material/issues/1
|
||||
[2]: https://travis-ci.org
|
||||
|
||||
### 0.1.0 <small> _ February 9, 2016</small>
|
||||
### 0.1.0 <small>_ February 9, 2016</small>
|
||||
|
||||
* Initial release
|
||||
|
||||
@@ -137,6 +137,24 @@ tincidunt. Aenean ullamcorper sit amet nulla at interdum.
|
||||
sagittis. Aliquam purus tellus, faucibus eget urna at, iaculis venenatis
|
||||
nulla. Vivamus a pharetra leo.
|
||||
|
||||
### Definition lists
|
||||
|
||||
Lorem ipsum dolor sit amet
|
||||
|
||||
: Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus
|
||||
tellus non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor
|
||||
lobortis orci, at elementum urna sodales vitae. In in vehicula nulla.
|
||||
|
||||
Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis.
|
||||
Nam vulputate tincidunt fringilla.
|
||||
Nullam dignissim ultrices urna non auctor.
|
||||
|
||||
Cras arcu libero
|
||||
|
||||
: Aliquam metus eros, pretium sed nulla venenatis, faucibus auctor ex. Proin
|
||||
ut eros sed sapien ullamcorper consequat. Nunc ligula ante, fringilla at
|
||||
aliquam ac, aliquet sed mauris.
|
||||
|
||||
## Code blocks
|
||||
|
||||
### Inline
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Examples
|
||||
|
||||
To run the example configurations, ensure Python and MkDocs are up and running,
|
||||
change to the respective directory and run `mkdocs serve`. This will print:
|
||||
|
||||
``` sh
|
||||
INFO - Building documentation...
|
||||
INFO - Cleaning site directory
|
||||
[I 170620 18:54:55 server:283] Serving on http://127.0.0.1:8000
|
||||
[I 170620 18:54:55 handlers:60] Start watching changes
|
||||
[I 170620 18:54:55 handlers:62] Start detecting changes
|
||||
```
|
||||
|
||||
Go to http://127.0.0.1:8000 to see the resulting documentation.
|
||||
@@ -0,0 +1,3 @@
|
||||
# Example
|
||||
|
||||
This is a minimal example configuration.
|
||||
@@ -0,0 +1,25 @@
|
||||
# Copyright (c) 2016-2017 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.
|
||||
|
||||
# Project information
|
||||
site_name: Example
|
||||
|
||||
# Theme
|
||||
theme: material
|
||||
@@ -0,0 +1,27 @@
|
||||
# Example
|
||||
|
||||
This example project contains a configuration for the German language. All
|
||||
footer and search labels (or placeholders), as well as link titles have been
|
||||
translated to German. Use this example as a starting point for a project with
|
||||
another language than English.
|
||||
|
||||
The translations can be changed in `theme/partials/language.html`:
|
||||
|
||||
``` jinja
|
||||
{% macro t(key) %}{{ {
|
||||
"language": "de",
|
||||
"edit.link.title": "Seite editieren",
|
||||
"footer.previous": "Vorherige Seite",
|
||||
"footer.next": "Nächste Seite",
|
||||
"meta.comments": "Kommentare",
|
||||
"meta.source": "Quellcode",
|
||||
"search.languages": "de",
|
||||
"search.placeholder": "Suche",
|
||||
"search.result.placeholder": "Suchbegriff eingeben",
|
||||
"search.result.none": "Keine Suchergebnisse",
|
||||
"search.result.one": "1 Suchergebnis",
|
||||
"search.result.other": "# Suchergebnisse",
|
||||
"source.link.title": "Quellcode",
|
||||
"toc.title": "Inhaltsverzeichnis"
|
||||
}[key] }}{% endmacro %}
|
||||
```
|
||||
@@ -0,0 +1,30 @@
|
||||
# Copyright (c) 2016-2017 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.
|
||||
|
||||
# Project information
|
||||
site_name: Example
|
||||
|
||||
# Repository
|
||||
repo_name: squidfunk/mkdocs-material
|
||||
repo_url: https://github.com/squidfunk/mkdocs-material
|
||||
|
||||
# Theme and overrides, i.e. language partial
|
||||
theme: material
|
||||
theme_dir: theme
|
||||
@@ -0,0 +1,39 @@
|
||||
<!--
|
||||
Copyright (c) 2016-2017 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.
|
||||
-->
|
||||
|
||||
<!-- Translations -->
|
||||
{% macro t(key) %}{{ {
|
||||
"language": "de",
|
||||
"edit.link.title": "Seite editieren",
|
||||
"footer.previous": "Vorherige Seite",
|
||||
"footer.next": "Nächste Seite",
|
||||
"meta.comments": "Kommentare",
|
||||
"meta.source": "Quellcode",
|
||||
"search.languages": "de",
|
||||
"search.placeholder": "Suche",
|
||||
"search.result.placeholder": "Suchbegriff eingeben",
|
||||
"search.result.none": "Keine Suchergebnisse",
|
||||
"search.result.one": "1 Suchergebnis",
|
||||
"search.result.other": "# Suchergebnisse",
|
||||
"source.link.title": "Quellcode",
|
||||
"toc.title": "Inhaltsverzeichnis"
|
||||
}[key] }}{% endmacro %}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"rules": {
|
||||
"no-invalid-this": 0,
|
||||
"max-params": 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
declare module "clipboard" {
|
||||
|
||||
/* Class: Clipboard action */
|
||||
declare class ClipboardAction {
|
||||
trigger: HTMLElement,
|
||||
clearSelection(): void
|
||||
}
|
||||
|
||||
/* Class: Clipboard */
|
||||
declare class Clipboard {
|
||||
static isSupported(): boolean,
|
||||
constructor(selector: string): void,
|
||||
on(name: string, cb: (action: ClipboardAction) => void): void
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
declare export default typeof Clipboard
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
declare module "escape-string-regexp" {
|
||||
declare function exports(value: string): string
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
declare module "fastclick" {
|
||||
|
||||
/* Type: FastClick */
|
||||
declare type FastClick = {
|
||||
attach(name: HTMLElement): void
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
declare export default FastClick
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
declare module "js-cookie" {
|
||||
|
||||
/* Type: Options for setting cookie values */
|
||||
declare type Options = {
|
||||
path?: string,
|
||||
expires?: number | string
|
||||
}
|
||||
|
||||
/* Type: Cookie */
|
||||
declare type Cookie = {
|
||||
getJSON(json: string): Object,
|
||||
set(key: string, value: string, options?: Options): string
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
declare export default Cookie
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
declare class Jsx {
|
||||
static createElement(tag: string, properties?: Object,
|
||||
...children?: Array<
|
||||
string | number | { __html?: string } | Array<HTMLElement>
|
||||
>
|
||||
): HTMLElement
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
declare export default Jsx
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Currently, it's not possible to export a function that returns a class type,
|
||||
* as the imports just don't correctly work with flow. As a workaround we
|
||||
* export an object until this error is fixed.
|
||||
*/
|
||||
declare module "expose-loader?lunr!lunr" {
|
||||
declare function exports(name: () => void): Object
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 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.
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Declarations
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
declare class Modernizr {
|
||||
static addTest(name: string, test: () => boolean): void
|
||||
}
|
||||
|
||||
/* Exports */
|
||||
declare export default Modernizr
|
||||
+10
-4
@@ -21,17 +21,19 @@
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Definition
|
||||
* Module
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
/* eslint-disable no-underscore-dangle */
|
||||
export default /* JSX */ {
|
||||
|
||||
/**
|
||||
* Create a native DOM node from JSX's intermediate representation
|
||||
*
|
||||
* @param {string} tag - Tag name
|
||||
* @param {object} properties - Properties
|
||||
* @param {...(string|number|Array)} children - Child nodes
|
||||
* @param {?Object} properties - Properties
|
||||
* @param {Array<string | number | { __html: string } | Array<HTMLElement>>}
|
||||
* children - Child nodes
|
||||
* @return {HTMLElement} Native DOM node
|
||||
*/
|
||||
createElement(tag, properties, ...children) {
|
||||
@@ -56,8 +58,12 @@ export default /* JSX */ {
|
||||
} else if (Array.isArray(node)) {
|
||||
iterateChildNodes(node)
|
||||
|
||||
/* Append raw HTML */
|
||||
} else if (typeof node.__html !== "undefined") {
|
||||
el.innerHTML += node.__html
|
||||
|
||||
/* Append regular nodes */
|
||||
} else {
|
||||
} else if (node instanceof Node) {
|
||||
el.appendChild(node)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"rules": {
|
||||
"no-invalid-this": 0
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ import changed from "gulp-changed"
|
||||
|
||||
export default (gulp, config) => {
|
||||
return () => {
|
||||
return gulp.src(`${config.assets.src}/images/**/*.ico`)
|
||||
return gulp.src(`${config.assets.src}/images/**/favicon.*`)
|
||||
.pipe(changed(`${config.assets.build}/images`))
|
||||
.pipe(gulp.dest(`${config.assets.build}/images`))
|
||||
}
|
||||
|
||||
@@ -20,53 +20,44 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import selenium from "selenium-standalone"
|
||||
import { transform } from "babel-core"
|
||||
import jsdoc2flow from "flow-jsdoc"
|
||||
import through from "through2"
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Locals
|
||||
* Task: annotate JavaScript
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
/* Selenium server */
|
||||
let server = null
|
||||
export default (gulp, config) => {
|
||||
return () => {
|
||||
return gulp.src(`${config.assets.src}/javascripts/**/*.{js,jsx}`)
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Definition
|
||||
* ------------------------------------------------------------------------- */
|
||||
/* Linting */
|
||||
.pipe(
|
||||
through.obj(function(file, enc, done) {
|
||||
if (file.isNull() || file.isStream())
|
||||
return done()
|
||||
|
||||
export const start = done => {
|
||||
selenium.start({}, (err, proc) => {
|
||||
if (err) {
|
||||
/* Perform Babel transformation to resolve JSX calls */
|
||||
const transformed = transform(file.contents.toString(), {
|
||||
plugins: [
|
||||
["transform-react-jsx", {
|
||||
"pragma": "Jsx.createElement"
|
||||
}]
|
||||
]
|
||||
})
|
||||
|
||||
/* Install selenium, if not present */
|
||||
if (/^Missing(.*)chromedriver$/.test(err.message)) {
|
||||
selenium.install(done)
|
||||
/* Annotate contents */
|
||||
file.contents = new Buffer(jsdoc2flow(
|
||||
`/* @flow */\n\n${transformed.code}`
|
||||
).toString())
|
||||
|
||||
/* Start selenium again */
|
||||
selenium.start({}, (err_, proc_) => {
|
||||
server = proc_
|
||||
})
|
||||
/* Push file to next stage */
|
||||
this.push(file)
|
||||
done()
|
||||
}))
|
||||
|
||||
/* Otherwise, throw error */
|
||||
} else {
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
/* Remember process handle */
|
||||
server = server || proc
|
||||
done()
|
||||
})
|
||||
/* Print errors */
|
||||
.pipe(gulp.dest("tmp/assets/javascripts"))
|
||||
}
|
||||
}
|
||||
|
||||
export const stop = () => {
|
||||
if (server)
|
||||
server.kill()
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Signal handler
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
/* Register signal handler for all relevant events */
|
||||
for (const signal of ["SIGTERM", "SIGINT", "exit"])
|
||||
process.on(signal, stop)
|
||||
@@ -50,12 +50,13 @@ export default (gulp, config, args) => {
|
||||
],
|
||||
output: {
|
||||
filename: "application.js",
|
||||
library: "Application"
|
||||
library: "app",
|
||||
libraryTarget: "window"
|
||||
},
|
||||
module: {
|
||||
|
||||
/* Transpile ES6 to ES5 with Babel */
|
||||
loaders: [
|
||||
rules: [
|
||||
{
|
||||
loader: "babel-loader",
|
||||
test: /\.jsx?$/
|
||||
@@ -65,11 +66,11 @@ export default (gulp, config, args) => {
|
||||
plugins: [
|
||||
|
||||
/* Don't emit assets that include errors */
|
||||
new webpack.NoErrorsPlugin(),
|
||||
new webpack.NoEmitOnErrorsPlugin(),
|
||||
|
||||
/* Provide JSX helper */
|
||||
new webpack.ProvidePlugin({
|
||||
JSX: path.join(process.cwd(), `${config.lib}/providers/jsx.js`)
|
||||
Jsx: path.join(process.cwd(), `${config.lib}/providers/jsx.js`)
|
||||
})
|
||||
].concat(
|
||||
|
||||
@@ -77,19 +78,30 @@ export default (gulp, config, args) => {
|
||||
args.optimize ? [
|
||||
new webpack.optimize.UglifyJsPlugin({
|
||||
compress: {
|
||||
warnings: false
|
||||
warnings: false,
|
||||
screw_ie8: true, // eslint-disable-line camelcase
|
||||
conditionals: true,
|
||||
unused: true,
|
||||
comparisons: true,
|
||||
sequences: true,
|
||||
dead_code: true, // eslint-disable-line camelcase
|
||||
evaluate: true,
|
||||
if_return: true, // eslint-disable-line camelcase
|
||||
join_vars: true // eslint-disable-line camelcase
|
||||
},
|
||||
output: {
|
||||
comments: false
|
||||
}
|
||||
})
|
||||
] : []),
|
||||
|
||||
/* Module resolver */
|
||||
resolve: {
|
||||
modulesDirectories: [
|
||||
modules: [
|
||||
"src/assets/javascripts",
|
||||
"node_modules"
|
||||
],
|
||||
extensions: [
|
||||
"",
|
||||
".js",
|
||||
".jsx"
|
||||
]
|
||||
@@ -101,8 +113,8 @@ export default (gulp, config, args) => {
|
||||
},
|
||||
|
||||
/* Sourcemap support */
|
||||
devtool: args.sourcemaps ? "source-map" : ""
|
||||
}))
|
||||
devtool: args.sourcemaps ? "inline-source-map" : ""
|
||||
}, webpack))
|
||||
|
||||
/* Revisioning */
|
||||
.pipe(gulpif(args.revision, rev()))
|
||||
|
||||
@@ -20,26 +20,17 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import path from "path"
|
||||
import { Server, stopper } from "karma"
|
||||
import gulpif from "gulp-if"
|
||||
import uglify from "gulp-uglify"
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Task: start karma test runner
|
||||
* Task: build search language support files
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
export default () => {
|
||||
return done => {
|
||||
new Server({
|
||||
configFile: path.join(process.cwd(), "tests/karma.conf.js")
|
||||
}, done).start()
|
||||
|
||||
/* Register signal handler for all relevant events */
|
||||
for (const signal of ["SIGTERM", "SIGINT", "exit"])
|
||||
process.on(signal, () => {
|
||||
return stopper.stop({
|
||||
port: 9876,
|
||||
logLevel: "OFF"
|
||||
})
|
||||
})
|
||||
export default (gulp, config, args) => {
|
||||
return () => {
|
||||
return gulp.src("node_modules/lunr-languages/*.js")
|
||||
.pipe(gulpif(args.optimize, uglify()))
|
||||
.pipe(gulp.dest(`${config.assets.build}/javascripts/lunr`))
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@
|
||||
import path from "path"
|
||||
import through from "through2"
|
||||
import util from "gulp-util"
|
||||
|
||||
import { CLIEngine } from "eslint"
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
@@ -38,7 +39,7 @@ const format = eslint.getFormatter()
|
||||
|
||||
export default (gulp, config) => {
|
||||
return () => {
|
||||
return gulp.src(`${config.assets.src}/javascripts/**/*.js`)
|
||||
return gulp.src(`${config.assets.src}/javascripts/**/*.{js,jsx}`)
|
||||
|
||||
/* Linting */
|
||||
.pipe(
|
||||
|
||||
@@ -25,6 +25,7 @@ import gulpif from "gulp-if"
|
||||
import mincss from "gulp-cssnano"
|
||||
import mqpacker from "css-mqpacker"
|
||||
import postcss from "gulp-postcss"
|
||||
import pseudoclasses from "postcss-pseudo-classes"
|
||||
import rev from "gulp-rev"
|
||||
import sass from "gulp-sass"
|
||||
import sourcemaps from "gulp-sourcemaps"
|
||||
@@ -54,7 +55,11 @@ export default (gulp, config, args) => {
|
||||
postcss([
|
||||
autoprefixer(),
|
||||
mqpacker
|
||||
]))
|
||||
].concat(!args.optimize ? [
|
||||
pseudoclasses({
|
||||
"restrictTo": ["hover", "focus"]
|
||||
})
|
||||
] : [])))
|
||||
|
||||
/* Minify sources */
|
||||
.pipe(gulpif(args.optimize, mincss()))
|
||||
@@ -63,7 +68,7 @@ export default (gulp, config, args) => {
|
||||
.pipe(gulpif(args.revision, rev()))
|
||||
.pipe(gulpif(args.revision,
|
||||
version({ manifest: gulp.src("manifest.json") })))
|
||||
.pipe(gulpif(args.sourcemaps, sourcemaps.write(".")))
|
||||
.pipe(gulpif(args.sourcemaps, sourcemaps.write()))
|
||||
.pipe(gulp.dest(`${config.assets.build}/stylesheets`))
|
||||
.pipe(gulpif(args.revision,
|
||||
rev.manifest("manifest.json", {
|
||||
|
||||
@@ -39,7 +39,7 @@ export default () => {
|
||||
server.kill()
|
||||
|
||||
/* Spawn MkDocs server */
|
||||
server = child.spawn("mkdocs", ["serve", "-a", "0.0.0.0:8000"], {
|
||||
server = child.spawn("mkdocs", ["serve", "--dev-addr", "0.0.0.0:8000"], {
|
||||
stdio: "inherit"
|
||||
})
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@ export default (gulp, config, args) => {
|
||||
removeScriptTypeAttributes: true,
|
||||
removeStyleLinkTypeAttributes: true
|
||||
}))
|
||||
.pipe(replace("$theme-name$", metadata.name))
|
||||
.pipe(replace("$theme-version$", metadata.version))
|
||||
.pipe(replace("$md-name$", metadata.name))
|
||||
.pipe(replace("$md-version$", metadata.version))
|
||||
.pipe(compact())
|
||||
.pipe(gulpif(args.revision,
|
||||
version({ manifest: gulp.src("manifest.json") })))
|
||||
|
||||
@@ -29,7 +29,7 @@ import vinyl from "vinyl-paths"
|
||||
|
||||
export default (gulp, config) => {
|
||||
return () => {
|
||||
return gulp.src(`${config.views.build}/**/*.html`)
|
||||
return gulp.src(`${config.views.build}/**/*.{html,py}`)
|
||||
.pipe(vinyl(clean))
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
{% extends "main.html" %}
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h1>404 - Not found</h1>
|
||||
{% endblock %}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}(d=f.cursor)<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
|
||||
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
@@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.jp=function(){this.pipeline.reset(),this.pipeline.add(e.jp.stopWordFilter,e.jp.stemmer),r?this.tokenizer=e.jp.tokenizer:(e.tokenizer&&(e.tokenizer=e.jp.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.jp.tokenizer))};var t=new e.TinySegmenter;e.jp.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(var i=n.toString().toLowerCase().replace(/^\s+/,""),o=i.length-1;o>=0;o--)if(/\S/.test(i.charAt(o))){i=i.substring(0,o+1);break}return t.segment(i).filter(function(e){return!!e}).map(function(t){return r?new e.Token(t):t})},e.jp.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.jp.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9",e.jp.stopWordFilter=function(t){if(-1===e.jp.stopWordFilter.stopWords.indexOf(r?t.toString():t))return t},e.jp.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
|
||||
@@ -0,0 +1 @@
|
||||
!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var i=Array.prototype.slice.call(arguments),t=i.join("-"),r="",n=[],s=[],p=0;p<i.length;++p)"en"==i[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[i[p]].wordCharacters,n.unshift(e[i[p]].stopWordFilter),n.push(e[i[p]].stemmer),s.push(e[i[p]].stemmer));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+t),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
|
||||
@@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}(a=w.cursor)<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,(e=w.find_among_b(l,11))?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
|
||||
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
@@ -0,0 +1 @@
|
||||
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){if(o>=(_=t[s]).s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=(m=t[a]).s_size-1-l;_>=0;_--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-m.s[_])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var m=t[s];if(o>=m.s_size){if(this.cursor=n-m.s_size,!m.method)return m.result;var b=m.method();if(this.cursor=n-m.s_size,b)return m.result}if((s=m.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
|
||||
@@ -0,0 +1 @@
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}(o=w.cursor)<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
|
||||
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
+68
-26
@@ -1,58 +1,63 @@
|
||||
{% import "partials/language.html" as lang %}
|
||||
<!DOCTYPE html>
|
||||
<html class="no-js">
|
||||
<html lang="{{ lang.t('language') }}" class="no-js">
|
||||
<head>
|
||||
{% block site_meta %}
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
{% if config.site_description %}
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
{% if page and page.meta.description %}
|
||||
<meta name="description" content="{{ page.meta.description | first }}">
|
||||
{% elif config.site_description %}
|
||||
<meta name="description" content="{{ config.site_description }}">
|
||||
{% endif %}
|
||||
{% if page.canonical_url %}
|
||||
<link rel="canonical" href="{{ page.canonical_url }}">
|
||||
{% endif %}
|
||||
{% if config.site_author %}
|
||||
{% if page and page.meta.author %}
|
||||
<meta name="author" content="{{ page.meta.author | first }}">
|
||||
{% elif config.site_author %}
|
||||
<meta name="author" content="{{ config.site_author }}">
|
||||
{% endif %}
|
||||
{% if config.site_favicon %}
|
||||
<link rel="shortcut icon" href="{{ base_url }}/{{ config.site_favicon }}">
|
||||
{% else %}
|
||||
<link rel="shortcut icon" href="{{ base_url }}/assets/images/favicon.ico">
|
||||
<link rel="shortcut icon" href="{{ base_url }}/assets/images/favicon.png">
|
||||
{% endif %}
|
||||
<meta name="generator" content="mkdocs+mkdocs-material#1.0.0">
|
||||
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-1.10.2">
|
||||
{% endblock %}
|
||||
{% block htmltitle %}
|
||||
{% if page.title %}
|
||||
{% if page and page.meta.title %}
|
||||
<title>{{ page.meta.title | first }}</title>
|
||||
{% elif page and page.title and not page.is_homepage %}
|
||||
<title>{{ page.title }} - {{ config.site_name }}</title>
|
||||
{% elif config.site_description %}
|
||||
<title>{{ config.site_name }} - {{ config.site_description }}</title>
|
||||
{% else %}
|
||||
<title>{{ config.site_name }}</title>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block libs %}
|
||||
<script src="{{ base_url }}/assets/javascripts/modernizr-facb31f4a3.js"></script>
|
||||
<script src="{{ base_url }}/assets/javascripts/modernizr-e826f8942a.js"></script>
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-408828a02a.css">
|
||||
{% if config.extra.palette %}
|
||||
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-23f75ab9c7.palette.css">
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block fonts %}
|
||||
{% if config.extra.font != "none" %}
|
||||
{% if config.extra.font != false and config.extra.font != "none" %}
|
||||
{% set text = config.extra.get("font", {}).text | default("Roboto") %}
|
||||
{% set code = config.extra.get("font", {}).code
|
||||
| default("Roboto Mono") %}
|
||||
{% set font = text + ':300,400,400i,700|' + code | replace(' ', '+') %}
|
||||
{% set font = text + ":300,400,400i,700|" + code | replace(" ", "+") %}
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family={{ font }}">
|
||||
<style>body,input{font-family:"{{ text }}","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"{{ code }}","Courier New",Courier,monospace}</style>
|
||||
{% endif %}
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||
{% endblock %}
|
||||
{% block styles %}
|
||||
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-ff220fd69d.css">
|
||||
{% if config.extra.palette %}
|
||||
<link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-02ce7adcc2.palette.css">
|
||||
{% endif %}
|
||||
{% for path in extra_css %}
|
||||
<link rel="stylesheet" href="{{ path }}">
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
{% for path in extra_css %}
|
||||
<link rel="stylesheet" href="{{ path }}">
|
||||
{% endfor %}
|
||||
{% block extrahead %}{% endblock %}
|
||||
</head>
|
||||
{% set palette = config.extra.get("palette", {}) %}
|
||||
@@ -82,6 +87,10 @@
|
||||
{% include "partials/header.html" %}
|
||||
{% endblock %}
|
||||
<div class="md-container">
|
||||
{% set feature = config.extra.get("feature", {}) %}
|
||||
{% if feature.tabs %}
|
||||
{% include "partials/tabs.html" %}
|
||||
{% endif %}
|
||||
<main class="md-main">
|
||||
<div class="md-main__inner md-grid" data-md-component="container">
|
||||
{% block site_nav %}
|
||||
@@ -106,14 +115,31 @@
|
||||
{% endblock %}
|
||||
<div class="md-content">
|
||||
<article class="md-content__inner md-typeset">
|
||||
{% if config.edit_uri %}
|
||||
<a href="{{ page.edit_url }}" title="{{ lang.t('edit.link.title') }}" class="md-icon md-content__edit">edit</a>
|
||||
{% endif %}
|
||||
{% block content %}
|
||||
{% if not "\x3ch1 id=" in page.content %}
|
||||
{% if config.edit_uri %}
|
||||
<a href="{{ page.edit_url }}" title="{{ lang.t('edit.link.title') }}" class="md-icon md-content__icon"></a>
|
||||
{% endif %}
|
||||
{% if not "\x3ch1" in page.content %}
|
||||
<h1>{{ page.title | default(config.site_name, true)}}</h1>
|
||||
{% endif %}
|
||||
{{ page.content }}
|
||||
{% block source %}
|
||||
{% if page.meta.source %}
|
||||
<h2 id="__source">{{ lang.t("meta.source") }}</h2>
|
||||
{% set path = (page.meta.path | default([""]) | first) %}
|
||||
{% for file in page.meta.source %}
|
||||
<a href="{{ [config.repo_url, path, file] | join('/') }}" title="{{ file }}" class="md-source-file">
|
||||
{{ file }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
{% block disqus %}
|
||||
{% if config.extra.disqus and not page.is_homepage %}
|
||||
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2>
|
||||
{% include "partials/disqus.html" %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</article>
|
||||
</div>
|
||||
@@ -124,8 +150,24 @@
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% block scripts %}
|
||||
<script src="{{ base_url }}/assets/javascripts/application-16f434a21a.js"></script>
|
||||
<script>var config={url:{base:"{{ base_url }}"}},app=new Application(config);app.initialize()</script>
|
||||
<script src="{{ base_url }}/assets/javascripts/application-f3ab9e5ff8.js"></script>
|
||||
{% set languages = lang.t("search.languages").split(",") %}
|
||||
{% if languages | length and languages[0] != "" %}
|
||||
{% set path = base_url + "/assets/javascripts/lunr" %}
|
||||
<script src="{{ path }}/lunr.stemmer.support.js"></script>
|
||||
{% for language in languages | map("trim") %}
|
||||
{% if language != "en" %}
|
||||
{% if language == "jp" %}
|
||||
<script src="{{ path }}/tinyseg.js"></script>
|
||||
{% endif %}
|
||||
<script src="{{ path }}/lunr.{{ language }}.js"></script>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if languages | length > 1 %}
|
||||
<script src="{{ path }}/lunr.multi.js"></script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<script>app.initialize({url:{base:"{{ base_url }}"}})</script>
|
||||
{% for path in extra_javascript %}
|
||||
<script src="{{ path }}"></script>
|
||||
{% endfor %}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<div id="disqus_thread"></div>
|
||||
<script>
|
||||
var disqus_config = function () {
|
||||
this.page.url = "{{ page.canonical_url }}";
|
||||
this.page.identifier =
|
||||
"{{ page.canonical_url | replace(config.site_url, "") }}";
|
||||
};
|
||||
(function() {
|
||||
var d = document, s = d.createElement("script");
|
||||
s.src = "//{{ config.extra.disqus }}.disqus.com/embed.js";
|
||||
s.setAttribute("data-timestamp", +new Date());
|
||||
(d.head || d.body).appendChild(s);
|
||||
})();
|
||||
</script>
|
||||
@@ -6,12 +6,12 @@
|
||||
{% if page.previous_page %}
|
||||
<a href="{{ page.previous_page.url }}" title="{{ page.previous_page.title }}" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<i class="md-icon md-icon--arrow-back md-footer-nav__icon"></i>
|
||||
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
||||
<span class="md-flex__ellipsis">
|
||||
<span class="md-footer-nav__direction">
|
||||
{{ lang.t('footer.previous') }}
|
||||
{{ lang.t("footer.previous") }}
|
||||
</span>
|
||||
{{ page.previous_page.title }}
|
||||
</span>
|
||||
@@ -23,13 +23,13 @@
|
||||
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
||||
<span class="md-flex__ellipsis">
|
||||
<span class="md-footer-nav__direction">
|
||||
{{ lang.t('footer.next') }}
|
||||
{{ lang.t("footer.next") }}
|
||||
</span>
|
||||
{{ page.next_page.title }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<i class="md-icon md-icon--arrow-forward md-footer-nav__icon"></i>
|
||||
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
|
||||
</div>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
<header class="md-header">
|
||||
<header class="md-header" data-md-component="header">
|
||||
<nav class="md-header-nav md-grid">
|
||||
<div class="md-flex">
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<a href="{{ nav.homepage.url }}" title="{{ config.site_name }}" class="md-icon {% if not config.extra.logo %} md-icon--home {% endif %} md-header-nav__icon">
|
||||
<a href="{{ config.site_url | default(nav.homepage.url, true) }}" title="{{ config.site_name }}" class="md-header-nav__button md-logo">
|
||||
{% if config.extra.logo %}
|
||||
<img src="{{ base_url }}/{{ config.extra.logo }}" width="24" height="24">
|
||||
{% if config.extra.logo.icon %}
|
||||
<i class="md-icon">{{ config.extra.logo.icon }}</i>
|
||||
{% else %}
|
||||
<img src="{{ base_url }}/{{ config.extra.logo }}" width="24" height="24">
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<i class="md-icon md-icon--home"></i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<label class="md-icon md-icon--menu md-header-nav__icon" for="drawer"></label>
|
||||
<label class="md-icon md-icon--menu md-header-nav__button" for="drawer"></label>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--stretch">
|
||||
<span class="md-flex__ellipsis md-header-nav__title">
|
||||
@@ -27,17 +33,17 @@
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
{% block search_box %}
|
||||
<label class="md-icon md-icon--search md-header-nav__icon" for="search"></label>
|
||||
<label class="md-icon md-icon--search md-header-nav__button" for="search"></label>
|
||||
{% include "partials/search.html" %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
{% if config.repo_url %}
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<div class="md-header-nav__source">
|
||||
{% if config.repo_url %}
|
||||
{% include "partials/source.html" %}
|
||||
{% endif %}
|
||||
{% include "partials/source.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
{% macro t(key) %}{{ {
|
||||
"language": "en",
|
||||
"edit.link.title": "Edit this page",
|
||||
"footer.previous": "Previous",
|
||||
"footer.next": "Next",
|
||||
"meta.comments": "Comments",
|
||||
"meta.source": "Source",
|
||||
"search.languages": "",
|
||||
"search.placeholder": "Search",
|
||||
"search.result.placeholder": "Type to start searching",
|
||||
"search.result.none": "No matching documents",
|
||||
"search.result.one": "1 matching document",
|
||||
"search.result.other": "# matching documents",
|
||||
"search.tokenizer": "[\s\-]+",
|
||||
"source.link.title": "Go to repository",
|
||||
"toc.title": "Table of contents"
|
||||
}[key] }}{% endmacro %}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
{% set class = "md-nav__item" %}
|
||||
{% if nav_item.active %}
|
||||
{% set class = "md-nav__item md-nav__item--active" %}
|
||||
{% endif %}
|
||||
{% if nav_item.children %}
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
<li class="{{ class }} md-nav__item--nested">
|
||||
{% if nav_item.active %}
|
||||
<input class="md-toggle md-nav__toggle" data-md-toggle="{{ path }}" type="checkbox" id="{{ path }}" checked>
|
||||
{% else %}
|
||||
@@ -8,27 +12,28 @@
|
||||
<label class="md-nav__link" for="{{ path }}">
|
||||
{{ nav_item.title }}
|
||||
</label>
|
||||
<nav class="md-nav" data-md-component="collapsible">
|
||||
<nav class="md-nav" data-md-component="collapsible" data-md-level="{{ level }}">
|
||||
<label class="md-nav__title" for="{{ path }}">
|
||||
{{ nav_item.title}}
|
||||
{{ nav_item.title }}
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
{% set base = path %}
|
||||
{% for nav_item in nav_item.children %}
|
||||
{% set path = base + "-" + loop.index | string %}
|
||||
{% set level = level + 1 %}
|
||||
{% include "partials/nav-item.html" %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
{% elif nav_item == page %}
|
||||
<li class="md-nav__item">
|
||||
<li class="{{ class }}">
|
||||
{% set toc_ = page.toc %}
|
||||
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="toc">
|
||||
{% if "\x3ch1 id=" in page.content %}
|
||||
{% if toc_ | first is defined and "\x3ch1 id=" in page.content %}
|
||||
{% set toc_ = (toc_ | first).children %}
|
||||
{% endif %}
|
||||
{% if toc_ and (toc_ | first) %}
|
||||
{% if toc_ | first is defined %}
|
||||
<label class="md-nav__link md-nav__link--active" for="toc">
|
||||
{{ nav_item.title }}
|
||||
</label>
|
||||
@@ -36,20 +41,14 @@
|
||||
<a href="{{ nav_item.url }}" title="{{ nav_item.title }}" class="md-nav__link md-nav__link--active">
|
||||
{{ nav_item.title }}
|
||||
</a>
|
||||
{% if page.toc %}
|
||||
{% if toc_ | first is defined %}
|
||||
{% include "partials/toc.html" %}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="md-nav__item">
|
||||
{% if nav_item.active %}
|
||||
<a href="{{ nav_item.url }}" title="{{ nav_item.title }}" class="md-nav__link md-nav__link--active">
|
||||
{{ nav_item.title }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ nav_item.url }}" title="{{ nav_item.title }}" class="md-nav__link">
|
||||
{{ nav_item.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
<li class="{{ class }}">
|
||||
<a href="{{ nav_item.url }}" title="{{ nav_item.title }}" class="md-nav__link">
|
||||
{{ nav_item.title }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
<nav class="md-nav md-nav--primary">
|
||||
<nav class="md-nav md-nav--primary" data-md-level="0">
|
||||
<label class="md-nav__title md-nav__title--site" for="drawer">
|
||||
<i class="md-icon {% if not config.extra.logo %} md-icon--home {% endif %} md-nav__icon">
|
||||
<div class="md-nav__button md-logo">
|
||||
{% if config.extra.logo %}
|
||||
<img src="{{ base_url }}/{{ config.extra.logo }}">
|
||||
{% if config.extra.logo.icon %}
|
||||
<i class="md-icon">{{ config.extra.logo.icon }}</i>
|
||||
{% else %}
|
||||
<img src="{{ base_url }}/{{ config.extra.logo }}">
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<i class="md-icon md-icon--home"></i>
|
||||
{% endif %}
|
||||
</i>
|
||||
</div>
|
||||
{{ config.site_name }}
|
||||
</label>
|
||||
{% if config.repo_url %}
|
||||
@@ -15,6 +21,7 @@
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
{% for nav_item in nav %}
|
||||
{% set path = "nav-" + loop.index | string %}
|
||||
{% set level = 1 %}
|
||||
{% include "partials/nav-item.html" %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
{% import "partials/language.html" as lang %}
|
||||
<div class="md-search" data-md-component="search">
|
||||
<div class="md-search__overlay"></div>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="search"></label>
|
||||
<div class="md-search__inner">
|
||||
<form class="md-search__form" name="search">
|
||||
<input type="text" class="md-search__input" name="query" placeholder="{{ lang.t('search.placeholder') }}" accesskey="s" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false">
|
||||
<input type="text" class="md-search__input" name="query" required placeholder="{{ lang.t('search.placeholder') }}" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query">
|
||||
<label class="md-icon md-search__icon" for="search"></label>
|
||||
<button type="reset" class="md-icon md-search__icon" data-md-component="reset"></button>
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" data-md-scrollfix>
|
||||
<div class="md-search-result" data-md-component="result"></div>
|
||||
<div class="md-search-result" data-md-component="result" data-md-lang-search="{{ lang.t('search.languages') }}" data-md-lang-tokenizer="{{ lang.t('search.tokenizer') }}">
|
||||
<div class="md-search-result__meta" data-md-lang-result-none="{{ lang.t('search.result.none') }}" data-md-lang-result-one="{{ lang.t('search.result.one') }}" data-md-lang-result-other="{{ lang.t('search.result.other') }}">
|
||||
{{ lang.t("search.result.placeholder") }}
|
||||
</div>
|
||||
<ol class="md-search-result__list"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{% if nav_item.is_homepage %}
|
||||
<li class="md-tabs__item">
|
||||
{% if not page.ancestors | length and nav | selectattr("url", page.url) %}
|
||||
<a href="{{ nav_item.url }}" title="{{ nav_item.title }}" class="md-tabs__link md-tabs__link--active">
|
||||
{{ nav_item.title }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ nav_item.url }}" title="{{ nav_item.title }}" class="md-tabs__link">
|
||||
{{ nav_item.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% elif nav_item.children and nav_item.children | length > 0 %}
|
||||
{% set title = title | default(nav_item.title) %}
|
||||
{% if (nav_item.children | first).children | length > 0 %}
|
||||
{% set nav_item = nav_item.children | first %}
|
||||
{% include "partials/tabs-item.html" %}
|
||||
{% else %}
|
||||
<li class="md-tabs__item">
|
||||
{% if nav_item.active %}
|
||||
<a href="{{ (nav_item.children | first).url }}" title="{{ title }}" class="md-tabs__link md-tabs__link--active">
|
||||
{{ title }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ (nav_item.children | first).url }}" title="{{ title }}" class="md-tabs__link">
|
||||
{{ title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@@ -0,0 +1,13 @@
|
||||
{% set class = "md-tabs" %}
|
||||
{% if page.ancestors | length > 0 %}
|
||||
{% set class = "md-tabs md-tabs--active" %}
|
||||
{% endif %}
|
||||
<nav class="{{ class }}" data-md-component="tabs">
|
||||
<div class="md-tabs__inner md-grid">
|
||||
<ul class="md-tabs__list">
|
||||
{% for nav_item in nav %}
|
||||
{% include "partials/tabs-item.html" %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -1,15 +1,29 @@
|
||||
{% import "partials/language.html" as lang %}
|
||||
<nav class="md-nav md-nav--secondary">
|
||||
{% set toc_ = page.toc %}
|
||||
{% if "\x3ch1 id=" in page.content %}
|
||||
{% if toc_ | first is defined and "\x3ch1 id=" in page.content %}
|
||||
{% set toc_ = (toc_ | first).children %}
|
||||
{% endif %}
|
||||
{% if toc_ and (toc_ | first) %}
|
||||
<label class="md-nav__title" for="toc">{{ lang.t('toc.title') }}</label>
|
||||
{% if toc_ | first is defined %}
|
||||
<label class="md-nav__title" for="toc">{{ lang.t("toc.title") }}</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
{% for toc_item in toc_ %}
|
||||
{% include "partials/toc-item.html" %}
|
||||
{% endfor %}
|
||||
{% if page.meta.source and page.meta.source | length > 0 %}
|
||||
<li class="md-nav__item">
|
||||
<a href="#__source" title="{{ lang.t('meta.source') }}" class="md-nav__link md-nav__link--active">
|
||||
{{ lang.t("meta.source") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if config.extra.disqus and not page.is_homepage %}
|
||||
<li class="md-nav__item">
|
||||
<a href="#__comments" title="{{ lang.t('meta.comments') }}" class="md-nav__link md-nav__link--active">
|
||||
{{ lang.t("meta.comments") }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</nav>
|
||||
|
||||
+15
-3
@@ -29,28 +29,33 @@ repo_name: squidfunk/mkdocs-material
|
||||
repo_url: https://github.com/squidfunk/mkdocs-material
|
||||
|
||||
# Copyright
|
||||
copyright: 'Copyright © 2016 Martin Donath'
|
||||
copyright: 'Copyright © 2016 - 2017 Martin Donath'
|
||||
|
||||
# Documentation and theme
|
||||
# Theme directory
|
||||
theme_dir: material
|
||||
|
||||
# Options
|
||||
extra:
|
||||
feature:
|
||||
tabs: false
|
||||
palette:
|
||||
primary: indigo
|
||||
accent: indigo
|
||||
social:
|
||||
- type: globe
|
||||
link: http://struct.cc
|
||||
- type: github-alt
|
||||
link: https://github.com/squidfunk
|
||||
- type: twitter
|
||||
link: https://twitter.com/squidfunk
|
||||
- type: linkedin
|
||||
link: https://de.linkedin.com/in/martin-donath-20a95039
|
||||
link: https://linkedin.com/in/squidfunk
|
||||
|
||||
# Extensions
|
||||
markdown_extensions:
|
||||
- markdown.extensions.admonition
|
||||
- markdown.extensions.codehilite(guess_lang=false)
|
||||
- markdown.extensions.def_list
|
||||
- markdown.extensions.footnotes
|
||||
- markdown.extensions.meta
|
||||
- markdown.extensions.toc(permalink=true)
|
||||
@@ -58,6 +63,7 @@ markdown_extensions:
|
||||
- pymdownx.betterem(smart_enable=all)
|
||||
- pymdownx.caret
|
||||
- pymdownx.critic
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_generator: !!python/name:pymdownx.emoji.to_svg
|
||||
- pymdownx.inlinehilite
|
||||
@@ -76,6 +82,7 @@ pages:
|
||||
- Admonition: extensions/admonition.md
|
||||
- CodeHilite: extensions/codehilite.md
|
||||
- Footnotes: extensions/footnotes.md
|
||||
- Metadata: extensions/metadata.md
|
||||
- Permalinks: extensions/permalinks.md
|
||||
- PyMdown: extensions/pymdown.md
|
||||
- Specimen: specimen.md
|
||||
@@ -83,3 +90,8 @@ pages:
|
||||
- Release notes: release-notes.md
|
||||
- Contributing: contributing.md
|
||||
- License: license.md
|
||||
|
||||
# Google Analytics
|
||||
google_analytics:
|
||||
- !!python/object/apply:os.getenv ["GOOGLE_ANALYTICS_KEY"]
|
||||
- auto
|
||||
|
||||
+49
-50
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mkdocs-material",
|
||||
"version": "1.0.0",
|
||||
"version": "1.10.2",
|
||||
"description": "A Material Design theme for MkDocs",
|
||||
"keywords": [
|
||||
"mkdocs",
|
||||
@@ -25,32 +25,39 @@
|
||||
"scripts": {
|
||||
"build": "scripts/build",
|
||||
"clean": "scripts/clean",
|
||||
"flow": "scripts/flow",
|
||||
"help": "scripts/help",
|
||||
"lint": "scripts/lint",
|
||||
"start": "scripts/start",
|
||||
"test": "scripts/test"
|
||||
"travis": "scripts/travis"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^6.6.1",
|
||||
"babel-eslint": "^7.1.1",
|
||||
"babel-loader": "^6.2.10",
|
||||
"autoprefixer": "^7.1.2",
|
||||
"babel-core": "^6.25.0",
|
||||
"babel-eslint": "^8.0.0",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-add-module-exports": "^0.2.1",
|
||||
"babel-plugin-transform-react-jsx": "^6.8.0",
|
||||
"babel-polyfill": "^6.20.0",
|
||||
"babel-preset-es2015": "^6.18.0",
|
||||
"babel-register": "^6.18.0",
|
||||
"babel-root-import": "^4.1.5",
|
||||
"chai": "^3.5.0",
|
||||
"babel-plugin-root-import": "^5.1.0",
|
||||
"babel-plugin-transform-react-jsx": "^6.24.1",
|
||||
"babel-polyfill": "^6.23.0",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-register": "^6.24.1",
|
||||
"chalk": "^2.0.1",
|
||||
"clipboard": "^1.7.1",
|
||||
"core-js": "^2.4.1",
|
||||
"css-mqpacker": "^5.0.1",
|
||||
"css-mqpacker": "^6.0.1",
|
||||
"custom-event-polyfill": "^0.3.0",
|
||||
"del": "^2.2.2",
|
||||
"eslint": "^3.13.1",
|
||||
"eslint-plugin-mocha": "^4.8.0",
|
||||
"del": "^3.0.0",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"eslint": "^4.3.0",
|
||||
"expose-loader": "^0.7.3",
|
||||
"fastclick": "^1.0.6",
|
||||
"git-hooks": "^1.1.7",
|
||||
"flow-bin": "^0.56.0",
|
||||
"flow-jsdoc": "^0.3.0",
|
||||
"git-hooks": "^1.1.8",
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-changed": "^1.3.2",
|
||||
"gulp-changed": "^3.1.0",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-cssnano": "^2.1.2",
|
||||
"gulp-htmlmin": "^3.0.0",
|
||||
@@ -58,46 +65,38 @@
|
||||
"gulp-ignore": "^2.0.2",
|
||||
"gulp-modernizr": "1.0.0-alpha",
|
||||
"gulp-plumber": "^1.1.0",
|
||||
"gulp-postcss": "^6.2.0",
|
||||
"gulp-remove-empty-lines": "0.0.8",
|
||||
"gulp-replace": "^0.5.4",
|
||||
"gulp-rev": "^7.1.2",
|
||||
"gulp-postcss": "^7.0.0",
|
||||
"gulp-remove-empty-lines": "0.1.0",
|
||||
"gulp-replace": "^0.6.1",
|
||||
"gulp-rev": "^8.0.0",
|
||||
"gulp-rev-replace": "^0.4.3",
|
||||
"gulp-sass": "^3.1.0",
|
||||
"gulp-sourcemaps": "^2.4.0",
|
||||
"gulp-stylelint": "^3.7.0",
|
||||
"gulp-svgmin": "^1.2.3",
|
||||
"gulp-uglify": "^2.0.0",
|
||||
"gulp-sourcemaps": "^2.6.0",
|
||||
"gulp-stylelint": "^5.0.0",
|
||||
"gulp-svgmin": "^1.2.4",
|
||||
"gulp-uglify": "^3.0.0",
|
||||
"gulp-util": "^3.0.8",
|
||||
"js-cookie": "^2.1.3",
|
||||
"karma": "^1.3.0",
|
||||
"karma-chrome-launcher": "^2.0.0",
|
||||
"karma-coverage": "^1.1.1",
|
||||
"karma-mocha": "^1.3.0",
|
||||
"karma-notify-reporter": "^1.0.1",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-spec-reporter": "0.0.26",
|
||||
"karma-webpack": "^2.0.1",
|
||||
"lunr": "^0.7.2",
|
||||
"material-design-color": "^2.3.2",
|
||||
"material-shadows": "^3.0.1",
|
||||
"mocha": "^3.2.0",
|
||||
"modularscale-sass": "^2.1.1",
|
||||
"node-notifier": "^4.6.1",
|
||||
"selenium-standalone": "^5.9.1",
|
||||
"stylelint": "^7.7.1",
|
||||
"stylelint-config-standard": "^15.0.1",
|
||||
"stylelint-order": "^0.2.2",
|
||||
"stylelint-scss": "^1.4.1",
|
||||
"js-cookie": "^2.1.4",
|
||||
"lunr": "^2.1.2",
|
||||
"lunr-languages": "^1.0.0",
|
||||
"material-design-color": "2.3.2",
|
||||
"material-shadows": "3.0.1",
|
||||
"modularscale-sass": "3.0.3",
|
||||
"node-notifier": "^5.1.2",
|
||||
"postcss-pseudo-classes": "^0.2.0",
|
||||
"stylelint": "^8.0.0",
|
||||
"stylelint-config-standard": "^17.0.0",
|
||||
"stylelint-order": "^0.7.0",
|
||||
"stylelint-scss": "^2.0.0",
|
||||
"through2": "^2.0.3",
|
||||
"vinyl-paths": "^2.1.0",
|
||||
"webpack": "^1.14.0",
|
||||
"webpack-stream": "^3.2.0",
|
||||
"whatwg-fetch": "^2.0.1",
|
||||
"yargs": "^6.6.0"
|
||||
"webpack": "^3.4.1",
|
||||
"webpack-stream": "^4.0.0",
|
||||
"whatwg-fetch": "^2.0.3",
|
||||
"yargs": "^9.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 4.5.0"
|
||||
"node": ">= 5.0.0"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user