Description

Fixed in 1.7

If you included one page in another with the Include macro, then all of the included content is wrapped in a <para> element, resulting often in nested <para>s and invalid docbook.

Steps to reproduce

  1. Use the include macro to include another page that contains some text.
  2. Render As DocBook and note that the included content is in a <para> element even though it may itself include <para>s or other, so you end up with nested <para>s that aren't allowed in DocBook

Example

The following included content should illustrate the problem:

I've been an admin and promoter of MoinMoin in the past and currently use a MoinMoin wiki as part of the OpenStack project. I'm also involved with DocBook.

<dcramer AT thingbag DOT net>

/DocBookToMoinMoin

Messages to me

Welcome, David!

About DocBook and moin: we have some docbook related code in moin, but no moin developer uses / maintains it.

-- ThomasWaldmann 2008-12-25 11:01:49

The "Render as DocBook" feature is very impressive and meets a longstanding need for pubs groups that use DocBook or other XML formats. Now we can have developers write up content in the wiki and do a quick conversion to our format, DocBook, for further editing. The tedious application of markup is mostly gone and we can focus on adding value to the content. Once we run it though our xsls and fo renderer, the html and pdf output has the right look and feel just like all our other content. I had investigated "Render as DocBook" when I was at 1.5.x, but the DocBook it produced was broken in ways I couldn't easily fix with xslt post processing. Now it produces very clean DocBook.

Another direction I would like to see this taken is to add actions/formatters to generate the DocBook and further process it into other outputs. I can do this right now just by having my doc build script grab the docbook verison of the page and xslt it to my liking, but having it integrated into the wiki as an action would improve the usabiity.

  • Make pdfs of higher quality than is currently possible with the macros based on htmldoc. One feature the DocBook xsls have is to automatically break lines in code listings at a configurable list of characters and add a arrow to indicate that the line has been broken for typographical reasons. This would avoid the situation where a code listing that looks fine in html, but runs off the side of the page in the pdf. There is an open source fo renderer, Apache fop, that can take the XML and turn it into a pdf.

  • Generate help sets from a wiki page (or set of pages Included into one page). The xsls can turn it into something like this: http://snapshots.docbook.org/xsl/webhelp/docs/content/index.html So then your wiki is a help authoring tool too :-)

  • In addition to being able to use the Include macro to make a big page out of smaller pages, and then generate a book from that, you could create a "map" page that defines a table of contents of other pages. These other pages could be collected in a book. One advanage over the Include() method is that headings would automatically be adjusted to the appropriate level for their place in the tree. If you had created something as an h2 in moinmoin, and then wanted to use it as an h4, the xsls would do the work.

I have one problem. For me, Render as DocBook fails if the Include() macro is used, even in a very simple test. I notice that "Render as DocBook" does fine on the moinmoin.in wiki. I did see this bug, MoinMoinBugs/RenderAsDocbookFailedForPageWithTitlesonlyIncludeMacro, but it doesn't apply to my situation. I'm not using titlesonly. I've attached TestPage.html to show what happens when I Render as DocBook a page with includes.

I have one thing I'm going to try before I post a question about this to the list. I saw some weird stuff after I installed 4suite and I want to have our IT guy look into that.

-- DavidCramer 2008-12-26 18:10:16


Test that proves "Render as DocBook" works with Include on this wiki:

Another test:

A list

  • Foo
  • Bar
  • DocBook

  • Baz
  • Wooga
  • DocBook

  • Foo again

This page has this in the render as docbook. Note the nested paras:

{{{<para>

At <ulink url="http://www.motive.com">Motive</ulink> , we use moinmoin on in our pubs group to collaborate on various internal things and our developers use it to write design docs. I'm also involved with <ulink url="http://docbook.org/wiki/moin.cgi/DavidCramer">DocBook</ulink> . </para>

<ulink url="mailto:"></ulink> </para> </para>}}}

Details

MoinMoin Version

OS and Version

Python Version

Server Setup

Server Details

Workaround

Discussion

Plan


CategoryMoinMoinBugFixed

MoinMoin: MoinMoinBugs/IncludeMacroBreaksRenderAsDocBook (last edited 2008-03-13 10:05:41 by MikkoVirkkilä)