-The main output routines now more or less work.
+TODO:
+1. The counter patch, and better output for InsetRef.
+2. Better output for citations, meaning better labels. Numerical, as said below,
+ should be easy, and author-year oughtn't to be THAT hard. But it'll need a
+ bit of work.
+3. CSS needs work in several places, mostly floats. Maybe check elyxer on that.
+4. MathML
-Known issues:
-- InsetLine normally appears in a standard environment, which puts <hr /> inside
- <p>, in violation of the DTD. I guess we could close the paragraph and then do
- the <hr />, but isn't there a better solution? There's actually a LyX bug here,
- I think, since a line surely ought not appear in a normal paragraph?
-- The code that manages the nesting of tags is pretty primitive. It needs a lot
- of work.
-
-These insets are basically done, though there are probably issues here and there,
- and there are even some FIXMEs:
- Branch, Collapsable, Footnote, Hyperlink, Label, Line, Note,
- Newline, Newpage, Quotes, Space, SpecialChar
-
-These insets do nothing for XHTML:
- ERT, OptArg, Phantom
These insets work but still need work:
- InsetBox: We need a Length::asHTML() method and the like, but it basically works.
- though the CSS isn't there yet.
+ InsetBibtex: There are a few issues here.
+ - One is that the output is not very nice. This will be solved, though, by
+ a patch of mine I seem to have forgotten to finish. To get output that
+ accorded with the BibTeX style, of course, we'd have to parse the bbl file.
+ I don't know if that's worth it.
+ - Another issue concerns cross-references. At the moment, we simply use the
+ xref information for every entry, rather than listing the xref separately and
+ then referencing it. That should not be terribly hard, but it would take a bit
+ of work.
+ - A third issue concerns the labels. At present, we use the BibTeX key as the
+ citation label. It would not be too hard, I think, to use numerical labels,
+ in the way BibTeX does. To do so, we'd need to move the sorting routine out
+ of InsetBibtex so we could do it before we print the citations. See below.
+ InsetBox: The CSS isn't there yet.
+ InsetCitation: This has two limitations as of 20 XI 2009. The first is that we
+ ignore the citation style and output square brackets, no matter what. The
+ second is that, with BibTeX, we simply use the BibTeX key as the citation
+ string, thus ignoring numerical, author-year, etc. It will not be too hard
+ to make numerical work. To do this, we need to collect information on the
+ used citations, alphabetize them, and then assign numerical labels via the
+ BibTeXInfo::label() method. A similar strategy will work for author-year and
+ the like, but calculating labels will be more complex---unless we just parse
+ the bbl file, which of course is the only fully general solution.
+ InsetFlex: I think this one is OK, but it needs some testing.
+ InsetFloat: This seems to work OK, but it will need testing and tweaking.
+ InsetGraphics: This works in a pretty primitive way, in that it outputs the graphic
+ and appropriate img tag. But we don't yet do any sort of scaling, rotating, and
+ so forth. That won't be hard, since we can just call ImageMagick to do this for
+ us, but appropriate routines will need to be written.
+ InsetRef: At present, we just use the label name as associated text, and put it
+ into square brackets. It'd be nice to be able to do more, but for that we'd need to
+ associate counters with the labels, and we don't have that yet.
+ InsetTabular: Works reasonably well, but we don't do anything with any of the
+ arguments provided for longtable. There are probably other limitations, too,
+ since I'm very much not an expert with tables.
+ InsetTOC: This now works pretty well, but only for the table of contents, not for
+ any other TOC-like lists. Getting those to work shouldn't be too bad, as we can
+ do almost exactly the same thing. That said, though, we might want to do things
+ slightly differently, and have the links target actual *insets*, rather than just
+ target paragraphs. That'd mean doing a bit of work on TocBackend, etc.
-These insets do not work but should be completely straightforward:
- Caption, Flex (uses collapsable)
+Math
+ We have a fair bit of math now working via MathML output, but there are still some
+ isues, and not all the insets work. Here are the ones I know still need work:
+ - AMSArray
+ - Array
+ - Cases
+ - Diff: Code exists, but I do not know if it is right.
+ - Binom (in Frac): None of these tags exist in MathML 2.0. We'll
+ just output a fraction with delimiters.
+ - Lefteqn
+ - MBox: Use <mtext>.
+ - Overset: Use <mover>.
+ - Par?
+ - Phantom: There is some support for this in MathML....
+ - Ref: Needs to be deferred.
+ - Size: Unclear if we want to do anything here, though we could. See
+ lib/symbols for the commands supported, of course.
+ - Space: Needs checking.
+ - SpecialChar: Needs checking.
+ - Split
+ - Stackrel: Use <mover>, probably.
+ - Substack: This is a stack of however many cells, all in a smaller style.
+ Probably do something with <mover>, again.
+ - Tabular: This is more or less a text-like table in math. Probably output it
+ as a table, but set the font.
+ - Underset: Use <munder>.
+ - XArrow: Contents above and below an arrow. Use...?
+ - XYMatrix: Not sure how this differs from ordinary ones.
-These do not yet work and need some attention:
- InsetBibitem: Should be fairly straightforward, in itself, actually.
- InsetBibtex: We should be able to collect the keys of references in
- validate() and then use our parsed information to output some sort of
- bibliography. Formatting is another question, but here again we could
- try parsing the bbl file.
- InsetCitation: I think we'll want to do something here involving reference keys.
- Maybe for the beginning, we should just do everything numerically, but even
- that will need a bit of work. Validation is our friend, presumably.
- InsetCommand: By default does nothing. That may be right?
- InsetExternal: I don't understand these so am not sure what to do.
- InsetFloat: This will need some work, again because I do not really understand
- what these are meant to do. Presumably, we'll just use a div or something, but
- it's not clear what subfloat means, etc.
- InsetGraphics: This should be fairly straightforward, but I'll need to learn a bit
- about export formats, etc, to get it completely right. We'll also want to make
- some use of the params, eg, on width and height. I guess there is also some
- issue about converting the graphics formats?
- InsetInclude: I think we just want to include it, straightforwardly. Probably will
- base this more on the latex() routine, then. Another possibility, maybe with a
- flag of some sort, would be to do it as a separate file, to which we link.
+
+These insets do not work and are not yet scheduled to work:
+ InsetExternal: It may be that this won't be too hard, but I don't understand
+ these so am not sure what to do. For now, it is disabled.
InsetIndex and InsetPrintIndex: An "advanced" case. What really would be cool
would be to collect all of these and then write the index as a series of links
back to the occurrences. But not now.
- InsetInfo: Probably skip it.
- InsetListings: Probably just output it as <pre>.
- InsetMarginal: Fine, but will need CSS.
InsetNomencl and InsetPrintNomencl: Also "advanced".
- InsetRef: Presumably, this is an internal link. But what should the text be, and how
- should we get it? Probably some validation thing again, where labels tell us where
- they are. Alternatively, we could parse the aux file.
- InsetTabular: This shouldn't be too hard, but will need doing.
- InsetTOC: Here again, validation might do the trick, but I'm not sure. Or perhaps some
- kind of post-processing? Another option, maybe the best option, would be just to use
- the information we already have in the TOC.
- InsetVSpace: This will be easy, once we have the Length::asHTML() method.
- InsetWrap: This should be simple enough, probably a div and some CSS, but I'm not sure
- precisely what this is supposed to do.
+
+May need to make use here of TocWidget::itemInset, which should then be moved
+to TocBackend.
MATH
Regarding math, the view seems to be that we should in the first instance just use what