2205 字
11 分钟

Firefly 代码块示例

2025-01-01
浏览量 加载中...

在这里,我们将探索如何使用 Expressive Code 展示代码块。提供的示例基于官方文档,您可以参考以获取更多详细信息。

表达性代码#

语法高亮#

语法高亮

常规语法高亮#

console.log('此代码有语法高亮!')

渲染 ANSI 转义序列#

Terminal window
ANSI 颜色:
默认:
亮红 亮绿 绿 亮黄 亮蓝 亮品红 品红 亮青 浅灰 亮白
交换前/背景色(反显):
亮红 亮绿 绿 亮黄 亮蓝 亮品红 品红 亮青 浅灰 亮白
设置背景色:
亮红 亮绿 绿 亮黄 亮蓝 亮品红 品红 亮青 浅灰 亮白
Terminal window
256 颜色:
0 16 40 64 88 112 136 160 184 208 232
1 17 41 65 89 113 137 161 185 209 233
2 18 42 66 90 114 138 162 186 210 234
3 19 43 67 91 115 139 163 187 211 235
4 20 44 68 92 116 140 164 188 212 236
5 21 45 69 93 117 141 165 189 213 237
6 22 46 70 94 118 142 166 190 214 238
7 23 47 71 95 119 143 167 191 215 239
8 24 48 72 96 120 144 168 192 216 240
9 25 49 73 97 121 145 169 193 217 241
10 26 50 74 98 122 146 170 194 218 242
11 27 51 75 99 123 147 171 195 219 243
12 28 52 76 100 124 148 172 196 220 244
13 29 53 77 101 125 149 173 197 221 245
14 30 54 78 102 126 150 174 198 222 246
15 31 55 79 103 127 151 175 199 223 247
32 56 80 104 128 152 176 200 224 248
33 57 81 105 129 153 177 201 225 249
34 58 82 106 130 154 178 202 226 250
35 59 83 107 131 155 179 203 227 251
36 60 84 108 132 156 180 204 228 252
37 61 85 109 133 157 181 205 229 253
38 62 86 110 134 158 182 206 230 254
39 63 87 111 135 159 183 207 231 255
0 16 40 64 88 112 136 160 184 208 232
1 17 41 65 89 113 137 161 185 209 233
2 18 42 66 90 114 148 162 186 210 234
3 19 43 67 91 115 139 163 187 211 235
4 20 44 68 92 116 140 164 188 212 236
5 21 45 69 93 117 141 165 189 213 237
6 22 46 70 94 118 142 166 190 214 248
7 23 47 71 95 119 143 167 191 215 239
8 24 48 72 96 120 144 168 192 216 240
9 25 49 73 97 121 145 169 193 217 241
10 26 50 74 98 122 146 170 194 218 242
11 27 51 75 99 123 147 171 195 219 243
12 28 52 76 100 124 148 172 196 220 244
13 29 53 77 101 125 149 173 197 221 245
14 30 54 78 102 126 150 174 198 222 246
15 31 55 79 103 127 151 175 199 223 247
32 56 80 104 128 152 176 200 224 248
33 57 81 105 129 153 177 201 225 249
34 58 82 106 130 154 178 202 226 250
35 59 83 107 131 155 179 203 227 251
36 60 84 108 132 156 180 204 228 252
37 61 85 109 133 157 181 205 229 253
48 62 86 110 134 158 182 206 230 254
39 63 87 111 135 159 183 207 231 255
Terminal window
RGB 颜色:
ForestGreen - RGB(34, 139, 34)
ForestGreen - RGB(34, 139, 34)
文本格式: 1 - 粗体 2 - 细体 3 - 斜体 4 - 下划线 9 - 删除线

编辑器和终端框架#

编辑器和终端框架

代码编辑器框架#

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

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

终端框架#

Terminal window
echo "此终端框架没有标题"

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

覆盖框架类型#

echo "看,没有框架!"

PowerShell Profile.ps1
# 如果不覆盖,这将是一个终端框架
function Watch-Tail { Get-Content -Tail 20 -Wait $args }
New-Alias tail Watch-Tail

文本和行标记#

文本和行标记

标记整行和行范围#

// 第1行 - 通过行号定位
// 第2行
// 第3行
// 第4行 - 通过行号定位
// 第5行
// 第6行
// 第7行 - 通过范围 "7-8" 定位
// 第8行 - 通过范围 "7-8" 定位

选择行标记类型 (mark, ins, del)#

line-markers.js
function demo() {
console.log('此行标记为已删除')
// 此行和下一行标记为已插入
console.log('这是第二个插入行')
return '此行使用中性默认标记类型'
}

为行标记添加标签#

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>

在单独行上添加长标签#

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>

使用类似 diff 的语法#

此行将标记为已插入
此行将标记为已删除
这是常规行

--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+this is an actual diff file
-all contents will remain unmodified
no whitespace will be removed either

结合语法高亮和类似 diff 的语法#

function thisIsJavaScript() {
// 整个块都会以 JavaScript 高亮显示,
// 并且我们仍然可以为其添加 diff 标记!
console.log('要删除的旧代码')
console.log('新的闪亮代码!')
}

标记行内的单独文本#

function demo() {
// 标记行内的任何给定文本
return '支持给定文本的多个匹配项';
}

正则表达式#

console.log('单词 yesyep 将被标记。')

转义正斜杠#

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

选择内联标记类型 (mark, ins, del)#

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

自动换行#

自动换行

为每个块配置自动换行#

// 启用换行的示例
function getLongString() {
return '这是一个非常长的字符串,除非容器极宽,否则很可能无法适应可用空间'
}

// wrap=false 的示例
function getLongString() {
return '这是一个非常长的字符串,除非容器极宽,否则很可能无法适应可用空间'
}

配置换行的缩进#

// preserveIndent 示例(默认启用)
function getLongString() {
return '这是一个非常长的字符串,除非容器极宽,否则很可能无法适应可用空间'
}

// preserveIndent=false 的示例
function getLongString() {
return '这是一个非常长的字符串,除非容器极宽,否则很可能无法适应可用空间'
}

可折叠部分#

可折叠部分

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: '示例样板代码结束' })

行号#

行号

为每个块显示行号#

// 此代码块将显示行号
console.log('来自第2行的问候!')
console.log('我在第3行')

// 此块禁用行号
console.log('你好?')
console.log('抱歉,你知道我在第几行吗?')

更改起始行号#

console.log('来自第5行的问候!')
console.log('我在第6行')
Firefly 代码块示例
https://www.satxm.top/posts/code-examples/
作者
Satxm
发布于
2025-01-01
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-01-01,距今已过 345 天

部分内容可能已过时

评论区

目录