On Tue, Aug 4, 2009 at 9:29 AM, Asiri Rathnayake <[email protected]
> wrote:
>
> The wiki macro bridge has been released with 2.0M2.  ...
>
> If you come across any problems while you are at it, we can improve wiki
> macro bridge :)
>

Thanks for reminding me about the Xwiki macro bridge. Looks great and is a
big improvement over how things were done previously. Your message was
timely as helped me answer one of my big questions about having groovy or
clojure macros available on virtual-wiki setup:
http://platform.xwiki.org/xwiki/bin/view/DevGuide/WikiMacroTutorial

   - Wiki macro authors need to have programming rights
   - Wiki macros can only be defined inside the main wiki, though they can
   be used throughout a farm

I wrote my first macro-bridge macro (see attachment Main.TestMacroBridge.xar
) in groovy in preparation for my experiments with scripting in Clojure. The
hardest thing was finding out that the name of "context" had changed to
"xcontext" for groovy and other JSR-223 languages, whereas velocity (and
WikiMacroTutorial) uses "context". This has been discussed on the lists (
http://markmail.org/message/o2trzrnv5xts6x6v ), and the WikiMacroTutorial
needs updating to reflect the final status & naming-conventions.

My macro is quite simple. but does a lot, taken from here:
http://www.ibm.com/developerworks/java/library/j-pg05199/index.html
Usage: {{weather_by_zip zip=92625 /}}

Code:
...............................
Objects of type XWiki.WikiMacroClass WikiMacroClass 0: weather_by_zip
{{script language=groovy}}
def rss = new XmlSlurper().parseText(("
http://weather.yahooapis.com/forecastrss?p="; +
xcontext.macro.params.zip).toURL().text) println rss.channel.title println
"Sunrise: ${rss.channel.astrono...@sunrise}" println "Sunset:
${rss.channel.astrono...@sunset}" println "Currently:" println "\t" +
rss.channel.item.conditi...@date println "\t" +
rss.channel.item.conditi...@temp println "\t" +
rss.channel.item.conditi...@text {{/script}}

Objects of type XWiki.WikiMacroParameterClass WikiMacroParameterClass 0: zip
...............................

May be you can put it to test by trying to implement your chart macro ;)


It would be more useful to offer all-new
Exhibit<http://www.simile-widgets.org/exhibit/> functionality
with tighter integration into the Xwiki back-end, e.g.
having document/space and other Xwiki "model" information abstractly
available to an Exhibit-based "view/controller" to provide a "faceted views"
presentation of Xwiki documents and contents. FYI, My existing Exhibit
integration with Xwiki demo:
http://nielsmayer.com/xwiki/bin/view/Exhibit/Presidents4 (source:
http://nielsmayer.com/xwiki/bin/download/Exhibit/Presidents4/Presidents4Pkg.xar)

My main commitment right now is an experiment to see if I can get
JSR223-supported Clojure scripting in Xwiki.
This message didn't give me much hope of success right now (
http://groups.google.com/group/clojure/msg/ad811b69d448e3db ) but I'll give
Clojure on Xwiki a try anyways, and revisit later if it's just a matter of
getting more solid JSR223 support for Clojure as development progresses.

Niels
http://nielsmayer.com

Attachment: Main.TestMacroBridge.xar
Description: Binary data

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to