Hi Robert, Sunanda,

Am Montag, 10. Juni 2002 11:11 schrieb [EMAIL PROTECTED]:
> Here's a copy of my email that doesn't seem to have arrived after three
> days. Apologies if you got it while me and the archive didn't.
>
> I'm backing up Robert in his recent comment that: "Adding minimal
> user-friendly syntax can help a lot"
> Sunanda
>
> <<===>>
>
> Volker:
> > instead of =url
> >  iam thinking about
> >    here you get all the nice stuff: http://rebol.com
> >  what do you think?
>
> Part of the problem with all these "pick the url from the data stream"
> suggestions is that it is not trivial to do. All of the following _could_
> be URLs:
>
> http://www.rebol.com
> www.rebol.com
> ftp://rebol.com/a-script.r
> /a-folder/a-subfolder/a-document.txt
> /a-folder/a-doc.htm#a-fragment
> /x
>
> And, for any of them in a document, they may be meant to be quoted or meant
> to be a clickable link.
>
> Basically the only 100% accurate rule is: "it's a clickable URL if I mark
> it up as such".
>
> Robert's =url may not be perfect as it requires the URL to be on a line by
> itself, and it needs embedded spaces to be coded as %20, but it does the
> job.
>

===a little parser-part 

url-line: func [line /local text-end text url-start url rest] [
        either parse line [
                some [to ": " text-end: skip] url-start: (
                        text: copy/part line text-end
                        either all [
                                not error? try [set [val rest] load/next url-start]
                                find reduce [url! file!] type? val
                        ] [
                                url: val
                        ] [
                                rest: head line
                        ]
                ) :rest
        ] [
                rejoin [""build-tag compose [a href (url)] text </a>]
        ] [
                line
        ]
]
;--samples
foreach line reduce [
        "some text pointing to: http://somewhere.dom garbage"
        "no url at all"
        "no real url: nowhere"
        "nothing behind: "
        "multiple colons: this and: that"
        "multiple colons: this and: that and url: http://somewhere.dom";
        "some text pointing to: http://somewhere.dom";
        {some text pointing to: %"http://somewhere/ with space.dom"}
        {a file-link demo: %index.html}
] [
        print[">>" line newline "==" url-line line ]
]

;--no real urls inside
>> some text pointing to: http://somewhere.dom garbage 
== some text pointing to: http://somewhere.dom garbage
>> no url at all 
== no url at all
>> no real url: nowhere 
== no real url: nowhere
>> nothing behind:  
== nothing behind: 
>> multiple colons: this and: that 
== multiple colons: this and: that

;--with urls
>> multiple colons: this and: that and url: http://somewhere.dom 
== <a href="http://somewhere.dom";>multiple colons: this and: that and url</a>
>> some text pointing to: http://somewhere.dom 
== <a href="http://somewhere.dom";>some text pointing to</a>
>> some text pointing to: %"http://somewhere/ with space.dom" 
== <a href="http://somewhere/ with space.dom">some text pointing to</a>
>> a file-link demo: %index.html 
== <a href="index.html">a file-link demo</a>

> Sunanda.

grretings
Volker

--
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the
subject, without the quotes.

Reply via email to