跳转至内容
  • 最新
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 太微中文教程
  • 新插件投票看板
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
太微中文论坛icon

太微中文论坛

  1. 首页信息流
  2. 版块
  3. 讨论
  4. 启动时处理配色表

启动时处理配色表

已定时 已固定 已锁定 已移动 讨论
3 帖子 1 发布者 3 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 机杼机 离线
    机杼机 离线
    机杼
    编写 最后由 机杼 编辑
    #1
    \procedure selectpalette(t,f)
    <<f>>:
    <$select tiddler=<<t>> index=<<f>> style.width="80%">
      <optgroup label={{{ [<f>titlecase[]] }}}>
        <$list filter="[all[tiddlers+shadows]tag[$:/tags/Palette]color-scheme<f>sort[]]">
          <option value=<<currentTiddler>>><$view field="name"/> -- <$view field="description"/></option>
        </$list>
      </optgroup>
      <optgroup label="No Color Scheme or Other Scheme">
       <$list filter="[all[tiddlers+shadows]tag[$:/tags/Palette]!has[color-scheme]sort[]]">
          <option value=<<currentTiddler>>><$view field="name"/> -- <$view field="description"/></option>
       </$list>
      </optgroup>
    </$select>
    \end
    
    \procedure setpalette()
    <$tiddler tiddler="apply-light-or-dark-mode">
    <$let apply-mode={{{ [{$:/info/darkmode}match[yes]then{light-or-dark-mode-palette##dark}else{light-or-dark-mode-palette##light}] }}}>
    <$action-setfield $tiddler="$:/palette" $value=<<apply-mode>> $timestamp="no"/>
    </$let>
    </$tiddler>
    \end
    
    <$eventcatcher $change=<<setpalette>>>
    <<selectpalette "light-or-dark-mode-palette" "light">><br>
    <<selectpalette "light-or-dark-mode-palette" "dark">>
    </$eventcatcher>
    
    <<setpalette>>
    
    * [[$:/palette]]
    ** {{$:/palette}}
    * [[light-or-dark-mode-palette]]
    ** light-mode {{light-or-dark-mode-palette##light}}
    ** dark-mode {{light-or-dark-mode-palette##dark}}
    

    新建一个条目,把上面内容放进去。然后就会有列表可以选择了。选择白天模式和黑暗模式,配置的条目在light-or-dark-mode-palette中,这会变成一个json的数据条目。条目名可以修改,但要把其它地方也修改掉,因而要么不改,要改就用批量替换修改。

    如果你想启动或者刷新wiki时根据系统判断来展示的话,可以增加一个$:/tags/StartupAction/Browser标签。通常使用TiddlyWiki搭建网站的人来说,这是比较好的。因为其它人访问你的网站时,系统可能是白天模式也可能是黑暗模式。这可以提供一个较好的阅读体验。

    以上,下面是吐槽。TiddlyWiki这一点还是不太行,像Obsidian,思源笔记,或者大多数的软件,都能支持直接获取系统的黑暗模式和白天模式,完全不用自己手动刷新。其实这个方案,我见到最早的是由sttoct提出的,他也提到了要自动化处理可能需要外部js,于是就此作罢。


    更新,增加了没有color-scheme字段的筛选器表达式,同时也增加了排序,没有排序看起来太混乱了。

    1 条回复 最后回复
    0
    • 机杼机 离线
      机杼机 离线
      机杼
      编写 最后由 编辑
      #2

      这个启动时处理的标签很不错,还可以运用在语言转换上。比如对于中国,则界面显示中文。其它国家则显示英文。

      还可以控制侧边栏的开关 ,因为本质上是对状态条目进行设置。

      还可以做其它很多操作。比如一启动就新建一个当天条目。

      总之玩法多样,多多尝试。

      1 条回复 最后回复
      0
      • 机杼机 离线
        机杼机 离线
        机杼
        编写 最后由 编辑
        #3

        https://talk.tiddlywiki.org/t/unexpected-problem-with-tag-pills-on-program-startup/

        另外,可参阅上面论坛的讨论,大胡子进一步优化了代码。可以从这些讨论过程中学到很多。

        1 条回复 最后回复
        0

        • 登录

        • 没有帐号? 注册

        • 登录或注册以进行搜索。
        Powered by NodeBB Contributors
        • 第一个帖子
          最后一个帖子
        0
        • 最新
        • 版块
        • 标签
        • 热门
        • 用户
        • 群组
        • 太微中文教程
        • 新插件投票看板