前言
VS Code是我的主力文字编辑器,目前我的所有博客与课题调研工作都是使用它进行编辑的。Markdown格式也是我最喜欢的文本格式,它让我可以快速整理想法而仅仅考虑基本的格式。
但在做课题调研时我习惯使用[n]
作为参考文献序号,VS Code不能对这种序号进行自动递增和重新索引,于是我想开发一款插件实现这两个功能,插件的名字就叫Reference Extension
吧。
准备工作
0、更新npm、cnpm:1
2
3
4nvm install 18
# 安装cnpm
npm install -g cnpm -registry=https://registry.npm.taobao.org
1、安装 Yeoman 和 VS Code Extension Generator:1
cnpm install -g yo generator-code
2、创建一个新的插件项目Reference Extension
1
2
3
4
5
6
7
8
9
10
11yo code
# ? What type of extension do you want to create? New Extension (TypeScript)
# ? What's the name of your extension? Reference Extension
# ? What's the identifier of your extension? reference-extension
# ? What's the description of your extension? Literature Citation Extension
# ? Initialize a git repository? Yes
# ? Bundle the source code with webpack? Yes
# ? Which package manager to use? npm
cd reference-extension
代码
主要实现两个功能:
[n]
格式索引增加项时自动递增(实际只实现了一部分)。[n]
格式索引重新索引,包含删除项与增加项(实际只实现了一部分)。
1 | // 导入 VSCode 模块 |
这代码写的很糙,只实现了部分功能,但是也确实没时间去学markdown-it
的插件实现了,以后再去实现吧(正常来说我要实现的东西通过markdown-it
自定义插件插入的形式实现更方便…在插件上写插件😂)。
测试
项目F5进行调试,创建一个Markdown文件,写入对应情景内容,别忘了在package.json
中设置触发条件。
打包发布
要想发布插件到市场,需要创建在Azure DevOps上创建个人访问令牌,如果没有组织则需要先创建组织。可以用GitHub账户登陆Azure DevOps创建组织,比如dev.azure.com/SilenceZheng66
。
然后创建项目,在项目中创建PAT(Personal Access Tokens)并记住它。下面需要在Visual Studio Marketplace创建一个publisher,这里需要注意的是这里必须使用刚才创建个人访问令牌的微软账号,这里的publisher需要和package.json里的publisher字段一致。
准备就绪后,下载vsce
,用来打包/发布/管理插件的命令行工具。
1 | cnpm install -g vsce |
执行发布:
1 | # 登录 |
使用webpack打包插件:
1 | cnpm i --save-dev webpack webpack-cli ts-loader |
参考文献
[1] https://rackar.github.io/vscode-ext-doccn/get-started/your-first-extension.html
[2] https://github.com/yzhang-gh/vscode-markdown
[3] https://juejin.cn/post/7327570230775201826
[4] https://zhuanlan.zhihu.com/p/459554765
[5] https://juejin.cn/post/6844903921555603470
[6] https://markdown-it.github.io
[7] https://juejin.cn/post/7076649162653040647
后记
首发于 silencezheng.top,转载请注明出处。