您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
将AcWing上的内容转换为markdown
// ==UserScript== // @name AcWing content to markdown // @namespace acwing // @match https://www.acwing.com/* // @grant GM_setClipboard // @version 1.4 // @author - // @description 将AcWing上的内容转换为markdown // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js // @require https://cdn.bootcdn.net/ajax/libs/turndown/7.1.1/turndown.min.js // @license MIT // ==/UserScript== let debug = false; // whether to enable on editor let turndownService = new TurndownService(); turndownService.keep(['del']); // code block turndownService.addRule('pre', { filter: 'pre', replacement: function (content, node) { let t = $(node).attr("class").split(/\s+/).slice(-1); if (t == "hljs") t = ""; return "```" + t + "\n" + content.trim() + "\n```"; } }); // remove <script> math turndownService.addRule('remove-script', { filter: function (node, options) { return node.tagName.toLowerCase() == "script" && node.type.startsWith("math/tex"); }, replacement: function (content, node) { return ""; } }); // inline math turndownService.addRule('inline-math', { filter: function (node, options) { return node.tagName.toLowerCase() == "span" && node.className == "MathJax"; }, replacement: function (content, node) { return "$ " + $(node).next().text() + " $"; } }); // block math turndownService.addRule('block-math', { filter: function (node, options) { return node.tagName.toLowerCase() == "div" && node.className == "MathJax_Display"; }, replacement: function (content, node) { return "\n$$\n" + $(node).next().text() + "\n$$\n"; } }); // add buttons $("div[data-tab='preview-tab-content']").each(function() { if (debug || $(this).prev().attr('data-tab') != "editor-tab-content") $(this).before( "<div> <button class='html2md-view'>显示markdown</button> <button class='html2md-cb'>复制markdown到剪贴板</button> </div>" ); }); $(".html2md-cb").click(function() { let target = $(this).parent().next().get(0); if (!target.markdown) target.markdown = turndownService.turndown($(target).html()); GM_setClipboard(target.markdown); // console.log(markdown); $(this).text("已复制到剪贴板"); }); $(".html2md-view").click(function() { let target = $(this).parent().next().get(0); if (target.viewmd) { target.viewmd = false; $(this).text("显示markdown"); $(target).html(target.original_html); } else { target.viewmd = true; if (!target.original_html) target.original_html = $(target).html(); if (!target.markdown) target.markdown = turndownService.turndown($(target).html()); $(this).text("显示原始内容"); $(target).html(`<textarea oninput="$(this).parent().get(0).markdown=this.value;" style="width:100%; height:400px;"> ${target.markdown} </textarea>`); } });