南瓜博士 2024年11月22日
超便捷的Markdown转公众号排版
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了一种使用Obsidian插件和自定义CSS将本地Markdown文章一键复制粘贴到公众号编辑器的方法。作者通过安装Obsidian的HTML复制插件,并利用Claude生成自定义CSS样式,实现了将包含图片和格式的文章内容快速复制到公众号编辑器,极大提升了公众号文章创作效率。这种方法避免了在飞书等平台撰写文章的繁琐操作,让用户能够更加专注于内容创作,提升写作体验。

🤔 **安装Obsidian HTML复制插件:** 作者推荐安装一个名为'复制内容 as HTML'的插件,该插件可以将Obsidian中的Markdown内容,连同图片一起,复制为HTML格式。

🎨 **自定义CSS样式:** 通过Claude生成自定义CSS样式,可以控制复制到公众号编辑器后的文章格式,例如标题、段落、图片、代码块等元素的样式,让文章更美观。

🚀 **一键复制粘贴:** 设置插件快捷键,例如shift+ctrl+c,一键将Obsidian中的文章复制为HTML格式,然后粘贴到公众号编辑器,所有图片和格式都能完整保留。

💡 **提升写作体验:** 该方法有效提高了公众号文章的创作效率,减少了在不同平台之间切换的麻烦,让用户能够更加专注于内容创作。

🙌 **AI辅助创作:** 作者利用Claude生成CSS样式,体现了AI工具在写作辅助方面的作用,简化了复杂的操作流程。

原创 ElfeXu 2024-11-21 19:26 上海

不想在飞书上写文章的,可以尝试我这个办法

前阵子大聪明的带带弟弟排版器[1]在飞书上发布了,很受欢迎。大家普遍反馈最棒的一点是图片可以一次性复制粘贴。

我之前一直用阿禅可能吧的排版器[2]排公众号文章,对于图片我有一套很顺畅的换图方式,一篇文章几十张图操作不超过半分钟,就感觉也还好。这回尝试了下大聪明的排版器,能批量贴图真的开心很多,才想起该迭代工具。

但是,我日常笔记都在 Obsidian 里,更喜欢本地用 markdown 写文章,不想换飞书。那就自己动手丰衣足食啦。

效果展示

我用键盘敲下的字符是这样的(图片部分通过复制粘贴得到)

在 Obsidian 里显示是这样的:

复制粘贴到公众号编辑器里是这样的:

实现步骤

一、给 Obsidian 安装插件

(Obsidian 本身的安装和使用可以看小七姐写的保姆级教程[3],本文就不啰嗦了。)

打开 Obsidian 的第三方插件库,搜 html,看到好多转换器,其中第二排第二个说复制内容 as HTML,并且包含图片。就它了!

点击安装后进入设置界面,把 Embed external images 打开,这样图片就能直接复制了。

再设个好记的快捷键,我选 shift+ctrl+c。

找一篇本地和网络各种来源的几十张图片的笔记,shift+ctrl+c,去公众号粘贴,果然,所有图片都稳稳当当出现在公众号里了。好用!

二、修改 CSS

目前粘贴出来的内容几乎没有任何格式,要让它好看就得定制自己的 css。

把设置里“custom template”选项打开,复制默认的 css 文本,贴给 claude。

提出我的格式要求:

把 claude 帮我写的 css 贴回设置里的文本框,再次尝试,复制粘贴出来的文章就有格式了。再提出一些修改意见让 claude 迭代。两轮后完工。


最后贴到设置里的 css 是这样的:

/* 标题样式 */h1, h2, h3, h4, h5, h6 {  color: #ff4c00;  margin: 1.5em 0 0.8em;  font-weight: 600;  line-height: 1.4;}h1 {  font-size: 36px;  border-bottom: 3px solid #ff4c00;  padding-bottom: 0.3em;}h2 {  font-size: 30px;  border-bottom: 2px solid rgba(255, 76, 0, 0.8);  padding-bottom: 0.2em;}h3 {  font-size: 24px;  border-bottom: 1px solid rgba(255, 76, 0, 0.6);  padding-bottom: 0.1em;}h4 { font-size: 20px; }h5 { font-size: 18px; }h6 { font-size: 16px; }/* 基础段落样式 */p {  font-size: 15px;  line-height: 1.6;  color: #333;  margin: 1em 0;}/* 脚注中的段落样式 */.footnotes p, section[class="footnotes"] p {  font-size: 12px !important;  color: #666 !important;  line-height: 1.5 !important;}/* 强调文本 */strong, b {  color: #ff4c00;  font-weight: 600;}/* 列表样式 */ul, ol {  padding-left: 1.5em;  margin: 1em 0;}ul li {  list-style: disc;}ul li span {  color: #333;  font-weight: normal;}ol li {  font-weight: 600;}ol li span {  color: #333;  font-weight: normal;}/* 代码块 */code, kbd, pre {  font-family: "Roboto Mono", "Courier New", Courier, monospace;  font-size: 14px;  background-color: #fff5f2;  border-radius: 4px;}pre {  padding: 1em;  margin: 1em 0;  overflow-x: auto;  border: 1px solid rgba(255, 76, 0, 0.1);}/* 图片 */img {  max-width: 100%;  border-radius: 8px;  margin: 1em 0;}/* 表格 */table {  width: 100%;  border-collapse: collapse;  margin: 1em 0;  background: white;  border: 1px solid #eee;}table th {  background-color: #fff5f2;  color: #ff4c00;  font-weight: 600;  text-align: left;  padding: 0.8em;  border: 1px solid #eee;}table td {  padding: 0.8em;  border: 1px solid #eee;}/* Callout 样式 */div[style*="callout"] {  margin: 1em 0;  padding: 1em;  border-radius: 8px;  border: 1px solid rgba(255, 76, 0, 0.1);  background: #fff5f2;}div[style*="callout-title"] {  padding: 0.8em;  color: #ff4c00;  font-weight: 600;  border-bottom: 1px solid rgba(255, 76, 0, 0.1);}div[style*="callout-content"] {  padding: 1em;  background-color: white !important;}/* 任务列表 */li[style*="task-list-item"] {  list-style: none;  padding-left: 0;}input[type="checkbox"] {  margin-right: 0.5em;}/* 引用块 */blockquote {  margin: 1em 0;  padding: 0.5em 1em;  border-left: 4px solid #ff4c00;  background-color: #fff5f2;  color: #666;}/* 链接样式 */a {  color: inherit;  text-decoration: underline;}/* 分隔线 */hr {  border: none;  border-top: 2px solid rgba(255, 76, 0, 0.2);  margin: 2em 0;}/* 代码块 */pre {  padding: 1em;  margin: 1em 0;  max-height: 350px;  overflow-y: auto; /* 只保留垂直滚动 */  border: 1px solid rgba(255, 76, 0, 0.1);  white-space: pre-wrap; /* 允许自动换行 */  word-wrap: break-word; /* 确保长单词也能换行 */  overflow-x: hidden; /* 隐藏横向滚动条 */}code, kbd, pre {  font-family: "Roboto Mono", "Courier New", Courier, monospace;  font-size: 14px;  background-color: #fff5f2;  border-radius: 4px;  white-space: pre-wrap; /* 允许自动换行 */  word-wrap: break-word; /* 确保长单词也能换行 */}

再次测试,就是你们看到的这篇文章的样式了。满意,收工。

一些感想

从开始有想法到最终搞定这个功能其实只花了一小时(中间还有十几分钟尝试做网页版插件的歪路)。但直到用起来了,我才感受到写公众号发文章体验能有多丝滑:现在我的每一个小笔记都想发就发完全零阻力,改动也是零阻力每次改后更新只需两秒钟。

立刻觉得自己之前的将就是多么不可原谅了……是的我有一些借口:审美不行 CSS 调不出可能吧的效果,流程已经优化过了也不算麻烦,需求总会变总有些边边角角功能搞不定还是得手动……但比起现在享受到的顺畅,以及这种顺畅可能带来的质的变化,之前的理由太立不住脚了啊。

还是得勤快点多折腾。有 AI 在,折腾这些事儿,都超级简单呢。


    带带弟弟排版器 https://mp.weixin.qq.com/s/Qh-oLJBRLFPlcd29f4ka4A

    阿禅的可能吧 Markdown 转公众号排版 https://knb.im/mp/

    小七姐的保姆级 Obsidian 教程 https://vxc3hj17dym.feishu.cn/wiki/JlXcwBdUjiB4makSaAPcME9WnIc?from=from_copylink

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Obsidian 公众号 Markdown CSS AI辅助
相关文章