On 20.02.2020 23:20, P.O. Jonsson wrote:
> This is just to inform that I have managed to inject Erich Rexx script in my
> build chain so that
> my built documents should now be 100% the same as yours and the ones built by
> Erich or Rick. I
> could only test it on rexxref.pdf but that is a beast and if it works there
> the rest should be ok.
>
> Removing the additional spaces shrunk rexxref.pdf with 10 pages and ooDialog
> with 182 pages !
> ooDialog.pdf is now „only“ 1898 pages :-)
The following program needs to be run from "oorexx/doc/trunk" and will replace
leading and trailing
empty lines in the content of "programlisting" elements which are probably the
cause for the blank
lines.
If you then run the documentation generation, then those blank lines should not
show up anymore.
Program "stripBlankLinesFromProgramlistingElements.rex" that removes leading
and trailing CR-LF from
programlistings. Run it in the doc-branch you want to work with, e.g. from
"oorexx/doc/trunk":
---rgf, 2020-02-02: strip CR-LF from ooRexx xml program listings
start=.dateTime~new
call sysfiletree "*.xml", "files.", "FOS"
end =.dateTime~new
say "SysFileTree duration:" end-start", about to process" files.0 "files"
len=files.0~length
do i=1 to files.0
say i~right(len)":" files.i
call stripBlankLines files.i
end
end =.dateTime~new
say "processed" .count~counter "<programlisting> elements, duration:"
end-start
::routine stripBlankLines
parse arg fileName
inStr=.stream~new(fileName)~~open("read")
chars=inStr~chars
allChars=inStr~charin(1,chars)
inStr~close
startNeedle="<programlisting>"
endNeedle ="</programlisting>"
crlf ="0d0a"x
mbOut=.mutableBuffer~new(,chars)
do while allChars<>""
parse var allChars before (startNeedle) program (endNeedle) allChars
if program="" then
do
if allChars="" then -- arrived at end of file
mbOut~append(before)
else -- maybe a placeholder of whitespace
mbOut~append(before, startNeedle, program, endNeedle)
end
else -- strip leading and trailing CR-LF characters
do
mbOut~append(before, startNeedle, program~strip("both",crlf),
endNeedle)
.count~increase
end
end
-- write new file
.stream~new(fileName)~~open("write replace")~~charout(mbOut~string)~close
::class count
::attribute counter class
::method init class
expose counter
counter=0
::method increase class
expose counter
counter+=1
If something would go wrong, then you could always re-instate the original
version of the
documentation by issuing an "svn revert" command, so testing the above program
should be safe from
that respect as well.
Could you try that out and report whether it solved the empty line problem?
(The program can be run
repeatedly, in the case that new programlisting-code gets added to the
documentation and there is a
need to remove leading and trailing empty lines again.)
---rony
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel