Dear Gil,

thank you very much for your update, keeping my fingers crossed and waiting 
eagerly for your package!

Cheers

---rony


On 17.02.2020 15:12, Gil Barmwater wrote:
> An update on my progress is long overdue but Real Life sometimes gets in the 
> way!
>
> I have "put the pieces together" and zipped them up along with two files of 
> documentation and have
> been able to take that package to another computer, install it and 
> successfully build the rxmath
> book. I also researched the article on Java heap space and found a way to 
> specify a larger value -
> currently using 1GB - without having to change the FOP package. Then, because 
> I know that folks
> will want to build the rexxref book right away, I decided to try it, mainly 
> to see if 1GB would be
> large enough. And, of course, it failed! But the problem was not with FOP but 
> rather with the
> xsltproc step. It seems that the Publican stylesheet is looking for a piece 
> of Perl code which is
> obviously not present. So I'm back in debug mode, trying to determine what 
> tag rexxref is using
> that wasn't used by rxmath and then what I can do about it. If I can get the 
> rexxref book to
> build, I will make the tool package available so we can find any other 
> problems that may be lurking.
>
> Gil B.
>
> On 1/30/2020 10:26 AM, Rony G. Flatscher wrote:
>> 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