From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: documentation structure |
Date: | 2024-04-15 05:00:00 |
Message-ID: | CACJufxEcMjjn-m6fpC2wXHsQbE5nyd=xt6k-jDizBVUKK6O4KQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Mar 20, 2024 at 5:40 AM Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
>
>
> +many for improving the index.
>
> My own pet docs peeve is a purely editorial one: func.sgml is a 30k line beast, and I think there's a good case for splitting out at least the larger chunks of it.
>
I think I successfully reduced func.sgml from 311322 lines to 13167 lines.
(base-commit: 93582974315174d544592185d797a2b44696d1e5)
writing a patch would be unreviewable.
key gotcha is put the contents between opening `<sect1>` and closing
`</sect1>` (both inclusive)
into a new file.
in func.sgml, using `&entity` to refernce the new file.
also update filelist.sgml
here is how I do it:
I found out these build html files are the biggest one:
doc/src/sgml/html/functions-string.html
doc/src/sgml/html/functions-matching.html
doc/src/sgml/html/functions-datetime.html
doc/src/sgml/html/functions-json.html
doc/src/sgml/html/functions-aggregate.html
doc/src/sgml/html/functions-info.html
doc/src/sgml/html/functions-admin.html
so create these new sgml files hold corrspedoning content:
func-string.sgml
func-matching.sgml
func-datetime.sgml
func-json.sgml
func-aggregate.sgml
func-info.sgml
func-admin.sgml
based on funs.sgml structure pattern:
<sect1 id="functions-string">
next section1 line number:
<sect1 id="functions-binarystring">
<sect1 id="functions-matching">
next section1 line number:
<sect1 id="functions-formatting">
<sect1 id="functions-datetime">
next section1 line number:
<sect1 id="functions-enum">
<sect1 id="functions-json">
next section1 line number:
<sect1 id="functions-sequence">
<sect1 id="functions-aggregate">
next section1 line number:
<sect1 id="functions-window">
<sect1 id="functions-info">
next section1 line number:
<sect1 id="functions-admin">
<sect1 id="functions-admin">
next section1 line number:
<sect1 id="functions-trigger">
------------------------------------
step1: pipe the relative line range contents to new sgml files.
(example: line 2407 to line 4177 include all the content correspond to
functions-string.html)
sed -n '2407,4177 p' func.sgml > func-string.sgml
sed -n '5328,7756 p' func.sgml > func-matching.sgml
sed -n '8939,11122 p' func.sgml > func-datetime.sgml
sed -n '15498,19348 p' func.sgml > func-json.sgml
sed -n '21479,22896 p' func.sgml > func-aggregate.sgml
sed -n '24257,27896 p' func.sgml > func-info.sgml
sed -n '27898,30579 p' func.sgml > func-admin.sgml
step2:
in place delete these line ranges in func.sgml
sed --in-place "2407,4177d ; 5328,7756d ; 8939,11122d ; 15498,19348d
; 21479,22896d ; 24257,27896d ; 27898,30579d" \
func.sgml
reference: https://unix.stackexchange.com/questions/676210/matching-multiple-ranges-with-sed-range-expressions
https://www.gnu.org/software/sed/manual/sed.html#Command_002dLine-Options
step3:
put following lines into relative position in func.sgml:
(based on above structure pattern, quickly location line position)
`
&func-string
&func-matching
&func-datetime
&func-json
&func-aggregate
&func-info
&func-admin
`
step4: update filelist.sgml:
diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml
index 3fb0709f..0b78a361 100644
--- a/doc/src/sgml/filelist.sgml
+++ b/doc/src/sgml/filelist.sgml
@@ -18,6 +18,13 @@
<!ENTITY ddl SYSTEM "ddl.sgml">
<!ENTITY dml SYSTEM "dml.sgml">
<!ENTITY func SYSTEM "func.sgml">
+<!ENTITY func-string SYSTEM "func-string.sgml">
+<!ENTITY func-matching SYSTEM "func-matching.sgml">
+<!ENTITY func-datetime SYSTEM "func-datetime.sgml">
+<!ENTITY func-json SYSTEM "func-json.sgml">
+<!ENTITY func-aggregate SYSTEM "func-aggregate.sgml">
+<!ENTITY func-info SYSTEM "func-info.sgml">
+<!ENTITY func-admin SYSTEM "func-admin.sgml">
<!ENTITY indices SYSTEM "indices.sgml">
<!ENTITY json SYSTEM "json.sgml">
<!ENTITY mvcc SYSTEM "mvcc.sgml">
doc/src/sgml/filelist.sgml | 7 +
doc/src/sgml/func-admin.sgml | 2682 +++++
doc/src/sgml/func-aggregate.sgml | 1418 +++
doc/src/sgml/func-datetime.sgml | 2184 ++++
doc/src/sgml/func-info.sgml | 3640 ++++++
doc/src/sgml/func-json.sgml | 3851 ++++++
doc/src/sgml/func-matching.sgml | 2429 ++++
doc/src/sgml/func-string.sgml | 1771 +++
doc/src/sgml/func.sgml | 17979 +----------------------------
we can do it one by one, but it's still worth it.
From | Date | Subject | |
---|---|---|---|
Next Message | jian he | 2024-04-15 05:03:30 | Re: sql/json remaining issue |
Previous Message | Michael Paquier | 2024-04-15 04:47:08 | Re: Allow non-superuser to cancel superuser tasks. |