本文档描述了如何将 @mdfriday/shortcode-compiler 发布到 npm。
确保 package.json 包含以下关键配置:
{
"name": "@mdfriday/shortcode-compiler",
"version": "0.1.0",
"description": "A shortcode compiler for markdown content, supporting nested shortcodes and frontmatter",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"dist",
"README.md",
"LICENSE"
],
"publishConfig": {
"access": "public"
}
}确保以下文件存在且内容完整:
README.md:包含使用说明和 API 文档LICENSE:包含许可证信息src/:源代码目录tsconfig.json:TypeScript 配置文件
npm installnpm test确保所有测试通过。
npm run build检查 dist/ 目录是否包含以下文件:
- JavaScript 文件 (
.js) - 类型声明文件 (
.d.ts) - Source map 文件 (
.js.map)
npm login输入你的 npm 账号信息:
- 用户名
- 密码
- 邮箱
- 双因素认证码(如果启用)
npm publish --access public发布过程会自动执行以下步骤:
- 运行
prepublishOnly脚本(运行测试) - 运行
prepare脚本(清理并构建项目) - 打包并上传到 npm 仓库
访问 npm 网站验证包是否已发布: https://www.npmjs.com/package/@mdfriday/shortcode-compiler
在一个新项目中测试安装:
npm install @mdfriday/shortcode-compiler在你的 Obsidian 插件项目中运行:
npm install @mdfriday/shortcode-compilerimport { ShortcodeRenderer, ContentProvider } from '@mdfriday/shortcode-compiler';
// 创建 ShortcodeRenderer 实例
const renderer = new ShortcodeRenderer();
// 注册 shortcodes
renderer.registerShortcode('link', (params, content) => {
const url = params.find(p => p.startsWith('url='))?.replace(/^url="|"$/g, '') || '#';
return `<a href="${url}">${content || url}</a>`;
});
// 创建 ContentProvider 实例
const provider = new ContentProvider({ shortcodeRenderer: renderer });
// 处理内容
const content = `
---
title: My Page
---
Here's a {{< link url="https://example.com" >}}link{{< /link >}}
`;
const result = await provider.getPageContent('example.md', content);
console.log(result.content); // 输出处理后的 HTML当需要发布新版本时:
- 更新
package.json中的版本号 - 更新
CHANGELOG.md(如果有) - 提交更改到 Git
- 创建新的 Git tag
- 重复发布流程