aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/Makefile7
-rw-r--r--doc/default.nix3
-rw-r--r--doc/shell.nix1
-rw-r--r--nixos/doc/xmlformat.conf72
4 files changed, 81 insertions, 2 deletions
diff --git a/doc/Makefile b/doc/Makefile
index 952ef4bfcbb..8a4612e95f1 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,12 +1,17 @@
MD_TARGETS=$(addsuffix .xml, $(basename $(wildcard ./*.md ./**/*.md)))
.PHONY: all
-all: validate out/html/index.html out/epub/manual.epub
+all: validate format out/html/index.html out/epub/manual.epub
.PHONY: debug
debug:
nix-shell --run "xmloscopy --docbook5 ./manual.xml ./manual-full.xml"
+.PHONY: format
+format:
+ find . -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \
+ xmlformat --config-file "$$XMLFORMAT_CONFIG" -i {}
+
.PHONY: clean
clean:
rm -f ${MD_TARGETS} .version manual-full.xml
diff --git a/doc/default.nix b/doc/default.nix
index e5be364506f..0d95d3f0457 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -7,7 +7,7 @@ in
pkgs.stdenv.mkDerivation {
name = "nixpkgs-manual";
- buildInputs = with pkgs; [ pandoc libxml2 libxslt zip jing ];
+ buildInputs = with pkgs; [ pandoc libxml2 libxslt zip jing xmlformat ];
src = ./.;
@@ -18,6 +18,7 @@ pkgs.stdenv.mkDerivation {
HIGHLIGHTJS = pkgs.documentation-highlighter;
XSL = "${pkgs.docbook5_xsl}/xml/xsl";
RNG = "${pkgs.docbook5}/xml/rng/docbook/docbook.rng";
+ XMLFORMAT_CONFIG = ../nixos/doc/xmlformat.conf;
xsltFlags = lib.concatStringsSep " " [
"--param section.autolabel 1"
"--param section.label.includes.component.label 1"
diff --git a/doc/shell.nix b/doc/shell.nix
index 22590142ee1..e8da2eaf16b 100644
--- a/doc/shell.nix
+++ b/doc/shell.nix
@@ -1,4 +1,5 @@
{ pkgs ? import ../. {} }:
(import ./default.nix).overrideAttrs (x: {
buildInputs = x.buildInputs ++ [ pkgs.xmloscopy ];
+
})
diff --git a/nixos/doc/xmlformat.conf b/nixos/doc/xmlformat.conf
new file mode 100644
index 00000000000..50255857b24
--- /dev/null
+++ b/nixos/doc/xmlformat.conf
@@ -0,0 +1,72 @@
+#
+# DocBook Configuration file for "xmlformat"
+# see http://www.kitebird.com/software/xmlformat/
+# 10 Sept. 2004
+#
+
+# Only block elements
+ackno address appendix article biblioentry bibliography bibliomixed \
+biblioset blockquote book bridgehead callout calloutlist caption caution \
+chapter chapterinfo classsynopsis cmdsynopsis colophon constraintdef \
+constructorsynopsis dedication destructorsynopsis entry epigraph equation example \
+figure formalpara funcsynopsis glossary glossdef glossdiv glossentry glosslist \
+glosssee glossseealso graphic graphicco highlights imageobjectco important \
+index indexdiv indexentry indexinfo info informalequation informalexample \
+informalfigure informaltable legalnotice literallayout lot lotentry mediaobject \
+mediaobjectco msgmain msgset note orderedlist para part preface primaryie \
+procedure qandadiv qandaentry qandaset refentry refentrytitle reference \
+refnamediv refsect1 refsect2 refsect3 refsection revhistory screenshot sect1 \
+sect2 sect3 sect4 sect5 section seglistitem set setindex sidebar simpara \
+simplesect step substeps synopfragment synopsis table term title \
+toc variablelist varlistentry warning itemizedlist listitem \
+footnote colspec partintro row simplelist subtitle tbody tgroup thead tip
+ format block
+ normalize no
+
+
+#appendix bibliography chapter glossary preface reference
+# element-break 3
+
+sect1 section
+ element-break 2
+
+
+#
+para abstract
+ format block
+ entry-break 1
+ exit-break 1
+ normalize yes
+ wrap-length 79
+
+title
+ format block
+ normalize = yes
+ entry-break = 0
+ exit-break = 0
+
+# Inline elements
+abbrev accel acronym action application citation citebiblioid citerefentry citetitle \
+classname co code command computeroutput constant country database date email emphasis \
+envar errorcode errorname errortext errortype exceptionname fax filename \
+firstname firstterm footnoteref foreignphrase funcdef funcparams function \
+glossterm group guibutton guiicon guilabel guimenu guimenuitem guisubmenu \
+hardware holder honorific indexterm inlineequation inlinegraphic inlinemediaobject \
+interface interfacename \
+keycap keycode keycombo keysym lineage link literal manvolnum markup medialabel \
+menuchoice methodname methodparam modifier mousebutton olink ooclass ooexception \
+oointerface option optional otheraddr othername package paramdef parameter personname \
+phrase pob postcode productname prompt property quote refpurpose replaceable \
+returnvalue revnumber sgmltag state street structfield structname subscript \
+superscript surname symbol systemitem token trademark type ulink userinput \
+uri varargs varname void wordasword xref year mathphrase member tag
+ format inline
+
+programlisting screen
+ format verbatim
+ entry-break = 0
+ exit-break = 0
+
+
+#term
+# format inline