setup to parse asciidoc
This commit is contained in:
parent
e4aad311a8
commit
936eb1a7cd
55
doc.nix
Normal file
55
doc.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{ stdenv,
|
||||||
|
lib,
|
||||||
|
liminix,
|
||||||
|
gnumake,
|
||||||
|
fennel,
|
||||||
|
pandoc,
|
||||||
|
luaPackages,
|
||||||
|
asciidoctor,
|
||||||
|
borderVmConf
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
json =
|
||||||
|
(import liminix {
|
||||||
|
inherit borderVmConf;
|
||||||
|
device = import (liminix + "/devices/qemu");
|
||||||
|
liminix-config =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./modules/all-modules.nix ];
|
||||||
|
};
|
||||||
|
}).outputs.optionsJson;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "liminix-doc";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
gnumake
|
||||||
|
fennel
|
||||||
|
pandoc
|
||||||
|
asciidoctor
|
||||||
|
luaPackages.lyaml
|
||||||
|
];
|
||||||
|
|
||||||
|
src = lib.sources.sourceFilesBySuffices
|
||||||
|
(lib.cleanSource ./. ) [
|
||||||
|
".adoc"
|
||||||
|
".nix" ".rst" "Makefile" ".svg"
|
||||||
|
".fnl" ".py" ".css" ".html"
|
||||||
|
".md" ".html.in"
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
cat ${json} | fennel --correlate doc/parse-options.fnl > doc/modules-generated.inc.rst
|
||||||
|
cat ${json} | fennel --correlate doc/parse-options-outputs.fnl > doc/outputs-generated.inc.rst
|
||||||
|
cp ${(import ./doc/hardware.nix)} doc/hardware.rst
|
||||||
|
make -C doc html
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/nix-support $out/share/
|
||||||
|
cd doc
|
||||||
|
make install prefix=$out/share
|
||||||
|
ln -s ${json} $out/options.json
|
||||||
|
echo "file source-dist \"$out/share/doc/liminix\"" \
|
||||||
|
> $out/nix-support/hydra-build-products
|
||||||
|
'';
|
||||||
|
}
|
36
doc/Makefile
36
doc/Makefile
@ -1,24 +1,26 @@
|
|||||||
# Minimal makefile for Sphinx documentation
|
DOCS=\
|
||||||
#
|
admin \
|
||||||
|
configuration \
|
||||||
|
development \
|
||||||
|
index \
|
||||||
|
installation \
|
||||||
|
intro \
|
||||||
|
modules \
|
||||||
|
outputs \
|
||||||
|
reference \
|
||||||
|
tutorial
|
||||||
|
|
||||||
# You can set these variables from the command line, and also
|
|
||||||
# from the environment for the first two.
|
|
||||||
SPHINXOPTS ?=
|
|
||||||
SPHINXBUILD ?= sphinx-build
|
|
||||||
SOURCEDIR = .
|
|
||||||
BUILDDIR = _build
|
|
||||||
|
|
||||||
# Put it first so that "make" without argument is like "make help".
|
|
||||||
help:
|
|
||||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
||||||
|
|
||||||
hardware.rst: hardware.nix
|
hardware.rst: hardware.nix
|
||||||
@rm -f hardware.rst || true
|
@rm -f hardware.rst || true
|
||||||
@cp $$(nix-build hardware.nix) hardware.rst
|
@cp $$(nix-build hardware.nix) hardware.rst
|
||||||
|
|
||||||
.PHONY: help Makefile
|
%.html : %.adoc
|
||||||
|
asciidoctor -a stylesheet=asciidoc.css $<
|
||||||
|
|
||||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
html: Makefile $(patsubst %,%.html,$(DOCS))
|
||||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
||||||
html: Makefile
|
install:
|
||||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
mkdir -p $(prefix)/doc
|
||||||
|
cp -a posts/* news.html index.html liminix.css $(prefix)
|
||||||
|
cp $(patsubst %,%.html,$(DOCS)) $(prefix)/doc
|
||||||
|
Loading…
Reference in New Issue
Block a user