Skip to content

Commit 6c8acda

Browse files
committed
Added setting for usage of calss in title
1 parent c5c293d commit 6c8acda

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

crengine/src/docxfmt.cpp

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#define DOCX_CRENGINE_IN_PAGE_FOOTNOTES 1
1313
// build FB2 DOM, comment out to build HTML DOM
1414
#define DOCX_FB2_DOM_STRUCTURE 1
15+
//If true <title class="hx"><p>...</p></title> else <title><hx>..</hx></title>
16+
#define DOCX_USE_CLASS_FOR_HEADING true
1517

1618
/// known docx items name and identifier
1719
struct item_def_t {
@@ -903,8 +905,8 @@ class docx_titleHandler
903905
class docx_fb2TitleHandler : public docx_titleHandler
904906
{
905907
public:
906-
docx_fb2TitleHandler(ldomDocumentWriter *writer, docxImportContext *context) :
907-
docx_titleHandler(writer, context, true)
908+
docx_fb2TitleHandler(ldomDocumentWriter *writer, docxImportContext *context, bool useClassName) :
909+
docx_titleHandler(writer, context, useClassName)
908910
{}
909911
void onBodyStart();
910912
void onTitleStart(int level, bool noSection = false);
@@ -2317,7 +2319,7 @@ bool ImportDocXDocument( LVStreamRef stream, ldomDocument * doc, LVDocViewCallba
23172319

23182320
#ifdef DOCX_FB2_DOM_STRUCTURE
23192321
//Two options when dealing with titles: (FB2|HTML)
2320-
docx_fb2TitleHandler titleHandler(&writer, &importContext); //<section><title class=hx">..</title></section>
2322+
docx_fb2TitleHandler titleHandler(&writer, &importContext, DOCX_USE_CLASS_FOR_HEADING); //<section><title>..</title></section>
23212323
#else
23222324
docx_titleHandler titleHandler(&writer, &importContext); //<hx>..</hx>
23232325
#endif
@@ -3124,17 +3126,27 @@ void docx_fb2TitleHandler::onTitleStart(int level, bool noSection)
31243126
closeSection(m_titleLevel - level + 1);
31253127
openSection(level);
31263128
m_writer->OnTagOpen(L"", L"title");
3127-
lString16 className = cs16("h") + lString16::itoa(level);
3128-
m_writer->OnAttribute(L"", L"class", className.c_str());
3129-
m_writer->OnTagBody();
3130-
m_writer->OnTagOpen(L"", L"p");
3129+
lString16 headingName = cs16("h") + lString16::itoa(level);
3130+
if( m_useClassName ) {
3131+
m_writer->OnAttribute(L"", L"class", headingName.c_str());
3132+
m_writer->OnTagBody();
3133+
m_writer->OnTagOpen(L"", L"p");
3134+
} else {
3135+
m_writer->OnTagBody();
3136+
m_writer->OnTagOpen(L"", headingName.c_str());
3137+
}
31313138
}
31323139
}
31333140

31343141
void docx_fb2TitleHandler::onTitleEnd()
31353142
{
3143+
if( !m_useClassName ) {
3144+
lString16 headingName = cs16("h") + lString16::itoa(m_titleLevel);
3145+
m_writer->OnTagClose(L"", headingName.c_str());
3146+
} else
3147+
m_writer->OnTagClose(L"", L"p");
3148+
31363149
m_writer->OnTagClose(L"", L"title");
3137-
m_writer->OnTagClose(L"", L"p");
31383150
m_hasTitle = true;
31393151
}
31403152

0 commit comments

Comments
 (0)