Created
January 10, 2011 13:52
-
-
Save osima/772786 to your computer and use it in GitHub Desktop.
wikiengine test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @Grab(group='radeox', module='radeox', version='1.0-b2') | |
| import java.lang.reflect.Field | |
| import org.radeox.filter.FilterPipe | |
| import org.radeox.engine.BaseRenderEngine | |
| import org.radeox.engine.context.BaseInitialRenderContext | |
| import org.radeox.api.engine.WikiRenderEngine | |
| import org.radeox.api.engine.RenderEngine | |
| import org.radeox.api.engine.context.InitialRenderContext | |
| import org.radeox.api.engine.context.RenderContext | |
| class MyWikiEngine extends BaseRenderEngine implements WikiRenderEngine { | |
| public MyWikiEngine(InitialRenderContext initialRenderContext) { | |
| super(initialRenderContext) | |
| } | |
| public String render(String content){ render(content, initialContext) } | |
| protected void init() { | |
| FilterPipe fp = new FilterPipe(initialContext) | |
| //fp.addFilter( new org.radeox.filter.ListFilter() ) | |
| fp.addFilter( new org.radeox.filter.LinkTestFilter() ) | |
| fp.init() | |
| setFilterPipe( fp ) | |
| } | |
| void setFilterPipe(FilterPipe filterPipe) { | |
| Field field = getClass().getSuperclass().getDeclaredField("fp") | |
| field.setAccessible( true ) | |
| field.set(this, filterPipe) | |
| } | |
| public boolean exists(String name) { | |
| if( name == 'radeox' ) return true | |
| false | |
| } | |
| public boolean showCreate() { true; } | |
| public void appendLink(StringBuffer buffer, String name, String view, String anchor) { | |
| buffer << "<a href=\"${contextPath}${name}#${anchor}\">${view}</a>" | |
| } | |
| public void appendLink(StringBuffer buffer, String name, String view) { | |
| buffer << "<a href=\"${contextPath}/${name}\">${view}</a>" | |
| } | |
| public void appendCreateLink(StringBuffer buffer, String name, String view) { | |
| buffer << "<a href=\"${contextPath}/${name}\">${view}(new)</a>" | |
| } | |
| private String contextPath | |
| String getContextPath(){ | |
| if( contextPath==null ) contextPath='.' | |
| contextPath | |
| } | |
| void setContextPath(String contextPath){ | |
| this.contextPath = contextPath | |
| } | |
| } | |
| class MyContext extends BaseInitialRenderContext { | |
| def engine | |
| RenderEngine getRenderEngine(){ | |
| if( engine == null ) engine = new MyWikiEngine(this) | |
| engine | |
| } | |
| void setContextPath(String contextPath){ | |
| getRenderEngine().setContextPath( contextPath ) | |
| } | |
| String getContextPath(){ | |
| getRenderEngine().getContextPath() | |
| } | |
| } | |
| // | |
| // main | |
| // | |
| def wikitext = ''' | |
| Hello [radeox] ! | |
| Hello [java] ! | |
| ''' | |
| def context = new MyContext() | |
| context.contextPath = 'http://example.com/wiki' | |
| def engine = context.getRenderEngine() | |
| println engine.render(wikitext) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment