/** * {@inheritDoc} * * @see org.xwiki.rendering.block.FatherBlock#before(org.xwiki.rendering.listener.Listener) */ public void before(Listener listener) { listener.beginHeader(getLevel(), getId(), getParameters()); }
/** * {@inheritDoc} * * @see org.xwiki.rendering.block.FatherBlock#after(org.xwiki.rendering.listener.Listener) */ public void after(Listener listener) { listener.endHeader(getLevel(), getId(), getParameters()); } }
/** * Filter the headers from a document XDOM based on xwiki.section.depth property from xwiki.cfg file. * * @return the filtered headers */ private List<HeaderBlock> getFilteredHeaders() { List<HeaderBlock> filteredHeaders = new ArrayList<HeaderBlock>(); // get the headers List<HeaderBlock> headers = getXDOM().getChildrenByType(HeaderBlock.class, true); // get the maximum header level int sectionDepth = 2; XWikiContext context = getXWikiContext(); if (context != null) { sectionDepth = (int) context.getWiki().getSectionEditingDepth(); } // filter the headers for (HeaderBlock header : headers) { if (header.getLevel().getAsInt() <= sectionDepth) { filteredHeaders.add(header); } } return filteredHeaders; }
/** * @return the sections in the current document * @throws XWikiException */ public List<DocumentSection> getSections() throws XWikiException { if (is10Syntax()) { return getSections10(); } else { List<DocumentSection> splitSections = new ArrayList<DocumentSection>(); List<HeaderBlock> headers = getFilteredHeaders(); int sectionNumber = 1; for (HeaderBlock header : headers) { // put -1 as index since there is no way to get the position of the header in the source int documentSectionIndex = -1; // Need to do the same thing than 1.0 content here String documentSectionLevel = StringUtils.repeat("1.", header.getLevel().getAsInt() - 1) + "1"; DocumentSection docSection = new DocumentSection(sectionNumber++, documentSectionIndex, documentSectionLevel, renderXDOM(new XDOM(header.getChildren()), getSyntax())); splitSections.add(docSection); } return splitSections; } }
int sectionLevel = header.getLevel().getAsInt(); for (int level = 1; level < sectionLevel && blocks.size() == 1 && blocks.get(0) instanceof SectionBlock; ++level) { blocks = blocks.get(0).getChildren();
HeaderBlock heading = blocks.get(0); if (heading.getLevel().getAsInt() <= displayConfiguration.getTitleHeadingDepth()) { XDOM headingXDOM = new XDOM(Collections.<Block> singletonList(heading)); try {
public String extractTitle() { String title = ""; try { if (is10Syntax()) { title = extractTitle10(); } else { List<HeaderBlock> blocks = getXDOM().getChildrenByType(HeaderBlock.class, true); if (blocks.size() > 0) { HeaderBlock header = blocks.get(0); if (header.getLevel().compareTo(HeaderLevel.LEVEL2) <= 0) { XDOM headerXDOM = new XDOM(Collections.<Block> singletonList(header)); // transform TransformationContext context = new TransformationContext(headerXDOM, getSyntax()); Utils.getComponent(TransformationManager.class).performTransformations(headerXDOM, context); // render Block headerBlock = headerXDOM.getChildren().get(0); if (headerBlock instanceof HeaderBlock) { title = renderXDOM(new XDOM(headerBlock.getChildren()), Syntax.XHTML_1_0); } } } } } catch (Exception e) { // Don't stop when there's a problem rendering the title. } return title; }
if (header.getLevel().getAsInt() <= titleHeaderDepth) { XDOM headerXDOM = new XDOM(Collections.<Block> singletonList(header));
Block currentBlock = null; for (HeaderBlock headerBlock : headers) { int headerLevel = headerBlock.getLevel().getAsInt();
int l = baseLevel + header.getLevel().getAsInt(); HeaderBlock nheader = new HeaderBlock( header.getChildren(),
HeaderBlock header = rootSection.getHeaderBlock(); if (header != null) { parameters.start = header.getLevel().getAsInt() + 1;