What It's For
This really was a midnight hack, to see how far twiki could go.
But it is somewhat useful, in order to linkify everything. Though the linking, at current, is ridiculously ugly.
Known Issues
- v1310
- not all acronyms are included this time.
- Some on purpose, but some apparently aren't matching with the code gen regex.
- I included only the IETF portions. The rest was too incomplete.
- testing is sporatic and it shows, because IPv6 doesn't seem to match correctly.
- The huge parser problem is recursive matching in endRenderingHandler; example:
- XYZ which renders to "{a href="..."}blah ABC blah{/a}" will destroy the anchor when the ABC match is expanded.
- Only known alternative is to use line-by-line matching?? which would be waaay too slow.
- Well the other alternative is to require surrounding markup, i.e. whitespace doesn't cut it.
- this version uses a comma in front, and I didn't check to see if that conflicts with anything else.
- Linkification on the form
fails for any rfc docnum less than 1000 (i.e. likely need to remove zero padding)
To Do List for Future Versions
- The interface bites. The goal: to provide info & links while preserving the visual rendering, i.e. the only action occurs with onmouseover.
- an alternative is javascript onmouseover expanding menu. (Anyone have suggestions? or code? please?)
- an alternative is to use title (but that won't allow multiple links)
- alternative is to use stuff from ToolTipPlugin
- Need to clean up the "auto-summarize" part of the code gen tool, so summaries are displayed.
- package the code generator as part of the plugin.
How It Works
Below is the regex for matching acronyms in RFC titles.
It runs on the "active-rfc" web page at ietf.org.
The rest of the implementation should be obvious.
while (s/
\b
(
# (
# find 'IP' through 'ABBREV'
([A-Z]{2,7})
|
# find 'L2TP' or 'A2B'
([A-Z]{1,7}\d[A-Z]{1,7})
|
# find WebDAV through IPoA
([A-Z]{1,7}[a-z]{1,7}[A-Z]{1,7})
|
# find abcDEF
([a-z]{1,7}[A-Z]{1,7})
# )
# with optional 'v\d' on end: IPv6 LDAPv2 DHCPv4
# with optional '-ABBREV' on end
# with optional 'abc' on end: IPsec
(
([v]?\d+)*
(-[A-Z]{2,7})*
([a-z]{2,7})*
)
)
//xo) {
$protocols .= $1." ";
}
Comments Appreciated
--
JonathanCline - 28 Aug 2003
checked
.pm into
CVS
--
WillNorris - 19 Jul 2005
I changed the
ModificationPolicy of this extension from
ContactAuthorFirst to
PleaseFeelFreeToModify due to inactivity. Anyone please feel free to work on this extension.
--
PeterThoeny - 2012-12-03