RedCloth 4 support
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.
#1 Updated by Mike Stupalov over 6 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 over 6 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 about 6 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 about 6 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]
#8 Updated by Adam Clark about 4 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 about 4 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 about 4 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 almost 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.
#19 Updated by Jake Kemme 9 months 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.
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.