1 package org.apache.maven.doxia.module.confluence.parser;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.doxia.util.ByLineSource;
23 import org.apache.maven.doxia.parser.ParseException;
24
25
26
27
28
29
30 public class SectionBlockParser
31 implements BlockParser
32 {
33
34 public boolean accept( String line, ByLineSource source )
35 {
36 if ( line.startsWith( "h1." ) )
37 {
38 return true;
39 }
40 else if ( line.startsWith( "h2." ) )
41 {
42 return true;
43 }
44 else if ( line.startsWith( "h3." ) )
45 {
46 return true;
47 }
48 else if ( line.startsWith( "h4." ) )
49 {
50 return true;
51 }
52 else if ( line.startsWith( "h5." ) )
53 {
54 return true;
55 }
56
57 return false;
58 }
59
60
61 public Block visit( String line, ByLineSource source )
62 throws ParseException
63 {
64 int level = Integer.parseInt( Character.toString( line.charAt( 1 ) ) );
65
66 String title = line.substring( 3 ).trim();
67
68 BlockParser headingParser = new SectionBlockParser();
69 BlockParser figureParser = new FigureBlockParser();
70 BlockParser[] subparsers = new BlockParser[] { headingParser, figureParser };
71
72 return new SectionBlock( new ParagraphBlockParser( subparsers ).visit( title, source, false ), level );
73 }
74 }