dg-publish=true的标签云

dg-publish=true的标签云

linux (8) shell (2) aigc (6) 压力测试 (1) aigc-kimi (1) 文件 (1) 操作系统 (1) 描述符 (1) 文件描述符 (1) 甲沟炎 (1) Go (3) chatgpt (1) kafka (1) 学习 (1) mysql (1) nginx (4) master (1) Process (2) source-code (2) php (2) 压缩 (1) redis (1) rdb (1) zettelkasten (1) 哲学 (2) 效率 (1) tools (2) things3 (2) 思维导图 (1) rime (1) marginnote (1) 阅读器 (1) mac (4) 输入法 (1) phpstorm (1) ide (1) chrome (1) 镜像 (1) 开发经验 (1) excalidraw (1) linux命令 (1) 树莓派 (1) leetcode (15) (1) 前缀和 (2) dp (1) network (1) (1)

digital-garden 还是很牛的,居然是能用的

贴一下完整代码:

``dataviewjs
let tagCounts = {};

// 遍历所有包含标签的笔记,收集标签并统计出现次数
for (let page of dv.pages().where(p => p.tags && p["dg-publish"] === true)) {  // 只处理包含标签的页面
	let tags = page.tags.toString()
	let tagArr = tags.split(',')
	
    for (let tag of tagArr) {
        tagCounts[tag] = (tagCounts[tag] || 0) + 1;
    }
}

// 找到标签的最大频次,以便调整大小
let maxCount = Math.max(...Object.values(tagCounts));

// 设置字体大小范围(最小10px,最大40px)
const minSize = 10;
const maxSize = 40;

// 生成标签云,根据频次调整标签字体大小
dv.container.innerHTML = Object.entries(tagCounts)
    .map(([tag, count]) => {
        // 根据标签出现的频次计算字体大小
        let size = minSize + ((count / maxCount) * (maxSize - minSize));
        // 创建可点击的链接,链接到搜索栏
        return `<span style="font-size:${size}px; margin-right:20px;">
                    <a href="obsidian://search?query=tag:${encodeURIComponent(tag)}" style="text-decoration:none; color:inherit;">
                        <strong>${tag}</strong> (${count})
                    </a>
                </span>`;
    })
    .join('');  // 每个标签后换行
``

本站总访问量次 本站访客数人次 本文总阅读量