Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.directory.getCanonicalName
on getCanonicalName (linetext) {
<<Changes
<<5/12/02; 12:14:05 AM by JES
<<Drop all characters whose ascii value is above 127.
<<11/6/2000; 6:12:56 PM by DW
<<Take everything to the left of the hyphen (if present), remove all punctuation, and innerCase it. This is the string we use to refer to the directory page in a URI.
local (i, name = linetext);
for i = 1 to sizeof (name) {
if name [i] == '-' {
if i < sizeof (name) {
if name [i + 1] == ' ' {
name = string.trimwhitespace (string.mid (name, 1, i));
break}}}};
local (ch);
for i = sizeof (name) downto 1 {
ch = name [i];
if (not string.isalpha (ch)) and (not string.isnumeric (ch)) and (ch != ' ') {
name = string.delete (name, i, 1)}
else {
if number (ch) > 127 {
name = string.delete (name, i, 1)}}};
return (string.innerCaseName (name))}
<<bundle //test code
<<dialog.alert (getCanonicalName ("xml-rpc"))
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.