From 1d40f660d22d4965d3e026972edcaf419d4431f1 Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Fri, 20 Jan 2023 11:55:44 +0100
Subject: [PATCH v6 3/3] Install pagebreaks between contrib section

This makes the PDF much more readable, but I don't like the mechanism
used.
---
 doc/src/sgml/contrib.sgml      | 54 ++++++++++++++++++++++++++++++++--
 doc/src/sgml/stylesheet-fo.xsl |  6 ++++
 2 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/doc/src/sgml/contrib.sgml b/doc/src/sgml/contrib.sgml
index 8816e06337..e412680e46 100644
--- a/doc/src/sgml/contrib.sgml
+++ b/doc/src/sgml/contrib.sgml
@@ -35,8 +35,8 @@
 </screen>
   in the <literal>contrib</literal> directory of a configured source tree;
   or to build and install
-  just one selected module, do the same in that module's subdirectory.
-  Many of the modules have regression tests, which can be executed by
+  just one selection, do the same in that selection's subdirectory.
+  Many have regression tests, which can be executed by
   running:
 <screen>
 <userinput>make check</userinput>
@@ -100,55 +100,105 @@ CREATE EXTENSION <replaceable>extension_name</replaceable>;
   component for details.
  </para>
 
+ <?hard-pagebreak?>
  &adminpack;
+ <?hard-pagebreak?>
  &amcheck;
+ <?hard-pagebreak?>
  &auth-delay;
+ <?hard-pagebreak?>
  &auto-explain;
+ <?hard-pagebreak?>
  &basebackup-to-shell;
+ <?hard-pagebreak?>
  &basic-archive;
+ <?hard-pagebreak?>
  &bloom;
+ <?hard-pagebreak?>
  &btree-gin;
+ <?hard-pagebreak?>
  &btree-gist;
+ <?hard-pagebreak?>
  &citext;
+ <?hard-pagebreak?>
  &cube;
+ <?hard-pagebreak?>
  &dblink;
+ <?hard-pagebreak?>
  &dict-int;
+ <?hard-pagebreak?>
  &dict-xsyn;
+ <?hard-pagebreak?>
  &earthdistance;
+ <?hard-pagebreak?>
  &file-fdw;
+ <?hard-pagebreak?>
  &fuzzystrmatch;
+ <?hard-pagebreak?>
  &hstore;
+ <?hard-pagebreak?>
  &intagg;
+ <?hard-pagebreak?>
  &intarray;
+ <?hard-pagebreak?>
  &isn;
+ <?hard-pagebreak?>
  &lo;
+ <?hard-pagebreak?>
  &ltree;
+ <?hard-pagebreak?>
  &oldsnapshot;
+ <?hard-pagebreak?>
  &pageinspect;
+ <?hard-pagebreak?>
  &passwordcheck;
+ <?hard-pagebreak?>
  &pgbuffercache;
+ <?hard-pagebreak?>
  &pgcrypto;
+ <?hard-pagebreak?>
  &pgfreespacemap;
+ <?hard-pagebreak?>
  &pgprewarm;
+ <?hard-pagebreak?>
  &pgrowlocks;
+ <?hard-pagebreak?>
  &pgstatstatements;
+ <?hard-pagebreak?>
  &pgstattuple;
+ <?hard-pagebreak?>
  &pgsurgery;
+ <?hard-pagebreak?>
  &pgtrgm;
+ <?hard-pagebreak?>
  &pgvisibility;
+ <?hard-pagebreak?>
  &pgwalinspect;
+ <?hard-pagebreak?>
  &postgres-fdw;
+ <?hard-pagebreak?>
  &seg;
+ <?hard-pagebreak?>
  &sepgsql;
+ <?hard-pagebreak?>
  &contrib-spi;
+ <?hard-pagebreak?>
  &sslinfo;
+ <?hard-pagebreak?>
  &tablefunc;
+ <?hard-pagebreak?>
  &tcn;
+ <?hard-pagebreak?>
  &test-decoding;
+ <?hard-pagebreak?>
  &tsm-system-rows;
+ <?hard-pagebreak?>
  &tsm-system-time;
+ <?hard-pagebreak?>
  &unaccent;
+ <?hard-pagebreak?>
  &uuid-ossp;
+ <?hard-pagebreak?>
  &xml2;
 
 </appendix>
diff --git a/doc/src/sgml/stylesheet-fo.xsl b/doc/src/sgml/stylesheet-fo.xsl
index 0c4dff92c4..9dde0a89dd 100644
--- a/doc/src/sgml/stylesheet-fo.xsl
+++ b/doc/src/sgml/stylesheet-fo.xsl
@@ -132,4 +132,10 @@
   </fo:bookmark>
 </xsl:template>
 
+<!-- Provide a hard page break processing instruction
+     http://www.sagehill.net/docbookxsl/PageBreaking.html#HardPageBreaks -->
+<xsl:template match="processing-instruction('hard-pagebreak')">
+   <fo:block break-after='page'/>
+</xsl:template>
+
 </xsl:stylesheet>
-- 
2.30.2

