代码与语法高亮

English: English · Markdown语法 · 数学公式与图表

技术笔记好不好读,常常取决于代码是否清楚。Inimark 支持 行内代码、围栏代码块,以及由 CodeMirror 语言包驱动的 语法高亮(配色来自 主题与外观)。

在 Inimark 里打开本页,即可直接看到高亮效果。若语言标签不被识别,仍会显示等宽代码块,只是没有着色。发布站点也会在构建时用同一套语言包生成高亮(无需浏览器再跑一遍高亮脚本)。

行内代码

用反引号包住短片段:

C++ 里常用 `std::vector`,Rust 里常见 `Path`。

渲染效果:C++ 里常用 std::vector,Rust 里常见 Path。

行内代码快捷键:Ctrl/⌘ + Shift + `(见 查找替换与快捷键)。

适合:API 名、文件名、命令行参数、不宜做成整块的短标记。

围栏代码块

怎么插入

  1. 快捷键:Alt + Ctrl/⌘ + C 插入代码块。

  2. 或在 源码模式 里手写围栏:

```python
print("hello")
```
  1. 在起始围栏写上 语言标签(python、cpp、rust…),用来选择高亮。

光标进入代码块时,右下角会出现语言输入框;其左侧有两个按钮:

  • 自动缩进:按当前语言规则重排整块缩进(缩进宽度在 设置 → 编辑器 → 代码缩进宽度,默认 2 空格)

  • 复制:把代码块内容写入剪贴板

从浏览器粘贴容易带上乱七八糟的格式时,用 纯文本粘贴(Ctrl/⌘ + Shift + V),缩进更稳。

常用语言标签

语言常见标签
C++cpp、c++
Cc
Pythonpython、py
Javajava
Rustrust
Rr
Swiftswift
TypeScript / JavaScriptts、typescript、js、javascript
Gogo
SQLsql
JSONjson
Shellbash、shell、sh

具体别名以内置 CodeMirror 语言数据为准。标签未知时仍可读,只是没有颜色。

特殊围栏:mermaid 会渲染成图表,而不是高亮源码 → 数学公式与图表。

按语言展示

下面每段都是可复制的短示例。

C++

#include <iostream>
#include <vector>

int main() {
  std::vector<int> xs{1, 2, 3};
  for (int x : xs) {
    std::cout << x << '\n';
  }
  return 0;
}

Python

from dataclasses import dataclass

@dataclass
class Point:
    x: float
    y: float

def length(p: Point) -> float:
    return (p.x ** 2 + p.y ** 2) ** 0.5

print(length(Point(3, 4)))

Java

import java.util.List;

public final class Greeter {
  public static String join(List<String> parts) {
    return String.join(" · ", parts);
  }

  public static void main(String[] args) {
    System.out.println(join(List.of("Inimark", "Java")));
  }
}

Rust

fn factorial(n: u64) -> u64 {
    (1..=n).product()
}

fn main() {
    let n = 6;
    println!("{n}! = {}", factorial(n));
}

R

mean_sd <- function(x) {
  c(mean = mean(x), sd = sd(x))
}

xs <- c(1.2, 3.4, 5.6, 7.8)
print(mean_sd(xs))

Swift

struct User {
  let id: Int
  var name: String
}

func greet(_ user: User) -> String {
  "Hello, \(user.name) (#\(user.id))"
}

let alice = User(id: 1, name: "Alice")
print(greet(alice))

TypeScript

type Note = { path: string; title: string };

export function displayTitle(note: Note): string {
  return note.title.trim() || note.path;
}

Go

package main

import "fmt"

func sum(xs []int) int {
  total := 0
  for _, x := range xs {
    total += x
  }
  return total
}

func main() {
  fmt.Println(sum([]int{1, 2, 3}))
}

SQL

SELECT title, updated_at
FROM notes
WHERE library_id = $1
ORDER BY updated_at DESC
LIMIT 20;

JSON

{
  "siteName": "Inimark Docs",
  "defaultTheme": "light",
  "out": "dist"
}

Shell

pnpm docs:build
pnpm test:editor

编辑习惯

目标做法
快速插入Alt + Ctrl/⌘ + C
改语言标签在所见即所得里点语言框,或到源码模式改
自动缩进点语言框左侧的「自动缩进」按钮(宽度见设置)
复制代码点语言框左侧的「复制」按钮
大段整理[[编辑模式#源码模式
粘贴保持干净纯文本粘贴
换配色主题与外观 的代码主题(含 Cursor / Rider 明暗)

相关


上一篇:Markdown语法 · 下一篇:数学公式与图表