现在思源更新了发布模式,通过发布模式访问思源内容可以设置不用鉴权。
但直接嵌入 ip:6806 是一个完整的编辑页面,现在我只需要引用他的一个 block 该如何做呢?
注意到思源的弹出块面板代码在这里: window.siyuan.blockPanels.push(new BlockPanel(
插件可以直接调用,所以我决定使用插件实现接受 url 参数 blockId 然后弹出一个块面板,并且让窗口只显示此块面板,实现代码位于: this.addFloatLayer({
安装 2234839/sy2video-plugin-siyuan 插件后开启发布模式就可以通过 url 参数来让页面只显示指定的块
- 需要配置 url 参数:
block_show (有此参数则功能生效)
block_id
例如:http://127.0.0.1:6806/stage/build/desktop/?block_show=1&block_id=20240621163257-fp4jwg8
效果:
失败的尝试
注意到思源本身提供了一个在新窗口打开块的功能:test1
这个打开的效果已经很接近了,那么如何通过 iframe 引用这个页面呢
首先在思源源码找到该页面的 url 规范 url: \${window.location.protocol}//\${window.location.host}/stage/build/app/window.html?v\=\${Constants.SIYUAN\_VERSION}&json\=\${encodeURIComponent(JSON.stringify(json))}
使用这里的代码来生成对应链接不可行, windows.html 里面的代码依赖了 electron 环境
现在思源更新了发布模式,通过发布模式访问思源内容可以设置不用鉴权。 ↩
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于