预设值
预设值是可复用的动态或静态内容片段,可以在模板和笔记中使用。通过 {{标识符}} 的形式引用。
使用场景
- 自动插入当前日期/时间
- 定义常用的文本片段
- 创建带参数的动态内容
- 设置模板中的光标聚焦位置
打开预设值管理
点击左侧栏的预设值图标,进入预设值管理页面。
预设值类型
静态预设值
固定的文本内容,插入时直接替换为设定的值。
示例:
- 标识符:
signature - 值:
—— 张三
使用 {{signature}} 时会替换为 —— 张三
动态预设值
使用 JavaScript 代码动态生成内容,支持传入参数。
示例:
- 标识符:
date - 代码:
javascript
function(context, params = { format: 'YYYY/MM/DD' }) {
return context.dayjs().format(params.format);
}内置预设值
系统提供以下内置预设值:
| 标识符 | 说明 | 默认输出 |
|---|---|---|
time | 当前时间 | 14:30:00 |
date | 当前日期 | 2025/01/20 |
datetime | 完整日期时间 | 2025/01/20 14:30:00 |
focus | 光标聚焦位置 | 无输出,光标定位到此处 |
使用预设值
在编辑器中使用
- 输入
{{触发预设值选择器 - 输入标识符进行搜索
- 选择预设值后按
Enter插入
在模板中使用
在模板编辑器中同样使用 {{ 触发选择器,插入的预设值会在模板应用时自动替换。
参数用法
动态预设值支持传入参数,自定义输出格式。
参数格式
参数使用 JSON 对象格式,通过 | 分隔符传入:{{标识符|{"key": "value"}}}
使用示例
自定义日期格式
默认 {{date}} 输出:2025/01/20
传入参数 {{date|{"format": "YYYY-MM-DD"}}},输出:2025-01-20
传入参数 {{date|{"format": "MM月DD日"}}},输出:01月20日
自定义时间格式
默认 {{time}} 输出:14:30:00
传入参数 {{time|{"format": "HH:mm"}}},输出:14:30
传入参数 {{time|{"format": "h:mm A"}}},输出:2:30 PM
自定义日期时间格式
默认 {{datetime}} 输出:2025/01/20 14:30:00
传入参数 {{datetime|{"format": "YYYY年MM月DD日 HH时mm分"}}},输出:2025年01月20日 14时30分
日期格式参考
| 格式符 | 说明 | 示例 |
|---|---|---|
YYYY | 四位年份 | 2025 |
YY | 两位年份 | 25 |
MM | 两位月份 | 01 |
M | 月份 | 1 |
DD | 两位日期 | 20 |
D | 日期 | 20 |
HH | 24小时制小时 | 14 |
hh | 12小时制小时 | 02 |
h | 12小时制小时 | 2 |
mm | 分钟 | 30 |
ss | 秒 | 00 |
A | AM/PM | PM |
a | am/pm | pm |
dddd | 星期全称 | Monday |
ddd | 星期缩写 | Mon |
创建自定义预设值
- 点击顶部工具栏的新建按钮
- 填写:
- 标识符:支持中文、英文、数字、下划线,如
my_preset或我的预设(标识符可以重复,但建议使用不同的标识符以便区分) - 描述:可选,说明预设值的用途
- 类型:静态或动态
- 值:静态类型填写固定文本;动态类型填写 JavaScript 函数
- 标识符:支持中文、英文、数字、下划线,如
- 点击保存
动态预设值代码规范
javascript
function(context, params = { /* 默认参数 */ }) {
// context 提供:
// - context.dayjs: dayjs 库,用于日期时间处理
// - context.focus(): 调用后光标会聚焦到此位置
// params 是用户传入的参数对象
return '返回的文本内容';
}可用的全局对象和方法:
- 基础类型:
Array、Boolean、Date、JSON、Math、Number、Object、String、RegExp - 工具方法:
parseInt、parseFloat、isNaN、isFinite、encodeURI、encodeURIComponent、decodeURI、decodeURIComponent - 日期处理:
dayjs(完整的 dayjs 库,已加载以下扩展)utc- UTC 时间支持timezone- 时区支持weekOfYear- 年中第几周dayOfYear- 年中第几天isoWeek- ISO 周标准isSameOrBefore- 日期比较isSameOrAfter- 日期比较isBetween- 日期范围判断duration- 时间段计算relativeTime- 相对时间(如"3天前")customParseFormat- 自定义解析格式advancedFormat- 高级格式化选项
- 网络请求:
fetch(支持异步网络请求)
安全限制:
- 代码在沙箱环境中执行,无法访问文件系统、Electron API 等系统功能
- 执行超时限制为 5 秒
- 禁止使用:
require、import、eval、window、document、localStorage等
示例:日期区间
生成日期区间字符串,适用于会议记录、项目计划等场景。
javascript
function(context, params = { startDate: '', days: 7, format: 'YYYY-MM-DD' }) {
const { dayjs } = context;
const start = params.startDate ? dayjs(params.startDate) : dayjs();
const end = start.add(params.days, 'day');
return `${start.format(params.format)} ~ ${end.format(params.format)}`;
}使用:
{{dateRange}}→2025-01-20 ~ 2025-01-27(从今天开始,默认 7 天){{dateRange|{"days": 30}}}→2025-01-20 ~ 2025-02-19(30 天){{dateRange|{"startDate": "2025-02-01", "days": 14}}}→2025-02-01 ~ 2025-02-15(指定起始日期){{dateRange|{"days": 7, "format": "MM月DD日"}}}→01月20日 ~ 01月27日
示例:星期几显示
获取指定日期的星期几,支持长短格式切换。
javascript
function(context, params = { date: '', format: 'long' }) {
const { dayjs } = context;
const targetDate = params.date ? dayjs(params.date) : dayjs();
const weekdays = {
long: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
short: ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
};
return weekdays[params.format][targetDate.day()];
}使用:
{{weekday}}→星期一(当前日期){{weekday|{"date": "2025-01-01"}}}→星期三(指定日期){{weekday|{"date": "2025-01-20", "format": "short"}}}→周一(短格式)
