Extending Bluecloth/Redcloth

I'd like to extend bleucloth or redcloth to support custom tags, e.g. I
want to use markup like this:

[pubmed:18332676]

which shall be extended to:
<a href="http://www.ncbi.nlm.nih.gov/pubmed/18332676">Behav Pharmacol.
2008 Mar;19(2):121-128.</a>

Does anyone know, if this is possible and has some hints how to do
this?! I have not decided, wether I want to use redcloth or bluecloth,
I'll take, whatever has the better extensibility....

Cheers&thx for any help
Stefan

I realize that it might be a pain to incorporate _another_ mark up
language, but your syntax is very much like BBCode, and there is a
rails plugin for BBCode that allows easy customization of what tags/
replacements should be made to your text. http://agilewebdevelopment.com/plugins/bbcodeizer
Quick and easy, if you don't mind calling another function when you
render.

If you want it saved directly into the db as the link, then you could
make a simple before_save callback that regexed the tag into html...
though I don't know how you would get the study/publisher information
to include in the tag from just the ID.

Good luck!

This looks _almost_ like the thing I wanted: Unfortunately, the
replacement is a little more complex than what bbcodeize offers: Instead
of replacing the tag with a strin, I need to call a function, which
queries pubmed with the given id and fetches study/publisher info.
Preferably, I wanted to do this at render-time: If I place it in a
before_save, I either:
(a) have another field for the processed markup
(b) or find a way to undo the replacement for editing.

as (b) looks really ugly, I guess I will try a simple regex for
extracting the [pubmed:...]-tag - and store the results of the
processing in another field...

thx for the help!

I'm having fun with this one... I'm actually working on something
similar for my site.

This might be overly complicated, but...

Assuming there is a table somewhere which links IDs to study/publisher
info...

Let's say these BBCode style tags are used in "study_reviews" and that
there is a "study_review.body" field in the DB that has [pubmed] tags
in it...

First customize BBCodeizer to regex [pubmed:.*] in to <%= link_to
@pubmed.author + ". " + @pubmed.date, "www.foo.bar/" + @pubmed.id %>

The goal here is to get BBCodeizer to export the ERB, not do the
replacemets.

In your study_review controller have the application flow go something
like this...

Do a regex on the study_review.body for [pubmed:(.*)]
If found, regex out the ID from the tag
@pubmed=Pubmed.find(regex_resutl)

So when the bbcodeizer function is run during the view, it will
convert to ERB, which could then be processed again by rails?

Now that I am typing this out, I am doubting myself that the ERB will
ever get executed after coming out of the bbcodizer. But give it a
try...

Stephan,

I’d like to extend bleucloth or redcloth to support custom tags, e.g. I

want to use markup like this:

see:

http://nubyonrails.com/articles/about-this-blog-custom-textile

Google is your friend.

Alain

see:
    http://nubyonrails.com/articles/about-this-blog-custom-textile

Thx! Exactly, what I was looking for!!