// ==UserScript== // @name AnkiTool // @namespace https://ankiuser.net/edit/ // @version 0.3 // @description try to take over the world! // @author You // @match https://ankiuser.net/edit/ // @icon https://www.google.com/s2/favicons?sz=64&domain=ankiweb.net // @grant none // @run-at context-menu // ==/UserScript== (function() { 'use strict'; // Your code here... // 返回空闲的序号 function getIndex(text, index){ for(var i = index; i < 100; i++){ // 从小到大查找序号 if (text.indexOf("{{c" + i.toString()) < 0){ // 如果没有查到,返回空闲的序号 return i; } } } //获取选择的文本 var selecter = window.getSelection(); var text = selecter.anchorNode.textContent; if (selecter.toString()){ // 如果选中文本则给选中的文本增加标记 var rang = selecter.getRangeAt(0); var select = selecter.toString(); rang.deleteContents(); // 删除选中内容 rang.insertNode(document.createTextNode("{{c" + getIndex(text, 1).toString() + "::" + select + "}}")); }else{ // 如果没有选中文本,则给所有的数字增加标记 var start = 1; selecter.anchorNode.textContent = text.replace(/(-?\d+)\.?(\d*)(?!::|年|月|日|\d|\.|}})/g, function (){ var index = getIndex(text, start); start = index + 1; return "{{c" + index.toString() + "::" + arguments[0] + "}}" }); } })();