On 12/31/16 07:33, Magnus Hagander wrote:
> Borka being a standard debian jessie install has Pandoc
> 1.12.4.2~dfsg-1+b14. Should be no problem installing that.
> 
> I ran a "make INSTALL" on a jessie box, and it comes out with some
> formatting still in the file, see attachment. That seems incorrect.

It appears we need pandoc 1.13 to get the good output.  This won't be
available until Debian stretch.

So for PG10, I propose the attached revised patch which keeps using lynx
but uses xsltproc instead of jade.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>From 081e0c8d4d47ab2628a9d11d6c4e0ed014180a20 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pete...@gmx.net>
Date: Mon, 27 Feb 2017 10:44:59 -0500
Subject: [PATCH v2] Create INSTALL file via XSLT

As before, create an INSTALL.html file for processing with lynx, but use
xsltproc and a new XSLT stylesheet instead of jade and DSSSL.

Replacing jade with xsltproc removes jade from the requirements for
distribution building.
---
 doc/src/sgml/.gitignore          |  1 +
 doc/src/sgml/Makefile            | 35 ++++++++------
 doc/src/sgml/stylesheet-text.xsl | 98 ++++++++++++++++++++++++++++++++++++++++
 doc/src/sgml/stylesheet.dsl      | 43 ------------------
 4 files changed, 120 insertions(+), 57 deletions(-)
 create mode 100644 doc/src/sgml/stylesheet-text.xsl

diff --git a/doc/src/sgml/.gitignore b/doc/src/sgml/.gitignore
index 2f0329c15f..cdeace2991 100644
--- a/doc/src/sgml/.gitignore
+++ b/doc/src/sgml/.gitignore
@@ -7,6 +7,7 @@
 /man-stamp
 # Other popular build targets
 /INSTALL
+/INSTALL.xml
 /postgres-US.pdf
 /postgres-A4.pdf
 /postgres.html
diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile
index fe7ca65cd4..774d35de20 100644
--- a/doc/src/sgml/Makefile
+++ b/doc/src/sgml/Makefile
@@ -217,10 +217,9 @@ postgres.pdf:
 
 
 ##
-## Semi-automatic generation of some text files.
+## Generation of some text files.
 ##
 
-JADE.text = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -i output-text -t sgml
 ICONV = iconv
 LYNX = lynx
 
@@ -233,10 +232,15 @@ LYNX = lynx
 # locale support and is very picky about locale name spelling.  The
 # below has been finely tuned to run on FreeBSD and Linux/glibc.
 INSTALL: % : %.html
-	$(PERL) -p -e 's/<H(1|2)$$/<H\1 align=center/g' $< | LC_ALL=en_US.ISO8859-1 $(LYNX) -force_html -dump -nolist -stdin | $(ICONV) -f latin1 -t us-ascii//TRANSLIT > $@
+	$(PERL) -p -e 's,<h(1|2) class="title",<h\1 align=center,g' $< | LC_ALL=en_US.ISO8859-1 $(LYNX) -force_html -dump -nolist -stdin | $(ICONV) -f latin1 -t us-ascii//TRANSLIT > $@
 
-INSTALL.html: standalone-install.sgml installation.sgml version.sgml
-	$(JADE.text) -V nochunks standalone-install.sgml installation.sgml > $@
+INSTALL.html: %.html : stylesheet-text.xsl %.xml
+	$(XMLLINT) --noout --valid $*.xml
+	$(XSLTPROC) $(XSLTPROCFLAGS) $(XSLTPROC_HTML_FLAGS) $^ >$@
+
+INSTALL.xml: standalone-install.sgml installation.sgml version.sgml
+	$(OSX) -D. -x lower $(filter-out version.sgml,$^) >$@.tmp
+	$(call mangle-xml,chapter)
 
 
 ##
@@ -247,12 +251,15 @@ INSTALL.html: standalone-install.sgml installation.sgml version.sgml
 # if we try to do "make all" in a VPATH build without the explicit
 # $(srcdir) on the postgres.sgml dependency in this rule.  GNU make bug?
 postgres.xml: $(srcdir)/postgres.sgml $(ALMOSTALLSGML)
-	$(OSX) -D. -x lower -i include-xslt-index $< >postgres.xmltmp
-	$(PERL) -p -e 's/\[(aacute|acirc|aelig|agrave|amp|aring|atilde|auml|bull|copy|eacute|egrave|gt|iacute|lt|mdash|nbsp|ntilde|oacute|ocirc|oslash|ouml|pi|quot|scaron|uuml) *\]/\&\1;/gi;' \
-	           -e '$$_ .= qq{<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd";>\n} if $$. == 1;' \
-	  <postgres.xmltmp > $@
-	rm postgres.xmltmp
-# ' hello Emacs
+	$(OSX) -D. -x lower -i include-xslt-index $< >$@.tmp
+	$(call mangle-xml,book)
+
+define mangle-xml
+$(PERL) -p -e 's/\[(aacute|acirc|aelig|agrave|amp|aring|atilde|auml|bull|copy|eacute|egrave|gt|iacute|lt|mdash|nbsp|ntilde|oacute|ocirc|oslash|ouml|pi|quot|scaron|uuml) *\]/\&\1;/gi;' \
+           -e '$$_ .= qq{<!DOCTYPE $(1) PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd";>\n} if $$. == 1;' \
+  <$@.tmp > $@
+rm $@.tmp
+endef
 
 ifeq ($(STYLE),website)
 XSLTPROC_HTML_FLAGS += --param website.stylesheet 1
@@ -386,13 +393,13 @@ check-tabs:
 # This allows removing some files from the distribution tarballs while
 # keeping the dependencies satisfied.
 .SECONDARY: postgres.xml $(GENERATED_SGML) HTML.index
-.SECONDARY: INSTALL.html
+.SECONDARY: INSTALL.html INSTALL.xml
 .SECONDARY: %-A4.tex-ps %-US.tex-ps %-A4.tex-pdf %-US.tex-pdf
 
 clean:
 # text --- these are shipped, but not in this directory
 	rm -f INSTALL
-	rm -f INSTALL.html
+	rm -f INSTALL.html INSTALL.xml
 # single-page output
 	rm -f postgres.html postgres.txt
 # print
@@ -400,7 +407,7 @@ clean:
 # index
 	rm -f HTML.index $(GENERATED_SGML)
 # XSLT
-	rm -f postgres.xml postgres.xmltmp htmlhelp.hhp toc.hhc index.hhk *.fo
+	rm -f postgres.xml *.tmp htmlhelp.hhp toc.hhc index.hhk *.fo
 # EPUB
 	rm -f postgres.epub
 # Texinfo
diff --git a/doc/src/sgml/stylesheet-text.xsl b/doc/src/sgml/stylesheet-text.xsl
new file mode 100644
index 0000000000..476b871870
--- /dev/null
+++ b/doc/src/sgml/stylesheet-text.xsl
@@ -0,0 +1,98 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
+                version='1.0'
+                xmlns="http://www.w3.org/TR/xhtml1/transitional";
+                exclude-result-prefixes="#default">
+
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
+<xsl:import href="stylesheet-common.xsl" />
+
+<!-- The customizations here are somewhat random in order to make the text
+     output look good. -->
+
+<!-- no section numbers or ToC -->
+<xsl:param name="chapter.autolabel" select="0"/>
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="generate.toc"></xsl:param>
+
+<!-- don't need them, and they mess up formatting -->
+<xsl:template match="indexterm">
+</xsl:template>
+
+<xsl:template match="step">
+  <li>
+    <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
+<!-- messes up formatting
+    <xsl:call-template name="anchor"/>
+-->
+    <xsl:apply-templates/>
+  </li>
+</xsl:template>
+
+<!-- produce "ASCII markup" for emphasis and such -->
+
+<xsl:template match="emphasis">
+  <xsl:text>*</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>*</xsl:text>
+</xsl:template>
+
+<xsl:template match="para/command|para/filename|para/option|para/replaceable">
+  <xsl:call-template name="gentext.startquote"/>
+  <xsl:apply-templates/>
+  <xsl:call-template name="gentext.endquote"/>
+</xsl:template>
+
+<xsl:template match="filename/replaceable|firstterm">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- tweak formatting for note, warning, etc. -->
+<xsl:template name="nongraphical.admonition">
+  <div>
+    <xsl:call-template name="common.html.attributes">
+      <xsl:with-param name="inherit" select="1"/>
+    </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
+
+    <xsl:if test="$admon.textlabel != 0 or title or info/title">
+      <p>
+        <b>
+          <xsl:call-template name="anchor"/>
+          <xsl:apply-templates select="." mode="object.title.markup"/>:
+        </b>
+      </p>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- horizontal rules before titles (matches old DSSSL style) -->
+
+<xsl:template match="sect1/title
+                    |sect1/info/title
+                    |sect1info/title"
+              mode="titlepage.mode" priority="2">
+  <hr/>
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect2/title
+                    |sect2/info/title
+                    |sect2info/title"
+              mode="titlepage.mode" priority="2">
+  <hr/>
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect3/title
+                    |sect3/info/title
+                    |sect3info/title"
+              mode="titlepage.mode" priority="2">
+  <hr/>
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/doc/src/sgml/stylesheet.dsl b/doc/src/sgml/stylesheet.dsl
index 61d2963b17..05cab9a5f3 100644
--- a/doc/src/sgml/stylesheet.dsl
+++ b/doc/src/sgml/stylesheet.dsl
@@ -4,7 +4,6 @@
 <!-- must turn on one of these with -i on the jade command line -->
 <!ENTITY % output-html          "IGNORE">
 <!ENTITY % output-print         "IGNORE">
-<!ENTITY % output-text          "IGNORE">
 
 <![ %output-html; [
 <!ENTITY dbstyle PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL>
@@ -14,10 +13,6 @@
 <!ENTITY dbstyle PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL>
 ]]>
 
-<![ %output-text; [
-<!ENTITY dbstyle PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL>
-]]>
-
 ]>
 
 <style-sheet>
@@ -796,44 +791,6 @@
 
 ]]> <!-- %output-print -->
 
-
-<!-- Plain text output customization ............................... -->
-
-<!--
-This is used for making the INSTALL file and others.  We customize the
-HTML stylesheets to be suitable for dumping plain text (via Netscape,
-Lynx, or similar).
--->
-
-<![ %output-text; [
-
-(define %section-autolabel% #f)
-(define %chapter-autolabel% #f)
-(define $generate-chapter-toc$ (lambda () #f))
-
-;; For text output, produce "ASCII markup" for emphasis and such.
-
-(define ($asterix-seq$ #!optional (sosofo (process-children)))
-  (make sequence
-    (literal "*")
-    sosofo
-    (literal "*")))
-
-(define ($dquote-seq$ #!optional (sosofo (process-children)))
-  (make sequence
-    (literal (gentext-start-quote))
-    sosofo
-    (literal (gentext-end-quote))))
-
-(element (para command) ($dquote-seq$))
-(element (para emphasis) ($asterix-seq$))
-(element (para filename) ($dquote-seq$))
-(element (para option) ($dquote-seq$))
-(element (para replaceable) ($dquote-seq$))
-(element (para userinput) ($dquote-seq$))
-
-]]> <!-- %output-text -->
-
   </style-specification-body>
  </style-specification>
 
-- 
2.12.0

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to