[{TableOfContents}] !!! How to create a new markup KnowWE is designed for the easy introduction of new (e.g., project specific) markups. Therefore, an extra plugin extension point is provided. Further, a markup template is defined that allows to make benefit of existing implementations of parser and autocompletion functionality. We call this template ''[DefaultMarkup]''. The implementation of a new markup based on the DefaultMarkup can be achieved at very low implementation workload. It is recommended to always make use of this template when creating a new markup (except for the very rare cases where it is not suitable). !! Create a new markup derived from default markup The DefaultMarkup has a particular [predefined syntactical structure|DefaultMarkup] that can be coined by a custom keyword and custom annotation. ! Extend Class DefaultMarkupType To create a new markup based on DefaultMarkup, the class ''de.knowwe.kdom.defaultMarkup.DefaultMarkupType'' needs to be extended. The following code snipplet shows a Hello-World extension of DefaultMarkup. {{{ 1| public class HelloWorldMarkup extends DefaultMarkupType { 2| 3| private static final DefaultMarkup MARKUP; 4| 5| static { 6| MARKUP = new DefaultMarkup("HelloWorld"); 7| } 8| 9| public HelloWorldMarkup() { 10| super(MARKUP); 11| } 12|} }}} The initialization of the DefaultMarkup object in the static block is required in that way to allow the plugin-framework to create a markup instance on start-up. ! Add Annotations {{{ public class HelloWorldMarkup extends DefaultMarkupType { public static final String IMAGE_KEY = "image"; private static final DefaultMarkup MARKUP; static { MARKUP = new DefaultMarkup("HelloWorld"); MARKUP.addAnnotation(Image_KEY, false); } public HelloWorldMarkup() { super(MARKUP); } } }}} ! Create a renderer ! Create entry into the plugin.xml !! Create an new general markup %%tags howto %