diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 45063e83..9fc1663c 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -15,5 +15,6 @@ "dynamic-outline", "obsidian-git", "cmdr", - "math-in-callout" + "math-in-callout", + "wikilinks-to-mdlinks-obsidian" ] \ No newline at end of file diff --git a/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/main.js b/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/main.js new file mode 100644 index 00000000..23402bb0 --- /dev/null +++ b/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/main.js @@ -0,0 +1,156 @@ +'use strict'; + +var obsidian = require('obsidian'); + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +var WikilinksToMdlinks = /** @class */ (function (_super) { + __extends(WikilinksToMdlinks, _super); + function WikilinksToMdlinks() { + return _super !== null && _super.apply(this, arguments) || this; + } + WikilinksToMdlinks.prototype.onload = function () { + var _this = this; + console.log('loading wikilinks-to-mdlinks plugin...'); + this.addCommand({ + id: "toggle-wiki-md-links", + name: "Toggle selected wikilink to markdown link and vice versa", + checkCallback: function (checking) { + var currentView = _this.app.workspace.getActiveLeafOfViewType(obsidian.MarkdownView); + if ((currentView == null) || (currentView.getMode() !== 'source')) { + return false; + } + if (!checking) { + _this.toggleLink(); + } + return true; + }, + hotkeys: [{ + modifiers: ["Mod", "Shift"], + key: "L" + }] + }); + }; + WikilinksToMdlinks.prototype.onunload = function () { + console.log('unloading wikilinks-to-mdlinks plugin'); + }; + WikilinksToMdlinks.prototype.toggleLink = function () { + var currentView = this.app.workspace.getActiveLeafOfViewType(obsidian.MarkdownView); + var editor = currentView.sourceMode.cmEditor; + var cursor = editor.getCursor(); + var line = editor.getDoc().getLine(cursor.line); + var regexHasExtension = /^([^\\]*)\.(\w+)$/; + var regexWiki = /\[\[([^\]]+)\]\]/; + var regexParenthesis = /\((.*?)\)/; + var regexWikiGlobal = /\[\[([^\]]*)\]\]/g; + var regexMdGlobal = /\[([^\]]*)\]\(([^\(]*)\)/g; + var wikiMatches = line.match(regexWikiGlobal); + var mdMatches = line.match(regexMdGlobal); + var ifFoundMatch = false; + // If there are wikiMatches find if the cursor is inside the selected text + var i = 0; + if (wikiMatches) { + for (var _i = 0, wikiMatches_1 = wikiMatches; _i < wikiMatches_1.length; _i++) { + var item = wikiMatches_1[_i]; + var temp = line.slice(i, line.length); + var index = i + temp.indexOf(item); + var indexEnd = index + item.length; + i = indexEnd; + if ((cursor.ch >= index) && (cursor.ch <= indexEnd)) { + ifFoundMatch = true; + var text = item.match(regexWiki)[1]; + // Check if it is a markdown file + var matches = text.match(regexHasExtension); + var newText = text; + if (matches) { + var filename = matches[1]; + var extension = matches[2]; + } + else { + newText = newText + ".md"; + } + var encodedText = encodeURI(newText); + var newItem = "[" + text + "](" + encodedText + ")"; + var cursorStart = { + line: cursor.line, + ch: index + }; + var cursorEnd = { + line: cursor.line, + ch: indexEnd + }; + editor.replaceRange(newItem, cursorStart, cursorEnd); + } + } + } + i = 0; + if (ifFoundMatch == false) { + if (mdMatches) { + for (var _a = 0, mdMatches_1 = mdMatches; _a < mdMatches_1.length; _a++) { + var item = mdMatches_1[_a]; + var temp = line.slice(i, line.length); + var index = i + temp.indexOf(item); + var indexEnd = index + item.length; + i = indexEnd; + if ((cursor.ch >= index) && (cursor.ch <= indexEnd)) { + ifFoundMatch = true; + var text = item.match(regexParenthesis)[1]; + text = decodeURI(text); + // Check if it is a markdown file + var matches = text.match(regexHasExtension); + if (matches) { + var filename = matches[1]; + var extension = matches[2]; + if (extension == 'md') { + text = filename; + } + } + var newItem = "[[" + text + "]]"; + var cursorStart = { + line: cursor.line, + ch: index + }; + var cursorEnd = { + line: cursor.line, + ch: indexEnd + }; + editor.replaceRange(newItem, cursorStart, cursorEnd); + } + } + } + } + }; + return WikilinksToMdlinks; +}(obsidian.Plugin)); + +module.exports = WikilinksToMdlinks; + + +/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/manifest.json b/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/manifest.json new file mode 100644 index 00000000..12ee2fa4 --- /dev/null +++ b/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "wikilinks-to-mdlinks-obsidian", + "name": "Wikilinks to MDLinks", + "version": "0.0.12", + "minAppVersion": "0.9.12", + "description": "A plugin that converts wikilinks to markdown links and vice versa", + "author": "Agatha Uy", + "authorUrl": "https://github.com/agathauy", + "isDesktopOnly": false +}