On Wed, Mar 20, 2024 at 5:40 AM Andrew Dunstan <and...@dunslane.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.