Wiki for Quick Lookups in Life and Tech

Wiki for Quick Lookups in Life and Tech

Astrid Stark Lv. ∞

在日常生活和编程开发中,我们总会遇到一些偶尔需要用到、但极易遗忘的零碎知识点。这篇文章作为个人维基的速查字典,将持续收录和整理这些跨越生活常识与代码语法的碎片信息,方便随时检索和查阅。

视力标准换算

在体检或查阅病历时,常会遇到两种不同的视力记录方式:0.x 的小数记录法和 5.x 的五分记录法(对数记录法)。

换算公式为:

常见换算对照表如下:

小数记录法 五分记录法(对数) 备注
1.5 5.2
1.2 5.1
1.0 5.0 正常标准视力
0.8 4.9
0.6 4.8
0.5 4.7
0.4 4.6
0.3 4.5
0.2 4.3
0.1 4.0

主流 IDE 代码格式化快捷键

不同开发环境下的默认代码格式化快捷键往往不同,在切换编辑器时经常容易混淆。

VS Code:

  • Windows / Linux:Shift + Alt + F
  • Mac:Shift + Option + F

JetBrains 系 (IntelliJ, PyCharm, WebStorm 等):

  • Windows / Linux:Ctrl + Alt + L
  • Mac:Option + Command + L

常见编程语言中的引号语法差异

不同编程语言对于单引号(')和双引号(")的解析规则存在显著差异。

C 与 Java:

  • **单引号 ('')**:用于表示单个字符(char 类型),例如 'a'
  • **双引号 ("")**:用于表示字符串(字符序列)。在 C 语言中,字符串末尾会自动包含一个隐藏的结束符 \0,例如 "hello"

Python 与 JavaScript:

  • 单双引号没有功能上的本质区别,都可以用来表示字符串。
  • 主要优势在于方便嵌套:如果字符串本身包含单引号,外部就可以直接用双引号包裹(例如 "It's fine"),反之亦然,从而避免频繁使用转义字符。

GitHub 仓库信息查看

使用 GitHub 的 API 服务,在浏览器地址栏输入:https://api.github.com/repos/username/reponame 就可以获得指定作者指定仓库的详细信息。

比如,输入 https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io 就可以得到我的仓库的 JSON 格式的信息:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{
"id": 907337136,
"node_id": "R_kgDONhTdsA",
"name": "AstridStark25963.github.io",
"full_name": "AstridStark25963/AstridStark25963.github.io",
"private": false,
"owner": {
"login": "AstridStark25963",
"id": 116073056,
"node_id": "U_kgDOBusiYA",
"avatar_url": "https://avatars.githubusercontent.com/u/116073056?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/AstridStark25963",
"html_url": "https://github.com/AstridStark25963",
"followers_url": "https://api.github.com/users/AstridStark25963/followers",
"following_url": "https://api.github.com/users/AstridStark25963/following{/other_user}",
"gists_url": "https://api.github.com/users/AstridStark25963/gists{/gist_id}",
"starred_url": "https://api.github.com/users/AstridStark25963/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/AstridStark25963/subscriptions",
"organizations_url": "https://api.github.com/users/AstridStark25963/orgs",
"repos_url": "https://api.github.com/users/AstridStark25963/repos",
"events_url": "https://api.github.com/users/AstridStark25963/events{/privacy}",
"received_events_url": "https://api.github.com/users/AstridStark25963/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/AstridStark25963/AstridStark25963.github.io",
"description": "A personal website powered by Hexo with the Redefine theme. Explore articles, tutorials, and projects about programming, technology, and more.",
"fork": false,
"url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io",
"forks_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/forks",
"keys_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/teams",
"hooks_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/hooks",
"issue_events_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/issues/events{/number}",
"events_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/events",
"assignees_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/assignees{/user}",
"branches_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/branches{/branch}",
"tags_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/tags",
"blobs_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/statuses/{sha}",
"languages_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/languages",
"stargazers_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/stargazers",
"contributors_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/contributors",
"subscribers_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/subscribers",
"subscription_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/subscription",
"commits_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/contents/{+path}",
"compare_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/merges",
"archive_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/downloads",
"issues_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/issues{/number}",
"pulls_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/pulls{/number}",
"milestones_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/milestones{/number}",
"notifications_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/labels{/name}",
"releases_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/releases{/id}",
"deployments_url": "https://api.github.com/repos/AstridStark25963/AstridStark25963.github.io/deployments",
"created_at": "2024-12-23T11:03:42Z",
"updated_at": "2025-01-31T03:44:50Z",
"pushed_at": "2025-01-31T03:44:46Z",
"git_url": "git://github.com/AstridStark25963/AstridStark25963.github.io.git",
"ssh_url": "git@github.com:AstridStark25963/AstridStark25963.github.io.git",
"clone_url": "https://github.com/AstridStark25963/AstridStark25963.github.io.git",
"svn_url": "https://github.com/AstridStark25963/AstridStark25963.github.io",
"homepage": "https://1lya.com/",
"size": 80797,
"stargazers_count": 0,
"watchers_count": 0,
"language": "HTML",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": true,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 0,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [
"hexo",
"hexo-theme-redefine",
"personal-website"
],
"visibility": "public",
"forks": 0,
"open_issues": 0,
"watchers": 0,
"default_branch": "main",
"temp_clone_token": null,
"network_count": 0,
"subscribers_count": 1
}

SVG 基础语法与路径指令

SVG (Scalable Vector Graphics,可缩放矢量图形) 的本质并非二进制图像,而是基于 XML 的纯文本。这意味着它可以被无损无限放大,且能够被任何编程语言动态读取、修改和生成,也可以直接内嵌到 HTML 或 Hexo 的模板文件中,无需加载外部图片资源。

核心容器与坐标系

  • <svg>:最外层的“画布”容器。
    • width / height:图形在屏幕上渲染的实际物理尺寸(如 24px)。
    • viewBox="0 0 width height":定义内部的“视口比例”与虚拟网格。无论外部 width 放大到多少,内部的图案都会严格按照这个网格的比例进行无损缩放。

基础几何图形

对于简单的形状,SVG 提供了直观的现成标签:

  • <circle>cx (圆心 X 坐标), cy (圆心 Y 坐标), r (半径)。
  • 矩形 <rect>x, y (左上角起点), width, height, rx (圆角半径)。
  • 直线 <line>x1, y1 (起点), x2, y2 (终点)。

万能画笔 <path> 指令速查表

<path d="..."> 中的 d 代表数据,是一系列向浏览器的“虚拟机械臂”下达的移动和绘制指令。

指令缩写 含义 说明
M / m Move to (移动) 抬起画笔移动到指定坐标,准备开始画。例如 M10 10
L / l Line to (画线) 笔尖贴纸,从当前位置画一条直线到指定坐标。
H / h Horizontal (水平线) 沿水平方向画直线。
V / v Vertical (垂直线) 沿垂直方向画直线。例如 v4 表示向下画 4 个单位。
A / a Arc (圆弧) 绘制一段弧线。例如 a2 2 是画一个半径为 2 的圆角弧线。
C / c Curve (贝塞尔曲线) 绘制三次贝塞尔曲线,用于绘制平滑、复杂的花纹。
Q / q Quadratic (二次曲线) 绘制二次贝塞尔曲线。
Z / z Close Path (闭合路径) 笔尖直接画一条直线,连回当前子路径的起点 (即上一个 M 所在的位置)。

大写字母表示绝对坐标,小写字母表示相对当前位置的相对坐标。

通用样式属性 (Styling)

无论是基础图形还是 <path>,都可以通过以下属性控制外观:

  • fill:填充颜色(例如 "red", "#1a73e8", "none")。
  • stroke:描边(边框)颜色。若只需保留线条轮廓,通常设置 fill="none" 且配合 stroke="currentColor" 使用。
  • stroke-width:线条的粗细。

跨语言生成 SVG 示例 (HTML)

利用其纯文本特性,可以直接在数据分析或后端脚本中通过代码生成矢量图并保存:

1
2
3
4
5
6
7
8
9
10
11
<!-- 画布定义 -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="64" height="64" fill="none" stroke="#1a73e8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<!-- 文档外轮廓 -->
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<!-- 折角 -->
<polyline points="14 2 14 8 20 8"></polyline>
<!-- 箭头主干 -->
<line x1="12" y1="12" x2="12" y2="18"></line>
<!-- 箭头头部 -->
<polyline points="9 15 12 18 15 15"></polyline>
</svg>

效果如下:

SVG 效果