incubator-jspwiki-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ethan Larson <et...@ethanlarson.net>
Subject Re: Embedding JSPWiki 2.6
Date Sat, 05 Jan 2008 20:41:04 GMT
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?
>>>>
>>>
>
>

Mime
View raw message