For AI agents: the complete documentation index is available at https://shijin.space/llms.txt, the full documentation bundle is available at https://shijin.space/llms-full.txt, and this page is available as Markdown at https://shijin.space/projects/cinderfolio/shiki/index.md.

Cinderfolio-Shiki

Shiki 是基于 TextMate 语法的代码高亮器,在渲染时生成带有语法颜色与字形的 HTML。

深色g0#121212
浅色g16bg#fafaf8
品牌色brand#f97316
通用编程
网页与组件
数据与配置
脚本与构建
文档与文本
C
C++
Python
JS
TS
C#
Rust
Go
Java
tasks.c · C11
#include <stdbool.h>
#include <stdio.h>
#define MAX_SHOWN 2

typedef struct { const char *title; bool done; } Task;
typedef bool (*Predicate)(const Task *);

static bool is_pending(const Task *task) {
    return !task->done;
}

// 回调决定筛选条件,指针访问原数据,达到上限后提前结束。
static size_t visit(const Task tasks[], size_t count, Predicate accept) {
    size_t shown = 0;
    for (size_t i = 0; i < count; ++i) {
        const Task *task = &tasks[i];
        if (!accept(task)) continue;
        printf("%zu. %s\n", shown + 1, task->title);
        if (++shown == MAX_SHOWN) break;
    }
    return shown;
}

int main(void) {
    const Task tasks[] = {
        {.title = "调整配色", .done = true},
        {.title = "导出主题", .done = false},
        {.title = "检查示例", .done = false},
    };
#if defined(DEBUG)
    fprintf(stderr, "开始筛选待办任务\n");
#endif
    size_t count = sizeof tasks / sizeof tasks[0];
    size_t shown = visit(tasks, count, is_pending);
    return shown > 0 ? 0 : 1;
}
显示职责
  • 流程导航#d65b06

    darker · 粗体

    分支、循环、声明、指令与提前返回

  • 阅读主体#121212

    g0 · 粗体

    函数、变量、属性、名称标签与表达式

  • 注释说明#121212

    g0 · 斜体

    注释、文档说明与斜体文本

  • 数据正文#121212

    g0 · 常规

    默认代码、字面量、标签与普通正文

  • 辅助信息#3e3e3d

    g3 · 常规

    类型及其边界、修饰符、声明附注与参数标签

  • 结构细节#696968

    g6 · 常规

    分隔符、字符串引号、排版边界与引用

底色 g16bg#fafaf8Diff上下文+ 新增− 删除! 修改