in freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/Transform.java [2241:2329]
private int generateHTMLFile()
throws IOException, TemplateException {
SimpleHash dataModel = new SimpleHash(fmConfig.getObjectWrapper());
TOCNode otherTOCNode;
otherTOCNode = currentFileTOCNode;
do {
otherTOCNode = otherTOCNode.getPreviousInTraversarOrder();
} while (!(otherTOCNode == null || otherTOCNode.isFileElement()));
dataModel.put(
VAR_PREVIOUS_FILE_ELEMENT,
otherTOCNode != null ? otherTOCNode.getElement() : null);
otherTOCNode = currentFileTOCNode;
do {
otherTOCNode = otherTOCNode.getNextInTraversarOrder();
} while (!(otherTOCNode == null || otherTOCNode.isFileElement()));
dataModel.put(
VAR_NEXT_FILE_ELEMENT,
otherTOCNode != null ? otherTOCNode.getElement() : null);
otherTOCNode = currentFileTOCNode.getParent();
dataModel.put(
VAR_PARENT_FILE_ELEMENT,
otherTOCNode != null ? otherTOCNode.getElement() : null);
Element curElem = currentFileTOCNode.getElement();
final boolean isTheDocumentElement
= curElem.getParentNode() instanceof Document;
dataModel.put(
VAR_TOC_DISPLAY_DEPTH,
isTheDocumentElement
? maxTOFDisplayDepth : maxMainTOFDisplayDepth);
if (seoMeta != null) {
Map<String, String> seoMetaMap = seoMeta.get("file:" + currentFileTOCNode.getOutputFileName());
if (seoMetaMap == null) {
String id = XMLUtil.getAttribute(currentFileTOCNode.getElement(), "id");
if (id != null) {
seoMetaMap = seoMeta.get(id);
}
}
if (seoMetaMap != null) {
dataModel.put(
VAR_SEO_META_TITLE_OVERRIDE,
seoMetaMap.get(SETTING_SEO_META_KEY_TITLE));
dataModel.put(
VAR_SEO_META_FULL_TITLE_OVERRIDE,
seoMetaMap.get(SETTING_SEO_META_KEY_FULL_TITLE));
dataModel.put(
VAR_SEO_META_DESCRIPTION,
seoMetaMap.get(SETTING_SEO_META_KEY_DESCRIPTION));
}
}
boolean generateDetailedTOC = false;
if (isTheDocumentElement) {
// Find out if a detailed ToC will be useful:
int mainTOFEntryCount = countTOFEntries(
currentFileTOCNode, maxMainTOFDisplayDepth);
if (mainTOFEntryCount != 0 // means, not a single-page output
&& mainTOFEntryCount < tocNodes.size() * 0.75) {
generateDetailedTOC = true;
dataModel.put(
VAR_ALTERNATIVE_TOC_LINK,
FILE_DETAILED_TOC_HTML);
dataModel.put(
VAR_ALTERNATIVE_TOC_LABEL,
"show detailed");
}
}
generateHTMLFile_inner(dataModel, currentFileTOCNode.getOutputFileName());
if (generateDetailedTOC) {
dataModel.put(VAR_PAGE_TYPE, PAGE_TYPE_DETAILED_TOC);
dataModel.put(
VAR_ALTERNATIVE_TOC_LINK,
currentFileTOCNode.getOutputFileName());
dataModel.put(
VAR_ALTERNATIVE_TOC_LABEL,
"show simplified");
generateHTMLFile_inner(dataModel, FILE_DETAILED_TOC_HTML);
return 2;
} else {
return 1;
}
}