块包是名字以 .lnb 结尾的文件夹,在树中作为
单个项目处理(双击打开)。每个块都是磁盘上的真实文件;
顺序保存在包根目录的 blocks.json 中。它像一个
笔记本:堆叠的代码或文本单元格。Jupyter 笔记本从这里进入:在树中右键点击 .ipynb,选择作为块导入 (.lnb)。每个单元格变成一个真实文件 —— 可版本控制,也能被搜索读取 ——,而 .ipynb 留在原处,因为导入不是转换。笔记本中保存的输出不会一起过来:在这里运行单元格会生成带时刻和命令的真实结果。如果 blocks.json 无法读取(Git 冲突或写入中断),笔记本会给出提示并且不会重写它:在你修复之前,顺序、连接和会话都不会再保存。
单元格、笔记本栏和快捷键
每个单元格有名字、类型按钮(markdown、python、javascript、sql、shell、powershell、bat、r、julia、http、ia、mermaid、latex 和文本类型),以及复制、插入(点击:下方;小箭头:上方和复制单元格)、删除、上下移动和运行(小箭头提供运行到此处)的按钮。新单元格继承相邻单元格的类型。右侧按钮折叠单元格,标题栏只留下第一行;计数器 [n] 表示本次会话中单元格运行的顺序。从树(新建)或文件 → 新建创建笔记本。
顶部的笔记本栏作用于整个笔记本:全部运行按顺序运行代码单元格;停止中断正在运行的单元格并清空队列(该次运行以退出码 -1 进入历史);清除输出关闭面板但不删除任何东西;更多菜单导出笔记本并删除历史。blocks.json 中的 timeoutSec 键设置每个单元格的时间限制(默认 0 表示不限制)。
焦点在单元格中时的快捷键:Ctrl+Enter 运行并停留;Shift+Enter 运行并移到下一个单元格(在最后一个上会新建一个);Alt+Enter 运行并在正下方插入一个单元格。在文本单元格中,运行意味着渲染:有内容时以渲染状态打开,双击(或在其上按 Enter)回到编辑。
保存的结果、附件和历史
结果会被保存(像实验记录本一样):运行结束时,
每次运行都变成包内 saida/<单元格>/ 下的一个
.md 文件 —— 包含时刻、退出码、
耗时、命令和输出本身。因为是 Markdown,可以在
任何编辑器中阅读,与笔记本一起用 Git 做版本控制,并通过
笔记搜索找回。重新打开包会在面板上方带回
上次运行条:点击它即可查看结果而无需
再次运行。
附件:每次运行在 .md 旁边都有自己的文件夹,其路径通过环境变量 LN_RUN_DIR 传给程序。单元格写在那里的东西 —— 一张 matplotlib 图、一个 CSV —— 会出现在输出下方(图片被绘制,其余作为指向文件夹的链接),并列在历史文件中。本身就是 Markdown 的输出(SELECT 的表格、AI 的回答、一个图表)以渲染状态打开;条上的文本/渲染按钮用于切换。
历史:该条旁边的历史按钮列出该单元格之前的
运行(时刻和退出码)—— 便于比较同一单元格
随时间返回了什么。我们为每个单元格保留最近 10 次;
要更改,请编辑包内 blocks.json 中的
historyLimit 键(0 关闭保存,附件也随之关闭)。过大的
输出会被截断(文件中写明 truncated: true)。重命名单元格或
更改其类型会带走历史;删除单元格会把历史送进
回收站。
持久会话
默认情况下每个单元格都是一个新进程:一个单元格定义的内容,下一个看不到。开启持久会话后(栏上的会话按钮;blocks.json 中的 session 键),Python、JavaScript、shell 和 PowerShell 单元格在一个运行之间保持存活的进程中执行 —— 一个单元格的变量、函数和导入在后续单元格中有效,就像 Jupyter 一样。在 Python 中,单元格结束时仍打开的 matplotlib 图形会自动保存到附件文件夹。重启会话会忘记一切;停止也是,因为中断就是结束进程。在 JavaScript 中,请用 var 声明(或不声明):顶层的 let、const 和 class 不能再次声明 —— 即使再次运行同一个单元格也不行。
SQL 单元格
未指定连接时,sql 单元格在笔记本自身的 DuckDB 中运行(内存中):一个单元格创建的表在后续单元格中有效,read_csv('data/sales.csv') 读取笔记本文件夹中的文件 —— 请把数据放在子文件夹中,因为笔记本文件夹中每个单独的文件都是一个单元格。要使用真实数据库,请通过连接条(它列出工作区的连接)把笔记本指向一个 .lnc 连接:单元格将在数据库上运行,使用与连接面板相同的连接 —— 记住的密码、SSH 隧道、重新读取 .lnc,以及任何写入前的生产环境确认。SELECT 的结果变成输出文件中的一张表格;INSERT/UPDATE 等报告改变了多少行,错误会中断脚本并记录失败的语句。每个查询最多取 100 行(blocks.json 中的 sqlMaxRows;有更多时文件会提示)。
@set name = value 定义一个笔记本作用域的变量,:name(或 ?)是运行时询问的参数,和 SQL 编辑器中一样。最后一个 SELECT 还会把 resultado.csv 写入附件文件夹(与表格相同的行,最多 sqlMaxRows 行),后续单元格通过 LN_LAST_SQL 收到它的路径 —— 在 Python 中:pd.read_csv(os.environ["LN_LAST_SQL"])。连接以相对路径保存在 blocks.json 中;放在包内的 .lnc 算作配置,不会变成单元格。
HTTP、AI、Mermaid 和 LaTeX
四种类型由 LightNote 自身运行,无需解释器:http 单元格是由与 API 测试器相同的执行器运行的 .lnh 测试(报告进入历史;环境由 blocks.json 的 httpEnv 键指定,请求发送的文件必须位于工作区内);ai 单元格把提示词连同笔记本上下文 —— 前面单元格的源码和各自的最后输出,但不包括可能携带凭据的 http 单元格 —— 发送给默认助手,回答以渲染状态到达;mermaid 和 latex 单元格把图表或公式绘制成附件中的图片。停止取消前两种。
导出笔记本
栏上的更多菜单导出整个笔记本:导出为 Markdown(文本单元格原样内联,代码放在带语言的围栏中,最后的输出紧随其下,图片以链接形式),或导出为 Jupyter 笔记本(.ipynb,包含每个单元格的最后输出和内嵌图片;其他语言的单元格带有 VS Code 能读取的标记)。这是用于分享的副本 —— 笔记本仍然是那个文件夹。
目录
编辑
- 概述
- 入门
- 工作区与窗口
- 活动中心:任务与消息
- 代码编辑器
- Markdown 与维基链接
- 图表(Mermaid)
- 数学与化学(LaTeX)
- 笔记中的日历
- 编号与交叉引用
- 引用与参考文献
- 学术论文规范
- 连接图
- 表格(Parquet・CSV・JSON・Excel)
- 分析区:数据透视表与多个图表
- PDF 与图像
- 图像:为截图添加标注
- HTML 页面(.html)
- 打印
- 作为文件夹的 Zip(.zip)
- 块(.lnb)
- 任务(看板 / 甘特图)
- 自定义表格(.lnd)
- 基库(笔记的已保存查询)
工具
- 文件内搜索与待办
- 版本控制(简易 Git)
- 快照与备份
- 审查更改(检查点)
- 文件比较(差异)
- 运行代码(F5)
- 终端与 AI CLI
- 对选区的 AI 助手(Ctrl+K / Ctrl+I)
- 你电脑上的 AI
- AI 会话
- AI 聊天
- HTTP API 测试(.lnh)
- 数据库(.lnc)
- SSH 连接(.lns)
- 安全: 安全口令・PIN・安全 Markdown
- 每日笔记・快速捕获・托盘
- 重新发现旧笔记
- 在手机上使用你的笔记
- 录制音频(语音、会议)并用 AI 转写
- 便签
- 日历
- 命令面板
自动化(AI / 脚本)
参考