我之前制作了一个微型工具来将后期导出转换为 Markdown,但决定进一步扩展它。所以这里有nanuq ,一个微型工具,可以将您的bearblog.dev post_export.csv
转换为JSON、单个Markdown 文件或完整的静态站点。静态站点导出包括所有功能:bearblog 默认设计、Atom feed、站点地图和主题注入。
注意:nanuq 并不是要放弃 Bear 博客——它只是一种备份和重新调整帖子用途的快速方法,同时保持它们可以多种格式访问。 Bear 仍然不支持 Markdown 导出,虽然所有这些都可以通过脚本完成,但我认为组合一个 GUI 来使每个人的过程变得更容易会很有趣。
示例站点
特征
- 🔄 将 CSV 转换为 JSON
- 📝 导出单独的 Markdown 文件
- 🌐 生成完整的静态站点
- 🎨 注入小熊博客主题
- 📰 原子提要生成
- 🗺️ 站点地图生成
- 📜 自定义 JavaScript 注入
用法
- 访问mgx.me/nanuq
- 从 bearblog.dev上传
post_export.csv
文件 - 选择您的导出格式:
- JSON:获取包含所有帖子的单个 JSON 文件
- Markdown 文件:获取每个帖子的单独 Markdown 文件
- 静态站点:获取完整的、可立即部署的网站
导出格式
JSON 导出
- 包含所有帖子的单个 JSON 文件
- 维护默认或用户配置的帖子元数据
- 易于导入到其他系统
降价导出
- 每个帖子的单独 Markdown 文件
- 包括默认或用户配置的带有元数据的前言
- 以日期和 slug 命名的文件(例如
2024-03-20-my-post.md
)
自定义标头
您可以自定义导出中的列标题以匹配您现有的静态站点生成器设置。如果您想要执行以下操作,这尤其有用:
- 将您的熊帖子导入另一个 SSG(例如 Hugo、Jekyll 或 Astro)
- 匹配您现有的前言结构
自定义标题:
- 在“自定义标头”部分中,修改标头名称以匹配目标 SSG 的预期格式
- 在“选择要包含的字段”部分中,选择要导出的字段
- 点击“重置为默认”即可恢复原始标题
要包含的字段
“选择要包含的字段”部分允许您选择 CSV 导出中的哪些字段将包含在最终的 JSON 或 Markdown 输出中。当您想要执行以下操作时,这很有用:
- 仅保留静态站点的基本元数据
- 减小导出文件的大小
默认情况下,选择所有字段。你可以:
- 取消选中您不想包含的字段
- 使用“重置为默认值”按钮恢复所有字段
- 您的选择将保存在浏览器中以供将来使用
JSON 导出示例
导出为 JSON 时,只有选定的字段将包含在输出中。这减少了有效负载大小并简化了数据处理。例如:
{ "posts": [ { "title": "My Post", "meta_description": "meta description", "tags": "tags here", "content": "...", "published date": "2024-03-20T" } ] }
静态站点导出
nanuq 从您的post_export.csv
创建一个完整的、准备托管的网站
- 包括:
- Atom feed(可在 /feed 获取)
- 站点地图(位于 /sitemap.xml)
- SEO 元标签
- 可定制的导航
- 可定制的页脚
- 完全的 bearblog.dev CSS 兼容性
- 自定义 JavaScript 注入
静态站点导出选项
导出为静态站点时,您可以自定义:
- 网站标题:您博客的名称
- 站点域:您网站的 URL(例如,https://example.com)
重要提示:此设置对于 RSS 提要和站点地图生成至关重要。如果不设置您的实际域,这些文件将默认为网络工作人员的域或只是一个正斜杠。
- Favicon :使用表情符号(例如🐻)或链接到图标文件
- Lang :索引页的默认语言代码(例如 en、es、fr)
- 站点描述:站点的默认元描述
- 站点元图像:社交共享的默认图像
- 导航链接:以 Markdown 格式添加菜单项
- 页脚文本:以 Markdown 格式自定义页脚内容
- 将 JS 注入到
<head>
:添加将在结束 head 标签之前注入的自定义 JavaScript - 将 JS 注入到
<footer>
:添加将在结束页脚标记之前注入的自定义 JavaScript - 自定义 CSS :使用您自己的 CSS 覆盖默认样式
CSS兼容性:静态站点导出继承了bear的HTML骨架和CSS类,使其与现有的bearblog.dev主题完全兼容。您可以将小熊 CSS 直接粘贴到自定义 CSS 字段中,它将按预期工作。如果您熟悉 Bear 的设计系统,这可以确保无缝过渡。
HTML lang 属性(解释)
静态站点支持通过以下方式自定义 lang 属性:
- 默认语言:使用“Lang”选项设置索引页的默认语言
- 每个帖子的语言:每个帖子可以在 CSV 数据中拥有自己的语言代码(使用“lang”列)
如果没有为帖子指定语言,它将使用默认语言
JavaScript 注入(已解释)
您可以在两个位置注入自定义 JavaScript:
- Head 部分:在结束
</head>
标记之前注入的脚本 - 页脚部分:在结束
</footer>
标记之前注入的脚本
注意:目前,静态站点导出默认不包含任何语法高亮。要添加语法突出显示,您可以在“将 JS 注入到
<head>
”部分中注入 Prism.js 或类似的库。例如:<link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
JS 用法示例:
<script>console.log('Hello from above!');</script> <script src="/analytics.js"></script>
再次强调,nanuq 是一个简单的微型工具,适合那些直接在 bearblog.dev 上写作而无需备份的人,可以轻松保证您的内容安全、灵活且几乎不会过时。虽然nanuq 功能齐全并且可以使用,但目前仍处于测试阶段。如果您遇到任何错误或错误消息,请连同您的 CSV 文件一起向我报告。