// ==UserScript== // @name LeetCode题目转Markdown // @version 2025-02-01 // @description 将LeetCode题目转换为Markdown格式 // @author forward // @match https://leetcode.cn/problems/* // @icon https://www.google.com/s2/favicons?sz=64&domain=leetcode.cn // @grant none // @namespace https://greasyfork.org/users/1429541 // @downloadURL https://update.greasyfork.icu/scripts/525440/LeetCode%E9%A2%98%E7%9B%AE%E8%BD%ACMarkdown.user.js // @updateURL https://update.greasyfork.icu/scripts/525440/LeetCode%E9%A2%98%E7%9B%AE%E8%BD%ACMarkdown.meta.js // ==/UserScript== (function() { 'use strict'; const DEBUG_MODE = false; let markdownText = ''; const style = document.createElement('style'); style.textContent = ` .leetcode2md-loading{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-radius:50%;border-top-color:transparent;animation:spin .8s linear infinite;opacity:.7} .leetcode2md-success{position:fixed;top:20px;right:20px;background:var(--success-color,#52c41a);color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10000;box-shadow:0 4px 12px rgba(0,0,0,.15);animation:slideIn .3s ease,fadeOut .3s ease 2s forwards} @keyframes spin{to{transform:rotate(360deg)}} @keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}} @keyframes fadeOut{from{opacity:1}to{opacity:0}} `; document.head.appendChild(style); const htmlToMarkdown = (() => { const rules = [ [/
([\s\S]*?)<\/pre>/g, '```\n$1\n```'],
            [/