mirror of
https://github.com/snachodog/just-the-docs.git
synced 2025-09-16 14:23:31 -06:00
Compare commits
610 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
aaf5a68154 | ||
|
e64d97c4c8 | ||
|
3723875b93 | ||
|
7a4865a469 | ||
|
e0231653a8 | ||
|
fe31bf4cb9 | ||
|
a9bced2f26 | ||
|
7daf042a03 | ||
|
d107faaff4 | ||
|
eabae95d5b | ||
|
a1ca235757 | ||
|
d2e34cb54d | ||
|
238b4eae42 | ||
|
cdf5510d65 | ||
|
6a6cc20620 | ||
|
5e5e2438d2 | ||
|
786678a6a2 | ||
|
4d95f9937a | ||
|
7404c6f6e0 | ||
|
f636d5abfd | ||
|
27123d43ad | ||
|
a95e78f80d | ||
|
09896921e4 | ||
|
7b3c5169c0 | ||
|
7451cb5bdf | ||
|
39a5854144 | ||
|
7defb3164b | ||
|
5dd80bf749 | ||
|
1a22f052e9 | ||
|
117195fb1c | ||
|
ac5c99c77c | ||
|
765954233a | ||
|
19dbd776c1 | ||
|
38a34af2c0 | ||
|
cc9bead2e9 | ||
|
9a0b518f0e | ||
|
67d7465dbe | ||
|
16fe752dbc | ||
|
1999256809 | ||
|
6a55d05f30 | ||
|
5f59793766 | ||
|
56a2dc560a | ||
|
1289f6866f | ||
|
6a2c602328 | ||
|
51e1c29021 | ||
|
b20acf0edb | ||
|
fdf48d2fd3 | ||
|
f8e93980b4 | ||
|
a9d9354242 | ||
|
00cb3ba94b | ||
|
0484b45bfb | ||
|
27ae8d3e46 | ||
|
a812b37fcd | ||
|
f312da69d6 | ||
|
dd1e80ae1c | ||
|
86dbc2d4d7 | ||
|
c7c99992f9 | ||
|
8894630659 | ||
|
4a7fbbca92 | ||
|
b2bbdb7040 | ||
|
cf72c436d9 | ||
|
6cdd4f76b5 | ||
|
c13a5d2cdf | ||
|
5f91e326c7 | ||
|
975aec0791 | ||
|
3ce3dc74e0 | ||
|
c7bdfe5456 | ||
|
81d7e13277 | ||
|
3de6c589aa | ||
|
3335b9791d | ||
|
73a7e7cb33 | ||
|
d423c96d7a | ||
|
eeb89e56f0 | ||
|
1de6260d57 | ||
|
70e55f1d7b | ||
|
7a01ef1a59 | ||
|
5e7a481258 | ||
|
a789198b20 | ||
|
ee178d7bdf | ||
|
0df627058b | ||
|
49d004f271 | ||
|
c296f914af | ||
|
c1b944bc3a | ||
|
f84e524400 | ||
|
52b43417b4 | ||
|
2691ff8a25 | ||
|
7b29f62b49 | ||
|
91c4b7e3d1 | ||
|
dd4d489f29 | ||
|
ed20aed824 | ||
|
c4bae1efb8 | ||
|
56448e86f0 | ||
|
ad490360ba | ||
|
2495d3e6bb | ||
|
4469f45cbd | ||
|
b909e083fe | ||
|
4d6cb767a9 | ||
|
89b5f4987b | ||
|
3d1f926a68 | ||
|
3ba32c5cba | ||
|
5471214cda | ||
|
9e553b3486 | ||
|
551398f92f | ||
|
8e81e21470 | ||
|
eb121804af | ||
|
7cabda2983 | ||
|
5c213c2d77 | ||
|
0bfa011b47 | ||
|
0279757ff4 | ||
|
91449f1aee | ||
|
0b44f5ba7f | ||
|
c1c44e88cf | ||
|
ce3f34bbc7 | ||
|
56bda83528 | ||
|
b6d725d42e | ||
|
f4979fa6e9 | ||
|
5921e345a5 | ||
|
fff8fef18a | ||
|
8f972e59fa | ||
|
197d18d8b4 | ||
|
253a65c04d | ||
|
12ea042bf2 | ||
|
e26bdd366b | ||
|
002387bc65 | ||
|
b050b13d01 | ||
|
c4d246f83d | ||
|
059eaee8ed | ||
|
1007fd5192 | ||
|
9bccf07faa | ||
|
b799ea8eaf | ||
|
7c3936a55d | ||
|
9996d66940 | ||
|
845cd763f3 | ||
|
cf5aa7334f | ||
|
548ddb3381 | ||
|
9f8b88b0d8 | ||
|
1ca8ac0c4d | ||
|
fb0377bae2 | ||
|
38e7566732 | ||
|
7267b0513e | ||
|
22ed2394b7 | ||
|
c498a5690a | ||
|
b09fd44d70 | ||
|
29b5d14789 | ||
|
bf6f5028af | ||
|
c278005d44 | ||
|
a1bac2d5f0 | ||
|
7a98e51adb | ||
|
ee2e324567 | ||
|
063acaca15 | ||
|
5a0bbcda2f | ||
|
945cb866f4 | ||
|
53edd7868d | ||
|
223feac30b | ||
|
8f64392424 | ||
|
6b9cc5afdf | ||
|
7c124a210a | ||
|
e269960fa8 | ||
|
6d9d41359c | ||
|
e72181e09f | ||
|
e701ce140e | ||
|
c3164b0102 | ||
|
55aa714b26 | ||
|
b4b951fe5d | ||
|
48f729541e | ||
|
33a7b2ac28 | ||
|
f1fd81dd01 | ||
|
2e48a7e6b1 | ||
|
93857587dd | ||
|
ce820828dc | ||
|
58ca9394e5 | ||
|
13a1ac2a42 | ||
|
42c81a9261 | ||
|
a7ebb450d2 | ||
|
6061dd27e1 | ||
|
e91df1e4bf | ||
|
dbe157461b | ||
|
7c82b57aa3 | ||
|
4c2d50965c | ||
|
3a77f95280 | ||
|
b99642697f | ||
|
9107f2e81e | ||
|
8a6d26ac53 | ||
|
855427186b | ||
|
4f8a3e75b2 | ||
|
b3e3eaf9dc | ||
|
1b4aef358c | ||
|
1043a34104 | ||
|
7cda88dfa3 | ||
|
e484ad03dc | ||
|
e88f7f325f | ||
|
d9594fb7d5 | ||
|
7e646caa75 | ||
|
457dce3651 | ||
|
03e1db9506 | ||
|
8333eceb0d | ||
|
9d720eb092 | ||
|
bd2af37865 | ||
|
3f89145543 | ||
|
91a894c0d4 | ||
|
e03483d8ed | ||
|
fb5161ff65 | ||
|
9454cdce68 | ||
|
84179b0a33 | ||
|
c3344441aa | ||
|
b95a717662 | ||
|
47d9c92c3a | ||
|
4bdec0bb3a | ||
|
adbc25dec5 | ||
|
4fbc960548 | ||
|
977349ceb3 | ||
|
1d7b9bf35d | ||
|
c0807be052 | ||
|
494716d8fc | ||
|
6934b63860 | ||
|
011f783fc7 | ||
|
4d790e877b | ||
|
12de167384 | ||
|
2cc1a26a0d | ||
|
ffa4ec1994 | ||
|
daa86968bb | ||
|
d364a8152e | ||
|
e2f1546c61 | ||
|
1d15ea3b84 | ||
|
d3c73eb525 | ||
|
1bef041a01 | ||
|
672c284b6f | ||
|
528141d30c | ||
|
64c909aeb3 | ||
|
b00867a831 | ||
|
a12f53b1f1 | ||
|
3ab276ba1e | ||
|
6a380039a0 | ||
|
3c14eeef2e | ||
|
9e725fc746 | ||
|
b2581c19a6 | ||
|
0a7be65c32 | ||
|
c2ec3d89c2 | ||
|
f6b22804bc | ||
|
a6f0452115 | ||
|
146ab184d8 | ||
|
2049ebc394 | ||
|
cc2110d743 | ||
|
5d4de413c0 | ||
|
ba472b9aef | ||
|
7422c87605 | ||
|
38e3ed6881 | ||
|
2e23f7b7ed | ||
|
009a0f9c5a | ||
|
6907f06977 | ||
|
3ca57e3b0d | ||
|
764dbb35a9 | ||
|
7a3c37052f | ||
|
2bfe85658b | ||
|
0ff0a4bbab | ||
|
ff3771968b | ||
|
6287d8a6da | ||
|
26fad7dd0f | ||
|
c980fd4a64 | ||
|
312f1bceac | ||
|
d083aeb3fd | ||
|
c68a19b906 | ||
|
5fd9c3b32c | ||
|
1ecc3d08e0 | ||
|
70b34f01f7 | ||
|
10388ed8b0 | ||
|
a45b328c7a | ||
|
2b4f399336 | ||
|
3a834d24ab | ||
|
6afa220a39 | ||
|
e892a261fb | ||
|
68b7c8a534 | ||
|
aac87fad27 | ||
|
260d98d825 | ||
|
4e0e3ab3d8 | ||
|
9fe92419da | ||
|
e513fd6fdb | ||
|
a14f32ceed | ||
|
e2150256f2 | ||
|
b0ed390a9f | ||
|
00d3b4fe5a | ||
|
45120c8742 | ||
|
2136b55a52 | ||
|
25de2c03a3 | ||
|
c589be462e | ||
|
4dfe5273f2 | ||
|
351a0b7ff4 | ||
|
e8ba44167c | ||
|
444512c06a | ||
|
ac91b2dd1c | ||
|
89fb42dc66 | ||
|
9fa3a0fc5f | ||
|
577b9c5862 | ||
|
0f3d0e8285 | ||
|
37e90d2676 | ||
|
655335d552 | ||
|
ee47119f31 | ||
|
4dedfe0b50 | ||
|
7e111fa8c2 | ||
|
1032a0aae3 | ||
|
3eb4ceb59a | ||
|
0519013521 | ||
|
aae3d0309f | ||
|
6f8ae3e97e | ||
|
7f354d47a3 | ||
|
f8331f1c26 | ||
|
25aa612617 | ||
|
2692e6714c | ||
|
bc4a91c61a | ||
|
fbf125d525 | ||
|
265e88ed7a | ||
|
501c007da1 | ||
|
79f30a22bc | ||
|
13298d20c0 | ||
|
7631aaa309 | ||
|
fac7af13c1 | ||
|
2aa9815064 | ||
|
978846f704 | ||
|
c2f78516b4 | ||
|
04ae951436 | ||
|
404059ab03 | ||
|
e842498637 | ||
|
7f5ebee9b8 | ||
|
cb7df09c8f | ||
|
8bc53f8f45 | ||
|
4ab61105b9 | ||
|
5a78a7d39b | ||
|
5665097fc2 | ||
|
9d4a0a56b7 | ||
|
9e52e712ae | ||
|
487a5a680a | ||
|
e7ff383397 | ||
|
4de9962c72 | ||
|
85af5b81c5 | ||
|
bd1f741d6d | ||
|
fdb93755d1 | ||
|
58aea7a29b | ||
|
bb1cd2aaac | ||
|
863d13fc8e | ||
|
37bbacbaa9 | ||
|
ce0da9e848 | ||
|
7d35ccb333 | ||
|
f67b4ca2a1 | ||
|
9f4968fcb4 | ||
|
bdbbf56b36 | ||
|
1e468b4bff | ||
|
215655187f | ||
|
59d3981580 | ||
|
32afb2a983 | ||
|
80e05938c7 | ||
|
59f757a790 | ||
|
2e377e45ac | ||
|
5d1609b888 | ||
|
641fa6ac5c | ||
|
09ab1c3131 | ||
|
682dcf4ec1 | ||
|
405180c863 | ||
|
aa247408e4 | ||
|
39ee88299a | ||
|
516a660149 | ||
|
fd6c999920 | ||
|
b89ab93a88 | ||
|
76f8f064ac | ||
|
0513c1930a | ||
|
1f30d6bf78 | ||
|
916a9256b1 | ||
|
84e67c34b7 | ||
|
1b0a313c16 | ||
|
c587c0b217 | ||
|
e4246b35b0 | ||
|
68d5c56cf3 | ||
|
f76b891038 | ||
|
9260e59255 | ||
|
e0f7dea67f | ||
|
575b9237f9 | ||
|
d4da8e7e46 | ||
|
ada962d917 | ||
|
f518ff3caa | ||
|
020a50acff | ||
|
985bdc02ca | ||
|
000da77ba2 | ||
|
f774596f5e | ||
|
5cc5ae5edf | ||
|
1c654bad4b | ||
|
d59887cc2b | ||
|
fea9ae2b07 | ||
|
ddccec7bb7 | ||
|
cd8d173935 | ||
|
02763e69d9 | ||
|
d07589a9ee | ||
|
2abf8662b6 | ||
|
d0a9cd38dd | ||
|
322026633f | ||
|
a9842d2846 | ||
|
db32b66ce9 | ||
|
3726697fab | ||
|
793a7247db | ||
|
cdfad69c5b | ||
|
55f80acb4f | ||
|
ca367e09d5 | ||
|
591a3c2351 | ||
|
cfbdee1168 | ||
|
cff0254d93 | ||
|
e4759daecf | ||
|
a7be52df3b | ||
|
4fc59a578f | ||
|
bb8c387899 | ||
|
74da664c0a | ||
|
6ac67d2228 | ||
|
7883789d94 | ||
|
101dd2efdc | ||
|
6be8a2e38a | ||
|
54c921cbcd | ||
|
169fa727a3 | ||
|
c11814bb7e | ||
|
264c99b311 | ||
|
5be5d629ff | ||
|
83ec553348 | ||
|
98b22be66b | ||
|
f1475cf012 | ||
|
d2d3609dea | ||
|
eb98fe0eeb | ||
|
9fca3861ce | ||
|
d4adef025e | ||
|
5258835588 | ||
|
ff40b7881a | ||
|
86061c80a4 | ||
|
2c4304c125 | ||
|
cd192aa4e2 | ||
|
19d6bcf5d3 | ||
|
248328670b | ||
|
721f322e41 | ||
|
e358b8d914 | ||
|
f91a33e43f | ||
|
c54be05b8a | ||
|
31b99a2a9b | ||
|
96fffcc59d | ||
|
584506785b | ||
|
12985168cf | ||
|
9dd1cde227 | ||
|
0a26b95749 | ||
|
8ff2e57796 | ||
|
35ddf7c694 | ||
|
923f021381 | ||
|
46aa1134a8 | ||
|
9edd8d5c50 | ||
|
5dd6324f61 | ||
|
a086954c51 | ||
|
b32c00a701 | ||
|
6b27beaf58 | ||
|
9faba6cd91 | ||
|
7dec48433b | ||
|
b4b74f7e1d | ||
|
d1c3e08337 | ||
|
d476ce5748 | ||
|
93f93f48a7 | ||
|
a855af3db3 | ||
|
8a9a8a345d | ||
|
029ba12559 | ||
|
d13ac2fe5b | ||
|
61053f677b | ||
|
a4b862aa4b | ||
|
305bed7cd5 | ||
|
654da0a6ef | ||
|
a8f8f8445a | ||
|
49ef043ebb | ||
|
b5cd532435 | ||
|
b73300595b | ||
|
fdaf5a276b | ||
|
bf31b8b9a0 | ||
|
74845b4a0e | ||
|
7df7572d91 | ||
|
b41f28dade | ||
|
5a96a218b3 | ||
|
50d727871e | ||
|
1bdd849d86 | ||
|
5277d14547 | ||
|
2101701aad | ||
|
845261205f | ||
|
c8bbcc2d9b | ||
|
e8d60818ed | ||
|
d24b06ad73 | ||
|
d90482d719 | ||
|
72b6de8862 | ||
|
1f492b68f3 | ||
|
fb0faee220 | ||
|
d3d17c0460 | ||
|
972da61cf9 | ||
|
ab9fd6453b | ||
|
2ef11e3701 | ||
|
3382a954d2 | ||
|
848b090d06 | ||
|
8700916a93 | ||
|
13d01a6561 | ||
|
2efc206d02 | ||
|
20222fe0a7 | ||
|
c4d5f4f6b0 | ||
|
12536de881 | ||
|
c895d5ecd9 | ||
|
b8602eb05d | ||
|
8715224655 | ||
|
87a59ef8ef | ||
|
cba7303660 | ||
|
5def3aee43 | ||
|
53a5feb11b | ||
|
17c140da35 | ||
|
e29a540a59 | ||
|
45af827e0a | ||
|
040bef90bb | ||
|
160cc42e4e | ||
|
e181626b66 | ||
|
88759c1cf7 | ||
|
d7050b3f04 | ||
|
597c534279 | ||
|
3f0b7254a2 | ||
|
868bb0e3ac | ||
|
1e73c69700 | ||
|
5ec0044b72 | ||
|
15f9f52a77 | ||
|
f2aa3c9a4d | ||
|
397e4a6933 | ||
|
171ff71a2b | ||
|
e4a29e54ec | ||
|
eadd46c6e4 | ||
|
d3c389ccc5 | ||
|
16c18c1020 | ||
|
b31355691f | ||
|
3eaa0155d1 | ||
|
6c4d47cae4 | ||
|
8102af2cd4 | ||
|
8c77c24959 | ||
|
f2ac995815 | ||
|
1cf7d5aba9 | ||
|
ed618caf70 | ||
|
51f15965f2 | ||
|
16628f2b8e | ||
|
0421ab7f82 | ||
|
b7a5458375 | ||
|
da9276121a | ||
|
18f3a41600 | ||
|
e216623ed3 | ||
|
c7466e88a8 | ||
|
7cfc63e138 | ||
|
e40ba9c6c5 | ||
|
bf031eb68b | ||
|
d00aadeee7 | ||
|
0a81a86447 | ||
|
f5e6573e16 | ||
|
672de29f2e | ||
|
e2e01effa6 | ||
|
b13b44f18b | ||
|
d357532b4e | ||
|
157e3ff945 | ||
|
19e35329d2 | ||
|
757742e79c | ||
|
538591dddb | ||
|
a3d8c14609 | ||
|
f1c306c814 | ||
|
74681aeb21 | ||
|
c907e79251 | ||
|
82b3f15443 | ||
|
2ef0029068 | ||
|
ff30552748 | ||
|
7f5b1f14f1 | ||
|
38689d07b1 | ||
|
0b4ed96f58 | ||
|
b5c13965a7 | ||
|
3576cb4a89 | ||
|
a6f2ed8c6c | ||
|
8310df593c | ||
|
1d1564e5c0 | ||
|
9d24b14ba1 | ||
|
ab7e53b63f | ||
|
abb7f55794 | ||
|
c057771cca | ||
|
804cad6c4d | ||
|
d66ebdec4b | ||
|
5d87f3a9df | ||
|
0c9678c2e6 | ||
|
09944de128 | ||
|
73047a078f | ||
|
cf64965554 | ||
|
4bb8d7612d | ||
|
078696415e | ||
|
301a4ab644 | ||
|
fd91140923 | ||
|
33d1e0f8d7 | ||
|
5f50531cce | ||
|
f978770956 | ||
|
367db86fff | ||
|
94c1dc3736 | ||
|
06e61cb2bb | ||
|
bc1cbc1ae4 | ||
|
887a18daa0 | ||
|
7c93bcc48f | ||
|
936a1e63be | ||
|
cc0b57727d | ||
|
52bcb26ddd | ||
|
e13a62b7b5 | ||
|
a5842c0d7b | ||
|
6bd43a1332 | ||
|
8e6e3dddd3 | ||
|
bf86c33fe1 | ||
|
8a3458bafd | ||
|
0ebbe4bb4e | ||
|
0a8138a6e0 | ||
|
ec420a385b | ||
|
721ca36d85 | ||
|
183778067b | ||
|
ee8b901bcb |
14
.devcontainer/Dockerfile
Normal file
14
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# [Choice] Debian OS version (use bullseye on local arm64/Apple Silicon): bullseye, buster
|
||||||
|
ARG VARIANT=bullseye
|
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/jekyll:0-${VARIANT}
|
||||||
|
|
||||||
|
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
|
||||||
|
ARG NODE_VERSION="none"
|
||||||
|
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
|
||||||
|
|
||||||
|
# [Optional] Uncomment this section to install additional OS packages.
|
||||||
|
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||||
|
|
||||||
|
# [Optional] Uncomment this line to install global node packages.
|
||||||
|
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
26
.devcontainer/base.Dockerfile
Normal file
26
.devcontainer/base.Dockerfile
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# [Choice] Debian OS version (use 2.7-bullseye on local arm64/Apple Silicon): 2.7-bullseye, 2.7-buster
|
||||||
|
ARG VARIANT=2.7-bullseye
|
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT}
|
||||||
|
COPY library-scripts/meta.env /usr/local/etc/vscode-dev-containers
|
||||||
|
|
||||||
|
# ENV Variables required by Jekyll
|
||||||
|
ENV LANG=en_US.UTF-8 \
|
||||||
|
LANGUAGE=en_US:en \
|
||||||
|
TZ=Etc/UTC \
|
||||||
|
LC_ALL=en_US.UTF-8 \
|
||||||
|
LANG=en_US.UTF-8 \
|
||||||
|
LANGUAGE=en_US
|
||||||
|
|
||||||
|
# Install bundler, latest jekyll, and github-pages for older jekyll
|
||||||
|
RUN gem install bundler jekyll github-pages
|
||||||
|
|
||||||
|
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
|
||||||
|
ARG NODE_VERSION="none"
|
||||||
|
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
|
||||||
|
|
||||||
|
# [Optional] Uncomment this section to install additional OS packages.
|
||||||
|
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||||
|
|
||||||
|
# [Optional] Uncomment this line to install global node packages.
|
||||||
|
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
35
.devcontainer/devcontainer.json
Normal file
35
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||||
|
// https://github.com/microsoft/vscode-dev-containers/tree/v0.224.2/containers/jekyll
|
||||||
|
{
|
||||||
|
"name": "Just the docs",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
"args": {
|
||||||
|
// Update 'VARIANT' to pick a Debian OS version: bullseye, buster
|
||||||
|
// Use bullseye when on local arm64/Apple Silicon.
|
||||||
|
"VARIANT": "bullseye",
|
||||||
|
// Enable Node.js: pick the latest LTS version
|
||||||
|
"NODE_VERSION": "lts/*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Set *default* container specific settings.json values on container create.
|
||||||
|
"settings": {},
|
||||||
|
|
||||||
|
// Add the IDs of extensions you want installed when the container is created.
|
||||||
|
"extensions": ["GitHub.vscode-pull-request-github"],
|
||||||
|
|
||||||
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||||
|
"forwardPorts": [
|
||||||
|
// Jekyll server
|
||||||
|
4000,
|
||||||
|
// Live reload server
|
||||||
|
35729
|
||||||
|
],
|
||||||
|
|
||||||
|
// Use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
"postCreateCommand": "sh .devcontainer/post-create.sh",
|
||||||
|
|
||||||
|
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||||
|
"remoteUser": "vscode"
|
||||||
|
}
|
12
.devcontainer/post-create.sh
Normal file
12
.devcontainer/post-create.sh
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Install the version of Bundler.
|
||||||
|
if [ -f Gemfile.lock ] && grep "BUNDLED WITH" Gemfile.lock > /dev/null; then
|
||||||
|
cat Gemfile.lock | tail -n 2 | grep -C2 "BUNDLED WITH" | tail -n 1 | xargs gem install bundler -v
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there's a Gemfile, then run `bundle install`
|
||||||
|
# It's assumed that the Gemfile will install Jekyll too
|
||||||
|
if [ -f Gemfile ]; then
|
||||||
|
bundle install
|
||||||
|
fi
|
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
contact_links:
|
||||||
- name: Ask a question
|
- name: Ask a question
|
||||||
url: https://github.com/pmarsceill/just-the-docs/discussions
|
url: https://github.com/just-the-docs/just-the-docs/discussions
|
||||||
about: Ask questions and discuss with other community members
|
about: Ask questions and discuss with other community members
|
||||||
|
14
.github/dependabot.yml
vendored
Normal file
14
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: npm
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: daily
|
||||||
|
time: "10:00"
|
||||||
|
open-pull-requests-limit: 10
|
||||||
|
- package-ecosystem: bundler
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: daily
|
||||||
|
time: "10:00"
|
||||||
|
open-pull-requests-limit: 10
|
45
.github/workflows/ci-master.yml
vendored
45
.github/workflows/ci-master.yml
vendored
@@ -1,45 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
name: Master branch CI
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
|
|
||||||
jekyll-latest:
|
|
||||||
name: Build Jekyll site (latest)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
|
|
||||||
- name: Build the site in the jekyll/builder container
|
|
||||||
run: |
|
|
||||||
docker run --rm \
|
|
||||||
--volume="${{ github.workspace }}:/srv/jekyll" \
|
|
||||||
jekyll/builder:latest /bin/bash -c "gem install bundler && chmod -R 777 /srv/jekyll && jekyll build && bundle exec just-the-docs rake search:init"
|
|
||||||
jekyll-3-8-5:
|
|
||||||
name: Build Jekyll site (v3.8.5)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
|
|
||||||
- name: Build the site in the jekyll/builder container
|
|
||||||
run: |
|
|
||||||
docker run --rm \
|
|
||||||
--volume="${{ github.workspace }}:/srv/jekyll" \
|
|
||||||
jekyll/builder:3.8.5 /bin/bash -c "gem install bundler && chmod -R 777 /srv/jekyll && jekyll build && bundle exec just-the-docs rake search:init"
|
|
||||||
assets:
|
|
||||||
name: Format and test CSS and JS
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Use Node.js 12.x
|
|
||||||
uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: '12.x'
|
|
||||||
- run: npm install
|
|
||||||
- run: npm test
|
|
107
.github/workflows/ci.yml
vendored
107
.github/workflows/ci.yml
vendored
@@ -1,72 +1,67 @@
|
|||||||
on: [pull_request]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
jekyll-build:
|
||||||
|
name: Build (jekyll gem)
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
jekyll-version: [3.9, 4.3]
|
||||||
|
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
||||||
|
ruby-version: [2.7, 3.1]
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Setup Ruby ${{ matrix.ruby-version }}
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: ${{ matrix.ruby-version }}
|
||||||
|
bundler-cache: false
|
||||||
|
- name: Bundle Install
|
||||||
|
run: bundle install
|
||||||
|
- name: Install Jekyll ${{ matrix.jekyll-version }}
|
||||||
|
run: gem install jekyll -v ${{ matrix.jekyll-version }}
|
||||||
|
- name: Init Search
|
||||||
|
run: bundle exec rake search:init
|
||||||
|
- name: Build Site
|
||||||
|
run: bundle exec jekyll build
|
||||||
|
|
||||||
jekyll-latest:
|
github-pages-build:
|
||||||
name: Build Jekyll site (latest)
|
name: Build (github-pages gem)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/checkout@v2
|
- name: Setup Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
- name: Build the site in the jekyll/builder container
|
with:
|
||||||
run: |
|
ruby-version: '3.1'
|
||||||
docker run --rm \
|
bundler-cache: false
|
||||||
--volume="${{ github.workspace }}:/srv/jekyll" \
|
- name: Bundle Install
|
||||||
jekyll/builder:latest /bin/bash -c "gem install bundler && chmod -R 777 /srv/jekyll && bundle install && jekyll build && bundle exec rake search:init"
|
run: BUNDLE_GEMFILE=fixtures/Gemfile-github-pages bundle install
|
||||||
|
- name: Build Site
|
||||||
jekyll-3-8-5:
|
run: BUNDLE_GEMFILE=fixtures/Gemfile-github-pages bundle exec jekyll build
|
||||||
name: Build Jekyll site (v3.8.5)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Build the site in the jekyll/builder container
|
|
||||||
run: |
|
|
||||||
docker run --rm \
|
|
||||||
--volume="${{ github.workspace }}:/srv/jekyll" \
|
|
||||||
jekyll/builder:3.8.5 /bin/bash -c "gem install bundler && chmod -R 777 /srv/jekyll && bundle install && jekyll build && bundle exec rake search:init"
|
|
||||||
|
|
||||||
assets:
|
assets:
|
||||||
name: Format and test CSS and JS
|
name: Test CSS and JS
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [18.x]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
# Using this so the this instead of GITHUB_TOKEN so that this workflow can trigger another
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
with:
|
|
||||||
token: ${{ secrets.PAT }}
|
|
||||||
- name: Use Node.js 12.x
|
|
||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12.x'
|
node-version: ${{ matrix.node-version }}
|
||||||
- name: Extract branch name
|
|
||||||
shell: bash
|
|
||||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_HEAD_REF#refs/heads/})"
|
|
||||||
id: extract_branch
|
|
||||||
|
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run format
|
|
||||||
- name: Add changed files
|
|
||||||
run: |
|
|
||||||
echo "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY.git"
|
|
||||||
git config --global user.email $GITHUB_ACTOR@users.noreply.github.com
|
|
||||||
git config --global user.name $GITHUB_ACTOR
|
|
||||||
echo "extracted branch is ${{ steps.extract_branch.outputs.branch }}"
|
|
||||||
git checkout -b ${{ steps.extract_branch.outputs.branch }}
|
|
||||||
git status
|
|
||||||
git add .
|
|
||||||
- name: Are there any updates?
|
|
||||||
shell: bash
|
|
||||||
run: echo "##[set-output name=status]$(git status -s)"
|
|
||||||
id: is_dirty
|
|
||||||
- name: Commit files
|
|
||||||
if: steps.is_dirty.outputs.status
|
|
||||||
run: |
|
|
||||||
echo ${{ steps.is_dirty.outputs.status }}
|
|
||||||
git commit -m "🎨 Prettier"
|
|
||||||
git push --force --set-upstream "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" ${{ steps.extract_branch.outputs.branch }}
|
|
||||||
- run: npm test
|
- run: npm test
|
||||||
|
62
.github/workflows/deploy.yml
vendored
Normal file
62
.github/workflows/deploy.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
# This workflow uses actions that are not certified by GitHub.
|
||||||
|
# They are provided by a third-party and are governed by
|
||||||
|
# separate terms of service, privacy policy, and support
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
|
||||||
|
name: Deploy Jekyll site to Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["main"]
|
||||||
|
|
||||||
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow one concurrent deployment
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Build job
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Setup Ruby
|
||||||
|
uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: '3.1' # Not needed with a .ruby-version file
|
||||||
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||||
|
cache-version: 0 # Increment this number if you need to re-download cached gems
|
||||||
|
- name: Setup Pages
|
||||||
|
id: pages
|
||||||
|
uses: actions/configure-pages@v2
|
||||||
|
- name: Build with Jekyll
|
||||||
|
# Outputs to the './_site' directory by default
|
||||||
|
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
|
||||||
|
env:
|
||||||
|
JEKYLL_ENV: production
|
||||||
|
- name: Upload artifact
|
||||||
|
# Automatically uploads an artifact from the './_site' directory by default
|
||||||
|
uses: actions/upload-pages-artifact@v1
|
||||||
|
|
||||||
|
# Deployment job
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v1
|
40
.github/workflows/publish-gem.yml
vendored
Normal file
40
.github/workflows/publish-gem.yml
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
name: Publish Ruby Gem
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Publish
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Set up Ruby 3.1
|
||||||
|
uses: actions/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: 3.1
|
||||||
|
|
||||||
|
- name: Publish to GPR
|
||||||
|
run: |
|
||||||
|
mkdir -p $HOME/.gem
|
||||||
|
touch $HOME/.gem/credentials
|
||||||
|
chmod 0600 $HOME/.gem/credentials
|
||||||
|
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
||||||
|
gem build *.gemspec
|
||||||
|
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
||||||
|
env:
|
||||||
|
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
|
||||||
|
OWNER: ${{ github.repository_owner }}
|
||||||
|
|
||||||
|
# Disabled as this does not handle 2FA
|
||||||
|
# - name: Publish to RubyGems
|
||||||
|
# run: |
|
||||||
|
# mkdir -p $HOME/.gem
|
||||||
|
# touch $HOME/.gem/credentials
|
||||||
|
# chmod 0600 $HOME/.gem/credentials
|
||||||
|
# printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
||||||
|
# gem build *.gemspec
|
||||||
|
# gem push *.gem
|
||||||
|
# env:
|
||||||
|
# GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
39
.github/workflows/publish.yml
vendored
39
.github/workflows/publish.yml
vendored
@@ -1,39 +0,0 @@
|
|||||||
name: Publish Gem
|
|
||||||
|
|
||||||
on: [release]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build + Publish
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: Set up Ruby 2.6
|
|
||||||
uses: actions/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
version: 2.6.x
|
|
||||||
|
|
||||||
- name: Publish to GPR
|
|
||||||
run: |
|
|
||||||
mkdir -p $HOME/.gem
|
|
||||||
touch $HOME/.gem/credentials
|
|
||||||
chmod 0600 $HOME/.gem/credentials
|
|
||||||
printf -- "---\n:github: Bearer ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
|
||||||
gem build just-the-docs.gemspec
|
|
||||||
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
|
||||||
env:
|
|
||||||
GEM_HOST_API_KEY: ${{secrets.GPR_AUTH_TOKEN}}
|
|
||||||
OWNER: pmarsceill
|
|
||||||
|
|
||||||
- name: Publish to RubyGems
|
|
||||||
run: |
|
|
||||||
mkdir -p $HOME/.gem
|
|
||||||
touch $HOME/.gem/credentials
|
|
||||||
chmod 0600 $HOME/.gem/credentials
|
|
||||||
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
|
||||||
gem build just-the-docs.gemspec
|
|
||||||
gem push *.gem
|
|
||||||
env:
|
|
||||||
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
|
||||||
|
|
43
.github/workflows/update_jekyll-anchor-heading.yml
vendored
Normal file
43
.github/workflows/update_jekyll-anchor-heading.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
name: Update Vendor plugin - jekyll-anchor-headings
|
||||||
|
on:
|
||||||
|
# schedule:
|
||||||
|
# # once per week
|
||||||
|
# - cron: "0 15 * * 0"
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
update-deps:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Get latest release information
|
||||||
|
id: latest-release
|
||||||
|
uses: pozetroninc/github-action-get-latest-release@master
|
||||||
|
with:
|
||||||
|
owner: allejo
|
||||||
|
repo: jekyll-anchor-headings
|
||||||
|
excludes: prerelease, draft
|
||||||
|
|
||||||
|
- name: Update jekyll-anchor-headings
|
||||||
|
id: update
|
||||||
|
uses: suisei-cn/actions-download-file@v1.3.0
|
||||||
|
with:
|
||||||
|
url: "https://github.com/allejo/jekyll-anchor-headings/releases/download/${{ steps.latest-release.outputs.release }}/anchor_headings.html"
|
||||||
|
target: _includes/vendor/
|
||||||
|
|
||||||
|
- name: Create PR
|
||||||
|
uses: peter-evans/create-pull-request@v4
|
||||||
|
with:
|
||||||
|
commit-message: "chore[dependency]: Update `jekyll-anchor-headings` to `${{ steps.latest-release.outputs.release }}`"
|
||||||
|
title: "auto: Update `jekyll-anchor-headings` to `${{ steps.latest-release.outputs.release }}`"
|
||||||
|
body: |
|
||||||
|
Update `jekyll-anchor-headings` to `${{ steps.latest-release.outputs.release }}`
|
||||||
|
This is an automated pull request.
|
||||||
|
branch: update/vendor/jekyll-anchor-headings
|
||||||
|
delete-branch: true
|
||||||
|
labels: |
|
||||||
|
kind/update
|
||||||
|
area/dependency
|
||||||
|
add-paths: |
|
||||||
|
_includes/vendor/anchor_headings.html
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -6,3 +6,4 @@
|
|||||||
_site
|
_site
|
||||||
Gemfile.lock
|
Gemfile.lock
|
||||||
node_modules
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
package.json
|
|
||||||
package-lock.json
|
package-lock.json
|
||||||
_site
|
_site
|
||||||
assets/css/just-the-docs-default.scss
|
assets/css/just-the-docs-default.scss
|
||||||
@@ -6,4 +5,7 @@ assets/css/just-the-docs-light.scss
|
|||||||
assets/css/just-the-docs-dark.scss
|
assets/css/just-the-docs-dark.scss
|
||||||
assets/js/vendor/lunr.min.js
|
assets/js/vendor/lunr.min.js
|
||||||
assets/js/search-data.json
|
assets/js/search-data.json
|
||||||
|
assets/js/zzzz-search-data.json
|
||||||
assets/js/just-the-docs.js
|
assets/js/just-the-docs.js
|
||||||
|
*.md
|
||||||
|
_includes/mermaid_config.js
|
||||||
|
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"endOfLine": "lf",
|
|
||||||
"semi": false,
|
|
||||||
"singleQuote": false,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"trailingComma": "es5"
|
|
||||||
}
|
|
||||||
|
|
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"ignoreFiles": [
|
|
||||||
"assets/css/just-the-docs-default.scss",
|
|
||||||
"assets/css/just-the-docs-light.scss",
|
|
||||||
"assets/css/just-the-docs-dark.scss",
|
|
||||||
"_sass/vendor/**/*.scss"
|
|
||||||
],
|
|
||||||
"extends": ["stylelint-config-primer", "stylelint-config-prettier"],
|
|
||||||
"plugins": ["stylelint-prettier"],
|
|
||||||
"rules": {
|
|
||||||
"prettier/prettier": true
|
|
||||||
}
|
|
||||||
}
|
|
26
.vscode/tasks.json
vendored
Normal file
26
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Serve",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "bundle exec jekyll serve --livereload",
|
||||||
|
"group": {
|
||||||
|
"kind": "test",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"isBackground": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Build",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "bundle exec jekyll build",
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
4
404.html
4
404.html
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
layout: default
|
layout: default
|
||||||
title: Page not found
|
title: 404
|
||||||
permalink: /404
|
permalink: /404
|
||||||
nav_exclude: true
|
nav_exclude: true
|
||||||
search_exclude: true
|
search_exclude: true
|
||||||
@@ -8,4 +8,4 @@ search_exclude: true
|
|||||||
|
|
||||||
<h1>Page not found</h1>
|
<h1>Page not found</h1>
|
||||||
|
|
||||||
<p>The page you requested could not be found. Try using the navigation {% if site.search_enabled %}or search {% endif %}to find what you're looking for or go to this <a href="{{ site.url }}{{ site.baseurl }}">site's home page</a>.</p>
|
<p>The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this <a href="{{ '/' | relative_url }}">site's home page</a>.</p>
|
||||||
|
1435
CHANGELOG.md
Normal file
1435
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,45 +2,131 @@
|
|||||||
|
|
||||||
## Our Pledge
|
## 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.
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||||
|
identity and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
## Our Standards
|
## Our Standards
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment include:
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
* Demonstrating empathy and kindness toward other people
|
||||||
* Being respectful of differing viewpoints and experiences
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
* Gracefully accepting constructive criticism
|
* Giving and gracefully accepting constructive feedback
|
||||||
* Focusing on what is best for the community
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
* Showing empathy towards other community members
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the overall
|
||||||
|
community
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
* Public or private harassment
|
* Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
* Publishing others' private information, such as a physical or email address,
|
||||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
## Our Responsibilities
|
## Enforcement 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.
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
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.
|
Community leaders 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, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
## Scope
|
## 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.
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
## Enforcement
|
## Enforcement
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at patrick.marsceill@gmail.com. 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.
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
patrick.marsceill@gmail.com.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
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.
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series of
|
||||||
|
actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or permanent
|
||||||
|
ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||||
|
community.
|
||||||
|
|
||||||
## Attribution
|
## 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]
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.1, available at
|
||||||
|
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
Community Impact Guidelines were inspired by
|
||||||
[version]: http://contributor-covenant.org/version/1/4/
|
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||||
|
[https://www.contributor-covenant.org/translations][translations].
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||||
|
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||||
|
[FAQ]: https://www.contributor-covenant.org/faq
|
||||||
|
[translations]: https://www.contributor-covenant.org/translations
|
||||||
|
12
Dockerfile
Normal file
12
Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
FROM ruby:2.7
|
||||||
|
|
||||||
|
ENV LC_ALL C.UTF-8
|
||||||
|
ENV LANG en_US.UTF-8
|
||||||
|
ENV LANGUAGE en_US.UTF-8
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY Gemfile just-the-docs.gemspec ./
|
||||||
|
RUN gem install bundler && bundle install
|
||||||
|
|
||||||
|
EXPOSE 4000
|
4
Gemfile
4
Gemfile
@@ -1,2 +1,6 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
gemspec
|
gemspec
|
||||||
|
|
||||||
|
gem "jekyll-github-metadata", ">= 2.15"
|
||||||
|
|
||||||
|
gem "webrick", "~> 1.7"
|
||||||
|
421
MIGRATION.md
Normal file
421
MIGRATION.md
Normal file
@@ -0,0 +1,421 @@
|
|||||||
|
---
|
||||||
|
title: Migration and Upgrading
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
# Migrating and Upgrading
|
||||||
|
|
||||||
|
Summary
|
||||||
|
: A site that uses `just-the-docs` (as a theme or as a remote theme) automatically
|
||||||
|
switches to a new release, unless it is pinned to a previous version.
|
||||||
|
|
||||||
|
This migration guide draws attention to:
|
||||||
|
|
||||||
|
- changes that might break your site,
|
||||||
|
- features added in the latest release, and
|
||||||
|
- features that have become deprecated (and are likely to be removed in a future release).
|
||||||
|
|
||||||
|
This document contains instructions on how to migrate and upgrade Just the Docs sites from every minor or major version bump, starting from `v0.3.3` to `v0.4.0`.
|
||||||
|
|
||||||
|
<details open markdown="block">
|
||||||
|
<summary>
|
||||||
|
Table of contents
|
||||||
|
</summary>
|
||||||
|
{: .text-delta }
|
||||||
|
- TOC
|
||||||
|
{:toc}
|
||||||
|
</details>
|
||||||
|
|
||||||
|
{::options toc_levels="2..4" /}
|
||||||
|
|
||||||
|
{: .warning }
|
||||||
|
> If your configuration states `remote_theme: just-the-docs/just-the-docs`, your
|
||||||
|
> website is built using the current `main` branch of the theme, which may include
|
||||||
|
> changes made after the latest release; see the [CHANGELOG].
|
||||||
|
>
|
||||||
|
> If your configuration states `theme: just_the_docs` and your `Gemfile` specifies
|
||||||
|
> `gem "just-the-docs"`, your website is always built using the latest release.
|
||||||
|
|
||||||
|
{: .note }
|
||||||
|
> If you have cloned/forked and customised the theme repo,
|
||||||
|
> and pull the changes of a new release to your clone,
|
||||||
|
> you may need to resolve merge conflicts.
|
||||||
|
|
||||||
|
[CHANGELOG]: {{ site.baseurl }}{% link CHANGELOG.md %}
|
||||||
|
|
||||||
|
## v0.4.x - v0.5.0
|
||||||
|
|
||||||
|
### POTENTIALLY-BREAKING CHANGES in v0.5.0
|
||||||
|
|
||||||
|
There is one potentially-breaking change for users migrating from `v0.4.2` to `v0.5.0` concering `setup.scss`. To provide context:
|
||||||
|
|
||||||
|
1. `setup.scss` was introduced in `v0.4.0`
|
||||||
|
2. in `v0.4.0` and `v0.4.1`, `setup.scss` was imported *before* color scheme SCSS code
|
||||||
|
3. in `v0.4.2`, we adjusted the order to import `setup.scss` *after* color scheme SCSS code
|
||||||
|
4. in `v0.5.0`, we have reverted the previous change: `setup.scss` is now again imported *before* color scheme SCSS code
|
||||||
|
|
||||||
|
This does not affect most users. Users who did not migrate to `v0.4.2` or who do not have a custom `setup.scss` are guaranteed no breaking changes.
|
||||||
|
|
||||||
|
Explicit migration steps are only needed if:
|
||||||
|
|
||||||
|
1. a custom `setup.scss` has been defined,
|
||||||
|
2. **and** the `setup.scss` depends on variables or functions defined in color scheme SCSS code; this change was only possible on `v0.4.2`
|
||||||
|
|
||||||
|
For those users, we suggest moving those variables and functions to each relevant color scheme.
|
||||||
|
## v0.3.3 … v0.4.x
|
||||||
|
|
||||||
|
### REPOSITORY CHANGES
|
||||||
|
|
||||||
|
#### Just the Docs
|
||||||
|
|
||||||
|
The theme repo is now at <https://github.com/just-the-docs/just-the-docs>.
|
||||||
|
The name of its default branch is now `main`.
|
||||||
|
|
||||||
|
The theme docs website is now published at <https://just-the-docs.github.io/just-the-docs>.
|
||||||
|
|
||||||
|
GitHub provides access to previous versions of the theme repo.
|
||||||
|
You can browse [previous versions of the theme docs website] on the [Internet Archive].
|
||||||
|
|
||||||
|
[previous versions of the theme docs website]: https://web.archive.org/web/20220000000000*/https://just-the-docs.github.io/just-the-docs
|
||||||
|
[Internet Archive]: https://web.archive.org/
|
||||||
|
|
||||||
|
The [README] page on the theme repo repeats much of the information from the [home page],
|
||||||
|
formatted for browsing on GitHub.
|
||||||
|
It also explains how to install the theme as a Ruby Gem, without creating a new site.
|
||||||
|
|
||||||
|
[README]: https://github.com/just-the-docs/just-the-docs/blob/main/README.md
|
||||||
|
[home page]: https://just-the-docs.github.io/just-the-docs
|
||||||
|
|
||||||
|
#### Deploy previews
|
||||||
|
|
||||||
|
When a PR builds successfully, Netlify provides a preview of how the theme docs website will look if the PR is merged.
|
||||||
|
You can find links to the preview near the bottom of the Conversation tab of the PR.
|
||||||
|
|
||||||
|
#### Just the Docs Template
|
||||||
|
|
||||||
|
The template at <https://github.com/just-the-docs/just-the-docs-template>
|
||||||
|
creates a repo with the minimal source files for a Just the Docs website.
|
||||||
|
After configuring the relevant parameters, you can build and serve the website
|
||||||
|
both locally and on GitHub Pages – using either Jekyll 3 or Jekyll 4!
|
||||||
|
|
||||||
|
#### Just the Docs Tests
|
||||||
|
|
||||||
|
The tests website at <https://just-the-docs.github.io/just-the-docs-tests>
|
||||||
|
consists mainly of regression tests for bug fixes and new features.
|
||||||
|
|
||||||
|
The test source files at <https://github.com/just-the-docs/just-the-docs-tests>
|
||||||
|
illustrate the use of many Markdown and Jekyll features,
|
||||||
|
including some that are not included in the theme docs.
|
||||||
|
|
||||||
|
For example, see how to add support for rendering TeX/LaTeX [math formulas] with KaTeX and MathJax.
|
||||||
|
|
||||||
|
[math formulas]: https://just-the-docs.github.io/just-the-docs-tests/components/math/index/
|
||||||
|
|
||||||
|
### POTENTIALLY-BREAKING CHANGES in v0.4.0
|
||||||
|
|
||||||
|
If switching to a new release of the theme breaks your website,
|
||||||
|
check that you don't have any files in the `_includes`, `_layouts`, and `_sass`
|
||||||
|
directories with the same names as files provided by the theme.
|
||||||
|
|
||||||
|
If your repo has a customised copy of `_layouts/default.html` from a previous release,
|
||||||
|
try removing it, or replace it by a fresh copy of the theme file.
|
||||||
|
|
||||||
|
{: .warning }
|
||||||
|
The following changes made in v0.4.0 *might* break or adversely affect your website
|
||||||
|
when you next rebuild it, unless you have pinned it!
|
||||||
|
|
||||||
|
#### New includes and SCSS
|
||||||
|
|
||||||
|
Version 0.4.0 introduces many new `_includes` files. If you already have an existing include with the same name as a new addition, you will need to migrate or update that include. The new files are (relative to the `_includes` folder):
|
||||||
|
|
||||||
|
- `mermaid_config.js`
|
||||||
|
- `nav_footer_custom`
|
||||||
|
- `search_placeholder_custom`
|
||||||
|
- `toc_heading_custom`
|
||||||
|
- the entire `components/` folder:
|
||||||
|
- `aux_nav`, `breadcrumbs`, `children_nav`, `footer`, `header`, `mermaid`, `search_footer`, `search_header`, `sidebar`
|
||||||
|
- the entire `icons/` folder
|
||||||
|
- `code_copy`, `document`, `expand`, `external_link`, `icons`, `link`, `menu`, `search`
|
||||||
|
- the entire `lunr/` folder
|
||||||
|
- `custom-data.json`, `custom-index.js`
|
||||||
|
|
||||||
|
We have removed some code in `_sass/vendor` and added a new file at `_sass/custom/setup.scss`.
|
||||||
|
|
||||||
|
#### favicons
|
||||||
|
|
||||||
|
The file `_includes/favicon.html` is now ignored by the theme.
|
||||||
|
If you're using it, your website's favicon is no longer displayed by browsers.
|
||||||
|
|
||||||
|
To fix: Move the content of `_includes/favicon.html` to `_includes/head_custom.html`.
|
||||||
|
|
||||||
|
#### Custom callout colors
|
||||||
|
|
||||||
|
The file `_sass/custom/custom.scss` is now imported last: _after_ the configuration of callouts.
|
||||||
|
If you've defined custom color variables for callouts in `_sass/custom/custom.scss`
|
||||||
|
(and used them when configuring your callouts in `_config.yml`)
|
||||||
|
you will not be able to rebuild your website.
|
||||||
|
|
||||||
|
To fix: Move custom color variables for callouts in `_sass/custom/custom.scss` to `_sass/custom/variables.scss`.
|
||||||
|
|
||||||
|
#### Pages and collections
|
||||||
|
|
||||||
|
Links to ordinary pages now appear in the navigation on sites that use collections.
|
||||||
|
You might want the navigation of your site to consist entirely of collections.
|
||||||
|
|
||||||
|
To fix: Add the front matter `nav_exclude: true` to pages that the navigation should not display.
|
||||||
|
|
||||||
|
#### Relative URLs
|
||||||
|
|
||||||
|
All generated URLs are now relative.
|
||||||
|
This is a bug fix, and unlikely to break any site.
|
||||||
|
|
||||||
|
Relative links to pages within a website support deployment to different servers.
|
||||||
|
|
||||||
|
#### Navigation order
|
||||||
|
|
||||||
|
The order in which the navigation panel lists pages has been simplified.
|
||||||
|
All pages with `nav_order` values now come before all pages that are ordered by `title`.
|
||||||
|
|
||||||
|
If your website has a group of *sibling* pages where some siblings have `nav_order`
|
||||||
|
string values, and others are ordered by numerical `title` values,
|
||||||
|
the former now come before the latter.
|
||||||
|
|
||||||
|
To fix: Add numerical `nav_order` values to the pages with numerical `title` values.
|
||||||
|
|
||||||
|
### DEPRECATIONS
|
||||||
|
|
||||||
|
{: .warning }
|
||||||
|
The following features are deprecated, and to be removed in a future release.
|
||||||
|
|
||||||
|
#### Jekyll 3
|
||||||
|
|
||||||
|
You can still use Jekyll 3 (3.8.5 or later) to build websites using v0.4.0 of the theme.
|
||||||
|
However, future releases of the theme may require the use of Jekyll 4.
|
||||||
|
|
||||||
|
You can already use Jekyll 4 to build your website *locally*.
|
||||||
|
It should look exactly the same as when built with Jekyll 3.[^Jekyll4]
|
||||||
|
|
||||||
|
[^Jekyll4]:
|
||||||
|
Jekyll 4 depends on more recent versions of other gems than Jekyll 3,
|
||||||
|
and the differences between those versions may affect the files of your built site.
|
||||||
|
|
||||||
|
To use Jekyll 4 when building your website *on GitHub Pages*, you need to run GitHub Actions.
|
||||||
|
The simplest way of setting that up in a new repo is to create the repo using the Just the Docs template.
|
||||||
|
To start running Jekyll 4 to build an existing repo on GitHub Pages,
|
||||||
|
you can create a new repo with the template, then copy its `.github/workflows` directory,
|
||||||
|
and update your repo settings to use Actions.
|
||||||
|
|
||||||
|
#### Footer content configuration
|
||||||
|
|
||||||
|
Currently, if your configuration sets `footer_content` to some text,
|
||||||
|
the theme displays that text at the bottom of the main section of each page.
|
||||||
|
|
||||||
|
The file `_includes/footer_custom.html` provides a more general way of customizing
|
||||||
|
not only the text but also the markup for the page footer area.
|
||||||
|
|
||||||
|
You can replicate the current display of `TEXT` in the footer using the following markup:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<p class="text-small text-grey-dk-100 mb-0">TEXT</p>
|
||||||
|
```
|
||||||
|
|
||||||
|
### THEME WEBSITE CHANGES
|
||||||
|
|
||||||
|
The website now uses *callouts*[^callouts] to draw attention to important information.
|
||||||
|
|
||||||
|
[^callouts]:
|
||||||
|
The theme website configuration defines the callout titles and colors used there.
|
||||||
|
Websites that use the theme have to configure their own callout titles and colors.
|
||||||
|
|
||||||
|
The theme uses [semantic versioning].
|
||||||
|
A normal version number takes the form X.Y.Z,
|
||||||
|
where X is the major version, Y is the minor version, and Z is the patch version.
|
||||||
|
The theme uses version X.Y.Z.rcN for pre-release N of version X.Y.Z.
|
||||||
|
When referring to version numbers on GitHub, we usually prefix them by 'v'.
|
||||||
|
|
||||||
|
[semantic versioning]: https://semver.org
|
||||||
|
|
||||||
|
Major version zero (0.Y.Z) is for initial development, where anything *may* change at any time.
|
||||||
|
In practice, we increment the patch version Z for bug fixes and backwards compatible changes;
|
||||||
|
we increment the minor version Y for changes that could break websites using the theme
|
||||||
|
without pinning it to a specific version.
|
||||||
|
|
||||||
|
The label `NEW` in the theme website indicates a feature that has been changed or added
|
||||||
|
since the release of the previous *minor* version.
|
||||||
|
For example, after the release of v0.4.Z, the theme website should label `NEW` all features that
|
||||||
|
we have changed or added since v0.3.0 – not just since v0.3.3.
|
||||||
|
When we release v0.5.0, we will remove all those labels, and add labels on features since v0.4.0.
|
||||||
|
|
||||||
|
The theme docs website is not itself versioned.
|
||||||
|
It changes incrementally, independently of theme releases.
|
||||||
|
|
||||||
|
#### Home page
|
||||||
|
|
||||||
|
The theme home page now focuses on the simplest ways of using the theme.
|
||||||
|
It also notes the different behaviour of `theme` and `remote_theme` in connection
|
||||||
|
with interim versions of the theme, such as pre-releases.
|
||||||
|
|
||||||
|
#### CHANGELOG
|
||||||
|
|
||||||
|
The CHANGELOG page lists the changes made in all previous releases and pre-releases of new versions of the theme gem.
|
||||||
|
|
||||||
|
It also lists changes made to the `main` branch of the theme since the latest release or pre-release.
|
||||||
|
|
||||||
|
For changes since v0.3.3, the log usually references the merged PR that made the change and its author.
|
||||||
|
|
||||||
|
### NON-BREAKING CHANGES (OUTLINE ONLY)
|
||||||
|
|
||||||
|
#### Accessibility
|
||||||
|
|
||||||
|
- Skip to main content: the first keyboard-navigatable item is now a link to skip over the sidebar and header to the main content of the page. PR: [#949].
|
||||||
|
- Aria-labels: improved `aria-label`s have been added to various site elements. PRs: [#950], ...
|
||||||
|
- Other general improvements: gradual changes have improved tab focusability, contrast, and semantic elements. More work still to come. PRs: [#498], [#846]
|
||||||
|
|
||||||
|
#### Configuration
|
||||||
|
|
||||||
|
- Mermaid support: first-class support for [Mermaid](https://mermaid.js.org/) - a JavaScript-based diagram and charting tool supported by GitHub - has been added to the theme. **This feature is opt-in.** See the new doc subsections in [Configuration]({% link docs/configuration.md %}#mermaid-diagrams) and [Code]({% link docs/ui-components/code.md %}#mermaid-diagram-code-blocks) for more.
|
||||||
|
- Multiple Google Analytics tags are now supported. PR: [#1029]
|
||||||
|
|
||||||
|
#### Customization
|
||||||
|
|
||||||
|
- all user-facing text is now customizable; previously, several elements (ex search placeholder) were hardwired into the theme. Now, users can blend custom includes and layouts to internationalize their sites.
|
||||||
|
- we've clarified the role of `custom.scss` to be imported last; to allow users to define custom or override variables, we've added a new file `setup.scss`. PR: [#1135]
|
||||||
|
|
||||||
|
#### Custom Includes
|
||||||
|
|
||||||
|
We've added several custom `_includes` to provide users with more customization options for different site elements. We've also added a section to [Configuration]({% link docs/customization.md %}#override-includes) to outline these.
|
||||||
|
|
||||||
|
All of these are opt-in by default; however, **these may be breaking if you have existing `_includes` with the same name**.
|
||||||
|
|
||||||
|
Each item is listed with the relevant file and PR.
|
||||||
|
|
||||||
|
- TOC heading: `toc_heading_custom.html`, PR: [#980]
|
||||||
|
- Navigation panel footer: `nav_footer_custom.html`, PR: [#474]
|
||||||
|
- Search placeholder: `search_placeholder_custom.html`, PR: [#613]
|
||||||
|
- Modular site components: `components/` and `icons/`, PR: [#1058]
|
||||||
|
- Custom search indices: `lunr/`, PR: [#1068]
|
||||||
|
|
||||||
|
In a future (version 1) release, we may rename the custom include files.
|
||||||
|
|
||||||
|
#### Modular Components
|
||||||
|
|
||||||
|
We've broken up the default layout (`_layouts/default.html`) into multiple reusable components. This should have no impact on most users; however, it should make it easier to implement custom layouts.
|
||||||
|
|
||||||
|
For more, see [Custom layouts and includes]({% link docs/customization.md %}#custom-layouts-and-includes). PR: [#1058].
|
||||||
|
|
||||||
|
#### Navigation
|
||||||
|
|
||||||
|
- Collections: nav panel shows links to ordinary pages before collections
|
||||||
|
- Collection folding; part of "Combination". PR: [#578]
|
||||||
|
- Scrolling to show link to selected page. PR: [#639]
|
||||||
|
- External nav links are now supported. PR: [#876]
|
||||||
|
- Child nav order: sort navigation pages with `child_nav_order`. PR: [#726]
|
||||||
|
- Order when mixing different ways of specifying nav order
|
||||||
|
|
||||||
|
#### Search
|
||||||
|
|
||||||
|
In addition to customizing the search placeholder, we've also added the ability to provide custom content to the search index. for more, see [Custom content for search index]({% link docs/search.md %}#custom-content-for-search-index). PR: [#1068].
|
||||||
|
|
||||||
|
#### Styling
|
||||||
|
|
||||||
|
- Code copying: code blocks now allow users to easily copy their contents. PR: [#945]
|
||||||
|
- Blockquote: shows vertical bar on left. PR: [#965]
|
||||||
|
- Links wrap. PR: [#905]
|
||||||
|
- Callouts: a new component similar to alerts or banners. See [UI Components - Callouts]({% link docs/ui-components/callouts.md %}). PR: [#466]
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
[#856]: https://github.com/just-the-docs/just-the-docs/pull/856
|
||||||
|
[#806]: https://github.com/just-the-docs/just-the-docs/pull/806
|
||||||
|
[#555]: https://github.com/just-the-docs/just-the-docs/pull/555
|
||||||
|
[#814]: https://github.com/just-the-docs/just-the-docs/pull/814
|
||||||
|
[#778]: https://github.com/just-the-docs/just-the-docs/pull/778
|
||||||
|
[#221]: https://github.com/just-the-docs/just-the-docs/pull/221
|
||||||
|
[#782]: https://github.com/just-the-docs/just-the-docs/pull/782
|
||||||
|
[#549]: https://github.com/just-the-docs/just-the-docs/pull/549
|
||||||
|
[#554]: https://github.com/just-the-docs/just-the-docs/pull/554
|
||||||
|
[#499]: https://github.com/just-the-docs/just-the-docs/pull/499
|
||||||
|
[#473]: https://github.com/just-the-docs/just-the-docs/pull/473
|
||||||
|
[#835]: https://github.com/just-the-docs/just-the-docs/pull/835
|
||||||
|
[#891]: https://github.com/just-the-docs/just-the-docs/pull/891
|
||||||
|
[#906]: https://github.com/just-the-docs/just-the-docs/pull/906
|
||||||
|
|
||||||
|
[#578]: https://github.com/just-the-docs/just-the-docs/pull/578
|
||||||
|
[#463]: https://github.com/just-the-docs/just-the-docs/pull/463
|
||||||
|
[#448]: https://github.com/just-the-docs/just-the-docs/pull/448
|
||||||
|
[#466]: https://github.com/just-the-docs/just-the-docs/pull/466
|
||||||
|
[#477]: https://github.com/just-the-docs/just-the-docs/pull/477
|
||||||
|
[#495]: https://github.com/just-the-docs/just-the-docs/pull/495
|
||||||
|
[#496]: https://github.com/just-the-docs/just-the-docs/pull/496
|
||||||
|
[#498]: https://github.com/just-the-docs/just-the-docs/pull/498
|
||||||
|
[#494]: https://github.com/just-the-docs/just-the-docs/pull/494
|
||||||
|
[#639]: https://github.com/just-the-docs/just-the-docs/pull/639
|
||||||
|
[#544]: https://github.com/just-the-docs/just-the-docs/pull/544
|
||||||
|
[#364]: https://github.com/just-the-docs/just-the-docs/pull/364
|
||||||
|
[#498]: https://github.com/just-the-docs/just-the-docs/pull/498
|
||||||
|
[#613]: https://github.com/just-the-docs/just-the-docs/pull/613
|
||||||
|
[#726]: https://github.com/just-the-docs/just-the-docs/pull/726
|
||||||
|
[#474]: https://github.com/just-the-docs/just-the-docs/pull/474
|
||||||
|
[#829]: https://github.com/just-the-docs/just-the-docs/pull/829
|
||||||
|
[#857]: https://github.com/just-the-docs/just-the-docs/pull/857
|
||||||
|
[#876]: https://github.com/just-the-docs/just-the-docs/pull/876
|
||||||
|
[#909]: https://github.com/just-the-docs/just-the-docs/pull/909
|
||||||
|
[#519]: https://github.com/just-the-docs/just-the-docs/pull/519
|
||||||
|
[#855]: https://github.com/just-the-docs/just-the-docs/pull/855
|
||||||
|
[#686]: https://github.com/just-the-docs/just-the-docs/pull/686
|
||||||
|
[#495]: https://github.com/just-the-docs/just-the-docs/pull/495
|
||||||
|
[#846]: https://github.com/just-the-docs/just-the-docs/pull/846
|
||||||
|
[#727]: https://github.com/just-the-docs/just-the-docs/pull/727
|
||||||
|
[#889]: https://github.com/just-the-docs/just-the-docs/pull/889
|
||||||
|
[#893]: https://github.com/just-the-docs/just-the-docs/pull/893
|
||||||
|
[#905]: https://github.com/just-the-docs/just-the-docs/pull/905
|
||||||
|
[#898]: https://github.com/just-the-docs/just-the-docs/pull/898
|
||||||
|
|
||||||
|
[#950]: https://github.com/just-the-docs/just-the-docs/pull/950
|
||||||
|
[#944]: https://github.com/just-the-docs/just-the-docs/pull/944
|
||||||
|
[#939]: https://github.com/just-the-docs/just-the-docs/pull/939
|
||||||
|
[#949]: https://github.com/just-the-docs/just-the-docs/pull/949
|
||||||
|
[#941]: https://github.com/just-the-docs/just-the-docs/pull/941
|
||||||
|
[#956]: https://github.com/just-the-docs/just-the-docs/pull/956
|
||||||
|
[#935]: https://github.com/just-the-docs/just-the-docs/pull/935
|
||||||
|
[#940]: https://github.com/just-the-docs/just-the-docs/pull/940
|
||||||
|
[#951]: https://github.com/just-the-docs/just-the-docs/pull/951
|
||||||
|
[#955]: https://github.com/just-the-docs/just-the-docs/pull/955
|
||||||
|
[#937]: https://github.com/just-the-docs/just-the-docs/pull/937
|
||||||
|
|
||||||
|
[#965]: https://github.com/just-the-docs/just-the-docs/pull/965
|
||||||
|
[#960]: https://github.com/just-the-docs/just-the-docs/pull/960
|
||||||
|
[#962]: https://github.com/just-the-docs/just-the-docs/pull/962
|
||||||
|
[#964]: https://github.com/just-the-docs/just-the-docs/pull/964
|
||||||
|
[#967]: https://github.com/just-the-docs/just-the-docs/pull/967
|
||||||
|
[#974]: https://github.com/just-the-docs/just-the-docs/pull/974
|
||||||
|
[#980]: https://github.com/just-the-docs/just-the-docs/pull/980
|
||||||
|
[#985]: https://github.com/just-the-docs/just-the-docs/pull/985
|
||||||
|
[#986]: https://github.com/just-the-docs/just-the-docs/pull/986
|
||||||
|
[#992]: https://github.com/just-the-docs/just-the-docs/pull/992
|
||||||
|
|
||||||
|
[#945]: https://github.com/just-the-docs/just-the-docs/pull/945
|
||||||
|
[#999]: https://github.com/just-the-docs/just-the-docs/pull/999
|
||||||
|
[#1000]: https://github.com/just-the-docs/just-the-docs/pull/1000
|
||||||
|
[#1001]: https://github.com/just-the-docs/just-the-docs/pull/1001
|
||||||
|
[#1010]: https://github.com/just-the-docs/just-the-docs/pull/1010
|
||||||
|
[#1015]: https://github.com/just-the-docs/just-the-docs/pull/1015
|
||||||
|
[#1018]: https://github.com/just-the-docs/just-the-docs/pull/1018
|
||||||
|
[#1019]: https://github.com/just-the-docs/just-the-docs/pull/1019
|
||||||
|
[#1021]: https://github.com/just-the-docs/just-the-docs/pull/1021
|
||||||
|
[#1027]: https://github.com/just-the-docs/just-the-docs/pull/1027
|
||||||
|
[#1029]: https://github.com/just-the-docs/just-the-docs/pull/1029
|
||||||
|
[#1040]: https://github.com/just-the-docs/just-the-docs/pull/1040
|
||||||
|
[#1061]: https://github.com/just-the-docs/just-the-docs/pull/1061
|
||||||
|
[#1065]: https://github.com/just-the-docs/just-the-docs/pull/1065
|
||||||
|
[#1071]: https://github.com/just-the-docs/just-the-docs/pull/1071
|
||||||
|
[#1074]: https://github.com/just-the-docs/just-the-docs/pull/1074
|
||||||
|
[#1076]: https://github.com/just-the-docs/just-the-docs/pull/1076
|
||||||
|
[#1077]: https://github.com/just-the-docs/just-the-docs/pull/1077
|
||||||
|
[#1090]: https://github.com/just-the-docs/just-the-docs/pull/1090
|
||||||
|
[#1091]: https://github.com/just-the-docs/just-the-docs/pull/1091
|
||||||
|
[#1092]: https://github.com/just-the-docs/just-the-docs/pull/1092
|
||||||
|
[#1095]: https://github.com/just-the-docs/just-the-docs/pull/1095
|
||||||
|
|
||||||
|
[#1068]: https://github.com/just-the-docs/just-the-docs/pull/1068
|
||||||
|
[#1135]: https://github.com/just-the-docs/just-the-docs/pull/1135
|
62
README.md
62
README.md
@@ -1,19 +1,42 @@
|
|||||||
<p align="right">
|
<p align="right">
|
||||||
<a href="https://badge.fury.io/rb/just-the-docs"><img src="https://badge.fury.io/rb/just-the-docs.svg" alt="Gem version"></a> <a href="https://github.com/pmarsceill/just-the-docs/actions?query=workflow%3A%22Master+branch+CI%22"><img src="https://github.com/pmarsceill/just-the-docs/workflows/Master%20branch%20CI/badge.svg" alt="Build status"></a>
|
<a href="https://badge.fury.io/rb/just-the-docs"><img src="https://badge.fury.io/rb/just-the-docs.svg" alt="Gem version"></a> <a href="https://github.com/just-the-docs/just-the-docs/actions/workflows/ci.yml"><img src="https://github.com/just-the-docs/just-the-docs/actions/workflows/ci.yml/badge.svg" alt="CI Build status"></a> <a href="https://app.netlify.com/sites/just-the-docs/deploys"><img src="https://api.netlify.com/api/v1/badges/9dc0386d-c2a4-4077-ad83-f02c33a6c0ca/deploy-status" alt="Netlify Status"></a>
|
||||||
</p>
|
</p>
|
||||||
<br><br>
|
<br><br>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<h1 align="center">Just the Docs</h1>
|
<h1 align="center">Just the Docs</h1>
|
||||||
<p align="center">A modern, highly customizable, and responsive Jekyll theme for documentation with built-in search.<br>Easily hosted on GitHub Pages with few dependencies.</p>
|
<p align="center">A modern, highly customizable, and responsive Jekyll theme for documentation with built-in search.<br>Easily hosted on GitHub Pages with few dependencies.</p>
|
||||||
<p align="center"><strong><a href="https://pmarsceill.github.io/just-the-docs/">See it in action!</a></strong></p>
|
<p align="center"><strong><a href="https://just-the-docs.github.io/just-the-docs/">See it in action!</a></strong></p>
|
||||||
<br><br><br>
|
<br><br><br>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||

|
<p align="center">A video walkthrough of various Just the Docs features</p>
|
||||||
|
|
||||||
|
https://user-images.githubusercontent.com/85418632/211225192-7e5d1116-2f4f-4305-bb9b-437fe47df071.mp4
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Add this line to your Jekyll site's Gemfile:
|
### Use the template
|
||||||
|
|
||||||
|
The [Just the Docs Template] provides the simplest, quickest, and easiest way to create a new website that uses the Just the Docs theme. To get started with creating a site, just click "[use the template]"!
|
||||||
|
|
||||||
|
Note: To use the theme, you do ***not*** need to clone or fork the [Just the Docs repo]! You should do that only if you intend to browse the theme docs locally, contribute to the development of the theme, or develop a new theme based on Just the Docs.
|
||||||
|
|
||||||
|
You can easily set the site created by the template to be published on [GitHub Pages] – the [template README] file explains how to do that, along with other details.
|
||||||
|
|
||||||
|
If [Jekyll] is installed on your computer, you can also build and preview the created site *locally*. This lets you test changes before committing them, and avoids waiting for GitHub Pages.[^2] And you will be able to deploy your local build to a different platform than GitHub Pages.
|
||||||
|
|
||||||
|
More specifically, the created site:
|
||||||
|
|
||||||
|
- uses a gem-based approach, i.e. uses a `Gemfile` and loads the `just-the-docs` gem
|
||||||
|
- uses the [GitHub Pages / Actions workflow] to build and publish the site on GitHub Pages
|
||||||
|
|
||||||
|
Other than that, you're free to customize sites that you create with the template, however you like. You can easily change the versions of `just-the-docs` and Jekyll it uses, as well as adding further plugins.
|
||||||
|
|
||||||
|
### Use RubyGems
|
||||||
|
|
||||||
|
Alternatively, you can install the theme as a Ruby Gem, without creating a new site.
|
||||||
|
|
||||||
|
Add this line to your Jekyll site's `Gemfile`:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
gem "just-the-docs"
|
gem "just-the-docs"
|
||||||
@@ -33,20 +56,26 @@ Or install it yourself as:
|
|||||||
|
|
||||||
$ gem install just-the-docs
|
$ gem install just-the-docs
|
||||||
|
|
||||||
|
Alternatively, you can run it inside Docker while developing your site
|
||||||
|
|
||||||
|
$ docker-compose up
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
[View the documentation](https://pmarsceill.github.io/just-the-docs/) for usage information.
|
[View the documentation][Just the Docs] for usage information.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Bug reports and pull requests are welcome on GitHub at https://github.com/pmarsceill/just-the-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
Bug reports, proposals of new features, and pull requests are welcome on GitHub at https://github.com/just-the-docs/just-the-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
||||||
|
|
||||||
### Submitting code changes:
|
### Submitting code changes:
|
||||||
|
|
||||||
- Open a [Pull Request](https://github.com/pmarsceill/just-the-docs/pulls)
|
- Submit an [Issue](https://github.com/just-the-docs/just-the-docs/issues) that motivates the changes, using the appropriate template
|
||||||
|
- Discuss the proposed changes with other users and the maintainers
|
||||||
|
- Open a [Pull Request](https://github.com/just-the-docs/just-the-docs/pulls)
|
||||||
- Ensure all CI tests pass
|
- Ensure all CI tests pass
|
||||||
|
- Provide instructions to check the effect of the changes
|
||||||
- Await code review
|
- Await code review
|
||||||
- Bump the version number in `just-the-docs.gemspec` and `package.json` according to [semantic versioning](https://semver.org/).
|
|
||||||
|
|
||||||
### Design and development principles of this theme:
|
### Design and development principles of this theme:
|
||||||
|
|
||||||
@@ -57,12 +86,25 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/pmarsc
|
|||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
To set up your environment to develop this theme, run `bundle install`.
|
To set up your environment to develop this theme: fork this repo, the run `bundle install` from the root directory.
|
||||||
|
|
||||||
|
A modern [devcontainer configuration](https://code.visualstudio.com/docs/remote/containers) for VSCode is included.
|
||||||
|
|
||||||
Your theme is set up just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
|
Your theme is set up just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
|
||||||
|
|
||||||
When the theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be released.
|
When this theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be included in the gem.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
||||||
|
|
||||||
|
[^2]: [It can take up to 10 minutes for changes to your site to publish after you push the changes to GitHub](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll#creating-your-site).
|
||||||
|
|
||||||
|
[Jekyll]: https://jekyllrb.com
|
||||||
|
[Just the Docs Template]: https://just-the-docs.github.io/just-the-docs-template/
|
||||||
|
[Just the Docs]: https://just-the-docs.github.io/just-the-docs/
|
||||||
|
[Just the Docs repo]: https://github.com/just-the-docs/just-the-docs
|
||||||
|
[GitHub Pages]: https://pages.github.com/
|
||||||
|
[Template README]: https://github.com/just-the-docs/just-the-docs-template/blob/main/README.md
|
||||||
|
[GitHub Pages / Actions workflow]: https://github.blog/changelog/2022-07-27-github-pages-custom-github-actions-workflows-beta/
|
||||||
|
[use the template]: https://github.com/just-the-docs/just-the-docs-template/generate
|
||||||
|
124
_config.yml
124
_config.yml
@@ -16,19 +16,85 @@
|
|||||||
title: Just the Docs
|
title: Just the Docs
|
||||||
description: A Jekyll theme for documentation
|
description: A Jekyll theme for documentation
|
||||||
baseurl: "/just-the-docs" # the subpath of your site, e.g. /blog
|
baseurl: "/just-the-docs" # the subpath of your site, e.g. /blog
|
||||||
url: "https://pmarsceill.github.io" # the base hostname & protocol for your site, e.g. http://example.com
|
url: "https://just-the-docs.github.io" # the base hostname & protocol for your site, e.g. http://example.com
|
||||||
|
repository: just-the-docs/just-the-docs # for github-metadata
|
||||||
|
|
||||||
permalink: pretty
|
permalink: pretty
|
||||||
exclude: ["node_modules/", "*.gemspec", "*.gem", "Gemfile", "Gemfile.lock", "package.json", "package-lock.json", "script/", "LICENSE.txt", "lib/", "bin/", "README.md", "Rakefile"]
|
|
||||||
|
exclude:
|
||||||
|
# from https://github.com/jekyll/jekyll/blob/master/lib/site_template/_config.yml:
|
||||||
|
- .sass-cache/
|
||||||
|
- .jekyll-cache/
|
||||||
|
- gemfiles/
|
||||||
|
- Gemfile
|
||||||
|
- Gemfile.lock
|
||||||
|
- node_modules/
|
||||||
|
- vendor/bundle/
|
||||||
|
- vendor/cache/
|
||||||
|
- vendor/gems/
|
||||||
|
- vendor/ruby/
|
||||||
|
# specific to the theme website:
|
||||||
|
- bin/
|
||||||
|
- lib/
|
||||||
|
- "*.gemspec"
|
||||||
|
- "*.gem"
|
||||||
|
- LICENSE.txt
|
||||||
|
- package.json
|
||||||
|
- package-lock.json
|
||||||
|
- Rakefile
|
||||||
|
- README.md
|
||||||
|
- CODE_OF_CONDUCT.md
|
||||||
|
- docker-compose.yml
|
||||||
|
- Dockerfile
|
||||||
|
# theme test code
|
||||||
|
- fixtures/
|
||||||
|
|
||||||
# Set a path/url to a logo that will be displayed instead of the title
|
# Set a path/url to a logo that will be displayed instead of the title
|
||||||
#logo: "/assets/images/just-the-docs.png"
|
#logo: "/assets/images/just-the-docs.png"
|
||||||
|
|
||||||
# Enable or disable the site search
|
# Enable or disable the site search
|
||||||
|
# Supports true (default) or false
|
||||||
search_enabled: true
|
search_enabled: true
|
||||||
|
search:
|
||||||
|
# Split pages into sections that can be searched individually
|
||||||
|
# Supports 1 - 6, default: 2
|
||||||
|
heading_level: 2
|
||||||
|
# Maximum amount of previews per search result
|
||||||
|
# Default: 3
|
||||||
|
previews: 2
|
||||||
|
# Maximum amount of words to display before a matched word in the preview
|
||||||
|
# Default: 5
|
||||||
|
preview_words_before: 3
|
||||||
|
# Maximum amount of words to display after a matched word in the preview
|
||||||
|
# Default: 10
|
||||||
|
preview_words_after: 3
|
||||||
|
# Set the search token separator
|
||||||
|
# Default: /[\s\-/]+/
|
||||||
|
# Example: enable support for hyphenated search words
|
||||||
|
tokenizer_separator: /[\s/]+/
|
||||||
|
# Display the relative url in search results
|
||||||
|
# Supports true (default) or false
|
||||||
|
rel_url: true
|
||||||
|
# Enable or disable the search button that appears in the bottom right corner of every page
|
||||||
|
# Supports true or false (default)
|
||||||
|
button: false
|
||||||
|
|
||||||
# Set the search token separator for hyphenated-word search:
|
# For copy button on code
|
||||||
search_tokenizer_separator: /[\s/]+/
|
enable_copy_code_button: true
|
||||||
|
|
||||||
|
# By default, consuming the theme as a gem leaves mermaid disabled; it is opt-in
|
||||||
|
mermaid:
|
||||||
|
# Version of mermaid library
|
||||||
|
# Pick an available version from https://cdn.jsdelivr.net/npm/mermaid/
|
||||||
|
version: "9.1.6"
|
||||||
|
# Put any additional configuration, such as setting the theme, in _includes/mermaid_config.js
|
||||||
|
# See also docs/ui-components/code
|
||||||
|
# To load mermaid from a local library, also use the `path` key to specify the location of the library; e.g.
|
||||||
|
# for (v10+):
|
||||||
|
# path: "/assets/js/mermaid.esm.min.mjs"
|
||||||
|
# for (<v10):
|
||||||
|
# path: "/assets/js/mermaid.min.js"
|
||||||
|
# Note: copy both `mermaid.esm.min.mjs` (v10+) or `mermaid.min.js` (<v10) and the associated `.map` file from the specified version of `mermaid/dist` to `/assets/js/`.
|
||||||
|
|
||||||
# Enable or disable heading anchors
|
# Enable or disable heading anchors
|
||||||
heading_anchors: true
|
heading_anchors: true
|
||||||
@@ -36,14 +102,19 @@ heading_anchors: true
|
|||||||
# Aux links for the upper right navigation
|
# Aux links for the upper right navigation
|
||||||
aux_links:
|
aux_links:
|
||||||
"Just the Docs on GitHub":
|
"Just the Docs on GitHub":
|
||||||
- "//github.com/pmarsceill/just-the-docs"
|
- "//github.com/just-the-docs/just-the-docs"
|
||||||
|
|
||||||
# Makes Aux links open in a new tab. Default is false
|
# Makes Aux links open in a new tab. Default is false
|
||||||
aux_links_new_tab: false
|
aux_links_new_tab: false
|
||||||
|
|
||||||
# Sort order for navigation links
|
# Sort order for navigation links
|
||||||
nav_sort: case_insensitive # default, equivalent to nil
|
# nav_sort: case_insensitive # default, equivalent to nil
|
||||||
# nav_sort: case_sensitive # Capital letters sorted before lowercase
|
nav_sort: case_sensitive # Capital letters sorted before lowercase
|
||||||
|
|
||||||
|
# External navigation links
|
||||||
|
nav_external_links:
|
||||||
|
- title: Just the Docs on GitHub
|
||||||
|
url: https://github.com/just-the-docs/just-the-docs
|
||||||
|
|
||||||
# Footer content
|
# Footer content
|
||||||
# appears at the bottom of every page's main content
|
# appears at the bottom of every page's main content
|
||||||
@@ -52,7 +123,7 @@ nav_sort: case_insensitive # default, equivalent to nil
|
|||||||
back_to_top: true
|
back_to_top: true
|
||||||
back_to_top_text: "Back to top"
|
back_to_top_text: "Back to top"
|
||||||
|
|
||||||
footer_content: "Copyright © 2017-2020 Patrick Marsceill. Distributed by an <a href=\"https://github.com/pmarsceill/just-the-docs/tree/master/LICENSE.txt\">MIT license.</a>"
|
footer_content: "Copyright © 2017-2020 Patrick Marsceill. Distributed by an <a href=\"https://github.com/just-the-docs/just-the-docs/tree/main/LICENSE.txt\">MIT license.</a> <a href=\"https://www.netlify.com/\">This site is powered by Netlify.</a>"
|
||||||
|
|
||||||
# Footer last edited timestamp
|
# Footer last edited timestamp
|
||||||
last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
|
last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
|
||||||
@@ -63,20 +134,45 @@ last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https:/
|
|||||||
# Footer "Edit this page on GitHub" link text
|
# Footer "Edit this page on GitHub" link text
|
||||||
gh_edit_link: true # show or hide edit this page link
|
gh_edit_link: true # show or hide edit this page link
|
||||||
gh_edit_link_text: "Edit this page on GitHub"
|
gh_edit_link_text: "Edit this page on GitHub"
|
||||||
gh_edit_repository: "https://github.com/pmarsceill/just-the-docs" # the github URL for your repo
|
gh_edit_repository: "https://github.com/just-the-docs/just-the-docs" # the github URL for your repo
|
||||||
gh_edit_branch: "master" # the branch that your docs is served from
|
gh_edit_branch: "main" # the branch that your docs is served from
|
||||||
|
# gh_edit_source: docs # the source that your files originate from
|
||||||
gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately
|
gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately
|
||||||
|
|
||||||
# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define
|
# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define
|
||||||
color_scheme: nil
|
color_scheme: nil
|
||||||
|
|
||||||
|
callouts_level: quiet # or loud
|
||||||
|
callouts:
|
||||||
|
highlight:
|
||||||
|
color: yellow
|
||||||
|
important:
|
||||||
|
title: Important
|
||||||
|
color: blue
|
||||||
|
new:
|
||||||
|
title: New
|
||||||
|
color: green
|
||||||
|
note:
|
||||||
|
title: Note
|
||||||
|
color: purple
|
||||||
|
warning:
|
||||||
|
title: Warning
|
||||||
|
color: red
|
||||||
|
|
||||||
# Google Analytics Tracking (optional)
|
# Google Analytics Tracking (optional)
|
||||||
# e.g, UA-1234567-89
|
# Supports a CSV of tracking ID strings (eg. "UA-1234567-89,G-1AB234CDE5")
|
||||||
ga_tracking: UA-2709176-10
|
# Note: the main Just the Docs site does *not* use Google Analytics.
|
||||||
ga_tracking_anonymize_ip: true # Use GDPR compliant Google Analytics settings (true/nil by default)
|
# ga_tracking: UA-2709176-10,G-5FG1HLH3XQ
|
||||||
|
# ga_tracking_anonymize_ip: true # Use GDPR compliant Google Analytics settings (true/nil by default)
|
||||||
|
|
||||||
plugins:
|
plugins:
|
||||||
- jekyll-seo-tag
|
- jekyll-seo-tag
|
||||||
|
- jekyll-github-metadata
|
||||||
|
|
||||||
|
kramdown:
|
||||||
|
syntax_highlighter_opts:
|
||||||
|
block:
|
||||||
|
line_numbers: false
|
||||||
|
|
||||||
compress_html:
|
compress_html:
|
||||||
clippings: all
|
clippings: all
|
||||||
@@ -85,3 +181,5 @@ compress_html:
|
|||||||
startings: []
|
startings: []
|
||||||
blanklines: false
|
blanklines: false
|
||||||
profile: false
|
profile: false
|
||||||
|
# ignore:
|
||||||
|
# envs: all
|
||||||
|
15
_includes/components/aux_nav.html
Normal file
15
_includes/components/aux_nav.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<nav aria-label="Auxiliary" class="aux-nav">
|
||||||
|
<ul class="aux-nav-list">
|
||||||
|
{% for link in site.aux_links %}
|
||||||
|
<li class="aux-nav-list-item">
|
||||||
|
<a href="{{ link.last }}" class="site-button"
|
||||||
|
{% if site.aux_links_new_tab %}
|
||||||
|
target="_blank" rel="noopener noreferrer"
|
||||||
|
{% endif %}
|
||||||
|
>
|
||||||
|
{{ link.first }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
15
_includes/components/breadcrumbs.html
Normal file
15
_includes/components/breadcrumbs.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{% unless page.url == "/" %}
|
||||||
|
{% if page.parent %}
|
||||||
|
<nav aria-label="Breadcrumb" class="breadcrumb-nav">
|
||||||
|
<ol class="breadcrumb-nav-list">
|
||||||
|
{% if page.grand_parent %}
|
||||||
|
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
|
||||||
|
<li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
|
||||||
|
{% else %}
|
||||||
|
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
{% endif %}
|
||||||
|
{% endunless %}
|
9
_includes/components/children_nav.html
Normal file
9
_includes/components/children_nav.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<hr>
|
||||||
|
{% include toc_heading_custom.html %}
|
||||||
|
<ul>
|
||||||
|
{% for child in include.toc_list %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ child.url | relative_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
34
_includes/components/footer.html
Normal file
34
_includes/components/footer.html
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{% capture footer_custom %}
|
||||||
|
{%- include footer_custom.html -%}
|
||||||
|
{% endcapture %}
|
||||||
|
{% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %}
|
||||||
|
<hr>
|
||||||
|
<footer>
|
||||||
|
{% if site.back_to_top %}
|
||||||
|
<p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ footer_custom }}
|
||||||
|
|
||||||
|
{% if site.last_edit_timestamp or site.gh_edit_link %}
|
||||||
|
<div class="d-flex mt-2">
|
||||||
|
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
|
||||||
|
<p class="text-small text-grey-dk-000 mb-0 mr-2">
|
||||||
|
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% if
|
||||||
|
site.gh_edit_link and
|
||||||
|
site.gh_edit_link_text and
|
||||||
|
site.gh_edit_repository and
|
||||||
|
site.gh_edit_branch and
|
||||||
|
site.gh_edit_view_mode
|
||||||
|
%}
|
||||||
|
<p class="text-small text-grey-dk-000 mb-0">
|
||||||
|
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}{% if page.collection and site.collections_dir %}/{{ site.collections_dir }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</footer>
|
||||||
|
{% endif %}
|
11
_includes/components/header.html
Normal file
11
_includes/components/header.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<div id="main-header" class="main-header">
|
||||||
|
{% if site.search_enabled != false %}
|
||||||
|
{% include components/search_header.html %}
|
||||||
|
{% else %}
|
||||||
|
<div></div>
|
||||||
|
{% endif %}
|
||||||
|
{% include header_custom.html %}
|
||||||
|
{% if site.aux_links %}
|
||||||
|
{% include components/aux_nav.html %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
45
_includes/components/mermaid.html
Normal file
45
_includes/components/mermaid.html
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{% comment %}
|
||||||
|
The complexity of this file comes from a breaking change in Mermaid v10; mermaid.init has been deprecated (and supposedly, didn't work earlier?).
|
||||||
|
|
||||||
|
So, we check whether the user's Mermaid version is >= 10; if not, we fall back to the previous init syntax.
|
||||||
|
|
||||||
|
If a user is using a custom mermaid file and doesn't specify a version, we default to the < v10 behaviour. Users who use version v10 or above should specify this in the version key.
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% if site.mermaid.version %}
|
||||||
|
{% assign mermaid_major_version = site.mermaid.version | split: "." | first | plus: 0 %}
|
||||||
|
{% else %}
|
||||||
|
{% assign mermaid_major_version = 9 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if mermaid_major_version > 9 %}
|
||||||
|
|
||||||
|
<script type="module">
|
||||||
|
{% if site.mermaid.path %}
|
||||||
|
import mermaid from '{{ site.mermaid.path | relative_url }}';
|
||||||
|
{% else %}
|
||||||
|
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@{{ site.mermaid.version }}/dist/mermaid.esm.min.mjs';
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
var config = {% include mermaid_config.js %};
|
||||||
|
mermaid.initialize(config);
|
||||||
|
mermaid.run({
|
||||||
|
querySelector: '.language-mermaid',
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
|
||||||
|
{% if site.mermaid.path %}
|
||||||
|
<script src="{{ site.mermaid.path | relative_url }}"></script>
|
||||||
|
{% else %}
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@{{ site.mermaid.version }}/dist/mermaid.min.js"></script>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var config = {% include mermaid_config.js %};
|
||||||
|
mermaid.initialize(config);
|
||||||
|
window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid'));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endif %}
|
7
_includes/components/search_footer.html
Normal file
7
_includes/components/search_footer.html
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{% if site.search.button %}
|
||||||
|
<a href="#" id="search-button" class="search-button">
|
||||||
|
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="search-overlay"></div>
|
9
_includes/components/search_header.html
Normal file
9
_includes/components/search_header.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{% capture search_placeholder %}{% include search_placeholder_custom.html %}{% endcapture %}
|
||||||
|
|
||||||
|
<div class="search">
|
||||||
|
<div class="search-input-wrap">
|
||||||
|
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="{{ search_placeholder | strip_html | strip }}" aria-label="{{ search_placeholder | strip_html| strip }}" autocomplete="off">
|
||||||
|
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
|
||||||
|
</div>
|
||||||
|
<div id="search-results" class="search-results"></div>
|
||||||
|
</div>
|
69
_includes/components/sidebar.html
Normal file
69
_includes/components/sidebar.html
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<div class="side-bar">
|
||||||
|
<div class="site-header">
|
||||||
|
<a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a>
|
||||||
|
<a href="#" id="menu-button" class="site-button">
|
||||||
|
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<nav aria-label="Main" id="site-nav" class="site-nav">
|
||||||
|
{% assign pages_top_size = site.html_pages
|
||||||
|
| where_exp:"item", "item.title != nil"
|
||||||
|
| where_exp:"item", "item.parent == nil"
|
||||||
|
| where_exp:"item", "item.nav_exclude != true"
|
||||||
|
| size %}
|
||||||
|
{% if pages_top_size > 0 %}
|
||||||
|
{% include nav.html pages=site.html_pages key=nil %}
|
||||||
|
{% endif %}
|
||||||
|
{%- if site.nav_external_links -%}
|
||||||
|
<ul class="nav-list">
|
||||||
|
{%- for node in site.nav_external_links -%}
|
||||||
|
<li class="nav-list-item external">
|
||||||
|
<a href="{{ node.url | absolute_url }}" class="nav-list-link external">
|
||||||
|
{{ node.title }}
|
||||||
|
{% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{%- endfor -%}
|
||||||
|
</ul>
|
||||||
|
{%- endif -%}
|
||||||
|
{% if site.just_the_docs.collections %}
|
||||||
|
{% assign collections_size = site.just_the_docs.collections | size %}
|
||||||
|
{% for collection_entry in site.just_the_docs.collections %}
|
||||||
|
{% assign collection_key = collection_entry[0] %}
|
||||||
|
{% assign collection_value = collection_entry[1] %}
|
||||||
|
{% assign collection = site[collection_key] %}
|
||||||
|
{% if collection_value.nav_exclude != true %}
|
||||||
|
{% if collections_size > 1 or pages_top_size > 0 %}
|
||||||
|
{% if collection_value.nav_fold == true %}
|
||||||
|
<ul class="nav-list nav-category-list">
|
||||||
|
<li class="nav-list-item{% if page.collection == collection_key %} active{% endif %}">
|
||||||
|
{%- if collection.size > 0 -%}
|
||||||
|
<a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a>
|
||||||
|
{%- endif -%}
|
||||||
|
<div class="nav-category">{{ collection_value.name }}</div>
|
||||||
|
{% include nav.html pages=collection key=collection_key %}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{% else %}
|
||||||
|
<div class="nav-category">{{ collection_value.name }}</div>
|
||||||
|
{% include nav.html pages=collection key=collection_key %}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% include nav.html pages=collection key=collection_key %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{% capture nav_footer_custom %}
|
||||||
|
{%- include nav_footer_custom.html -%}
|
||||||
|
{% endcapture %}
|
||||||
|
{% if nav_footer_custom != "" %}
|
||||||
|
{{ nav_footer_custom }}
|
||||||
|
{% else %}
|
||||||
|
<footer class="site-footer">
|
||||||
|
This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
|
||||||
|
</footer>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
93
_includes/css/callouts.scss.liquid
Normal file
93
_includes/css/callouts.scss.liquid
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{%- comment -%}
|
||||||
|
{% include css/callouts.scss.liquid color_scheme = string %}
|
||||||
|
produces SCSS for all the callouts in site.callouts. For the "dark"
|
||||||
|
color scheme, the levels of the text and background colors are reversed.
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{%- assign callout_background_hue = "000" -%}
|
||||||
|
{%- assign callout_color_hue = "300" -%}
|
||||||
|
{%- if site.callouts_level == "loud" or include.color_scheme == "dark" and site.callouts_level != "quiet" -%}
|
||||||
|
{%- assign callout_background_hue = "300" -%}
|
||||||
|
{%- assign callout_color_hue = "000" -%}
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
div.opaque {
|
||||||
|
background-color: $body-background-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
{%- for callout in site.callouts %}
|
||||||
|
|
||||||
|
{%- assign callout_opacity = callout[1].opacity | default: site.callouts_opacity | default: 0.2 -%}
|
||||||
|
|
||||||
|
p.{{ callout[0] }}, blockquote.{{ callout[0] }} {
|
||||||
|
background: rgba(${{ callout[1].color }}-{{ callout_background_hue }}, {{ callout_opacity }});
|
||||||
|
border-left: $border-radius solid ${{ callout[1].color }}-{{ callout_color_hue }};
|
||||||
|
border-radius: $border-radius;
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
||||||
|
padding: .8rem;
|
||||||
|
{% if callout[1].title %}
|
||||||
|
&::before {
|
||||||
|
color: ${{ callout[1].color }}-{{ callout_color_hue }};
|
||||||
|
content: "{{ callout[1].title }}";
|
||||||
|
display: block;
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: .75em;
|
||||||
|
padding-bottom: .125rem;
|
||||||
|
}
|
||||||
|
{% endif %}
|
||||||
|
> .{{ callout[0] }}-title {
|
||||||
|
color: ${{ callout[1].color }}-{{ callout_color_hue }};
|
||||||
|
display: block;
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: .75em;
|
||||||
|
padding-bottom: .125rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p.{{ callout[0] }}-title, blockquote.{{ callout[0] }}-title {
|
||||||
|
background: rgba(${{ callout[1].color }}-{{ callout_background_hue }}, {{ callout_opacity }});
|
||||||
|
border-left: $border-radius solid ${{ callout[1].color }}-{{ callout_color_hue }};
|
||||||
|
border-radius: $border-radius;
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
||||||
|
padding: .8rem;
|
||||||
|
> p:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
color: ${{ callout[1].color }}-{{ callout_color_hue }};
|
||||||
|
display: block;
|
||||||
|
font-weight: bold;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: .75em;
|
||||||
|
padding-bottom: .125rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.{{ callout[0] }} {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
|
||||||
|
> p:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
> p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.{{ callout[0] }}-title {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
|
||||||
|
> p:nth-child(2) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
> p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{% endfor -%}
|
@@ -1,7 +1,12 @@
|
|||||||
{% if site.logo %}
|
{% if site.logo %}
|
||||||
$logo: "{{ site.logo | absolute_url }}";
|
$logo: "{{ site.logo | relative_url }}";
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@import "./support/support";
|
@import "./support/support";
|
||||||
|
@import "./custom/setup";
|
||||||
|
@import "./color_schemes/light";
|
||||||
|
{% unless include.color_scheme == "light" %}
|
||||||
@import "./color_schemes/{{ include.color_scheme }}";
|
@import "./color_schemes/{{ include.color_scheme }}";
|
||||||
|
{% endunless %}
|
||||||
@import "./modules";
|
@import "./modules";
|
||||||
|
{% include css/callouts.scss.liquid color_scheme = include.color_scheme %}
|
||||||
{% include css/custom.scss.liquid %}
|
{% include css/custom.scss.liquid %}
|
||||||
|
65
_includes/fix_linenos.html
Normal file
65
_includes/fix_linenos.html
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
{%- comment -%}
|
||||||
|
This file can be used to fix the HTML produced by Jekyll for highlighted
|
||||||
|
code with line numbers.
|
||||||
|
|
||||||
|
It works with `{% highlight some_language linenos %}...{% endhighlight %}`
|
||||||
|
and with the Kramdown option to add line numbers to fenced code.
|
||||||
|
|
||||||
|
The implementation was derived from the workaround provided by
|
||||||
|
Dmitry Hrabrov (DeXP) at
|
||||||
|
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901
|
||||||
|
|
||||||
|
EXPLANATION
|
||||||
|
|
||||||
|
The HTML produced by Rouge highlighting with lie numbers is of the form
|
||||||
|
`code table`. Jekyll (<= 4.1.1) always wraps the highlighted HTML
|
||||||
|
with `pre`. This wrapping is not only unnecessary, but also transforms
|
||||||
|
the conforming HTML produced by Rouge to non-conforming HTML, which
|
||||||
|
results in HTML validation error reports.
|
||||||
|
|
||||||
|
The fix removes the outer `pre` tags whenever they contain the pattern
|
||||||
|
`<table class="rouge-table">`.
|
||||||
|
|
||||||
|
Apart from avoiding HTML validation errors, the fix allows the use of
|
||||||
|
the [Jekyll layout for compressing HTML](http://jch.penibelst.de),
|
||||||
|
which relies on `pre` tags not being nested, according to
|
||||||
|
https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842
|
||||||
|
|
||||||
|
USAGE
|
||||||
|
|
||||||
|
(Any names can be used for `some_var` and `some_language`.)
|
||||||
|
|
||||||
|
{% capture some_var %}
|
||||||
|
{% highlight some_language linenos %}
|
||||||
|
Some code
|
||||||
|
{% endhighlight %}
|
||||||
|
{% endcapture %}
|
||||||
|
{% include fix_linenos.html code=some_var %}
|
||||||
|
|
||||||
|
For code fences:
|
||||||
|
|
||||||
|
{% capture some_var %}
|
||||||
|
```some_language
|
||||||
|
Some code
|
||||||
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
{% assign some_var = some_var | markdownify %}
|
||||||
|
{% include fix_linenos.html code=some_var %}
|
||||||
|
|
||||||
|
CAVEATS
|
||||||
|
|
||||||
|
The above does not work when `Some code` happens to contain the matched string
|
||||||
|
`<table class="rouge-table">`.
|
||||||
|
|
||||||
|
The use of this file overwrites the variable `fix_linenos_code` with `nil`.
|
||||||
|
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{% assign fix_linenos_code = include.code %}
|
||||||
|
{% if fix_linenos_code contains '<table class="rouge-table">' %}
|
||||||
|
{% assign fix_linenos_code = fix_linenos_code | replace: '<pre class="highlight">', '<pre>' %}
|
||||||
|
{% assign fix_linenos_code = fix_linenos_code | replace: "<pre><code", "<code" %}
|
||||||
|
{% assign fix_linenos_code = fix_linenos_code | replace: "</code></pre>", "</code>" %}
|
||||||
|
{% endif %}
|
||||||
|
{{ fix_linenos_code }}
|
||||||
|
{% assign fix_linenos_code = nil %}
|
3
_includes/footer_custom.html
Normal file
3
_includes/footer_custom.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{%- if site.footer_content -%}
|
||||||
|
<p class="text-small text-grey-dk-100 mb-0">{{ site.footer_content }}</p>
|
||||||
|
{%- endif -%}
|
@@ -2,37 +2,39 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
||||||
|
|
||||||
{% unless site.plugins contains "jekyll-seo-tag" %}
|
<link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | relative_url }}">
|
||||||
<title>{{ page.title }} - {{ site.title }}</title>
|
|
||||||
|
|
||||||
{% if page.description %}
|
|
||||||
<meta name="Description" content="{{ page.description }}">
|
|
||||||
{% endif %}
|
|
||||||
{% endunless %}
|
|
||||||
|
|
||||||
<link rel="shortcut icon" href="{{ 'favicon.ico' | absolute_url }}" type="image/x-icon">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | absolute_url }}">
|
|
||||||
|
|
||||||
{% if site.ga_tracking != nil %}
|
{% if site.ga_tracking != nil %}
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.ga_tracking }}"></script>
|
{% assign ga_tracking_ids = site.ga_tracking | split: "," %}
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{ ga_tracking_ids.first }}"></script>
|
||||||
<script>
|
<script>
|
||||||
window.dataLayer = window.dataLayer || [];
|
window.dataLayer = window.dataLayer || [];
|
||||||
function gtag(){dataLayer.push(arguments);}
|
function gtag(){dataLayer.push(arguments);}
|
||||||
gtag('js', new Date());
|
gtag('js', new Date());
|
||||||
|
|
||||||
gtag('config', '{{ site.ga_tracking }}'{% unless site.ga_tracking_anonymize_ip == nil %}, { 'anonymize_ip': true }{% endunless %});
|
{% for ga_property in ga_tracking_ids %}
|
||||||
|
gtag('config', '{{ ga_property }}'{% unless site.ga_tracking_anonymize_ip == nil %}, { 'anonymize_ip': true }{% endunless %});
|
||||||
|
{% endfor %}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if site.search_enabled != false %}
|
{% if site.search_enabled != false %}
|
||||||
<script type="text/javascript" src="{{ '/assets/js/vendor/lunr.min.js' | absolute_url }}"></script>
|
<script src="{{ '/assets/js/vendor/lunr.min.js' | relative_url }}"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<script type="text/javascript" src="{{ '/assets/js/just-the-docs.js' | absolute_url }}"></script>
|
|
||||||
|
<script src="{{ '/assets/js/just-the-docs.js' | relative_url }}"></script>
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
{% for file in site.static_files %}
|
||||||
|
{% if file.path == site.favicon_ico or file.path == '/favicon.ico' %}
|
||||||
|
{% assign favicon = true %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if favicon %}
|
||||||
|
<link rel="icon" href="{{ site.favicon_ico | default: '/favicon.ico' | relative_url }}" type="image/x-icon">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% seo %}
|
{% seo %}
|
||||||
|
|
||||||
{% include head_custom.html %}
|
{% include head_custom.html %}
|
||||||
|
0
_includes/header_custom.html
Normal file
0
_includes/header_custom.html
Normal file
15
_includes/icons/code_copy.html
Normal file
15
_includes/icons/code_copy.html
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md -->
|
||||||
|
<symbol id="svg-copy" viewBox="0 0 16 16">
|
||||||
|
<title>Copy</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16">
|
||||||
|
<path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
|
||||||
|
<path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="svg-copied" viewBox="0 0 16 16">
|
||||||
|
<title>Copied</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16">
|
||||||
|
<path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/>
|
||||||
|
<path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
6
_includes/icons/document.html
Normal file
6
_includes/icons/document.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<symbol id="svg-doc" viewBox="0 0 24 24">
|
||||||
|
<title>Document</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
|
||||||
|
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
6
_includes/icons/expand.html
Normal file
6
_includes/icons/expand.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
|
||||||
|
<title>Expand</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
|
||||||
|
<polyline points="9 18 15 12 9 6"></polyline>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
5
_includes/icons/external_link.html
Normal file
5
_includes/icons/external_link.html
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE -->
|
||||||
|
<symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link">
|
||||||
|
<title id="svg-external-link-title">(external link)</title>
|
||||||
|
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line>
|
||||||
|
</symbol>
|
13
_includes/icons/icons.html
Normal file
13
_includes/icons/icons.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" class="d-none">
|
||||||
|
{% include icons/link.html %}
|
||||||
|
{% include icons/menu.html %}
|
||||||
|
{% include icons/expand.html %}
|
||||||
|
{% include icons/external_link.html %}
|
||||||
|
{% if site.search_enabled != false %}
|
||||||
|
{% include icons/document.html %}
|
||||||
|
{% include icons/search.html %}
|
||||||
|
{% endif %}
|
||||||
|
{% if site.enable_copy_code_button != false %}
|
||||||
|
{% include icons/code_copy.html %}
|
||||||
|
{% endif %}
|
||||||
|
</svg>
|
After Width: | Height: | Size: 432 B |
6
_includes/icons/link.html
Normal file
6
_includes/icons/link.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<symbol id="svg-link" viewBox="0 0 24 24">
|
||||||
|
<title>Link</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
|
||||||
|
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
6
_includes/icons/menu.html
Normal file
6
_includes/icons/menu.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<symbol id="svg-menu" viewBox="0 0 24 24">
|
||||||
|
<title>Menu</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
|
||||||
|
<line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
6
_includes/icons/search.html
Normal file
6
_includes/icons/search.html
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<symbol id="svg-search" viewBox="0 0 24 24">
|
||||||
|
<title>Search</title>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
|
||||||
|
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
|
||||||
|
</svg>
|
||||||
|
</symbol>
|
0
_includes/lunr/custom-data.json
Normal file
0
_includes/lunr/custom-data.json
Normal file
0
_includes/lunr/custom-index.js
Normal file
0
_includes/lunr/custom-index.js
Normal file
1
_includes/mermaid_config.js
Normal file
1
_includes/mermaid_config.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
@@ -1,40 +1,203 @@
|
|||||||
<nav role="navigation" aria-label="Main navigation">
|
{%- comment -%}
|
||||||
<ul class="navigation-list">
|
The `nav_order` values of pages affect the order in which they are shown in
|
||||||
{%- assign ordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order != nil" -%}
|
the navigation panel and in the automatically generated tables of contents.
|
||||||
{%- assign unordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order == nil" -%}
|
Sibling pages with the same `nav_order` value may be shown in any order.
|
||||||
{%- if site.nav_sort == 'case_insensitive' -%}
|
Sibling pages with no `nav_order` value are shown after all pages that have
|
||||||
{%- assign sorted_ordered_pages_list = ordered_pages_list | sort_natural:"nav_order" -%}
|
explicit `nav_order` values, ordered by their `title` values.
|
||||||
{%- assign sorted_unordered_pages_list = unordered_pages_list | sort_natural:"title" -%}
|
|
||||||
|
The `nav_order` and `title` values can be numbers or strings. To avoid build
|
||||||
|
failures, we sort numbers and strings separately. We sort numbers by their
|
||||||
|
values, and strings lexicographically. The case-sensitivity of string sorting
|
||||||
|
is determined by the configuration setting of `nav_sort`. Pages with no `title`
|
||||||
|
value are excluded from the navigation.
|
||||||
|
|
||||||
|
Note: Numbers used as `title` or `nav_order` values should not be in quotes,
|
||||||
|
unless you intend them to be lexicographically ordered. Numbers are written
|
||||||
|
without spaces or thousands-separators. Negative numbers are preceded by `-`.
|
||||||
|
Floats are written with the integral and fractional parts separated by `.`.
|
||||||
|
(Bounds on the magnitude and precision are presumably the same as in Liquid.)
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{%- assign title_pages = include.pages
|
||||||
|
| where_exp: "item", "item.title != nil" -%}
|
||||||
|
|
||||||
|
{%- comment -%}
|
||||||
|
A page with `nav_exclude: true` does not appear in the main navigation.
|
||||||
|
If it has a `parent`, it may appear in the parent's table of contents.
|
||||||
|
If it specifies `has_children: true`, it should appear in the breadcrumbs
|
||||||
|
of the child pages, but its order in relation to other pages is irrelevant.
|
||||||
|
Pages that never appear can be removed from the pages that need to be sorted.
|
||||||
|
This optimisation can be significant on a site with many pages.
|
||||||
|
|
||||||
|
In Jekyll 4, the pages to be sorted can be filtered by:
|
||||||
|
|
||||||
|
{%- assign title_pages = title_pages
|
||||||
|
| where_exp: "item", "item.nav_exclude != true or item.parent != nil" -%}
|
||||||
|
|
||||||
|
That filter is not allowed in Jekyll 3. The following iterative code gives the
|
||||||
|
same effect, but it is activated only when it will filter more than 50% of the
|
||||||
|
pages.
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{%- unless title_pages == empty -%}
|
||||||
|
{%- assign unsorted_pages = title_pages
|
||||||
|
| where_exp: "item", "item.parent == nil"
|
||||||
|
| where_exp: "item", "item.nav_exclude == true" -%}
|
||||||
|
{%- assign title_pages_size = title_pages.size -%}
|
||||||
|
{%- assign unsorted_pages_percent = unsorted_pages.size
|
||||||
|
| times: 100 | divided_by: title_pages_size -%}
|
||||||
|
{%- if unsorted_pages_percent > 50 -%}
|
||||||
|
{%- assign sorted_pages = "" | split: "" -%}
|
||||||
|
{%- for item in title_pages -%}
|
||||||
|
{%- if item.nav_exclude != true or item.parent -%}
|
||||||
|
{%- assign sorted_pages = sorted_pages | push: item -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- assign title_pages = sorted_pages -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
|
||||||
|
{%- assign nav_order_pages = title_pages
|
||||||
|
| where_exp: "item", "item.nav_order != nil" -%}
|
||||||
|
{%- assign title_order_pages = title_pages
|
||||||
|
| where_exp: "item", "item.nav_order == nil" -%}
|
||||||
|
|
||||||
|
{%- comment -%}
|
||||||
|
Divide the arrays of `nav_order_pages` and `title_order_pages` according to
|
||||||
|
the type of value.
|
||||||
|
|
||||||
|
The first character of the result of `jsonify` is `"` only for strings.
|
||||||
|
Grouping by a single character also ensures the number of groups is small.
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{%- assign nav_number_pages = "" | split: "" -%}
|
||||||
|
{%- assign nav_string_pages = "" | split: "" -%}
|
||||||
|
{%- assign nav_order_groups = nav_order_pages
|
||||||
|
| group_by_exp: "item", "item.nav_order | jsonify | slice: 0" -%}
|
||||||
|
{%- for group in nav_order_groups -%}
|
||||||
|
{%- if group.name == '"' -%}
|
||||||
|
{%- assign nav_string_pages = group.items -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- assign sorted_ordered_pages_list = ordered_pages_list | sort:"nav_order" -%}
|
{%- assign nav_number_pages = nav_number_pages | concat: group.items -%}
|
||||||
{%- assign sorted_unordered_pages_list = unordered_pages_list | sort:"title" -%}
|
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- assign pages_list = sorted_ordered_pages_list | concat: sorted_unordered_pages_list -%}
|
{%- endfor -%}
|
||||||
{%- for node in pages_list -%}
|
|
||||||
|
{%- unless nav_number_pages == empty -%}
|
||||||
|
{%- assign nav_number_pages = nav_number_pages | sort: "nav_order" -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
|
||||||
|
{%- unless nav_string_pages == empty -%}
|
||||||
|
{%- if site.nav_sort == 'case_insensitive' -%}
|
||||||
|
{%- assign nav_string_pages = nav_string_pages | sort_natural: "nav_order" -%}
|
||||||
|
{%- else -%}
|
||||||
|
{%- assign nav_string_pages = nav_string_pages | sort: "nav_order" -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
|
||||||
|
{%- assign title_number_pages = "" | split: "" -%}
|
||||||
|
{%- assign title_string_pages = "" | split: "" -%}
|
||||||
|
{%- assign title_order_groups = title_order_pages
|
||||||
|
| group_by_exp: "item", "item.title | jsonify | slice: 0" -%}
|
||||||
|
{%- for group in title_order_groups -%}
|
||||||
|
{%- if group.name == '"' -%}
|
||||||
|
{%- assign title_string_pages = group.items -%}
|
||||||
|
{%- else -%}
|
||||||
|
{%- assign title_number_pages = title_number_pages | concat: group.items -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
|
||||||
|
{%- unless title_number_pages == empty -%}
|
||||||
|
{%- assign title_number_pages = title_number_pages | sort: "title" -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
|
||||||
|
{%- unless title_string_pages == empty -%}
|
||||||
|
{%- if site.nav_sort == 'case_insensitive' -%}
|
||||||
|
{%- assign title_string_pages = title_string_pages | sort_natural: "title" -%}
|
||||||
|
{%- else -%}
|
||||||
|
{%- assign title_string_pages = title_string_pages | sort: "title" -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
|
||||||
|
{%- assign pages_list = nav_number_pages | concat: nav_string_pages
|
||||||
|
| concat: title_number_pages | concat: title_string_pages -%}
|
||||||
|
|
||||||
|
{%- assign first_level_pages = pages_list
|
||||||
|
| where_exp: "item", "item.parent == nil" -%}
|
||||||
|
{%- assign second_level_pages = pages_list
|
||||||
|
| where_exp: "item", "item.parent != nil"
|
||||||
|
| where_exp: "item", "item.grand_parent == nil" -%}
|
||||||
|
{%- assign third_level_pages = pages_list
|
||||||
|
| where_exp: "item", "item.grand_parent != nil" -%}
|
||||||
|
|
||||||
|
{%- comment -%}
|
||||||
|
The order of sibling pages in `pages_list` determines the order of display of
|
||||||
|
links to them in lists of navigation links and in auto-generated TOCs.
|
||||||
|
|
||||||
|
Note that Liquid evaluates conditions from right to left (and it does not allow
|
||||||
|
the use of parentheses). Some conditions are not so easy to express clearly...
|
||||||
|
|
||||||
|
For example, consider the following condition:
|
||||||
|
|
||||||
|
C: page.collection = = include.key and
|
||||||
|
page.url = = node.url or
|
||||||
|
page.grand_parent = = node.title or
|
||||||
|
page.parent = = node.title and
|
||||||
|
page.grand_parent = = nil
|
||||||
|
|
||||||
|
Here, `node` is a first-level page. The last part of the condition
|
||||||
|
-- namely: `page.parent = = node.title and page.grand_parent = = nil` --
|
||||||
|
is evaluated first; it holds if and only if `page` is a child of `node`.
|
||||||
|
|
||||||
|
The condition `page.grand_parent = = node.title or ...` holds when
|
||||||
|
`page` is a grandchild of node, OR `...` holds.
|
||||||
|
|
||||||
|
The condition `page.url = = node.url or ...` holds when
|
||||||
|
`page` is `node`, OR `...` holds.
|
||||||
|
|
||||||
|
The condition C: `page.collection = = include.key and ...` holds when we are
|
||||||
|
generating the nav links for a collection that includes `page`, AND `...` holds.
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
<ul class="nav-list">
|
||||||
|
{%- for node in first_level_pages -%}
|
||||||
{%- unless node.nav_exclude -%}
|
{%- unless node.nav_exclude -%}
|
||||||
{%- if node.parent == nil and node.title -%}
|
<li class="nav-list-item{% if page.collection == include.key and page.url == node.url or page.grand_parent == node.title or page.parent == node.title and page.grand_parent == nil %} active{% endif %}">
|
||||||
<li class="navigation-list-item{% if page.url == node.url or page.parent == node.title or page.grand_parent == node.title %} active{% endif %}">
|
|
||||||
{%- if page.parent == node.title or page.grand_parent == node.title -%}
|
|
||||||
{%- assign first_level_url = node.url | absolute_url -%}
|
|
||||||
{%- endif -%}
|
|
||||||
<a href="{{ node.url | absolute_url }}" class="navigation-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a>
|
|
||||||
{%- if node.has_children -%}
|
{%- if node.has_children -%}
|
||||||
{%- assign children_list = pages_list | where: "parent", node.title -%}
|
<a href="#" class="nav-list-expander" aria-label="toggle links in {{ node.title }} category">
|
||||||
<ul class="navigation-list-child-list ">
|
<svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg>
|
||||||
|
</a>
|
||||||
|
{%- endif -%}
|
||||||
|
<a href="{{ node.url | relative_url }}" class="nav-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a>
|
||||||
|
{%- if node.has_children -%}
|
||||||
|
{%- assign children_list = second_level_pages
|
||||||
|
| where: "parent", node.title -%}
|
||||||
|
{%- if node.child_nav_order == 'desc' or node.child_nav_order == 'reversed' -%}
|
||||||
|
{%- assign children_list = children_list | reverse -%}
|
||||||
|
{%- endif -%}
|
||||||
|
<ul class="nav-list">
|
||||||
{%- for child in children_list -%}
|
{%- for child in children_list -%}
|
||||||
{%- unless child.nav_exclude -%}
|
{%- unless child.nav_exclude -%}
|
||||||
<li class="navigation-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}">
|
<li class="nav-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}">
|
||||||
{%- if page.url == child.url or page.parent == child.title -%}
|
|
||||||
{%- assign second_level_url = child.url | absolute_url -%}
|
|
||||||
{%- endif -%}
|
|
||||||
<a href="{{ child.url | absolute_url }}" class="navigation-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a>
|
|
||||||
{%- if child.has_children -%}
|
{%- if child.has_children -%}
|
||||||
{%- assign grand_children_list = pages_list | where: "parent", child.title | where: "grand_parent", node.title -%}
|
<a href="#" class="nav-list-expander" aria-label="toggle links in {{ child.title }} category">
|
||||||
<ul class="navigation-list-child-list">
|
<svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg>
|
||||||
|
</a>
|
||||||
|
{%- endif -%}
|
||||||
|
<a href="{{ child.url | relative_url }}" class="nav-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a>
|
||||||
|
{%- if child.has_children -%}
|
||||||
|
{%- assign grand_children_list = third_level_pages
|
||||||
|
| where: "parent", child.title
|
||||||
|
| where: "grand_parent", node.title -%}
|
||||||
|
{%- if child.child_nav_order == 'desc' or child.child_nav_order == 'reversed' -%}
|
||||||
|
{%- assign grand_children_list = grand_children_list | reverse -%}
|
||||||
|
{%- endif -%}
|
||||||
|
<ul class="nav-list">
|
||||||
{%- for grand_child in grand_children_list -%}
|
{%- for grand_child in grand_children_list -%}
|
||||||
<li class="navigation-list-item {% if page.url == grand_child.url %} active{% endif %}">
|
{%- unless grand_child.nav_exclude -%}
|
||||||
<a href="{{ grand_child.url | absolute_url }}" class="navigation-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a>
|
<li class="nav-list-item {% if page.url == grand_child.url %} active{% endif %}">
|
||||||
|
<a href="{{ grand_child.url | relative_url }}" class="nav-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
{%- endunless -%}
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
</ul>
|
</ul>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
@@ -44,8 +207,45 @@
|
|||||||
</ul>
|
</ul>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
</li>
|
</li>
|
||||||
{%- endif -%}
|
|
||||||
{%- endunless -%}
|
{%- endunless -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{%- comment -%}
|
||||||
|
`page.collection` is the name of the Jekyll collection that contains the page,
|
||||||
|
if any, and otherwise nil. Similarly for `include.key`.
|
||||||
|
|
||||||
|
If the current page is in the collection (if any) whose navigation is currently
|
||||||
|
being generated, the following code sets `first_level_url` to the URL used in
|
||||||
|
the page's top-level breadcrumb (if any), and `second_level_url` to that used
|
||||||
|
in the page's second-level breadcrumb (if any).
|
||||||
|
|
||||||
|
For pages with children, the code also sets `toc_list` to the list of child pages,
|
||||||
|
reversing the order if needed.
|
||||||
|
{%- endcomment -%}
|
||||||
|
|
||||||
|
{%- if page.collection == include.key -%}
|
||||||
|
{%- for node in first_level_pages -%}
|
||||||
|
{%- if page.grand_parent == node.title or page.parent == node.title and page.grand_parent == nil -%}
|
||||||
|
{%- assign first_level_url = node.url | relative_url -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- if node.has_children -%}
|
||||||
|
{%- assign children_list = second_level_pages | where: "parent", node.title -%}
|
||||||
|
{%- for child in children_list -%}
|
||||||
|
{%- if child.has_children -%}
|
||||||
|
{%- if page.url == child.url or page.parent == child.title and page.grand_parent == child.parent -%}
|
||||||
|
{%- assign second_level_url = child.url | relative_url -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
</ul>
|
{%- endif -%}
|
||||||
</nav>
|
{%- endfor -%}
|
||||||
|
{%- if page.has_children == true and page.has_toc != false -%}
|
||||||
|
{%- assign toc_list = pages_list
|
||||||
|
| where: "parent", page.title
|
||||||
|
| where_exp: "item", "item.grand_parent == page.parent" -%}
|
||||||
|
{%- if page.child_nav_order == 'desc' or page.child_nav_order == 'reversed' -%}
|
||||||
|
{%- assign toc_list = toc_list | reverse -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
0
_includes/nav_footer_custom.html
Normal file
0
_includes/nav_footer_custom.html
Normal file
1
_includes/search_placeholder_custom.html
Normal file
1
_includes/search_placeholder_custom.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Search {{site.title}}
|
1
_includes/toc_heading_custom.html
Normal file
1
_includes/toc_heading_custom.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<h2 class="text-delta">Table of contents</h2>
|
104
_includes/vendor/anchor_headings.html
vendored
104
_includes/vendor/anchor_headings.html
vendored
@@ -1,18 +1,46 @@
|
|||||||
{% capture headingsWorkspace %}
|
{% capture headingsWorkspace %}
|
||||||
{% comment %}
|
{% comment %}
|
||||||
Version 1.0.3
|
Copyright (c) 2018 Vladimir "allejo" Jimenez
|
||||||
|
|
||||||
|
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
|
||||||
|
NONINFRINGEMENT. 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.
|
||||||
|
{% endcomment %}
|
||||||
|
{% comment %}
|
||||||
|
Version 1.0.12
|
||||||
https://github.com/allejo/jekyll-anchor-headings
|
https://github.com/allejo/jekyll-anchor-headings
|
||||||
|
|
||||||
"Be the pull request you wish to see in the world." ~Ben Balter
|
"Be the pull request you wish to see in the world." ~Ben Balter
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
{% include anchor_headings.html html=content %}
|
{% include anchor_headings.html html=content anchorBody="#" %}
|
||||||
|
|
||||||
Parameters:
|
Parameters:
|
||||||
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
||||||
|
|
||||||
Optional Parameters:
|
Optional Parameters:
|
||||||
* beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
|
* beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
|
||||||
|
* headerAttrs (string) : '' - Any custom HTML attributes that will be added to the heading tag; you may NOT use `id`;
|
||||||
|
the `%heading%` and `%html_id%` placeholders are available
|
||||||
|
* anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`;
|
||||||
|
the `%heading%` and `%html_id%` placeholders are available
|
||||||
* anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
|
* anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
|
||||||
* anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
|
* anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
|
||||||
* anchorTitle (string) : '' - The `title` attribute that will be used for anchors
|
* anchorTitle (string) : '' - The `title` attribute that will be used for anchors
|
||||||
@@ -20,6 +48,7 @@
|
|||||||
* h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
|
* h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
|
||||||
* bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
|
* bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
|
||||||
* bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
|
* bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
|
||||||
|
* generateId (true) : false - Set to true if a header without id should generate an id to use.
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
The original HTML with the addition of anchors inside of all of the h1-h6 headings.
|
The original HTML with the addition of anchors inside of all of the h1-h6 headings.
|
||||||
@@ -28,6 +57,7 @@
|
|||||||
{% assign minHeader = include.h_min | default: 1 %}
|
{% assign minHeader = include.h_min | default: 1 %}
|
||||||
{% assign maxHeader = include.h_max | default: 6 %}
|
{% assign maxHeader = include.h_max | default: 6 %}
|
||||||
{% assign beforeHeading = include.beforeHeading %}
|
{% assign beforeHeading = include.beforeHeading %}
|
||||||
|
{% assign headerAttrs = include.headerAttrs %}
|
||||||
{% assign nodes = include.html | split: '<h' %}
|
{% assign nodes = include.html | split: '<h' %}
|
||||||
|
|
||||||
{% capture edited_headings %}{% endcapture %}
|
{% capture edited_headings %}{% endcapture %}
|
||||||
@@ -42,39 +72,72 @@
|
|||||||
{% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
|
{% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
|
||||||
{% assign headerLevel = nextChar | times: 1 %}
|
{% assign headerLevel = nextChar | times: 1 %}
|
||||||
|
|
||||||
<!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's try to fix it -->
|
<!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's see if we need to fix it -->
|
||||||
{% if headerLevel == 0 %}
|
{% if headerLevel == 0 %}
|
||||||
{% if nextChar != '<' and nextChar != '' %}
|
<!-- Split up the node based on closing angle brackets and get the first one. -->
|
||||||
|
{% assign firstChunk = node | split: '>' | first %}
|
||||||
|
|
||||||
|
<!-- If the first chunk does NOT contain a '<', that means we've broken another HTML tag that starts with 'h' -->
|
||||||
|
{% unless firstChunk contains '<' %}
|
||||||
{% capture node %}<h{{ node }}{% endcapture %}
|
{% capture node %}<h{{ node }}{% endcapture %}
|
||||||
{% endif %}
|
{% endunless %}
|
||||||
|
|
||||||
{% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
|
{% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
|
||||||
{% continue %}
|
{% continue %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% assign _workspace = node | split: '</h' %}
|
{% capture _closingTag %}</h{{ headerLevel }}>{% endcapture %}
|
||||||
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
{% assign _workspace = node | split: _closingTag %}
|
||||||
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
|
||||||
{% assign html_id = _idWorkspace[0] %}
|
|
||||||
|
|
||||||
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
||||||
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
||||||
|
{% assign escaped_header = header | strip_html | strip %}
|
||||||
|
|
||||||
|
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
||||||
|
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
||||||
|
{% assign _html_class = _classWorkspace[0] %}
|
||||||
|
|
||||||
|
{% if _html_class contains "no_anchor" %}
|
||||||
|
{% assign skip_anchor = true %}
|
||||||
|
{% else %}
|
||||||
|
{% assign skip_anchor = false %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
||||||
|
{% if _idWorkspace[1] %}
|
||||||
|
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
||||||
|
{% assign html_id = _idWorkspace[0] %}
|
||||||
|
{% elsif include.generateId %}
|
||||||
|
<!-- If the header did not have an id we create one. -->
|
||||||
|
{% assign html_id = escaped_header | slugify %}
|
||||||
|
{% if html_id == "" %}
|
||||||
|
{% assign html_id = false %}
|
||||||
|
{% endif %}
|
||||||
|
{% capture headerAttrs %}{{ headerAttrs }} id="%html_id%"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<!-- Build the anchor to inject for our heading -->
|
<!-- Build the anchor to inject for our heading -->
|
||||||
{% capture anchor %}{% endcapture %}
|
{% capture anchor %}{% endcapture %}
|
||||||
|
|
||||||
{% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
|
{% if skip_anchor == false and html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
|
||||||
{% capture anchor %}href="#{{ html_id}}"{% endcapture %}
|
{% if headerAttrs %}
|
||||||
|
{% capture _hAttrToStrip %}{{ _hAttrToStrip | split: '>' | first }} {{ headerAttrs | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchor %}href="#{{ html_id }}"{% endcapture %}
|
||||||
|
|
||||||
{% if include.anchorClass %}
|
{% if include.anchorClass %}
|
||||||
{% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
|
{% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if include.anchorTitle %}
|
{% if include.anchorTitle %}
|
||||||
{% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %}
|
{% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', escaped_header }}"{% endcapture %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', header | default: '' }}</a>{% endcapture %}
|
{% if include.anchorAttrs %}
|
||||||
|
{% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', escaped_header | default: '' }}</a>{% endcapture %}
|
||||||
|
|
||||||
<!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
|
<!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
|
||||||
{% if beforeHeading %}
|
{% if beforeHeading %}
|
||||||
@@ -85,7 +148,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% capture new_heading %}
|
{% capture new_heading %}
|
||||||
<h{{ _hAttrToStrip }}
|
<h{{ _hAttrToStrip }}
|
||||||
{{ include.bodyPrefix }}
|
{{ include.bodyPrefix }}
|
||||||
{% if beforeHeading %}
|
{% if beforeHeading %}
|
||||||
{{ anchor }}{{ header }}
|
{{ anchor }}{{ header }}
|
||||||
@@ -93,8 +156,17 @@
|
|||||||
{{ header }}{{ anchor }}
|
{{ header }}{{ anchor }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ include.bodySuffix }}
|
{{ include.bodySuffix }}
|
||||||
</h{{ _workspace | last }}
|
</h{{ headerLevel }}>
|
||||||
{% endcapture %}
|
{% endcapture %}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If we have content after the `</hX>` tag, then we'll want to append that here so we don't lost any content.
|
||||||
|
-->
|
||||||
|
{% assign chunkCount = _workspace | size %}
|
||||||
|
{% if chunkCount > 1 %}
|
||||||
|
{% capture new_heading %}{{ new_heading }}{{ _workspace | last }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
|
{% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
|
{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
|
@@ -4,136 +4,38 @@ layout: table_wrappers
|
|||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
||||||
<html lang="{{ site.lang | default: "en-US" }}">
|
<html lang="{{ site.lang | default: 'en-US' }}">
|
||||||
{% include head.html %}
|
{% include head.html %}
|
||||||
<body>
|
<body>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
<a class="skip-to-main" href="#main-content">Skip to main content</a>
|
||||||
<symbol id="link" viewBox="0 0 16 16">
|
{% include icons/icons.html %}
|
||||||
<title>Link</title>
|
{% include components/sidebar.html %}
|
||||||
<path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path>
|
<div class="main" id="top">
|
||||||
</symbol>
|
{% include components/header.html %}
|
||||||
</svg>
|
<div id="main-content-wrap" class="main-content-wrap">
|
||||||
|
{% include components/breadcrumbs.html %}
|
||||||
<div class="page-wrap">
|
<div id="main-content" class="main-content" role="main">
|
||||||
<div class="side-bar">
|
|
||||||
<div class="site-header">
|
|
||||||
<a href="{{ site.url }}{{ site.baseurl }}" class="site-title lh-tight">{% include title.html %}</a>
|
|
||||||
<button class="menu-button fs-3 js-main-nav-trigger" data-text-toggle="Hide" type="button">Menu</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="navigation main-nav js-main-nav">
|
|
||||||
{% include nav.html %}
|
|
||||||
</div>
|
|
||||||
<footer class="site-footer">
|
|
||||||
<p class="text-small text-grey-dk-000 mb-4">This site uses <a href="https://github.com/pmarsceill/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
<div class="main-content-wrap js-main-content" tabindex="0">
|
|
||||||
<div class="main-content" id="top">
|
|
||||||
<div class="page-header js-page-header">
|
|
||||||
{% if site.search_enabled != false %}
|
|
||||||
<div class="search">
|
|
||||||
<div class="search-input-wrap">
|
|
||||||
<input type="text" class="js-search-input search-input" tabindex="0" placeholder="Search {{ site.title }}" aria-label="Search {{ site.title }}" autocomplete="off">
|
|
||||||
<svg width="14" height="14" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg" class="search-icon"><title>Search</title><g fill-rule="nonzero"><path d="M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z"/><path d="M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z"/></g></svg>
|
|
||||||
</div>
|
|
||||||
<div class="js-search-results search-results-wrap"></div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% if site.aux_links != nil %}
|
|
||||||
<ul class="list-style-none text-small aux-nav">
|
|
||||||
{% for link in site.aux_links %}
|
|
||||||
<li class="d-inline-block my-0{% unless forloop.last %} mr-2{% endunless %}">
|
|
||||||
<a href="{{ link.last }}"
|
|
||||||
{% if site.aux_links_new_tab %}
|
|
||||||
target="_blank" rel="noopener noreferrer"
|
|
||||||
{% endif %}
|
|
||||||
>
|
|
||||||
{{ link.first }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="page">
|
|
||||||
{% unless page.url == "/" %}
|
|
||||||
{% if page.parent %}
|
|
||||||
<nav class="breadcrumb-nav">
|
|
||||||
<ol class="breadcrumb-nav-list">
|
|
||||||
{% if page.grand_parent %}
|
|
||||||
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
|
|
||||||
<li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
|
|
||||||
{% else %}
|
|
||||||
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
|
|
||||||
{% endif %}
|
|
||||||
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
{% endif %}
|
|
||||||
{% endunless %}
|
|
||||||
<div id="main-content" class="page-content" role="main">
|
|
||||||
{% if site.heading_anchors != false %}
|
{% if site.heading_anchors != false %}
|
||||||
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#link\"></use></svg>" anchorClass="anchor-heading" %}
|
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ content }}
|
{{ content }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if page.has_children == true and page.has_toc != false %}
|
{% if page.has_children == true and page.has_toc != false %}
|
||||||
<hr>
|
{% include components/children_nav.html toc_list=toc_list %}
|
||||||
<h2 class="text-delta">Table of contents</h2>
|
|
||||||
<ul>
|
|
||||||
{%- assign children_list = pages_list | where: "parent", node.title -%}
|
|
||||||
{% for child in children_list %}
|
|
||||||
{% if child.parent == page.title and child.title != page.title and child.grand_parent == page.parent %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if site.footer_content != nil or site.last_edit_timestamp or site.gh_edit_link %}
|
{% include components/footer.html %}
|
||||||
<hr>
|
|
||||||
<footer>
|
|
||||||
{% if site.back_to_top %}
|
|
||||||
<p><a href="#top">{{ site.back_to_top_text }}</a></p>
|
|
||||||
{% endif %}
|
|
||||||
{% if site.footer_content != nil %}
|
|
||||||
<p class="text-small text-grey-dk-000 mb-0">{{ site.footer_content }}</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if site.last_edit_timestamp or site.gh_edit_link %}
|
|
||||||
<div class="d-flex mt-2">
|
|
||||||
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
|
|
||||||
<p class="text-small text-grey-dk-000 mb-0 mr-2">
|
|
||||||
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
{%
|
|
||||||
if
|
|
||||||
site.gh_edit_link and
|
|
||||||
site.gh_edit_link_text and
|
|
||||||
site.gh_edit_repository and
|
|
||||||
site.gh_edit_branch and
|
|
||||||
site.gh_edit_view_mode
|
|
||||||
|
|
||||||
%}
|
|
||||||
<p class="text-small text-grey-dk-000 mb-0">
|
|
||||||
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}/{{ page.path }}">{{ site.gh_edit_link_text }}</a>
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{% if site.search_enabled != false %}
|
||||||
|
{% include components/search_footer.html %}
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% if site.mermaid %}
|
||||||
|
{% include components/mermaid.html %}
|
||||||
|
{% endif %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
60
_layouts/minimal.html
Normal file
60
_layouts/minimal.html
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
layout: table_wrappers
|
||||||
|
---
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html lang="{{ site.lang | default: 'en-US' }}">
|
||||||
|
{% include head.html %}
|
||||||
|
<body>
|
||||||
|
<a class="skip-to-main" href="#main-content">Skip to main content</a>
|
||||||
|
{% include icons/icons.html %}
|
||||||
|
{% comment %}
|
||||||
|
This is a bandaid fix to properly render breadcrumbs; as of now, there is some variable leakage between the sidebar component (which computes parents, grandparents) and the breadcrumbs component. We plan to remove this in a future release to deduplicate code.
|
||||||
|
|
||||||
|
For more context, see https://github.com/just-the-docs/just-the-docs/pull/1058#discussion_r1057014053
|
||||||
|
{% endcomment %}
|
||||||
|
{% capture nav %}
|
||||||
|
{% assign pages_top_size = site.html_pages
|
||||||
|
| where_exp:"item", "item.title != nil"
|
||||||
|
| where_exp:"item", "item.parent == nil"
|
||||||
|
| where_exp:"item", "item.nav_exclude != true"
|
||||||
|
| size %}
|
||||||
|
{% if pages_top_size > 0 %}
|
||||||
|
{% include nav.html pages=site.html_pages key=nil %}
|
||||||
|
{% endif %}
|
||||||
|
{% if site.just_the_docs.collections %}
|
||||||
|
{% assign collections_size = site.just_the_docs.collections | size %}
|
||||||
|
{% for collection_entry in site.just_the_docs.collections %}
|
||||||
|
{% assign collection_key = collection_entry[0] %}
|
||||||
|
{% assign collection_value = collection_entry[1] %}
|
||||||
|
{% assign collection = site[collection_key] %}
|
||||||
|
{% if collection_value.nav_exclude != true %}
|
||||||
|
{% include nav.html pages=collection key=collection_key %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endcapture %}
|
||||||
|
<div id="main-content-wrap" class="main-content-wrap" id="top">
|
||||||
|
{% include components/breadcrumbs.html %}
|
||||||
|
<div id="main-content" class="main-content" role="main">
|
||||||
|
{% if site.heading_anchors != false %}
|
||||||
|
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %}
|
||||||
|
{% else %}
|
||||||
|
{{ content }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.has_children == true and page.has_toc != false %}
|
||||||
|
{% include components/children_nav.html toc_list=toc_list %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% include components/footer.html %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if site.mermaid %}
|
||||||
|
{% include components/mermaid.html %}
|
||||||
|
{% endif %}
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -1,19 +1,13 @@
|
|||||||
//
|
|
||||||
// Base element style overrides
|
// Base element style overrides
|
||||||
//
|
// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id
|
||||||
// stylelint-disable selector-no-type, selector-max-type
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
::selection {
|
|
||||||
color: $white;
|
|
||||||
background: $link-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
@include fs-4;
|
@include fs-4;
|
||||||
|
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,6 +17,7 @@ body {
|
|||||||
line-height: $body-line-height;
|
line-height: $body-line-height;
|
||||||
color: $body-text-color;
|
color: $body-text-color;
|
||||||
background-color: $body-background-color;
|
background-color: $body-background-color;
|
||||||
|
overflow-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
ol,
|
ol,
|
||||||
@@ -45,7 +40,8 @@ h2,
|
|||||||
h3,
|
h3,
|
||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6,
|
||||||
|
#toctitle {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -64,18 +60,12 @@ a {
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:not([class]) {
|
a:not([class]) {
|
||||||
text-decoration: none;
|
text-decoration: underline;
|
||||||
background-image: linear-gradient($border-color 0%, $border-color 100%);
|
text-decoration-color: $border-color;
|
||||||
background-repeat: repeat-x;
|
text-underline-offset: 2px;
|
||||||
background-position: 0 100%;
|
|
||||||
background-size: 1px 1px;
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-image: linear-gradient(
|
text-decoration-color: rgba($link-color, 0.45);
|
||||||
rgba($link-color, 0.45) 0%,
|
|
||||||
rgba($link-color, 0.45) 100%
|
|
||||||
);
|
|
||||||
background-size: 1px 1px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,3 +96,14 @@ hr {
|
|||||||
background-color: $border-color;
|
background-color: $border-color;
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// adds a GitHub-style sidebar to blockquotes
|
||||||
|
blockquote {
|
||||||
|
margin: 10px 0;
|
||||||
|
|
||||||
|
// resets user-agent stylesheets for blockquotes
|
||||||
|
margin-block-start: 0;
|
||||||
|
margin-inline-start: 0;
|
||||||
|
padding-left: 15px;
|
||||||
|
border-left: 3px solid $border-color;
|
||||||
|
}
|
||||||
|
@@ -1,15 +1,10 @@
|
|||||||
//
|
|
||||||
// Buttons and things that look like buttons
|
// Buttons and things that look like buttons
|
||||||
//
|
|
||||||
// stylelint-disable color-named
|
// stylelint-disable color-named
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding-top: 0.3em;
|
padding: 0.3em 1em;
|
||||||
padding-right: 1em;
|
|
||||||
padding-bottom: 0.3em;
|
|
||||||
padding-left: 1em;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
|
434
_sass/code.scss
434
_sass/code.scss
@@ -1,248 +1,204 @@
|
|||||||
//
|
|
||||||
// Code and syntax highlighting
|
// Code and syntax highlighting
|
||||||
//
|
// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty
|
||||||
// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type
|
|
||||||
|
|
||||||
code {
|
// {% raw %}
|
||||||
|
|
||||||
|
// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.
|
||||||
|
:not(pre, figure) {
|
||||||
|
& > code {
|
||||||
padding: 0.2em 0.15em;
|
padding: 0.2em 0.15em;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
background-color: $code-background-color;
|
background-color: $code-background-color;
|
||||||
border: $border $border-color;
|
border: $border $border-color;
|
||||||
border-radius: $border-radius;
|
border-radius: $border-radius;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pre.highlight,
|
// Avoid appearance of dark border around visited code links in Safari
|
||||||
figure.highlight {
|
a:visited code {
|
||||||
padding: $sp-3;
|
border-color: $border-color;
|
||||||
margin-top: 0;
|
}
|
||||||
margin-bottom: 0;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
background-color: $code-background-color;
|
|
||||||
|
|
||||||
|
// Content structure for highlighted code blocks using fences or Liquid
|
||||||
|
//
|
||||||
|
// ```[LANG]...```, no kramdown line_numbers:
|
||||||
|
// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code
|
||||||
|
//
|
||||||
|
// ```[LANG]...```, kramdown line_numbers = true:
|
||||||
|
// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code
|
||||||
|
// > div.table-wrapper > table.rouge-table > tbody > tr
|
||||||
|
// > td.rouge-gutter.gl > pre.lineno
|
||||||
|
// | td.rouge-code > pre
|
||||||
|
//
|
||||||
|
// {% highlight LANG %}...{% endhighlight %}:
|
||||||
|
// figure.highlight > pre > code.language-LANG
|
||||||
|
//
|
||||||
|
// {% highlight LANG linenos %}...{% endhighlight %}:
|
||||||
|
// figure.highlight > pre > code.language-LANG
|
||||||
|
// > div.table-wrapper > table.rouge-table > tbody > tr
|
||||||
|
// > td.gutter.gl > pre.lineno
|
||||||
|
// | td.code > pre
|
||||||
|
//
|
||||||
|
// ----...---- (AsciiDoc)
|
||||||
|
// div.listingblock > div.content > pre.rouge.highlight
|
||||||
|
//
|
||||||
|
// fix_linenos removes the outermost pre when it encloses table.rouge-table
|
||||||
|
//
|
||||||
|
// See docs/index-test.md for some tests.
|
||||||
|
//
|
||||||
|
// No kramdown line_numbers: fences and Liquid highlighting look the same.
|
||||||
|
// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?
|
||||||
|
|
||||||
|
// ```[LANG]...```
|
||||||
|
// or in AsciiDoc:
|
||||||
|
//
|
||||||
|
// ----
|
||||||
|
// ...
|
||||||
|
// ----
|
||||||
|
|
||||||
|
// the code may appear with 3 different types:
|
||||||
|
// container \ case: default case, code with line number, code with html rendering
|
||||||
|
// top level: div.highlighter-rouge, figure.highlight, figure.highlight
|
||||||
|
// second level: div.highlight, div.table-wrapper, pre.highlight
|
||||||
|
// third level: pre.highlight, td.code, absent
|
||||||
|
// last level: code, pre, code (optionality)
|
||||||
|
// highlighter level: span, span, span
|
||||||
|
// the spacing are only in the second level for case 1, 3 and in the third level for case 2
|
||||||
|
// in AsciiDoc, there is a parent container that contains optionally a title and the content.
|
||||||
|
|
||||||
|
// select top level container
|
||||||
|
div.highlighter-rouge,
|
||||||
|
div.listingblock > div.content,
|
||||||
|
figure.highlight {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: $sp-3;
|
||||||
|
background-color: $code-background-color;
|
||||||
|
border-radius: $border-radius;
|
||||||
|
box-shadow: none;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
position: relative;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
// copy button (or other button)
|
||||||
|
// the button appear only when there is a hover on the code or focus on button
|
||||||
|
> button {
|
||||||
|
width: $sp-3;
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
border: $sp-3 solid $code-background-color;
|
||||||
|
background-color: $code-background-color;
|
||||||
|
color: $body-text-color;
|
||||||
|
box-sizing: content-box;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
fill: $body-text-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button
|
||||||
|
&:hover {
|
||||||
|
> button {
|
||||||
|
cursor: copy;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// setting the spacing and scrollbar on the second level for the first case
|
||||||
|
// remove all space on the second and third level
|
||||||
|
// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc
|
||||||
|
@mixin scroll-and-spacing($code-div, $pre-select) {
|
||||||
|
#{$code-div} {
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: $sp-3;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#{$pre-select},
|
||||||
code {
|
code {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.highlighter-rouge {
|
// for Markdown
|
||||||
margin-bottom: $sp-3;
|
div.highlighter-rouge {
|
||||||
overflow: hidden;
|
@include scroll-and-spacing("div.highlight", "pre.highlight");
|
||||||
border-radius: $border-radius;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.highlight .c {
|
// for AsciiDoc. we also need to fix the margins for its parent container.
|
||||||
color: #586e75;
|
div.listingblock {
|
||||||
} // comment //
|
@include scroll-and-spacing("div.content", "div.content > pre");
|
||||||
.highlight .err {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // error //
|
|
||||||
.highlight .g {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // generic //
|
|
||||||
.highlight .k {
|
|
||||||
color: #859900;
|
|
||||||
} // keyword //
|
|
||||||
.highlight .l {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // literal //
|
|
||||||
.highlight .n {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // name //
|
|
||||||
.highlight .o {
|
|
||||||
color: #859900;
|
|
||||||
} // operator //
|
|
||||||
.highlight .x {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // other //
|
|
||||||
.highlight .p {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // punctuation //
|
|
||||||
.highlight .cm {
|
|
||||||
color: #586e75;
|
|
||||||
} // comment.multiline //
|
|
||||||
.highlight .cp {
|
|
||||||
color: #859900;
|
|
||||||
} // comment.preproc //
|
|
||||||
.highlight .c1 {
|
|
||||||
color: #586e75;
|
|
||||||
} // comment.single //
|
|
||||||
.highlight .cs {
|
|
||||||
color: #859900;
|
|
||||||
} // comment.special //
|
|
||||||
.highlight .gd {
|
|
||||||
color: #2aa198;
|
|
||||||
} // generic.deleted //
|
|
||||||
.highlight .ge {
|
|
||||||
font-style: italic;
|
|
||||||
color: #93a1a1;
|
|
||||||
} // generic.emph //
|
|
||||||
.highlight .gr {
|
|
||||||
color: #dc322f;
|
|
||||||
} // generic.error //
|
|
||||||
.highlight .gh {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // generic.heading //
|
|
||||||
.highlight .gi {
|
|
||||||
color: #859900;
|
|
||||||
} // generic.inserted //
|
|
||||||
.highlight .go {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // generic.output //
|
|
||||||
.highlight .gp {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // generic.prompt //
|
|
||||||
.highlight .gs {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #93a1a1;
|
|
||||||
} // generic.strong //
|
|
||||||
.highlight .gu {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // generic.subheading //
|
|
||||||
.highlight .gt {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // generic.traceback //
|
|
||||||
.highlight .kc {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // keyword.constant //
|
|
||||||
.highlight .kd {
|
|
||||||
color: #268bd2;
|
|
||||||
} // keyword.declaration //
|
|
||||||
.highlight .kn {
|
|
||||||
color: #859900;
|
|
||||||
} // keyword.namespace //
|
|
||||||
.highlight .kp {
|
|
||||||
color: #859900;
|
|
||||||
} // keyword.pseudo //
|
|
||||||
.highlight .kr {
|
|
||||||
color: #268bd2;
|
|
||||||
} // keyword.reserved //
|
|
||||||
.highlight .kt {
|
|
||||||
color: #dc322f;
|
|
||||||
} // keyword.type //
|
|
||||||
.highlight .ld {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // literal.date //
|
|
||||||
.highlight .m {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.number //
|
|
||||||
.highlight .s {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string //
|
|
||||||
.highlight .na {
|
|
||||||
color: #555;
|
|
||||||
} // name.attribute //
|
|
||||||
.highlight .nb {
|
|
||||||
color: #b58900;
|
|
||||||
} // name.builtin //
|
|
||||||
.highlight .nc {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.class //
|
|
||||||
.highlight .no {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // name.constant //
|
|
||||||
.highlight .nd {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.decorator //
|
|
||||||
.highlight .ni {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // name.entity //
|
|
||||||
.highlight .ne {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // name.exception //
|
|
||||||
.highlight .nf {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.function //
|
|
||||||
.highlight .nl {
|
|
||||||
color: #555;
|
|
||||||
} // name.label //
|
|
||||||
.highlight .nn {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // name.namespace //
|
|
||||||
.highlight .nx {
|
|
||||||
color: #555;
|
|
||||||
} // name.other //
|
|
||||||
.highlight .py {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // name.property //
|
|
||||||
.highlight .nt {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.tag //
|
|
||||||
.highlight .nv {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.variable //
|
|
||||||
.highlight .ow {
|
|
||||||
color: #859900;
|
|
||||||
} // operator.word //
|
|
||||||
.highlight .w {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // text.whitespace //
|
|
||||||
.highlight .mf {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.number.float //
|
|
||||||
.highlight .mh {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.number.hex //
|
|
||||||
.highlight .mi {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.number.integer //
|
|
||||||
.highlight .mo {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.number.oct //
|
|
||||||
.highlight .sb {
|
|
||||||
color: #586e75;
|
|
||||||
} // literal.string.backtick //
|
|
||||||
.highlight .sc {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string.char //
|
|
||||||
.highlight .sd {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // literal.string.doc //
|
|
||||||
.highlight .s2 {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string.double //
|
|
||||||
.highlight .se {
|
|
||||||
color: #cb4b16;
|
|
||||||
} // literal.string.escape //
|
|
||||||
.highlight .sh {
|
|
||||||
color: #93a1a1;
|
|
||||||
} // literal.string.heredoc //
|
|
||||||
.highlight .si {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string.interpol //
|
|
||||||
.highlight .sx {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string.other //
|
|
||||||
.highlight .sr {
|
|
||||||
color: #dc322f;
|
|
||||||
} // literal.string.regex //
|
|
||||||
.highlight .s1 {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string.single //
|
|
||||||
.highlight .ss {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.string.symbol //
|
|
||||||
.highlight .bp {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.builtin.pseudo //
|
|
||||||
.highlight .vc {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.variable.class //
|
|
||||||
.highlight .vg {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.variable.global //
|
|
||||||
.highlight .vi {
|
|
||||||
color: #268bd2;
|
|
||||||
} // name.variable.instance //
|
|
||||||
.highlight .il {
|
|
||||||
color: #2aa198;
|
|
||||||
} // literal.number.integer.long //
|
|
||||||
|
|
||||||
//
|
margin-top: 0;
|
||||||
// Code examples (rendered)
|
margin-bottom: $sp-3;
|
||||||
//
|
}
|
||||||
|
|
||||||
.code-example {
|
// {% highlight LANG %}...{% endhighlight %},
|
||||||
|
// {% highlight LANG linenos %}...{% endhighlight %}:
|
||||||
|
|
||||||
|
// setting the spacing and scrollbar on the second level for the thirt case
|
||||||
|
// the css rule are apply only to the last code enviroment
|
||||||
|
// setting the scroolbar
|
||||||
|
figure.highlight {
|
||||||
|
pre,
|
||||||
|
:not(pre) > code {
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: $sp-3;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ```[LANG]...```, kramdown line_numbers = true,
|
||||||
|
// {% highlight LANG linenos %}...{% endhighlight %}:
|
||||||
|
|
||||||
|
// setting the spacing and scrollbar on the thirt level for the second case
|
||||||
|
.highlight .table-wrapper {
|
||||||
|
padding: $sp-3 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
td,
|
||||||
|
pre {
|
||||||
|
@include fs-2;
|
||||||
|
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
background-color: $code-background-color;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.gl {
|
||||||
|
width: 1em;
|
||||||
|
padding-right: $sp-3;
|
||||||
|
padding-left: $sp-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
margin: 0;
|
||||||
|
line-height: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code examples: html render of a code
|
||||||
|
.code-example,
|
||||||
|
.listingblock > .title {
|
||||||
padding: $sp-3;
|
padding: $sp-3;
|
||||||
margin-bottom: $sp-3;
|
margin-bottom: $sp-3;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
@@ -250,6 +206,8 @@ figure.highlight {
|
|||||||
border-radius: $border-radius;
|
border-radius: $border-radius;
|
||||||
|
|
||||||
+ .highlighter-rouge,
|
+ .highlighter-rouge,
|
||||||
|
+ .sectionbody .listingblock,
|
||||||
|
+ .content,
|
||||||
+ figure.highlight {
|
+ figure.highlight {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-top: -$sp-4;
|
margin-top: -$sp-4;
|
||||||
@@ -260,3 +218,29 @@ figure.highlight {
|
|||||||
border-top-right-radius: 0;
|
border-top-right-radius: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Mermaid diagram code blocks should be left unstyled.
|
||||||
|
code.language-mermaid {
|
||||||
|
padding: 0;
|
||||||
|
background-color: inherit;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override OneDarkJekyll Colors for Code Blocks
|
||||||
|
.highlight,
|
||||||
|
pre.highlight {
|
||||||
|
background: $code-background-color; // Code Background
|
||||||
|
// For Backwards Compatibility Before $code-linenumber-color was added
|
||||||
|
@if variable-exists(code-linenumber-color) {
|
||||||
|
color: $code-linenumber-color; // Code Line Numbers
|
||||||
|
} @else {
|
||||||
|
color: $body-text-color; // Code Line Numbers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override OneDarkJekyll Colors for Code Blocks
|
||||||
|
.highlight pre {
|
||||||
|
background: $code-background-color; // Code Background
|
||||||
|
}
|
||||||
|
|
||||||
|
// {% endraw %}
|
||||||
|
@@ -1,16 +1,17 @@
|
|||||||
$body-background-color: $grey-dk-300;
|
$body-background-color: $grey-dk-300;
|
||||||
|
$body-heading-color: $grey-lt-000;
|
||||||
|
$body-text-color: $grey-lt-300;
|
||||||
|
$link-color: $blue-000;
|
||||||
|
$nav-child-link-color: $grey-dk-000;
|
||||||
$sidebar-color: $grey-dk-300;
|
$sidebar-color: $grey-dk-300;
|
||||||
|
$base-button-color: $grey-dk-250;
|
||||||
|
$btn-primary-color: $blue-200;
|
||||||
|
$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid
|
||||||
|
$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid
|
||||||
|
$feedback-color: darken($sidebar-color, 3%);
|
||||||
|
$table-background-color: $grey-dk-250;
|
||||||
|
$search-background-color: $grey-dk-250;
|
||||||
|
$search-result-preview-color: $grey-dk-000;
|
||||||
$border-color: $grey-dk-200;
|
$border-color: $grey-dk-200;
|
||||||
|
|
||||||
$body-text-color: $grey-lt-300;
|
@import "./vendor/OneDarkJekyll/syntax"; // this is the one-dark-vivid atom syntax theme
|
||||||
$body-heading-color: $grey-lt-000;
|
|
||||||
$nav-child-link-color: $grey-dk-000;
|
|
||||||
$search-result-preview-color: $grey-dk-000;
|
|
||||||
|
|
||||||
$link-color: $blue-000;
|
|
||||||
$btn-primary-color: $blue-200;
|
|
||||||
$base-button-color: $grey-dk-250;
|
|
||||||
|
|
||||||
$code-background-color: $grey-dk-250;
|
|
||||||
$search-background-color: $grey-dk-250;
|
|
||||||
$table-background-color: $grey-dk-250;
|
|
||||||
|
208
_sass/color_schemes/legacy_light.scss
Normal file
208
_sass/color_schemes/legacy_light.scss
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
// Moved from _sass/code.scss
|
||||||
|
|
||||||
|
.highlight .c {
|
||||||
|
color: #586e75;
|
||||||
|
} // comment //
|
||||||
|
.highlight .err {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // error //
|
||||||
|
.highlight .g {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // generic //
|
||||||
|
.highlight .k {
|
||||||
|
color: #859900;
|
||||||
|
} // keyword //
|
||||||
|
.highlight .l {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // literal //
|
||||||
|
.highlight .n {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // name //
|
||||||
|
.highlight .o {
|
||||||
|
color: #859900;
|
||||||
|
} // operator //
|
||||||
|
.highlight .x {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // other //
|
||||||
|
.highlight .p {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // punctuation //
|
||||||
|
.highlight .cm {
|
||||||
|
color: #586e75;
|
||||||
|
} // comment.multiline //
|
||||||
|
.highlight .cp {
|
||||||
|
color: #859900;
|
||||||
|
} // comment.preproc //
|
||||||
|
.highlight .c1 {
|
||||||
|
color: #586e75;
|
||||||
|
} // comment.single //
|
||||||
|
.highlight .cs {
|
||||||
|
color: #859900;
|
||||||
|
} // comment.special //
|
||||||
|
.highlight .gd {
|
||||||
|
color: #2aa198;
|
||||||
|
} // generic.deleted //
|
||||||
|
.highlight .ge {
|
||||||
|
font-style: italic;
|
||||||
|
color: #93a1a1;
|
||||||
|
} // generic.emph //
|
||||||
|
.highlight .gr {
|
||||||
|
color: #dc322f;
|
||||||
|
} // generic.error //
|
||||||
|
.highlight .gh {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // generic.heading //
|
||||||
|
.highlight .gi {
|
||||||
|
color: #859900;
|
||||||
|
} // generic.inserted //
|
||||||
|
.highlight .go {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // generic.output //
|
||||||
|
.highlight .gp {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // generic.prompt //
|
||||||
|
.highlight .gs {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #93a1a1;
|
||||||
|
} // generic.strong //
|
||||||
|
.highlight .gu {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // generic.subheading //
|
||||||
|
.highlight .gt {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // generic.traceback //
|
||||||
|
.highlight .kc {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // keyword.constant //
|
||||||
|
.highlight .kd {
|
||||||
|
color: #268bd2;
|
||||||
|
} // keyword.declaration //
|
||||||
|
.highlight .kn {
|
||||||
|
color: #859900;
|
||||||
|
} // keyword.namespace //
|
||||||
|
.highlight .kp {
|
||||||
|
color: #859900;
|
||||||
|
} // keyword.pseudo //
|
||||||
|
.highlight .kr {
|
||||||
|
color: #268bd2;
|
||||||
|
} // keyword.reserved //
|
||||||
|
.highlight .kt {
|
||||||
|
color: #dc322f;
|
||||||
|
} // keyword.type //
|
||||||
|
.highlight .ld {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // literal.date //
|
||||||
|
.highlight .m {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.number //
|
||||||
|
.highlight .s {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string //
|
||||||
|
.highlight .na {
|
||||||
|
color: #555;
|
||||||
|
} // name.attribute //
|
||||||
|
.highlight .nb {
|
||||||
|
color: #b58900;
|
||||||
|
} // name.builtin //
|
||||||
|
.highlight .nc {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.class //
|
||||||
|
.highlight .no {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // name.constant //
|
||||||
|
.highlight .nd {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.decorator //
|
||||||
|
.highlight .ni {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // name.entity //
|
||||||
|
.highlight .ne {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // name.exception //
|
||||||
|
.highlight .nf {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.function //
|
||||||
|
.highlight .nl {
|
||||||
|
color: #555;
|
||||||
|
} // name.label //
|
||||||
|
.highlight .nn {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // name.namespace //
|
||||||
|
.highlight .nx {
|
||||||
|
color: #555;
|
||||||
|
} // name.other //
|
||||||
|
.highlight .py {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // name.property //
|
||||||
|
.highlight .nt {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.tag //
|
||||||
|
.highlight .nv {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.variable //
|
||||||
|
.highlight .ow {
|
||||||
|
color: #859900;
|
||||||
|
} // operator.word //
|
||||||
|
.highlight .w {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // text.whitespace //
|
||||||
|
.highlight .mf {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.number.float //
|
||||||
|
.highlight .mh {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.number.hex //
|
||||||
|
.highlight .mi {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.number.integer //
|
||||||
|
.highlight .mo {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.number.oct //
|
||||||
|
.highlight .sb {
|
||||||
|
color: #586e75;
|
||||||
|
} // literal.string.backtick //
|
||||||
|
.highlight .sc {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string.char //
|
||||||
|
.highlight .sd {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // literal.string.doc //
|
||||||
|
.highlight .s2 {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string.double //
|
||||||
|
.highlight .se {
|
||||||
|
color: #cb4b16;
|
||||||
|
} // literal.string.escape //
|
||||||
|
.highlight .sh {
|
||||||
|
color: #93a1a1;
|
||||||
|
} // literal.string.heredoc //
|
||||||
|
.highlight .si {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string.interpol //
|
||||||
|
.highlight .sx {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string.other //
|
||||||
|
.highlight .sr {
|
||||||
|
color: #dc322f;
|
||||||
|
} // literal.string.regex //
|
||||||
|
.highlight .s1 {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string.single //
|
||||||
|
.highlight .ss {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.string.symbol //
|
||||||
|
.highlight .bp {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.builtin.pseudo //
|
||||||
|
.highlight .vc {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.variable.class //
|
||||||
|
.highlight .vg {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.variable.global //
|
||||||
|
.highlight .vi {
|
||||||
|
color: #268bd2;
|
||||||
|
} // name.variable.instance //
|
||||||
|
.highlight .il {
|
||||||
|
color: #2aa198;
|
||||||
|
} // literal.number.integer.long //
|
@@ -0,0 +1,15 @@
|
|||||||
|
$body-background-color: $white !default;
|
||||||
|
$body-heading-color: $grey-dk-300 !default;
|
||||||
|
$body-text-color: $grey-dk-100 !default;
|
||||||
|
$link-color: $purple-000 !default;
|
||||||
|
$nav-child-link-color: $grey-dk-100 !default;
|
||||||
|
$sidebar-color: $grey-lt-000 !default;
|
||||||
|
$base-button-color: #f7f7f7 !default;
|
||||||
|
$btn-primary-color: $purple-100 !default;
|
||||||
|
$code-background-color: $grey-lt-000 !default;
|
||||||
|
$feedback-color: darken($sidebar-color, 3%) !default;
|
||||||
|
$table-background-color: $white !default;
|
||||||
|
$search-background-color: $white !default;
|
||||||
|
$search-result-preview-color: $grey-dk-000 !default;
|
||||||
|
|
||||||
|
@import "./vendor/OneLightJekyll/syntax";
|
||||||
|
@@ -1,11 +1,9 @@
|
|||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
//
|
|
||||||
// Styles for rendered markdown in the .main-content container
|
// Styles for rendered markdown in the .main-content container
|
||||||
//
|
// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id
|
||||||
// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type
|
|
||||||
|
|
||||||
.page-content {
|
.main-content {
|
||||||
line-height: $content-line-height;
|
line-height: $content-line-height;
|
||||||
|
|
||||||
ol,
|
ol,
|
||||||
@@ -21,7 +19,6 @@
|
|||||||
a {
|
a {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ul,
|
ul,
|
||||||
@@ -59,7 +56,7 @@
|
|||||||
ol {
|
ol {
|
||||||
counter-reset: sub-counter;
|
counter-reset: sub-counter;
|
||||||
|
|
||||||
li {
|
> li {
|
||||||
&::before {
|
&::before {
|
||||||
content: counter(sub-counter, lower-alpha);
|
content: counter(sub-counter, lower-alpha);
|
||||||
counter-increment: sub-counter;
|
counter-increment: sub-counter;
|
||||||
@@ -82,14 +79,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.task-list {
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.task-list-item {
|
.task-list-item {
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: "";
|
content: "";
|
||||||
}
|
}
|
||||||
@@ -97,6 +87,9 @@
|
|||||||
|
|
||||||
.task-list-item-checkbox {
|
.task-list-item-checkbox {
|
||||||
margin-right: 0.6em;
|
margin-right: 0.6em;
|
||||||
|
margin-left: -1.4em;
|
||||||
|
|
||||||
|
// The same margin-left is used above for ul > li::before
|
||||||
}
|
}
|
||||||
|
|
||||||
hr + * {
|
hr + * {
|
||||||
@@ -109,7 +102,7 @@
|
|||||||
|
|
||||||
dl {
|
dl {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: max-content 1fr;
|
grid-template: auto / 10em 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
dt,
|
dt,
|
||||||
@@ -118,6 +111,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
dt {
|
dt {
|
||||||
|
grid-column: 1;
|
||||||
|
font-weight: 500;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
@@ -126,8 +121,42 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
dd {
|
dd {
|
||||||
|
grid-column: 2;
|
||||||
|
margin-bottom: 0;
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
font-weight: 500;
|
|
||||||
|
blockquote,
|
||||||
|
div,
|
||||||
|
dl,
|
||||||
|
dt,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
li,
|
||||||
|
ol,
|
||||||
|
p,
|
||||||
|
pre,
|
||||||
|
table,
|
||||||
|
ul,
|
||||||
|
.table-wrapper {
|
||||||
|
&:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dd,
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
dl:first-child {
|
||||||
|
dt:first-child,
|
||||||
|
dd:nth-child(2) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.anchor-heading {
|
.anchor-heading {
|
||||||
@@ -148,12 +177,13 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
fill: $link-color;
|
color: $link-color;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.anchor-heading:hover,
|
.anchor-heading:hover,
|
||||||
|
.anchor-heading:focus,
|
||||||
h1:hover > .anchor-heading,
|
h1:hover > .anchor-heading,
|
||||||
h2:hover > .anchor-heading,
|
h2:hover > .anchor-heading,
|
||||||
h3:hover > .anchor-heading,
|
h3:hover > .anchor-heading,
|
||||||
@@ -165,29 +195,45 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
h2,
|
h2,
|
||||||
h3,
|
h3,
|
||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6,
|
||||||
|
#toctitle {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-top: 1.5em;
|
margin-top: 1.5em;
|
||||||
margin-bottom: 0.25em;
|
margin-bottom: 0.25em;
|
||||||
|
|
||||||
&:first-child {
|
|
||||||
margin-top: $sp-2;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ table,
|
+ table,
|
||||||
+ .table-wrapper,
|
+ .table-wrapper,
|
||||||
+ .code-example,
|
+ .code-example,
|
||||||
+ .highlighter-rouge {
|
+ .highlighter-rouge,
|
||||||
|
+ .sectionbody .listingblock {
|
||||||
margin-top: 1em;
|
margin-top: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ p {
|
+ p:not(.label) {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> h1:first-child,
|
||||||
|
> h2:first-child,
|
||||||
|
> h3:first-child,
|
||||||
|
> h4:first-child,
|
||||||
|
> h5:first-child,
|
||||||
|
> h6:first-child,
|
||||||
|
> .sect1:first-child > h2,
|
||||||
|
> .sect2:first-child > h3,
|
||||||
|
> .sect3:first-child > h4,
|
||||||
|
> .sect4:first-child > h5,
|
||||||
|
> .sect5:first-child > h6 {
|
||||||
|
margin-top: $sp-2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1 @@
|
|||||||
|
// custom SCSS (or CSS) goes here
|
||||||
|
1
_sass/custom/setup.scss
Normal file
1
_sass/custom/setup.scss
Normal file
@@ -0,0 +1 @@
|
|||||||
|
// custom setup code goes here
|
@@ -1,14 +1,9 @@
|
|||||||
//
|
|
||||||
// Labels (not the form kind)
|
// Labels (not the form kind)
|
||||||
//
|
|
||||||
|
|
||||||
.label,
|
.label,
|
||||||
.label-blue {
|
.label-blue {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding-top: 0.16em;
|
padding: 0.16em 0.56em;
|
||||||
padding-right: 0.56em;
|
|
||||||
padding-bottom: 0.16em;
|
|
||||||
padding-left: 0.56em;
|
|
||||||
margin-right: $sp-2;
|
margin-right: $sp-2;
|
||||||
margin-left: $sp-2;
|
margin-left: $sp-2;
|
||||||
color: $white;
|
color: $white;
|
||||||
@@ -16,6 +11,7 @@
|
|||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background-color: $blue-100;
|
background-color: $blue-100;
|
||||||
@include fs-2;
|
@include fs-2;
|
||||||
|
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,32 +1,16 @@
|
|||||||
//
|
|
||||||
// The basic two column layout
|
// The basic two column layout
|
||||||
//
|
|
||||||
|
|
||||||
.page-wrap {
|
|
||||||
@include mq(md) {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
display: flex;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.side-bar {
|
.side-bar {
|
||||||
z-index: 100;
|
z-index: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
background-color: $sidebar-color;
|
background-color: $sidebar-color;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
flex-wrap: nowrap;
|
flex-flow: column nowrap;
|
||||||
position: absolute;
|
position: fixed;
|
||||||
width: $nav-width-md;
|
width: $nav-width-md;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
flex-direction: column;
|
|
||||||
border-right: $border $border-color;
|
border-right: $border $border-color;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
@@ -37,20 +21,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content-wrap {
|
.main {
|
||||||
@include mq(md) {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.main-content {
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
position: relative;
|
position: relative;
|
||||||
max-width: $content-width;
|
max-width: $content-width;
|
||||||
@@ -58,18 +29,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@include mq(lg) {
|
@include mq(lg) {
|
||||||
margin-left: calc(
|
// stylelint-disable function-name-case
|
||||||
(100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}
|
// disable for Max(), we want to use the CSS max() function
|
||||||
|
margin-left: Max(
|
||||||
|
#{$nav-width},
|
||||||
|
calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})
|
||||||
);
|
);
|
||||||
|
// stylelint-enable function-name-case
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.js-main-content:focus {
|
.main-content-wrap {
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page {
|
|
||||||
@include container;
|
@include container;
|
||||||
|
|
||||||
padding-top: $gutter-spacing-sm;
|
padding-top: $gutter-spacing-sm;
|
||||||
padding-bottom: $gutter-spacing-sm;
|
padding-bottom: $gutter-spacing-sm;
|
||||||
|
|
||||||
@@ -79,16 +51,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-header {
|
.main-header {
|
||||||
@include container;
|
z-index: 0;
|
||||||
display: none;
|
display: none;
|
||||||
padding-top: $gutter-spacing-sm;
|
|
||||||
padding-bottom: $gutter-spacing-sm;
|
|
||||||
background-color: $sidebar-color;
|
background-color: $sidebar-color;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: space-between;
|
||||||
height: $header-height;
|
height: $header-height;
|
||||||
background-color: $body-background-color;
|
background-color: $body-background-color;
|
||||||
border-bottom: $border $border-color;
|
border-bottom: $border $border-color;
|
||||||
@@ -103,7 +73,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.navigation,
|
.site-nav,
|
||||||
.site-header,
|
.site-header,
|
||||||
.site-footer {
|
.site-footer {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -113,10 +83,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.navigation {
|
.site-nav {
|
||||||
@include container;
|
display: none;
|
||||||
|
|
||||||
|
&.nav-open {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
|
display: block;
|
||||||
padding-top: $sp-8;
|
padding-top: $sp-8;
|
||||||
padding-bottom: $gutter-spacing-sm;
|
padding-bottom: $gutter-spacing-sm;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@@ -130,7 +105,6 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
z-index: 101;
|
|
||||||
height: $header-height;
|
height: $header-height;
|
||||||
max-height: $header-height;
|
max-height: $header-height;
|
||||||
border-bottom: $border $border-color;
|
border-bottom: $border $border-color;
|
||||||
@@ -139,6 +113,7 @@
|
|||||||
|
|
||||||
.site-title {
|
.site-title {
|
||||||
@include container;
|
@include container;
|
||||||
|
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -165,27 +140,42 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-button {
|
.site-button {
|
||||||
appearance: none;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: $gutter-spacing-sm;
|
padding: $gutter-spacing-sm;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: $link-color;
|
}
|
||||||
text-transform: uppercase;
|
|
||||||
background: transparent;
|
|
||||||
border: 0;
|
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
|
.site-header .site-button {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.site-title:hover {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
-90deg,
|
||||||
|
rgba($feedback-color, 1) 0%,
|
||||||
|
rgba($feedback-color, 0.8) 80%,
|
||||||
|
rgba($feedback-color, 0) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-button:hover {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
-90deg,
|
||||||
|
rgba($feedback-color, 1) 0%,
|
||||||
|
rgba($feedback-color, 0.8) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// stylelint-disable selector-max-type
|
// stylelint-disable selector-max-type
|
||||||
|
|
||||||
body {
|
body {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-bottom: $sp-10;
|
padding-bottom: $sp-10;
|
||||||
|
overflow-y: scroll;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
position: static;
|
position: static;
|
||||||
@@ -197,14 +187,23 @@ body {
|
|||||||
|
|
||||||
.site-footer {
|
.site-footer {
|
||||||
@include container;
|
@include container;
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
padding-top: $sp-4;
|
padding-top: $sp-4;
|
||||||
padding-bottom: $sp-4;
|
padding-bottom: $sp-4;
|
||||||
|
color: $grey-dk-000;
|
||||||
|
@include fs-2;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
position: static;
|
position: static;
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
width: $sp-5;
|
||||||
|
height: $sp-5;
|
||||||
|
color: $link-color;
|
||||||
|
}
|
||||||
|
@@ -1,11 +1,7 @@
|
|||||||
//
|
|
||||||
// Import external dependencies
|
// Import external dependencies
|
||||||
//
|
@import "./vendor/normalize.scss/normalize";
|
||||||
@import "./vendor/normalize.scss/normalize.scss";
|
|
||||||
|
|
||||||
//
|
|
||||||
// Modules
|
// Modules
|
||||||
//
|
|
||||||
@import "./base";
|
@import "./base";
|
||||||
@import "./layout";
|
@import "./layout";
|
||||||
@import "./content";
|
@import "./content";
|
||||||
@@ -17,3 +13,5 @@
|
|||||||
@import "./tables";
|
@import "./tables";
|
||||||
@import "./code";
|
@import "./code";
|
||||||
@import "./utilities/utilities";
|
@import "./utilities/utilities";
|
||||||
|
@import "./print";
|
||||||
|
@import "./skiptomain";
|
||||||
|
@@ -1,89 +1,204 @@
|
|||||||
//
|
|
||||||
// Main nav, breadcrumb, etc...
|
// Main nav, breadcrumb, etc...
|
||||||
//
|
// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity
|
||||||
.navigation-list {
|
|
||||||
|
.nav-list {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
|
||||||
|
|
||||||
.navigation-list-child-list {
|
.nav-list-item {
|
||||||
padding-left: $sp-3;
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
.navigation-list-link {
|
|
||||||
color: $nav-child-link-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navigation-list-item {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
position: absolute;
|
|
||||||
margin-top: 0.3em;
|
|
||||||
margin-left: -0.8em;
|
|
||||||
color: rgba($body-text-color, 0.3);
|
|
||||||
content: "- ";
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
&::before {
|
|
||||||
color: $body-text-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navigation-list-item {
|
|
||||||
@include fs-4;
|
@include fs-4;
|
||||||
|
|
||||||
|
position: relative;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
@include fs-3;
|
@include fs-3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navigation-list-child-list {
|
.nav-list-link {
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
.navigation-list-child-list {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navigation-list-link {
|
|
||||||
display: block;
|
display: block;
|
||||||
|
min-height: $nav-list-item-height-sm;
|
||||||
padding-top: $sp-1;
|
padding-top: $sp-1;
|
||||||
padding-bottom: $sp-1;
|
padding-bottom: $sp-1;
|
||||||
|
line-height: #{$nav-list-item-height-sm - 2 * $sp-1};
|
||||||
|
@if $nav-list-expander-right {
|
||||||
|
padding-right: $nav-list-item-height-sm;
|
||||||
|
padding-left: $gutter-spacing-sm;
|
||||||
|
} @else {
|
||||||
|
padding-right: $gutter-spacing-sm;
|
||||||
|
padding-left: $nav-list-item-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
min-height: $nav-list-item-height;
|
||||||
|
line-height: #{$nav-list-item-height - 2 * $sp-1};
|
||||||
|
@if $nav-list-expander-right {
|
||||||
|
padding-right: $nav-list-item-height;
|
||||||
|
padding-left: $gutter-spacing;
|
||||||
|
} @else {
|
||||||
|
padding-right: $gutter-spacing;
|
||||||
|
padding-left: $nav-list-item-height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.external > svg {
|
||||||
|
width: $sp-4;
|
||||||
|
height: $sp-4;
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: $body-heading-color;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Small screen nav
|
&:hover,
|
||||||
|
&.active {
|
||||||
.main-nav {
|
background-image: linear-gradient(
|
||||||
display: none;
|
-90deg,
|
||||||
|
rgba($feedback-color, 1) 0%,
|
||||||
&.nav-open {
|
rgba($feedback-color, 0.8) 80%,
|
||||||
display: block;
|
rgba($feedback-color, 0) 100%
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-list-expander {
|
||||||
|
position: absolute;
|
||||||
|
@if $nav-list-expander-right {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
width: $nav-list-item-height-sm;
|
||||||
|
height: $nav-list-item-height-sm;
|
||||||
|
padding: #{$nav-list-item-height-sm * 0.25};
|
||||||
|
color: $link-color;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
|
width: $nav-list-item-height;
|
||||||
|
height: $nav-list-item-height;
|
||||||
|
padding: #{$nav-list-item-height * 0.25};
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
-90deg,
|
||||||
|
rgba($feedback-color, 1) 0%,
|
||||||
|
rgba($feedback-color, 0.8) 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@if $nav-list-expander-right {
|
||||||
|
svg {
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-list {
|
||||||
|
display: none;
|
||||||
|
padding-left: $sp-3;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
.nav-list-item {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.nav-list-link {
|
||||||
|
color: $nav-child-link-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-list-expander {
|
||||||
|
color: $nav-child-link-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
> .nav-list-expander svg {
|
||||||
|
@if $nav-list-expander-right {
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
} @else {
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-list {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-category {
|
||||||
|
padding: $sp-2 $gutter-spacing-sm;
|
||||||
|
font-weight: 600;
|
||||||
|
text-align: start;
|
||||||
|
text-transform: uppercase;
|
||||||
|
border-bottom: $border $border-color;
|
||||||
|
@include fs-2;
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
padding: $sp-2 $gutter-spacing;
|
||||||
|
margin-top: $gutter-spacing-sm;
|
||||||
|
text-align: start;
|
||||||
|
|
||||||
|
&:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-list.nav-category-list {
|
||||||
|
> .nav-list-item {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
> .nav-list {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
> .nav-list-item {
|
||||||
|
> .nav-list-link {
|
||||||
|
color: $link-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-list-expander {
|
||||||
|
color: $link-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Aux nav
|
||||||
|
|
||||||
.aux-nav {
|
.aux-nav {
|
||||||
align-self: center;
|
height: 100%;
|
||||||
|
overflow-x: auto;
|
||||||
|
@include fs-2;
|
||||||
|
|
||||||
|
.aux-nav-list {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aux-nav-list-item {
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
padding-right: $gutter-spacing-sm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Breadcrumb nav
|
// Breadcrumb nav
|
||||||
|
|
||||||
.breadcrumb-nav {
|
.breadcrumb-nav {
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
margin-top: -$sp-4;
|
margin-top: -$sp-4;
|
||||||
|
40
_sass/print.scss
Normal file
40
_sass/print.scss
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
.site-footer,
|
||||||
|
.site-button,
|
||||||
|
#edit-this-page,
|
||||||
|
#back-to-top,
|
||||||
|
.site-nav,
|
||||||
|
.main-header {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.side-bar {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
border-right: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-header {
|
||||||
|
border-bottom: 1px solid $border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-size: $root-font-size !important;
|
||||||
|
font-weight: 700 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-small {
|
||||||
|
font-size: 8pt !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.highlight {
|
||||||
|
border: 1px solid $border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main {
|
||||||
|
max-width: none;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,94 +1,112 @@
|
|||||||
//
|
|
||||||
// Search input and autocomplete
|
// Search input and autocomplete
|
||||||
//
|
|
||||||
|
|
||||||
.search {
|
.search {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 99;
|
z-index: 2;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
height: 100%;
|
height: $sp-10;
|
||||||
margin-bottom: $sp-3;
|
padding: $sp-2;
|
||||||
|
transition: padding linear #{$transition-duration * 0.5};
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
margin-bottom: 0;
|
position: relative !important;
|
||||||
|
width: auto !important;
|
||||||
|
height: 100% !important;
|
||||||
|
padding: 0;
|
||||||
|
transition: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-input-wrap {
|
.search-input-wrap {
|
||||||
display: flex;
|
position: relative;
|
||||||
height: 100%;
|
z-index: 1;
|
||||||
padding: $sp-2;
|
height: $sp-8;
|
||||||
background-color: $search-background-color;
|
overflow: hidden;
|
||||||
border-radius: $border-radius;
|
border-radius: $border-radius;
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
||||||
|
transition: height linear #{$transition-duration * 0.5};
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
padding-top: 0;
|
position: absolute;
|
||||||
padding-right: 0;
|
width: 100%;
|
||||||
padding-bottom: 0;
|
max-width: $search-results-width;
|
||||||
padding-left: 0;
|
height: 100% !important;
|
||||||
background-color: $body-background-color;
|
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
transition: width ease $transition-duration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-input {
|
.search-input {
|
||||||
align-self: center;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-top: $sp-1;
|
height: 100%;
|
||||||
padding-bottom: $sp-1;
|
padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};
|
||||||
|
font-size: 16px;
|
||||||
|
color: $body-text-color;
|
||||||
background-color: $search-background-color;
|
background-color: $search-background-color;
|
||||||
border-top: 0;
|
border-top: 0;
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
order: 2;
|
border-radius: 0;
|
||||||
@include fs-4;
|
|
||||||
|
@include mq(md) {
|
||||||
|
padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};
|
||||||
|
font-size: 14px;
|
||||||
|
background-color: $body-background-color;
|
||||||
|
transition: padding-left linear #{$transition-duration * 0.5};
|
||||||
|
}
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
outline: 0;
|
outline: 0;
|
||||||
box-shadow: none;
|
|
||||||
|
|
||||||
+ .search-icon {
|
+ .search-label .search-icon {
|
||||||
fill: $link-color;
|
color: $link-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-label {
|
||||||
|
position: absolute;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
padding-left: $gutter-spacing-sm;
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
background-color: $body-background-color;
|
padding-left: $gutter-spacing;
|
||||||
@include fs-3;
|
transition: padding-left linear #{$transition-duration * 0.5};
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-icon {
|
||||||
|
width: #{$sp-4 * 1.2};
|
||||||
|
height: #{$sp-4 * 1.2};
|
||||||
|
align-self: center;
|
||||||
|
color: $grey-dk-000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-icon {
|
.search-results {
|
||||||
align-self: center;
|
|
||||||
margin-right: $sp-2;
|
|
||||||
fill: $grey-dk-000;
|
|
||||||
order: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-results-wrap {
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 100;
|
left: 0;
|
||||||
display: none;
|
display: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: $search-background-color;
|
max-height: calc(100% - #{$sp-10});
|
||||||
border-radius: $border-radius;
|
overflow-y: auto;
|
||||||
|
background-color: $search-background-color;
|
||||||
|
border-bottom-right-radius: $border-radius;
|
||||||
|
border-bottom-left-radius: $border-radius;
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
||||||
|
|
||||||
&.active {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
@include mq(md) {
|
@include mq(md) {
|
||||||
|
top: 100%;
|
||||||
width: $search-results-width;
|
width: $search-results-width;
|
||||||
|
max-height: calc(100vh - 200%) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-results-list {
|
.search-results-list {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
margin-top: $sp-1;
|
|
||||||
margin-bottom: $sp-1;
|
margin-bottom: $sp-1;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
@include fs-4;
|
@include fs-4;
|
||||||
@@ -105,38 +123,62 @@
|
|||||||
|
|
||||||
.search-result {
|
.search-result {
|
||||||
display: block;
|
display: block;
|
||||||
padding-top: $sp-1;
|
padding: $sp-1 $sp-3;
|
||||||
padding-right: $sp-3;
|
|
||||||
padding-bottom: $sp-1;
|
|
||||||
padding-left: $sp-3;
|
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&.active {
|
&.active {
|
||||||
background-color: $sidebar-color;
|
background-color: $feedback-color;
|
||||||
}
|
|
||||||
|
|
||||||
@include mq(md) {
|
|
||||||
padding-right: $sp-4;
|
|
||||||
padding-left: $sp-4;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-result-title {
|
.search-result-title {
|
||||||
display: block;
|
display: block;
|
||||||
padding-top: $sp-2;
|
padding-top: $sp-2;
|
||||||
padding-right: $sp-4;
|
|
||||||
padding-bottom: $sp-2;
|
padding-bottom: $sp-2;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 40%;
|
width: 40%;
|
||||||
word-wrap: break-word;
|
padding-right: $sp-2;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-result-doc {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
word-wrap: break-word;
|
||||||
|
|
||||||
|
&.search-result-doc-parent {
|
||||||
|
opacity: 0.5;
|
||||||
|
@include fs-3;
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
@include fs-2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-result-icon {
|
||||||
|
width: $sp-4;
|
||||||
|
height: $sp-4;
|
||||||
|
margin-right: $sp-2;
|
||||||
|
color: $link-color;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-result-doc-title {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-result-section {
|
||||||
|
margin-left: #{$sp-4 + $sp-2};
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
.search-result-rel-url {
|
.search-result-rel-url {
|
||||||
display: block;
|
display: block;
|
||||||
|
margin-left: #{$sp-4 + $sp-2};
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: $search-result-preview-color;
|
color: $search-result-preview-color;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
@@ -144,12 +186,14 @@
|
|||||||
@include fs-1;
|
@include fs-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-result-preview {
|
.search-result-previews {
|
||||||
display: block;
|
display: block;
|
||||||
padding-top: $sp-2;
|
padding-top: $sp-2;
|
||||||
padding-bottom: $sp-2;
|
padding-bottom: $sp-2;
|
||||||
padding-left: $sp-4;
|
padding-left: $sp-4;
|
||||||
|
margin-left: $sp-2;
|
||||||
color: $search-result-preview-color;
|
color: $search-result-preview-color;
|
||||||
|
word-wrap: break-word;
|
||||||
border-left: $border;
|
border-left: $border;
|
||||||
border-left-color: $border-color;
|
border-left-color: $border-color;
|
||||||
@include fs-2;
|
@include fs-2;
|
||||||
@@ -157,11 +201,111 @@
|
|||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 60%;
|
width: 60%;
|
||||||
|
padding-left: $sp-2;
|
||||||
|
margin-left: 0;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-result-preview + .search-result-preview {
|
||||||
|
margin-top: $sp-1;
|
||||||
|
}
|
||||||
|
|
||||||
.search-result-highlight {
|
.search-result-highlight {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: $link-color;
|
}
|
||||||
|
|
||||||
|
.search-no-result {
|
||||||
|
padding: $sp-2 $sp-3;
|
||||||
|
@include fs-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-button {
|
||||||
|
position: fixed;
|
||||||
|
right: $sp-4;
|
||||||
|
bottom: $sp-4;
|
||||||
|
display: flex;
|
||||||
|
width: $sp-9;
|
||||||
|
height: $sp-9;
|
||||||
|
background-color: $search-background-color;
|
||||||
|
border: 1px solid rgba($link-color, 0.3);
|
||||||
|
border-radius: #{$sp-9 * 0.5};
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-overlay {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 1;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
background-color: rgba(0, 0, 0, 0.3);
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity ease $transition-duration, width 0s $transition-duration,
|
||||||
|
height 0s $transition-duration;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-active {
|
||||||
|
.search {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-input-wrap {
|
||||||
|
height: $sp-10;
|
||||||
|
border-radius: 0;
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
width: $search-results-width;
|
||||||
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-input {
|
||||||
|
background-color: $search-background-color;
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
padding-left: 2.3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-label {
|
||||||
|
@include mq(md) {
|
||||||
|
padding-left: 0.6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-results {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-overlay {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
opacity: 1;
|
||||||
|
transition: opacity ease $transition-duration, width 0s, height 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
.main {
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header {
|
||||||
|
padding-top: $sp-10;
|
||||||
|
|
||||||
|
@include mq(md) {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
30
_sass/skiptomain.scss
Normal file
30
_sass/skiptomain.scss
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
// Skipnav
|
||||||
|
// Skip to main content
|
||||||
|
|
||||||
|
a.skip-to-main {
|
||||||
|
left: -999px;
|
||||||
|
position: absolute;
|
||||||
|
top: auto;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: -999;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.skip-to-main:focus,
|
||||||
|
a.skip-to-main:active {
|
||||||
|
color: $link-color;
|
||||||
|
background-color: $body-background-color;
|
||||||
|
left: auto;
|
||||||
|
top: auto;
|
||||||
|
width: 30%;
|
||||||
|
height: auto;
|
||||||
|
overflow: auto;
|
||||||
|
margin: 10px 35%;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border: 4px solid $btn-primary-color;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.2em;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
@@ -1,9 +1,9 @@
|
|||||||
@function rem($size, $unit: "") {
|
@function rem($size, $unit: "") {
|
||||||
$remSize: $size / $root-font-size;
|
$rem-size: $size / $root-font-size;
|
||||||
|
|
||||||
@if ($unit == false) {
|
@if $unit == false {
|
||||||
@return #{$remSize};
|
@return #{$rem-size};
|
||||||
} @else {
|
} @else {
|
||||||
@return #{$remSize}rem;
|
@return #{$rem-size}rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,74 +1,63 @@
|
|||||||
//
|
|
||||||
// Typography
|
// Typography
|
||||||
//
|
|
||||||
|
|
||||||
$body-font-family: -apple-system, BlinkMacSystemFont, "helvetica neue",
|
$body-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI",
|
||||||
helvetica, roboto, noto, "segoe ui", arial, sans-serif !default;
|
roboto, "Helvetica Neue", arial, sans-serif !default;
|
||||||
$mono-font-family: "SFMono-Regular", Menlo, Consolas, Monospace !default;
|
$mono-font-family: "SFMono-Regular", menlo, consolas, monospace !default;
|
||||||
$root-font-size: 16px !default; // Base font-size for rems
|
$root-font-size: 16px !default; // Base font-size for rems
|
||||||
$body-line-height: 1.4 !default;
|
$body-line-height: 1.4 !default;
|
||||||
$content-line-height: 1.6 !default;
|
$content-line-height: 1.6 !default;
|
||||||
$body-heading-line-height: 1.25 !default;
|
$body-heading-line-height: 1.25 !default;
|
||||||
|
|
||||||
//
|
// Font size
|
||||||
|
// `-sm` suffix is the size at the small (and above) media query
|
||||||
|
|
||||||
|
$font-size-1: 9px !default;
|
||||||
|
$font-size-1-sm: 10px !default;
|
||||||
|
$font-size-2: 11px !default; // h4 - uppercased!, h6 not uppercased, text-small
|
||||||
|
$font-size-3: 12px !default; // h5
|
||||||
|
$font-size-4: 14px !default;
|
||||||
|
$font-size-5: 16px !default; // h3
|
||||||
|
$font-size-6: 18px !default; // h2
|
||||||
|
$font-size-7: 24px !default;
|
||||||
|
$font-size-8: 32px !default; // h1
|
||||||
|
$font-size-9: 36px !default;
|
||||||
|
$font-size-10: 42px !default;
|
||||||
|
$font-size-10-sm: 48px !default;
|
||||||
|
|
||||||
// Colors
|
// Colors
|
||||||
//
|
|
||||||
|
|
||||||
$white: #fff !default;
|
$white: #fff !default;
|
||||||
|
|
||||||
$grey-dk-000: #959396 !default;
|
$grey-dk-000: #959396 !default;
|
||||||
$grey-dk-100: #5c5962 !default;
|
$grey-dk-100: #5c5962 !default;
|
||||||
$grey-dk-200: #44434d !default;
|
$grey-dk-200: #44434d !default;
|
||||||
$grey-dk-250: #302d36 !default;
|
$grey-dk-250: #302d36 !default;
|
||||||
$grey-dk-300: #27262b !default;
|
$grey-dk-300: #27262b !default;
|
||||||
|
|
||||||
$grey-lt-000: #f5f6fa !default;
|
$grey-lt-000: #f5f6fa !default;
|
||||||
$grey-lt-100: #eeebee !default;
|
$grey-lt-100: #eeebee !default;
|
||||||
$grey-lt-200: #ecebed !default;
|
$grey-lt-200: #ecebed !default;
|
||||||
$grey-lt-300: #e6e1e8 !default;
|
$grey-lt-300: #e6e1e8 !default;
|
||||||
|
|
||||||
$purple-000: #7253ed !default;
|
$purple-000: #7253ed !default;
|
||||||
$purple-100: #5e41d0 !default;
|
$purple-100: #5e41d0 !default;
|
||||||
$purple-200: #4e26af !default;
|
$purple-200: #4e26af !default;
|
||||||
$purple-300: #381885 !default;
|
$purple-300: #381885 !default;
|
||||||
|
|
||||||
$blue-000: #2c84fa !default;
|
$blue-000: #2c84fa !default;
|
||||||
$blue-100: #2869e6 !default;
|
$blue-100: #2869e6 !default;
|
||||||
$blue-200: #264caf !default;
|
$blue-200: #264caf !default;
|
||||||
$blue-300: #183385 !default;
|
$blue-300: #183385 !default;
|
||||||
|
|
||||||
$green-000: #41d693 !default;
|
$green-000: #41d693 !default;
|
||||||
$green-100: #11b584 !default;
|
$green-100: #11b584 !default;
|
||||||
$green-200: #009c7b !default;
|
$green-200: #009c7b !default;
|
||||||
$green-300: #026e57 !default;
|
$green-300: #026e57 !default;
|
||||||
|
|
||||||
$yellow-000: #ffeb82 !default;
|
$yellow-000: #ffeb82 !default;
|
||||||
$yellow-100: #fadf50 !default;
|
$yellow-100: #fadf50 !default;
|
||||||
$yellow-200: #f7d12e !default;
|
$yellow-200: #f7d12e !default;
|
||||||
$yellow-300: #e7af06 !default;
|
$yellow-300: #e7af06 !default;
|
||||||
|
|
||||||
$red-000: #f77e7e !default;
|
$red-000: #f77e7e !default;
|
||||||
$red-100: #f96e65 !default;
|
$red-100: #f96e65 !default;
|
||||||
$red-200: #e94c4c !default;
|
$red-200: #e94c4c !default;
|
||||||
$red-300: #dd2e2e !default;
|
$red-300: #dd2e2e !default;
|
||||||
|
|
||||||
$body-background-color: $white !default;
|
|
||||||
$sidebar-color: $grey-lt-000 !default;
|
|
||||||
$search-background-color: $white !default;
|
|
||||||
$table-background-color: $white !default;
|
|
||||||
$code-background-color: $grey-lt-000 !default;
|
|
||||||
|
|
||||||
$body-text-color: $grey-dk-100 !default;
|
|
||||||
$body-heading-color: $grey-dk-300 !default;
|
|
||||||
$search-result-preview-color: $grey-dk-000 !default;
|
|
||||||
$nav-child-link-color: $grey-dk-100 !default;
|
|
||||||
$link-color: $purple-000 !default;
|
|
||||||
$btn-primary-color: $purple-100 !default;
|
|
||||||
$base-button-color: #f7f7f7 !default;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Spacing
|
// Spacing
|
||||||
//
|
|
||||||
|
|
||||||
$spacing-unit: 1rem; // 1rem == 16px
|
$spacing-unit: 1rem; // 1rem == 16px
|
||||||
|
|
||||||
@@ -85,7 +74,6 @@ $spacers: (
|
|||||||
sp-9: $spacing-unit * 3.5,
|
sp-9: $spacing-unit * 3.5,
|
||||||
sp-10: $spacing-unit * 4,
|
sp-10: $spacing-unit * 4,
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px
|
$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px
|
||||||
$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px
|
$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px
|
||||||
$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px
|
$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px
|
||||||
@@ -94,32 +82,30 @@ $sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px
|
|||||||
$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px
|
$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px
|
||||||
$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px
|
$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px
|
||||||
$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px
|
$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px
|
||||||
$sp-9: map-get($spacers, sp-9) !default; // 4 rem == 48px
|
$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px
|
||||||
$sp-10: map-get($spacers, sp-10) !default; // 4.5 rem == 48px
|
$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px
|
||||||
|
|
||||||
//
|
|
||||||
// Borders
|
// Borders
|
||||||
//
|
|
||||||
|
|
||||||
$border: 1px solid !default;
|
$border: 1px solid !default;
|
||||||
$border-radius: 4px !default;
|
$border-radius: 4px !default;
|
||||||
$border-color: $grey-lt-100 !default;
|
$border-color: $grey-lt-100 !default;
|
||||||
|
|
||||||
//
|
|
||||||
// Grid system
|
// Grid system
|
||||||
//
|
|
||||||
|
|
||||||
$gutter-spacing: $sp-6 !default;
|
$gutter-spacing: $sp-6 !default;
|
||||||
$gutter-spacing-sm: $sp-4 !default;
|
$gutter-spacing-sm: $sp-4 !default;
|
||||||
$nav-width: 264px !default;
|
$nav-width: 264px !default;
|
||||||
$nav-width-md: 248px !default;
|
$nav-width-md: 248px !default;
|
||||||
|
$nav-list-item-height: $sp-6 !default;
|
||||||
|
$nav-list-item-height-sm: $sp-8 !default;
|
||||||
|
$nav-list-expander-right: true;
|
||||||
$content-width: 800px !default;
|
$content-width: 800px !default;
|
||||||
$header-height: 60px !default;
|
$header-height: 60px !default;
|
||||||
$search-results-width: 500px !default;
|
$search-results-width: $content-width - $nav-width !default;
|
||||||
|
$transition-duration: 400ms;
|
||||||
|
|
||||||
//
|
|
||||||
// Media queries in pixels
|
// Media queries in pixels
|
||||||
//
|
|
||||||
|
|
||||||
$media-queries: (
|
$media-queries: (
|
||||||
xs: 320px,
|
xs: 320px,
|
||||||
|
@@ -10,14 +10,13 @@
|
|||||||
$value: map-get($media-queries, $name);
|
$value: map-get($media-queries, $name);
|
||||||
|
|
||||||
// If the key exists in the map
|
// If the key exists in the map
|
||||||
@if $value != null {
|
@if $value {
|
||||||
// Prints a media query based on the value
|
// Prints a media query based on the value
|
||||||
@media (min-width: rem($value)) {
|
@media (min-width: rem($value)) {
|
||||||
@content;
|
@content;
|
||||||
}
|
}
|
||||||
} @else {
|
} @else {
|
||||||
@warn "No value could be retrieved from `#{$media-query}`. "
|
@warn "No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.";
|
||||||
+ "Please make sure it is defined in `$media-queries` map.";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,86 +1,84 @@
|
|||||||
// Font size
|
|
||||||
|
|
||||||
@mixin fs-1 {
|
@mixin fs-1 {
|
||||||
font-size: 9px !important;
|
font-size: $font-size-1 !important;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 10px !important;
|
font-size: $font-size-1-sm !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-2 {
|
@mixin fs-2 {
|
||||||
font-size: 11px !important;
|
font-size: $font-size-2 !important;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 12px !important;
|
font-size: $font-size-3 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-3 {
|
@mixin fs-3 {
|
||||||
font-size: 12px !important;
|
font-size: $font-size-3 !important;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 14px !important;
|
font-size: $font-size-4 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-4 {
|
@mixin fs-4 {
|
||||||
font-size: 15px !important;
|
font-size: $font-size-4 !important;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 16px !important;
|
font-size: $font-size-5 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-5 {
|
@mixin fs-5 {
|
||||||
font-size: 16px !important;
|
font-size: $font-size-5 !important;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 18px !important;
|
font-size: $font-size-6 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-6 {
|
@mixin fs-6 {
|
||||||
font-size: 18px !important;
|
font-size: $font-size-6 !important;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 24px !important;
|
font-size: $font-size-7 !important;
|
||||||
line-height: $body-heading-line-height;
|
line-height: $body-heading-line-height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-7 {
|
@mixin fs-7 {
|
||||||
font-size: 24px !important;
|
font-size: $font-size-7 !important;
|
||||||
line-height: $body-heading-line-height;
|
line-height: $body-heading-line-height;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 32px !important;
|
font-size: $font-size-8 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-8 {
|
@mixin fs-8 {
|
||||||
font-size: 32px !important;
|
font-size: $font-size-8 !important;
|
||||||
line-height: $body-heading-line-height;
|
line-height: $body-heading-line-height;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 36px !important;
|
font-size: $font-size-9 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-9 {
|
@mixin fs-9 {
|
||||||
font-size: 36px !important;
|
font-size: $font-size-9 !important;
|
||||||
line-height: $body-heading-line-height;
|
line-height: $body-heading-line-height;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 42px !important;
|
font-size: $font-size-10 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin fs-10 {
|
@mixin fs-10 {
|
||||||
font-size: 42px !important;
|
font-size: $font-size-10 !important;
|
||||||
line-height: $body-heading-line-height;
|
line-height: $body-heading-line-height;
|
||||||
|
|
||||||
@include mq(sm) {
|
@include mq(sm) {
|
||||||
font-size: 48px !important;
|
font-size: $font-size-10-sm !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,4 @@
|
|||||||
//
|
|
||||||
// Tables
|
// Tables
|
||||||
//
|
|
||||||
// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type
|
// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type
|
||||||
|
|
||||||
.table-wrapper {
|
.table-wrapper {
|
||||||
@@ -22,11 +20,9 @@ table {
|
|||||||
th,
|
th,
|
||||||
td {
|
td {
|
||||||
@include fs-3;
|
@include fs-3;
|
||||||
|
|
||||||
min-width: 120px;
|
min-width: 120px;
|
||||||
padding-top: $sp-2;
|
padding: $sp-2 $sp-3;
|
||||||
padding-right: $sp-3;
|
|
||||||
padding-bottom: $sp-2;
|
|
||||||
padding-left: $sp-3;
|
|
||||||
background-color: $table-background-color;
|
background-color: $table-background-color;
|
||||||
border-bottom: $border rgba($border-color, 0.5);
|
border-bottom: $border rgba($border-color, 0.5);
|
||||||
border-left: $border $border-color;
|
border-left: $border $border-color;
|
||||||
|
@@ -1,16 +1,16 @@
|
|||||||
//
|
|
||||||
// Typography
|
// Typography
|
||||||
//
|
// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id
|
||||||
// stylelint-disable primer/selector-no-utility, primer/no-override, selector-no-type, selector-max-type
|
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
.text-alpha {
|
.text-alpha {
|
||||||
@include fs-8;
|
@include fs-8;
|
||||||
|
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2,
|
h2,
|
||||||
.text-beta {
|
.text-beta,
|
||||||
|
#toctitle {
|
||||||
@include fs-6;
|
@include fs-6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,21 +22,24 @@ h3,
|
|||||||
h4,
|
h4,
|
||||||
.text-delta {
|
.text-delta {
|
||||||
@include fs-2;
|
@include fs-2;
|
||||||
|
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.1em;
|
letter-spacing: 0.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h4 code {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
h5,
|
h5,
|
||||||
.text-epsilon {
|
.text-epsilon {
|
||||||
@include fs-3;
|
@include fs-3;
|
||||||
color: $grey-dk-200;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
h6,
|
h6,
|
||||||
.text-zeta {
|
.text-zeta {
|
||||||
@include fs-2;
|
@include fs-2;
|
||||||
color: $grey-dk-200;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-small {
|
.text-small {
|
||||||
|
@@ -1,6 +1,4 @@
|
|||||||
//
|
|
||||||
// Utility classes for colors
|
// Utility classes for colors
|
||||||
//
|
|
||||||
|
|
||||||
// Text colors
|
// Text colors
|
||||||
|
|
||||||
|
@@ -1,22 +1,23 @@
|
|||||||
// stylelint-disable primer/selector-no-utility, primer/no-override
|
|
||||||
//
|
|
||||||
// Utility classes for layout
|
// Utility classes for layout
|
||||||
//
|
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
|
|
||||||
.d-block {
|
.d-block {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-flex {
|
.d-flex {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-inline {
|
.d-inline {
|
||||||
display: inline !important;
|
display: inline !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-inline-block {
|
.d-inline-block {
|
||||||
display: inline-block !important;
|
display: inline-block !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-none {
|
.d-none {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
@@ -78,18 +79,23 @@
|
|||||||
.v-align-baseline {
|
.v-align-baseline {
|
||||||
vertical-align: baseline !important;
|
vertical-align: baseline !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-align-bottom {
|
.v-align-bottom {
|
||||||
vertical-align: bottom !important;
|
vertical-align: bottom !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-align-middle {
|
.v-align-middle {
|
||||||
vertical-align: middle !important;
|
vertical-align: middle !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-align-text-bottom {
|
.v-align-text-bottom {
|
||||||
vertical-align: text-bottom !important;
|
vertical-align: text-bottom !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-align-text-top {
|
.v-align-text-top {
|
||||||
vertical-align: text-top !important;
|
vertical-align: text-top !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-align-top {
|
.v-align-top {
|
||||||
vertical-align: top !important;
|
vertical-align: top !important;
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
//
|
|
||||||
// Utility classes for lists
|
// Utility classes for lists
|
||||||
//
|
|
||||||
|
|
||||||
// stylelint-disable primer/selector-no-utility, primer/no-override, selector-max-type
|
// stylelint-disable selector-max-type
|
||||||
|
|
||||||
.list-style-none {
|
.list-style-none {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
@@ -1,9 +1,6 @@
|
|||||||
//
|
|
||||||
// Utility classes for margins and padding
|
// Utility classes for margins and padding
|
||||||
//
|
|
||||||
|
|
||||||
// scss-lint:disable SpaceAfterPropertyName
|
// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before
|
||||||
// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before, primer/selector-no-utility, primer/no-override
|
|
||||||
|
|
||||||
// Margin spacer utilities
|
// Margin spacer utilities
|
||||||
|
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
//
|
|
||||||
// Utility classes for typography
|
// Utility classes for typography
|
||||||
//
|
|
||||||
|
|
||||||
// stylelint-disable primer/selector-no-utility, primer/no-override
|
|
||||||
|
|
||||||
.fs-1 {
|
.fs-1 {
|
||||||
@include fs-1;
|
@include fs-1;
|
||||||
@@ -87,5 +83,3 @@
|
|||||||
.text-uppercase {
|
.text-uppercase {
|
||||||
text-transform: uppercase !important;
|
text-transform: uppercase !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
// stylelint-enable primer/selector-no-utility
|
|
||||||
|
21
_sass/vendor/OneDarkJekyll/LICENSE
vendored
Normal file
21
_sass/vendor/OneDarkJekyll/LICENSE
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2016 Mihály Gyöngyösi
|
||||||
|
|
||||||
|
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 NONINFRINGEMENT. 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.
|
202
_sass/vendor/OneDarkJekyll/syntax.scss
vendored
Normal file
202
_sass/vendor/OneDarkJekyll/syntax.scss
vendored
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme
|
||||||
|
|
||||||
|
.highlight,
|
||||||
|
pre.highlight {
|
||||||
|
background: #31343f;
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight pre {
|
||||||
|
background: #31343f;
|
||||||
|
}
|
||||||
|
.highlight .hll {
|
||||||
|
background: #31343f;
|
||||||
|
}
|
||||||
|
.highlight .c {
|
||||||
|
color: #63677e;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .err {
|
||||||
|
color: #960050;
|
||||||
|
background-color: #1e0010;
|
||||||
|
}
|
||||||
|
.highlight .k {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .l {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .n {
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight .o {
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight .p {
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight .cm {
|
||||||
|
color: #63677e;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .cp {
|
||||||
|
color: #63677e;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .c1 {
|
||||||
|
color: #63677e;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .cs {
|
||||||
|
color: #63677e;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .ge {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .gs {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.highlight .kc {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .kd {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .kn {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .kp {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .kr {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .kt {
|
||||||
|
color: #e19ef5;
|
||||||
|
}
|
||||||
|
.highlight .ld {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .m {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .s {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .na {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .nb {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .nc {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .no {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .nd {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .ni {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .ne {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .nf {
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight .nl {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .nn {
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight .nx {
|
||||||
|
color: #dee2f7;
|
||||||
|
}
|
||||||
|
.highlight .py {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .nt {
|
||||||
|
color: #f9867b;
|
||||||
|
}
|
||||||
|
.highlight .nv {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .ow {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.highlight .w {
|
||||||
|
color: #f8f8f2;
|
||||||
|
}
|
||||||
|
.highlight .mf {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .mh {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .mi {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .mo {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .sb {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .sc {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .sd {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .s2 {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .se {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .sh {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .si {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .sx {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .sr {
|
||||||
|
color: #7be2f9;
|
||||||
|
}
|
||||||
|
.highlight .s1 {
|
||||||
|
color: #a3eea0;
|
||||||
|
}
|
||||||
|
.highlight .ss {
|
||||||
|
color: #7be2f9;
|
||||||
|
}
|
||||||
|
.highlight .bp {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .vc {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .vg {
|
||||||
|
color: #fdce68;
|
||||||
|
}
|
||||||
|
.highlight .vi {
|
||||||
|
color: #f9867b;
|
||||||
|
}
|
||||||
|
.highlight .il {
|
||||||
|
color: #eddc96;
|
||||||
|
}
|
||||||
|
.highlight .gu {
|
||||||
|
color: #75715e;
|
||||||
|
}
|
||||||
|
.highlight .gd {
|
||||||
|
color: #f92672;
|
||||||
|
}
|
||||||
|
.highlight .gi {
|
||||||
|
color: #a6e22e;
|
||||||
|
}
|
65
_sass/vendor/OneLightJekyll/LICENSE
vendored
Normal file
65
_sass/vendor/OneLightJekyll/LICENSE
vendored
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
OneLightJekyll relies on two works: OneDarkJekyll, and Atom's One Light theme. This file contains the licensing for all the related software.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
OneLightJekyll (https://github.com/just-the-docs/OneLightJekyll/blob/main/LICENSE)
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023 Matthew Wang
|
||||||
|
|
||||||
|
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 NONINFRINGEMENT. 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.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
OneDarkJekyll (https://github.com/mgyongyosi/OneDarkJekyll/blob/master/LICENSE)
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2016 Mihály Gyöngyösi
|
||||||
|
|
||||||
|
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 NONINFRINGEMENT. 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.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Atom One Light (https://github.com/atom/atom/blob/master/LICENSE.md)
|
||||||
|
|
||||||
|
Copyright (c) 2011-2022 GitHub Inc.
|
||||||
|
|
||||||
|
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 NONINFRINGEMENT. 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.
|
208
_sass/vendor/OneLightJekyll/syntax.scss
vendored
Normal file
208
_sass/vendor/OneLightJekyll/syntax.scss
vendored
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
// Generated with OneLightJekyll applied to Atom's One Light theme
|
||||||
|
|
||||||
|
.highlight,
|
||||||
|
pre.highlight {
|
||||||
|
background: #f9f9f9;
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight pre {
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
.highlight .hll {
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
.highlight .c {
|
||||||
|
color: #9fa0a6;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .err {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #e05151;
|
||||||
|
}
|
||||||
|
.highlight .k {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .l {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .n {
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight .o {
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight .p {
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight .cm {
|
||||||
|
color: #9fa0a6;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .cp {
|
||||||
|
color: #9fa0a6;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .c1 {
|
||||||
|
color: #9fa0a6;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .cs {
|
||||||
|
color: #9fa0a6;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .ge {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.highlight .gs {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.highlight .kc {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .kd {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .kn {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .kp {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .kr {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .kt {
|
||||||
|
color: #a625a4;
|
||||||
|
}
|
||||||
|
.highlight .ld {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .m {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .s {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .na {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .nb {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .nc {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .no {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .nd {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .ni {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .ne {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .nf {
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight .nl {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .nn {
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight .nx {
|
||||||
|
color: #383942;
|
||||||
|
}
|
||||||
|
.highlight .py {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .nt {
|
||||||
|
color: #e35549;
|
||||||
|
}
|
||||||
|
.highlight .nv {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .ow {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.highlight .w {
|
||||||
|
color: #f8f8f2;
|
||||||
|
}
|
||||||
|
.highlight .mf {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .mh {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .mi {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .mo {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .sb {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .sc {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .sd {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .s2 {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .se {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .sh {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .si {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .sx {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .sr {
|
||||||
|
color: #0083bb;
|
||||||
|
}
|
||||||
|
.highlight .s1 {
|
||||||
|
color: #50a04f;
|
||||||
|
}
|
||||||
|
.highlight .ss {
|
||||||
|
color: #0083bb;
|
||||||
|
}
|
||||||
|
.highlight .bp {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .vc {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .vg {
|
||||||
|
color: #ca7601;
|
||||||
|
}
|
||||||
|
.highlight .vi {
|
||||||
|
color: #e35549;
|
||||||
|
}
|
||||||
|
.highlight .il {
|
||||||
|
color: #b66a00;
|
||||||
|
}
|
||||||
|
.highlight .gu {
|
||||||
|
color: #75715e;
|
||||||
|
}
|
||||||
|
.highlight .gd {
|
||||||
|
color: #e05151;
|
||||||
|
}
|
||||||
|
.highlight .gi {
|
||||||
|
color: #43d089;
|
||||||
|
}
|
||||||
|
.highlight .language-json .w + .s2 {
|
||||||
|
color: #e35549;
|
||||||
|
}
|
||||||
|
.highlight .language-json .kc {
|
||||||
|
color: #0083bb;
|
||||||
|
}
|
79
_sass/vendor/normalize.scss/README.md
vendored
79
_sass/vendor/normalize.scss/README.md
vendored
@@ -1,78 +1,7 @@
|
|||||||
# normalize.scss v0.1.0
|
# normalize.scss
|
||||||
|
|
||||||
Normalize.scss is the SCSS version of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards.
|
Normalize.scss is an SCSS copy of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards.
|
||||||
|
|
||||||
|
The [normalize.scss fork](https://github.com/guerrero/normalize.scss) of [normalize.css](http://necolas.github.io/normalize.css) was archived in 2014, and has not been updated since v0.1.0.
|
||||||
|
|
||||||
[View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html)
|
[View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html)
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
* [npm](http://npmjs.org/): `npm install --save normalize.scss`
|
|
||||||
* [Component(1)](https://github.com/component/component/): `component install guerrero/normalize.scss`
|
|
||||||
* [Bower](http://bower.io/): `bower install --save normalize.scss`
|
|
||||||
* Download: Go to [this link](https://raw.githubusercontent.com/guerrero/normalize.scss/master/normalize.scss), press right-click on the page and choose "Save as..."
|
|
||||||
|
|
||||||
No other styles should come before Normalize.scss.
|
|
||||||
|
|
||||||
It's recommendable to modify `normalize.scss` to suit it to your project
|
|
||||||
|
|
||||||
## What does it do?
|
|
||||||
|
|
||||||
* Preserves useful defaults, unlike many CSS resets.
|
|
||||||
* Normalizes styles for a wide range of elements.
|
|
||||||
* Corrects bugs and common browser inconsistencies.
|
|
||||||
* Improves usability with subtle improvements.
|
|
||||||
* Explains what code does using detailed comments.
|
|
||||||
|
|
||||||
## Browser support
|
|
||||||
|
|
||||||
* Google Chrome (latest)
|
|
||||||
* Mozilla Firefox (latest)
|
|
||||||
* Mozilla Firefox 4
|
|
||||||
* Opera (latest)
|
|
||||||
* Apple Safari 6+
|
|
||||||
* Internet Explorer 8+
|
|
||||||
|
|
||||||
[Normalize.css v1 provides legacy browser
|
|
||||||
support](https://github.com/necolas/normalize.css/tree/v1) (IE 6+, Safari 4+),
|
|
||||||
but is no longer actively developed.
|
|
||||||
|
|
||||||
## Extended details
|
|
||||||
|
|
||||||
Additional detail and explanation of the esoteric parts of normalize.css.
|
|
||||||
|
|
||||||
#### `pre, code, kbd, samp`
|
|
||||||
|
|
||||||
The `font-family: monospace, monospace` hack fixes the inheritance and scaling
|
|
||||||
of font-size for preformated text. The duplication of `monospace` is
|
|
||||||
intentional. [Source](http://en.wikipedia.org/wiki/User:Davidgothberg/Test59).
|
|
||||||
|
|
||||||
#### `sub, sup`
|
|
||||||
|
|
||||||
Normally, using `sub` or `sup` affects the line-box height of text in all
|
|
||||||
browsers. [Source](http://gist.github.com/413930).
|
|
||||||
|
|
||||||
#### `svg:not(:root)`
|
|
||||||
|
|
||||||
Adding `overflow: hidden` fixes IE9's SVG rendering. Earlier versions of IE
|
|
||||||
don't support SVG, so we can safely use the `:not()` and `:root` selectors that
|
|
||||||
modern browsers use in the default UA stylesheets to apply this style. [SVG
|
|
||||||
Mailing List discussion](http://lists.w3.org/Archives/Public/public-svg-wg/2008JulSep/0339.html)
|
|
||||||
|
|
||||||
#### `input[type="search"]`
|
|
||||||
|
|
||||||
The search input is not fully stylable by default. In Chrome and Safari on
|
|
||||||
OSX/iOS you can't control `font`, `padding`, `border`, or `background`. In
|
|
||||||
Chrome and Safari on Windows you can't control `border` properly. It will apply
|
|
||||||
`border-width` but will only show a border color (which cannot be controlled)
|
|
||||||
for the outer 1px of that border. Applying `-webkit-appearance: textfield`
|
|
||||||
addresses these issues without removing the benefits of search inputs (e.g.
|
|
||||||
showing past searches).
|
|
||||||
|
|
||||||
#### `legend`
|
|
||||||
|
|
||||||
Adding `border: 0` corrects an IE 8–11 bug where `color` (yes, `color`) is not
|
|
||||||
inherited by `legend`.
|
|
||||||
|
|
||||||
## Acknowledgements
|
|
||||||
|
|
||||||
Normalize.scss is a project by [Alex Guerrero](https://github.com/guerrero) based on [normalize.css](http://necolas.github.io/normalize.css) from [Nicolas Gallagher](https://github.com/necolas), co-created with [Jonathan Neal](https://github.com/jonathantneal).
|
|
||||||
|
494
_sass/vendor/normalize.scss/normalize.scss
vendored
494
_sass/vendor/normalize.scss/normalize.scss
vendored
@@ -1,135 +1,40 @@
|
|||||||
/*! normalize.scss v0.1.0 | MIT License | based on git.io/normalize */
|
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||||
|
|
||||||
|
/* Document
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1. Set default font family to sans-serif.
|
* 1. Correct the line height in all browsers.
|
||||||
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||||
* user zoom.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-family: sans-serif; /* 1 */
|
line-height: 1.15; /* 1 */
|
||||||
-ms-text-size-adjust: 100%; /* 2 */
|
|
||||||
-webkit-text-size-adjust: 100%; /* 2 */
|
-webkit-text-size-adjust: 100%; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Sections
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove default margin.
|
* Remove the margin in all browsers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HTML5 display definitions
|
|
||||||
========================================================================== */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Correct `block` display not defined for any HTML5 element in IE 8/9.
|
* Render the `main` element consistently in IE.
|
||||||
* Correct `block` display not defined for `details` or `summary` in IE 10/11
|
|
||||||
* and Firefox.
|
|
||||||
* Correct `block` display not defined for `main` in IE 11.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
article,
|
main {
|
||||||
aside,
|
|
||||||
details,
|
|
||||||
figcaption,
|
|
||||||
figure,
|
|
||||||
footer,
|
|
||||||
header,
|
|
||||||
hgroup,
|
|
||||||
main,
|
|
||||||
menu,
|
|
||||||
nav,
|
|
||||||
section,
|
|
||||||
summary {
|
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1. Correct `inline-block` display not defined in IE 8/9.
|
* Correct the font size and margin on `h1` elements within `section` and
|
||||||
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
|
* `article` contexts in Chrome, Firefox, and Safari.
|
||||||
*/
|
|
||||||
|
|
||||||
audio,
|
|
||||||
canvas,
|
|
||||||
progress,
|
|
||||||
video {
|
|
||||||
display: inline-block; /* 1 */
|
|
||||||
vertical-align: baseline; /* 2 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Prevent modern browsers from displaying `audio` without controls.
|
|
||||||
* Remove excess height in iOS 5 devices.
|
|
||||||
*/
|
|
||||||
|
|
||||||
audio:not([controls]) {
|
|
||||||
display: none;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address `[hidden]` styling not present in IE 8/9/10.
|
|
||||||
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
|
|
||||||
*/
|
|
||||||
|
|
||||||
[hidden],
|
|
||||||
template {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Links
|
|
||||||
========================================================================== */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the gray background color from active links in IE 10.
|
|
||||||
*/
|
|
||||||
|
|
||||||
a {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Improve readability when focused and also mouse hovered in all browsers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
a:active,
|
|
||||||
a:hover {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Text-level semantics
|
|
||||||
========================================================================== */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
|
|
||||||
*/
|
|
||||||
|
|
||||||
abbr[title] {
|
|
||||||
border-bottom: 1px dotted;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
|
|
||||||
*/
|
|
||||||
|
|
||||||
b,
|
|
||||||
strong {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address styling not present in Safari and Chrome.
|
|
||||||
*/
|
|
||||||
|
|
||||||
dfn {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address variable `h1` font-size and margin within `section` and `article`
|
|
||||||
* contexts in Firefox 4+, Safari, and Chrome.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@@ -137,17 +42,75 @@ h1 {
|
|||||||
margin: 0.67em 0;
|
margin: 0.67em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Grouping content
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Address styling not present in IE 8/9.
|
* 1. Add the correct box sizing in Firefox.
|
||||||
|
* 2. Show the overflow in Edge and IE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mark {
|
hr {
|
||||||
background: #ff0;
|
box-sizing: content-box; /* 1 */
|
||||||
color: #000;
|
height: 0; /* 1 */
|
||||||
|
overflow: visible; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Address inconsistent and variable font size in all browsers.
|
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||||
|
* 2. Correct the odd `em` font sizing in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
pre {
|
||||||
|
font-family: monospace, monospace; /* 1 */
|
||||||
|
font-size: 1em; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Text-level semantics
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the gray background on active links in IE 10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
a {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Remove the bottom border in Chrome 57-
|
||||||
|
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: none; /* 1 */
|
||||||
|
text-decoration: underline; /* 2 */
|
||||||
|
text-decoration: underline dotted; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||||
|
* 2. Correct the odd `em` font sizing in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: monospace, monospace; /* 1 */
|
||||||
|
font-size: 1em; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the correct font size in all browsers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
small {
|
small {
|
||||||
@@ -155,7 +118,8 @@ small {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||||
|
* all browsers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sub,
|
sub,
|
||||||
@@ -166,87 +130,31 @@ sup {
|
|||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
sup {
|
|
||||||
top: -0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub {
|
sub {
|
||||||
bottom: -0.25em;
|
bottom: -0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
/* Embedded content
|
/* Embedded content
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove border when inside `a` element in IE 8/9/10.
|
* Remove the border on images inside links in IE 10.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
img {
|
img {
|
||||||
border: 0;
|
border-style: none;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Correct overflow not hidden in IE 9/10/11.
|
|
||||||
*/
|
|
||||||
|
|
||||||
svg:not(:root) {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Grouping content
|
|
||||||
========================================================================== */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address margin not present in IE 8/9 and Safari.
|
|
||||||
*/
|
|
||||||
|
|
||||||
figure {
|
|
||||||
margin: 1em 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address differences between Firefox and other browsers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
hr {
|
|
||||||
-moz-box-sizing: content-box;
|
|
||||||
box-sizing: content-box;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Contain overflow in all browsers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
pre {
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Address odd `em`-unit font size rendering in all browsers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
code,
|
|
||||||
kbd,
|
|
||||||
pre,
|
|
||||||
samp {
|
|
||||||
font-family: monospace, monospace;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Forms
|
/* Forms
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Known limitation: by default, Chrome and Safari on OS X allow very limited
|
* 1. Change the font styles in all browsers.
|
||||||
* styling of `select`, unless a `border` property is set.
|
* 2. Remove the margin in Firefox and Safari.
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. Correct color not being inherited.
|
|
||||||
* Known issue: affects color of disabled elements.
|
|
||||||
* 2. Correct font properties not being inherited.
|
|
||||||
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button,
|
button,
|
||||||
@@ -254,146 +162,102 @@ input,
|
|||||||
optgroup,
|
optgroup,
|
||||||
select,
|
select,
|
||||||
textarea {
|
textarea {
|
||||||
color: inherit; /* 1 */
|
font-family: inherit; /* 1 */
|
||||||
font: inherit; /* 2 */
|
font-size: 100%; /* 1 */
|
||||||
margin: 0; /* 3 */
|
line-height: 1.15; /* 1 */
|
||||||
|
margin: 0; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Address `overflow` set to `hidden` in IE 8/9/10/11.
|
* Show the overflow in IE.
|
||||||
|
* 1. Show the overflow in Edge.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button {
|
button,
|
||||||
|
input {
|
||||||
|
/* 1 */
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||||
* All other form control elements do not inherit `text-transform` values.
|
* 1. Remove the inheritance of text transform in Firefox.
|
||||||
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
|
|
||||||
* Correct `select` style inheritance in Firefox.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button,
|
button,
|
||||||
select {
|
select {
|
||||||
|
/* 1 */
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
* Correct the inability to style clickable types in iOS and Safari.
|
||||||
* and `video` controls.
|
|
||||||
* 2. Correct inability to style clickable `input` types in iOS.
|
|
||||||
* 3. Improve usability and consistency of cursor style between image-type
|
|
||||||
* `input` and others.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button,
|
button,
|
||||||
html input[type="button"], /* 1 */
|
[type="button"],
|
||||||
input[type="reset"],
|
[type="reset"],
|
||||||
input[type="submit"] {
|
[type="submit"] {
|
||||||
-webkit-appearance: button; /* 2 */
|
-webkit-appearance: button;
|
||||||
cursor: pointer; /* 3 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Re-set default cursor for disabled elements.
|
* Remove the inner border and padding in Firefox.
|
||||||
*/
|
|
||||||
|
|
||||||
button[disabled],
|
|
||||||
html input[disabled] {
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove inner padding and border in Firefox 4+.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button::-moz-focus-inner,
|
button::-moz-focus-inner,
|
||||||
input::-moz-focus-inner {
|
[type="button"]::-moz-focus-inner,
|
||||||
border: 0;
|
[type="reset"]::-moz-focus-inner,
|
||||||
|
[type="submit"]::-moz-focus-inner {
|
||||||
|
border-style: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
|
* Restore the focus styles unset by the previous rule.
|
||||||
* the UA stylesheet.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
input {
|
button:-moz-focusring,
|
||||||
line-height: normal;
|
[type="button"]:-moz-focusring,
|
||||||
|
[type="reset"]:-moz-focusring,
|
||||||
|
[type="submit"]:-moz-focusring {
|
||||||
|
outline: 1px dotted ButtonText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It's recommended that you don't attempt to style these elements.
|
* Correct the padding in Firefox.
|
||||||
* Firefox's implementation doesn't respect box-sizing, padding, or width.
|
|
||||||
*
|
|
||||||
* 1. Address box sizing set to `content-box` in IE 8/9/10.
|
|
||||||
* 2. Remove excess padding in IE 8/9/10.
|
|
||||||
*/
|
|
||||||
|
|
||||||
input[type="checkbox"],
|
|
||||||
input[type="radio"] {
|
|
||||||
box-sizing: border-box; /* 1 */
|
|
||||||
padding: 0; /* 2 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
|
|
||||||
* `font-size` values of the `input`, it causes the cursor style of the
|
|
||||||
* decrement button to change from `default` to `text`.
|
|
||||||
*/
|
|
||||||
|
|
||||||
input[type="number"]::-webkit-inner-spin-button,
|
|
||||||
input[type="number"]::-webkit-outer-spin-button {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
|
|
||||||
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
|
|
||||||
* (include `-moz` to future-proof).
|
|
||||||
*/
|
|
||||||
|
|
||||||
input[type="search"] {
|
|
||||||
-webkit-appearance: textfield; /* 1 */
|
|
||||||
-moz-box-sizing: content-box;
|
|
||||||
-webkit-box-sizing: content-box; /* 2 */
|
|
||||||
box-sizing: content-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
|
|
||||||
* Safari (but not Chrome) clips the cancel button when the search input has
|
|
||||||
* padding (and `textfield` appearance).
|
|
||||||
*/
|
|
||||||
|
|
||||||
input[type="search"]::-webkit-search-cancel-button,
|
|
||||||
input[type="search"]::-webkit-search-decoration {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define consistent border, margin, and padding.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fieldset {
|
fieldset {
|
||||||
border: 1px solid #c0c0c0;
|
padding: 0.35em 0.75em 0.625em;
|
||||||
margin: 0 2px;
|
|
||||||
padding: 0.35em 0.625em 0.75em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1. Correct `color` not being inherited in IE 8/9/10/11.
|
* 1. Correct the text wrapping in Edge and IE.
|
||||||
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||||
|
* 3. Remove the padding so developers are not caught out when they zero out
|
||||||
|
* `fieldset` elements in all browsers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
legend {
|
legend {
|
||||||
border: 0; /* 1 */
|
box-sizing: border-box; /* 1 */
|
||||||
padding: 0; /* 2 */
|
color: inherit; /* 2 */
|
||||||
|
display: table; /* 1 */
|
||||||
|
max-width: 100%; /* 1 */
|
||||||
|
padding: 0; /* 3 */
|
||||||
|
white-space: normal; /* 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove default vertical scrollbar in IE 8/9/10/11.
|
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||||
|
*/
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the default vertical scrollbar in IE 10+.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
@@ -401,27 +265,87 @@ textarea {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't inherit the `font-weight` (applied by a rule above).
|
* 1. Add the correct box sizing in IE 10.
|
||||||
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
|
* 2. Remove the padding in IE 10.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
optgroup {
|
[type="checkbox"],
|
||||||
font-weight: bold;
|
[type="radio"] {
|
||||||
|
box-sizing: border-box; /* 1 */
|
||||||
|
padding: 0; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tables
|
/**
|
||||||
|
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button,
|
||||||
|
[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the odd appearance in Chrome and Safari.
|
||||||
|
* 2. Correct the outline style in Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="search"] {
|
||||||
|
-webkit-appearance: textfield; /* 1 */
|
||||||
|
outline-offset: -2px; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the inner padding in Chrome and Safari on macOS.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||||
|
* 2. Change font properties to `inherit` in Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
-webkit-appearance: button; /* 1 */
|
||||||
|
font: inherit; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Interactive
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||||
|
*/
|
||||||
|
|
||||||
|
details {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add the correct display in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Misc
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove most spacing between table cells.
|
* Add the correct display in IE 10+.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
table {
|
template {
|
||||||
border-collapse: collapse;
|
display: none;
|
||||||
border-spacing: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
td,
|
/**
|
||||||
th {
|
* Add the correct display in IE 10.
|
||||||
padding: 0;
|
*/
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
|
70
_sass/vendor/normalize.scss/package.json
vendored
70
_sass/vendor/normalize.scss/package.json
vendored
@@ -1,70 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
"normalize.scss",
|
|
||||||
"/Users/pmarsceill/_projects/just-the-docs"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "normalize.scss@*",
|
|
||||||
"_id": "normalize.scss@0.1.0",
|
|
||||||
"_inCache": true,
|
|
||||||
"_installable": true,
|
|
||||||
"_location": "/normalize.scss",
|
|
||||||
"_nodeVersion": "0.10.32",
|
|
||||||
"_npmUser": {
|
|
||||||
"email": "alexguerrero1092@gmail.com",
|
|
||||||
"name": "alexguerrero"
|
|
||||||
},
|
|
||||||
"_npmVersion": "2.0.2",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"name": "normalize.scss",
|
|
||||||
"raw": "normalize.scss",
|
|
||||||
"rawSpec": "",
|
|
||||||
"scope": null,
|
|
||||||
"spec": "*",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"#DEV:/"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/normalize.scss/-/normalize.scss-0.1.0.tgz",
|
|
||||||
"_shasum": "4a21dc25bd4c019c857785f829b658aba2a8f9ab",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "normalize.scss",
|
|
||||||
"_where": "/Users/pmarsceill/_projects/just-the-docs",
|
|
||||||
"author": "",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/guerrero/normalize.scss/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Normalize.scss as a node packaged module",
|
|
||||||
"devDependencies": {},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "4a21dc25bd4c019c857785f829b658aba2a8f9ab",
|
|
||||||
"tarball": "https://registry.npmjs.org/normalize.scss/-/normalize.scss-0.1.0.tgz"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"normalize.scss"
|
|
||||||
],
|
|
||||||
"gitHead": "d67d517e28615a873066438af1d4845c157c9baf",
|
|
||||||
"homepage": "https://github.com/guerrero/normalize.scss",
|
|
||||||
"license": "MIT",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "alexguerrero",
|
|
||||||
"email": "alexguerrero1092@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "normalize.scss",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git://github.com/guerrero/normalize.scss.git"
|
|
||||||
},
|
|
||||||
"scripts": {},
|
|
||||||
"style": "normalize.scss",
|
|
||||||
"version": "0.1.0"
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB |
BIN
assets/images/large-image.jpg
Normal file
BIN
assets/images/large-image.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 532 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg width="28" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg"><title>Search</title><g fill-rule="nonzero" fill="#959396"><path d="M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z"/><path d="M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z"/></g></svg>
|
|
Before Width: | Height: | Size: 444 B |
BIN
assets/images/small-image.jpg
Normal file
BIN
assets/images/small-image.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
@@ -24,83 +24,377 @@ jtd.onReady = function(ready) {
|
|||||||
// Show/hide mobile menu
|
// Show/hide mobile menu
|
||||||
|
|
||||||
function initNav() {
|
function initNav() {
|
||||||
const mainNav = document.querySelector('.js-main-nav');
|
jtd.addEvent(document, 'click', function(e){
|
||||||
const pageHeader = document.querySelector('.js-page-header');
|
var target = e.target;
|
||||||
const navTrigger = document.querySelector('.js-main-nav-trigger');
|
while (target && !(target.classList && target.classList.contains('nav-list-expander'))) {
|
||||||
|
target = target.parentNode;
|
||||||
jtd.addEvent(navTrigger, 'click', function(e){
|
}
|
||||||
|
if (target) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var text = navTrigger.innerText;
|
target.parentNode.classList.toggle('active');
|
||||||
var textToggle = navTrigger.getAttribute('data-text-toggle');
|
}
|
||||||
|
});
|
||||||
|
|
||||||
mainNav.classList.toggle('nav-open');
|
const siteNav = document.getElementById('site-nav');
|
||||||
pageHeader.classList.toggle('nav-open');
|
const mainHeader = document.getElementById('main-header');
|
||||||
navTrigger.classList.toggle('nav-open');
|
const menuButton = document.getElementById('menu-button');
|
||||||
navTrigger.innerText = textToggle;
|
|
||||||
navTrigger.setAttribute('data-text-toggle', text);
|
jtd.addEvent(menuButton, 'click', function(e){
|
||||||
textToggle = text;
|
e.preventDefault();
|
||||||
})
|
|
||||||
|
if (menuButton.classList.toggle('nav-open')) {
|
||||||
|
siteNav.classList.add('nav-open');
|
||||||
|
mainHeader.classList.add('nav-open');
|
||||||
|
} else {
|
||||||
|
siteNav.classList.remove('nav-open');
|
||||||
|
mainHeader.classList.remove('nav-open');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
{%- if site.search_enabled != false and site.search.button %}
|
||||||
|
const searchInput = document.getElementById('search-input');
|
||||||
|
const searchButton = document.getElementById('search-button');
|
||||||
|
|
||||||
|
jtd.addEvent(searchButton, 'click', function(e){
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
mainHeader.classList.add('nav-open');
|
||||||
|
searchInput.focus();
|
||||||
|
});
|
||||||
|
{%- endif %}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{%- if site.search_enabled != false %}
|
||||||
// Site search
|
// Site search
|
||||||
|
|
||||||
function initSearch() {
|
function initSearch() {
|
||||||
var request = new XMLHttpRequest();
|
var request = new XMLHttpRequest();
|
||||||
request.open('GET', '{{ "assets/js/search-data.json" | absolute_url }}', true);
|
request.open('GET', '{{ "assets/js/search-data.json" | relative_url }}', true);
|
||||||
|
|
||||||
request.onload = function(){
|
request.onload = function(){
|
||||||
if (request.status >= 200 && request.status < 400) {
|
if (request.status >= 200 && request.status < 400) {
|
||||||
// Success!
|
var docs = JSON.parse(request.responseText);
|
||||||
var data = JSON.parse(request.responseText);
|
|
||||||
|
|
||||||
{% if site.search_tokenizer_separator != nil %}
|
lunr.tokenizer.separator = {{ site.search.tokenizer_separator | default: site.search_tokenizer_separator | default: "/[\s\-/]+/" }}
|
||||||
lunr.tokenizer.separator = {{ site.search_tokenizer_separator }}
|
|
||||||
{% else %}
|
|
||||||
lunr.tokenizer.separator = /[\s\-/]+/
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
var index = lunr(function () {
|
var index = lunr(function(){
|
||||||
this.ref('id');
|
this.ref('id');
|
||||||
this.field('title', { boost: 200 });
|
this.field('title', { boost: 200 });
|
||||||
this.field('content', { boost: 2 });
|
this.field('content', { boost: 2 });
|
||||||
this.field('url');
|
{%- if site.search.rel_url != false %}
|
||||||
|
this.field('relUrl');
|
||||||
|
{%- endif %}
|
||||||
this.metadataWhitelist = ['position']
|
this.metadataWhitelist = ['position']
|
||||||
|
|
||||||
for (var i in data) {
|
for (var i in docs) {
|
||||||
|
{% include lunr/custom-index.js %}
|
||||||
this.add({
|
this.add({
|
||||||
id: i,
|
id: i,
|
||||||
title: data[i].title,
|
title: docs[i].title,
|
||||||
content: data[i].content,
|
content: docs[i].content,
|
||||||
url: data[i].url
|
{%- if site.search.rel_url != false %}
|
||||||
|
relUrl: docs[i].relUrl
|
||||||
|
{%- endif %}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
searchResults(index, data);
|
searchLoaded(index, docs);
|
||||||
} else {
|
} else {
|
||||||
// We reached our target server, but it returned an error
|
|
||||||
console.log('Error loading ajax request. Request status:' + request.status);
|
console.log('Error loading ajax request. Request status:' + request.status);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
request.onerror = function(){
|
request.onerror = function(){
|
||||||
// There was a connection error of some sort
|
|
||||||
console.log('There was a connection error');
|
console.log('There was a connection error');
|
||||||
};
|
};
|
||||||
|
|
||||||
request.send();
|
request.send();
|
||||||
|
}
|
||||||
|
|
||||||
function searchResults(index, data) {
|
function searchLoaded(index, docs) {
|
||||||
var index = index;
|
var index = index;
|
||||||
var docs = data;
|
var docs = docs;
|
||||||
var searchInput = document.querySelector('.js-search-input');
|
var searchInput = document.getElementById('search-input');
|
||||||
var searchResults = document.querySelector('.js-search-results');
|
var searchResults = document.getElementById('search-results');
|
||||||
|
var mainHeader = document.getElementById('main-header');
|
||||||
|
var currentInput;
|
||||||
|
var currentSearchIndex = 0;
|
||||||
|
|
||||||
function hideResults() {
|
function showSearch() {
|
||||||
searchResults.innerHTML = '';
|
document.documentElement.classList.add('search-active');
|
||||||
searchResults.classList.remove('active');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hideSearch() {
|
||||||
|
document.documentElement.classList.remove('search-active');
|
||||||
|
}
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
currentSearchIndex++;
|
||||||
|
|
||||||
|
var input = searchInput.value;
|
||||||
|
if (input === '') {
|
||||||
|
hideSearch();
|
||||||
|
} else {
|
||||||
|
showSearch();
|
||||||
|
// scroll search input into view, workaround for iOS Safari
|
||||||
|
window.scroll(0, -1);
|
||||||
|
setTimeout(function(){ window.scroll(0, 0); }, 0);
|
||||||
|
}
|
||||||
|
if (input === currentInput) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
currentInput = input;
|
||||||
|
searchResults.innerHTML = '';
|
||||||
|
if (input === '') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var results = index.query(function (query) {
|
||||||
|
var tokens = lunr.tokenizer(input)
|
||||||
|
query.term(tokens, {
|
||||||
|
boost: 10
|
||||||
|
});
|
||||||
|
query.term(tokens, {
|
||||||
|
wildcard: lunr.Query.wildcard.TRAILING
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if ((results.length == 0) && (input.length > 2)) {
|
||||||
|
var tokens = lunr.tokenizer(input).filter(function(token, i) {
|
||||||
|
return token.str.length < 20;
|
||||||
|
})
|
||||||
|
if (tokens.length > 0) {
|
||||||
|
results = index.query(function (query) {
|
||||||
|
query.term(tokens, {
|
||||||
|
editDistance: Math.round(Math.sqrt(input.length / 2 - 1))
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (results.length == 0) {
|
||||||
|
var noResultsDiv = document.createElement('div');
|
||||||
|
noResultsDiv.classList.add('search-no-result');
|
||||||
|
noResultsDiv.innerText = 'No results found';
|
||||||
|
searchResults.appendChild(noResultsDiv);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
var resultsList = document.createElement('ul');
|
||||||
|
resultsList.classList.add('search-results-list');
|
||||||
|
searchResults.appendChild(resultsList);
|
||||||
|
|
||||||
|
addResults(resultsList, results, 0, 10, 100, currentSearchIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) {
|
||||||
|
if (searchIndex != currentSearchIndex) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (var i = start; i < (start + batchSize); i++) {
|
||||||
|
if (i == results.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
addResult(resultsList, results[i]);
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex);
|
||||||
|
}, batchMillis);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addResult(resultsList, result) {
|
||||||
|
var doc = docs[result.ref];
|
||||||
|
|
||||||
|
var resultsListItem = document.createElement('li');
|
||||||
|
resultsListItem.classList.add('search-results-list-item');
|
||||||
|
resultsList.appendChild(resultsListItem);
|
||||||
|
|
||||||
|
var resultLink = document.createElement('a');
|
||||||
|
resultLink.classList.add('search-result');
|
||||||
|
resultLink.setAttribute('href', doc.url);
|
||||||
|
resultsListItem.appendChild(resultLink);
|
||||||
|
|
||||||
|
var resultTitle = document.createElement('div');
|
||||||
|
resultTitle.classList.add('search-result-title');
|
||||||
|
resultLink.appendChild(resultTitle);
|
||||||
|
|
||||||
|
// note: the SVG svg-doc is only loaded as a Jekyll include if site.search_enabled is true; see _includes/icons/icons.html
|
||||||
|
var resultDoc = document.createElement('div');
|
||||||
|
resultDoc.classList.add('search-result-doc');
|
||||||
|
resultDoc.innerHTML = '<svg viewBox="0 0 24 24" class="search-result-icon"><use xlink:href="#svg-doc"></use></svg>';
|
||||||
|
resultTitle.appendChild(resultDoc);
|
||||||
|
|
||||||
|
var resultDocTitle = document.createElement('div');
|
||||||
|
resultDocTitle.classList.add('search-result-doc-title');
|
||||||
|
resultDocTitle.innerHTML = doc.doc;
|
||||||
|
resultDoc.appendChild(resultDocTitle);
|
||||||
|
var resultDocOrSection = resultDocTitle;
|
||||||
|
|
||||||
|
if (doc.doc != doc.title) {
|
||||||
|
resultDoc.classList.add('search-result-doc-parent');
|
||||||
|
var resultSection = document.createElement('div');
|
||||||
|
resultSection.classList.add('search-result-section');
|
||||||
|
resultSection.innerHTML = doc.title;
|
||||||
|
resultTitle.appendChild(resultSection);
|
||||||
|
resultDocOrSection = resultSection;
|
||||||
|
}
|
||||||
|
|
||||||
|
var metadata = result.matchData.metadata;
|
||||||
|
var titlePositions = [];
|
||||||
|
var contentPositions = [];
|
||||||
|
for (var j in metadata) {
|
||||||
|
var meta = metadata[j];
|
||||||
|
if (meta.title) {
|
||||||
|
var positions = meta.title.position;
|
||||||
|
for (var k in positions) {
|
||||||
|
titlePositions.push(positions[k]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (meta.content) {
|
||||||
|
var positions = meta.content.position;
|
||||||
|
for (var k in positions) {
|
||||||
|
var position = positions[k];
|
||||||
|
var previewStart = position[0];
|
||||||
|
var previewEnd = position[0] + position[1];
|
||||||
|
var ellipsesBefore = true;
|
||||||
|
var ellipsesAfter = true;
|
||||||
|
for (var k = 0; k < {{ site.search.preview_words_before | default: 5 }}; k++) {
|
||||||
|
var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2);
|
||||||
|
var nextDot = doc.content.lastIndexOf('. ', previewStart - 2);
|
||||||
|
if ((nextDot >= 0) && (nextDot > nextSpace)) {
|
||||||
|
previewStart = nextDot + 1;
|
||||||
|
ellipsesBefore = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (nextSpace < 0) {
|
||||||
|
previewStart = 0;
|
||||||
|
ellipsesBefore = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
previewStart = nextSpace + 1;
|
||||||
|
}
|
||||||
|
for (var k = 0; k < {{ site.search.preview_words_after | default: 10 }}; k++) {
|
||||||
|
var nextSpace = doc.content.indexOf(' ', previewEnd + 1);
|
||||||
|
var nextDot = doc.content.indexOf('. ', previewEnd + 1);
|
||||||
|
if ((nextDot >= 0) && (nextDot < nextSpace)) {
|
||||||
|
previewEnd = nextDot;
|
||||||
|
ellipsesAfter = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (nextSpace < 0) {
|
||||||
|
previewEnd = doc.content.length;
|
||||||
|
ellipsesAfter = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
previewEnd = nextSpace;
|
||||||
|
}
|
||||||
|
contentPositions.push({
|
||||||
|
highlight: position,
|
||||||
|
previewStart: previewStart, previewEnd: previewEnd,
|
||||||
|
ellipsesBefore: ellipsesBefore, ellipsesAfter: ellipsesAfter
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (titlePositions.length > 0) {
|
||||||
|
titlePositions.sort(function(p1, p2){ return p1[0] - p2[0] });
|
||||||
|
resultDocOrSection.innerHTML = '';
|
||||||
|
addHighlightedText(resultDocOrSection, doc.title, 0, doc.title.length, titlePositions);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (contentPositions.length > 0) {
|
||||||
|
contentPositions.sort(function(p1, p2){ return p1.highlight[0] - p2.highlight[0] });
|
||||||
|
var contentPosition = contentPositions[0];
|
||||||
|
var previewPosition = {
|
||||||
|
highlight: [contentPosition.highlight],
|
||||||
|
previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd,
|
||||||
|
ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter
|
||||||
|
};
|
||||||
|
var previewPositions = [previewPosition];
|
||||||
|
for (var j = 1; j < contentPositions.length; j++) {
|
||||||
|
contentPosition = contentPositions[j];
|
||||||
|
if (previewPosition.previewEnd < contentPosition.previewStart) {
|
||||||
|
previewPosition = {
|
||||||
|
highlight: [contentPosition.highlight],
|
||||||
|
previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd,
|
||||||
|
ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter
|
||||||
|
}
|
||||||
|
previewPositions.push(previewPosition);
|
||||||
|
} else {
|
||||||
|
previewPosition.highlight.push(contentPosition.highlight);
|
||||||
|
previewPosition.previewEnd = contentPosition.previewEnd;
|
||||||
|
previewPosition.ellipsesAfter = contentPosition.ellipsesAfter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var resultPreviews = document.createElement('div');
|
||||||
|
resultPreviews.classList.add('search-result-previews');
|
||||||
|
resultLink.appendChild(resultPreviews);
|
||||||
|
|
||||||
|
var content = doc.content;
|
||||||
|
for (var j = 0; j < Math.min(previewPositions.length, {{ site.search.previews | default: 3 }}); j++) {
|
||||||
|
var position = previewPositions[j];
|
||||||
|
|
||||||
|
var resultPreview = document.createElement('div');
|
||||||
|
resultPreview.classList.add('search-result-preview');
|
||||||
|
resultPreviews.appendChild(resultPreview);
|
||||||
|
|
||||||
|
if (position.ellipsesBefore) {
|
||||||
|
resultPreview.appendChild(document.createTextNode('... '));
|
||||||
|
}
|
||||||
|
addHighlightedText(resultPreview, content, position.previewStart, position.previewEnd, position.highlight);
|
||||||
|
if (position.ellipsesAfter) {
|
||||||
|
resultPreview.appendChild(document.createTextNode(' ...'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{%- if site.search.rel_url != false %}
|
||||||
|
var resultRelUrl = document.createElement('span');
|
||||||
|
resultRelUrl.classList.add('search-result-rel-url');
|
||||||
|
resultRelUrl.innerText = doc.relUrl;
|
||||||
|
resultTitle.appendChild(resultRelUrl);
|
||||||
|
{%- endif %}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addHighlightedText(parent, text, start, end, positions) {
|
||||||
|
var index = start;
|
||||||
|
for (var i in positions) {
|
||||||
|
var position = positions[i];
|
||||||
|
var span = document.createElement('span');
|
||||||
|
span.innerHTML = text.substring(index, position[0]);
|
||||||
|
parent.appendChild(span);
|
||||||
|
index = position[0] + position[1];
|
||||||
|
var highlight = document.createElement('span');
|
||||||
|
highlight.classList.add('search-result-highlight');
|
||||||
|
highlight.innerHTML = text.substring(position[0], index);
|
||||||
|
parent.appendChild(highlight);
|
||||||
|
}
|
||||||
|
var span = document.createElement('span');
|
||||||
|
span.innerHTML = text.substring(index, end);
|
||||||
|
parent.appendChild(span);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jtd.addEvent(searchInput, 'focus', function(){
|
||||||
|
setTimeout(update, 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
jtd.addEvent(searchInput, 'keyup', function(e){
|
||||||
|
switch (e.keyCode) {
|
||||||
|
case 27: // When esc key is pressed, hide the results and clear the field
|
||||||
|
searchInput.value = '';
|
||||||
|
break;
|
||||||
|
case 38: // arrow up
|
||||||
|
case 40: // arrow down
|
||||||
|
case 13: // enter
|
||||||
|
e.preventDefault();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
update();
|
||||||
|
});
|
||||||
|
|
||||||
jtd.addEvent(searchInput, 'keydown', function(e){
|
jtd.addEvent(searchInput, 'keydown', function(e){
|
||||||
switch (e.keyCode) {
|
switch (e.keyCode) {
|
||||||
case 38: // arrow up
|
case 38: // arrow up
|
||||||
@@ -145,146 +439,13 @@ function initSearch() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jtd.addEvent(searchInput, 'keyup', function(e){
|
jtd.addEvent(document, 'click', function(e){
|
||||||
switch (e.keyCode) {
|
if (e.target != searchInput) {
|
||||||
case 27: // When esc key is pressed, hide the results and clear the field
|
hideSearch();
|
||||||
hideResults();
|
|
||||||
searchInput.value = '';
|
|
||||||
return;
|
|
||||||
case 38: // arrow up
|
|
||||||
case 40: // arrow down
|
|
||||||
case 13: // enter
|
|
||||||
e.preventDefault();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
hideResults();
|
|
||||||
|
|
||||||
var input = this.value;
|
|
||||||
if (input === '') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var results = index.query(function (query) {
|
|
||||||
var tokens = lunr.tokenizer(input)
|
|
||||||
query.term(tokens, {
|
|
||||||
boost: 10
|
|
||||||
});
|
|
||||||
query.term(tokens, {
|
|
||||||
wildcard: lunr.Query.wildcard.TRAILING
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
if (results.length > 0) {
|
|
||||||
searchResults.classList.add('active');
|
|
||||||
var resultsList = document.createElement('ul');
|
|
||||||
resultsList.classList.add('search-results-list');
|
|
||||||
searchResults.appendChild(resultsList);
|
|
||||||
|
|
||||||
for (var i in results) {
|
|
||||||
var result = results[i];
|
|
||||||
var doc = docs[result.ref];
|
|
||||||
|
|
||||||
var resultsListItem = document.createElement('li');
|
|
||||||
resultsListItem.classList.add('search-results-list-item');
|
|
||||||
resultsList.appendChild(resultsListItem);
|
|
||||||
|
|
||||||
var resultLink = document.createElement('a');
|
|
||||||
resultLink.classList.add('search-result');
|
|
||||||
resultLink.setAttribute('href', doc.url);
|
|
||||||
resultsListItem.appendChild(resultLink);
|
|
||||||
|
|
||||||
var resultTitle = document.createElement('div');
|
|
||||||
resultTitle.classList.add('search-result-title');
|
|
||||||
resultTitle.innerText = doc.title;
|
|
||||||
resultLink.appendChild(resultTitle);
|
|
||||||
|
|
||||||
var resultRelUrl = document.createElement('span');
|
|
||||||
resultRelUrl.classList.add('search-result-rel-url');
|
|
||||||
resultRelUrl.innerText = doc.relUrl;
|
|
||||||
resultTitle.appendChild(resultRelUrl);
|
|
||||||
|
|
||||||
var metadata = result.matchData.metadata;
|
|
||||||
var contentFound = false;
|
|
||||||
for (var j in metadata) {
|
|
||||||
if (metadata[j].title) {
|
|
||||||
var position = metadata[j].title.position[0];
|
|
||||||
var start = position[0];
|
|
||||||
var end = position[0] + position[1];
|
|
||||||
resultTitle.innerHTML = doc.title.substring(0, start) + '<span class="search-result-highlight">' + doc.title.substring(start, end) + '</span>' + doc.title.substring(end, doc.title.length)+'<span class="search-result-rel-url">'+doc.relUrl+'</span>';
|
|
||||||
|
|
||||||
} else if (metadata[j].content && !contentFound) {
|
|
||||||
contentFound = true;
|
|
||||||
|
|
||||||
var position = metadata[j].content.position[0];
|
|
||||||
var start = position[0];
|
|
||||||
var end = position[0] + position[1];
|
|
||||||
var previewStart = start;
|
|
||||||
var previewEnd = end;
|
|
||||||
var ellipsesBefore = true;
|
|
||||||
var ellipsesAfter = true;
|
|
||||||
for (var k = 0; k < 3; k++) {
|
|
||||||
var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2);
|
|
||||||
var nextDot = doc.content.lastIndexOf('.', previewStart - 2);
|
|
||||||
if ((nextDot > 0) && (nextDot > nextSpace)) {
|
|
||||||
previewStart = nextDot + 1;
|
|
||||||
ellipsesBefore = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (nextSpace < 0) {
|
|
||||||
previewStart = 0;
|
|
||||||
ellipsesBefore = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
previewStart = nextSpace + 1;
|
|
||||||
}
|
|
||||||
for (var k = 0; k < 10; k++) {
|
|
||||||
var nextSpace = doc.content.indexOf(' ', previewEnd + 1);
|
|
||||||
var nextDot = doc.content.indexOf('.', previewEnd + 1);
|
|
||||||
if ((nextDot > 0) && (nextDot < nextSpace)) {
|
|
||||||
previewEnd = nextDot;
|
|
||||||
ellipsesAfter = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (nextSpace < 0) {
|
|
||||||
previewEnd = doc.content.length;
|
|
||||||
ellipsesAfter = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
previewEnd = nextSpace;
|
|
||||||
}
|
|
||||||
var preview = doc.content.substring(previewStart, start);
|
|
||||||
if (ellipsesBefore) {
|
|
||||||
preview = '... ' + preview;
|
|
||||||
}
|
|
||||||
preview += '<span class="search-result-highlight">' + doc.content.substring(start, end) + '</span>';
|
|
||||||
preview += doc.content.substring(end, previewEnd);
|
|
||||||
if (ellipsesAfter) {
|
|
||||||
preview += ' ...';
|
|
||||||
}
|
|
||||||
|
|
||||||
var resultPreview = document.createElement('div');
|
|
||||||
resultPreview.classList.add('search-result-preview');
|
|
||||||
resultPreview.innerHTML = preview;
|
|
||||||
resultLink.appendChild(resultPreview);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jtd.addEvent(searchInput, 'blur', function(){
|
|
||||||
setTimeout(function(){ hideResults() }, 300);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Focus
|
|
||||||
|
|
||||||
function pageFocus() {
|
|
||||||
var mainContent = document.querySelector('.js-main-content');
|
|
||||||
mainContent.focus();
|
|
||||||
}
|
}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
// Switch theme
|
// Switch theme
|
||||||
|
|
||||||
@@ -295,19 +456,78 @@ jtd.getTheme = function() {
|
|||||||
|
|
||||||
jtd.setTheme = function(theme) {
|
jtd.setTheme = function(theme) {
|
||||||
var cssFile = document.querySelector('[rel="stylesheet"]');
|
var cssFile = document.querySelector('[rel="stylesheet"]');
|
||||||
cssFile.setAttribute('href', '{{ "assets/css/just-the-docs-" | absolute_url }}' + theme + '.css');
|
cssFile.setAttribute('href', '{{ "assets/css/just-the-docs-" | relative_url }}' + theme + '.css');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scroll site-nav to ensure the link to the current page is visible
|
||||||
|
|
||||||
|
function scrollNav() {
|
||||||
|
const href = document.location.pathname;
|
||||||
|
const siteNav = document.getElementById('site-nav');
|
||||||
|
const targetLink = siteNav.querySelector('a[href="' + href + '"], a[href="' + href + '/"]');
|
||||||
|
if(targetLink){
|
||||||
|
const rect = targetLink.getBoundingClientRect();
|
||||||
|
siteNav.scrollBy(0, rect.top - 3*rect.height);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Document ready
|
// Document ready
|
||||||
|
|
||||||
jtd.onReady(function(){
|
jtd.onReady(function(){
|
||||||
initNav();
|
initNav();
|
||||||
pageFocus();
|
{%- if site.search_enabled != false %}
|
||||||
if (typeof lunr !== 'undefined') {
|
|
||||||
initSearch();
|
initSearch();
|
||||||
}
|
{%- endif %}
|
||||||
|
scrollNav();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Copy button on code
|
||||||
|
|
||||||
|
|
||||||
|
{%- if site.enable_copy_code_button != false %}
|
||||||
|
|
||||||
|
jtd.onReady(function(){
|
||||||
|
|
||||||
|
if (!window.isSecureContext) {
|
||||||
|
console.log('Window does not have a secure context, therefore code clipboard copy functionality will not be available. For more details see https://web.dev/async-clipboard/#security-and-permissions');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var codeBlocks = document.querySelectorAll('div.highlighter-rouge, div.listingblock > div.content, figure.highlight');
|
||||||
|
|
||||||
|
// note: the SVG svg-copied and svg-copy is only loaded as a Jekyll include if site.enable_copy_code_button is true; see _includes/icons/icons.html
|
||||||
|
var svgCopied = '<svg viewBox="0 0 24 24" class="copy-icon"><use xlink:href="#svg-copied"></use></svg>';
|
||||||
|
var svgCopy = '<svg viewBox="0 0 24 24" class="copy-icon"><use xlink:href="#svg-copy"></use></svg>';
|
||||||
|
|
||||||
|
codeBlocks.forEach(codeBlock => {
|
||||||
|
var copyButton = document.createElement('button');
|
||||||
|
var timeout = null;
|
||||||
|
copyButton.type = 'button';
|
||||||
|
copyButton.ariaLabel = 'Copy code to clipboard';
|
||||||
|
copyButton.innerHTML = svgCopy;
|
||||||
|
codeBlock.append(copyButton);
|
||||||
|
|
||||||
|
copyButton.addEventListener('click', function () {
|
||||||
|
if(timeout === null) {
|
||||||
|
var code = (codeBlock.querySelector('pre:not(.lineno, .highlight)') || codeBlock.querySelector('code')).innerText;
|
||||||
|
window.navigator.clipboard.writeText(code);
|
||||||
|
|
||||||
|
copyButton.innerHTML = svgCopied;
|
||||||
|
|
||||||
|
var timeoutSetting = 4000;
|
||||||
|
|
||||||
|
timeout = setTimeout(function () {
|
||||||
|
copyButton.innerHTML = svgCopy;
|
||||||
|
timeout = null;
|
||||||
|
}, timeoutSetting);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
})(window.jtd = window.jtd || {});
|
})(window.jtd = window.jtd || {});
|
||||||
|
|
||||||
{% include js/custom.js %}
|
{% include js/custom.js %}
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
---
|
|
||||||
{
|
|
||||||
{% assign comma = false %}
|
|
||||||
{% for page in site.html_pages %}{% if page.search_exclude != true %}{% if comma == true%},{% endif %}"{{ forloop.index0 }}": {
|
|
||||||
"title": "{{ page.title | replace: '&', '&' }}",
|
|
||||||
"content": "{{ page.content | markdownify | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '</ul', ' . </ul' | replace: '</tr', ' . </tr' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | strip_html | escape_once | remove: 'Table of contents' | remove: '```' | remove: '---' | replace: '\', ' ' | replace: ' . . . ', ' . ' | replace: ' . . ', ' . ' | normalize_whitespace }}",
|
|
||||||
"url": "{{ page.url | absolute_url }}",
|
|
||||||
"relUrl": "{{ page.url }}"
|
|
||||||
}{% assign comma = true %}
|
|
||||||
{% endif %}{% endfor %}
|
|
||||||
}
|
|
61
assets/js/vendor/lunr.min.js
vendored
61
assets/js/vendor/lunr.min.js
vendored
File diff suppressed because one or more lines are too long
74
assets/js/zzzz-search-data.json
Normal file
74
assets/js/zzzz-search-data.json
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
permalink: /assets/js/search-data.json
|
||||||
|
---
|
||||||
|
{
|
||||||
|
{%- assign i = 0 -%}
|
||||||
|
{%- assign pages_array = "" | split: "" -%}
|
||||||
|
{%- assign pages_array = pages_array | push: site.html_pages -%}
|
||||||
|
{%- if site.just_the_docs.collections -%}
|
||||||
|
{%- for collection_entry in site.just_the_docs.collections -%}
|
||||||
|
{%- assign collection_key = collection_entry[0] -%}
|
||||||
|
{%- assign collection_value = collection_entry[1] -%}
|
||||||
|
{%- assign collection = site[collection_key] -%}
|
||||||
|
{%- if collection_value.search_exclude != true -%}
|
||||||
|
{%- assign pages_array = pages_array | push: collection -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- for pages in pages_array -%}
|
||||||
|
{%- for page in pages -%}
|
||||||
|
{%- if page.title and page.search_exclude != true -%}
|
||||||
|
{%- assign page_content = page.content -%}
|
||||||
|
{%- assign heading_level = site.search.heading_level | default: 2 -%}
|
||||||
|
{%- for j in (2..heading_level) -%}
|
||||||
|
{%- assign tag = '<h' | append: j -%}
|
||||||
|
{%- assign closing_tag = '</h' | append: j -%}
|
||||||
|
{%- assign page_content = page_content | replace: tag, '<h1' | replace: closing_tag, '</h1' -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- assign parts = page_content | split: '<h1' -%}
|
||||||
|
{%- assign title_found = false -%}
|
||||||
|
{%- for part in parts offset: 1 -%}
|
||||||
|
{%- assign titleAndContent = part | split: '</h1>' -%}
|
||||||
|
{%- assign title = titleAndContent[0] | replace_first: '>', '<h1>' | split: '<h1>' -%}
|
||||||
|
{%- assign title = title[1] | strip_html -%}
|
||||||
|
{%- assign content = titleAndContent[1] -%}
|
||||||
|
{%- assign url = page.url -%}
|
||||||
|
{%- if title == page.title and parts[0] == '' -%}
|
||||||
|
{%- assign title_found = true -%}
|
||||||
|
{%- else -%}
|
||||||
|
{%- assign id = titleAndContent[0] -%}
|
||||||
|
{%- assign id = id | split: 'id="' -%}
|
||||||
|
{%- if id.size == 2 -%}
|
||||||
|
{%- assign id = id[1] -%}
|
||||||
|
{%- assign id = id | split: '"' -%}
|
||||||
|
{%- assign id = id[0] -%}
|
||||||
|
{%- capture url -%}{{ url | append: '#' | append: id }}{%- endcapture -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- unless i == 0 -%},{%- endunless -%}
|
||||||
|
"{{ i }}": {
|
||||||
|
"doc": {{ page.title | jsonify }},
|
||||||
|
"title": {{ title | jsonify }},
|
||||||
|
"content": {{ content | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '<ul', ' . <ul' | replace: '</ul', ' . </ul' | replace: '<ol', ' . <ol' | replace: '</ol', ' . </ol' | replace: '</tr', ' . </tr' | replace: '<li', ' | <li' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | replace: '<td', ' | <td' | replace: '</th', ' | </th' | replace: '<th', ' | <th' | strip_html | remove: 'Table of contents' | normalize_whitespace | replace: '. . .', '.' | replace: '. .', '.' | replace: '| |', '|' | append: ' ' | jsonify }},
|
||||||
|
"url": "{{ url | relative_url }}",
|
||||||
|
{% include lunr/custom-data.json page=page %}
|
||||||
|
"relUrl": "{{ url }}"
|
||||||
|
}
|
||||||
|
{%- assign i = i | plus: 1 -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- unless title_found -%}
|
||||||
|
{%- unless i == 0 -%},{%- endunless -%}
|
||||||
|
"{{ i }}": {
|
||||||
|
"doc": {{ page.title | jsonify }},
|
||||||
|
"title": {{ page.title | jsonify }},
|
||||||
|
"content": {{ parts[0] | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '<ul', ' . <ul' | replace: '</ul', ' . </ul' | replace: '<ol', ' . <ol' | replace: '</ol', ' . </ol' | replace: '</tr', ' . </tr' | replace: '<li', ' | <li' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | replace: '<td', ' | <td' | replace: '</th', ' | </th' | replace: '<th', ' | <th' | strip_html | remove: 'Table of contents' | normalize_whitespace | replace: '. . .', '.' | replace: '. .', '.' | replace: '| |', '|' | append: ' ' | jsonify }},
|
||||||
|
"url": "{{ page.url | relative_url }}",
|
||||||
|
{% include lunr/custom-data.json page=page %}
|
||||||
|
"relUrl": "{{ page.url }}"
|
||||||
|
}
|
||||||
|
{%- assign i = i | plus: 1 -%}
|
||||||
|
{%- endunless -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- endfor %}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user