Dear Gil:

thank you *very* much for this interesting and informative update! Looking 
forward to your tooling! :-)

---

Ad "Java heap space": just skim over
<https://alvinalexander.com/blog/post/java/java-xmx-xms-memory-heap-size-control>.

Maybe helpful: there are two command line help information given by Java, one 
("java --help") the
default help, and another giving extended help ("java -X") which documents the 
switches for
controlling the heap size Java should reserve.

Best regards

---rony


On 29.01.2020 21:38, Gil Barmwater wrote:
> Previously I wrote: One other bit of good news is that the combination of 
> these patches and the
> Common_Content sub-folder work-around are the only required changes in order 
> to use the XSLTPROC
> and FOP tools to successfully build our documents. I will describe that 
> process in my next post.
> ...
>
> So this is that next post but I am replying to Rony's post as I wanted to 
> also address the
> questions that he raised. The process I came up with is very similar to that 
> used with the
> Publican tools - run a transform tool, either Publican or XSLTPROC, to create 
> an XSL-FO file from
> our Docbook/XML files and a (modified) Docbook stylesheet. Run an ooRexx 
> program written by Erich
> to remove extra blank lines in the .fo file. Run FOP to create a PDF from the 
> (modified) .fo file.
> But as always, the devil is in the details.
>
> I chose XSLTPROC as several web sites suggested it although other tools like 
> Xalan were mentioned
> as well. I was attempting to follow some step by step directions for building 
> a PDF from Docbook
> source but, of course, those web sites are never up to date and I had to 
> adapt the directions as I
> encountered problems. I also wanted to minimize the number of changes to our 
> Publican process as
> we are generally happy with the results it produces. So substituting XSLTPROC 
> for Publican as the
> XSL transform tool seemed a good starting point. Likewise, I kept the 
> Publican stylesheet - an
> override to the standard Docbook stylesheet - that we had further modified 
> but I was able to
> eliminate a part of it as Docbook had corrected a problem that it was fixing, 
> something to do with
> footnote spacing. And, of course, I used the most current versions of the 
> tools that were
> available, both for XSLTPROC and FOP (ver. 2.4).
>
> Now I know that some folks are "chomping at the bit" to replicate what I have 
> done but before you
> run off and start searching for the tools to download, let me give you a list 
> of the "pieces" that
> are needed. First there is the XSLTPROC transform tool: this is actually 4 
> packages(!) which need
> to be downloaded, unzipped, and the executable folders (bin) added to the 
> path. Then of course
> there is the FOP package which needs to be downloaded, unzipped and the 
> appropriate sub-folder
> added to the path. In order to get the same "look" to the documents as 
> produced by Publican, you
> need to add some special fonts - 2 packages - to your system. And then there 
> are the two Publican
> stylesheets, one of which has been modified, and a configuration file for FOP 
> so that it can find
> the graphic files to be included and use the special fonts that were 
> installed. Finally, you need
> to retrieve the blank-stripping program by Erich from the SVN repository. And 
> once you have all
> the "pieces" in place, you need to checkout the latest version of the 
> documents from SVN, copy the
> "common" folder to the working copy for the book you will be building and add 
> the fop
> configuration file to it. Then you can run xsltproc, the blank-line stripping 
> program and then
> FOP. Piece of cake!
>
> Because the above might seem overwhelming(!), I have been developing a 
> "package" that simplifies
> it to a large degree. If you were to use this package, it contains all the 
> "pieces" and a set of
> CMD files to execute the process steps. It is designed to be unzipped into a 
> folder that will
> become the working location for building one or more? documents. After 
> installing it, you would
> need to install the fonts (included) and then you could build a document. The 
> first cmd file to be
> run is DOCPATH which takes one argument - the path to the SVN working copy of 
> the documents. That
> path is saved in an environment variable for use by the remaining steps. Then 
> you run DOCPREP
> which also takes one argument - the name of the "book" you want to build, 
> e.g. rxmath. It takes
> care of creating the "Common_Content" sub-folder and adding the FOP 
> configuration file to it as
> well as saving the document name in another environment variable. Next you 
> run DOC2FO which runs
> the transform step. And finally, FO2PDF which runs FOP. The .fo file, the 
> .pdf file and a .log
> file containing all the (many) messages from FOP are placed in a 
> sub-directory named e.g. out-rxmath.
>
> The cmd files are written and have been tested on the rxmath "book". I need 
> to put the pieces
> together and zip them up which is my next step. Then I will provide a link so 
> anyone interested
> can download it and give it a try. Note that I have NOT tried this on any 
> other "books" so I
> expect there will be issues with some of them. E.g. as P.O. noted in a 
> different thread and
> mentioned by Erich as well, the Java heap space needs to be increased for 
> some of our documents. I
> do not know how to do that <blush> but it was not necessary for the rxmath 
> book. Any other issues
> should be "book-related", not process-related and can be fixed as they are 
> uncovered. And any
> process issues or enhancements I am willing to investigate.
>
> If it is the consensus that I should run this process on "all" the documents 
> before I release it,
> i.e. actually do a full test(!), I would be willing to do so.
>
> Your thoughts and comments are welcome.
>
> Gil B.
>
> On 1/7/2020 9:28 AM, Rony G. Flatscher wrote:
>> Hi Gil,
>>
>> any chance for your next posting to get an idea of what you have done and 
>> come up to? Maybe with a
>> bird eyes's view how you now would suggest to create the documentation 
>> according to your analysis,
>> tests?
>>
>> Also, would you have already suggestions for the software to use, e.g. 
>> xsltproc (how about using
>> Apache Xalan [1] for this), the FOP is probably Apache FOP [2].
>>
>> Guessing that everyone has been waiting eagerly for your next insights and 
>> directions of how to
>> duplicate your efforts to successfully create the documentation! :)
>>
>> ---rony
>>
>> [1] Apache Xalan Project:<https://xalan.apache.org/>
>> [2] Apache FOP:<https://xmlgraphics.apache.org/fop/>u
>>
>>
>> On 06.01.2020 20:07, Gil Barmwater wrote:
>>> This thread is a continuation of the thread titled "Questions ad generating 
>>> the documentation
>>> (publican, pandoc)" with a different Subject since Pandoc is no longer 
>>> being considered as an
>>> alternative.
>>>
>>> To review, the ooRexx documentation is written in DocBook and has been 
>>> turned into PDFs and HTML
>>> files using a system called Publican, originally developed by RedHat. 
>>> Publican is no longer
>>> supported and works only occasionally under Windows 10. Under the covers, 
>>> Publican transforms the
>>> DocBook XML into XSL-FO using xsltproc, probably the Perl bindings based on 
>>> comments by Erich, and
>>> modified DocBook stylesheets. It then runs the FOP program to convert the 
>>> xsl-fo output into a PDF
>>> file. In between those two steps, we run a Rexx program written by Erich to 
>>> remove extra blank
>>> lines from the examples.
>>>
>>> The new process uses the latest XSLTPROC programs directly along with the 
>>> latest version of FOP.
>>> However, Publican imposes some unique structure to the DocBook XML which 
>>> must be accounted for.
>>> Publican has the concept of a "brand" which lets one define common text and 
>>> graphics that should
>>> appear the same in all of a project's documentation. One denotes those 
>>> common text/graphic files
>>> in the XML by preceding their names with "Common_Content/". As Publican 
>>> merges the various parts
>>> of the document together so that it can be transformed by the stylesheets, 
>>> it resolves any
>>> references to Common_Content so that the correct file is merged into the 
>>> complete source. As this
>>> process is unique to Publican, we must account for it in order to use 
>>> XSLTPROC instead.
>>>
>>> One approach we could take would be to replace Common_Content/ with either 
>>> a relative or absolute
>>> path to the location in our source tree where the files actually are 
>>> located. For the sake of this
>>> discussion, I will assume the working copy of the documentation has been 
>>> checked out to a
>>> directory named docs. Then the main xml file for the rxmath book would be 
>>> located at
>>> docs\rxmath\en-US\rxmath.xml. And the files referenced by Common_Content 
>>> would be in
>>> docs\oorexx\en-US\. The relative path would then be ..\..\oorexx\en-US\. 
>>> The only problem with
>>> this approach is the number of places this would need to be changed. My 
>>> analysis shows over 140
>>> locations in over 50 files.
>>>
>>> A more expedient approach, and the one I would advocate, is to create a 
>>> "temporary" sub-directory
>>> for the purpose of building the documentation and then to copy everything 
>>> from docs\oorexx\en-US\
>>> into it. So if one were going to build the rxmath book, one would create
>>> docs\rxmath\en-US\Common_Content\ and copy into it. This allows XSLTPROC to 
>>> locate the files that
>>> need to be merged without having to make any changes to our source. The 
>>> disadvantage is that one
>>> needs to do this for each book being built. It is however a simple step 
>>> that can be done either
>>> with File Explorer or automated using the xcopy or robocopy commands.
>>>
>>> Having gotten by the Common_Content issue, running XSLTPROC reveals another 
>>> problem caused by the
>>> way Publican does the merge of the Common_Content files which I will 
>>> describe in the next posting. 


_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to