思源对文档和emoji提供自定义图标的支持,这些图标不仅可以用于文档,也可以用于行内。
- 这个方案是通过添加 自定义 emoji 表情包的方式增加微软表情包,全套大概一万多个。可酌情使用。
- 按照习惯,先上教程再上示例,所以图片在步骤 下方 。
- 本教程主要是为了配合思源插件:emoji 增强(siyuan-plugin-emoji-enhance)的按文件夹分组功能,将源文件自动分组。
首先说明缺点:
- 暂时没有找到合适的 fluent emoji 字体,因此本方案不能替换思源内置的 emoji。
- 文件较多较大,数量 1W+(四种风格总共),大小 100MB。酌情挑选使用。
步骤
前置条件
- 下载 fluent emoji 的压缩包文件:GitHub - microsoft/fluentui-emoji: A collection of familiar, friendly, and modern emoji from Microsoft
绿色按钮:Code
—>Download ZIP
- 在思源中安装
emoji增强(siyuan plugin emoji enhance)
- 安装
python
https://www.python.org/
具体步骤
- 解压缩下载的
ZIP
文件 - 找到解压缩后的文件夹
- 在
文件夹路径 --> assets
下创建一个 python 文件organize_emoji.py
- 复制代码到 python 文件,并在这个文件夹下运行
- 运行命令:
python3 organize_emoji.py
- 代码:
import os
import json
import shutil
# 设定当前目录为工作目录
root_dir = '.'
# 功能:递归遍历文件夹,寻找最底层的目录
def move_files_and_remove_dir(path, group):
# 判断是否是最底层目录
if all(os.path.isdir(os.path.join(path, x)) for x in os.listdir(path)):
for dir_name in os.listdir(path):
# 递归调用处理下一层目录
move_files_and_remove_dir(os.path.join(path, dir_name), group)
else:
# 移动文件到目标目录
target_folder = os.path.join(root_dir, f"{group}_{os.path.basename(path)}")
os.makedirs(target_folder, exist_ok=True)
for file in os.listdir(path):
src_file = os.path.join(path, file)
dst_file = os.path.join(target_folder, file)
shutil.move(src_file, dst_file)
# 检查是否可以删除原目录
if not os.listdir(path):
os.rmdir(path)
# 遍历所有顶级文件夹
for emoji_folder in os.listdir(root_dir):
emoji_path = os.path.join(root_dir, emoji_folder)
if os.path.isdir(emoji_path) and 'metadata.json' in os.listdir(emoji_path):
metadata_path = os.path.join(emoji_path, 'metadata.json')
# 读取metadata.json获取group信息
with open(metadata_path, 'r', encoding='utf-8') as f:
data = json.load(f)
group = data.get('group')
# 处理此emoji文件夹下的所有文件
for item in os.listdir(emoji_path):
item_path = os.path.join(emoji_path, item)
if os.path.isdir(item_path):
move_files_and_remove_dir(item_path, group)
# 删除原emoji目录
shutil.rmtree(emoji_path, ignore_errors=True)
# 打印完成信息
print("文件已按照分组信息和风格分类。原文件夹已删除。")
5. 稳妥起见关闭思源,然后将 assets中的所有文件夹
复制到 思源的emojis文件夹
下方
6. 打开思源
7. 顺便给个 css 片段,修一下 emoji 增强的分组栏
.emojis>.fn__flex {
overflow-x: scroll;
}
介绍
微软 fluent 分为四种风格:
- 3D:PNG 格式,效果好
- 多彩 Color:SVG 格式,效果与 3D 有些区别的立体图标
- 扁平 Flat:SVG 格式,扁平化图标
- 高对比 High Contrast(黑白):SVG 格式,黑白图标
思源中结合插件的样式
可以看到底部已经按默认类型和风格分好组了。