private void writeSubSectionN()

in doxia-core/src/main/java/org/apache/maven/doxia/macro/toc/TocMacro.java [136:171]


    private void writeSubSectionN(Sink sink, IndexEntry sectionIndex, int n) {
        if (fromDepth <= n) {
            sink.listItem();
            sink.link("#" + DoxiaUtils.encodeId(sectionIndex.getId()));
            sink.text(sectionIndex.getTitle());
            sink.link_();
        }

        if (toDepth > n) {
            if (sectionIndex.getChildEntries().size() > 0) {
                if (fromDepth <= n) {
                    sink.list();
                }

                for (IndexEntry subsectionIndex : sectionIndex.getChildEntries()) {
                    if (n == toDepth - 1) {
                        sink.listItem();
                        sink.link("#" + DoxiaUtils.encodeId(subsectionIndex.getId()));
                        sink.text(subsectionIndex.getTitle());
                        sink.link_();
                        sink.listItem_();
                    } else {
                        writeSubSectionN(sink, subsectionIndex, n + 1);
                    }
                }

                if (fromDepth <= n) {
                    sink.list_();
                }
            }
        }

        if (fromDepth <= n) {
            sink.listItem_();
        }
    }