Feature #6269
open
Added by Jean-Baptiste Barth about 14 years ago.
Updated about 8 years ago.
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 :
- 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 ?
- when ? which target version ?
- 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,...)
- 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.
Files
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/
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:
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]
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.
RedCloth 4 is very desired feature.
up!
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.
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.
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 Ross 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.
Adam Ross 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.
- Related to Defect #14038: Ordered/unordered lists inside table cell are mangled added
+1 Definition list support would be really nice
- Related to Defect #16149: Textile within-word markup doesn't work added
- Related to Defect #6796: Long Description Causes 100% CPU on Windows added
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.
- Related to Defect #29746: Unexpected results with enumeration formatting in Textile added
Also available in: Atom
PDF