Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

toc插件可以搞一个侧边栏展示 #19

Open
dongrentianyu opened this issue Mar 23, 2024 · 1 comment
Open

toc插件可以搞一个侧边栏展示 #19

dongrentianyu opened this issue Mar 23, 2024 · 1 comment

Comments

@dongrentianyu
Copy link

这样就和大多数的博客样式差不多了。

<$let
readtiddler= {{{ [[$:/temp/focussedTiddler]get[text]] }}} >
<$page-toc tiddler=<<readtiddler>> emptyMessage="Empty TOC"/>
</$let>

我这里是简单定义了一个readtiddler变量,这样就能获得当前查看条目的正文了。

image

就能获得上面的效果。

但如果故事河中有很多个条目,而这个长文又不是故事河的条目的话,就看不到了。

而另一个问题是,条目上的按钮如果不是直接放在那一排按钮上,而是放在更多中打开,点击就看不到toc的效果。


所以为了解决上面两个问题,我觉得可以设计一个按钮,点击就会在侧边栏大纲中展示当前条目的大纲。

这个意思就是只有当读者想查看当前条目大纲时,才展示大纲,其他时间不用展示。

稍后我会研究一下能不能实现。如果能实现,可以提pr来帮助处理。

@dongrentianyu
Copy link
Author

基本上是可行的。通过按钮控制两个状态条目,然后就可以展示了。

\whitespace trim

<$list filter="[<currentTiddler>field:type[text/vnd.tiddlywiki]!prefix[$:/]] :or[<currentTiddler>!prefix[$:/]field:type[]]">
<$button
tooltip="在侧边栏打开大纲"
aria-label="在侧边栏打开大纲"
class=<<tv-config-toolbar-class>>>
<$action-setfield $tiddler="$:/state/toc/readtiddler" text=<<currentTiddler>> />
<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="大纲展示"/>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/core/images/gitter}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]"><span class="tc-btn-text">在侧边栏打开大纲</span></$list>
</$button>
</$list>

上面的是按钮的代码。图标和状态条目名称都是随便搞的。侧边栏大纲展示的代码和上面的差不多。

<$let
readtiddler= {{{ [[$:/state/toc/readtiddler]get[text]] }}} >
<$page-toc tiddler=<<readtiddler>> emptyMessage="Empty TOC"/>
</$let>

这样就可以在整体的故事河中打开想查看条目的目录了。


当然,上面按钮还有一个问题,就是点一次之后会在侧边栏显示大纲展示。再点并不能关闭。

虽然可以搞一个相对复杂的按钮来实现,点一下展示,再点一下就切换成最近页面。但感觉不是很有必要。因为这样子能让读者在阅读时,一边查看目录。看完之后,只能就会去点其他的了。比如文本中的链接。

所以我觉得应该给这个按钮再增加限制。比如条目带有字段long-text-toc,且值为yes的,才呈现上面的按钮。这样的话,就可以让创作者决定什么是长文条目。从而呈现这个按钮。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant