刚启动成功了,但没搞明白是怎么用的。
Global Moderators
Forum wide moderators
帖子
-
【TW前瞻】MultiWikiServer 锐意开发中的官方多维基服务器,未来可期 -
筛选器的上限确实,我把list想得太抽象了。
后来我发现,即使我要判断,但因为我的节点丸和根目录是放在一起的,所以实际上我只要判断节点丸就可以了。并不需要判断那么多根目录。因为节点丸也足矣构成上下文内容。
-
筛选器的上限目前还不算卡,用起来的时候也影响不大。
我把上面根目录的筛选器改成了用list微件的形式。
<$list filter="[tag[wikis]]" variable="root-name"> <$transclude $variable="context-root" tiddler=<<showTiddler>> name=<<root-name>> tid-name=<<root-name>> use-true="true" limit="15" /> </$list>
感觉能增加点筛选使用效率。
但要做条件判断就不好处理了。因为孤立条目只能是无硬式链接条目,但有些有反向嵌入的也应该要排查出来。
我尝试了一下,目前还是解决不了,就先放着了。
-
筛选器的上限总结来说,就是TiddlyWiki的底层机制是怎样的。怎么处理复杂的渲染,刷新,状态管理。能承受的上限是什么。
我最近折腾的小东西,感觉很吃渲染,虽然没有明显的卡顿,但能感觉到是卡了一下的。当然我写的wikitext肯定也不够好。
没有往英文论坛那边发,是感觉这个东西还没说清楚。可能下次有机会我演示一下就好了。
-
筛选器的上限最近我做了一些小东西,其中一个工具是,在条目页面上有一个按钮,点开后会显示一个弹窗,弹窗里有一些关于这个条目的内容。
其中一个是上下文的内容,包括两个方面,一个方面是此条目所属的根目录,并构建一个面包屑。一个方面是关于此条目下面的子条目,链接和嵌入等内容。如下图所示。
此条目的根目录在WENAI,包含一个链接,一个标签,一个嵌入内容。
因为之前使用TiddlyWiki是好几个wiki,所以现在我的根目录有好几个,并不只有一个。
ok,现在问题来了,如果我建立一个条目,这个条目不存在那几个根目录之下,且没有链接,也没有标签,也没有嵌入。那么这个条件判断应该怎样写呢?
我知道其实这个问题并没有太大的实际用处,因为正常来说,一个什么上下文信息都不包含的条目没有查看的必要。
但因为旁边我还有其他功能,比如可以快速修改标签或字段的功能,所以我才会想着当打开一个条目,没有任何上下文时,展示出一段文字。(当然更好的做法是直接切换到其他页面去,但同样我也不知道怎么做。)
如果我要解决这个问题,也同样是从上述两方面入手。
面包屑我是使用in-Tag-tree-of,包装的宏代码里有下面这个初始判断。即判断当前条目是否属于某个给定的根目录。
<$list filter="[[$tiddler$]!prefix[$:/]in-tagtree-of:inclusive[$name$]]">
但因为我有好几个根目录,所以这个list判断应该要写好几个,且需要嵌套,因为可能需要一些循环方式,在TiddlyWiki里写循环就是用list,可惜在这一步我就不会了。
第二个方面则是关于此条目的内容,这里我是用自己之前修改kookma的宏,所构建的节点丸。
$:/plugins/mabuqian/gumo-customisation/node-explorer-colorful
\import $:/plugins/mabuqian/gumo-customisation/node-explorer \define subtiddler-pattern() $(currentTiddler)$ \define type-class() badge p-1 badge-$(type)$ <$list filter="[all[current]get[node-explorer]!match[hide]] [all[current]!has[node-explorer]] :and[!is[system]]" variable=null> <$list filter=<<mainFilter>> variable="currentRecord"> <$let type={{{ [all[current]links[]match<currentRecord>then[info text-white]] [all[current]backlinks[]match<currentRecord>then[danger text-white]] [all[current]tagging[]match<currentRecord>then[warning text-dark]] [all[current]tags[]match<currentRecord>then[success text-white]] [<currentRecord>prefix<subtiddler-pattern>then[primary text-white]] :else[<currentRecord>search:text<currentTiddler>then[secondary text-white]else[dark text-white]] }}} > <$link to=<<currentRecord>> class=<<type-class>> /> </$let> </$list> </$list>
可以从代码中看到,里面做了很多的判断条件。
那如何判断一个条目,没有标签也没有链接也没有其他类似的项目呢?难道又把上面的代码都改一遍?
更何况,这不是一个页面按钮,而是经常会用的按钮。换言之,我会经常在新建条目时,点开这个按钮。
所以每当这个条目什么上下文都没有,但上面的筛选器都要跑一遍的时候,我已经能想象到筛选器炸了或者卡了的状况了。
当然我对TiddlyWiki的底层机制不了解,所以也可能存在着更好的方式和解决办法。但一时我也没有想到。
-
如何在一个GitHub仓库里构建多个TiddlyWiki在线网址我记得TiddlyWiki的官网好像就是这样做的,文档和开发者文档都是放在一个仓库里,然后构建了好几个网站,想知道这个是怎么处理的。
-
使用tm-modal来获得更多的空间感觉这种方式会比布局简单好用。不用特意切换,只要用按钮控制就可以了。
-
类似Prettier - Code formatter的功能css还好,主要是wikitext,写复杂了就看得麻烦了。也因为代码总是修改,并不是那种一下子就写好的,所以才会不好调整。
-
类似Prettier - Code formatter的功能就平常自己使用时就大概类似这样,直接把样式写在条目里面。因为其他地方一般也用不到。但因为代码经常是从其他地方复制过来的,所以没有一个统一的格式。自己又懒得调整了。
我在trello那边也提了一下,不知道@Sttot 还有没有维护。
-
类似Prettier - Code formatter的功能经常自定义TiddlyWiki时,就只是在TiddlyWiki里创建和测试。里面有很多代码,有wikitext的,也有html和css的。我习惯是某一个条目使用就直接写在这个条目里面。但感觉实在不够美观,所以如果有这种整齐代码的功能就好了。