AnkiTool
// ==UserScript==
// @name AnkiTool
// @namespace https://ankiuser.net/edit/
// @version 0.4
// @description try to take over the world!
// @author You
// @match https://ankiuser.net/edit/*
// @match https://ankiuser.net/add
// @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] + "}}"
});
}
})();