Compare commits
No commits in common. "develop" and "master" have entirely different histories.
16 changed files with 4637 additions and 2062 deletions
|
@ -3,7 +3,3 @@ examples
|
||||||
exercises
|
exercises
|
||||||
node_modules
|
node_modules
|
||||||
.drone.yml
|
.drone.yml
|
||||||
docs/*.md
|
|
||||||
docs/**/*.md
|
|
||||||
slides/*.md
|
|
||||||
slides/**/*.md
|
|
||||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -16,4 +16,3 @@ tmp*
|
||||||
\.vagrant
|
\.vagrant
|
||||||
vendor/bundle
|
vendor/bundle
|
||||||
*.zip
|
*.zip
|
||||||
mkdocs.yml
|
|
||||||
|
|
|
@ -5,10 +5,8 @@ build: theme.css
|
||||||
|
|
||||||
%.css: %.scss
|
%.css: %.scss
|
||||||
cd .. \
|
cd .. \
|
||||||
&& npx sass --no-error-css --no-source-map .marp/$<:.marp/$@ \
|
&& npx node-sass --output-style compressed .marp/$< > .marp/$@ \
|
||||||
|| ( rm -f .marp/$@ && exit 1 )
|
|| ( rm -f .marp/$@ && exit 1 )
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f theme.css
|
|
||||||
|
|
174
Makefile
174
Makefile
|
@ -63,7 +63,6 @@ DOCS_IMAGES_ORA_PNG=$(patsubst $(IMAGES_DIR)/%.ora,$(BUILD_IMAGES_DIR)/%.ora.png
|
||||||
## Merge all lists
|
## Merge all lists
|
||||||
DOCS_IMAGES_SVG=$(DOCS_IMAGES_DOT_SVG) $(DOCS_IMAGES_CIRCO_SVG) $(DOCS_IMAGES_UML_SVG)
|
DOCS_IMAGES_SVG=$(DOCS_IMAGES_DOT_SVG) $(DOCS_IMAGES_CIRCO_SVG) $(DOCS_IMAGES_UML_SVG)
|
||||||
DOCS_IMAGES_PNG=$(DOCS_IMAGES_ORA_PNG)
|
DOCS_IMAGES_PNG=$(DOCS_IMAGES_ORA_PNG)
|
||||||
export
|
|
||||||
|
|
||||||
all: help
|
all: help
|
||||||
|
|
||||||
|
@ -71,8 +70,17 @@ all: help
|
||||||
## Install prerequisites
|
## Install prerequisites
|
||||||
##
|
##
|
||||||
|
|
||||||
.PHONY: prepare
|
prepare: prepare-slides prepare-docs ## install prerequisites
|
||||||
prepare:
|
|
||||||
|
prepare-slides: ## install prerequisites for PDF slides only
|
||||||
|
npm install
|
||||||
|
npm rebuild node-sass
|
||||||
|
npx browserslist@latest --update-db
|
||||||
|
|
||||||
|
prepare-docs: ## install prerequisites for static docs site only
|
||||||
|
pipenv install
|
||||||
|
|
||||||
|
.PHONY: prepare prepare-slides prepare-docs
|
||||||
|
|
||||||
images: $(DOCS_IMAGES_SVG) $(DOCS_IMAGES_PNG) ## build images
|
images: $(DOCS_IMAGES_SVG) $(DOCS_IMAGES_PNG) ## build images
|
||||||
@echo "Source:"
|
@echo "Source:"
|
||||||
|
@ -107,13 +115,87 @@ $(CACHE_SLIDES_DIR)/%.mdpp.md: $(SLIDES_DIR)/%.mdpp
|
||||||
m4 -d -I$(SLIDES_DIR) -I$(CACHE_SLIDES_DIR) $< > $@ \
|
m4 -d -I$(SLIDES_DIR) -I$(CACHE_SLIDES_DIR) $< > $@ \
|
||||||
|| ( rm -f $@ && exit 1 )
|
|| ( rm -f $@ && exit 1 )
|
||||||
|
|
||||||
|
.marp/theme.css:
|
||||||
|
cd .marp && $(MAKE) theme.css
|
||||||
|
|
||||||
watch: ## run development server
|
watch: ## run development server
|
||||||
$(MAKE) autoslide
|
$(MAKE) autoslide
|
||||||
pipenv run honcho start
|
pipenv run honcho start
|
||||||
|
|
||||||
serve: watch
|
autoslide: $(SLIDES_DIR)/autoslide.md | $(BUILD_SLIDES_DIR)
|
||||||
|
|
||||||
.PHONY: watch serve
|
$(SLIDES_DIR)/autoslide.md: $(DOCS_MD)
|
||||||
|
find -L $(DOCS_DIR) -regextype sed \( -regex '.*/[0-9][^/]*\.md' ! -regex '.*/_.*' \) -print0 \
|
||||||
|
| sort -z \
|
||||||
|
| xargs -0 sed '/^---$$/,/^---$$/d' \
|
||||||
|
> $(SLIDES_DIR)/autoslide.md
|
||||||
|
|
||||||
|
watch-autoslide-internal:
|
||||||
|
# FIXME: use watchexec instead
|
||||||
|
while inotifywait -q -e move -e modify -e create -e attrib -e delete -e moved_to -r $(DOCS_DIR) ; do \
|
||||||
|
sleep 0.25 ; \
|
||||||
|
$(MAKE) autoslide ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
watch-tocupdate-internal:
|
||||||
|
# FIXME: use watchexec instead
|
||||||
|
while inotifywait -q -e move -e modify -e create -e attrib -e delete -e moved_to -r $(DOCS_DIR) ; do \
|
||||||
|
sleep 2 ; \
|
||||||
|
$(MAKE) images ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
watch-docs-internal:
|
||||||
|
pipenv run mkdocs serve --dev-addr 0.0.0.0:$(DOCS_PORT)
|
||||||
|
|
||||||
|
watch-slides-internal: .marp/theme.css
|
||||||
|
PORT=$(SLIDES_PORT) \
|
||||||
|
npx marp \
|
||||||
|
--allow-local-files \
|
||||||
|
--engine $$(pwd)/.marp/engine.js \
|
||||||
|
--html \
|
||||||
|
--theme $$(pwd)/.marp/theme.css \
|
||||||
|
-w $(SLIDES_DIR) \
|
||||||
|
-s
|
||||||
|
|
||||||
|
watch-slides: ## run development server for PDF slides
|
||||||
|
pipenv run honcho start slides autoslide
|
||||||
|
|
||||||
|
watch-docs: ## run development server for static docs site
|
||||||
|
pipenv run honcho start docs toc
|
||||||
|
|
||||||
|
serve: watch
|
||||||
|
serve-slides: watch-slides
|
||||||
|
serve-docs: watch-docs
|
||||||
|
|
||||||
|
.PHONY: watch watch-slides watch-docs watch-slides-internal watch-docs-internal serve serve-docs serve-slides
|
||||||
|
|
||||||
|
|
||||||
|
$(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 \
|
||||||
|
--theme $$(pwd)/.marp/theme.css \
|
||||||
|
$< \
|
||||||
|
-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)/%.pptx: $(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
|
## Build final documents
|
||||||
|
@ -124,11 +206,45 @@ serve: watch
|
||||||
|
|
||||||
build: build-pdf build-html ## build all documents as PDF and HTML files
|
build: build-pdf build-html ## build all documents as PDF and HTML files
|
||||||
|
|
||||||
build-pptx: ## build both docs and slides as PPTX files
|
build-pptx: build-slides-pptx ## build slides as PPTX files
|
||||||
build-html: ## build both docs and slides as HTML files
|
|
||||||
build-pdf: ## build both docs and slides as PDF files
|
|
||||||
|
|
||||||
.PHONY: build
|
build-pdf: build-docs-pdf build-slides-pdf ## build both docs and slides as PDF files
|
||||||
|
|
||||||
|
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-pptx: $(SLIDES_PPTX_ALL) $(SLIDES_MD_ALL) ## build PPTX slides only
|
||||||
|
|
||||||
|
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: ## build pdf docs only
|
||||||
|
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 -L $(BUILD_DOCS_DIR) -name *.pdf -not -name index.pdf |sort ) \
|
||||||
|
cat output $(BUILD_DOCS_DIR)/docs.pdf
|
||||||
|
|
||||||
|
build-docs-html: ## build static docs site only
|
||||||
|
mkdir -p $(BUILD_DOCS_DIR)
|
||||||
|
pipenv run mkdocs build \
|
||||||
|
--site-dir $(BUILD_DOCS_DIR)
|
||||||
|
|
||||||
|
.PHONY: build build-slides
|
||||||
|
|
||||||
|
deploy-docs: ## deploy static docs site to github
|
||||||
|
git push $(DEPLOY_REPO)
|
||||||
|
pipenv run mkdocs gh-deploy $(DEPLOY_OPTS)
|
||||||
|
|
||||||
help: ## print this help
|
help: ## print this help
|
||||||
@echo "Usage: make <target>"
|
@echo "Usage: make <target>"
|
||||||
|
@ -139,7 +255,7 @@ help: ## print this help
|
||||||
/^[a-zA-Z_-]+:.*?## / \
|
/^[a-zA-Z_-]+:.*?## / \
|
||||||
{ sub("\\\\n",sprintf("\n%22c"," "), $$2); \
|
{ sub("\\\\n",sprintf("\n%22c"," "), $$2); \
|
||||||
printf("\033[36m%-20s\033[0m %s\n", $$1, $$2); \
|
printf("\033[36m%-20s\033[0m %s\n", $$1, $$2); \
|
||||||
}' $(MAKEFILE_LIST) | sort
|
}' $(MAKEFILE_LIST)
|
||||||
@echo ""
|
@echo ""
|
||||||
|
|
||||||
|
|
||||||
|
@ -147,14 +263,36 @@ help: ## print this help
|
||||||
## Clean
|
## Clean
|
||||||
##
|
##
|
||||||
|
|
||||||
clean: # remove generated documents
|
clean: clean-slides clean-docs # remove generated documents
|
||||||
|
|
||||||
.PHONY: clean
|
clean-slides:
|
||||||
|
rm -fr $(BUILD_SLIDES_DIR) # remove generated PDF slides
|
||||||
|
|
||||||
include tasks/docs.mk
|
clean-docs:
|
||||||
include tasks/slides.mk
|
rm -fr $(BUILD_DOCS_DIR) # remove generated static docs site
|
||||||
include tasks/docker.mk
|
|
||||||
include tasks/utils.mk
|
|
||||||
include tasks/images.mk
|
|
||||||
include tasks/shell.mk
|
|
||||||
|
|
||||||
|
.PHONY: clean clean-slides clean-docs
|
||||||
|
|
||||||
|
##
|
||||||
|
## Utilities
|
||||||
|
##
|
||||||
|
|
||||||
|
fixme:
|
||||||
|
@egrep --color -rni '(fixme)' $(DOCS_DIR) $(SLIDES_DIR)
|
||||||
|
|
||||||
|
.PHONY: fixme
|
||||||
|
|
||||||
|
docker-build: ## build docker image
|
||||||
|
docker build \
|
||||||
|
--file docker/Dockerfile \
|
||||||
|
--tag glenux/docmachine:$(BUILD_VERSION) \
|
||||||
|
.
|
||||||
|
docker tag \
|
||||||
|
glenux/docmachine:$(BUILD_VERSION) \
|
||||||
|
glenux/docmachine:latest
|
||||||
|
|
||||||
|
docker-push: ## push docker image
|
||||||
|
env docker push glenux/docmachine:latest
|
||||||
|
|
||||||
|
docker-pull: ## download docker image
|
||||||
|
env docker pull glenux/docmachine:latest
|
||||||
|
|
1253
Pipfile.lock
generated
1253
Pipfile.lock
generated
File diff suppressed because it is too large
Load diff
10
Procfile
10
Procfile
|
@ -1,7 +1,5 @@
|
||||||
# src-docs: make sync-docs-internal
|
docs: make watch-docs-internal
|
||||||
# src-slides: make sync-slides-internal
|
slides: make watch-slides-internal
|
||||||
src-autoslide: make watch-autoslide-internal
|
toc: make watch-tocupdate-internal
|
||||||
watch-docs: make watch-docs-internal
|
autoslide: make watch-autoslide-internal
|
||||||
watch-slides: make watch-slides-internal
|
|
||||||
watch-toc: make watch-tocupdate-internal
|
|
||||||
# proxy: caddy
|
# proxy: caddy
|
||||||
|
|
|
@ -29,8 +29,6 @@ chown -R "$EXT_UID:$EXT_GID" _cache
|
||||||
chown -R "$EXT_UID:$EXT_GID" _build
|
chown -R "$EXT_UID:$EXT_GID" _build
|
||||||
chown -R "$EXT_UID:$EXT_GID" .marp
|
chown -R "$EXT_UID:$EXT_GID" .marp
|
||||||
chown -R "$EXT_UID:$EXT_GID" /home/appuser
|
chown -R "$EXT_UID:$EXT_GID" /home/appuser
|
||||||
chown -R "$EXT_UID:$EXT_GID" slides
|
|
||||||
chown -R "$EXT_UID:$EXT_GID" docs
|
|
||||||
|
|
||||||
# Patch mkdocs configuration
|
# Patch mkdocs configuration
|
||||||
# set -x
|
# set -x
|
||||||
|
@ -46,7 +44,7 @@ else
|
||||||
fi
|
fi
|
||||||
# set +x
|
# set +x
|
||||||
|
|
||||||
if [ "$1" = "supershell" ]; then
|
if [ "$1" = "shell" ]; then
|
||||||
exec bash
|
exec bash
|
||||||
else
|
else
|
||||||
exec gosu "$EXT_UID:$EXT_GID" make "$@"
|
exec gosu "$EXT_UID:$EXT_GID" make "$@"
|
||||||
|
|
36
overlay.sh
36
overlay.sh
|
@ -1,36 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
UID=$(id -u)
|
|
||||||
GID=$(id -g)
|
|
||||||
CURDIR=$(pwd)
|
|
||||||
|
|
||||||
set -u
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "Umounting merge directory if it is mounted"
|
|
||||||
if mount | grep -q "${CURDIR}.merge"; then
|
|
||||||
sudo umount -lf "${CURDIR}.merge"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# echo "Removing old upper directory"
|
|
||||||
# sudo rm -rf "${CURDIR}.upper"
|
|
||||||
|
|
||||||
echo "Creating directories"
|
|
||||||
sudo mkdir -p "${CURDIR}.upper"
|
|
||||||
sudo mkdir -p "${CURDIR}.workdir"
|
|
||||||
sudo mkdir -p "${CURDIR}.merge"
|
|
||||||
|
|
||||||
echo "Setting permissions"
|
|
||||||
sudo chown "$UID:$GID" "${CURDIR}.upper"
|
|
||||||
sudo chown "$UID:$GID" "${CURDIR}.workdir"
|
|
||||||
sudo chown "$UID:$GID" "${CURDIR}.merge"
|
|
||||||
|
|
||||||
echo "Mounting filesystem"
|
|
||||||
sudo mount -t overlay \
|
|
||||||
-o "lowerdir=${CURDIR},upperdir=${CURDIR}.upper,workdir=${CURDIR}.workdir" \
|
|
||||||
overlay \
|
|
||||||
"${CURDIR}.merge"
|
|
||||||
|
|
||||||
echo "Running shell"
|
|
||||||
cd "${CURDIR}.merge" || exit 1
|
|
||||||
exec $SHELL
|
|
4965
package-lock.json
generated
4965
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -12,11 +12,11 @@
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@marp-team/marp-cli": "^1.4.1",
|
"@marp-team/marp-cli": "^3.4.0",
|
||||||
"@marp-team/marp-core": "^3.9.0",
|
"@marp-team/marp-core": "^3.9.0",
|
||||||
"foreman": "^3.0.1",
|
"foreman": "^3.0.1",
|
||||||
"markdown-it-footnote": "^3.0.2",
|
"markdown-it-footnote": "^3.0.2",
|
||||||
"markdown-it-highlight-lines": "^1.0.2",
|
"markdown-it-highlight-lines": "^1.0.2",
|
||||||
"sass": "^1.79.3"
|
"node-sass": "^7.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
# vim: set ft=make :
|
|
||||||
|
|
||||||
docker-build: ## build docker image
|
|
||||||
docker build \
|
|
||||||
--file docker/Dockerfile \
|
|
||||||
--tag glenux/docmachine:$(BUILD_VERSION) \
|
|
||||||
--output type=docker \
|
|
||||||
.
|
|
||||||
docker tag \
|
|
||||||
glenux/docmachine:$(BUILD_VERSION) \
|
|
||||||
glenux/docmachine:latest
|
|
||||||
|
|
||||||
docker-push: ## push docker image
|
|
||||||
env docker push glenux/docmachine:latest
|
|
||||||
|
|
||||||
docker-pull: ## download docker image
|
|
||||||
env docker pull glenux/docmachine:latest
|
|
|
@ -1,70 +0,0 @@
|
||||||
# vim: set ft=make :
|
|
||||||
|
|
||||||
|
|
||||||
prepare-docs: ## install prerequisites for static docs site only
|
|
||||||
pipenv install
|
|
||||||
|
|
||||||
.PHONY: prepare-docs
|
|
||||||
prepare: prepare-docs
|
|
||||||
|
|
||||||
sync-docs-internal:
|
|
||||||
@>&2 echo "ERROR: not implemented"
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
clean-docs: ## remove generated static docs site
|
|
||||||
rm -fr $(BUILD_DOCS_DIR)
|
|
||||||
|
|
||||||
.PHONY: clean-docs
|
|
||||||
clean: clean-docs
|
|
||||||
|
|
||||||
# deploy-docs: ## deploy static docs site to github
|
|
||||||
# git push $(DEPLOY_REPO)
|
|
||||||
# pipenv run mkdocs gh-deploy $(DEPLOY_OPTS)
|
|
||||||
|
|
||||||
# .PHONY: deploy-docs
|
|
||||||
# deploy: deploy-docs
|
|
||||||
|
|
||||||
build-docs-pdf: ## build pdf docs only
|
|
||||||
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 -L $(BUILD_DOCS_DIR) -name *.pdf -not -name index.pdf |sort ) \
|
|
||||||
cat output $(BUILD_DOCS_DIR)/docs.pdf
|
|
||||||
|
|
||||||
.PHONY: build-docs-pdf
|
|
||||||
build-docs: build-docs-pdf
|
|
||||||
|
|
||||||
build-docs-html: ## build static docs site only
|
|
||||||
mkdir -p $(BUILD_DOCS_DIR)
|
|
||||||
pipenv run mkdocs build \
|
|
||||||
--site-dir $(BUILD_DOCS_DIR)
|
|
||||||
|
|
||||||
.PHONY: build-docs-html
|
|
||||||
build-docs: build-docs-html
|
|
||||||
|
|
||||||
build: build-docs
|
|
||||||
|
|
||||||
watch-docs-internal:
|
|
||||||
pipenv run mkdocs serve --dev-addr 0.0.0.0:$(DOCS_PORT)
|
|
||||||
.PHONY: watch-docs-internal
|
|
||||||
|
|
||||||
watch-docs: ## run development server for static docs site
|
|
||||||
pipenv run honcho start watch-docs watch-toc
|
|
||||||
|
|
||||||
.PHONY: watch-docs
|
|
||||||
watch: watch-docs
|
|
||||||
|
|
||||||
|
|
||||||
build-pdf: build-docs-pdf ## build docs as PDF files
|
|
||||||
build-html: build-docs-html ## build docs as HTML files
|
|
||||||
build-docs: build-docs-pdf build-docs-html ## build only docs as PDF and HTML
|
|
||||||
|
|
||||||
serve-docs: watch-docs
|
|
||||||
|
|
||||||
.PHONY: watch-docs serve-docs
|
|
||||||
.PHONY: watch-docs-internal
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
|
|
||||||
.PHONY: supershell
|
|
||||||
supershell: shell
|
|
||||||
|
|
||||||
.PHONY: shell
|
|
||||||
shell:
|
|
||||||
@echo "Running shell..."
|
|
||||||
@bash
|
|
||||||
|
|
115
tasks/slides.mk
115
tasks/slides.mk
|
@ -1,115 +0,0 @@
|
||||||
|
|
||||||
.PHONY: clean-slides
|
|
||||||
clean-slides:
|
|
||||||
rm -fr $(BUILD_SLIDES_DIR) # remove generated PDF slides
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean: clean-slides
|
|
||||||
|
|
||||||
.PHONY: watch-slides-internal
|
|
||||||
watch-slides-internal: .marp/theme.css
|
|
||||||
PORT=$(SLIDES_PORT) \
|
|
||||||
npx marp \
|
|
||||||
--allow-local-files \
|
|
||||||
--engine $$(pwd)/.marp/engine.js \
|
|
||||||
--html \
|
|
||||||
--theme $$(pwd)/.marp/theme.css \
|
|
||||||
-w $(SLIDES_DIR) \
|
|
||||||
-s
|
|
||||||
|
|
||||||
.PHONY: watch-slides serve-slides
|
|
||||||
watch-slides: ## run development server for PDF slides
|
|
||||||
pipenv run honcho start watch-slides src-autoslide
|
|
||||||
|
|
||||||
.PHONY: prepare
|
|
||||||
prepare: prepare-slides
|
|
||||||
|
|
||||||
.PHONY: prepare-slides
|
|
||||||
prepare-slides: ## install prerequisites for PDF slides only
|
|
||||||
npm install
|
|
||||||
npm rebuild node-sass
|
|
||||||
npx browserslist@latest --update-db
|
|
||||||
|
|
||||||
|
|
||||||
$(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 \
|
|
||||||
--theme $$(pwd)/.marp/theme.css \
|
|
||||||
$< \
|
|
||||||
-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)/%.pptx: $(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 $@
|
|
||||||
|
|
||||||
.marp/theme.css:
|
|
||||||
cd .marp && $(MAKE) theme.css
|
|
||||||
|
|
||||||
$(BUILD_SLIDES_DIR):
|
|
||||||
mkdir -p $(BUILD_SLIDES_DIR)
|
|
||||||
|
|
||||||
.PHONY: build-slides
|
|
||||||
build-slides: build-slides-pdf build-slides-html ## build only slides as PDF and HTML
|
|
||||||
|
|
||||||
.PHONY: build-slides-pptx
|
|
||||||
build-slides-pptx: $(SLIDES_PPTX_ALL) $(SLIDES_MD_ALL) ## build PPTX slides only
|
|
||||||
|
|
||||||
.PHONY: build-slides-pdf
|
|
||||||
build-slides-pdf: $(SLIDES_PDF_ALL) $(SLIDES_MD_ALL) ## build PDF slides only
|
|
||||||
|
|
||||||
.PHONY: build-slides-html
|
|
||||||
build-slides-html: $(SLIDES_HTML_ALL) ## build HTML slides only
|
|
||||||
|
|
||||||
.PHONY: merge-slides
|
|
||||||
merge-slides: $(SLIDES_MDPP_MD) $(SLIDES_MD_ALL)
|
|
||||||
|
|
||||||
.PHONY: watch-slides
|
|
||||||
serve-slides: watch-slides
|
|
||||||
|
|
||||||
.PHONY: autoslide
|
|
||||||
autoslide: $(SLIDES_DIR)/autoslide.md | $(BUILD_SLIDES_DIR)
|
|
||||||
|
|
||||||
$(SLIDES_DIR)/autoslide.md: $(DOCS_MD)
|
|
||||||
find -L $(DOCS_DIR) -regextype sed \( -regex '.*/[0-9][^/]*\.md' ! -regex '.*/_.*' \) -print0 \
|
|
||||||
| sort -z \
|
|
||||||
| xargs -0 sed '/^---$$/,/^---$$/d' \
|
|
||||||
> $(SLIDES_DIR)/autoslide.md
|
|
||||||
|
|
||||||
.PHONY: watch-autoslide-internal
|
|
||||||
watch-autoslide-internal:
|
|
||||||
# FIXME: use watchexec instead
|
|
||||||
while inotifywait -q -e move -e modify -e create -e attrib -e delete -e moved_to -r $(DOCS_DIR) ; do \
|
|
||||||
sleep 0.25 ; \
|
|
||||||
$(MAKE) autoslide ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
.PHONY: watch-tocupdate-internal
|
|
||||||
watch-tocupdate-internal:
|
|
||||||
# FIXME: use watchexec instead
|
|
||||||
while inotifywait -q -e move -e modify -e create -e attrib -e delete -e moved_to -r $(DOCS_DIR) ; do \
|
|
||||||
sleep 2 ; \
|
|
||||||
$(MAKE) images ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
.PHONY: build-slides-pdf
|
|
||||||
build-pdf: build-slides-pdf ## build slides as PDF files
|
|
||||||
|
|
||||||
.PHONY: build-slides-html
|
|
||||||
build-html: build-slides-html ## build slides as HTML files
|
|
||||||
|
|
||||||
.PHONY: build-slides-pptx
|
|
||||||
build-pptx: build-slides-pptx ## build slides as PPTX files
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
# vim: set ft=make :
|
|
||||||
|
|
||||||
##
|
|
||||||
## Utilities
|
|
||||||
##
|
|
||||||
|
|
||||||
fixme:
|
|
||||||
@egrep --color -rni '(fixme)' $(DOCS_DIR) $(SLIDES_DIR)
|
|
||||||
|
|
||||||
debug:
|
|
||||||
echo $(PWD)
|
|
||||||
|
|
||||||
.PHONY: fixme
|
|
Loading…
Reference in a new issue