Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.data.standardMacros.glossSub
on glossSub (whatGlossEntry, whatText, whatTarget=nil, anchor=nil, class=nil) {
<<Written by Matt Neuburg, matt@tidbits.com,
<<Here's Matt's original posting that went with this script:
<<Date: 08/17 5:07 PM
<<Received: 08/17 5:26 PM
<<From: Matt Neuburg, matt@tidbits.com
<<Reply-To: frontier-central@scripting.com
<<To: frontier-central@scripting.com
<<
<<Here's a new version of glossSub() I just knocked together. As you know,
<<glossSub() is a script you're supposed to call from a macro in a Web page
<<object; it lets you use live link glossary entries, either normal <a>-type
<<or automatically-generated glossPatch type, in such a way that the live
<<link emanates from *any* text you desire, not just the text "hard-coded"
<<into the link.
<<
<<This new version has two changes: (1) it decodes glossPatch expressions
<<all the way to HTML, and (2) it does targets, which a number of people have
<<asked me about.
<<
<<Hope this proves useful. Share and enjoy (meaning, if there's something
<<wrong with it, please post a fix!) - m.
<<Converted to UserLand-style code, 11/19/97 at 2:37:30 PM by DW.
<<For samples of calls see websites.samples.testNewFeatures.
local (adrPageTable = html.getPageTableAddress ());
local (s = html.refGlossary (whatGlossEntry));
if string.patternMatch ("[[#glosspatch ", string.lower (s)) == 1 {
adrPageTable^.renderedText = string.nthField (s, ' ', 1) + " " + whatText + "|" + string.nthField (s, '|', 2) + "|]]";
html.data.standardmacros.glossaryPatcher ();
s = adrPageTable^.renderedText}
else {
s = string.nthField (s, '>', 1) + ">" + whatText + "<" + string.nthField (s, '<', 3)};
if anchor != nil { //add anchor -- PBS 5/16/98
if not (anchor beginsWith "#") {
anchor = "#" + anchor};
s = string.replace (s, "\">", anchor + "\">")};
if whatTarget != nil {
s = string.replace (s, ">", " target=\"" + whatTarget + "\">")};
if class != nil {
s = string.replace (s, "<a ", "<a class=\"" + class + "\" ")};
return (s)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.