aliases:

  • HomePage tags: null cssclasses:
  • myhome
  • hide-metadata
  • cards
  • 行列标题底色模式 banner: '[[assets/主页.assets/国际服1.9.jpg]]' banner_x: 0.532 banner_y: 0.33

[!dictum]

let files = dv.pages('"000-箱的构造/箱中memos" and #金句').file;
if (files.length === 0) {
	dv.paragraph("没有找到任何文件");
} else {
	let randomFile = files[Math.floor(Math.random() * files.length)];
	let fileContent = await app.vault.readRaw(dv.page(randomFile.path).file.path)
	let lines = fileContent.split('\n').filter(line => line.includes("#金句"));
	let line = lines[0];
	if (line.includes("#金句")) {
		let sentence = line;
		sentence = sentence.replace(/#[^ ]+/g, ''); // 删除所有以#开头到其后第一个空格之间的部分
		dv.span("<center>" + sentence + "</center>");
	}	
}

[!noborder|banner]  

// 计算最早笔记的创建时间
let ftMd = dv.pages().file.sort(t => t.cday)[0]
let total = parseInt([new Date() - ftMd.ctime] / (60*60*24*1000))
const date = new Date(ftMd.ctime);
const formattedDate = new Intl.DateTimeFormat('zh-CN', {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit'
}).format(date);
// 排除指定文件夹
let nofold = '!"000-箱的构成/插件" and !"000-箱的构成/templates" and !"000-箱的构成/script" and !"assets"'
let allFile = dv.pages(nofold).file
// 计算笔记总数
let note = 0;
// 指定要查询的文件类型
let fileType = '.md';
// 获取 vault 中的所有文件
let files = this.app.vault.getAllLoadedFiles("");
// 遍历所有文件,判断是否是 PDF,把 PDF 文件链接拼接进字符串
/* 此代码片段遍历“files”数组中的每个文件,该数组包含 Vault 中加载的所有文件。对于每个文件,它会检查文件路径是否以指定的“fileType”结尾(在本例中,Markdown
文件的结尾为“.md”)。如果文件是 Markdown 文件,则计数+1。 */
files.forEach(file => {
    if (file.path.endsWith(fileType)) {
        note++;
    }
});
let rolefile = dv.pages('"100-UTTU人物合辑" and !"100-UTTU人物合辑/100-UTTU人物合辑.md" and !"100-UTTU人物合辑/维尔汀|Vertin.md"').file
let psyfile = dv.pages('"200-相从心生" and !"200-相从心生/200-相从心生.md"').file
let totalnote = "积累档案及笔记 =="+note+"== 篇"
let totalRole = "共收录 =="+rolefile.length+"== 位箱中伙伴"
let totalPsy = "共撰写 =="+psyfile.length+"== 篇心相档案"
let totalTag = "有 =="+allFile.etags.distinct().length+"== 个相关标签"
let greet = '<%+ tp.date.now("A好,今天是YYYY年M月Do dddd") %>。'
dv.paragraph(greet + "第一张档案记录于*"+ formattedDate +"*,到今天已有=="+total+"==天,"+totalnote+";"+totalRole+"、"+totalPsy+"、"+totalTag+"。")
let ftMd = dv.pages("").file.sort(t => t.cday)[0]
let total = parseInt([new Date() - ftMd.ctime] / (60*60*24*1000))
let nofold = '!"000-箱的构造/插件" and !"000-箱的构造/templates" and !"000-箱的构造/script" and !"assets"'
let allFile = dv.pages(nofold).file
let rolefile = dv.pages('"100-UTTU人物合辑" and !"100-UTTU人物合辑/100-UTTU人物合辑.md" and !"100-UTTU人物合辑/维尔汀|Vertin.md"').file
let psyfile = dv.pages('"200-相从心生" and !"200-相从心生/200-相从心生.md"').file
let totalRole = "共收录 =="+rolefile.length+"== 位箱中伙伴"
let totalPsy = "共撰写 =="+psyfile.length+"== 篇心相档案"
let totalTag = "有 =="+allFile.etags.distinct().length+"== 个相关标签" 
const progressrole = `<progress value="${Math.round((rolefile.length / 90) * 100)}" max="100" class="nyan-cat"></progress>`
const progresspsy = `<progress value="${Math.round((psyfile.length / 73) * 100)}" max="100" class="nyan-cat"></progress>`
const percentagerole = `${Math.round((rolefile.length / 90) * 100)} %`
const percentagepsy = `${Math.round((psyfile.length / 73) * 100)} %`

dv.span(`
> [!note]+ 撰写进度
     ==角色档案==撰写进度:${progressrole}    **${percentagerole}**\n > 
     ==心相档案==撰写进度:${progresspsy}    **${percentagepsy}**
`)