如何在本地无需复制粘贴,在Markdown文件中引用代码
本地Markdown引用本地代码文件的解决方案
1. 用VS Code插件实现实时预览引用
搭配VS Code的Markdown Preview Enhanced插件,直接支持本地代码文件的嵌入引用:
- 安装插件后,在Markdown里用如下语法指定要引用的代码文件:
```python {file="./path/to/your/script.py"} - 可指定具体行范围,只引用部分代码片段:
```javascript {file="./app.js", lines="5-15"} - 打开Markdown预览时,插件会自动读取本地文件内容并渲染成代码块,修改原代码文件后,预览会实时同步更新。
2. 写本地脚本自动替换引用标记
如果需要生成不依赖编辑器插件的静态Markdown文件,可写简单脚本批量替换引用标记:
- 先在Markdown里用自定义标记标记要引用的文件,比如
[[code:./utils.py]] - 运行以下Python脚本,自动把标记替换为实际代码块:
import re from pathlib import Path def inject_local_code(md_file_path): md_content = Path(md_file_path).read_text(encoding='utf-8') # 匹配自定义的代码引用标记 ref_pattern = r'\[\[code:(.*?)\]\]' def replace_with_code(match): code_file = match.group(1) code_content = Path(code_file).read_text(encoding='utf-8') # 根据文件后缀自动设置语法高亮语言 lang = code_file.split('.')[-1] if '.' in code_file else 'text' return f'```{lang}\n{code_content}\n```' updated_content = re.sub(ref_pattern, replace_with_code, md_content) Path(md_file_path).write_text(updated_content, encoding='utf-8') if __name__ == '__main__': inject_local_code('your_notes.md') - 每次更新原代码文件后,重新运行脚本即可同步笔记里的代码内容。
3. 用Pandoc编译时嵌入代码
如果用Pandoc处理Markdown生成HTML/PDF等格式,可直接利用其内置的文件引用功能:
- 在Markdown里用语法嵌入代码文件:
```python <<include ./path/to/script.py>> - 执行Pandoc编译命令时,会自动读取本地文件内容替换占位符:
pandoc your_notes.md -o your_notes.html - 若只想引用文件的某几行,可结合
sed命令(Linux/macOS):```python <<(sed -n '10,20p' ./script.py)>>
内容的提问来源于stack exchange,提问作者unpantofar
相关产品推荐
相关产品推荐

