in doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java [441:551]
private void writeFaqs(Sink sink) throws ParseException {
FmlContentParser xdocParser = new FmlContentParser();
sink.head();
sink.title();
sink.text(faqs.getTitle());
sink.title_();
sink.head_();
sink.body();
sink.section1();
sink.anchor("top");
sink.anchor_();
sink.sectionTitle1();
sink.text(faqs.getTitle());
sink.sectionTitle1_();
// ----------------------------------------------------------------------
// Write summary
// ----------------------------------------------------------------------
for (Part part : faqs.getParts()) {
if (StringUtils.isNotEmpty(part.getTitle())) {
sink.paragraph();
sink.inline(SinkEventAttributeSet.Semantics.BOLD);
xdocParser.parse(part.getTitle(), sink);
sink.inline_();
sink.paragraph_();
}
sink.numberedList(Sink.NUMBERING_DECIMAL);
for (Faq faq : part.getFaqs()) {
sink.numberedListItem();
sink.link("#" + faq.getId());
if (StringUtils.isNotEmpty(faq.getQuestion())) {
xdocParser.parse(faq.getQuestion(), sink);
} else {
throw new ParseException("Missing <question> for FAQ '" + faq.getId() + "'");
}
sink.link_();
sink.numberedListItem_();
}
sink.numberedList_();
}
sink.section1_();
// ----------------------------------------------------------------------
// Write content
// ----------------------------------------------------------------------
for (Part part : faqs.getParts()) {
if (StringUtils.isNotEmpty(part.getTitle())) {
sink.section1();
sink.anchor(part.getId());
sink.anchor_();
sink.sectionTitle1();
xdocParser.parse(part.getTitle(), sink);
sink.sectionTitle1_();
}
sink.definitionList();
for (Iterator<Faq> faqIterator = part.getFaqs().iterator(); faqIterator.hasNext(); ) {
Faq faq = faqIterator.next();
sink.anchor(faq.getId());
sink.anchor_();
sink.definedTerm();
if (StringUtils.isNotEmpty(faq.getQuestion())) {
xdocParser.parse(faq.getQuestion(), sink);
} else {
throw new ParseException("Missing <question> for FAQ '" + faq.getId() + "'");
}
sink.definedTerm_();
sink.definition();
if (StringUtils.isNotEmpty(faq.getAnswer())) {
xdocParser.parse(faq.getAnswer(), sink);
} else {
throw new ParseException("Missing <answer> for FAQ '" + faq.getId() + "'");
}
if (faqs.isToplink()) {
writeTopLink(sink);
}
if (faqIterator.hasNext()) {
sink.horizontalRule();
}
sink.definition_();
}
sink.definitionList_();
if (StringUtils.isNotEmpty(part.getTitle())) {
sink.section1_();
}
}
sink.body_();
}