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
31 public class SectionBlockParser
32 implements BlockParser
33 {
34
35 public boolean accept( String line, ByLineSource source )
36 {
37 if ( line.startsWith( "h1." ) )
38 {
39 return true;
40 }
41 else if ( line.startsWith( "h2." ) )
42 {
43 return true;
44 }
45 else if ( line.startsWith( "h3." ) )
46 {
47 return true;
48 }
49 else if ( line.startsWith( "h4." ) )
50 {
51 return true;
52 }
53 else if ( line.startsWith( "h5." ) )
54 {
55 return true;
56 }
57
58 return false;
59 }
60
61
62 public Block visit( String line, ByLineSource source )
63 throws ParseException
64 {
65 int level = Integer.parseInt( Character.toString( line.charAt( 1 ) ) );
66
67 String title = line.substring( 3 ).trim();
68
69 BlockParser headingParser = new SectionBlockParser();
70 BlockParser figureParser = new FigureBlockParser();
71 BlockParser[] subparsers = new BlockParser[] { headingParser, figureParser };
72
73 return new SectionBlock( new ParagraphBlockParser( subparsers ).visit( title, source, false ), level );
74 }
75 }