Bug 308208 - [api] support Creole markup aka WikiCreole
Summary: [api] support Creole markup aka WikiCreole
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 1.6.0   Edit
Assignee: Igor Malinin CLA
QA Contact:
URL:
Whiteboard:
Keywords: api, contributed, noteworthy, plan
Depends on:
Blocks:
 
Reported: 2010-04-06 10:17 EDT by d<3vid seaward CLA
Modified: 2015-05-05 10:24 EDT (History)
4 users (show)

See Also:


Attachments
Patch adding Creole 1.0 syntax (147.56 KB, patch)
2011-07-19 08:39 EDT, Igor Malinin CLA
greensopinion: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description d<3vid seaward CLA 2010-04-06 10:17:51 EDT
Build Identifier: M20090917-0800

"Creole is a common wiki markup language to be used across different wikis. It's not replacing existing markup but instead enabling wiki users to transfer content seamlessly across wikis, and for novice users to contribute more easily." - http://www.wikicreole.org/

This project is fairly successful, therefore it would be useful if Mylyn WikiText supported it out-of-the-box.

There are various parser libraries available at http://www.wikicreole.org/wiki/Engines including T4 WikiParser (T4-WP), a Java-based parser http://web-tec.info/WikiParser/

WikiCreole supports extensions. There should be an option to either a) hide all extension text or b) display all extension text in fixed-width text.

Reproducible: Always

Steps to Reproduce:
1. Install Mylyn WikiText
2. There is no Creole :)
Comment 1 David Green CLA 2010-04-06 10:24:12 EDT
Thanks for the feature request. 

As you may already know Mylyn WikiText is extensible and can support new wiki syntaxes quite easily.  That said, it's not the intention of the Mylyn WikiText project to directly implement every wiki syntax.  It's expected that third parties will use Mylyn WikiText as a framework and add on extensions to support wiki syntaxes.  Currently Mylyn WikiText supports syntaxes for which there is a corresponding Mylyn connector, and MediaWiki which is the backbone of EclipsePedia.

If you're interested in contributing Creole wiki syntax then please get involved.  You may want to participate in one of our "weekly conference calls":http://wiki.eclipse.org/Mylyn/Meetings  Feel free to add an agenda item and phone in.

For more information about Mylyn WikiText including links to developer documentation, please refer to the "FAQ":http://wiki.eclipse.org/index.php/Mylyn/FAQ#WikiText
Comment 2 Igor Malinin CLA 2011-07-01 10:37:38 EDT
This is my contribution, the sources can be found here:
https://github.com/igorzep/org.eclipse.mylyn.docs
it is a fork of corresponding Eclipse repository and changes are on the master branch.

I would be happy if it is incorporated to the main repository.
Comment 3 David Green CLA 2011-07-07 12:15:56 EDT
Steffen, from a process standpoint what's required to move this forward?
Comment 4 Steffen Pingel CLA 2011-07-15 20:29:32 EDT
Igor, would you be able to provide a patch against the master of org.eclipse.mylyn.docs? I assume that the patch will be over 250 lines of code so we will need to go through the standard Eclipse IP review process.
Comment 5 Igor Malinin CLA 2011-07-19 08:39:10 EDT
Created attachment 199896 [details]
Patch adding Creole 1.0 syntax

The patch is attached. Let me know what should I do to pass IP review process.
Comment 6 David Green CLA 2011-07-29 16:39:47 EDT
Igor, here's a good start to understanding the IP process: http://www.eclipse.org/projects/dev_process/ip-process-in-cartoons.php

You'll need to make a statement to the effect of:

> This is my confirmation that I, Igor Malinin:
> * Authored the code.
> * Have a right to contribute the content to Eclipse.
> * Contribute the content under EPL.
Comment 7 Igor Malinin CLA 2011-08-01 10:23:58 EDT
So, then... I confirm that I, Igor Malinin:
* Authored the code.
* Have a right to contribute the content to Eclipse.
* Contribute the content under EPL.
Comment 8 David Green CLA 2011-08-04 18:33:40 EDT
Filed "CQ #5455":https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5455

After a quick look at the unit tests, you may want to expand them to test for cases where markup occurs at the start or end of a line, and where markup is combined on a line, since those are common areas for markup detection to fail.
Comment 9 David Green CLA 2011-08-08 16:54:55 EDT
CQ #5455 has been approved:  This patch has successfully gone through IP review.

Igor, any chance of improving the unit tests associated with Creole?  It seems right now that they're pretty thin.  So far, we've found that unit testing markup languages is essential to their success - especially combining various forms of markup, and testing for markup on the start, middle and end of a line of text.

Steffen, do you think that it makes sense to commit this to the Incubator Git repository until it's had a chance to have some exposure and hardening?  What would be the best way of making Creole available - do you think that a Creole language feature makes sense, or should we add it to the existing WikiText sandbox  feature?
Comment 10 Steffen Pingel CLA 2011-08-09 16:38:08 EDT
How about we add the approved contribution to the Mylyn Docs repository (otherwise we would have to do a Move Review later) and publish it on the nightly site (http://download.eclipse.org/mylyn/snapshots/nightly/docs/) in a separate feature? Once it has matured and has sufficient test coverage etc. we can include it in the main WikiText feature and publish it on the main update site.
Comment 11 David Green CLA 2011-08-09 17:20:02 EDT
(In reply to comment #10)
> How about we add the approved contribution to the Mylyn Docs repository

Great suggestion Steffen, that sounds much easier than messing around with multiple Git repositories.
Comment 12 David Green CLA 2011-09-19 20:30:21 EDT
Igor?
Comment 13 Igor Malinin CLA 2011-09-20 05:15:15 EDT
Ahh.. sorry, I thought I have answered.

About the test coverage... Actually it is not less than for some already released syntaxes. Sure it can be improved, and I know some cases that my plugin cannot parse correctly (it is about multi-line phrases, it seems the framework is not very friendly to implementing such syntax). But I believe there are cases where other syntaxes also not fully implemented, so it should not be a blocker for releasing it. It provides a great help already comparing to plain-text editing, and nothing stops it from other contributions. I think if it is released (in some form easier than downloading and compiling sources) then there are much more chances someone will improve it further.

Unfortunately I have no time currently to improve it myself and cannot tell when/if I will be able to do this.
Comment 14 David Green CLA 2011-09-20 11:51:40 EDT
Thanks Igor.  As far as test coverage, it's ok for the implementation to support only a subset of the markup language constructs - however I was hoping for better coverage of the constructs that you do support.  What we've discovered is that it's important to test for boundary cases, for exapmle where constructs occur at the start and end of a line of text.

> (it is about multi-line phrases, it seems the framework
> is not very friendly to implementing such syntax). 

Thanks for pointing out shortcomings in the framework.  If you have any suggestions on how this could be improved please pass them on.
Comment 15 David Green CLA 2011-09-26 21:07:40 EDT
Pushed to Gerrit: 

Ia2b4f5a5: NEW - bug 308208: [patch] Mylyn WikiText should support Creole aka WikiCreole
http://review.mylyn.org/#change,56

Steffen in this change I've added a new WikiText feature @org.eclipse.mylyn.wikitext.extras-feature@, and added it to the Mylyn Docs p2 repository project.  Your feedback on this change would be greatly appreciated.
Comment 16 David Carver CLA 2011-09-26 21:15:35 EDT
(In reply to comment #15)
> Pushed to Gerrit: 
> 
> Ia2b4f5a5: NEW - bug 308208: [patch] Mylyn WikiText should support Creole aka
> WikiCreole
> http://review.mylyn.org/#change,56
> 
> Steffen in this change I've added a new WikiText feature
> @org.eclipse.mylyn.wikitext.extras-feature@, and added it to the Mylyn Docs p2
> repository project.  Your feedback on this change would be greatly appreciated.

Cool.. glad to see Creole support being added.  I really think that a more standardized wiki syntax is needed, and needs to be adopted.  Creole is a step in the right direction.
Comment 17 Steffen Pingel CLA 2011-09-27 04:48:06 EDT
The feature looks good to me. I have two thought on it: Generally, we don't append "_feature" to features IDs any longer but it's not a documented policy. Including the WikiText feature (rather than requiring it) means that the Extras feature can only be installed with the exact WikiText feature version that is was built against. If that's intentional due to the coupling of the components that makes sense otherwise I would consider changing this to a requirement and setting a version constraint.
Comment 18 David Green CLA 2011-09-27 18:42:04 EDT
Thanks Igor for the contribution!

pushed commit 8227291a0ea6c29ea6c0c6d193f8b9242faa4900

Creole will be available via the nightly update site as soon as another nightly build has completed: http://download.eclipse.org/mylyn/snapshots/nightly/docs/
To install, select the feature titled "Mylyn WikiText Extras (Incubation)"
Comment 19 David Green CLA 2011-09-27 18:43:44 EDT
reopening to give Igor credit
Comment 20 David Green CLA 2011-09-27 18:44:13 EDT
Credit to Igor (via Assignee)
Comment 21 David Carver CLA 2011-09-27 22:35:40 EDT
(In reply to comment #17)
> The feature looks good to me. I have two thought on it: Generally, we don't
> append "_feature" to features IDs any longer but it's not a documented policy.
> Including the WikiText feature (rather than requiring it) means that the Extras
> feature can only be installed with the exact WikiText feature version that is
> was built against. If that's intentional due to the coupling of the components
> that makes sense otherwise I would consider changing this to a requirement and
> setting a version constraint.

Becareful with that as Tycho 0.13 can blow up your build if the feature is not unique.
Comment 22 Steffen Pingel CLA 2011-09-28 11:56:18 EDT
Great stuff! I have committed one minor change that renames the org.eclipse.mylyn.docs.extras directory to org.eclipse.mylyn.docs.extras-feature. Some of the releng scripts rely on that convention. If you have already imported the feature project into you workspace you will need to import again after pulling the latest master.

The new feature is now available for download from: http://download.eclipse.org/mylyn/snapshots/nightly/docs.

David, the name shows as feature.label. Looks like there is a mismatch between the properites and feature.xml.
Comment 23 Steffen Pingel CLA 2011-09-28 11:58:48 EDT
I would also recommend remove the Incubation label since the Mylyn Docs project has already matured and this could lead to confusion. If there components are considered experimental we could add a note to the description.
Comment 24 Steffen Pingel CLA 2011-09-28 12:03:11 EDT
One more minor thing I noticed, why does o.e.m.wikitext.creole.core have an optional dependency on org.eclipse.team.core? It doesn't seem to be used.
Comment 25 Igor Malinin CLA 2011-09-28 12:15:42 EDT
This is (or at least was at the time of making it) the same in all other *.core plugins and I believe it is for

   <extension point="org.eclipse.team.core.fileTypes">
      <fileTypes extension="creole" type="text"/>
   </extension>

in plugin.xml.
Comment 26 David Green CLA 2011-09-28 12:25:46 EDT
(In reply to comment #22)
> Great stuff! I have committed one minor change that renames the
> org.eclipse.mylyn.docs.extras directory to
> org.eclipse.mylyn.docs.extras-feature. Some of the releng scripts rely on that
> convention. 

Thanks Steffen.  I don't know if it's possible, but if it is we should encode these conventions in our unit tests, so that we pick up on these things earlier.

> The new feature is now available for download from:
> http://download.eclipse.org/mylyn/snapshots/nightly/docs.

Awesome!

> David, the name shows as feature.label. Looks like there is a mismatch between
> the properites and feature.xml.

Thanks for catching that.  For some reason PDE tooling seems to pick up on these things for bundles, but not features.

(In reply to comment #24)
> One more minor thing I noticed, why does o.e.m.wikitext.creole.core have an
> optional dependency on org.eclipse.team.core? It doesn't seem to be used.

Thanks for catching that.  What do you think about this optional dependency?  As Igor pointed out, it's there for the purpose of the plugin.xml extension point only.

I've also updated the WikiText portion of the FAQ
Comment 27 Steffen Pingel CLA 2011-09-28 15:04:46 EDT
(In reply to comment #26)
> Thanks for catching that.  What do you think about this optional dependency?  As
> Igor pointed out, it's there for the purpose of the plugin.xml extension point
> only.

Interesting, I didn't notice that. Seems fine with me. Since we are using a recent version of Tycho the dependency will be specified as non-greedy, i.e. in case a consumer didn't already have o.e.team.core they wouldn't get it during provisioning so it there shouldn't be any undesired side effects due to this dependency.
Comment 28 David Green CLA 2011-09-28 15:23:26 EDT
Thanks Steffen.  In that case, marking as RESOLVED (there's nothing left to do that I'm aware of).
Comment 29 David Green CLA 2011-10-31 17:12:58 EDT
note related bug 362525, Creole tests have been moved into their own bundle.
Comment 30 Libor Jelinek CLA 2013-02-25 12:13:55 EST
Just for completeness here's step-by-step HOWTO from beginner user's point of view http://wiki.eclipse.org/Mylyn/WikiText/Creole.
Comment 31 David Green CLA 2013-02-26 14:43:32 EST
Looks great Libor, thanks!
Comment 32 Libor Jelinek CLA 2013-02-27 02:17:28 EST
No, I've to say thanks for making WikiText! I love it!
Comment 33 David Green CLA 2013-02-27 14:11:12 EST
(In reply to comment #32)
> No, I've to say thanks for making WikiText! I love it!

Fantastic!
Comment 34 Nobody - feel free to take it CLA 2015-03-31 04:10:41 EDT
SPAM comment removed