Feature #6269

RedCloth 4 support

Added by Jean-Baptiste Barth about 7 years ago. Updated about 1 year ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Text formatting
Target version:-
Resolution:

Description

Adding support for Redcloth 4 would be nice since Redcloth 3.x is clearly outdated and has many bugs and limitations.

But we have to make some choices before integrating this :
  1. Redcloth 4.x needs native compiling, which could be problematic, especially for Windows users. What should we do :
    • try to find how we could make installation easier, and try to switch from redcloth3 to redcloth4
    • integrate redcloth4 support as an extra feature (like OpenID authentication: redmine behavior would depend on the presence of a system gem) ? Cons: duplicated testing / things to maintain
    • just add this as a "core plugin" ?
    • write our own (light) textile parser for the core and drop all this into plugins ?
  2. when ? which target version ?
  3. if we decide to stay on redcloth3, pros/cons ? is there something we can do to bypass actual limitations (use of light mode in activity summaries, hard_breaks related problems, handling of pre/code/@ sections,...)
  4. does anyone know good alternatives to redcloth ?

I leave a tiny patch which basically just let you boot a redmine trunk instance with your system's redcloth 4.2 gem. Basic formatting works but there are many broken tests. I can work on it, but I'd prefer we answer questions above before.

basic_redcloth4_support.diff Magnifier (1.75 KB) Jean-Baptiste Barth, 2010-09-02 05:09


Related issues

Related to Redmine - Feature #10078: Definition List support New 2012-01-27
Related to Redmine - Defect #8055: Links ending with curly brackets are not correctly interp... New 2011-04-04
Related to Redmine - Defect #6376: Turning off textile inline with '==' doesn't work. Reopened 2010-09-12
Related to Redmine - Feature #10889: Add support for the 'tel' URL protocol handler New
Related to Redmine - Defect #10758: Sub-/superscript w/o blank New
Related to Redmine - Defect #14038: Ordered/unordered lists inside table cell are mangled Reopened
Related to Redmine - Defect #16149: Textile within-word markup doesn't work New
Related to Redmine - Defect #6796: Long Description Causes 100% CPU on Windows Closed 2010-11-02
Related to Redmine - Defect #20425: fn1. not working in tickets Closed
Duplicated by Redmine - Feature #6910: Update to new version of textile Closed 2010-11-16
Blocks Redmine - Feature #2219: Export to LaTeX using Redcloth 4 New 2008-11-20
Blocks Redmine - Defect #7533: Inline image alt-text fails due to wiki syntax New 2011-02-03

History

#1 Updated by Mike Stupalov about 7 years ago

In my best option would be to leave redcloth3 (as light textile parser), and redcloth4 add as plug-in.

For Windows, can simply include precompiled gem?

does anyone know good alternatives to redcloth?

For textile format i know only 2 implementation: redcloth & http://textile.thresholdstate.com/

#2 Updated by Frank Schwarz about 7 years ago

Windows uses can get precompiled RedCloth 4 this way:

gem install RedCloth --platform=x86-mswin32-60

I applied the basic_redcloth4_support.diff but unfortunately code highlighting stops to work then (https://redmine.buschmais.com/help/wiki_syntax_detailed.html#13)

#3 Updated by Brett Patterson almost 7 years ago

Both versions of RedCloth (3 and 4) suffer some sort of XSS vulnerability; however, there are work arounds which we could put in place to remove such attacks. It deals with the use of :filter_html and white_list to allow only the HTML that RedCloth/Textile generates.

Perhaps we can rework the implementation to actually utilize asane sanitization method and get back to using the full power of RedCloth instead of this disabled version.

References:

#4 Updated by Etienne Massip almost 7 years ago

There is a pure-ruby version since 4.2.0 but its use is discouraged by its author himself :

Excerpt from https://github.com/jgarber/redcloth/blob/master/CHANGELOG :

Added a pure-ruby version of the parser for times when you can't compile the C or Java extensions.  You should avoid using it if at all possible because it is 32 times slower (and has some other problems, too)! [Jason Garber]

#5 Updated by Ling Li over 6 years ago

It seems that the support for definition list (DL) was added between RedCloth 3.x and 4.x, together with a bunch other improvements. I hope Redmine can add RedCloth 4 support in the next release.

#6 Updated by Alexander Oryol over 5 years ago

RedCloth 4 is very desired feature.
up!

#7 Updated by Aidin Abedi over 5 years ago

+1

#8 Updated by Adam Clark almost 5 years ago

Adding another upvote -- in addition to the new features, RedCloth 4 also has a detailed reference manual (http://redcloth.org/textile/). Having spent many hours trying to figure out (and document for my users) which Textile features Redmine supports, I would really appreciate being able to point to something like this.

#9 Updated by Etienne Massip almost 5 years ago

I'm personally waiting for https://github.com/jgarber/redcloth-parslet because switching to RC4 would bring some important performance drop.

Upgrading would be a challenge whichever RC version we would upgrade to because of the current mix between original and Redmine specific code.

#10 Updated by Jean-Baptiste Barth almost 5 years ago

Hooking in RedCloth4 is also challenging. I should have updated the issue before, but Redmine specific code to handle shortcuts (issues, commit, docs, etc.), "toc", "include" or macros isn't as easy to integrate in the native version.

@Adam Clark: sure RedCloth doc is pretty complete, but Redmine one is accessible and should do the trick for 99% users. See "?" button in every area, which should open a little box and optionnally the full page ; we're open to ideas to improve this doc, tell us if things are missing, if you have criticism about the structure etc. You can open a new ticket for that if you want.

#11 Updated by Adam Clark over 4 years ago

@Adam Clark: sure RedCloth doc is pretty complete, but Redmine one is accessible and should do the trick for 99% users.

I think it does the trick for 99% of the time, but in the end almost every user is going to hit a 1% edge case at some point. I don't think it's sensible for Redmine to include exhaustive documentation of Textile, but the fact that there are some excellent Textile docs out there, which are rendered more frustrating than helpful by the fact that large chunks of their content is unusable in Redmine, sort of highlights how far behind the curve the current implementation is.

#12 Updated by Toshi MARUYAMA about 4 years ago

  • Related to Defect #14038: Ordered/unordered lists inside table cell are mangled added

#13 Updated by Gergely Nagy about 4 years ago

+1 Definition list support would be really nice

#14 Updated by Toshi MARUYAMA over 3 years ago

  • Related to Defect #16149: Textile within-word markup doesn't work added

#15 Updated by Go MAEDA over 2 years ago

  • Related to Defect #6796: Long Description Causes 100% CPU on Windows added

#16 Updated by Go MAEDA over 2 years ago

#17 Updated by Anton Statutov almost 2 years ago

+1

#18 Updated by Nils Grimm over 1 year ago

+1, please Upgrade soon.

#19 Updated by Jake Kemme over 1 year ago

Since it looks like there's been no movement on this in 5 years, I've created an initial plugin release that adds a 'Redcloth 4' text formatting option to redmine.

Redmine Redcloth Plugin

Feel free to try it out. I have not tested all possible renderings in the initial release. I've developed it against redmine 3.1 / 3.2, though it may work with other versions.

#20 Updated by JW Fuchs about 1 year ago

+1

Also available in: Atom PDF