Skip to content

预设值

预设值是可复用的动态或静态内容片段,可以在模板和笔记中使用。通过 {{标识符}} 的形式引用。

使用场景

  • 自动插入当前日期/时间
  • 定义常用的文本片段
  • 创建带参数的动态内容
  • 设置模板中的光标聚焦位置

打开预设值管理

点击左侧栏的预设值图标,进入预设值管理页面。

预设值类型

静态预设值

固定的文本内容,插入时直接替换为设定的值。

示例

  • 标识符: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光标聚焦位置无输出,光标定位到此处

使用预设值

在编辑器中使用

  1. 输入 {{ 触发预设值选择器
  2. 输入标识符进行搜索
  3. 选择预设值后按 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
HH24小时制小时14
hh12小时制小时02
h12小时制小时2
mm分钟30
ss00
AAM/PMPM
aam/pmpm
dddd星期全称Monday
ddd星期缩写Mon

创建自定义预设值

  1. 点击顶部工具栏的新建按钮
  2. 填写:
    • 标识符:支持中文、英文、数字、下划线,如 my_preset我的预设(标识符可以重复,但建议使用不同的标识符以便区分)
    • 描述:可选,说明预设值的用途
    • 类型:静态或动态
    • :静态类型填写固定文本;动态类型填写 JavaScript 函数
  3. 点击保存

动态预设值代码规范

javascript
function(context, params = { /* 默认参数 */ }) {
  // context 提供:
  // - context.dayjs: dayjs 库,用于日期时间处理
  // - context.focus(): 调用后光标会聚焦到此位置
  
  // params 是用户传入的参数对象
  
  return '返回的文本内容';
}

可用的全局对象和方法

  • 基础类型:ArrayBooleanDateJSONMathNumberObjectStringRegExp
  • 工具方法:parseIntparseFloatisNaNisFiniteencodeURIencodeURIComponentdecodeURIdecodeURIComponent
  • 日期处理:dayjs(完整的 dayjs 库,已加载以下扩展)
    • utc - UTC 时间支持
    • timezone - 时区支持
    • weekOfYear - 年中第几周
    • dayOfYear - 年中第几天
    • isoWeek - ISO 周标准
    • isSameOrBefore - 日期比较
    • isSameOrAfter - 日期比较
    • isBetween - 日期范围判断
    • duration - 时间段计算
    • relativeTime - 相对时间(如"3天前")
    • customParseFormat - 自定义解析格式
    • advancedFormat - 高级格式化选项
  • 网络请求:fetch(支持异步网络请求)

安全限制

  • 代码在沙箱环境中执行,无法访问文件系统、Electron API 等系统功能
  • 执行超时限制为 5 秒
  • 禁止使用:requireimportevalwindowdocumentlocalStorage

示例:日期区间

生成日期区间字符串,适用于会议记录、项目计划等场景。

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"}}}周一(短格式)