]> git.lyx.org Git - lyx.git/blobdiff - src/output_docbook.cpp
Generate the magic label always. We'll need it other times, when we do
[lyx.git] / src / output_docbook.cpp
index a7277259cc0699915aa15613150a9a61679db434..4dc6048d5b92804d5faafe8a25a892c9e93e4c80 100644 (file)
 #include "Layout.h"
 #include "OutputParams.h"
 #include "Paragraph.h"
-#include "paragraph_funcs.h"
 #include "ParagraphList.h"
 #include "ParagraphParameters.h"
 #include "sgml.h"
+#include "Text.h"
 #include "TextClass.h"
 
 #include "support/lassert.h"
-#include "support/convert.h"
 #include "support/debug.h"
 #include "support/lstrings.h"
 
@@ -98,21 +97,22 @@ ParagraphList::const_iterator searchEnvironment(
 ParagraphList::const_iterator makeParagraph(Buffer const & buf,
                                            odocstream & os,
                                            OutputParams const & runparams,
-                                           ParagraphList const & paragraphs,
+                                           Text const & text,
                                            ParagraphList::const_iterator const & pbegin,
                                            ParagraphList::const_iterator const & pend)
 {
+       ParagraphList const & paragraphs = text.paragraphs();
        for (ParagraphList::const_iterator par = pbegin; par != pend; ++par) {
                if (par != pbegin)
                        os << '\n';
                if (buf.params().documentClass().isDefaultLayout(par->layout()) 
                    && par->emptyTag()) {
                        par->simpleDocBookOnePar(buf, os, runparams, 
-                                       outerFont(distance(paragraphs.begin(), par), paragraphs));
+                                       text.outerFont(distance(paragraphs.begin(), par)));
                } else {
                        sgml::openTag(buf, os, runparams, *par);
                        par->simpleDocBookOnePar(buf, os, runparams, 
-                                       outerFont(distance(paragraphs.begin(), par), paragraphs));
+                                       text.outerFont(distance(paragraphs.begin(), par)));
                        sgml::closeTag(os, *par);
                }
        }
@@ -123,9 +123,11 @@ ParagraphList::const_iterator makeParagraph(Buffer const & buf,
 ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
                                              odocstream & os,
                                              OutputParams const & runparams,
-                                             ParagraphList const & paragraphs,
+                                             Text const & text,
                                              ParagraphList::const_iterator const & pbegin,
-                                             ParagraphList::const_iterator const & pend) {
+                                             ParagraphList::const_iterator const & pend)
+{
+       ParagraphList const & paragraphs = text.paragraphs();
        ParagraphList::const_iterator par = pbegin;
 
        Layout const & defaultstyle = buf.params().documentClass().defaultLayout();
@@ -157,7 +159,7 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
                        if (!bstyle.labeltag().empty()) {
                                sgml::openTag(os, bstyle.innertag(), id);
                                sgml::openTag(os, bstyle.labeltag());
-                               sep = par->firstWord(os, runparams) + 1;
+                               sep = par->firstWordDocBook(os, runparams) + 1;
                                sgml::closeTag(os, bstyle.labeltag());
                        }
                        wrapper = defaultstyle.latexname();
@@ -177,21 +179,27 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
                case LATEX_ITEM_ENVIRONMENT: {
                        if (par->params().depth() == pbegin->params().depth()) {
                                sgml::openTag(os, wrapper);
-                               par->simpleDocBookOnePar(buf, os, runparams, outerFont(distance(paragraphs.begin(), par), paragraphs), sep);
+                               par->simpleDocBookOnePar(buf, os, runparams,
+                                       text.outerFont(distance(paragraphs.begin(), par)), sep);
                                sgml::closeTag(os, wrapper);
                                ++par;
                        }
                        else {
                                send = searchEnvironment(par, pend);
-                               par = makeEnvironment(buf, os, runparams, paragraphs, par,send);
+                               par = makeEnvironment(buf, os, runparams, text, par,send);
                        }
                        break;
                }
                case LATEX_PARAGRAPH:
                        send = searchParagraph(par, pend);
-                       par = makeParagraph(buf, os, runparams, paragraphs, par,send);
+                       par = makeParagraph(buf, os, runparams, text, par,send);
                        break;
-               default:
+               case LATEX_LIST_ENVIRONMENT:
+               case LATEX_BIB_ENVIRONMENT:
+               case LATEX_COMMAND:
+                       // FIXME This means that we are just skipping any paragraph that
+                       // isn't implemented above, and this includes lists.
+                       ++par;
                        break;
                }
 
@@ -236,10 +244,11 @@ ParagraphList::const_iterator makeEnvironment(Buffer const & buf,
 ParagraphList::const_iterator makeCommand(Buffer const & buf,
                                          odocstream & os,
                                          OutputParams const & runparams,
-                                         ParagraphList const & paragraphs,
+                                         Text const & text,
                                          ParagraphList::const_iterator const & pbegin,
                                          ParagraphList::const_iterator const & pend)
 {
+       ParagraphList const & paragraphs = text.paragraphs();
        ParagraphList::const_iterator par = pbegin;
        Layout const & bstyle = par->layout();
 
@@ -257,7 +266,8 @@ ParagraphList::const_iterator makeCommand(Buffer const & buf,
 
        // Opend inner tag and  close inner tags
        sgml::openTag(os, bstyle.innertag());
-       par->simpleDocBookOnePar(buf, os, runparams,  outerFont(distance(paragraphs.begin(), par), paragraphs));
+       par->simpleDocBookOnePar(buf, os, runparams,
+               text.outerFont(distance(paragraphs.begin(), par)));
        sgml::closeTag(os, bstyle.innertag());
        os << '\n';
 
@@ -269,18 +279,18 @@ ParagraphList::const_iterator makeCommand(Buffer const & buf,
                switch (style.latextype) {
                case LATEX_COMMAND: {
                        send = searchCommand(par, pend);
-                       par = makeCommand(buf, os, runparams, paragraphs, par,send);
+                       par = makeCommand(buf, os, runparams, text, par,send);
                        break;
                }
                case LATEX_ENVIRONMENT:
                case LATEX_ITEM_ENVIRONMENT: {
                        send = searchEnvironment(par, pend);
-                       par = makeEnvironment(buf, os, runparams, paragraphs, par,send);
+                       par = makeEnvironment(buf, os, runparams, text, par,send);
                        break;
                }
                case LATEX_PARAGRAPH:
                        send = searchParagraph(par, pend);
-                       par = makeParagraph(buf, os, runparams, paragraphs, par,send);
+                       par = makeParagraph(buf, os, runparams, text, par,send);
                        break;
                default:
                        break;
@@ -295,11 +305,12 @@ ParagraphList::const_iterator makeCommand(Buffer const & buf,
 } // end anonym namespace
 
 
-void docbookParagraphs(ParagraphList const & paragraphs,
+void docbookParagraphs(Text const & text,
                       Buffer const & buf,
                       odocstream & os,
                       OutputParams const & runparams)
 {
+       ParagraphList const & paragraphs = text.paragraphs();
        ParagraphList::const_iterator par = paragraphs.begin();
        ParagraphList::const_iterator pend = paragraphs.end();
 
@@ -322,18 +333,18 @@ void docbookParagraphs(ParagraphList const & paragraphs,
                switch (style.latextype) {
                case LATEX_COMMAND: {
                        send = searchCommand(par, pend);
-                       par = makeCommand(buf, os, runparams, paragraphs, par,send);
+                       par = makeCommand(buf, os, runparams, text, par,send);
                        break;
                }
                case LATEX_ENVIRONMENT:
                case LATEX_ITEM_ENVIRONMENT: {
                        send = searchEnvironment(par, pend);
-                       par = makeEnvironment(buf, os, runparams, paragraphs, par,send);
+                       par = makeEnvironment(buf, os, runparams, text, par,send);
                        break;
                }
                case LATEX_PARAGRAPH:
                        send = searchParagraph(par, pend);
-                       par = makeParagraph(buf, os, runparams, paragraphs, par,send);
+                       par = makeParagraph(buf, os, runparams, text, par,send);
                        break;
                default:
                        break;