001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *   http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied.  See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019package org.apache.maven.doxia.module.apt;
020
021import org.apache.commons.lang3.StringUtils;
022import org.apache.maven.doxia.markup.TextMarkup;
023
024/**
025 * This interface defines all markups and syntaxes used by the <b>APT</b> format.
026 *
027 * @see <a href="https://maven.apache.org/doxia/references/apt-format.html">https://maven.apache.org/doxia/references/apt-format.html</a>
028 * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
029 * @since 1.0
030 */
031@SuppressWarnings("checkstyle:interfaceistype")
032public interface AptMarkup extends TextMarkup {
033    // ----------------------------------------------------------------------
034    // Markup separators
035    // ----------------------------------------------------------------------
036
037    /** APT backslash markup char: '\\' */
038    char BACKSLASH = '\\';
039
040    /** APT comment markup char: '~' */
041    char COMMENT = '~';
042
043    /** APT numbering decimal markup char: '1' */
044    char NUMBERING = '1';
045
046    /** APT numbering lower alpha markup char: 'a' */
047    char NUMBERING_LOWER_ALPHA_CHAR = 'a';
048
049    /** APT numbering lower roman markup char: 'i' */
050    char NUMBERING_LOWER_ROMAN_CHAR = 'i';
051
052    /** APT numbering upper alpha markup char: 'A' */
053    char NUMBERING_UPPER_ALPHA_CHAR = 'A';
054
055    /** APT numbering upper roman markup char: 'I' */
056    char NUMBERING_UPPER_ROMAN_CHAR = 'I';
057
058    /** APT page break markup char: '\f' */
059    char PAGE_BREAK = '\f';
060
061    /** APT percent markup char: '%' */
062    char PERCENT = '%';
063
064    /** APT tab markup char: '\t' */
065    char TAB = '\t';
066
067    // ----------------------------------------------------------------------
068    // Markup syntax
069    // ----------------------------------------------------------------------
070
071    /** Syntax for the anchor end: "}" */
072    String ANCHOR_END_MARKUP = String.valueOf(RIGHT_CURLY_BRACKET);
073
074    /** Syntax for the anchor start: "{" */
075    String ANCHOR_START_MARKUP = String.valueOf(LEFT_CURLY_BRACKET);
076
077    /** Syntax for the bold style end: "&gt;&gt;" */
078    String BOLD_END_MARKUP = StringUtils.repeat(String.valueOf(GREATER_THAN), 2);
079
080    /** Syntax for the bold style start: "&lt;&lt;" */
081    String BOLD_START_MARKUP = StringUtils.repeat(String.valueOf(LESS_THAN), 2);
082
083    /** Syntax for the verbatim source start: "+------+" */
084    String VERBATIM_SOURCE_START_MARKUP = PLUS + StringUtils.repeat(String.valueOf(MINUS), 6) + PLUS;
085
086    /** Syntax for the header start: " -----" */
087    String HEADER_START_MARKUP = SPACE + StringUtils.repeat(String.valueOf(MINUS), 5);
088
089    /** Syntax for the horizontal rule: "========" */
090    String HORIZONTAL_RULE_MARKUP = StringUtils.repeat(String.valueOf(EQUAL), 8);
091
092    /** Syntax for the italic style end: "&gt;" */
093    String ITALIC_END_MARKUP = String.valueOf(GREATER_THAN);
094
095    /** Syntax for the italic style start: "&lt;" */
096    String ITALIC_START_MARKUP = String.valueOf(LESS_THAN);
097
098    /** Syntax for the link end: "}}" */
099    String LINK_END_MARKUP = StringUtils.repeat(String.valueOf(RIGHT_CURLY_BRACKET), 2);
100
101    /** Syntax for the link start: "{{{" */
102    String LINK_START_1_MARKUP = StringUtils.repeat(String.valueOf(LEFT_CURLY_BRACKET), 3);
103
104    /** Syntax for the link start: "}" */
105    String LINK_START_2_MARKUP = String.valueOf(RIGHT_CURLY_BRACKET);
106
107    /** Syntax for the list end: "[]" */
108    String LIST_END_MARKUP = String.valueOf(LEFT_SQUARE_BRACKET) + RIGHT_SQUARE_BRACKET;
109
110    /** Syntax for the list start: "*" */
111    String LIST_START_MARKUP = String.valueOf(STAR);
112
113    /** Syntax for the mono-spaced style end: "&gt;&gt;&gt;" */
114    String MONOSPACED_END_MARKUP = StringUtils.repeat(String.valueOf(GREATER_THAN), 3);
115
116    /** Syntax for the mono-spaced style start: "&lt;&lt;&lt;" */
117    String MONOSPACED_START_MARKUP = StringUtils.repeat(String.valueOf(LESS_THAN), 3);
118
119    /** Syntax for the verbatim start: "------" */
120    String VERBATIM_START_MARKUP = StringUtils.repeat(String.valueOf(MINUS), 6);
121
122    /** Syntax for the non breaking space: "\ " */
123    String NON_BREAKING_SPACE_MARKUP = String.valueOf(BACKSLASH) + SPACE;
124
125    /** Syntax for the page break: "\f" */
126    String PAGE_BREAK_MARKUP = String.valueOf(PAGE_BREAK);
127
128    /** Syntax for the section title start: "*" */
129    String SECTION_TITLE_START_MARKUP = String.valueOf(STAR);
130
131    /** Syntax for the table cell start: "|" */
132    String TABLE_CELL_SEPARATOR_MARKUP = String.valueOf(PIPE);
133
134    /** Syntax for the table column, centered style: "-*" */
135    String TABLE_COL_CENTERED_ALIGNED_MARKUP = StringUtils.repeat(String.valueOf(MINUS), 2) + STAR;
136
137    /** Syntax for the table column, left style: "-+" */
138    String TABLE_COL_LEFT_ALIGNED_MARKUP = StringUtils.repeat(String.valueOf(MINUS), 2) + PLUS;
139
140    /** Syntax for the table column, right style: "-:" */
141    String TABLE_COL_RIGHT_ALIGNED_MARKUP = StringUtils.repeat(String.valueOf(MINUS), 2) + COLON;
142
143    /** Syntax for the table row end: "|" */
144    String TABLE_ROW_SEPARATOR_MARKUP = String.valueOf(PIPE);
145
146    /** Syntax for the table row start: "*--" */
147    String TABLE_ROW_START_MARKUP = STAR + StringUtils.repeat(String.valueOf(MINUS), 2);
148
149    /** Syntax for the verbatim source end: "+------+" */
150    String VERBATIM_SOURCE_END_MARKUP = VERBATIM_SOURCE_START_MARKUP;
151
152    /** Syntax for the verbatim end: "------" */
153    String VERBATIM_END_MARKUP = VERBATIM_START_MARKUP;
154}