1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-30 13:29:56 +00:00
TiddlyWiki5/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js
2024-07-19 08:52:57 +01:00

44 lines
1.3 KiB
JavaScript

/*\
title: $:/plugins/tiddlywiki/markdown/editor-operations/make-markdown-link.js
type: application/javascript
module-type: texteditoroperation
Text editor operation to make a markdown link
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports["make-markdown-link"] = function(event,operation) {
var rx = /[()<>\\]/g, rs = '\\$&';
if(operation.selection) {
var desc = operation.selection.replace(/[\[\]\\]/g, rs);
if(event.paramObject.text.indexOf("://") !== -1) {
operation.replacement = "[" + desc + "](" + event.paramObject.text.replace(/[()\\]/g, rs) + ")";
} else {
operation.replacement = "[" + desc + "](<#" + event.paramObject.text.replace(rx, rs) + ">)";
}
operation.cutStart = operation.selStart;
operation.cutEnd = operation.selEnd;
} else {
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.replace(rx, rs) + ">)";
}
operation.cutStart = operation.selStart;
operation.cutEnd = operation.selEnd;
}
operation.newSelStart = operation.selStart + operation.replacement.length;
operation.newSelEnd = operation.newSelStart;
};
})();