📄 htmlutil.cpp
字号:
// We're putting everything into the section file wxFprintf(Sections, _T("<A NAME=\"%s\"></A>"), topicName); wxFprintf(Sections, _T("\n<H3>")); OutputCurrentSection(); wxFprintf(Sections, _T("</H3>\n"));/* TODO: where do we put subsubsection contents entry - indented, with subsection entries? SetCurrentOutput(SectionContentsFD); wxFprintf(SectionContentsFD, "<A HREF=\"#%s\">", topicName); OutputCurrentSection(); TexOutput(_T("</A><BR>"));*/ if (htmlWorkshopFiles) HTMLWorkshopAddToContents(2, topicName, SectionsName); SetCurrentOutput(Sections); } // Add this section title to the list of keywords if (htmlIndex) { OutputCurrentSectionToString(wxTex2RTFBuffer); AddKeyWordForTopic(topicName, wxTex2RTFBuffer, currentFileName); } } } break; } case ltFUNC: case ltPFUNC: { if ( !combineSubSections ) SetCurrentOutput(Subsections); else SetCurrentOutput(Sections); if (start) { } else { } break; } case ltCLIPSFUNC: { if ( !combineSubSections ) SetCurrentOutput(Subsections); else SetCurrentOutput(Sections); if (start) { } else { } break; } case ltMEMBER: { if ( !combineSubSections ) SetCurrentOutput(Subsections); else SetCurrentOutput(Sections); if (start) { } else { } break; } case ltVOID:// if (start)// TexOutput(_T("<B>void</B>")); break; case ltHARDY: if (start) TexOutput(_T("HARDY")); break; case ltWXCLIPS: if (start) TexOutput(_T("wxCLIPS")); break; case ltAMPERSAND: if (start) TexOutput(_T("&")); break; case ltSPECIALAMPERSAND: { if (start) { if (inTabular) { // End cell, start cell TexOutput(_T("</FONT></TD>")); // Start new row and cell, setting alignment for the first cell. if (currentColumn < noColumns) currentColumn ++; wxChar buf[100]; if (TableData[currentColumn].justification == 'c') wxSnprintf(buf, sizeof(buf), _T("\n<TD ALIGN=CENTER>")); else if (TableData[currentColumn].justification == 'r') wxSnprintf(buf, sizeof(buf), _T("\n<TD ALIGN=RIGHT>")); else if (TableData[currentColumn].absWidth) { // Convert from points * 20 into pixels. int points = TableData[currentColumn].width / 20; // Say the display is 100 DPI (dots/pixels per inch). // There are 72 pts to the inch. So 1pt = 1/72 inch, or 100 * 1/72 dots. int pixels = (int)(points * 100.0 / 72.0); wxSnprintf(buf, sizeof(buf), _T("<TD ALIGN=CENTER WIDTH=%d>"), pixels); } else wxSnprintf(buf, sizeof(buf), _T("\n<TD ALIGN=LEFT>")); TexOutput(buf); OutputFont(); } else TexOutput(_T("&")); } break; } case ltBACKSLASHCHAR: { if (start) { if (inTabular) { // End row. In fact, tables without use of \row or \ruledrow isn't supported for // HTML: the syntax is too different (e.g. how do we know where to put the first </TH> // if we've ended the last row?). So normally you wouldn't use \\ to end a row. TexOutput(_T("</TR>\n")); } else TexOutput(_T("<BR>\n")); } break; } case ltROW: case ltRULEDROW: { if (start) { currentColumn = 0; // Start new row and cell, setting alignment for the first cell. wxChar buf[100]; if (TableData[currentColumn].justification == 'c') wxSnprintf(buf, sizeof(buf), _T("<TR>\n<TD ALIGN=CENTER>")); else if (TableData[currentColumn].justification == 'r') wxSnprintf(buf, sizeof(buf), _T("<TR>\n<TD ALIGN=RIGHT>")); else if (TableData[currentColumn].absWidth) { // Convert from points * 20 into pixels. int points = TableData[currentColumn].width / 20; // Say the display is 100 DPI (dots/pixels per inch). // There are 72 pts to the inch. So 1pt = 1/72 inch, or 100 * 1/72 dots. int pixels = (int)(points * 100.0 / 72.0); wxSnprintf(buf, sizeof(buf), _T("<TR>\n<TD ALIGN=CENTER WIDTH=%d>"), pixels); } else wxSnprintf(buf, sizeof(buf), _T("<TR>\n<TD ALIGN=LEFT>")); TexOutput(buf); OutputFont(); } else { // End cell and row // Start new row and cell TexOutput(_T("</FONT></TD>\n</TR>\n")); } break; } // HTML-only: break until the end of the picture (both margins are clear). case ltBRCLEAR: { if (start) TexOutput(_T("<BR CLEAR=ALL>")); break; } case ltRTFSP: // Explicit space, RTF only break; case ltSPECIALTILDE: { if (start) { #if (1) // if(inVerbatim) TexOutput(_T("~")); #else TexOutput(_T(" ")); #endif } break; } case ltINDENTED : { if ( start ) TexOutput(_T("<UL><UL>\n")); else TexOutput(_T("</UL></UL>\n")); break; } case ltITEMIZE: case ltENUMERATE: case ltDESCRIPTION:// case ltTWOCOLLIST: { if (start) { indentLevel ++; int listType; if (macroId == ltENUMERATE) listType = LATEX_ENUMERATE; else if (macroId == ltITEMIZE) listType = LATEX_ITEMIZE; else listType = LATEX_DESCRIPTION; itemizeStack.Insert(new ItemizeStruc(listType)); switch (listType) { case LATEX_ITEMIZE: TexOutput(_T("<UL>\n")); break; case LATEX_ENUMERATE: TexOutput(_T("<OL>\n")); break; case LATEX_DESCRIPTION: default: TexOutput(_T("<DL>\n")); break; } } else { indentLevel --; if (itemizeStack.GetFirst()) { ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.GetFirst()->GetData(); switch (struc->listType) { case LATEX_ITEMIZE: TexOutput(_T("</UL>\n")); break; case LATEX_ENUMERATE: TexOutput(_T("</OL>\n")); break; case LATEX_DESCRIPTION: default: TexOutput(_T("</DL>\n")); break; } delete struc; delete itemizeStack.GetFirst(); } } break; } case ltTWOCOLLIST : { if ( start ) TexOutput(_T("\n<TABLE>\n")); else { TexOutput(_T("\n</TABLE>\n")); // DHS TwoColWidthA = -1; TwoColWidthB = -1; } break; } case ltPAR: { if (start) TexOutput(_T("<P>\n")); break; }/* For footnotes we need to output the text at the bottom of the page and * insert a reference to it. Is it worth the trouble... case ltFOOTNOTE: case ltFOOTNOTEPOPUP: { if (start) { TexOutput(_T("<FN>")); } else TexOutput(_T("</FN>")); break; }*/ case ltVERB: { if (start) TexOutput(_T("<TT>")); else TexOutput(_T("</TT>")); break; } case ltVERBATIM: { if (start) { wxChar buf[100]; wxSnprintf(buf, sizeof(buf), _T("<PRE>\n")); TexOutput(buf); } else TexOutput(_T("</PRE>\n")); break; } case ltCENTERLINE: case ltCENTER: { if (start) { TexOutput(_T("<CENTER>")); } else TexOutput(_T("</CENTER>")); break; } case ltFLUSHLEFT: {/* if (start) { TexOutput(_T("{\\ql ")); } else TexOutput(_T("}\\par\\pard\n"));*/ break; } case ltFLUSHRIGHT: {/* if (start) { TexOutput(_T("{\\qr ")); } else TexOutput(_T("}\\par\\pard\n"));*/ break; } case ltSMALL: { if (start) { // Netscape extension TexOutput(_T("<FONT SIZE=2>")); } else TexOutput(_T("</FONT>")); break; } case ltTINY: { if (start) { // Netscape extension TexOutput(_T("<FONT SIZE=1>")); } else TexOutput(_T("</FONT>")); break; } case ltNORMALSIZE: { if (start) { // Netscape extension TexOutput(_T("<FONT SIZE=3>")); } else TexOutput(_T("</FONT>")); break; } case ltlarge: { if (start) { // Netscape extension TexOutput(_T("<FONT SIZE=4>")); } else TexOutput(_T("</FONT>")); break; } case ltLarge: { if (start) { // Netscape extension TexOutput(_T("<FONT SIZE=5>")); } else TexOutput(_T("</FONT>")); break; } case ltLARGE: { if (start) { // Netscape extension TexOutput(_T("<FONT SIZE=6>")); } else TexOutput(_T("</FONT>")); break; } case ltBFSERIES: case ltTEXTBF: case ltBF: { if (start) { TexOutput(_T("<B>")); } else TexOutput(_T("</B>")); break; } case ltITSHAPE: case ltTEXTIT: case ltIT: { if (start) { TexOutput(_T("<I>")); } else TexOutput(_T("</I>")); break; } case ltEMPH: case ltEM: { if (start) { TexOutput(_T("<EM>")); } else TexOutput(_T("</EM>")); break; } case ltUNDERLINE: { if (start) { TexOutput(_T("<UL>")); } else TexOutput(_T("</UL>")); break; } case ltTTFAMILY: case ltTEXTTT: case ltTT: { if (start) { TexOutput(_T("<TT>")); } else TexOutput(_T("</TT>")); break; } case ltCOPYRIGHT: { if (start) TexOutput(_T("©"), true); break; } case ltREGISTERED: { if (start) TexOutput(_T("®"), true); break; } // Arrows case ltLEFTARROW: { if (start) TexOutput(_T("<--")); break; } case ltLEFTARROW2: { if (start) TexOutput(_T("<==")); break; } case ltRIGHTARROW: { if (start) TexOutput(_T("-->")); break; } case ltRIGHTARROW2: { if (start) TexOutput(_T("==>")); break; } case ltLEFTRIGHTARROW: { if (start) TexOutput(_T("<-->")); break; } case ltLEFTRIGHTARROW2: { if (start) TexOutput(_T("<==>")); break; }/* case ltSC: { break; }*/ case ltITEM: { if (!start) { wxNode *node = itemizeStack.GetFirst(); if (node) { ItemizeStruc *struc = (ItemizeStruc *)node->GetData(); struc->currentItem += 1; if (struc->listType == LATEX_DESCRIPTION) { if (descriptionItemArg) { TexOutput(_T("<DT> ")); TraverseChildrenFromChunk(descriptionItemArg); TexOutput(_T("\n")); descriptionItemArg = NULL; } TexOutput(_T("<DD>")); } else TexOutput(_T("<LI>")); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -