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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user