Pdx Design History
Worked on styles. Have Latex seminar.sty and foils.sty. Have a cleaned up HTML article, with sidebars et al. Then tidied up the test process --- for html anyway; need to do it for the others. I looked at Guido's regression test mechanism. Either I didn't understand it or it isn't doing what I need, so I;ll stay with my own for a while longer.
DocBook XML DTD v 4.0 came out. I downloaded it and will work on generating it properly for the docbook driver.
Next worked on redirection of includes. The problem is this: Assume file1.pdx is a chunk of documentation which includes file1a from another dir. Next, file2 (in yet another dir) wants to include file1. How does pdx find the right file1a? I run into this when file1 is a viewfoil presentation with includes of its own, but I want to also include file1 in class notes.
We need a way to redirect the basedir of an include. This should operate recursively. However, I've done a quick hack:
=def savedir=@includedir@ =def includedir=xyz =include file1a =def includedir @savedir@
The include function looks at the home dir of the original pdx file (i.e. file2), and then at xyz trying to find file1. That is, the main file's path is the default source for includes, with 1 alternative path.
Rethinking, I really should be looking at the algorithm for cpp's #include. But I'll try this: As each include is started, push the abspath onto a stack of paths, and pop off the stack at the end. For each new include, compute the normed path of the concatenation of all the paths on the stack.
Doing auto analysis of paths is getting tricky, because I need to do a "pop" after processing the include. So I'll just put in:
=pathpush mynewdir =include xyz.pdx =pathpop
The pathstack and pathtop are initialized for the dir of the initial pdx, so existing include statements work ok. In addition, we can use the pathtop in non-pdx actions:
=for html <IMG SRC="@_pathtop@/myjpg">
Also set date in the test dir's default_cfg.pdx to 2000-01-01, so tests wouldn't fail to match oracles simply because of data changes.
Eliminated need for pathpush and pathpop: the "include" markups now automatically do the push and pop if they detect a non-local path. However, I'll leave in the pathpush and pathpop as an additional feature.
The hard part was getting the splices lined up correctly (at least I think they are now). Eventually I printed 3 lines on each side of the insertions at each stage and just tweaked the index numbers until all was well.
Then added the old default approach to tables (i.e., no column widths given; assume grid). Need that because a) it is used that way 90% of the time, and b) it is used by zillions of legacy web pages.
Then looked at converting Docbook to the new XML version. Looks like I just need a different preamble/postamble. Noticed however, that I never did complete the numbered headings for docbook.
Converted to disutils 0.8.1.
Converted to Distutils 0.9. This gives install_scripts.
Debugged nested "includes". At least I think I have. Time to publish a new release.
Found that "=head2 Status:" gives invalid link in the generated table of contents. Apparently due to ending ":" confusing the use of "::" as a string join mechanism. That was a holdover from perl days, so I just changed to a sequence. No more join and split for the toc entries. Used test02 for testing.
Creator: Harry George