这是一款从 思源笔记本 生成一个静态站点的工具

这个网站的文章内容就是基于 OceanPress 构建的

点击这里查看纯粹由 OceanPress 构建的「思源帮助笔记」的效果

特性

  1. 兼容思源绝大部分效果

  2. 彻底的静态站点,可以直接将文件拖拽到浏览器打开不需要启动 http 服务(非常适合用来分发软件的使用说明文档之类的)

    1. 目前完全离线会有显示上的一些问题,主要是 vditor 依赖的一些 cdn 资源还没有配置成本地资源,之后会实现完全离线

  3. 支持底部反链列表显示

  4. 支持生成 rss.xml 查看效果 - 崮生_最近更新 rss

待办

  1. ...

  2. 头图显示功能( 6月文档设置了头图 )

  3. 对于底部反链中的块引用解析发出的警告 添加对应的描述

  4. 利用 go:embed 将静态资源嵌入到二进制文件

  5. 跨笔记本引用的处理(现在只是会报找不到警告,之后应该考虑可以引用或者其他形式)

  6. OceanPress 挂件块支持

  7. 在火狐上,任务列表前方的图标没有显示,引导线也未正常显示,优化列表样式兼容

其他相关信息

思源 生成静态站点 issues 开发记录

md2website github 地址 移动到 siyuan-note 组织了 oceanpress github 地址( 相关 issues ) , 并且改名 OceanPress

版本信息

v0.3

    • ✨ feat(rss): rss 生成功能:在文档名为 [/s/S]*.rss.xml 这种格式的时候(例如:最近更新.rss.xml 最近新增.rss.xml ) 会根据该文档内引用的其他文档另外生成一份 xml 格式的文件。

  1. 点击 cargo install itm 无法定位到该元素

  2. cargo install itm 此处下方渲染多了一行列表(应该算思源的bug,该列表内容为空但思源没有显示)

  3. 图片的居中效果没有生效,下方的描述文字也是这样

  4. 🐞 fix(代码块): 添加 id 等属性 之前没有 id 导致对代码块的引用无法跳转对应位置

  5. ✨ feat(块引用): 对于命名块的引用应该显示其命名,示例 rust Result

  6. 🐞 fix(块引用): 对于代码块的块引用没有渲染文本

  7. 当一个文档被同一个块内部引用了两次的时候底部反链也会渲染两次,应该改成只渲染一次 🎈 perf(底部反链): 相同的块只渲染一次 🎈 perf(render): 优化渲染速度;底部反链不再渲染当前文档内的引用

  8. 添加运行计时,优化编译速度

v0.2.9 之前的提交

  1. 块引用渲染产生了多余的空格

  2. 超级块排版渲染有比较严重的问题 🐞 fix(超级块): 修复顺序错乱

    1. 春秋义战 这里标题部分甚至渲染了两遍信息块

  3. 软换行没有渲染出效果 ✨ feat(软换行): 完成软换行适配

开发记录

OceanPress 挂件块支持

起始-qq群讨论

88250 2021-05-25 22:05:31 @2234839 思源挂件块 Widget Block

2234839 2021-05-25 22:08:27 @88250 看上去如果没有运行时的api调用的话 oceanPress 可以兼容 /疑问

88250 2021-05-25 22:09:08 iframe 得有伺服环境

2234839 2021-05-25 22:16:28 直接兼容好像不可能,不过挂件块如果提供一个hook函数在这个函数内做完从用户输入以及思源api调用返回他需要的数据,oceanpress 将这个数据持久化到页面然后再通过iframe喂给挂件块。还是有一定的机会

88250 2021-05-25 22:18:14 了解,这部分下个月我们讨论一下

2234839 2021-05-25 22:18:23 @88250 OK

可行性

  • golang 的 ECMAScript/js 引擎 : https://github.com/dop251/goja

    • 对 es6 的支持还不太行(也许可以通过运行 babel.js 来解决这个问题)

我目前的大致思路就是利用 goja 来 执行 hook 函数并持久化数据

链接到此文档的相关文档

OceanPress

在这种情况下 如果支持 Link to Text Fragment 的链接,虽然跨页面还是不行(需要多页面建议像我这样自建一个网站,可以利用 OceanPress ),但至少在单页的文档下链接体验会有一个提升。

今天又折腾了一下自己的博客和 OceanPress ,改成了使用 custom Element 来组织页面结构,另外博客中的链接也终于可以正常跳转,页面不会在没有必要的时候刷新了。

md2website 的内容移动到 OceanPress

利用 vditor 渲染的效果很好 Markdown 完整示例 再美化一下菜单页面 md2website 就基本可用了 🎉

OceanPress : 这是一款从 思源笔记本 生成一个静态站点的工具

by 崮生 from 崮生 • 一些随笔 🎨,欢迎 赞助本文
本文欢迎分享与聚合,全文转载未经授权( 联系我)不许可。