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 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| }
A private instance of a DefaultMarkup is required (line 3).
The initialization of the DefaultMarkup object in the static block (line 6) is required in that way to allow the plugin-framework to create a markup instance on start-up.
In line 6 also the name (and markup keyword) is specified as parameter for the DefaultMarkup object, "HelloWorld" in this example.
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);
}
}
