DocBook v2

Thibaut Cuvelier tcuvelier at lyx.org
Mon Aug 31 01:40:26 UTC 2020


Dear list,

I've been working on a new iteration of the DocBook support. It's living in
the features.git repo for now, but I think it might require a second look.
I tried to keep commits relatively atomic (I was much less cautious about
updating the test cases and the comments).

One of the major goals of this refactoring was to make the code much easier
to understand. A less major goal was to generate cleaner DocBook (avoid
generating too many tags on one line, except for inline tags, like font
changes in a paragraph). To this end, I made the make* functions handle
only one paragraph at a time, with the exception of makeListEnvironment (it
was a nightmare to implement for one paragraph at a time).

Here is a list of commits for which I think it would be best if someone
could give me feedback (reverse chronological order):

ad6783fa26a43a31788a91c2f2ce259f6f800979: DocBook: several missing features
for Additional.lyx.
Especially about increasing the format number (I'm getting lost in this
format, with Style and InsetLayout being handled in completely different
parts).

0c5ae88df5ed2e3002e9e182ea08588675485f59: DocBook: rewrite
makeListEnvironment.
Quite complex logic to handle lists. (It was easier to implement separately
from other environments.) In a nutshell: gather all items that are within
this list (or deeper), to generate correct output; handle items one by one,
to ensure that the correct opening/closing tags are correct.

d77d18233f329cd1bd2f2f05778353642863ac6e: Fix compilation
The issue I already reported on the list about VC refusing to compile. I
suppose this is already merged upstream?

51e1ea67675ce616876764998376ceb751c3987d: DocBook: make
Paragraph::simpleDocBookOnePar return a list of paragraphs.
Complex logic, quite different from what happened before. This is the
cleanest fix I could find to handle InsetNewline, because this concept
simply does not exist in DocBook.

cd6dd9c95722948b45620216b34ffcdbd1636090: DocBook: allow empty paragraphs
before the <info> section.
First commit to review.

You can safely ignore these commits, as the relevant code is completely
rewritten in a later commit (my Git skills are not good enough to allow me
to remove them completely from the history…):
c46ea5b207ab7b86cd68e04e38bbd684d11062c4: Merge findLastParagraph and
findLastBibliographyParagraph to lower code duplication.
b18a6c9f0a25d30523f702aa046ac0b467d937a6: DocBook: simplify code to handle
abstracts.

Right now, with this code, I can generate Additional.lyx with exactly two
validation problems: a peculiarity in a list, and a mix between a frameless
box and shapepar. I don't know if it's really useful to deal with them, as
they seem to be very specific issues.

Thanks for having read this long message :)!
Thibaut
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20200831/d53f4b5e/attachment.html>


More information about the lyx-devel mailing list