2022-05-15 16:47:21 +00:00
|
|
|
/*\
|
|
|
|
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) {
|
2023-01-14 09:49:04 +00:00
|
|
|
var rx = /[()\\]/g, rs = '\\$&';
|
|
|
|
|
2022-05-15 16:47:21 +00:00
|
|
|
if(operation.selection) {
|
2023-01-14 09:49:04 +00:00
|
|
|
var desc = operation.selection.replace(/[\[\]\\]/g, rs);
|
|
|
|
|
|
|
|
if(event.paramObject.text.indexOf("://") !== -1) {
|
|
|
|
operation.replacement = "[" + desc + "](" + event.paramObject.text.replace(rx, rs) + ")";
|
2022-05-15 16:47:21 +00:00
|
|
|
} else {
|
2023-01-14 09:49:04 +00:00
|
|
|
operation.replacement = "[" + desc + "](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")";
|
2022-05-15 16:47:21 +00:00
|
|
|
}
|
|
|
|
operation.cutStart = operation.selStart;
|
|
|
|
operation.cutEnd = operation.selEnd;
|
|
|
|
} else {
|
2023-01-14 09:49:04 +00:00
|
|
|
if(event.paramObject.text.indexOf("://") !== -1) {
|
|
|
|
operation.replacement = "<" + event.paramObject.text.replace(/[<>]/g, function(m, offset, str) {
|
|
|
|
return encodeURI(m);
|
|
|
|
}) + ">";
|
2022-05-15 16:47:21 +00:00
|
|
|
} else {
|
2023-01-14 09:49:04 +00:00
|
|
|
operation.replacement = "[](#" + encodeURIComponent(event.paramObject.text).replace(rx, rs) + ")";
|
2022-05-15 16:47:21 +00:00
|
|
|
}
|
|
|
|
operation.cutStart = operation.selStart;
|
|
|
|
operation.cutEnd = operation.selEnd;
|
|
|
|
}
|
|
|
|
operation.newSelStart = operation.selStart + operation.replacement.length;
|
|
|
|
operation.newSelEnd = operation.newSelStart;
|
|
|
|
};
|
|
|
|
|
|
|
|
})();
|