Aside from the fact that the PageFilter interface has changed (minor
modifications necessary, you will see when you compile it), you
should be fine. If you are not, please let us know so those can be
documented.
/Janne
On 5 Jan 2008, at 22:41, Ethan Larson wrote:
Thanks again - that worked. Just one other question: will there be
anything different about my filter/plugin setup, or can I follow
the same setup outlined in the documentation?
Cheers,
Ethan
P.S. - Here's my code in case anyone else wants to get this
working. If anyone sees something wrong or a way to optimize it,
please let me know:
public class SimpleJSPWikiRenderer {
protected static WikiEngine sEngine;
protected static WikiContext sContext;
static {
Properties props = new Properties();
props.setProperty(PageManager.PROP_PAGEPROVIDER,
DummyPageProvider.class.getName());
props.setProperty(AuthorizationManager.PROP_AUTHORIZER,
DummyAuthorizer.class.getName());
props.setProperty(AuthenticationManager.PROP_SECURITY, "off");
try {
sEngine = new WikiEngine(props);
sContext = new WikiContext(sEngine, new WikiPage
(sEngine, "dummy"));
}
catch (WikiException e) {
e.printStackTrace();
}
}
public static String render(String wikiMarkup) throws IOException {
// Create new parser and parse the content into a WikiDocument
MarkupParser parser = new JSPWikiMarkupParser(sContext, new
StringReader(wikiMarkup));
WikiDocument doc = parser.parse();
// We now create a new WikiRenderer
WikiRenderer rend = new XHTMLRenderer(sContext, doc);
// Now, do the rendering.
return rend.getString();
}
}
Janne Jalkanen wrote:
Oh, and by the way, it's cleaner to directly hit the
RenderingManager. See the following article for details:
http://www.jspwiki.org/wiki/MarkupParser
/Janne
On Jan 4, 2008, at 08:21 , Ethan Larson wrote:
Ok, I created a dummy page provider and a dummy authorizer and I
got a lot farther. I don't even need a MemoryPageProvider since I
all I need is the output (thanks just the same Florian - it was
instructive). I actually got translated output. The problem is
that I had to modify the source code to do it. I had to comment
out line 532 of WikiEngine:
//m_authorizationManager.initialize( this, props );
As near as I can tell, there's no way to create an authorization
manager that doesn't involve a jspwiki.policy under WEB-INF.
However, since I'm running it as a standalone app, I don't have a
web container and therefore no WEB-INF. I could create this
under the working directory, but I really don't want to put
blank, unused metadata in my app. Is there any way to configure
this such that I can start the authorization manager without a
jspwiki.policy?
On a broader note, I'd be over the moon if this were an easier
process. JSPWiki seems to be the most actively developed and
feature-rich Java wiki there is, and has support for plugins and
filters which I will eventually need. If there were an easy way
to run the wiki translation, complete with plugins and filters,
that didn't involve a web container and any extra memory/disk
usage, it could broaden the usage quite a bit. I've looked at
other java wiki translators out there, and none of them are doing
a good job of the features/active development/ease of standalone
combo (Radeox, Bliki, VQWiki to name a few). Other forum/mailing
list posts confirm there is a demand.
Thanks for all your help,
Ethan
P.S. -- Here's my current code for anyone reading this in the
future:
Properties props = new Properties();
props.setProperty(PageManager.PROP_PAGEPROVIDER,
MyPageProvider.class.getName());
props.setProperty(AuthorizationManager.PROP_AUTHORIZER,
MyAuthorizer.class.getName());
WikiEngine engine = new WikiEngine(props);
WikiContext context = new WikiContext(engine, new WikiPage
(engine, "test"));
System.out.println("output: \n" + engine.textToHTML(context,
"this is a test\n\n* more stuff"));
MyPageProvider and MyAuthorizer are both empty implentations of
the interfaces. Just return an empty List for
MyPageProvider.getAllPages.
Janne Jalkanen wrote:
Yup, the problem is that there needs to be *some* kind of a page
provider, because the system needs to check if e.g. a page
exists or not when it encounters a link. The generated HTML
differs in each case.
A dummy provider will do just fine, e.g. the MemoryPageProvider.
/Janne
On Jan 2, 2008, at 00:23 , Florian Holeczek wrote:
Hi Ethan,
maybe this can help you:
http://www.jspwiki.org/wiki/MemoryPageProvider
Regards,
Florian
The problem with the page directory is that I don't want one.
I will
be managing the input/output of the text myself. I really just
want
to give some wiki markup to the parser and get back html. Is
there
currently a way to do this?