forked from auxolotl/docs
139 lines
5.3 KiB
Nix
139 lines
5.3 KiB
Nix
{
|
|
lix-docs,
|
|
stdenv,
|
|
vim,
|
|
perl,
|
|
...
|
|
}:
|
|
let
|
|
f = "find . -type f -exec";
|
|
s = "${f} sed -i";
|
|
in
|
|
stdenv.mkDerivation {
|
|
inherit (lix-docs) version;
|
|
pname = "lix-docs-md";
|
|
|
|
inherit (lix-docs) src;
|
|
|
|
nativeBuildInputs = [
|
|
vim
|
|
perl
|
|
];
|
|
|
|
installPhase = ''
|
|
defaultFix() {
|
|
sed -i '1,2d' $0
|
|
sed -i '1s/ - /\n\n/' $0
|
|
sed -i '1s/^/# /' $0
|
|
sed -i '3s/\w/\u&/' $0
|
|
sed -i '3s/$/\./' $0
|
|
}
|
|
export -f defaultFix
|
|
|
|
mkdir $out
|
|
cp -r ${lix-docs.doc}/manualMD/* $out
|
|
chmod -R +w $out
|
|
pushd $out
|
|
mv introduction.md index.md
|
|
mv advanced-topics/advanced-topics.md advanced-topics/index.md
|
|
mv advanced-topics Advanced-Topics
|
|
mv architecture/architecture.md architecture/index.md
|
|
mv command-ref Command-Reference
|
|
sed -i 's!^- \[\(.*\)\]!# \1 !g' glossary.md
|
|
sed -i 's/^\(.*\)\({#gloss-.*}\)\(.*\)/\1\3\2/g' glossary.md
|
|
sed -i 's/ ,/,/g' glossary.md
|
|
sed -i 's/\(\S\){/\1 {/g' glossary.md
|
|
pushd Command-Reference
|
|
mv command-ref.md index.md
|
|
mv files.md files/index.md
|
|
mv nix-env.md nix-env/index.md
|
|
mv nix-store.md nix-store/index.md
|
|
# Fixup all Nix3(aka new cli) commands
|
|
pushd new-cli
|
|
${s} '6,7d' {} \;
|
|
${s} '6s/ - /\n\n/' {} \;
|
|
${s} '6s/^/# /' {} \;
|
|
${s} '8s/\w/\u&/' {} \;
|
|
${s} '8s/$/\./' {} \;
|
|
${f} ex -c '1,5m9' -c w -c q {} \;
|
|
${s} 's!../command-ref!\./!g' {} \;
|
|
popd
|
|
mv new-cli New-CLI
|
|
# Fixup all non-nix3 commands
|
|
find . -type f -name "nix-*.md" -exec bash -c 'defaultFix "$0"' {} \;
|
|
# Fixup nix-store
|
|
pushd nix-store
|
|
find . -type f -name "*.md" -exec bash -c 'defaultFix "$0"' {} \;
|
|
sed -i 's!\./nix-store!\./!g' index.md
|
|
popd
|
|
|
|
# Fixup Nix-env
|
|
pushd nix-env
|
|
find . -type f -name "*.md" -exec bash -c 'defaultFix "$0"' {} \;
|
|
${s} 's!../command-ref!\.!g' {} \;
|
|
sed -i 's!\./nix-env!\.!g' index.md
|
|
sed -i 's!\./files!\.\./files!g' index.md
|
|
sed -i 's!\./new-cli!\.\./new-cli!g' index.md
|
|
sed -i 's!\.\./language!\.\./\.\./language!g' index.md
|
|
popd
|
|
bash -c defaultFix conf-file.md
|
|
popd
|
|
|
|
# Contributing directory
|
|
pushd contributing
|
|
mv contributing.md index.md
|
|
ex -c '1,9m11' -c w -c q experimental-features.md
|
|
sed -i 's!^## \[\(.*\)\]!## \1 !g' experimental-features.md
|
|
popd
|
|
|
|
pushd language
|
|
sed -i '3s/##/#/' values.md
|
|
sed -E -i 's/(.*)(#type-\w+)">(\w+)<\/a>/## \3 {\2}/' values.md
|
|
sed -i 's/## List/# List/' values.md
|
|
sed -i 's/## Attribute Set/# Attribute Set/' values.md
|
|
popd
|
|
|
|
# Final directories
|
|
mv installation/installation.md installation/index.md
|
|
mv package-management/package-management.md package-management/index.md
|
|
mv package-management Package-Management
|
|
mv protocols/protocols.md protocols/index.md
|
|
mv release-notes/release-notes.md release-notes/index.md
|
|
|
|
# Admonitions
|
|
find . -type f -name "*.md" -exec perl -pi -e 's/\s*<div class="warning">/!!! warning/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i '/<\/div>/d' {} \;
|
|
find . -type f -name "*.md" -exec perl -pi -e 's/\n\n\n/placeholderstring123/g' -0 {} \;
|
|
find . -type f -name "*.md" -exec sed -i '/^!!! warning/,/placeholderstring123/s/^/\ \ \ \ /' {} \;
|
|
find . -type f -name "*.md" -exec perl -pi -e 's/placeholderstring123/\n\n\n/g' -0 {} \;
|
|
find . -type f -name "*.md" -exec perl -pi -e 's/\s*> \*\*Warning\*\*/!!! warning2/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i '/^!!! warning2/,/^$/s/ >/\ \ \ /' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/!!! warning2/!!! warning/' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/^\ \ \ \ !!! warning/!!! warning/' {} \;
|
|
find . -type f -name "*.md" -exec perl -pi -e 's/!!! warning\n \n/!!! warning\n/g' -0 {} \;
|
|
find . -type f -name "*.md" -exec perl -pi -e 's/\s*> \*\*Note\*\*\n.*/\n\n!!! note/g' -0 {} \;
|
|
find . -type f -name "*.md" -exec sed -i '/^!!! note/,/^[^!>]/s/^>/\ \ \ /' {} \;
|
|
|
|
# Increase all headings past line 1 by one level
|
|
# Lix docs all have level-1 headings, we need at least level 2
|
|
find . -type f -name "*.md" -exec sed -i '2,$s/# [^#]*/#&/g' {} \;
|
|
|
|
# Clean up some local links
|
|
find . -type f -name "*.md" -exec sed -i 's/advanced-topics/Advanced-Topics/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/command-ref/Command-Reference/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/package-management/Package-Management/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's!installation/installation\.md!installation/index.md!g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/new-cli/New-CLI/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/Command-Reference\.html//g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/Command-Reference\.md//g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/conf-file\.html/conf-file\.md/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/nix-env\.md/nix-env\/index.md/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/nix-store\.md/nix-store\/index.md/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/values\.html/values\.md/g' {} \;
|
|
find . -type f -name "*.md" -exec sed -i 's/distributed-builds\.html/distributed-builds\.md/g' {} \;
|
|
|
|
# Final misc cleanups
|
|
find . -type f -name "*.md" -exec sed -i 's/[\]//g' {} \;
|
|
'';
|
|
}
|