使用 Dataviewjs 放置随机格言语录

我在一个文件中以无序列表的形式存储了自己收藏的各种格言警句,想要在主页中随机显示其中一条,每次打开主页都不一样。研究了下,使用 Dataviewjs 做到了。

效果:

代码:

let fileContent = await app.vault.readRaw(dv.page("我的格言语录").file.path)
let sentenceList = fileContent.split("\n")
sentenceList = sentenceList.filter(x => x.startsWith("-"))
let oneSentence = sentenceList[sentenceList.length * Math.random() | 0]
oneSentence = oneSentence.substring(2)
dv.paragraph(`<div style="padding-top: 1.5em; text-align: center;font-family: kaiti;">${oneSentence}</div>`)

存在问题:字体在手机上无法正确显示,毕竟手机上没有楷体,就这样吧

1 个赞

复制粘贴到笔记里面似乎没有反应。

我的格言语录 ,这个文件你有吗?

文件格式是什么,内容是什么?

你好。没有这个文件。但请不用再关心了,因为我已经放弃折腾了。 :pray:

我折腾了一下,弄好了。具体说一下要怎么搞吧:

  • 新建一个名字叫 “我的格言语录” 的文件,这里需要注意你的格言存储格式,见下图源码

  • 把上面的代码格式复制到你想要加入随机格言的文件中,这里有两点需要注意

    1. 复制到 obsidian 中的代码格式需要调整(确保内容为下面图片中的样子)
    2. 把代码复制到类型为 dataviewjs 的代码块中

2 个赞

按照你的方法做了,显示错误,能录一个视频怎么做的吗

看了下楼主的代码,大概理解了,根目录需要一个叫做“我的格言语录”的文件,里面是就是你要放的语录的无序列表,就这样