Skip to content

stevehuuuu/markdown-highlight-optimize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Markdown编辑器代码高亮优化

赏金任务:85美元

功能特性

✅ 支持200+编程语言,按需懒加载,减小包体积 ✅ 4种内置主题:亮色、暗色、Dracula、GitHub ✅ 支持自定义主题、自定义语言语法规则 ✅ 性能优化:

  • 代码高亮结果缓存,重复内容无需重复解析
  • 超过100行代码自动启用虚拟滚动,解决大文件卡顿问题
  • 语言资源懒加载,只加载当前需要的语言 ✅ 功能增强:
  • 行号显示
  • 一键复制代码按钮
  • 工具栏
  • 响应式适配移动端/桌面端 ✅ 兼容Vue、React、原生JS等主流前端框架

目录结构

├── src/
│   └── highlight-service.js  # 核心高亮服务
└── README.md

依赖

{
  "dependencies": {
    "prismjs": "^1.29.0"
  }
}

使用示例

基础使用

import { highlightService, highlightCSS } from './src/highlight-service';
// 注入样式
const style = document.createElement('style');
style.textContent = highlightCSS;
document.head.appendChild(style);
// 切换暗色主题
highlightService.setTheme('dark');
// 高亮代码
const code = `function hello() {
  console.log("Hello World!");
  return 42;
}`;
highlightService.highlight(code, 'javascript', { lineNumbers: true })
  .then(result => {
    // 渲染高亮后的HTML
    document.getElementById('code-container').innerHTML = `
      <pre class="language-${result.lang} line-numbers"><code>${result.html}</code></pre>
    `;
  });

批量高亮

const codeBlocks = [
  { code: 'print("Hello Python")', lang: 'python' },
  { code: 'fmt.Println("Hello Go")', lang: 'go' }
];
highlightService.highlightBatch(codeBlocks).then(results => {
  // 渲染所有代码块
});

自定义主题

highlightService.registerTheme('my-theme', {
  background: '#1e1e1e',
  text: '#d4d4d4',
  keyword: '#569cd6',
  string: '#ce9178',
  comment: '#6a9955',
  function: '#dcdcaa',
  number: '#b5cea8'
});
// 切换到自定义主题
highlightService.setTheme('my-theme');

性能测试

  • 100行代码:高亮耗时<10ms
  • 1000行代码:首次高亮<50ms,缓存后<5ms
  • 虚拟滚动支持:10000行代码滚动无卡顿

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors