gwtwiki - это проект на Java, предоставляющий API, для преобразования Wiki разметки в html. Основан он на движке Bliki engine.
Несколько полезных ссылок:
- Домашняя страница проекта gwtwiki. Java Wikipedia API (Bliki engine).
- Захотелось попробовать, пожалуста - http://w-i-k-i.appspot.com/
API очень простое, но вот документация скудновата. Так как код написан хорошо, то заглянув в исходники, можно разобраться с любым функционалом. Хочу сэкономить ваше время и раcказать как быстро расширить движок своими wiki тегами.
Создание Wiki тег
Основой для моего wiki тега возьму NowikiTag. Все что вам нужно, так это переопределить метод renderHTML.
Для того чтобы движок использовал наш wiki тег, необходимо его добавить в конфигурацию. Пишем наш класс конфигурации.
Преобразование wiki разметки в html
Все кирпичики готовы, теперь можно использовать:
Несколько полезных ссылок:
- Домашняя страница проекта gwtwiki. Java Wikipedia API (Bliki engine).
- Захотелось попробовать, пожалуста - http://w-i-k-i.appspot.com/
API очень простое, но вот документация скудновата. Так как код написан хорошо, то заглянув в исходники, можно разобраться с любым функционалом. Хочу сэкономить ваше время и раcказать как быстро расширить движок своими wiki тегами.
Создание Wiki тег
Основой для моего wiki тега возьму NowikiTag. Все что вам нужно, так это переопределить метод renderHTML.
import info.bliki.htmlcleaner.TagNode;
import info.bliki.wiki.filter.ITextConverter;
import info.bliki.wiki.model.IWikiModel;
import info.bliki.wiki.tags.NowikiTag;
import java.io.IOException;
import java.util.Map;
public class MyTag extends NowikiTag {
public MyTag(){
super("my");
}
@Override
public void renderHTML(ITextConverter converter, Appendable buf, IWikiModel model) throws IOException {
TagNode node = this;
//Список атрибутов, которые присутствуют в теге
Map<String, String> tagAtttributes = node.getAttributes();
//Контент, который находится внутри тега
String content = getBodyString();
buf.append('<p>My wiki tag.</p>');
buf.append('\n');
buf.append('<p>'+content</p>);
buf.append('\n');
}
@Override
public boolean isReduceTokenStack() {
return true;
}
}
Для того чтобы движок использовал наш wiki тег, необходимо его добавить в конфигурацию. Пишем наш класс конфигурации.
import info.bliki.wiki.addon.model.AddonConfiguration;
public class MyConfiguration extends AddonConfiguration {
static {
TAG_TOKEN_MAP.put("my", new MyTag());
}
public static MyConfiguration DEFAULT_CONFIGURATION = new MyConfiguration();
public MyConfiguration() {
}
}
Преобразование wiki разметки в html
Все кирпичики готовы, теперь можно использовать:
import info.bliki.wiki.model.WikiModel;
import info.bliki.wiki.model.Configuration;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
WikiModel wikiModel =
new WikiModel(new MyConfiguration(), "http://www.mywiki.com/wiki/${image}", "http://www.mywiki.com/wiki/${title}");
String htmlStr = wikiModel.render("This is a simple [[Hello World]] <my>Wow!</my>");
System.out.print(htmlStr);
}
}
Весьма полезно.
ОтветитьУдалитьДовольно удобная вещь
ОтветитьУдалитьспасибо, полезно
ОтветитьУдалить