1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2025-11-20 09:15:17 +00:00

Revamp markdown plugin (#6528)

* Rename markdown to markdown-legacy

* Change how default renderWikiTextPragma value is displayed

To prevent out-of-sync, dynamically display the default value of
renderWikiTextPragma from the shadow tiddler instead of hard coding
the text in the "usage.tid".

* Repackage remarkable-based markdown plugin as markdown-legacy

- Rename plugin title to $:/plugins/tiddlywiki/markdown-legacy

- Add support for "text/markdown" MIME type and set that as the default
  when creating new markdown tiddlers

* Create new markdown plugin

* add support to text/markdown MIME type

* remove linkify and linkNewWindow config options

- linkify feature should be controlled by "extlink" TW parser rule;
  enabling markdown's linkify option will interfere with parsing

- remove the possibility to open external links in the same tab/window
  to match TW's behavior

* Ignore latex-parser wikirule in rednerWikiTextPragma

* Prevent camel-case link text from generating a link

* Update editions/markdowndemo

* Produce better parse tree

* Improve markdown/tiddlywiki integration

- widget block should not interrupt paragraph
- ignore tw-syntax links inside markdown-syntax links
- remove repeated renderWikiTextPragma parsing
- more efficient findNextMatch when examining tw rules

* Update user docs

* Replace includes() with indexOf() for legacy browsers
This commit is contained in:
cdruan
2023-01-14 01:49:04 -08:00
committed by GitHub
parent b5134951e5
commit 0c328a1696
84 changed files with 2443 additions and 359 deletions

View File

@@ -13,19 +13,25 @@ Text editor operation to make a markdown link
"use strict";
exports["make-markdown-link"] = function(event,operation) {
var rx = /[()\\]/g, rs = '\\$&';
if(operation.selection) {
if(event.paramObject.text.includes("://")) {
operation.replacement = "[" + operation.selection + "](" + event.paramObject.text + ")";
var desc = operation.selection.replace(/[\[\]\\]/g, rs);
if(event.paramObject.text.indexOf("://") !== -1) {
operation.replacement = "[" + desc + "](" + event.paramObject.text.replace(rx, rs) + ")";
} else {
operation.replacement = "[" + operation.selection + "](#" + event.paramObject.text.replaceAll(" ", "%20") + ")";
operation.replacement = "[" + desc + "](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")";
}
operation.cutStart = operation.selStart;
operation.cutEnd = operation.selEnd;
} else {
if(event.paramObject.text.includes("://")) {
operation.replacement = "<" + event.paramObject.text + ">";
if(event.paramObject.text.indexOf("://") !== -1) {
operation.replacement = "<" + event.paramObject.text.replace(/[<>]/g, function(m, offset, str) {
return encodeURI(m);
}) + ">";
} else {
operation.replacement = "[](#" + event.paramObject.text.replaceAll(" ", "%20") + ")";
operation.replacement = "[](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")";
}
operation.cutStart = operation.selStart;
operation.cutEnd = operation.selEnd;