测试代码高亮加载

(async function __tabEvaluateScriptBridge() {
  const __tabScriptArgs = {"theme": "tomorrow", "showLineNumbers": true, "showCopyButton": true, "debug": true};
  const __tabOriginalFunction = (
    /**
     * 动态检测 <pre> 标签并加载 PrismJS 代码高亮
     * 
     * 功能:
     * - 检测页面中已有的 <pre><code> 块
     * - 使用 MutationObserver 监听动态新增的 <pre> 标签
     * - 自动从 CDN 加载 PrismJS 核心及语言包
     * - 根据 class/language 属性自动识别编程语言
     * - 支持行号显示、复制按钮等可选功能
     */
    async function run(args = {}) {
      // ========== 配置项 ==========
      const config = {
        // PrismJS CDN 基础路径(可自定义版本)
        prismCdnBase: args.prismCdnBase || 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0',
        // 是否显示行号
        showLineNumbers: args.showLineNumbers ?? true,
        // 是否添加复制按钮
        showCopyButton: args.showCopyButton ?? true,
        // 主题样式 (default / tomorrow / twilight / okaidia / dark / funky)
        theme: args.theme || 'default',
        // 额外要加载的语言列表(自动检测会补充)
        extraLanguages: args.extraLanguages || [],
        // 是否在控制台输出日志
        debug: args.debug ?? false,
      };
    
      // 主题 CSS 映射
      const THEME_CSS = {
        default: `${config.prismCdnBase}/themes/prism.min.css`,
        tomorrow: `${config.prismCdnBase}/themes/prism-tomorrow.min.css`,
        twilight: `${config.prismCdnBase}/themes/prism-twilight.min.css`,
        okaidia: `${config.prismCdnBase}/themes/prism-okaidia.min.css`,
        dark: `${config.prismCdnBase}/themes/prism-dark.min.css`,
        funky: `${config.prismCdnBase}/themes/prism-funky.min.css`,
        coy: `${config.prismCdnBase}/themes/prism-coy.min.css`,
        solarizedlight: `${config.prismCdnBase}/themes/prism-solarizedlight.min.css`,
      };
    
      // 语言别名映射(class 名称 -> Prism 语言名)
      const LANGUAGE_ALIASES = {
        'js': 'javascript',
        'ts': 'typescript',
        'py': 'python',
        'rb': 'ruby',
        'sh': 'bash',
        'shell': 'bash',
        'yml': 'yaml',
        'md': 'markdown',
        'cs': 'csharp',
        'c++': 'cpp',
        'h': 'c',
        'hpp': 'cpp',
        'fs': 'fsharp',
        'kt': 'kotlin',
        'rs': 'rust',
        'go': 'go',
        'java': 'java',
        'swift': 'swift',
        'scala': 'scala',
        'kotlin': 'kotlin',
        'graphql': 'graphql',
        'json': 'javascript', // JSON 用 js 高亮足够好
        'html': 'markup',
        'htm': 'markup',
        'svg': 'markup',
        'xml': 'markup',
        'vue': 'markup',
        'svelte': 'markup',
        'jsx': 'jsx',
        'tsx': 'tsx',
        'diff': 'diff',
        'sql': 'sql',
        'bash': 'bash',
        'batch': 'batch',
        'powershell': 'powershell',
        'dockerfile': 'docker',
        'docker': 'docker',
        'makefile': 'makefile',
      };
最新回复

请先登录后再回复 登录

一位过气的老牌手搓程序员兼用户体验测试员
发帖 125
评论 160
粉丝 2
关注 1
发新帖
目录

扫码手机打开本帖