[pmwiki-users] Free markup character?
Patrick R. Michaud
pmichaud at pobox.com
Wed Apr 5 18:18:37 CDT 2006
On Thu, Apr 06, 2006 at 10:25:50AM +1200, Allister Jenks wrote:
> I want to create a new markup that is very quick to type to style
> individual words (or occasionally a couple of words).
> I tried ;this; and it works fine, but breaks the >><< markup!! Looking at
> my keyboard I can't see any symbols that have not yet been used except for
> "?" (and I thought ";") and am too unfamiliar with regex to work out how
> to create a safe markup. I don't want any more than 2 characters either
> side of the word(s) because I will be using it all over the place. The
> goal is to style the words blue and italic.
By convention PmWiki has always explicitly reserved the '='
character for custom markup sequences.
> Can anybody educate me on why I broke >><< by defining ";", and/or suggest
> a suitable markup I could implement?
> I had Markup("", "inline", "/;(.*?);/", "<span style='font-style:italic;
It's probably not the semicolon that broke the markup...there
appear to be a couple of issues with the rule as written here:
1. Every markup needs a name; I don't know how PmWiki will
react to using "" as a markup name. (I suspect not well at all.)
2. Semicolons occur in lots of places other than markup text.
In particular, the string you're using to replace ";(.*?);"
contains a pair of semicolons itself. Since the replacement
string isn't escaped or preserved in any way, the semicolon
replacement pattern is probably being a bit over-eager and
adding <span> around any pair of semicolons it may happen to find --
even those that are coming from other HTML tags or other markups.
This last point is similar to the reason why it's difficult to do a
markup like /italic/ -- there are a lot of things that
have slashes in them that aren't intended to be italics,
such as urls (http://www.pmwiki.org/wiki/PmWiki), fractions (3/4),
and/or, closing HTML tags such as </b>, </span>, etc.
More information about the pmwiki-users