History: WYSIWYG and Markdown
Source of version: 164 (current)
Copy to clipboard
^
2025-03-29 status:
* last commit on Feb 17, 2023: https://github.com/nhn/tui.editor/commits/master/
* It's worrisome:
** https://github.com/nhn/tui.editor/issues/3297
** https://github.com/nhn/tui.editor/issues/3229
** https://github.com/nhn/tui.editor/issues/3158
^
^
2023-02-12 status:
* New installs using ((doc:Tiki Flavored Markdown)) are pretty good but converting Tiki's wiki syntax still needs quite a bit of work.
** We are now looking into: [item6191-Replace-Emoticons-with-Emoji]
** More fixes are coming in:
*** https://gitlab.com/tikiwiki/tiki/-/commits/master?search=markdown
*** https://gitlab.com/tikiwiki/tiki/-/commits/master?search=wysiwyg
* Recently was held one of the biggest Open Source conferences in the World:
** https://fosdem.org/2023/
** https://en.wikipedia.org/wiki/FOSDEM
* Jonny presented the move to Markdown: https://fosdem.org/2023/schedule/event/collab_tiki/
* Here are his slides:
https://tiki.org/The-Relentless-March-of-Markdown
^
^
2022-11-04 status:
* Documentation started: ((doc:Tiki Flavored Markdown))
* We are in the testing phase, and asking the community to report issues
* [https://gitlab.com/tikiwiki/tiki/-/merge_requests/1753|Front-end support (Toast UI Editor) has been added for WYSIWYG]: https://ui.toast.com/tui-editor
* [https://gitlab.com/tikiwiki/tiki/-/merge_requests/1703|Back-end Markdown support has been added].
** We use https://commonmark.org/
** [https://github.github.com/gfm/|GitHub Flavored Markdown (GFM)] is optional (default on)
** We use [https://packagist.org/packages/league/commonmark|league/commonmark], which has over 100 million installs
** In essence, we have a Tiki-flavored Markdown (TFM). It is Markdown + things that Tiki does but that are not supported by Markdown. For example
*** ((doc:All Plugins|Wiki Plugins)) continue to work, with same syntax (which is quite good)
*** ((doc:Wiki Argument Variables))
*** ((doc:Smileys))
*** ((doc:User Mentions))
*** ((doc:Dynamic variables))
*** and likely more as we test more.
** It is all optional. If you don't activate, everything stays in traditional Tiki syntax.
* We needed to refactor the toolbars: https://gitlab.com/tikiwiki/tiki/-/merge_requests/1769
* We added [https://gitlab.com/tikiwiki/tiki/-/commit/25b3d9ecca3313c909c8a4f8f34bc2a28bd562ac|a converter from Tiki to Markdown] (and the reverse), using https://github.com/thephpleague/html-to-markdown
** Documentation: ((doc:Converting from Tiki syntax to Markdown))
* ((Pre-dogfood servers for Tiki 26 release process)) have been set up and we started testing on 2 (doc and dev) of the *.tiki.org servers. In particular, doc.tiki.org has over 2000 pages, and covers almost all the features, so it's a great test platform.
* The release date of ((Tiki25)) has been postponed to give us more time for the development of this critically important feature.
^
^ This is a massive endeavor and we required external funding to make it happen. Three sponsors have stepped up! Special thank you to [https://www.moba.net/|Moba Group], [https://evoludata.com/Open-Source-Software|EvoluData] and the 3rd sponsoring organization (which wishes to remain anonymous).
Can you also help? Please reach out to [https://MarcLaporte.com|me] if you can contribute coding time or money to hire developers. The more resources we have, the faster we can go through all the wish list :-)
Native WYSIWYG and Markdown is coming to ((Tiki25))!
Thanks!
^
This is a project to attain the following objectives. This is a massive project that will have to be done in phases.
# A commonly used text syntax like ((Markdown)) supported natively in Tiki. Better than ((doc:PluginMarkdown))
** The CommonMark spec is extensive: https://spec.commonmark.org/
** We use Markdown for bold, bullets, etc. and we keep our current syntax for Tiki plugins {PLUGINNAME()} ... {PLUGINNAME}
** We do what failed here: http://www.wikicreole.org/wiki/TikiWikiCMSGroupware WikiCreole was an attempt to get a common wiki syntax which is more or less what Markdown is.
** To have a realistic transition, each text area will have a choice of various syntaxes, so each Tiki instance can move at their own pace. Each text area could have options such as
*** Tiki syntax
*** Markdown + Tiki plugins
*** HTML only
*** HTML + Tiki syntax + Tiki plugins
*** Whatever other mode existed in the past
** Phased approach while we work on conversion tools
*** Optional, default off
*** Optional, default on
*** In 5-10 years, we can decide if we remove Tiki syntax or keep forever for read-only of legacy content
** Conversion tools
*** Live (supervised by user) and via command line
*** Need a tool to compare HTML end result
# A reliable ((WYSIWYG)) editor that handles markdown with Tiki plugin syntax and avoids https://wysiwygproblems.com/
** Must have intuitive UI for adding images and files (previews). Ex.: copy-paste or crop or ...
** https://medium.com/maatwebsite/lets-see-wyg-with-these-editors-e5720e91a626
** https://github.com/JefMari/awesome-wysiwyg
** Along with syntax highlighting for Markdown.
** Need a way to import HTML (copy-paste), ideally, with some level of conversion to text syntax. Ex.: https://github.com/thephpleague/html-to-markdown
** Need a way to deal with HTML that some Tiki instances may have used
*** ((doc:PluginWYSIWYG)) and the WYSIWYG editor in wiki pages (one of the modes is to save as HTML)
** A good time for [item6191-Replace-Emoticons-with-Emoji]
# ((Wiki Parser Revamp)), ((Plugin revamp)) and/or merge Tiki plugins and Tiki modules into ((Gadgets)) (or Widgets) that can live in a text area or elsewhere on a page, and move to ((VueJS In Tiki Part 2|Vue JS)): https://gitlab.com/jonnybradley/tiki/-/tree/project-fluffy-2
** Can be done in a second step but overall plan needs to make sure it will be a good solution
# ((Realtime)) collaborative editing
** Can be done in a second step but overall plan needs to make sure it will be a good solution
** Could be done with ((TogetherJS)) or with another method
** Matrix
*** https://matrix.org/blog/2021/12/22/the-mega-matrix-holiday-special-2021#applications-beyond-chat
*** https://github.com/YousefED/Matrix-CRDT
**** https://syncedstore.org/docs/vue
# ((Page Builder)) and ((Form Builder))
** Can be done in a second step but overall plan needs to make sure it will be a good solution
# Interop with external systems so we could store some wiki pages in Git, as requested: [https://forum.virtualmin.com/t/links-to-documentation-are-broke/111602/9|here]
** Can be done in a second step but overall plan needs to make sure it will be a good solution
# Review diagrams from textual descriptions. Ex.: https://github.com/yuzutech/kroki
# Review ((doc:Typography)) features
!! Steps
# --Scope high level plan-- done
# Compare implementation options as per ((How to pick a software library)) (ongoing)
# --Gather community agreement-- done (there is consensus this is desirable)
# Gather more resources
** As of 2022-03-31, we have sufficient resources for steps #1 and #2 above. We'll sollicit more sponsorship to be able to do more (#3, #4, etc.)
# --Assemble team (around Jonny and Victor) and do it!-- Team is reserved.
!! Questions
* How do we deal with just HTML content? (which CKEditor is good at)
** [https://github.com/summernote/summernote/issues/158#issuecomment-404046643|Discussion from the SummerNote project explaining why it's difficult for an HTML WYSIWYG editor to support Markdown]
* Do we keep current PHP lib? or go with another? https://packagist.org/?query=markdown (we need flexibility to add some syntax like wiki plugins and to interact with the WYSIWYG)
* How should we go about converting from Tiki syntax to CommonMark?
** One option is https://pandoc.org/try/
** We could envisage a tool to compare Tiki Syntax -> HTML vs Tiki Syntax -> Commmark -> HTML
!! Options
!!# WYSIWYG editors
!!!# ProseMirror with Markdown
https://prosemirror.net/examples/markdown/
https://github.com/ProseMirror/prosemirror-markdown
!!!# {ANAME()}toast{ANAME} TOAST UI Editor
* "The main characteristic of TOAST UI Editor is that it is a __markdown based editor that support WYSIWYG editor simultaneously.__"
* Test here: https://nhn.github.io/tui.editor/latest/tutorial-example03-editor-with-wysiwyg-mode
* About major changes in latest version: https://github.com/nhn/tui.editor/releases/tag/v3.0.0
** Important part: "In order to deal with this issue, we used the Prosemirror, a development tool used to build a WYSIWYG editor, for TOAST UI Editor 3.0, and we were able to unify the internal dependencies of the editors into one. The unified dependency allowed us to follow a single, internal structure, and we were able to remove the past dependencies including CodeMirror, squire, and to-mark."
* MIT License
* Based on [https://prosemirror.net/|ProseMirror]
* Has an [https://github.com/nhn/tui.image-editor|image editor]
* Available here: https://asset-packagist.org/package/bower-asset/tui-editor
* This model is the most reliable way to have both a text syntax and WYSIWYG, but for legacy HTML content, we'd have to continue with ((CKEditor))
{HTML()}<script type='text/javascript' src='https://www.openhub.net/p/tui-editor/widgets/project_factoids_stats?format=js'></script>{HTML}
!!!# MeditorJS
* Docs: https://gitlab.com/cobalt-os-team/MeditorJS
* Based on [https://github.com/pandao/editor.md| Editor.md]
* MIT License
* Last commit: On ''Dec 11, 2021''
!!!# {ANAME()}stacksedit{ANAME} Stacks-Editor
* Github: https://github.com/StackExchange/Stacks-Editor
* Docs: https://stackedit.io/
* Based on [https://prosemirror.net/|ProseMirror]
* MIT License
* Last commit: On ''May 17, 2022''
!!!# Milkdown
* Overview: https://milkdown.dev/
* Github: https://github.com/Saul-Mirone/milkdown
* Based on [https://prosemirror.net/|ProseMirror]
* MIT License
* Last commit: On ''May 19, 2022''
{HTML()}<script type='text/javascript' src='https://www.openhub.net/p/milkdown/widgets/project_factoids_stats?format=js'></script>{HTML}
!!!# TipTap
* Github: https://github.com/ueberdosis/tiptap
* Based on [https://prosemirror.net/|ProseMirror]
* MIT License
* Last commit: On ''May 17, 2022''
!!!# Wax
* Based on [https://prosemirror.net/|ProseMirror]
* Does it handle Markdown?
* From Coko foundation: https://coko.foundation/articles/single-source-publishing.ht
* Interesting features: https://waxjs.net/features/
* GitLab: https://gitlab.coko.foundation/wax/wax
* MIT License
*Last commit: On ''Aug 8, 2020''
* __Archived project! Repository and other project resources are read-only__
!!!# {ANAME()}woofmark{ANAME} Woofmark
*Github: https://github.com/bevacqua/woofmark
*Docs: https://bevacqua.github.io/woofmark/
* MIT license
* Last commit: On ''Feb12, 2019''
{HTML()}<script type='text/javascript' src='https://openhub.net/p/woofmark/widgets/project_factoids_stats?format=js'></script>{HTML}
!!!# {ANAME()}codemirror{ANAME} CodeMirror
*Github: https://github.com/codemirror/codemirror.next/
*Community: https://discuss.codemirror.net/
*Docs: https://codemirror.net/6/
* MIT license
*Last commit: On "Apr 20, 2022"
!!!# HyperMD
*Github: https://github.com/laobubu/HyperMD
* MIT license
*Last commit: On "Jan15, 2019"
!!!# {ANAME()}ckeditor5{ANAME}Ckeditor-5
*Docs: https://ckeditor.com/ckeditor-5/
*Features: https://ckeditor.com/ckeditor-5/features/#collaboration
*Github: https://github.com/ckeditor/ckeditor5
* https://onlinemarkdowneditor.dev/
* GNU General Public License Version 2 or later
*Last commit: On "May 19, 2022"
{HTML()}<script type='text/javascript' src='https://openhub.net/p/ckeditor/widgets/project_factoids_stats?format=js'></script>{HTML}
!!!# Editor.js
*Overview: https://editorjs.io/
*Docs: https://editorjs.io/base-concepts
*Github: https://github.com/codex-team/editor.js
* Apache-2.0 license
*Last commit: On ''May 14, 2022 ''
!!!# TinyMCE
*Docs: https://www.tiny.cloud/docs/quick-start/
*Github: https://github.com/tinymce/tinymce
* MIT license
*Last commit: On ''May 17, 2022''
* (https://www.tiny.cloud/docs/plugins/opensource/textpattern/)
{HTML()}<script type='text/javascript' src='https://openhub.net/p/tinymce/widgets/project_factoids_stats?format=js'></script>{HTML}
!!!# Bubble
*Features: https://bubble.io/features
!!!# Quill
*Overview: https://quilljs.com/guides/why-quill/
*Github: https://github.com/quilljs/quill/
* BSD-3-Clause license
*Last commit: On ''Mar 22, 2022''
!!!# Summernote
*Docs: https://summernote.org/getting-started/
*Github: https://github.com/summernote/summernote
* MIT license
*Last commit: On ''May 12, 2022''
!!!# ContentTools
*Overview: https://getcontenttools.com/getting-started
*Github: https://github.com/GetmeUK/ContentTools
* MIT license
*Last commit: On ''Jul 11, 2021''
!!!# Textbox.io
*Overview: https://www.textbox.io/
*Docs: https://www.textbox.io/docs/
*Github: https://github.com/tinymce/tinymce
!!!# WYMeditor
*Overview: http://www.wymeditor.org/
*Features: http://www.wymeditor.org/features/
*Github: https://github.com/wymeditor/wymeditor/
* __This repository has been archived by the owner.__ It is now read-only.
!!!# ALOHA EDITOR
*Use: https://www.alohaeditor.org/guides/using_aloha.html
*Github: https://github.com/alohaeditor/Aloha-Editor
*Last commit: On ''Oct 07, 2019''
!!!# {ANAME()}simplemde{ANAME}Simple MDE
*Github: https://github.com/sparksuite/simplemde-markdown-editor
* MIT license
*Last commit: On ''Jun14, 2016''
!!!# {ANAME()}editormd{ANAME} Editor.md
*Based on CodeMirror & jQuery & Marked.
*Github: https://github.com/pandao/editor.md
* MIT license
*Last commit: On ''May 09, 2019''
!!!# Easy-markdown-editor
*Github: https://github.com/Ionaru/easy-markdown-editor
*Last commit: On ''Mar 12, 2022''
!!!# Froala
*Github: https://github.com/froala/design-blocks
*Version: https://froala.com/blog/general/introducing-froala-v4-0-6-the-most-powerful-wysiwyg-html-editor/
*Doc: https://froala.com/wysiwyg-editor/docs/overview/
* Supporter: https://wysiwyg-editor.froala.help/hc/en-us
*Last commit: On ''Jan 15, 2019''
!!!# Trumbowyg
*Docs: https://alex-d.github.io/Trumbowyg/documentation/
*Github: https://github.com/Alex-D/Trumbowyg
*Demo: https://alex-d.github.io/Trumbowyg/demos/
* MIT license
*Last commit: On ''Dec 15, 2021''
!!!# CoffeeCup HTML Editor
*Overview: https://www.coffeecup.com/html-editor/
*Github: https://github.com/gradus/coffeecup
*Last commit: On ''Jun 19, 2013''
!!!# Medium-editor-insert-plugin
*Github: https://github.com/linkesch/medium-editor-insert-plugin
*__This repository has been archived by the owner.__ It is now read-only.
!!!# Brickyeditor
*Github: https://github.com/samclarke/SCEditor
*Details: https://openbase.com/js/brickyeditor
*Options: https://www.sceditor.com/documentation/options/
*Last commit: On ''Mar 10, 2022 ''
!!!# SCEditor
*Intetegration: https://www.sceditor.com/documentation/getting-started/
*Github: https://github.com/samclarke/SCEditor
* MIT license
*Last commit: On ''Mar 10, 2020''
!!!# AlloyEditor
* https://alloyeditor.com/
* https://github.com/liferay/alloy-editor/issues/760
* https://github.com/liferay/alloy-editor/issues/1494
* https://ckeditor.com/cke4/addon/markdown
!!!# {ANAME()}markdownify{ANAME} Markdownify
* Docs: https://markdownify.js.org/
* Github: https://github.com/amitmerchant1990/electron-markdownify/
* Last commit: On "May 22, 2022"
!!!# {ANAME()}showdown{ANAME} Showdown
* Docs: https://showdownjs.com/docs/
* Github: https://github.com/showdownjs/showdown
* Last commit: On "May 26, 2022"
!!!# {ANAME()}bootstrapmd{ANAME} Bootstrap Markdown Editor
* Github: https://github.com/inacho/bootstrap-markdown-editor
* Last commit: On "Dec 1, 2016"
!!!# {ANAME()}markdownit{ANAME} Markdown-it
* Github: https://github.com/markdown-it/markdown-it
* Demo: https://markdown-it.github.io/
* Last commit: On "May 25, 2022"
!!!# Cristal
* https://github.com/xwiki-contrib/cristal/
* https://cristal.xwiki.org/xwiki/bin/view/Main/WebHome
* https://forum.xwiki.org/t/choosing-a-library-to-integrate-react-components-inside-vue/16565/6
* https://peertube.xwiki.com/w/rjW8WDZnbBjrxk3W6UDbWk
* https://peertube.xwiki.com/w/oGgjTjG4H8vsrFR5GJgd4z
* https://peertube.xwiki.com/w/at1wJLtWxuqNMF9EaRuM2n
{HTML()}
<script type='text/javascript' src='https://openhub.net/p/cristal/widgets/project_factoids_stats?format=js'></script>
{HTML}
!!# Markdown tools that are not WYSIWYG editors
Here are all the Markdown Editors that are not WYSIWYG
!!!# Hackmdio
*https://github.com/hackmdio/codimd
!! Ideas
* Idea from Jonny: use ((Object Attributes and Relations|attributes)) so each object can have a different setting. So old comments could be Tiki syntax, and new comments could be Markdown.
!! Other tools
* https://www.lyx.org/Download
!! Related links
* https://github.blog/2022-05-19-math-support-in-markdown/
* https://ckeditor.com/docs/ckeditor5/latest/features/markdown.html
* https://discuss.prosemirror.net/t/offline-peer-to-peer-collaborative-editing-using-yjs/2488
* https://blog.kevinjahns.de/are-crdts-suitable-for-shared-editing/
* https://www.tiny.cloud/blog/real-time-collaboration-ot-vs-crdt/
* People want Markdown: https://forum.virtualmin.com/t/links-to-documentation-are-broke/111602
* Markdown support for the Squire is an HTML5 rich text editor: "[https://github.com/neilj/Squire/issues/66|I think this request is really outside the scope of Squire. A good Markdown editor would be an entirely different product, and probably require quite a different code base.]"
!! To be evaluated
* https://markdown-it.github.io