1392 字
7 分钟

Fuwari 简易指南

封面图片来源: Source

此博客模板基于 Astro 构建。若本指南未提及某些内容,你可在 Astro Docs 中找到答案。

文章的 Front-matter#

---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
---
AttributeDescription
title文章标题。
published文章发布日期。
description文章的简短描述,会显示在首页。
image文章封面图片路径。
1. 以 http://https:// 开头:使用网络图片
2. 以 / 开头:使用 public 目录中的图片
3. 若无前缀:相对于当前 markdown 文件的路径
tags文章标签。
category文章分类。
draft若标记为草稿,则不会显示该文章。

文章文件应放置的位置#

文章文件应放在 src/content/posts/ 目录中。你也可以创建子目录来更好地组织文章及其资源。

src/content/posts/
├── post-1.md
└── post-2/
├── cover.png
└── index.md

GitHub Repository Cards#

你可以添加动态卡片来链接 GitHub 仓库,在页面加载时,仓库信息会从 GitHub API 拉取。

Fabrizz
/
MMM-OnSpotify
Waiting for api.github.com...
00K
0K
0K
Waiting...

使用代码 ::github{repo="<owner>/<repo>"} 来创建一个 GitHub 仓库卡片。

::github{repo="saicaca/fuwari"}

Admonitions#

支持以下类型的提示框:note tip important warning caution

Basic Syntax#

:::note
强调用户即使在快速浏览时也应该注意的信息。
:::
:::tip
可选信息,用于帮助用户更好地完成操作。
:::

Custom Titles#

提示框的标题可以自定义。

:::note[MY CUSTOM TITLE]
这是一个带有自定义标题的 note。
:::

GitHub Syntax#

[!TIP] > GitHub 风格语法 同样被支持。

> [!NOTE]
> The GitHub syntax is also supported.
> [!TIP]
> The GitHub syntax is also supported.

Spoiler#

你可以在文字中添加剧透隐藏区块。内容也支持 Markdown 语法。

The content is hidden ayyy!

The content :spoiler[is hidden **ayyy**]!

Expressive Code#

这里展示使用 Expressive Code 时代码块的外观。以下示例基于官方文档,你可以参考文档获取更多信息。

Syntax Highlighting#

Syntax Highlighting

Regular syntax highlighting#

console.log("这段代码具有语法高亮效果!");

Rendering ANSI escape sequences#

Terminal window
ANSI 颜色:
- 普通: 绿 品红
- 加粗: 绿 品红
- 暗淡: 绿 品红
256 色(示例颜色 160–177):
160 161 162 163 164 165
166 167 168 169 170 171
172 173 174 175 176 177
完整 RGB 色:
森林绿 - RGB(34, 139, 34)
文本格式: 加粗 暗淡 斜体 下划线

Editor & Terminal Frames#

Editor & Terminal Frames

Code editor frames#

my-test-file.js
console.log("标题属性示例");

src/content/index.html
<div>文件名注释示例</div>

Terminal frames#

Terminal window
echo "这个终端窗口没有标题"

PowerShell 终端示例
Write-Output "这个终端窗口有标题!"

Overriding frame types#

echo "看,我没有外框!"

PowerShell Profile.ps1
# 如果不覆盖,这段会显示为终端框架
function Watch-Tail { Get-Content -Tail 20 -Wait $args }
New-Alias tail Watch-Tail

Text & Line Markers#

Text & Line Markers

Marking full lines & line ranges#

// 行 1 - 由行号标记
// 行 2
// 行 3
// 行 4 - 由行号标记
// 行 5
// 行 6
// 行 7 - 由范围 "7-8" 标记
// 行 8 - 由范围 "7-8" 标记

Selecting line marker types (mark, ins, del)#

line-markers.js
function demo() {
console.log("此行被标记为删除");
// 这行和下一行被标记为插入
console.log("这是第二行插入内容");
return "此行使用默认标记类型";
}

Adding labels to line markers#

labeled-line-markers.jsx
<button
role="button"
{...props}
value={value}
className={buttonClassName}
disabled={disabled}
active={active}
>
{children &&
!active &&
(typeof children === "string" ? <span>{children}</span> : children)}
</button>

Adding long labels on their own lines#

labeled-line-markers.jsx
<button
role="button"
{...props}
value={value}
className={buttonClassName}
disabled={disabled}
active={active}
>
{children &&
!active &&
(typeof children === "string" ? <span>{children}</span> : children)}
</button>

Using diff-like syntax#

这行将被标记为插入
这行将被标记为删除
这是一行普通文本

--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+这是一份真实的 diff 文件
-所有内容将保持不变
不会移除任何空白字符

Combining syntax highlighting with diff-like syntax#

function thisIsJavaScript() {
// 这一整个代码块仍会按 JavaScript 高亮,
// 同时仍可应用 diff 标记!
console.log('旧代码,将被移除')
console.log('新的、更好的代码!')
}

Marking individual text inside lines#

function demo() {
// 可标记行内任意指定文本
return "支持标记指定文本的多个匹配项";
}

Regular expressions#

console.log("单词 yesyep 会被标记。");

Escaping forward slashes#

Terminal window
echo "Test" > /home/test.txt

Selecting inline marker types (mark, ins, del)#

function demo() {
console.log("这些是插入与删除标记类型");
// return 语句使用默认标记类型
return true;
}

Word Wrap#

Word Wrap

Configuring word wrap per block#

// wrap 示例
function getLongString() {
return "这是一段非常长的字符串,如果容器不够宽,几乎不可能完全显示";
}

// wrap=false 示例
function getLongString() {
return "这是一段非常长的字符串,如果容器不够宽,几乎不可能完全显示";
}

Configuring indentation of wrapped lines#

// preserveIndent 示例(默认启用)
function getLongString() {
return "这是一段非常长的字符串,如果容器不够宽,几乎不可能完全显示";
}

// preserveIndent=false 示例
function getLongString() {
return "这是一段非常长的字符串,如果容器不够宽,几乎不可能完全显示";
}

Collapsible Sections#

Collapsible Sections

5 collapsed lines
// 下方这些样板代码将被折�
import { someBoilerplateEngine } from "@example/some-boilerplate";
import { evenMoreBoilerplate } from "@example/even-more-boilerplate";
const engine = someBoilerplateEngine(evenMoreBoilerplate());
// 这一部分将默认显示
engine.doSomething(1, 2, 3, calcFn);
function calcFn() {
// 你可以拥有多个折叠区块
3 collapsed lines
const a = 1;
const b = 2;
const c = a + b;
// 这一部分保持可见
console.log(`计算结果: ${a} + ${b} = ${c}`);
return c;
}
4 collapsed lines
// 以下内容将再次折�
engine.closeConnection();
engine.freeMemory();
engine.shutdown({ reason: "样板代码示例结束" });

Line Numbers#

Line Numbers

Displaying line numbers per block#

// 此代码块将显示行号
console.log("来自第 2 行的问候!");
console.log("我在第 3 行");
// 此代码块禁用行号
console.log("有人吗?");
console.log("呃,我在第几行?");

Changing the starting line number#

console.log("来自第 5 行的问候!");
console.log("我在第 6 行");

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Fuwari 简易指南
https://blog.cialo.site/posts/guide/
作者
洛璃
发布于
2024-04-01
许可协议
CC BY-NC-SA 4.0

目录