跳转至

随笔#

2024-08-19

袁老师的 JS 代码片段,收藏一下。

 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
36
37
38
39
40
41
// Web API, 不适合 node 环境
const copyToClipboard = (text) => navigator.clipboard.writeText(text);
copyToClipboard("Hello World");

// Web API, 不适合 node 环境
const removeTag = (fragment) => {
  new DOMParser().parseFromString(fragment, "text/html").body.textContent || "";
};
console.log(removeTag("<div>Hello world</div>"));

// 获取某个日期位于当年的第几天
const dayOfYear = (date) =>
  Math.floor(date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24;
console.log(dayOfYear(new Date(2024, 8, 19)));

// 将 rgb 颜色灰度化(基于光感加权平均)
const gray = (r, g, b) => 0.2126 * r + 0.7152 * g + 0.0722 * b;
console.log(gray(50, 100, 150));

// 解析 url 中的参数
const parseQuery = (url) => {
  let q = {};
  url.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => (q[k] = v));
  return q;
};
console.log(parseQuery("http://baifu.com/?a=1&b=2"));
// 更加现代的方法:
console.log(new URL("http://baifu.com/?a=1&b=2").searchParams);

// 筛选对象属性
const pick = (obj, ...props) =>
  Object.fromEntries(Object.entries(obj).filter(([k]) => props.includes(k)));
console.log(pick({ a: 1, b: 2, c: 3 }, "a", "b"));

// 随机 HEX 颜色,不兼容 IE
const randomColor = () =>
  "#" +
  Math.floor(Math.random() * 0xffffff)
    .toString(16)
    .padEnd(6, "0");
console.log(randomColor());

2024-07-21

Obsidian + MkDocs = 无敌

具体来说应该是 Obsidian Templater 好用!

就是 PicGo 安装不了插件,连不上赛博大善人 CloudFlare R2 的存储桶。

有时间再看看,图床不着急。