Obsidian使用Dataview日记概览

读取一个文件夹下的所有日记文件,生成一个日记概览,包括日期、内容。达到类似logseq的日记效果。
安装插件:Dataview https://github.com/blacksmithgu/obsidian-dataview 开启dataviewjs功能
根目录新建文件,贴入下面代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
* 生成最近N天的日期数组(降序排列)
* @param {number} days - 需要生成的天数
* @param {boolean} [includeToday=true] - 是否包含今天
* @returns {string[]} 日期字符串数组,格式:YYYY-MM-DD
*/
function getRecentDates(days, includeToday = true) {
// 参数校验
if (typeof days !== 'number' || days < 1) return [];

// 初始化日期对象
const date = new Date();
if (!includeToday) date.setDate(date.getDate() - 1);

// 日期格式化函数
const format = d => [
d.getFullYear(),
(d.getMonth() + 1).toString().padStart(2, '0'),
d.getDate().toString().padStart(2, '0')
].join('_');

// 生成日期数组
const result = [];
for (let i = 0; i < days; i++) {
result.push(format(new Date(date)));
date.setDate(date.getDate() - 1);
}

return result;
}

const arr = getRecentDates(200);

arr.map(d => dv.paragraph(`![[${d}]]`))

另一种方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function reverseArray(arr) {
const reversed = [];
for (let i = arr.length - 1; i >= 0; i--) {
reversed.push(arr[i]);
}
return reversed;
}

const pages = dv.pages('"journals"').slice(-20)
const a = reverseArray(pages)

a.map(async page => {
const filePath = page.file.path;
const fileContent = await app.vault.read(app.vault.getAbstractFileByPath(filePath));
// dv.paragraph(`![[${page.file.name}]]`);
dv.paragraph(`#### ${page.file.name}`);
dv.paragraph(`${fileContent}`);
dv.paragraph('\n');
})

别的方案

Daily Notes Viewer 插件 https://github.com/Johnson0907/obsidian-daily-notes-viewer

操作系统快捷键

常常在Windows、Linux、macOS中来回切换,为了减少频繁切换带来的心智负担

记录下来常用的快捷键、操作

阅读更多

记录一次Windows重启导致的docker报错

win11电脑,有个ARMOURY CRATE的软件更新,居然直接给我电脑重启了,后面他还没更新成功 我焯

结果就是docker报错了

1
running engine: waiting for the VM setup to be ready: starting WSL engine: bootstrapping in the main distro: starting wsl-bootstrap: context canceled
阅读更多

垃圾世代-我买的东西都不起作用

垃圾世代GENERATION JUNK

我买的东西都没用Nothing I Buy Works

作者: Walter Kirn
沃尔特·基恩Walter Kirn

2023 年 12 月 11 日

大约五年前,我花了七美元在一家旧货店买了一台旧柑橘榨汁机。它是那种看起来能经受住煤气爆炸和锤击的老式小家电。当我用金属拨动开关打开电机时,传动轴会旋转一个沉重的陶瓷旋钮,将柠檬和橙子的心挖出来,连一丁点果肉都压碎了。这东西运转良好,几乎像新的一样,所以我在网上查了它的序列号,看看它是什么时候制造的,猜想它可能有近四十年的历史了。错了。它是 20 世纪 40 年代的。它已经七十年了,这个顽固的怪物,每次使用仍然令人满意。

阅读更多

CSS-BEM

CSS中的BEM思想

BEM是block element modifer的简写,是一种CSS命名的方法论

给CSS样式起名的方法中:

- 中划线 :名称连字符

–双中划线:表示元素的一种状态

__双下划线:连接父子元素名字

阅读更多

npx在线调用

npx 指令从npm5.2就内置了,可以在线调用npm包而不用下载到本地再执行

ie: cowsay 指令

1
2
3
4
5
6
7
8
9
10
➜  ~ npx cowsay owow
______
< owow >
------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
➜ ~

可以直接编译&运行ts文件

1
npx ts-node script.ts

可以执行 create-react-app 脚本

1
npx create-react-app .

也可以调用自己写的GitHub gist代码片段

1
2
3
4
5
➜  my-project git:(main) npx https://gist.github.com/miloweimo/491623a136c0ceed0371c10ae95c86a0
Need to install the following packages:
gist:491623a136c0ceed0371c10ae95c86a0
Ok to proceed? (y)
helllllloooooo~~

参考

我写的hellojs https://gist.github.com/miloweimo/491623a136c0ceed0371c10ae95c86a0

别人写的hellojs https://gist.github.com/Tynael/0861d31ea17796c9a5b4a0162eb3c1e8

别人写的readme https://gist.github.com/CarsonSlovoka/ad04ee083bd2dde825060160546b8059

免输密码直接scp传文件的研究

❌ yes指令

1
(yes ${PWD} | head -2 && yes y | head -1) | scp test xx@yy:zz

实测不行

❌ scp -S参数

没有这个写法

✅添加公钥到服务器

可以直接scp

✅sshpass输密码

可以但是部分系统不支持

前端项目添加 打包脚本 部署脚本 生成改动日志脚本

打包脚本

package.json 添加

1
2
3
// ..
"zip": "zip -r dist-$(git rev-parse --abbrev-ref HEAD)-$npm_package_name-$npm_package_version-$(date +'%Y_%m_%d').zip dist/ && open .",
"bz": "npm run build && npm run zip"

然后运行 npm run bz 就能直接打开打包好的zip包目录

阅读更多