[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

SM::ToHtml does not convert urls to hyperlinks

Shri Borde

5/19/2009 6:31:00 AM

I am trying to use my own output formatter with SimpleMarkup. Things seems =
to work, except for hyperlinks not working as expected. I tried to use SM::=
ToHtml to simplify things, and even if does not deal with hyperlinks. Here =
is the code snippet I am using.

require 'rdoc/markup/simple_markup'
require 'rdoc/markup/simple_markup/to_html'
s =3D "This is *bold*. These are urls - www.foo.com<http://www.f... , h=
ttp://www.foo.com , foo[http://w...]"
p =3D SM::SimpleMarkup.new
puts p.convert(s, SM::ToHtml.new)

The output of this is as shown below. The word "bold" was surrounded by the=
<b> tag, but the urls were not surrounded with <a href> tags.

<p>
This is <b>bold</b>. These are urls - www.foo.com<http://www.f... , htt=
p://www.foo.com , foo[http://w...]
</p>

Is there a way to make this happen?

Regards,
Shri



1 Answer

Eric Hodel

5/19/2009 5:58:00 PM

0

On May 18, 2009, at 23:30, Shri Borde wrote:

> I am trying to use my own output formatter with SimpleMarkup. Things
> seems to work, except for hyperlinks not working as expected. I
> tried to use SM::ToHtml to simplify things, and even if does not
> deal with hyperlinks. Here is the code snippet I am using.
>
> [...]

You should use RDoc::Markup from RDoc 2. RDoc 1's SM is no longer
maintained.

As described in ri RDoc (for RDoc 2), valid URL formats are:

> * Hyperlinks to the web starting http:, mailto:, ftp:, or www.
> are recognized. An HTTP url that references an external image
> file is converted into an inline <IMG..>. Hyperlinks starting
> 'link:' are assumed to refer to local files whose path is
> relative to the --op directory.
>
> Hyperlinks can also be of the form label[url], in which case the
> label is used in the displayed text, and url is used as the
> target. If label contains multiple words, put it in braces:
> {multi
> word label}[url].
>
> Example hyperlinks:
>
> link:RDoc.html
> http://rdoc.rub...
> mailto:user@example.com
> {RDoc Documentation}[http://rdoc.rub...]
> {RDoc Markup}[link:RDoc/Markup.html]

So, adjusting your input to fit:

$ echo 'This is *bold*. These are urls - http://w..., foo[http://w...
]' | rdoc --pipe
<p>
This is <b>bold</b>. These are urls - <a
href="http://w...">www.foo.com</a>, <a
href="http://w...">foo</a>
</p>