-
-
Notifications
You must be signed in to change notification settings - Fork 300
/
copy-nix-dev-tutorials.sh
executable file
·40 lines (31 loc) · 1.61 KB
/
copy-nix-dev-tutorials.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /usr/bin/env bash
set -e
pages=(
"tutorials/install-nix.html"
"tutorials/ad-hoc-developer-environments.html"
"tutorials/declarative-and-reproducible-developer-environments.html"
"tutorials/dev-environment.html"
"tutorials/towards-reproducibility-pinning-nixpkgs.html"
"tutorials/continuous-integration-github-actions.html"
"tutorials/building-and-running-docker-images.html"
"tutorials/contributing.html"
)
outDir=$1
mkdir -p $outDir
rm -f learn_guides.html.in
for page in "${pages[@]}"; do
filename="$(basename ${page%.*})"
source="$NIX_DEV_MANUAL_IN/$page"
target="$outDir/$filename.tt"
title=$(xidel $source --css '.body h1' --printed-node-format=text | sed 's|¶||')
echo "<li><a href=\"/$outDir/$filename.html\">$title</a></li>" >> learn_guides.html.in
printf '[%% WRAPPER layout.tt title="Guides - %s" %%]\n\n' "$title" > $target
xidel $source --css '.body > *' --printed-node-format=html \
| sed 's|<a class=\"headerlink\".*<\/a>||g' \
| sed 's|<a class="reference internal" href="../glossary.html#term-attribute-name"><span class="xref std std-term">attribute name</span></a>|attribute name|g' \
| sed 's|<a class="reference internal" href="../glossary.html#term-package-name"><span class="xref std std-term">package name</span></a>|package name|g' \
| sed 's|<a class="reference internal" href="../glossary.html#term-reproducible"><span class="xref std std-term">reproducible</span></a>|reproducible|g' \
| sed 's|../reference/pinning-nixpkgs.html#ref-pinning-nixpkgs|towards-reproducibility-pinning-nixpkgs.html|g' \
>> "$target"
printf '\n\n[%% END %%]\n' >> $target
done