Class TocMacro

java.lang.Object
org.apache.maven.doxia.macro.AbstractMacro
org.apache.maven.doxia.macro.toc.TocMacro
All Implemented Interfaces:
LogEnabled, Macro

@Component(role=Macro.class, hint="toc") public class TocMacro extends AbstractMacro
Macro to display a Table Of Content in a given Sink. The input parameters for this macro are:
section
Display a TOC for the specified section only, or all sections if 0.
Positive int, not mandatory, 0 by default.
fromDepth
Minimal depth of entries to display in the TOC. Sections are depth 1, sub-sections depth 2, etc.
Positive int, not mandatory, 0 by default.
toDepth
Maximum depth of entries to display in the TOC.
Positive int, not mandatory, 5 by default.
For instance, in an APT file, you could write:
%{toc|section=2|fromDepth=2|toDepth=3}
Display a TOC for the second section in the document, including all subsections (depth 2) and sub-subsections (depth 3).
%{toc}
display a TOC with all section and subsections (similar to %{toc|section=0} )
Moreover, you need to write APT link for section to allow anchor, for instance:
 * {SubSection 1}
 
Similarly, in an XDOC file, you could write:
 <macro name="toc">
   <param name="section" value="1" />
   <param name="fromDepth" value="1" />
   <param name="toDepth" value="2" />
 </macro>
 
  • Field Details

    • section

      private int section
      The section to display.
    • fromDepth

      private int fromDepth
      Start depth.
    • toDepth

      private int toDepth
      End depth.
    • DEFAULT_DEPTH

      private static final int DEFAULT_DEPTH
      The default end depth.
      See Also:
  • Constructor Details

    • TocMacro

      public TocMacro()
  • Method Details

    • execute

      public void execute(Sink sink, MacroRequest request) throws MacroExecutionException
      Execute the current macro using the given MacroRequest, and emit events into the given sink.
      Parameters:
      sink - The sink to receive the events.
      request - The corresponding MacroRequest.
      Throws:
      MacroExecutionException - if an error occurred during execution.
    • writeSubSectionN

      private void writeSubSectionN(Sink sink, IndexEntry sectionIndex, int n)
      Parameters:
      sink - The sink to write to.
      sectionIndex - The section index.
      n - The toc depth.
    • getInt

      private static int getInt(MacroRequest request, String parameter, int defaultValue) throws MacroExecutionException
      Parameters:
      request - The MacroRequest.
      parameter - The parameter.
      defaultValue - the default value.
      Returns:
      the int value of a parameter in the request.
      Throws:
      MacroExecutionException - if something goes wrong.