View Issue Details

IDProjectCategoryView StatusLast Update
0017920mantisbtmarkdownpublic2017-01-31 04:02
Reportervboctor 
Assigned Tojoel 
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product Version1.2.17 
Target Version2.1.0Fixed in Version2.1.0 
Summary0017920: Native markdown support
Description

As per the majority of the development platforms having native support for markdown would be valuable. Examples of such environments include github and bitbucket.

TagsNo tags attached.

Relationships

related to 0004879 new Collapse/expand attached files section 
related to 0022180 new Markdown issues following implementation in 0017920 
related to 0012744 resolveddregad WYSIWYG editor integration 
related to 0012325 new Adding WYSIWYG editor to text areas 
related to 0010504 closedvboctor New feature suggestion: Upload file in 'Add Note' ? 
related to 0022122 closedatrol Ability to format text and have bullets and numbered lists in text areas. 
related to 0022189 new Provide Markdown syntax help 

Activities

vboctor

vboctor

2014-11-25 11:50

manager   ~0041910

See plugin at:
https://github.com/mantisbt-plugins/Markdown

I believe we need to think of this as an out of the box experience.

rombert

rombert

2014-11-27 10:13

developer   ~0041930

Agreed. Plugging this in should be simple, but the migration path will be more complicated.

vboctor

vboctor

2015-01-14 03:10

manager   ~0042142

Reminder sent to: atrol, dregad, rombert, syncguru

Adding others to get feedback. I suggest that we start off with such support being controlled by a config option and then we can decide latest whether to make it the default.

rombert

rombert

2015-01-15 07:56

developer   ~0042163

Agreed. This allows new installations to opt in to markdown and then we can think about migration. How about making markdown the default for new installations?

dregad

dregad

2015-01-15 08:55

developer   ~0042166

I'm OK with the idea of offering MD out of the box, controlled by a config option that should IMO be defaulted to OFF (at least initially).

We should offer a "preview" toggle in the affected text editing areas, along the lines of what Github does.

Also, as mentioned by rombert, we need to be very careful about the migration path, and also consider what we're going to do with HTML codes (i.e. $g_html_valid_tags), links conversions, etc.

I have never actually tried this plugin or even looked at its implementation, so no technical comments at this stage; we'd have to contact the author if we're going to bundle and/or adapt his work.

atrol

atrol

2015-01-15 09:49

developer   ~0042168

In a first step we should choose a markdown parser and check

  • good CPU performance
  • small memory footprint
  • well maintained
  • more than one contributor
  • well tested
  • comes with acceptable license
  • supports PHP versions >= 5.3
    ...

I searched a bit and found this one which seems to be a good candidate at first sight
http://parsedown.org/
https://github.com/erusev/parsedown

vboctor

vboctor

2015-01-22 01:20

manager   ~0042231

Another candidate library:

Related Links:

dregad

dregad

2015-01-22 03:23

developer   ~0042240

I don't think that a PHP library exists based on it yet, but for the record http://commonmark.org/ is an attempt to standardize and remove ambiguities in the original markdown spec (Github contributes to it, amongst others).

WRT to cebe/markdown, it says PHP >= 5.4 while for 1.3 we currently target 5.3.

vboctor

vboctor

2015-02-01 01:39

manager   ~0048760

Parsedown seems to target support for CommonMark spec, see the tests below:
https://github.com/erusev/parsedown/blob/master/test/CommonMarkTest.php

It also seems to win on PHP versions compatibility and github stars. I'll start experimenting with this one.

License is MIT, so pretty good too.

vboctor

vboctor

2016-10-21 23:07

manager   ~0054316

PR: https://github.com/mantisbt/mantisbt/pull/930

cproensa

cproensa

2016-10-25 03:16

developer   ~0054335

I commented on PR 930, but i think it's relevant enough to be copied here to share the point with team:

Probably could be revisited later, but my ideal here is that Markdown is a plugin in itself, and is used or not, according to the formatting settings. Mantis core should pass text to the formatting plugin and it returns them as the processed output.
Anyway, some questions that probably should be asked to get the scenario clear:

is markdown, in any chance, going to be used directly by core (bypassing the formatter sytem/plugin)?
if yes (which implies publishing permanently in core), how would another possible markup language ciould be implemented? Allowing integration purely from a plugin allows any implementation to be done by community, otherwise, core updating is needed.
What is actually the intention of this Markdown integration? into core as the new unique formatting standard? or as a first step into a pluggable markup module system?

Maybe i misunderstood which were the assumed requeriments. In regards to integration method, that was not cleared in the related issue 17920.

vboctor

vboctor

2016-10-25 03:25

manager   ~0054336

Markdown has become the defacto standard for formatting in the development community which is a majority of the user base of MantisBT. Hence, we want to provide this as a core plugin. I would start by recommending this as the markup format for new installations. Similar to other systems like github, bitbucket, jira, etc.

We need to experiment with the experience of switching an existing instance from legacy formatting to markdown. In instances like others where we barely use html tags, it should be relative smooth transition. In some cases, existing text will look better, but in others lines may be combined in a single line due to markdown rules. We can in the future add some heuristics / compatibility mode or migration, but that is not going to be the target initially.

Markdown will also be disabled by default to start with.

ajtruckle

ajtruckle

2016-11-01 16:11

reporter   ~0054369

I have learned to use markdown skills on stackoverflow website. It would be great if it could be implemented in MantisBT too. :)

dregad

dregad

2017-01-09 12:43

developer   ~0054997

Original PR by @jllano https://github.com/mantisbt/mantisbt/pull/930
Rebased on latest master, ready for merge in https://github.com/mantisbt/mantisbt/pull/989

ajtruckle

ajtruckle

2017-01-11 04:05

reporter   ~0055046

When can I try this out ? :)

dregad

dregad

2017-01-11 06:49

developer   ~0055051

When can I try this out ? :)

As of today right here in this bugtracker, or download the latest master branch nightly build.

ajtruckle

ajtruckle

2017-01-11 12:23

reporter   ~0055056

I can't see any markup labels indicating it is available???

This is a test of code

This is a test

This is a test

ajtruckle

ajtruckle

2017-01-11 12:23

reporter   ~0055057

I am confused. I see no markup output in this bugtracker????

atrol

atrol

2017-01-11 15:07

developer   ~0055059

Last edited: 2017-01-11 18:22

View 2 revisions

I am confused. I see no markup output in this bugtracker????

Caused by a temporary problem.
Markdown is disabled at the moment.

ajtruckle

ajtruckle

2017-01-12 12:51

reporter   ~0055088

This looks better. :)

Will we have some kind of little helper button with notes etc. about the markup syntax?

dregad

dregad

2017-01-13 03:30

developer   ~0055097

@ajtruckle, I agree. I opened 22189 to track this

ajtruckle

ajtruckle

2017-01-14 12:05

reporter   ~0055119

Is this stable enough to try now in my own forum?

dregad

dregad

2017-01-14 12:49

developer   ~0055120

I would definitely not call it stable, until we actually release it as part of the next version of MantisBT.

As for installing it in your own instance, take a look at 0022180 for a list of known issues with this feature, and make up your own mind. You're anyway welcome to do it (at your own risk of course), and we would appreciate your testing and feedback.

vboctor

vboctor

2017-01-14 12:50

manager   ~0055121

@ajtruckle this feature will be released with 2.1.0 planned for end of January. You should be able to use that. If you want sooner, you can use the nightly builds.

libregeek

libregeek

2017-01-17 04:42

reporter   ~0055180

How does the markdown format will affect the email notifications from Mantis? Will it continue with the existing text formatting?

atrol

atrol

2017-01-17 04:49

developer   ~0055181

How does the markdown format will affect the email notifications from Mantis?

email notification is not affected (might happen in future versions)
It's still text, not HTML.

ajtruckle

ajtruckle

2017-01-26 11:25

reporter   ~0055340

@vboctor is it still due for release at the end of this month?

vboctor

vboctor

2017-01-27 04:21

manager   ~0055369

@ajtruckle I expect v2.1.0 to be out on 1/30. If not, then the weekend after.

Issue History

Date Modified Username Field Change
2014-11-25 11:46 vboctor New Issue
2014-11-25 11:47 vboctor Relationship added related to 0012744
2014-11-25 11:47 vboctor Relationship added related to 0012325
2014-11-25 11:50 vboctor Note Added: 0041910
2014-11-25 12:03 vboctor Relationship added related to 0004879
2014-11-27 10:13 rombert Note Added: 0041930
2015-01-14 03:10 vboctor Note Added: 0042142
2015-01-15 07:56 rombert Note Added: 0042163
2015-01-15 08:55 dregad Note Added: 0042166
2015-01-15 09:49 atrol Note Added: 0042168
2015-01-22 01:20 vboctor Note Added: 0042231
2015-01-22 01:20 vboctor Assigned To => vboctor
2015-01-22 01:20 vboctor Status new => assigned
2015-01-22 03:23 dregad Note Added: 0042240
2015-02-01 01:39 vboctor Note Added: 0048760
2015-02-14 13:39 vboctor Relationship added related to 0010504
2015-03-02 08:04 vitsaadmin Issue cloned: 0019449
2016-10-21 23:07 vboctor Note Added: 0054316
2016-10-25 03:16 cproensa Note Added: 0054335
2016-10-25 03:25 vboctor Note Added: 0054336
2016-11-01 16:11 ajtruckle Note Added: 0054369
2017-01-06 05:22 dregad Relationship added related to 0022122
2017-01-09 12:43 dregad Assigned To vboctor => community
2017-01-09 12:43 dregad Target Version => 2.1.0
2017-01-09 12:43 dregad Note Added: 0054997
2017-01-11 02:16 vboctor Severity minor => feature
2017-01-11 02:16 vboctor Reproducibility have not tried => N/A
2017-01-11 02:16 vboctor Status assigned => closed
2017-01-11 02:16 vboctor Resolution open => fixed
2017-01-11 02:16 vboctor Category ui => markdown
2017-01-11 02:16 vboctor Fixed in Version => 2.1.0
2017-01-11 02:17 vboctor Status closed => resolved
2017-01-11 04:05 ajtruckle Note Added: 0055046
2017-01-11 06:49 dregad Note Added: 0055051
2017-01-11 12:23 ajtruckle Note Added: 0055056
2017-01-11 12:23 ajtruckle Note Added: 0055057
2017-01-11 15:07 atrol Note Added: 0055059
2017-01-11 18:22 dregad Note Edited: 0055059 View Revisions
2017-01-12 07:18 dregad Relationship added related to 0022180
2017-01-12 12:00 vboctor Assigned To community => joel
2017-01-12 12:51 ajtruckle Note Added: 0055088
2017-01-13 03:30 dregad Note Added: 0055097
2017-01-13 03:30 dregad Relationship added related to 0022189
2017-01-14 12:05 ajtruckle Note Added: 0055119
2017-01-14 12:49 dregad Note Added: 0055120
2017-01-14 12:50 vboctor Note Added: 0055121
2017-01-17 04:42 libregeek Note Added: 0055180
2017-01-17 04:49 atrol Note Added: 0055181
2017-01-26 11:25 ajtruckle Note Added: 0055340
2017-01-27 04:21 vboctor Note Added: 0055369
2017-01-31 04:02 vboctor Status resolved => closed