代码块
你可以使用标准的 Markdown 格式编写代码片段、代码块和其他等宽字体的文本。还提供了语法高亮并支持配置自定义的代码编辑器。
示例
你输入的内容
Inline code span: `let x = 5`
Code block:
```
def f(x):
return x+1
```
Syntax highlighting:
```python
def fib(n):
# TODO: base case
return fib(n-1) + fib(n-2)
```
您也可以使用 ~~~
来开始代码块,或者仅将代码缩进 4 个或更多空格。
它的展示效果
代码块右上角的小部件允许您轻松地将代码复制到剪贴板。
语言标记
为代码块标记语言可以启用语法高亮显示,并且(如果已配置)可以启用代码编辑器。支持数百种语言的语法高亮。
通过在代码块开始的围栏(```
)后输入语言名称,可以标记代码块,如下所示。自动补全将帮助你输入语言名称。Pygments 词法分析器文档中的简短名称值是支持语法高亮显示的完整值集。
``` python
print("Hello world!")
```
默认代码块语言
社群群主还可以配置代码块的默认语言,当代码块没有标签时将使用该默认语言。
- Instructions for all platforms
-
前往 社群设置.
-
在其他设置下,编辑代码块的默认语言。
当配置了默认语言时,可以使用 ```text
来显示没有任何语法高亮的代码块(例如用于粘贴错误消息)。
代码编辑器
代码编辑器是浏览器内的交互式开发环境,例如replit,旨在方便地编辑和调试代码。任何编程语言都可以为代码编辑器进行配置。用语言标记的代码块在悬停时会显示一个按钮,允许你在代码编辑器网站中打开该代码块。
添加自定义代码编辑器
- Instructions for all platforms
-
前往 代码编辑器.
-
在添加新代码编辑器下,输入名称、语言和URL 前缀。
-
点击添加代码编辑器。
例如,要为 Python 或 JavaScript 等语言配置代码编辑器,可以指定语言和 URL 模板为:
Python
和 https://replit.com/languages/python3/code={code}
JavaScript
和 https://replit.com/languages/javascript/code={code}
当代码块被标记为 Python 或 JavaScript(无论是显式标记还是通过社群默认设置),用户将在悬停时获得一个选项,可以在指定的代码编辑器中打开代码块。
代码编辑器使用 RFC 6570 兼容的 URL 模板来描述如何生成链接。Zulip 的渲染引擎将代码块中的 URL 编码代码作为 code
参数传递,该参数在此 URL 模板中表示为 {code}
,以生成 URL。你可以参考添加自定义链接器文档中有关 URL 模板的部分。
技术细节
-
你可以为某种语言配置多个编辑器;如果这样做,用户可以选择在哪个编辑器中打开代码。
-
语言字段是该编程语言的人类可读 Pygments 语言名称。代码块的语言标签在内部映射到这些人类可读的 Pygments 名称;例如,py3
和 py
都映射到 Python
。可以使用自动补全(在输入内容时或点击语言字段时显示)查找 Pygments 名称。
-
用于打开代码编辑器的链接始终通过将代码块的 URL 编码内容替换为 URL 模板中的 code
变量来构造。URL 模板必须包含一个名为 code
的变量。
-
代码编辑器网站并不总是清楚地记录其 URL 格式;通常你可以从浏览器的 URL 栏中获取前缀。
-
你还可以使用自定义语言名称来实现简单的集成。例如,带有“语言” send_tweet
标记的代码块可以用于一个“编辑器”,该编辑器将代码块的内容作为推文发送。
相关文章