[js] 文档树文档置顶和设置颜色

功能

  1. 文档树中,选择文档或文件夹,右键置顶,即在父级文件夹中置顶选中的文档或文件夹。
  2. 文档树中,选择文档或文件夹,右键选择颜色,即为选中的文档或文件夹添加指定的颜色。
  3. 兼容 pc 版和手机版

注意:暂不支持笔记本置顶和设置颜色。

代码

https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E7%BB%99%E6%96%87%E6%A1%A3%E6%A0%91%E6%96%87%E6%A1%A3%E6%B7%BB%E5%8A%A0%E9%A2%9C%E8%89%B2%E5%92%8C%E7%BD%AE%E9%A1%B6.js

效果

pc 版
image.png

手机版

image.png

使用说明

参数说明

// 是否开启置顶功能,true 开启,false 不开启
const isEnableTopmost = true;

// 是否开启颜色功能,true 开启,false 不开启
const isEnableColor = true;

// 预设颜色列表,格式 {"主题":{"明暗风格":{"编码":{style:"颜色值", "description":"颜色描述"}}}},编码值必须唯一,编码修改则原来设置的颜色将失效
// (切换主题或亮色暗色风格时自动会切换配色方案)
// 为了让目录树的颜色更突出,默认加了加粗显示(font-weight:bold 样式),如果你不需要去掉这个样式即可

let colors = { "default": { "light": { "now": { "style": "color:#1D4ED8;font-weight:bold;", "description": "NOW" }, ... }, "dark": { "now": { "style": "color:#42A5F5;font-weight:bold;", "description": "NOW" }, ... } } };

第一次运行后,会把该默认配置保存到 /data/storage/tree_colors_user_config.json 中,以后配置颜色只需要修改该文件即可,这样不受代码片段升级的影响。

也可以把 tree_colors_user_config.json 发出来与大家分享您的创意。

该配色灵感来自 @Floria233 大佬提供的配色方案,感谢 @Floria233 大佬!

see [js] 文档树文档置顶和设置颜色 - Floria233 的回帖

存储文件及使用说明
  1. 修改/data/storage/tree_colors_user_config.json 文件即可修改默认配色方案(第一次运行后生成)
  2. 取消全部置顶只需删除/data/storage/tree_topmost.json 文件即可(第一次置顶时生成)
  3. 取消全部颜色只需删除/data/storage/tree_colors.json 文件即可(第一次设置颜色时生成)
更新说明

0.0.4 版本及以前的用户升级,需要先备份好代码里的 colors 参数配置再升级。

0.0.5 及以后的用户升级,只需要备份好/data/storage/tree_colors_user_config.json 文件即可。

缘起

看到论坛小伙伴们和我都有置顶的需求,就实现了这个功能,顺便也把我想要的颜色配置也实现了。

起初本想用插件来着,后来鉴于能用就不折腾的思想,一切从简了。

分享您的配色方案

也可以把您的 tree_colors_user_config.json 配色方案贴出来与大家分享。

默认配色方案如下(切换主题或亮色暗色风格时自动会切换颜色方案)

亮色主题

image.png

暗色主题

image.png

旧版本(0.0.4 版)

与 0.0.5+ 的区别是不支持根据主题及明暗风格配置颜色方案。

代码

https://gitee.com/wish163/mysoft/blob/db03ef3d4206b5235ee7b85d2dd273f717b315d1/%E6%80%9D%E6%BA%90/%E7%BB%99%E6%96%87%E6%A1%A3%E6%A0%91%E6%96%87%E6%A1%A3%E6%B7%BB%E5%8A%A0%E9%A2%9C%E8%89%B2%E5%92%8C%E7%BD%AE%E9%A1%B6.js

效果

pc 版

image.png

手机版

image.png

参数说明
// 是否开启置顶功能,true开启,false不开启 const isEnableTopmost = true; // 是否开启颜色功能,true开启,false不开启 const isEnableColor = true; // 预设颜色列表,格式 {"编码":{style:"颜色值", "description":"颜色描述"}},编码值必须唯一 // 也可以把该配置贴出来与大家分享您的创意 //默认颜色组采用20种人类最易识别的颜色 see https://zhuanlan.zhihu.com/p/508870810 const colors = { "orangeRed": { style: "color:#e6194B", description: "橙红色" }, "green": { style: "color:#3cb44b", description: "绿色" }, "yellow": { style: "color:#ffe119", description: "黄色" }, ... }

鸣谢

再次感谢 @Floria233 大佬的配色灵感及提供这么多好的配色方案!

打赏作者

image.png

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    24771 引用 • 101862 回帖
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    133 引用 • 882 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • EmberSky

    刚刚试了下, 发现原来只能在父级下置顶

    全局下置顶能做么 😄

  • 其他回帖
  • wilsons 1 赞同

    0.0.3 完美兼容手机版

    image.png

    0.0.2 版 新增了取消置顶和取消颜色,闭环了。

    image.png

    image.png

    2 操作
    wilsons 在 2025-03-08 08:02:49 更新了该回帖
    wilsons 在 2025-03-08 07:28:16 更新了该回帖
  • Floria233 2 评论

    给出另一个灵感给大大,不过我不清楚能否做到,这个可能需要修改更多代码

    即,相较于更改明暗两种主题下的字体颜色(这个一旦涉及到自定义背景图片之类的,其实也不太好用)

    更好的视觉方案,实际是文字背景色,即如图

    image.png

    image.png

    理想效果应当是如图中蓝圈部分

    • 第一种——

    整个文档标题都赋予背景色

    背景色怎么都可以调,这个色块比较大,只要颜色合适,就不怎么需要调整夜间和白天主题,只需要确定这个背景色就可以了

    • 第二种——

    则如第一张图中的黄色荧光圈位置,只要这个部分增添背景色就可以。

    但我找到的 CSS,就只能修改为如图中红圈所示部分,这个遮挡了右边的三个小点和“+”号。

    如果不增添背景色的话,白天模式下的自定义颜色应当较深,而夜间模式下自定义颜色应当较浅,我之前所做的,确实是只跟着我那套自定义主题来着 ^_^

    然而,我还是倡导,最好不要区分夜间和白天两种颜色主题,假设以我所给的七种颜色定义做参考,白天的红不是夜间的红,白天的蓝不是夜间的蓝,如果不好好区分色彩的话,大脑可能将白天和黑夜的相近颜色弄混,那么使用者就得记 14 种颜色的定义(这个虽说不难但有点复杂)【还是说,大大的 JS 所赋予的文档标题颜色,将可以根据黑白主题自动切换呢?有点没看懂】

    感谢建议!js 会根据主题和明暗主题自动切换,不需要记忆 14 种颜色,还是 7 种,且不是还有文字提示。只是在设计时需要设计 14 种颜色,如果某个主题或明暗风格用户没有设计,将会使用 js 片段默认的颜色。 我觉得背景色块太大,更难设计好看,不然会显得花里胡哨的。
    wilsons
    已更新至 0.0.5 版,支持主题 + 暗亮风格配置,切换风格或主题时会自动切换颜色方案。
    wilsons
  • wilsons

    抛砖引玉,分享一个颜色方案。

    image.pngimage.png

    { "default": { "light": { "draft": { "style": "color:#FF9800;font-weight:bold;", "description": "草稿" }, "archived": { "style": "color:#9E9E9E;font-weight:bold;", "description": "存档" }, "published": { "style": "color:#4CAF50;font-weight:bold;", "description": "已发布" }, "deleted": { "style": "color:#F44336;font-weight:bold;", "description": "删除" }, "being_edited": { "style": "color:#9C27B0;font-weight:bold;", "description": "修改中" }, "scheduled": { "style": "color:#2196F3;font-weight:bold;", "description": "待发布" } }, "dark": { "draft": { "style": "color:#FFB300;font-weight:bold;", "description": "草稿" }, "archived": { "style": "color:#B0BEC5;font-weight:bold;", "description": "存档" }, "published": { "style": "color:#66BB6A;font-weight:bold;", "description": "已发布" }, "deleted": { "style": "color:#FF5252;font-weight:bold;", "description": "删除" }, "being_edited": { "style": "color:#AB47BC;font-weight:bold;", "description": "修改中" }, "scheduled": { "style": "color:#29B6F6;font-weight:bold;", "description": "待发布" } } } }
    1 回复
  • 查看全部回帖