FeelUOwn
FeelUOwn copied to clipboard
支持在 fuo 文件里面给每一首歌曲写备注
本来的背景
虾米平台有些歌单,歌单的作者非常细心,给每首歌都写了推荐语。这是一笔宝贵的财富,我们想把它保存下来。 而在 FeelUOwn 生态里面,fuo 文件是用来保存歌单的,但里面只存了音乐的基本元信息,没有存推荐语等。
思考解决方案
直接的想法是我们扩展一下 fuo 文件的语法。那语法怎么设计呢? 之前有一个关于 fuo 文件增强的 FEP:https://github.com/feeluown/FeelUOwn/issues/302 里面提到 fuo 文件设计的考虑准则 在对比方案中,我们主要考虑几个点
- 可读性,可以人肉阅读并编辑
- 有较好地容错性:一行/块数据地方出错,不应该影响整个文件的解析
- 程序解析方便
- 一个 fuo 文件内容可能不只是 songs,还可能有 albums,artists
可能的解决方案
- 类似 Emacs 的 org mode
fuo://xiami/albums/2102704879 # ゼルダの伝説 ブレス オブ ザ ワイルド SOUND SELECTION - Nintendo Sound Team
#+begin_comment
今天又熬夜了。不过满满的回忆 ~
这种咋办呢?
#+end_comment
fuo://netease/songs/316486 # 野孩子 - 杨千嬅 - 千嬅盛放 - 03:44
我觉得把,这种方案太丑了。可读性不好
- 使用缩进
fuo://xiami/albums/2102704879 # ゼルダの伝説 ブレス オブ ザ ワイルド SOUND SELECTION - Nintendo Sound Team
:comment:::
今天又熬夜了。不过满满的回忆 ~
(不过换行咋办呢?)
:marks::
[1:00] 卡卡利特村是我最喜欢发呆的村子
[2:05] 每到晚上,我就开始爬山,山上不会遇到人马等怪物
fuo://netease/songs/316486 # 野孩子 - 杨千嬅 - 千嬅盛放 - 03:44
- 缩进 + url + query
fuo://xiami/albums/2102704879 # ゼルダの伝説 ブレス オブ ザ ワイルド SOUND SELECTION - Nintendo Sound Team
/title
/remark #: format=markdown,arg_list=x,arg_list=y 今天又熬夜了。不过满满的回忆 ~
生活最难的时候就是怀疑自己。
不过换行咋办呢?
/flags
[1:00] 卡卡利特村是我最喜欢发呆的村子
[2:05] 每到晚上,我就开始爬山,山上不会遇到人马等怪物
fuo://netease/songs/316486 # 野孩子 - 杨千嬅 - 千嬅盛放 - 03:44
美观上勉强还行,遇到换行其实也不是特别优雅。 另外,程序解析的时候,由于内容没有 start/end 标记,似乎不好很好解析。 再另外,yaml 的缩进,其实就有人吐槽,毕竟人肉写空格来缩进总不是那么的靠谱。
抛开方案本身,还需要思考的问题
- 一个 fuo 文件,理想情况下会存哪些东西?
- 把推荐语记录在 fuo 文件中,是给作者自己看,还是分享给大家看? 一个想法:如果想把推荐语分享给大家,那把推荐语与 comment id 关联起来可能是不错的方式。
一些思考
fuo 文件本质或许是一种文本标记语言。