nixos/manual: remove holdovers from docbook times

these files provided mainly or exclusively xml-related tooling and
support for editing the manual. since docbook is now an implementation
detail (except for still being allowed in option docs, for now) these
tools are no longer necessary, useful, or even functional.

xmlformat.conf is still used by the nixpkgs documentation, so we have to
keep it. there's no reason it can't go live with the nixpkgs docs though.

pennae bfc6975c 1229e735

Changed files
+1 -165
doc
nixos
+1 -1
doc/doc-support/default.nix
···
ln -s ${epub-xsl} ./epub.xsl
ln -s ${xhtml-xsl} ./xhtml.xsl
-
ln -s ${../../nixos/doc/xmlformat.conf} ./xmlformat.conf
+
ln -s ${./xmlformat.conf} ./xmlformat.conf
ln -s ${pkgs.documentation-highlighter} ./highlightjs
echo -n "${version}" > ./version
-2
nixos/doc/manual/.gitignore
···
-
generated
-
manual-combined.xml
-30
nixos/doc/manual/Makefile
···
-
.PHONY: all
-
all: manual-combined.xml
-
-
.PHONY: debug
-
debug: generated manual-combined.xml
-
-
manual-combined.xml: generated *.xml **/*.xml
-
rm -f ./manual-combined.xml
-
nix-shell --pure -Q --packages xmloscopy \
-
--run "xmloscopy --docbook5 ./manual.xml ./manual-combined.xml"
-
-
.PHONY: format
-
format:
-
nix-shell --pure -Q --packages xmlformat \
-
--run "find ../../ -iname '*.xml' -type f -print0 | xargs -0 -I{} -n1 \
-
xmlformat --config-file '../xmlformat.conf' -i {}"
-
-
.PHONY: fix-misc-xml
-
fix-misc-xml:
-
find . -iname '*.xml' -type f \
-
-exec ../varlistentry-fixer.rb {} ';'
-
-
.PHONY: clean
-
clean:
-
rm -f manual-combined.xml generated
-
-
generated:
-
nix-build ../../release.nix \
-
--attr manualGeneratedSources.x86_64-linux \
-
--out-link ./generated
-8
nixos/doc/manual/shell.nix
···
-
let
-
pkgs = import ../../.. { };
-
in
-
pkgs.mkShell {
-
name = "nixos-manual";
-
-
packages = with pkgs; [ xmlformat jing xmloscopy ruby ];
-
}
-124
nixos/doc/varlistentry-fixer.rb
···
-
#!/usr/bin/env ruby
-
-
# This script is written intended as a living, evolving tooling
-
# to fix oopsies within the docbook documentation.
-
#
-
# This is *not* a formatter. It, instead, handles some known cases
-
# where something bad happened, and fixing it manually is tedious.
-
#
-
# Read the code to see the different cases it handles.
-
#
-
# ALWAYS `make format` after fixing with this!
-
# ALWAYS read the changes, this tool isn't yet proven to be always right.
-
-
require "rexml/document"
-
include REXML
-
-
if ARGV.length < 1 then
-
$stderr.puts "Needs a filename."
-
exit 1
-
end
-
-
filename = ARGV.shift
-
doc = Document.new(File.open(filename))
-
-
$touched = false
-
-
# Fixing varnames having a sibling element without spacing.
-
# This is to fix an initial `xmlformat` issue where `term`
-
# would mangle as spaces.
-
#
-
# <varlistentry>
-
# <term><varname>types.separatedString</varname><replaceable>sep</replaceable> <----
-
# </term>
-
# ...
-
#
-
# Generates: types.separatedStringsep
-
# ^^^^
-
#
-
# <varlistentry xml:id='fun-makeWrapper'>
-
# <term>
-
# <function>makeWrapper</function><replaceable>executable</replaceable><replaceable>wrapperfile</replaceable><replaceable>args</replaceable> <----
-
# </term>
-
#
-
# Generates: makeWrapperexecutablewrapperfileargs
-
# ^^^^ ^^^^ ^^ ^^
-
#
-
# <term>
-
# <option>--option</option><replaceable>name</replaceable><replaceable>value</replaceable> <-----
-
# </term>
-
#
-
# Generates: --optionnamevalue
-
# ^^ ^^
-
doc.elements.each("//varlistentry/term") do |term|
-
["varname", "function", "option", "replaceable"].each do |prev_name|
-
term.elements.each(prev_name) do |el|
-
if el.next_element and
-
el.next_element.name == "replaceable" and
-
el.next_sibling_node.class == Element
-
then
-
$touched = true
-
term.insert_after(el, Text.new(" "))
-
end
-
end
-
end
-
end
-
-
-
-
# <cmdsynopsis>
-
# <command>nixos-option</command>
-
# <arg>
-
# <option>-I</option><replaceable>path</replaceable> <------
-
# </arg>
-
#
-
# Generates: -Ipath
-
# ^^
-
doc.elements.each("//cmdsynopsis/arg") do |term|
-
["option", "replaceable"].each do |prev_name|
-
term.elements.each(prev_name) do |el|
-
if el.next_element and
-
el.next_element.name == "replaceable" and
-
el.next_sibling_node.class == Element
-
then
-
$touched = true
-
term.insert_after(el, Text.new(" "))
-
end
-
end
-
end
-
end
-
-
# <cmdsynopsis>
-
# <arg>
-
# <group choice='req'>
-
# <arg choice='plain'>
-
# <option>--profile-name</option>
-
# </arg>
-
#
-
# <arg choice='plain'>
-
# <option>-p</option>
-
# </arg>
-
# </group><replaceable>name</replaceable> <----
-
# </arg>
-
#
-
# Generates: [{--profile-name | -p }name]
-
# ^^^^
-
doc.elements.each("//cmdsynopsis/arg") do |term|
-
["group"].each do |prev_name|
-
term.elements.each(prev_name) do |el|
-
if el.next_element and
-
el.next_element.name == "replaceable" and
-
el.next_sibling_node.class == Element
-
then
-
$touched = true
-
term.insert_after(el, Text.new(" "))
-
end
-
end
-
end
-
end
-
-
-
if $touched then
-
doc.context[:attribute_quote] = :quote
-
doc.write(output: File.open(filename, "w"))
-
end
nixos/doc/xmlformat.conf doc/doc-support/xmlformat.conf