incubator-jspwiki-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christophe Dupriez" <>
Subject RE: aliases?
Date Thu, 03 Jul 2008 14:46:15 GMT
Hi Bob!

I identified the same need and I implemented it extending the "get variable value" mechanism.
You can find the discussion and the source code here:

The idea was to define aliases in and to be able to "call" them within
a text with a relatively simple sequence:

My thought now is that what I really need is a "page type" where there are commands added
before/after the Wiki page content, depending on page type.

For instance, in
I have hundreds of "Cases" referring to thousands "Procédés", sorted by "Circonstances"
and "Operandes" and "Operations": pages of a same type ("Cases" for instance) are all needing
the same prefixes/postfixes like:

[{ReferringPagesPlugin include='Procédé*' before='!!' after='%n[{InsertPage section=2 page=%p}]%n----%n'}]

[{ReferringPagesPlugin title='!Cité par:%n' exclude='Main,LeftMenu,Procédé*'}]

I was thinking to use [{$CasesRef$}] in those pages to include those plugins calls. Now, I
would prefer to add a switching mechanism in PageActionsBottom.jsp (suggestion anyone? My
preference would be to base the choice of included plugins on the beginning of the page name).

For instance, in another application, in PageActionsBottom.jsp, I added just before "</wiki:PageExists>":
    <p><wiki:Plugin plugin="ReferringPagesPlugin" args="before='*' after='\n' " /></p>

Any better mechanism that I overlooked ?


-----Original Message-----
From: Bob Paige [] 
Sent: jeudi 3 juillet 2008 15:52
Subject: Re: aliases?

The purpose was to provide a macro capability, but not facility cross-site
scripting attacks. Given that we don't know exactly how it would work, how
do you see it as enabling cross-site scripting?

Perhaps my example was misleading since it included a URL, but isn't this
same thing possible in JSPWiki (through an interwiki link) or by just
including the URL in the page:

[Click here!|]

Also, it seems to me the purpose of interwiki links is to abstract away the
URL necessary to link to the other wiki, not provide security, i.e. it is
really only a shortcut to something the user could already do.

I believe a separate question of mine on this list overlaps with the
macro/alias thing, so I will share my recent research here.

Using the InsertPage plugin (as suggested by someone else on this list) I
thought I could build up a library of useful pieces, similar to the macro
ability discussed in this thread. Unfortunatley, it didn't work as I had
hoped for.

My first test was using the Catagories feature (i.e. the
ReferringPagesPlugin). Knowing that I will have many pages that have related
'Spec' pages, I created a new Wiki page called 'SpecList' that included only
the following:

[{ReferringPagesPlugin include='*Spec' before='*' after='\n\n' }]

These two lines are likely to be replicated all over my wiki, and if in the
future I decide to embellish it a bit, I would like to have them defined in
only one place.

But when I included this page in another one (with InsertPage), it didn't
work. It appears the ReferringPagesPlugin is invoked *before* the InsertPage
plugin, so I get a list of pages that refer to the SpecList page, not the
page I am currently in.

So, InsertPage doesn't work like the macro ability I am describing here, but
does give me hope.

Is it possible to write another plugin similar to InsertPage (call it
'MacroPlugin') that inserts the contents of another page *before* any
contained plugins are invoked?


On Wed, Jul 2, 2008 at 9:41 PM, Andrew Jaquith <>

> Bob, Murray and all --
> While the TiddlyWiki plugin sounds like it is very convenient for users, I
> don't see something like this being part of JSPWiki unless the functionality
> is carefully constrained. In particular, the capability to specify external
> URLs has "cross site scripting" written all over it. ACLs would not be the
> answer, either -- you'd want to create a custom Permission type for it, and
> have the right to use it enshrined in the security policy.
> Andrew
> On Jul 2, 2008, at 5:44 PM, Juan Pablo Santos Rodríguez wrote:
>  Hi Bob,
>> may be interwiki links could help you with aliases? i.e., by default
>> typing
>> [Google:Bob], should be converted to
>> Check both (Interwiki links section, lines 615-650) and
>> regarding the custom footer, as Janne said, you can implement your own
>> PageFilter or extend BasicPageFilter to add your custom markup (overriding
>> preTranslate method, for example). Another way could be using InsertPage
>> plugin, available in the core distro. Initial code and some explanations
>> at
>> cheers,
>> jp
>> 2008/7/2 Murray Altheim <>:
>>  Bob Paige wrote:
>>> [...]
>>>  AliasPlugin is a type of marco feature that allows you to define new
>>>> plugins
>>>> on the fly. For example, I might define an alias called 'google' with a
>>>> value of "$1". Thus, whenever I put in
>>>> the
>>>> wiki markup "<<google jspwiki>>" (which is how you call a plugin
>>>> TiddlyWiki) it will insert "".
>>>> This
>>>> also works with wiki markup; I could use the aliasPlugin to insert wiki
>>>> markup which is then interpreted by the wiki engine.
>>>> As I work on the wiki for my work, I find myself putting the same
>>>> footers
>>>> on
>>>> many pages, for example:
>>>> ----
>>>> !!!Pages referencing me
>>>> [{ReferringPagesPlugin}]
>>>> It would be useful to define a macro that would resolve as this text,
>>>> allowing me to redefine this footer without having to re-edit all the
>>>> pages
>>>> that use it.
>>>> Does such a beast exist? If not, any leads on how to write it?
>>> Bob,
>>> Since aliases need to be global across the entire wiki you'd need a
>>> manager to collect them as well as to flag conflicts (e.g., if a
>>> user creates an alias that already exists, their plugin would fail
>>> and return an error message).
>>> The manager would be a singleton (for the wiki, not the JVM), and
>>> there'd be a plugin to declare aliases. You'd then need some way to
>>> use aliases, probably either a filter or a plugin that would access
>>> the manager and obtain the replacement text.
>>> You could (as with any plugin) restrict the creation of aliases to
>>> certain people via ACL or only authenticated users).
>>> You might look into the TagPlugin (which has a TagManager) as a
>>> model.
>>> I also note that John Volkar has donated an AliasPlugin to the set
>>> of CeryleWikiPlugins
>>> though that doesn't do what you're asking for, just reverse the
>>> current page alias feature available in JSPWiki, i.e., you declare
>>> on the page its own aliases.
>>> Hope that is helpful.
>>> Murray
>>> ...........................................................................
>>> Murray Altheim <murray07 at>                           ===
>>>  =
>>> =
>>>                                     = =
>>> ===
>>> SGML Grease Monkey, Banjo Player, Wantanabe Zen Monk               = =  =
>>> =
>>>    Boundless wind and moon - the eye within eyes,
>>>    Inexhaustible heaven and earth - the light beyond light,
>>>    The willow dark, the flower bright - ten thousand houses,
>>>    Knock at any door - there's one who will respond.
>>>                                    -- The Blue Cliff Record


View raw message