Compare commits
74 commits
Author | SHA1 | Date | |
---|---|---|---|
a6eb0033d8 | |||
1627825208 | |||
c93426fdf6 | |||
ab49a83c6f | |||
7350648c55 | |||
5b580cd52b | |||
25fe273c20 | |||
2bb01f238f | |||
203ab58c84 | |||
2fd1b7e9f5 | |||
44ae2d2415 | |||
222ee14d8c | |||
c8b91d66d7 | |||
6541f9ff31 | |||
f038432f4f | |||
750d5052d3 | |||
375abb3146 | |||
778d4a9ca7 | |||
78b24c6021 | |||
e51ab5a4e2 | |||
88ef9ac88c | |||
41729f95b4 | |||
7298386b2f | |||
a3c202d0dc | |||
03c36a86c6 | |||
b178036dd3 | |||
988bd8c1d8 | |||
457b460886 | |||
12e09be6df | |||
7cce63b660 | |||
5d60e2043d | |||
3bb91fa2b0 | |||
95e3391634 | |||
d43f349827 | |||
b9396e150c | |||
96052d40f0 | |||
34acd5803e | |||
4635e1c454 | |||
d8354512e3 | |||
141b1e33f2 | |||
dd5b7d8591 | |||
9298ecdcb3 | |||
b8ec402504 | |||
df4fa13e2a | |||
bf8a122ac1 | |||
058d4c6400 | |||
45c42d0bfe | |||
2d2a6ee041 | |||
3572ceffed | |||
6b9a8f9921 | |||
75d6511cbc | |||
108f6c42c6 | |||
d4beaa8167 | |||
afdbe7071a | |||
0e7642b1d9 | |||
00b992e2f5 | |||
d16e8d0869 | |||
44f0ded376 | |||
|
d15ccac880 | ||
|
f9bcf3feb8 | ||
|
9bb3014976 | ||
|
7259319460 | ||
8054a7a8b0 | |||
016202ee5a | |||
feb4a20cc1 | |||
810d0c97f2 | |||
ce8cc97350 | |||
5fa78d5a3d | |||
479b053785 | |||
850524ecd9 | |||
712a50930b | |||
3dc96fa75c | |||
cf33bec956 | |||
9e68c430f2 |
23 changed files with 1586 additions and 1189 deletions
150
.github/workflows/build-and-publish.yml
vendored
Normal file
150
.github/workflows/build-and-publish.yml
vendored
Normal file
|
@ -0,0 +1,150 @@
|
|||
---
|
||||
name: "Build, Test and Publish"
|
||||
|
||||
"on":
|
||||
# run it on push to the default repository branch
|
||||
push:
|
||||
branches: [master, develop]
|
||||
# run it during pull request
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
IMAGE_NAME: glenux/teaching-boilerplate
|
||||
DOCKER_BUILDKIT: 1
|
||||
|
||||
jobs:
|
||||
build-docker-image:
|
||||
name: "Build docker image"
|
||||
# run only when code is compiling and tests are passing
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# steps to perform in job
|
||||
steps:
|
||||
- name: Set current date as env variable
|
||||
run: |
|
||||
export BUILD_VERSION=v$(date +'%Y%m%d_%H%M')
|
||||
echo "BUILD_VERSION=$BUILD_VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Build image and save as file
|
||||
run: |
|
||||
docker build \
|
||||
--file docker/Dockerfile \
|
||||
--cache-from $IMAGE_NAME:latest \
|
||||
--tag $IMAGE_NAME:latest \
|
||||
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
||||
"."
|
||||
docker save $IMAGE_NAME:latest > /tmp/image.tar
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
||||
|
||||
- name: Save important variables as extra.env
|
||||
run: |
|
||||
echo "BUILD_VERSION=$BUILD_VERSION" >> /tmp/extra.env
|
||||
cat /tmp/extra.env
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: artifacts
|
||||
path: |
|
||||
/tmp/image.tar
|
||||
/tmp/extra.env
|
||||
|
||||
test-docker-image:
|
||||
name: "Test docker image (build PDF and HTML)"
|
||||
needs: build-docker-image
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: artifacts
|
||||
path: /tmp
|
||||
|
||||
- name: Load environment
|
||||
run: |
|
||||
cat /tmp/extra.env >> $GITHUB_ENV
|
||||
|
||||
- name: Load image
|
||||
run: |
|
||||
docker load --input /tmp/image.tar
|
||||
docker image ls -a
|
||||
|
||||
- name: Build HTML for docs
|
||||
run: |
|
||||
./scripts/gx-teaching \
|
||||
--no-tty \
|
||||
--data-dir . \
|
||||
--action build-docs-html
|
||||
|
||||
- name: Build PDF for docs
|
||||
run: |
|
||||
./scripts/gx-teaching \
|
||||
--no-tty \
|
||||
--data-dir . \
|
||||
--action build-docs-pdf
|
||||
|
||||
- name: Build HTML for slides
|
||||
run: |
|
||||
./scripts/gx-teaching \
|
||||
--no-tty \
|
||||
--data-dir . \
|
||||
--action build-slides-html
|
||||
|
||||
- name: Build PDF for slides
|
||||
run: |
|
||||
./scripts/gx-teaching \
|
||||
--no-tty \
|
||||
--data-dir . \
|
||||
--action build-slides-pdf
|
||||
|
||||
push-docker-image:
|
||||
name: "Push docker image to registry"
|
||||
needs: test-docker-image
|
||||
if: github.ref == 'refs/heads/master'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: artifacts
|
||||
path: /tmp
|
||||
|
||||
- name: Load environment
|
||||
run: |
|
||||
cat /tmp/extra.env >> $GITHUB_ENV
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
|
||||
- name: Load image
|
||||
run: |
|
||||
docker load --input /tmp/image.tar
|
||||
docker image ls -a
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Tag images
|
||||
run: |
|
||||
docker tag \
|
||||
glenux/teaching-boilerplate:latest \
|
||||
glenux/teaching-boilerplate:${{ env.BUILD_VERSION }}
|
||||
|
||||
- name: Build image and push to Docker Hub and GitHub Container Registry
|
||||
run: |
|
||||
docker push glenux/teaching-boilerplate:latest
|
||||
docker push glenux/teaching-boilerplate:${{ env.BUILD_VERSION }}
|
||||
#
|
72
.github/workflows/codeql-analysis.yml
vendored
Normal file
72
.github/workflows/codeql-analysis.yml
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
---
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '28 4 * * 2'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# language: [ 'javascript', 'python']
|
||||
language: ['python']
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -4,3 +4,6 @@
|
|||
[submodule "ext/marp-assets"]
|
||||
path = ext/marp-assets
|
||||
url = git@bitbucket.org:glenux/marp-assets.git
|
||||
[submodule ".makefiles"]
|
||||
path = .makefiles
|
||||
url = https://github.com/glenux/makefiles-forever
|
||||
|
|
1
.makefiles
Submodule
1
.makefiles
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit d5627404e17e12ff6349007efc25fa01db4c9c54
|
|
@ -1,85 +0,0 @@
|
|||
/* @theme glenux */
|
||||
@import-theme 'default';
|
||||
body {
|
||||
--primary-color: #009fcb;
|
||||
--secondary-color: #241c1c;
|
||||
--text-color: #111111; }
|
||||
|
||||
section {
|
||||
font-size: 24px;
|
||||
justify-content: start; }
|
||||
|
||||
section footer {
|
||||
opacity: 0.75;
|
||||
color: #888; }
|
||||
|
||||
section::after {
|
||||
opacity: 0.5;
|
||||
color: black; }
|
||||
|
||||
section[id="1"] h1,
|
||||
section[id="1"] h2,
|
||||
section[id="1"] h3,
|
||||
section[id="1"] h4,
|
||||
section[id="1"] h5,
|
||||
section[id="1"] h6 {
|
||||
/* color: white !important; */ }
|
||||
|
||||
section[id="1"]::after {
|
||||
color: var(--text-color); }
|
||||
|
||||
section[id="1"] footer {
|
||||
color: var(--text-color); }
|
||||
|
||||
section.chapter {
|
||||
justify-content: center; }
|
||||
|
||||
/*
|
||||
section.chapter h1:first-child::before,
|
||||
section.chapter h2:first-child::before,
|
||||
section.chapter h3:first-child::before,
|
||||
section.chapter h4:first-child::before,
|
||||
section.chapter h5:first-child::before {
|
||||
display: none;
|
||||
}
|
||||
*/
|
||||
h1:first-child,
|
||||
h2:first-child,
|
||||
h3:first-child,
|
||||
h4:first-child,
|
||||
h5:first-child,
|
||||
h6:first-child {
|
||||
font-family: "Droid Sans Mono", monospace;
|
||||
color: #662d91;
|
||||
font-weight: bold;
|
||||
position: relative; }
|
||||
|
||||
h1:first-child::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0.2em;
|
||||
left: -100px;
|
||||
width: 70px;
|
||||
height: 0.9em;
|
||||
background-color: white; }
|
||||
|
||||
section:not(.chapter) h2:first-child {
|
||||
font-size: 100%; }
|
||||
|
||||
h2:first-child::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0.2em;
|
||||
left: -100px;
|
||||
width: 70px;
|
||||
height: 0.9em;
|
||||
background-color: #662d91; }
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: underline; }
|
||||
|
||||
blockquote {
|
||||
color: inherit; }
|
153
.marp/theme.scss
Normal file
153
.marp/theme.scss
Normal file
|
@ -0,0 +1,153 @@
|
|||
/* @theme glenux */
|
||||
@import-theme 'default';
|
||||
body {
|
||||
--primary-color: #009fcb;
|
||||
--secondary-color: #241c1c;
|
||||
--text-color: #111111; }
|
||||
|
||||
section {
|
||||
font-size: 24px;
|
||||
justify-content: start; }
|
||||
|
||||
section footer {
|
||||
opacity: 0.75;
|
||||
color: #888; }
|
||||
|
||||
section::after {
|
||||
opacity: 0.5;
|
||||
color: black; }
|
||||
|
||||
section[id="1"] h1,
|
||||
section[id="1"] h2,
|
||||
section[id="1"] h3,
|
||||
section[id="1"] h4,
|
||||
section[id="1"] h5,
|
||||
section[id="1"] h6 {
|
||||
/* color: white !important; */ }
|
||||
|
||||
section[id="1"]::after {
|
||||
color: var(--text-color); }
|
||||
|
||||
section[id="1"] footer {
|
||||
color: var(--text-color); }
|
||||
|
||||
section.chapter {
|
||||
justify-content: center; }
|
||||
|
||||
/*
|
||||
section.chapter h1:first-child::before,
|
||||
section.chapter h2:first-child::before,
|
||||
section.chapter h3:first-child::before,
|
||||
section.chapter h4:first-child::before,
|
||||
section.chapter h5:first-child::before {
|
||||
display: none;
|
||||
}
|
||||
*/
|
||||
|
||||
section > bc-title {
|
||||
line-height: 39px;
|
||||
font-size: 32px;
|
||||
padding-bottom: 9.36px;
|
||||
}
|
||||
|
||||
section > h1 {
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
section > bc-title:first-child,
|
||||
section > h1:first-child,
|
||||
section > h2:first-child,
|
||||
section > h3:first-child,
|
||||
section > h4:first-child,
|
||||
section > h5:first-child,
|
||||
section > h6:first-child {
|
||||
font-family: "Droid Sans Mono", monospace;
|
||||
color: #662d91;
|
||||
font-weight: bold;
|
||||
position: relative; }
|
||||
|
||||
section > bc-title:first-child::before,
|
||||
section > h1:first-child::before,
|
||||
section > h2:first-child::before,
|
||||
section > h3:first-child::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0.2em;
|
||||
left: -100px;
|
||||
width: 70px;
|
||||
height: 0.9em;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
|
||||
section > bc-title:first-child::before,
|
||||
section > h1:first-child::before,
|
||||
section > h2:first-child::before,
|
||||
section > h3:first-child::before,
|
||||
section > h4:first-child::before,
|
||||
section > h5:first-child::before,
|
||||
section > h6:first-child::before
|
||||
{
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0.2em;
|
||||
left: -100px;
|
||||
width: 70px;
|
||||
height: 0.9em;
|
||||
background-color: #662d91; }
|
||||
|
||||
|
||||
section:not(.chapter) > h2:first-child {
|
||||
font-size: 100%; }
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: underline; }
|
||||
|
||||
blockquote {
|
||||
color: inherit; }
|
||||
|
||||
bc-row {
|
||||
margin-top: 20px;
|
||||
margin-bottom: auto;
|
||||
/* outline: 1px solid red; */
|
||||
/* padding: 10px; */
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
bc-row > bc-column {
|
||||
/* outline: 1px solid red; */
|
||||
margin-left: 100px;
|
||||
flex-basis: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
bc-row > bc-column {
|
||||
/* outline: 1px solid red; */
|
||||
margin-left: 100px;
|
||||
flex-basis: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
bc-row > bc-column[bc-grey] {
|
||||
background-color: #eeeeee;
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
bc-row > bc-column:first-of-type {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
bc-row > bc-column > h1:first-child,
|
||||
bc-row > bc-column > h2:first-child,
|
||||
bc-row > bc-column > h3:first-child,
|
||||
bc-row > bc-column > h4:first-child,
|
||||
bc-row > bc-column > h5:first-child,
|
||||
bc-row > bc-column > h6:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
10
Dockerfile
10
Dockerfile
|
@ -1,10 +0,0 @@
|
|||
FROM node:buster-slim
|
||||
MAINTAINER Glenn ROLLAND <glenux@glenux.net>
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y make python build-essential
|
||||
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
RUN make prepare
|
||||
CMD make watch
|
88
Makefile
88
Makefile
|
@ -1,5 +1,8 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
## System-wide installation of python/node ?
|
||||
SYSTEM_INSTALL=0
|
||||
|
||||
## Configure this part if you wish to
|
||||
DEPLOY_REPO=
|
||||
DEPLOY_OPTS=
|
||||
|
@ -9,19 +12,32 @@ SLIDES_DIR=slides
|
|||
DOCS_DIR=docs
|
||||
IMAGES_DIR=images
|
||||
BUILD_DIR=_build
|
||||
CACHE_DIR=_cache
|
||||
|
||||
## Internal directories
|
||||
CACHE_SLIDES_DIR=$(CACHE_DIR)/slides
|
||||
|
||||
## Output directories
|
||||
BUILD_SLIDES_DIR=$(BUILD_DIR)/slides
|
||||
BUILD_DOCS_DIR=$(BUILD_DIR)/docs
|
||||
BUILD_IMAGES_DIR=images
|
||||
|
||||
BUILD_VERSION=v$(shell date "+%Y%m%d-%H%M")
|
||||
|
||||
## Ports
|
||||
DOCS_PORT=5100
|
||||
SLIDES_PORT=5200
|
||||
|
||||
## Find .md slides
|
||||
SLIDES_MD=$(shell find $(SLIDES_DIR) \( -name '*.md' ! -name '_*' \))
|
||||
SLIDES_PDF=$(patsubst $(SLIDES_DIR)/%.md,$(BUILD_SLIDES_DIR)/%.pdf,$(SLIDES_MD))
|
||||
SLIDES_MDPP=$(shell find $(SLIDES_DIR) \( -name '*.mdpp' ! -name '_*' \))
|
||||
SLIDES_MDPP_MD=$(patsubst $(SLIDES_DIR)/%.mdpp,$(CACHE_SLIDES_DIR)/%.mdpp.md,$(SLIDES_MDPP))
|
||||
SLIDES_MDPP_MD_PDF=$(patsubst $(CACHE_SLIDES_DIR)/%.mdpp.md,$(BUILD_SLIDES_DIR)/%.pdf,$(SLIDES_MDPP_MD))
|
||||
|
||||
SLIDES_MD=$(shell find $(SLIDES_DIR) \( -name '*.md' ! -name '_*' \)) $(SLIDES_MDPP_MD)
|
||||
SLIDES_MD_PDF=$(patsubst $(SLIDES_DIR)/%.md,$(BUILD_SLIDES_DIR)/%.pdf,$(SLIDES_MD))
|
||||
|
||||
SLIDES_MD_ALL=$(SLIDES_MDPP_MD) $(SLIDES_MD)
|
||||
SLIDES_PDF_ALL=$(SLIDES_MDPP_MD_PDF) $(SLIDES_MD_PDF)
|
||||
|
||||
## Find .uml graphs
|
||||
DOCS_IMAGES_UML=$(shell find $(IMAGES_DIR) \( -name '*.uml' ! -name '_*' \))
|
||||
|
@ -57,6 +73,11 @@ prepare-slides: ## install prerequisites for PDF slides only
|
|||
|
||||
prepare-docs: ## install prerequisites for static docs site only
|
||||
pipenv install
|
||||
# if [ "$(SYSTEM_INSTALL)" -eq 1 ]; then \
|
||||
# pipenv install --deploy --system ; \
|
||||
#else \
|
||||
# pipenv install ; \
|
||||
#fi
|
||||
|
||||
.PHONY: prepare prepare-slides prepare-docs
|
||||
|
||||
|
@ -85,6 +106,11 @@ images: $(DOCS_IMAGES_SVG) $(DOCS_IMAGES_PNG) ## build images
|
|||
%.circo.svg: %.circo
|
||||
circo -Tsvg $< > $@
|
||||
|
||||
$(CACHE_SLIDES_DIR)/%.mdpp.md: $(SLIDES_DIR)/%.mdpp
|
||||
mkdir -p "$$(dirname "$@")"
|
||||
m4 -d -I$(SLIDES_DIR) -I$(CACHE_SLIDES_DIR) $< > $@ \
|
||||
|| ( rm -f $@ && exit 1 )
|
||||
|
||||
.marp/theme.css:
|
||||
cd .marp && $(MAKE) theme.css
|
||||
|
||||
|
@ -95,7 +121,6 @@ watch-tocupdate-internal:
|
|||
while inotifywait -q -e move -e modify -e create -e attrib -e delete -e moved_to -r docs ; do \
|
||||
sleep 2 ; \
|
||||
$(MAKE) images ; \
|
||||
$(MAKE) tocupdate ; \
|
||||
done
|
||||
|
||||
watch-docs-internal:
|
||||
|
@ -123,12 +148,7 @@ serve-docs: watch-docs
|
|||
.PHONY: watch watch-slides watch-docs watch-slides-internal watch-docs-internal serve serve-docs serve-slides
|
||||
|
||||
|
||||
tocupdate:
|
||||
pipenv run ./scripts/update-toc $(DOCS_DIR) ; \
|
||||
|
||||
|
||||
$(BUILD_SLIDES_DIR)/%.pdf: $(SLIDES_DIR)/%.md
|
||||
mkdir -p $(BUILD_SLIDES_DIR)
|
||||
$(BUILD_SLIDES_DIR)/%.pdf: $(CACHE_SLIDES_DIR)/%.mdpp.md | $(BUILD_SLIDES_DIR) .marp/theme.css
|
||||
npx marp --allow-local-files \
|
||||
--engine $$(pwd)/.marp/engine.js \
|
||||
--html \
|
||||
|
@ -136,6 +156,16 @@ $(BUILD_SLIDES_DIR)/%.pdf: $(SLIDES_DIR)/%.md
|
|||
$< \
|
||||
-o $@
|
||||
|
||||
$(BUILD_SLIDES_DIR)/%.pdf: $(SLIDES_DIR)/%.md | $(BUILD_SLIDES_DIR) .marp/theme.css
|
||||
npx marp --allow-local-files \
|
||||
--engine $$(pwd)/.marp/engine.js \
|
||||
--html \
|
||||
--theme $$(pwd)/.marp/theme.css \
|
||||
$< \
|
||||
-o $@
|
||||
|
||||
$(BUILD_SLIDES_DIR):
|
||||
mkdir -p $(BUILD_SLIDES_DIR)
|
||||
|
||||
##
|
||||
## Build final documents
|
||||
|
@ -144,12 +174,34 @@ $(BUILD_SLIDES_DIR)/%.pdf: $(SLIDES_DIR)/%.md
|
|||
## docs => static web site
|
||||
##
|
||||
|
||||
build: build-docs build-slides ## build all documents
|
||||
build: build-pdf build-html ## build all documents as PDF and HTML files
|
||||
|
||||
build-slides: $(SLIDES_PDF) $(SLIDES_MD) ## build PDF slides only
|
||||
build-pdf: build-docs-pdf build-slides-pdf ## build both docs and slides as PDF files
|
||||
|
||||
build-docs: ## build static docs site only
|
||||
$(MAKE) tocupdate
|
||||
build-html: build-docs-html build-slides-html ## build both docs and slides as HTML files
|
||||
|
||||
build-docs: build-docs-pdf build-docs-html ## build only docs as PDF and HTML
|
||||
|
||||
build-slides: build-slides-pdf build-slides-html ## build only slides as PDF and HTML
|
||||
|
||||
build-slides-pdf: $(SLIDES_PDF_ALL) $(SLIDES_MD_ALL) ## build PDF slides only
|
||||
|
||||
build-slides-html: $(SLIDES_HTML_ALL) ## build HTML slides only
|
||||
|
||||
merge-slides: $(SLIDES_MDPP_MD) $(SLIDES_MD_ALL)
|
||||
|
||||
build-docs-pdf:
|
||||
mkdir -p $(BUILD_DOCS_DIR)
|
||||
rm -f $(BUILD_DOCS_DIR)/combined.pdf
|
||||
PYTHONUTF8=1 \
|
||||
ENABLE_PDF_EXPORT=1 \
|
||||
pipenv run mkdocs build \
|
||||
--site-dir $(BUILD_DOCS_DIR)
|
||||
pdftk \
|
||||
$$(find $(BUILD_DOCS_DIR) -name *.pdf -not -name index.pdf |sort ) \
|
||||
cat output $(BUILD_DOCS_DIR)/combined.pdf
|
||||
|
||||
build-docs-html: ## build static docs site only
|
||||
mkdir -p $(BUILD_DOCS_DIR)
|
||||
pipenv run mkdocs build \
|
||||
--site-dir $(BUILD_DOCS_DIR)
|
||||
|
@ -195,3 +247,13 @@ fixme:
|
|||
@egrep --color -rni '(fixme)' $(DOCS_DIR) $(SLIDES_DIR)
|
||||
|
||||
.PHONY: fixme
|
||||
|
||||
docker-build:
|
||||
docker build -t glenux/teaching-boilerplate:$(BUILD_VERSION)
|
||||
docker tag glenux/teaching-boilerplate:$(BUILD_VERSION) glenux/teaching-boilerplate:latest
|
||||
|
||||
docker-push:
|
||||
env docker push glenux/teaching-boilerplate:latest
|
||||
|
||||
docker-pull:
|
||||
env docker pull glenux/teaching-boilerplate:latest
|
||||
|
|
17
Pipfile
17
Pipfile
|
@ -6,13 +6,18 @@ verify_ssl = true
|
|||
[dev-packages]
|
||||
|
||||
[packages]
|
||||
mkdocs = "*"
|
||||
mkdocs-material = "*"
|
||||
mdx-truly-sane-lists = "*"
|
||||
pymdown-extensions = "*"
|
||||
ansicolors = "*"
|
||||
honcho = "*"
|
||||
pyinotify = "*"
|
||||
mdx-truly-sane-lists = "*"
|
||||
mkdocs = "*"
|
||||
mkdocs-awesome-pages-plugin = "*"
|
||||
mkdocs-gitbook = "*"
|
||||
mkdocs-include-markdown-plugin = "*"
|
||||
mkdocs-material = "*"
|
||||
mocodo = "*"
|
||||
pyinotify = "*"
|
||||
pymdown-extensions = "*"
|
||||
mkdocs-pdf-export-plugin = "*"
|
||||
|
||||
[requires]
|
||||
python_full_version = "3.8.3"
|
||||
python_version = "3.9"
|
||||
|
|
800
Pipfile.lock
generated
800
Pipfile.lock
generated
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "545d3115bc32a7fc35ee3c62f87a5cc727fa23d0908a2a1db960739e0650ca4c"
|
||||
"sha256": "3a402e1a3937fef8857d2d9fe3adba4e6d8f1ead319624d294cfe69d9ce520fa"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_full_version": "3.8.0"
|
||||
"python_version": "3.9"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
|
@ -16,120 +16,285 @@
|
|||
]
|
||||
},
|
||||
"default": {
|
||||
"ansicolors": {
|
||||
"hashes": [
|
||||
"sha256:00d2dde5a675579325902536738dd27e4fac1fd68f773fe36c21044eb559e187",
|
||||
"sha256:99f94f5e3348a0bcd43c82e5fc4414013ccc19d70bd939ad71e0133ce9c372e0"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.1.8"
|
||||
},
|
||||
"beautifulsoup4": {
|
||||
"hashes": [
|
||||
"sha256:9a315ce70049920ea4572a4055bc4bd700c940521d36fc858205ad4fcde149bf",
|
||||
"sha256:c23ad23c521d818955a4151a67d81580319d4bf548d3d49f4223ae041ff98891"
|
||||
],
|
||||
"markers": "python_version >= '3.1'",
|
||||
"version": "==4.10.0"
|
||||
},
|
||||
"bracex": {
|
||||
"hashes": [
|
||||
"sha256:096c4b788bf492f7af4e90ef8b5bcbfb99759ae3415ea1b83c9d29a5ed8f9a94",
|
||||
"sha256:1c8d1296e00ad9a91030ccb4c291f9e4dc7c054f12c707ba3c5ff3e9a81bcd21"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.2.1"
|
||||
},
|
||||
"brotli": {
|
||||
"hashes": [
|
||||
"sha256:160c78292e98d21e73a4cc7f76a234390e516afcd982fa17e1422f7c6a9ce9c8",
|
||||
"sha256:16d528a45c2e1909c2798f27f7bf0a3feec1dc9e50948e738b961618e38b6a7b",
|
||||
"sha256:19598ecddd8a212aedb1ffa15763dd52a388518c4550e615aed88dc3753c0f0c",
|
||||
"sha256:1c48472a6ba3b113452355b9af0a60da5c2ae60477f8feda8346f8fd48e3e87c",
|
||||
"sha256:268fe94547ba25b58ebc724680609c8ee3e5a843202e9a381f6f9c5e8bdb5c70",
|
||||
"sha256:269a5743a393c65db46a7bb982644c67ecba4b8d91b392403ad8a861ba6f495f",
|
||||
"sha256:26d168aac4aaec9a4394221240e8a5436b5634adc3cd1cdf637f6645cecbf181",
|
||||
"sha256:29d1d350178e5225397e28ea1b7aca3648fcbab546d20e7475805437bfb0a130",
|
||||
"sha256:2aad0e0baa04517741c9bb5b07586c642302e5fb3e75319cb62087bd0995ab19",
|
||||
"sha256:35a3edbe18e876e596553c4007a087f8bcfd538f19bc116917b3c7522fca0429",
|
||||
"sha256:3b78a24b5fd13c03ee2b7b86290ed20efdc95da75a3557cc06811764d5ad1126",
|
||||
"sha256:40d15c79f42e0a2c72892bf407979febd9cf91f36f495ffb333d1d04cebb34e4",
|
||||
"sha256:44bb8ff420c1d19d91d79d8c3574b8954288bdff0273bf788954064d260d7ab0",
|
||||
"sha256:4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438",
|
||||
"sha256:503fa6af7da9f4b5780bb7e4cbe0c639b010f12be85d02c99452825dd0feef3f",
|
||||
"sha256:56d027eace784738457437df7331965473f2c0da2c70e1a1f6fdbae5402e0389",
|
||||
"sha256:5913a1177fc36e30fcf6dc868ce23b0453952c78c04c266d3149b3d39e1410d6",
|
||||
"sha256:5b6ef7d9f9c38292df3690fe3e302b5b530999fa90014853dcd0d6902fb59f26",
|
||||
"sha256:5cb1e18167792d7d21e21365d7650b72d5081ed476123ff7b8cac7f45189c0c7",
|
||||
"sha256:61a7ee1f13ab913897dac7da44a73c6d44d48a4adff42a5701e3239791c96e14",
|
||||
"sha256:622a231b08899c864eb87e85f81c75e7b9ce05b001e59bbfbf43d4a71f5f32b2",
|
||||
"sha256:68715970f16b6e92c574c30747c95cf8cf62804569647386ff032195dc89a430",
|
||||
"sha256:6b2ae9f5f67f89aade1fab0f7fd8f2832501311c363a21579d02defa844d9296",
|
||||
"sha256:6c772d6c0a79ac0f414a9f8947cc407e119b8598de7621f39cacadae3cf57d12",
|
||||
"sha256:76ffebb907bec09ff511bb3acc077695e2c32bc2142819491579a695f77ffd4d",
|
||||
"sha256:7cb81373984cc0e4682f31bc3d6be9026006d96eecd07ea49aafb06897746452",
|
||||
"sha256:7ee83d3e3a024a9618e5be64648d6d11c37047ac48adff25f12fa4226cf23d1c",
|
||||
"sha256:854c33dad5ba0fbd6ab69185fec8dab89e13cda6b7d191ba111987df74f38761",
|
||||
"sha256:87fdccbb6bb589095f413b1e05734ba492c962b4a45a13ff3408fa44ffe6479b",
|
||||
"sha256:88c63a1b55f352b02c6ffd24b15ead9fc0e8bf781dbe070213039324922a2eea",
|
||||
"sha256:8a674ac10e0a87b683f4fa2b6fa41090edfd686a6524bd8dedbd6138b309175c",
|
||||
"sha256:93130612b837103e15ac3f9cbacb4613f9e348b58b3aad53721d92e57f96d46a",
|
||||
"sha256:9744a863b489c79a73aba014df554b0e7a0fc44ef3f8a0ef2a52919c7d155031",
|
||||
"sha256:9749a124280a0ada4187a6cfd1ffd35c350fb3af79c706589d98e088c5044267",
|
||||
"sha256:97f715cf371b16ac88b8c19da00029804e20e25f30d80203417255d239f228b5",
|
||||
"sha256:9bf919756d25e4114ace16a8ce91eb340eb57a08e2c6950c3cebcbe3dff2a5e7",
|
||||
"sha256:9d12cf2851759b8de8ca5fde36a59c08210a97ffca0eb94c532ce7b17c6a3d1d",
|
||||
"sha256:a72661af47119a80d82fa583b554095308d6a4c356b2a554fdc2799bc19f2a43",
|
||||
"sha256:afde17ae04d90fbe53afb628f7f2d4ca022797aa093e809de5c3cf276f61bbfa",
|
||||
"sha256:b663f1e02de5d0573610756398e44c130add0eb9a3fc912a09665332942a2efb",
|
||||
"sha256:c2415d9d082152460f2bd4e382a1e85aed233abc92db5a3880da2257dc7daf7b",
|
||||
"sha256:c83aa123d56f2e060644427a882a36b3c12db93727ad7a7b9efd7d7f3e9cc2c4",
|
||||
"sha256:cfc391f4429ee0a9370aa93d812a52e1fee0f37a81861f4fdd1f4fb28e8547c3",
|
||||
"sha256:db844eb158a87ccab83e868a762ea8024ae27337fc7ddcbfcddd157f841fdfe7",
|
||||
"sha256:defed7ea5f218a9f2336301e6fd379f55c655bea65ba2476346340a0ce6f74a1",
|
||||
"sha256:e16eb9541f3dd1a3e92b89005e37b1257b157b7256df0e36bd7b33b50be73bcb",
|
||||
"sha256:f909bbbc433048b499cb9db9e713b5d8d949e8c109a2a548502fb9aa8630f0b1"
|
||||
],
|
||||
"version": "==1.0.9"
|
||||
},
|
||||
"cffi": {
|
||||
"hashes": [
|
||||
"sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3",
|
||||
"sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2",
|
||||
"sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636",
|
||||
"sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20",
|
||||
"sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728",
|
||||
"sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27",
|
||||
"sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66",
|
||||
"sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443",
|
||||
"sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0",
|
||||
"sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7",
|
||||
"sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39",
|
||||
"sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605",
|
||||
"sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a",
|
||||
"sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37",
|
||||
"sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029",
|
||||
"sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139",
|
||||
"sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc",
|
||||
"sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df",
|
||||
"sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14",
|
||||
"sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880",
|
||||
"sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2",
|
||||
"sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a",
|
||||
"sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e",
|
||||
"sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474",
|
||||
"sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024",
|
||||
"sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8",
|
||||
"sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0",
|
||||
"sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e",
|
||||
"sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a",
|
||||
"sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e",
|
||||
"sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032",
|
||||
"sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6",
|
||||
"sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e",
|
||||
"sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b",
|
||||
"sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e",
|
||||
"sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954",
|
||||
"sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962",
|
||||
"sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c",
|
||||
"sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4",
|
||||
"sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55",
|
||||
"sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962",
|
||||
"sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023",
|
||||
"sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c",
|
||||
"sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6",
|
||||
"sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8",
|
||||
"sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382",
|
||||
"sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7",
|
||||
"sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc",
|
||||
"sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997",
|
||||
"sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"
|
||||
],
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
"sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a",
|
||||
"sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"
|
||||
"sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
|
||||
"sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
|
||||
],
|
||||
"version": "==7.1.2"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==8.0.3"
|
||||
},
|
||||
"future": {
|
||||
"cssselect2": {
|
||||
"hashes": [
|
||||
"sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
|
||||
"sha256:2f4a9f20965367bae459e3bb42561f7927e0cfe5b7ea1692757cf67ef5d7dace",
|
||||
"sha256:93fbb9af860e95dd40bf18c3b2b6ed99189a07c0f29ba76f9c5be71344664ec8"
|
||||
],
|
||||
"version": "==0.18.2"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.4.1"
|
||||
},
|
||||
"fonttools": {
|
||||
"extras": [
|
||||
"woff"
|
||||
],
|
||||
"hashes": [
|
||||
"sha256:545c05d0f7903a863c2020e07b8f0a57517f2c40d940bded77076397872d14ca",
|
||||
"sha256:edf251d5d2cc0580d5f72de4621c338d8c66c5f61abb50cf486640f73c8194d5"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==4.28.5"
|
||||
},
|
||||
"ghp-import": {
|
||||
"hashes": [
|
||||
"sha256:5f8962b30b20652cdffa9c5a9812f7de6bcb56ec475acac579807719bf242c46",
|
||||
"sha256:947b3771f11be850c852c64b561c600fdddf794bab363060854c1ee7ad05e071"
|
||||
],
|
||||
"version": "==2.0.2"
|
||||
},
|
||||
"honcho": {
|
||||
"hashes": [
|
||||
"sha256:af5806bf13e3b20acdcb9ff8c0beb91eee6fe07393c3448dfad89667e6ac7576",
|
||||
"sha256:c189402ad2e337777283c6a12d0f4f61dc6dd20c254c9a3a4af5087fc66cea6e"
|
||||
"sha256:a4d6e3a88a7b51b66351ecfc6e9d79d8f4b87351db9ad7e923f5632cc498122f",
|
||||
"sha256:c5eca0bded4bef6697a23aec0422fd4f6508ea3581979a3485fc4b89357eb2a9"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.0.1"
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"html5lib": {
|
||||
"hashes": [
|
||||
"sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d",
|
||||
"sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==1.1"
|
||||
},
|
||||
"importlib-metadata": {
|
||||
"hashes": [
|
||||
"sha256:92a8b58ce734b2a4494878e0ecf7d79ccd7a128b5fc6014c401e0b61f006f0f6",
|
||||
"sha256:b7cf7d3fef75f1e4c80a96ca660efbd51473d7e8f39b5ab9210febc7809012a4"
|
||||
],
|
||||
"markers": "python_version < '3.10'",
|
||||
"version": "==4.10.0"
|
||||
},
|
||||
"jinja2": {
|
||||
"hashes": [
|
||||
"sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419",
|
||||
"sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
|
||||
"sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8",
|
||||
"sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"
|
||||
],
|
||||
"version": "==2.11.3"
|
||||
},
|
||||
"joblib": {
|
||||
"hashes": [
|
||||
"sha256:9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7",
|
||||
"sha256:feeb1ec69c4d45129954f1b7034954241eedfd6ba39b5e9e4b6883be3332d5e5"
|
||||
],
|
||||
"version": "==1.0.1"
|
||||
},
|
||||
"livereload": {
|
||||
"hashes": [
|
||||
"sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"
|
||||
],
|
||||
"version": "==2.6.3"
|
||||
},
|
||||
"lunr": {
|
||||
"extras": [
|
||||
"languages"
|
||||
],
|
||||
"hashes": [
|
||||
"sha256:aab3f489c4d4fab4c1294a257a30fec397db56f0a50273218ccc3efdbf01d6ca",
|
||||
"sha256:c4fb063b98eff775dd638b3df380008ae85e6cb1d1a24d1cd81a10ef6391c26e"
|
||||
],
|
||||
"version": "==0.5.8"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.3"
|
||||
},
|
||||
"markdown": {
|
||||
"hashes": [
|
||||
"sha256:31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49",
|
||||
"sha256:96c3ba1261de2f7547b46a00ea8463832c921d3f9d6aba3f255a6f71386db20c"
|
||||
"sha256:76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006",
|
||||
"sha256:9923332318f843411e9932237530df53162e29dc7a4e2b91e35764583c46c9a3"
|
||||
],
|
||||
"version": "==3.3.4"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.3.6"
|
||||
},
|
||||
"markupsafe": {
|
||||
"hashes": [
|
||||
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
|
||||
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
|
||||
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
|
||||
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
|
||||
"sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42",
|
||||
"sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f",
|
||||
"sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39",
|
||||
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
|
||||
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
|
||||
"sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014",
|
||||
"sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f",
|
||||
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
|
||||
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
|
||||
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
|
||||
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
|
||||
"sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b",
|
||||
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
|
||||
"sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15",
|
||||
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
|
||||
"sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85",
|
||||
"sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1",
|
||||
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
|
||||
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
|
||||
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
|
||||
"sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850",
|
||||
"sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0",
|
||||
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
|
||||
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
|
||||
"sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb",
|
||||
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
|
||||
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
|
||||
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
|
||||
"sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1",
|
||||
"sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2",
|
||||
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
|
||||
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
|
||||
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
|
||||
"sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7",
|
||||
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
|
||||
"sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8",
|
||||
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
|
||||
"sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193",
|
||||
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
|
||||
"sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b",
|
||||
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
|
||||
"sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2",
|
||||
"sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5",
|
||||
"sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c",
|
||||
"sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032",
|
||||
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
|
||||
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be",
|
||||
"sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"
|
||||
"sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298",
|
||||
"sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64",
|
||||
"sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b",
|
||||
"sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194",
|
||||
"sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567",
|
||||
"sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff",
|
||||
"sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724",
|
||||
"sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74",
|
||||
"sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646",
|
||||
"sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35",
|
||||
"sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6",
|
||||
"sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a",
|
||||
"sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6",
|
||||
"sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad",
|
||||
"sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26",
|
||||
"sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38",
|
||||
"sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac",
|
||||
"sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7",
|
||||
"sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6",
|
||||
"sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047",
|
||||
"sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75",
|
||||
"sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f",
|
||||
"sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b",
|
||||
"sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135",
|
||||
"sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8",
|
||||
"sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a",
|
||||
"sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a",
|
||||
"sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1",
|
||||
"sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9",
|
||||
"sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864",
|
||||
"sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914",
|
||||
"sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee",
|
||||
"sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f",
|
||||
"sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18",
|
||||
"sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8",
|
||||
"sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2",
|
||||
"sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d",
|
||||
"sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b",
|
||||
"sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b",
|
||||
"sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86",
|
||||
"sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6",
|
||||
"sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f",
|
||||
"sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb",
|
||||
"sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833",
|
||||
"sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28",
|
||||
"sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e",
|
||||
"sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415",
|
||||
"sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902",
|
||||
"sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f",
|
||||
"sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d",
|
||||
"sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9",
|
||||
"sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d",
|
||||
"sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145",
|
||||
"sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066",
|
||||
"sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c",
|
||||
"sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1",
|
||||
"sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a",
|
||||
"sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207",
|
||||
"sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f",
|
||||
"sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53",
|
||||
"sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd",
|
||||
"sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134",
|
||||
"sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85",
|
||||
"sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9",
|
||||
"sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5",
|
||||
"sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94",
|
||||
"sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509",
|
||||
"sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51",
|
||||
"sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"
|
||||
],
|
||||
"version": "==1.1.1"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.0.1"
|
||||
},
|
||||
"mdx-truly-sane-lists": {
|
||||
"hashes": [
|
||||
|
@ -139,13 +304,29 @@
|
|||
"index": "pypi",
|
||||
"version": "==1.2"
|
||||
},
|
||||
"mergedeep": {
|
||||
"hashes": [
|
||||
"sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8",
|
||||
"sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.3.4"
|
||||
},
|
||||
"mkdocs": {
|
||||
"hashes": [
|
||||
"sha256:096f52ff52c02c7e90332d2e53da862fde5c062086e1b5356a6e392d5d60f5e9",
|
||||
"sha256:f0b61e5402b99d7789efa032c7a74c90a20220a9c81749da06dbfbcbd52ffb39"
|
||||
"sha256:89f5a094764381cda656af4298727c9f53dc3e602983087e1fe96ea1df24f4c1",
|
||||
"sha256:a1fa8c2d0c1305d7fc2b9d9f607c71778572a8b110fb26642aa00296c9e6d072"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.1.2"
|
||||
"version": "==1.2.3"
|
||||
},
|
||||
"mkdocs-awesome-pages-plugin": {
|
||||
"hashes": [
|
||||
"sha256:43994aedadca881088e5d6bb420140a73ce517ca3e070972715f93b086c9c497",
|
||||
"sha256:8f2f803a3d4a2cd2e290644b1b8c54cf2ae942db9ce91021c2ba858a991a3a8a"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.6.1"
|
||||
},
|
||||
"mkdocs-gitbook": {
|
||||
"hashes": [
|
||||
|
@ -155,34 +336,124 @@
|
|||
"index": "pypi",
|
||||
"version": "==0.0.1"
|
||||
},
|
||||
"mkdocs-material": {
|
||||
"mkdocs-include-markdown-plugin": {
|
||||
"hashes": [
|
||||
"sha256:1798d9a0a01f54db575801826d6b1b99a1185fef58bcaca36625ee1d519df83c",
|
||||
"sha256:925221cf1877a50f72d9bf64a7a26c407d4b14fdc6a16e27fe7547178613e56c"
|
||||
"sha256:5a8b0c60d8981225c012b8f657b6557910997e46dacae4aff039b181487236cf",
|
||||
"sha256:64dd8c408a1b5b7422d4a5a826c434e5372af2fb7bd244dd5c87e09ff8f13302"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==7.1.1"
|
||||
"version": "==3.2.3"
|
||||
},
|
||||
"mkdocs-material": {
|
||||
"hashes": [
|
||||
"sha256:b8014d8a77ba45879525e0e7619d0833d10897487a77d6697ef94240fed8c892",
|
||||
"sha256:ee153b8130ae580acd57082af0e54d644fe2a37c62f2ec9400f77e389ac1b294"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==8.1.3"
|
||||
},
|
||||
"mkdocs-material-extensions": {
|
||||
"hashes": [
|
||||
"sha256:6947fb7f5e4291e3c61405bad3539d81e0b3cd62ae0d66ced018128af509c68f",
|
||||
"sha256:d90c807a88348aa6d1805657ec5c0b2d8d609c110e62b9dce4daf7fa981fa338"
|
||||
"sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44",
|
||||
"sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2"
|
||||
],
|
||||
"version": "==1.0.1"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.0.3"
|
||||
},
|
||||
"nltk": {
|
||||
"mkdocs-pdf-export-plugin": {
|
||||
"hashes": [
|
||||
"sha256:1235660f52ab10fda34d5277096724747f767b2903e1c0c4e14bde013552c9ba",
|
||||
"sha256:cbc2ed576998fcf7cd181eeb3ca029e5f0025b264074b4beb57ce780673f8b86"
|
||||
"sha256:77ba89ebea6f565286fb04360e3d9810567e27302383c9e2b6fa386f8ecca7d9",
|
||||
"sha256:e6e58f8bdedb300423336b00ea1846516f471b529ea85cb7f254fa2a2ee577d8"
|
||||
],
|
||||
"version": "==3.6.1"
|
||||
"index": "pypi",
|
||||
"version": "==0.5.10"
|
||||
},
|
||||
"mocodo": {
|
||||
"hashes": [
|
||||
"sha256:878cd8a3341c087bd658296833b37ba4f5f608f856fdb53872b7b3fca0937d21",
|
||||
"sha256:b62372eef18f03c4a12eb70a4c40539ba5908ef6f38d7357b76b2547df961bd1",
|
||||
"sha256:d869693e4b1dbe0f35f3376b00faddb84351ca0f5dc51593fda18c2be42dfc43"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.3.9"
|
||||
},
|
||||
"packaging": {
|
||||
"hashes": [
|
||||
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
|
||||
"sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==21.3"
|
||||
},
|
||||
"pillow": {
|
||||
"hashes": [
|
||||
"sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76",
|
||||
"sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585",
|
||||
"sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b",
|
||||
"sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8",
|
||||
"sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55",
|
||||
"sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc",
|
||||
"sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645",
|
||||
"sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff",
|
||||
"sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc",
|
||||
"sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b",
|
||||
"sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6",
|
||||
"sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20",
|
||||
"sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e",
|
||||
"sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a",
|
||||
"sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779",
|
||||
"sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02",
|
||||
"sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39",
|
||||
"sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f",
|
||||
"sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a",
|
||||
"sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409",
|
||||
"sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c",
|
||||
"sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488",
|
||||
"sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b",
|
||||
"sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d",
|
||||
"sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09",
|
||||
"sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b",
|
||||
"sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153",
|
||||
"sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9",
|
||||
"sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad",
|
||||
"sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df",
|
||||
"sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df",
|
||||
"sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed",
|
||||
"sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed",
|
||||
"sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698",
|
||||
"sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29",
|
||||
"sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649",
|
||||
"sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49",
|
||||
"sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b",
|
||||
"sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2",
|
||||
"sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a",
|
||||
"sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==8.4.0"
|
||||
},
|
||||
"pycparser": {
|
||||
"hashes": [
|
||||
"sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
|
||||
"sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
|
||||
],
|
||||
"version": "==2.21"
|
||||
},
|
||||
"pydyf": {
|
||||
"hashes": [
|
||||
"sha256:1e2f5de48174f505de025a7d1e7cf01bbdd9422ca8ab9451782bf00ee178602c",
|
||||
"sha256:9ef1505c424e2ac9c4caef5b8f8c105a311c23fdb4db4979d7d82ad6cff76fa7"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.1.2"
|
||||
},
|
||||
"pygments": {
|
||||
"hashes": [
|
||||
"sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
|
||||
"sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
|
||||
"sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380",
|
||||
"sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"
|
||||
],
|
||||
"version": "==2.8.1"
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==2.10.0"
|
||||
},
|
||||
"pyinotify": {
|
||||
"hashes": [
|
||||
|
@ -193,151 +464,208 @@
|
|||
},
|
||||
"pymdown-extensions": {
|
||||
"hashes": [
|
||||
"sha256:478b2c04513fbb2db61688d5f6e9030a92fb9be14f1f383535c43f7be9dff95b",
|
||||
"sha256:632371fa3bf1b21a0e3f4063010da59b41db049f261f4c0b0872069a9b6d1735"
|
||||
"sha256:74247f2c80f1d9e3c7242abe1c16317da36c6f26c7ad4b8a7f457f0ec20f0365",
|
||||
"sha256:b03e66f91f33af4a6e7a0e20c740313522995f69a03d86316b1449766c473d0e"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==8.1.1"
|
||||
"version": "==9.1"
|
||||
},
|
||||
"pyparsing": {
|
||||
"hashes": [
|
||||
"sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4",
|
||||
"sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.6"
|
||||
},
|
||||
"pyphen": {
|
||||
"hashes": [
|
||||
"sha256:e2c3ed82c3a04317df5102addafe89652b0876bc6c6265f5dd4c3efaf02315e8",
|
||||
"sha256:e3c1b1d05deaa31acdd78e2e24005402358feb7a4b407c4af7e5cc2e41c4d608"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.11.0"
|
||||
},
|
||||
"python-dateutil": {
|
||||
"hashes": [
|
||||
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
|
||||
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.8.2"
|
||||
},
|
||||
"pyyaml": {
|
||||
"hashes": [
|
||||
"sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf",
|
||||
"sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696",
|
||||
"sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393",
|
||||
"sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77",
|
||||
"sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922",
|
||||
"sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5",
|
||||
"sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8",
|
||||
"sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10",
|
||||
"sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc",
|
||||
"sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018",
|
||||
"sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e",
|
||||
"sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253",
|
||||
"sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347",
|
||||
"sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183",
|
||||
"sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541",
|
||||
"sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb",
|
||||
"sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185",
|
||||
"sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc",
|
||||
"sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db",
|
||||
"sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa",
|
||||
"sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46",
|
||||
"sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122",
|
||||
"sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b",
|
||||
"sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63",
|
||||
"sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df",
|
||||
"sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc",
|
||||
"sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247",
|
||||
"sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6",
|
||||
"sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"
|
||||
"sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293",
|
||||
"sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b",
|
||||
"sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57",
|
||||
"sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b",
|
||||
"sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4",
|
||||
"sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07",
|
||||
"sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba",
|
||||
"sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9",
|
||||
"sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287",
|
||||
"sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513",
|
||||
"sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0",
|
||||
"sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0",
|
||||
"sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92",
|
||||
"sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f",
|
||||
"sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2",
|
||||
"sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc",
|
||||
"sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c",
|
||||
"sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86",
|
||||
"sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4",
|
||||
"sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c",
|
||||
"sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34",
|
||||
"sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b",
|
||||
"sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c",
|
||||
"sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb",
|
||||
"sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737",
|
||||
"sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3",
|
||||
"sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d",
|
||||
"sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53",
|
||||
"sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78",
|
||||
"sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803",
|
||||
"sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a",
|
||||
"sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174",
|
||||
"sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"
|
||||
],
|
||||
"version": "==5.4.1"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==6.0"
|
||||
},
|
||||
"regex": {
|
||||
"pyyaml-env-tag": {
|
||||
"hashes": [
|
||||
"sha256:01afaf2ec48e196ba91b37451aa353cb7eda77efe518e481707e0515025f0cd5",
|
||||
"sha256:11d773d75fa650cd36f68d7ca936e3c7afaae41b863b8c387a22aaa78d3c5c79",
|
||||
"sha256:18c071c3eb09c30a264879f0d310d37fe5d3a3111662438889ae2eb6fc570c31",
|
||||
"sha256:1e1c20e29358165242928c2de1482fb2cf4ea54a6a6dea2bd7a0e0d8ee321500",
|
||||
"sha256:281d2fd05555079448537fe108d79eb031b403dac622621c78944c235f3fcf11",
|
||||
"sha256:314d66636c494ed9c148a42731b3834496cc9a2c4251b1661e40936814542b14",
|
||||
"sha256:32e65442138b7b76dd8173ffa2cf67356b7bc1768851dded39a7a13bf9223da3",
|
||||
"sha256:339456e7d8c06dd36a22e451d58ef72cef293112b559010db3d054d5560ef439",
|
||||
"sha256:3916d08be28a1149fb97f7728fca1f7c15d309a9f9682d89d79db75d5e52091c",
|
||||
"sha256:3a9cd17e6e5c7eb328517969e0cb0c3d31fd329298dd0c04af99ebf42e904f82",
|
||||
"sha256:47bf5bf60cf04d72bf6055ae5927a0bd9016096bf3d742fa50d9bf9f45aa0711",
|
||||
"sha256:4c46e22a0933dd783467cf32b3516299fb98cfebd895817d685130cc50cd1093",
|
||||
"sha256:4c557a7b470908b1712fe27fb1ef20772b78079808c87d20a90d051660b1d69a",
|
||||
"sha256:52ba3d3f9b942c49d7e4bc105bb28551c44065f139a65062ab7912bef10c9afb",
|
||||
"sha256:563085e55b0d4fb8f746f6a335893bda5c2cef43b2f0258fe1020ab1dd874df8",
|
||||
"sha256:598585c9f0af8374c28edd609eb291b5726d7cbce16be6a8b95aa074d252ee17",
|
||||
"sha256:619d71c59a78b84d7f18891fe914446d07edd48dc8328c8e149cbe0929b4e000",
|
||||
"sha256:67bdb9702427ceddc6ef3dc382455e90f785af4c13d495f9626861763ee13f9d",
|
||||
"sha256:6d1b01031dedf2503631d0903cb563743f397ccaf6607a5e3b19a3d76fc10480",
|
||||
"sha256:741a9647fcf2e45f3a1cf0e24f5e17febf3efe8d4ba1281dcc3aa0459ef424dc",
|
||||
"sha256:7c2a1af393fcc09e898beba5dd59196edaa3116191cc7257f9224beaed3e1aa0",
|
||||
"sha256:7d9884d86dd4dd489e981d94a65cd30d6f07203d90e98f6f657f05170f6324c9",
|
||||
"sha256:90f11ff637fe8798933fb29f5ae1148c978cccb0452005bf4c69e13db951e765",
|
||||
"sha256:919859aa909429fb5aa9cf8807f6045592c85ef56fdd30a9a3747e513db2536e",
|
||||
"sha256:96fcd1888ab4d03adfc9303a7b3c0bd78c5412b2bfbe76db5b56d9eae004907a",
|
||||
"sha256:97f29f57d5b84e73fbaf99ab3e26134e6687348e95ef6b48cfd2c06807005a07",
|
||||
"sha256:980d7be47c84979d9136328d882f67ec5e50008681d94ecc8afa8a65ed1f4a6f",
|
||||
"sha256:a91aa8619b23b79bcbeb37abe286f2f408d2f2d6f29a17237afda55bb54e7aac",
|
||||
"sha256:ade17eb5d643b7fead300a1641e9f45401c98eee23763e9ed66a43f92f20b4a7",
|
||||
"sha256:b9c3db21af35e3b3c05764461b262d6f05bbca08a71a7849fd79d47ba7bc33ed",
|
||||
"sha256:bd28bc2e3a772acbb07787c6308e00d9626ff89e3bfcdebe87fa5afbfdedf968",
|
||||
"sha256:bf5824bfac591ddb2c1f0a5f4ab72da28994548c708d2191e3b87dd207eb3ad7",
|
||||
"sha256:c0502c0fadef0d23b128605d69b58edb2c681c25d44574fc673b0e52dce71ee2",
|
||||
"sha256:c38c71df845e2aabb7fb0b920d11a1b5ac8526005e533a8920aea97efb8ec6a4",
|
||||
"sha256:ce15b6d103daff8e9fee13cf7f0add05245a05d866e73926c358e871221eae87",
|
||||
"sha256:d3029c340cfbb3ac0a71798100ccc13b97dddf373a4ae56b6a72cf70dfd53bc8",
|
||||
"sha256:e512d8ef5ad7b898cdb2d8ee1cb09a8339e4f8be706d27eaa180c2f177248a10",
|
||||
"sha256:e8e5b509d5c2ff12f8418006d5a90e9436766133b564db0abaec92fd27fcee29",
|
||||
"sha256:ee54ff27bf0afaf4c3b3a62bcd016c12c3fdb4ec4f413391a90bd38bc3624605",
|
||||
"sha256:fa4537fb4a98fe8fde99626e4681cc644bdcf2a795038533f9f711513a862ae6",
|
||||
"sha256:fd45ff9293d9274c5008a2054ecef86a9bfe819a67c7be1afb65e69b405b3042"
|
||||
"sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb",
|
||||
"sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"
|
||||
],
|
||||
"version": "==2021.4.4"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.1"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
||||
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
||||
],
|
||||
"version": "==1.15.0"
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.16.0"
|
||||
},
|
||||
"tornado": {
|
||||
"soupsieve": {
|
||||
"hashes": [
|
||||
"sha256:0a00ff4561e2929a2c37ce706cb8233b7907e0cdc22eab98888aca5dd3775feb",
|
||||
"sha256:0d321a39c36e5f2c4ff12b4ed58d41390460f798422c4504e09eb5678e09998c",
|
||||
"sha256:1e8225a1070cd8eec59a996c43229fe8f95689cb16e552d130b9793cb570a288",
|
||||
"sha256:20241b3cb4f425e971cb0a8e4ffc9b0a861530ae3c52f2b0434e6c1b57e9fd95",
|
||||
"sha256:25ad220258349a12ae87ede08a7b04aca51237721f63b1808d39bdb4b2164558",
|
||||
"sha256:33892118b165401f291070100d6d09359ca74addda679b60390b09f8ef325ffe",
|
||||
"sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791",
|
||||
"sha256:3447475585bae2e77ecb832fc0300c3695516a47d46cefa0528181a34c5b9d3d",
|
||||
"sha256:34ca2dac9e4d7afb0bed4677512e36a52f09caa6fded70b4e3e1c89dbd92c326",
|
||||
"sha256:3e63498f680547ed24d2c71e6497f24bca791aca2fe116dbc2bd0ac7f191691b",
|
||||
"sha256:548430be2740e327b3fe0201abe471f314741efcb0067ec4f2d7dcfb4825f3e4",
|
||||
"sha256:6196a5c39286cc37c024cd78834fb9345e464525d8991c21e908cc046d1cc02c",
|
||||
"sha256:61b32d06ae8a036a6607805e6720ef00a3c98207038444ba7fd3d169cd998910",
|
||||
"sha256:6286efab1ed6e74b7028327365cf7346b1d777d63ab30e21a0f4d5b275fc17d5",
|
||||
"sha256:65d98939f1a2e74b58839f8c4dab3b6b3c1ce84972ae712be02845e65391ac7c",
|
||||
"sha256:66324e4e1beede9ac79e60f88de548da58b1f8ab4b2f1354d8375774f997e6c0",
|
||||
"sha256:6c77c9937962577a6a76917845d06af6ab9197702a42e1346d8ae2e76b5e3675",
|
||||
"sha256:70dec29e8ac485dbf57481baee40781c63e381bebea080991893cd297742b8fd",
|
||||
"sha256:7250a3fa399f08ec9cb3f7b1b987955d17e044f1ade821b32e5f435130250d7f",
|
||||
"sha256:748290bf9112b581c525e6e6d3820621ff020ed95af6f17fedef416b27ed564c",
|
||||
"sha256:7da13da6f985aab7f6f28debab00c67ff9cbacd588e8477034c0652ac141feea",
|
||||
"sha256:8f959b26f2634a091bb42241c3ed8d3cedb506e7c27b8dd5c7b9f745318ddbb6",
|
||||
"sha256:9de9e5188a782be6b1ce866e8a51bc76a0fbaa0e16613823fc38e4fc2556ad05",
|
||||
"sha256:a48900ecea1cbb71b8c71c620dee15b62f85f7c14189bdeee54966fbd9a0c5bd",
|
||||
"sha256:b87936fd2c317b6ee08a5741ea06b9d11a6074ef4cc42e031bc6403f82a32575",
|
||||
"sha256:c77da1263aa361938476f04c4b6c8916001b90b2c2fdd92d8d535e1af48fba5a",
|
||||
"sha256:cb5ec8eead331e3bb4ce8066cf06d2dfef1bfb1b2a73082dfe8a161301b76e37",
|
||||
"sha256:cc0ee35043162abbf717b7df924597ade8e5395e7b66d18270116f8745ceb795",
|
||||
"sha256:d14d30e7f46a0476efb0deb5b61343b1526f73ebb5ed84f23dc794bdb88f9d9f",
|
||||
"sha256:d371e811d6b156d82aa5f9a4e08b58debf97c302a35714f6f45e35139c332e32",
|
||||
"sha256:d3d20ea5782ba63ed13bc2b8c291a053c8d807a8fa927d941bd718468f7b950c",
|
||||
"sha256:d3f7594930c423fd9f5d1a76bee85a2c36fd8b4b16921cae7e965f22575e9c01",
|
||||
"sha256:dcef026f608f678c118779cd6591c8af6e9b4155c44e0d1bc0c87c036fb8c8c4",
|
||||
"sha256:e0791ac58d91ac58f694d8d2957884df8e4e2f6687cdf367ef7eb7497f79eaa2",
|
||||
"sha256:e385b637ac3acaae8022e7e47dfa7b83d3620e432e3ecb9a3f7f58f150e50921",
|
||||
"sha256:e519d64089b0876c7b467274468709dadf11e41d65f63bba207e04217f47c085",
|
||||
"sha256:e7229e60ac41a1202444497ddde70a48d33909e484f96eb0da9baf8dc68541df",
|
||||
"sha256:ed3ad863b1b40cd1d4bd21e7498329ccaece75db5a5bf58cd3c9f130843e7102",
|
||||
"sha256:f0ba29bafd8e7e22920567ce0d232c26d4d47c8b5cf4ed7b562b5db39fa199c5",
|
||||
"sha256:fa2ba70284fa42c2a5ecb35e322e68823288a4251f9ba9cc77be04ae15eada68",
|
||||
"sha256:fba85b6cd9c39be262fcd23865652920832b61583de2a2ca907dbd8e8a8c81e5"
|
||||
"sha256:1a3cca2617c6b38c0343ed661b1fa5de5637f257d4fe22bd9f1338010a1efefb",
|
||||
"sha256:b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9"
|
||||
],
|
||||
"version": "==6.1"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.3.1"
|
||||
},
|
||||
"tqdm": {
|
||||
"tinycss2": {
|
||||
"hashes": [
|
||||
"sha256:daec693491c52e9498632dfbe9ccfc4882a557f5fa08982db1b4d3adbe0887c3",
|
||||
"sha256:ebdebdb95e3477ceea267decfc0784859aa3df3e27e22d23b83e9b272bf157ae"
|
||||
"sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf",
|
||||
"sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"
|
||||
],
|
||||
"version": "==4.60.0"
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"watchdog": {
|
||||
"hashes": [
|
||||
"sha256:25fb5240b195d17de949588628fdf93032ebf163524ef08933db0ea1f99bd685",
|
||||
"sha256:3386b367e950a11b0568062b70cc026c6f645428a698d33d39e013aaeda4cc04",
|
||||
"sha256:3becdb380d8916c873ad512f1701f8a92ce79ec6978ffde92919fd18d41da7fb",
|
||||
"sha256:4ae38bf8ba6f39d5b83f78661273216e7db5b00f08be7592062cb1fc8b8ba542",
|
||||
"sha256:8047da932432aa32c515ec1447ea79ce578d0559362ca3605f8e9568f844e3c6",
|
||||
"sha256:8f1c00aa35f504197561060ca4c21d3cc079ba29cf6dd2fe61024c70160c990b",
|
||||
"sha256:922a69fa533cb0c793b483becaaa0845f655151e7256ec73630a1b2e9ebcb660",
|
||||
"sha256:9693f35162dc6208d10b10ddf0458cc09ad70c30ba689d9206e02cd836ce28a3",
|
||||
"sha256:a0f1c7edf116a12f7245be06120b1852275f9506a7d90227648b250755a03923",
|
||||
"sha256:a36e75df6c767cbf46f61a91c70b3ba71811dfa0aca4a324d9407a06a8b7a2e7",
|
||||
"sha256:aba5c812f8ee8a3ff3be51887ca2d55fb8e268439ed44110d3846e4229eb0e8b",
|
||||
"sha256:ad6f1796e37db2223d2a3f302f586f74c72c630b48a9872c1e7ae8e92e0ab669",
|
||||
"sha256:ae67501c95606072aafa865b6ed47343ac6484472a2f95490ba151f6347acfc2",
|
||||
"sha256:b2fcf9402fde2672545b139694284dc3b665fd1be660d73eca6805197ef776a3",
|
||||
"sha256:b52b88021b9541a60531142b0a451baca08d28b74a723d0c99b13c8c8d48d604",
|
||||
"sha256:b7d336912853d7b77f9b2c24eeed6a5065d0a0cc0d3b6a5a45ad6d1d05fb8cd8",
|
||||
"sha256:bd9ba4f332cf57b2c1f698be0728c020399ef3040577cde2939f2e045b39c1e5",
|
||||
"sha256:be9be735f827820a06340dff2ddea1fb7234561fa5e6300a62fe7f54d40546a0",
|
||||
"sha256:cca7741c0fcc765568350cb139e92b7f9f3c9a08c4f32591d18ab0a6ac9e71b6",
|
||||
"sha256:d0d19fb2441947b58fbf91336638c2b9f4cc98e05e1045404d7a4cb7cddc7a65",
|
||||
"sha256:e02794ac791662a5eafc6ffeaf9bcc149035a0e48eb0a9d40a8feb4622605a3d",
|
||||
"sha256:e0f30db709c939cabf64a6dc5babb276e6d823fd84464ab916f9b9ba5623ca15",
|
||||
"sha256:e92c2d33858c8f560671b448205a268096e17870dcf60a9bb3ac7bfbafb7f5f9"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.1.6"
|
||||
},
|
||||
"wcmatch": {
|
||||
"hashes": [
|
||||
"sha256:371072912398af61d1e4e78609e18801c6faecd3cb36c54c82556a60abc965db",
|
||||
"sha256:7141d2c85314253f16b38cb3d6cc0fb612918d407e1df3ccc2be7c86cc259c22"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==8.3"
|
||||
},
|
||||
"weasyprint": {
|
||||
"hashes": [
|
||||
"sha256:10ccb17d55c73096bdf1edd3efe58cb855b07e4c307d9bad4ebc9a3f13ff4580",
|
||||
"sha256:a48872d9ec4ba41bc09fec789fb1b5595aef005d1544060f4f255e1f20708852"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==53.4"
|
||||
},
|
||||
"webencodings": {
|
||||
"hashes": [
|
||||
"sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
|
||||
"sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
|
||||
],
|
||||
"version": "==0.5.1"
|
||||
},
|
||||
"zipp": {
|
||||
"hashes": [
|
||||
"sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832",
|
||||
"sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.6.0"
|
||||
},
|
||||
"zopfli": {
|
||||
"hashes": [
|
||||
"sha256:08ca761a8be61d3e46807adef8e8dad314ab93c824fc4d882f9e14a67d59fe57",
|
||||
"sha256:116934fed1e2a918a9225acc856163211661c8dd855061acf17210c015bcd7ca",
|
||||
"sha256:1a1794435319de903ffe7a36dfce657799df42a38bd4d50b58fd2361621c1fe5",
|
||||
"sha256:1b04ef791c60e05a569e9229e106b5e145f55dd93b5ced6fe810985a6c461a4c",
|
||||
"sha256:27a7df4c4611a5a9cb81ddafa1d56f7ed5a08827308c6546ca607097f4e36194",
|
||||
"sha256:289d7c2f135add4c0964291c7eee40defb20fbcafc4deceb63d8d2ccc19d6c4d",
|
||||
"sha256:2ad7c1d56229c51eb42001d10b6784e41436d4706e8075264743a0036f3faf53",
|
||||
"sha256:33d270a14f9f2bde1846b8370372f1038a01a75d81e6f5a0f4ee341877bd327c",
|
||||
"sha256:377e70a4dfed0d0b4119023d8722897081343e187341b3a220e08f2284bda0d7",
|
||||
"sha256:3b529645c7f963dc321523beee777f795dece7a355564a5084cd45ea51a6e985",
|
||||
"sha256:3da24da35b9584a4a45bd67fa6b41281d3d90efd27de5056f789f1ff123f445e",
|
||||
"sha256:44f6c2592a1cd56a3f57562650cc7c95e13e465f3727f9ffc40def486124307d",
|
||||
"sha256:49020bcb4acb04d625a464633716316313f271a0a2421a9cc2862823a3adf3c5",
|
||||
"sha256:509bbfc19006526bfd4917a91108bb44ee26729e9ae25656c12247dbe3cfece8",
|
||||
"sha256:56f756f841f14180fd13e79b6b2ae4c9e47b73a9a7dc287109f7d432fd495df6",
|
||||
"sha256:614f56e98111d57747d1c766b987f480353dad9bf8fb27089933fb350cc53bf1",
|
||||
"sha256:631a09bfd19bfcb70d950c13e4e2993aa682c2bf49fa463add4cc77962ee5d75",
|
||||
"sha256:6324dcc03633e7310db68f5c2b59ad8436b8fd5dddf5e2adab7b8aa4f6a5f442",
|
||||
"sha256:74255e8e5a0f9993863094cd54e9501eb5f62d0a2970e9c9ca005f62c9c38338",
|
||||
"sha256:745cbe6f036b8398d2f59bbb7165c4ba5cd0ac2e8243efc7082dee1f5731baf7",
|
||||
"sha256:78de3cc08a8efaa8013d61528907d91ac4d6cc014ffd8a41cc10ee75e9e60d7b",
|
||||
"sha256:7a085eee2896b55959ef06cd962dfb0d01a6b5e79e2446a140ec81e7f4499dfc",
|
||||
"sha256:9368d2f9a8073e41e10c5440569d540a63f2bd7a126fe81cc5f469a56692833b",
|
||||
"sha256:97058951ffbfef5f37d68a0537d3049b48dffbb461bd1971d14f3259e60ef849",
|
||||
"sha256:9b6ecc0dd348c3153fc596de6206148adf349aa25f745b6bf47c682911068fac",
|
||||
"sha256:9d1115a985ce5af418b06ea5f9e1974d056227d90216bd7232a75c5ca60ab478",
|
||||
"sha256:a42254a7c9550c5237666dab1191c55802f47bce4f1511725cfc033d7bf2c3a9",
|
||||
"sha256:a91044948344c793b9c0f9de343d85960c002a31fdd83110a01d3f66e6100c57",
|
||||
"sha256:b955dc2fff85b37ecbfeec09f174effdb617fd977eb34ff118dfa14aa8ac68df",
|
||||
"sha256:ba346570cea24250613060ea1f62550e0de8bfd1733b950c24424dacc93cfd12",
|
||||
"sha256:bd750ca39bb0555ce69b8ed5c6bf5cf1293fae4657f09e488af1aacfc267c409",
|
||||
"sha256:bf5990d5a3e6c6abe49f0509c67a38c00c3e0b8c8da26b867661b34bfeeb9e8d",
|
||||
"sha256:c2446eb17fc677d1789693510d902bca6bb492e079f3a64efeac687e20be3416",
|
||||
"sha256:d2e37f12eb2e336993bde6cb6d8d19019a23b711ce1b8ad037a3c3838802958c",
|
||||
"sha256:da74c371ee20795561ef22def8d1943939b7e9a7533a27de7a9a4a68301cf4ce",
|
||||
"sha256:dff085fe9df5ee3839fca15a7319068bb9728397b9d9a59c0561bf1bf7f2a990",
|
||||
"sha256:e9bedbb085b3b011a1cd911d85691c82904bc94903ce1ad98d5eb34b392cb093"
|
||||
],
|
||||
"version": "==0.1.9"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
|
|
|
@ -6,6 +6,7 @@ Make sure you have python and node installed
|
|||
|
||||
git remote rename origin boilerplate
|
||||
git remote add origin git@...
|
||||
git checkout -b upstream/boilerplate/master --track
|
||||
|
||||
|
||||
Install python packages
|
||||
|
@ -29,7 +30,7 @@ Change the remote
|
|||
|
||||
### Watch mode
|
||||
|
||||
This mode allows you the result on-the-fly as you makea changes in the content.
|
||||
This mode allows you the result on-the-fly as you make changes in the content.
|
||||
|
||||
To use watch mode, type:
|
||||
|
||||
|
|
|
@ -3,7 +3,10 @@ version: "3.4"
|
|||
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/Dockerfile
|
||||
image: glenux/teaching-boilerplate
|
||||
environment: {}
|
||||
ports:
|
||||
- 5100:5100
|
||||
|
|
37
docker/Dockerfile
Normal file
37
docker/Dockerfile
Normal file
|
@ -0,0 +1,37 @@
|
|||
FROM node:bullseye-slim
|
||||
MAINTAINER Glenn ROLLAND <glenux@glenux.net>
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends python3 python3-pip pipenv \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
|
||||
&& truncate -s 0 /var/log/*log
|
||||
|
||||
# Tools for running the common parts
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends make build-essential inotify-tools gosu unzip \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
|
||||
&& truncate -s 0 /var/log/*log
|
||||
|
||||
# Tools for building pdfs
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends make pdftk m4 chromium \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
|
||||
&& truncate -s 0 /var/log/*log
|
||||
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
|
||||
ENV LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
PIPENV_HIDE_EMOJIS=1 \
|
||||
PIPENV_VENV_IN_PROJECT=1
|
||||
|
||||
RUN ln -sf python3 /usr/bin/python \
|
||||
&& make prepare SYSTEM_INSTALL=1
|
||||
|
||||
ENTRYPOINT ["/app/docker/entrypoint.sh"]
|
||||
CMD ["watch"]
|
||||
|
37
docker/entrypoint.sh
Executable file
37
docker/entrypoint.sh
Executable file
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
ARGS="$*"
|
||||
echo "Arguments: $ARGS"
|
||||
|
||||
EXT_UID=${EXT_UID:-999}
|
||||
EXT_GID=${EXT_GID:-999}
|
||||
|
||||
# Create missing directories
|
||||
mkdir -p _cache
|
||||
mkdir -p _build
|
||||
mkdir -p .marp
|
||||
mkdir -p /home/appuser
|
||||
|
||||
# Create user with given ID if needed
|
||||
if ! grep -q "^[^:]*:[^:]*:$EXT_UID:" /etc/group ; then
|
||||
groupadd -g "$EXT_GID" appuser
|
||||
fi
|
||||
|
||||
# Create group with given ID if needed
|
||||
if ! grep -q "^[^:]*:[^:]*:$EXT_UID:" /etc/passwd ; then
|
||||
useradd -r -u "$EXT_UID" -g appuser appuser
|
||||
fi
|
||||
|
||||
chown -R "$EXT_UID:$EXT_GID" _cache
|
||||
chown -R "$EXT_UID:$EXT_GID" _build
|
||||
chown -R "$EXT_UID:$EXT_GID" .marp
|
||||
chown -R "$EXT_UID:$EXT_GID" /home/appuser
|
||||
|
||||
if [ "$1" = "shell" ]; then
|
||||
exec bash
|
||||
else
|
||||
exec gosu "$EXT_UID:$EXT_GID" make "$@"
|
||||
fi
|
8
images/sample-graph.circo
Normal file
8
images/sample-graph.circo
Normal file
|
@ -0,0 +1,8 @@
|
|||
digraph G {
|
||||
A -> B;
|
||||
B -> C;
|
||||
B -> D;
|
||||
C -> E;
|
||||
C -> F;
|
||||
C -> G;
|
||||
}
|
8
images/sample-graph.dot
Normal file
8
images/sample-graph.dot
Normal file
|
@ -0,0 +1,8 @@
|
|||
digraph G {
|
||||
A -> B;
|
||||
B -> C;
|
||||
B -> D;
|
||||
C -> E;
|
||||
C -> F;
|
||||
C -> G;
|
||||
}
|
16
mkdocs.yml
16
mkdocs.yml
|
@ -25,8 +25,10 @@ theme:
|
|||
primary: 'white'
|
||||
accent: 'black'
|
||||
neutral: 'black'
|
||||
feature:
|
||||
tabs: false
|
||||
features:
|
||||
- navigation.sections
|
||||
# - navigation.tabs
|
||||
# - navigation.tabs.sticky
|
||||
|
||||
i18n:
|
||||
prev: 'Chapitre précédent'
|
||||
|
@ -61,7 +63,15 @@ markdown_extensions:
|
|||
# pip install pymdown-extensions
|
||||
- pymdownx.superfences:
|
||||
|
||||
plugins: []
|
||||
# plugins: []
|
||||
plugins:
|
||||
- include-markdown
|
||||
- awesome-pages
|
||||
- pdf-export:
|
||||
verbose: true
|
||||
media_type: print
|
||||
enabled_if_env: ENABLE_PDF_EXPORT
|
||||
combined: false
|
||||
|
||||
extra:
|
||||
search:
|
||||
|
|
1141
package-lock.json
generated
1141
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -12,12 +12,12 @@
|
|||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@marp-team/marp-cli": "^1.0.3",
|
||||
"@marp-team/marp-cli": "^1.5.0",
|
||||
"foreman": "^3.0.1",
|
||||
"node-sass": "^6.0.0"
|
||||
"node-sass": "^6.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@marp-team/marp-core": "^2.0.2",
|
||||
"@marp-team/marp-core": "^3.0.0",
|
||||
"markdown-it-footnote": "^3.0.2"
|
||||
}
|
||||
}
|
||||
|
|
100
scripts/gx-teaching
Executable file
100
scripts/gx-teaching
Executable file
|
@ -0,0 +1,100 @@
|
|||
#!/bin/sh
|
||||
# vim: set ft=sh:
|
||||
|
||||
# Set defaults
|
||||
BASEDIR="$(pwd)"
|
||||
ACTION="watch"
|
||||
DOCKER_IMAGE=glenux/teaching-boilerplate:latest
|
||||
DOCKER_OPT_TTY="-t"
|
||||
|
||||
# Parse arguments
|
||||
while [ $# -gt 0 ]; do
|
||||
ARG="${1:-}"
|
||||
OPT="${2:-}"
|
||||
shift
|
||||
|
||||
# echo "DEBUG: ARG=$ARG OPT=$OPT"
|
||||
|
||||
case "$ARG" in
|
||||
-d|--data-dir)
|
||||
shift # argument requires a parameter
|
||||
if [ -z "$OPT" ]; then
|
||||
>&2 echo "ERROR: missing argument for --data-dir"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -d "$OPT" ]; then
|
||||
>&2 echo "ERROR: argument for --data-dir must be a directory"
|
||||
exit 1
|
||||
fi
|
||||
BASEDIR="$(cd "$OPT" && pwd)"
|
||||
;;
|
||||
-a|--action)
|
||||
shift # argument requires a parameter
|
||||
if [ -z "$OPT" ]; then
|
||||
>&2 echo "ERROR: missing argument for --action"
|
||||
exit 1
|
||||
fi
|
||||
ACTION="$OPT"
|
||||
;;
|
||||
-T|--no-tty)
|
||||
DOCKER_OPT_TTY=""
|
||||
;;
|
||||
-h|--help)
|
||||
echo "Usage: $0 [options]"
|
||||
echo ""
|
||||
echo "-d, --data-dir DIR Content directory"
|
||||
echo "-a, --action ACTION Action (watch, build, shell, etc.)"
|
||||
echo "-t, --tty Enable TTY mode (needed for shell)"
|
||||
echo "-h, --help Show this help"
|
||||
;;
|
||||
*)
|
||||
>&2 echo "ERROR: unknown option '$ARG'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "basedir = $BASEDIR"
|
||||
echo "docker_image = $DOCKER_IMAGE"
|
||||
echo "action = $ACTION"
|
||||
|
||||
if [ -f "$BASEDIR/.marp/theme.scss" ]; then
|
||||
DOCKER_OPT_MARP_THEME="-v $BASEDIR/.marp:/app/.marp"
|
||||
echo "Theme: detected Marp files. Adding option to command line ($DOCKER_OPT_MARP_THEME)"
|
||||
else
|
||||
echo "Theme: no theme detected. Using default files"
|
||||
fi
|
||||
|
||||
if [ -f "$BASEDIR/mkdocs.yml" ]; then
|
||||
DOCKER_OPT_MKDOCS_CONFIG="-v $BASEDIR/mkdocs.yml:/app/mkdocs.yml"
|
||||
echo "Mkdocs: detected mkdocs.yml file. Adding option to command line ($DOCKER_OPT_MKDOCS_CONFIG)"
|
||||
else
|
||||
echo "Mkdocs: no mkdocs.yml detected. Using default files"
|
||||
fi
|
||||
|
||||
if [ -d "$BASEDIR/slides" ]; then
|
||||
DOCKER_OPT_MARP_PORT="-p 5200:5200"
|
||||
fi
|
||||
|
||||
if [ -d "$BASEDIR/docs" ]; then
|
||||
DOCKER_OPT_MKDOCS_PORT="-p 5100:5100"
|
||||
fi
|
||||
|
||||
set -x
|
||||
docker run -i $DOCKER_OPT_TTY \
|
||||
--shm-size=1gb \
|
||||
-e "EXT_UID=$(id -u)" \
|
||||
-e "EXT_GID=$(id -g)" \
|
||||
-v "$BASEDIR/docs:/app/docs" \
|
||||
-v "$BASEDIR/slides:/app/slides" \
|
||||
-v "$BASEDIR/images:/app/images" \
|
||||
-v "$BASEDIR/_build:/app/_build" \
|
||||
$DOCKER_OPT_MKDOCS_CONFIG \
|
||||
$DOCKER_OPT_MARP_THEME \
|
||||
$DOCKER_OPT_MKDOCS_PORT \
|
||||
$DOCKER_OPT_MARP_PORT \
|
||||
"$DOCKER_IMAGE" "$ACTION"
|
||||
set +x
|
||||
|
||||
# TODO: ask current user permissions
|
||||
# TODO: fix permissions on generated files
|
0
slides/010-demo/_020-about.md
Normal file
0
slides/010-demo/_020-about.md
Normal file
35
slides/index.mdpp
Normal file
35
slides/index.mdpp
Normal file
|
@ -0,0 +1,35 @@
|
|||
<!--
|
||||
theme: default
|
||||
vim: set ft=m4.markdown:
|
||||
paginate: true
|
||||
footer: Teaching Boilerplate © 2021
|
||||
-->
|
||||
|
||||
<!--
|
||||
_class: chapter
|
||||
-->
|
||||
|
||||
![bg w:512 left:50%](images/logo.png)
|
||||
|
||||
# Teaching boilerplate
|
||||
|
||||
----
|
||||
|
||||
changequote(`{{',`}}')dnl
|
||||
|
||||
include({{slides/010-demo/_010-about.md}})dnl
|
||||
|
||||
----
|
||||
|
||||
include({{slides/010-demo/_020-about.md}})dnl
|
||||
|
||||
----
|
||||
|
||||
<!--
|
||||
_class: chapter
|
||||
-->
|
||||
|
||||
![bg right](images/background.png)
|
||||
|
||||
## Questions ?
|
||||
|
Loading…
Reference in a new issue