diff --git a/.gitignore b/.gitignore index 0d10f6e1..76fc815e 100644 --- a/.gitignore +++ b/.gitignore @@ -33,8 +33,7 @@ Makefile.config /doc/manual/*.8 /doc/manual/images /doc/manual/version.txt -/doc/manual/NEWS.html -/doc/manual/NEWS.txt +/doc/manual/release-notes.html # /scripts/ /scripts/nix-profile.sh diff --git a/Makefile.config.in b/Makefile.config.in index 5524ea3a..09374833 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -29,5 +29,6 @@ pkglibdir = $(libdir)/$(PACKAGE_NAME) prefix = @prefix@ storedir = @storedir@ sysconfdir = @sysconfdir@ +w3m = @w3m@ xmllint = @xmllint@ xsltproc = @xsltproc@ diff --git a/doc/manual/local.mk b/doc/manual/local.mk index 4342215b..0e583b28 100644 --- a/doc/manual/local.mk +++ b/doc/manual/local.mk @@ -76,7 +76,7 @@ $(d)/manual.pdf: $(d)/manual.xml $(MANUAL_SRCS) $(d)/manual.is-valid $(trace-gen) if test "$(dblatex)" != ""; then \ cd doc/manual && $(XSLTPROC) --xinclude --stringparam profile.condition manual \ $(docbookxsl)/profiling/profile.xsl manual.xml | \ - $(dblatex) -o manual.pdf $(dblatex_opts) -; \ + $(dblatex) -o $(notdir $@) $(dblatex_opts) -; \ else \ echo "Please install dblatex and rerun configure."; \ exit 1; \ @@ -84,3 +84,30 @@ $(d)/manual.pdf: $(d)/manual.xml $(MANUAL_SRCS) $(d)/manual.is-valid clean-files += $(d)/manual.pdf + +# Generate the release notes. + +NEWS_OPTS = \ + --stringparam generate.toc "article nop" \ + --stringparam section.autolabel.max.depth 0 \ + --stringparam header.rule 0 + +$(d)/release-notes.html: $(d)/release-notes.xml + $(trace-gen) $(XSLTPROC) --xinclude --output $@ $(NEWS_OPTS) \ + $(docbookxsl)/html/docbook.xsl $< + +NEWS: $(d)/release-notes.xml + $(trace-gen) $(XSLTPROC) --xinclude doc/manual/quote-literals.xsl $< | \ + $(XSLTPROC) --output $@.tmp.html $(NEWS_OPTS) \ + $(docbookxsl)/html/docbook.xsl - && \ + LANG=en_US.UTF-8 $(w3m) -dump $@.tmp.html > $@.tmp && \ + sed -e 's/●/*/g' -e 's/○/-/g' -e 's/━/-/g' < $@.tmp > NEWS && \ + rm $@.tmp $@.tmp.html + +dist-files += NEWS $(d)/release-notes.html + +clean-files += NEWS $(d)/release-notes.html + +all: $(d)/release-notes.html NEWS + +$(foreach file, $(d)/release-notes.html, $(eval $(call install-data-in, $(file), $(docdir)/manual))) diff --git a/doc/manual/quote-literals.xsl b/doc/manual/quote-literals.xsl index 03971bff..5002643d 100644 --- a/doc/manual/quote-literals.xsl +++ b/doc/manual/quote-literals.xsl @@ -7,9 +7,9 @@ extension-element-prefixes="str"> - + `' - + @@ -21,7 +21,7 @@
- +
@@ -37,8 +37,4 @@ - - - - diff --git a/release.nix b/release.nix index b64bc941..285b8fb4 100644 --- a/release.nix +++ b/release.nix @@ -69,7 +69,7 @@ let echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products echo "doc-pdf manual $out/manual.pdf" >> $out/nix-support/hydra-build-products - echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products + echo "doc release-notes $out/share/doc/nix/manual release-notes.html" >> $out/nix-support/hydra-build-products ''; };