Skip to content

写日记:使用日期作为章节名字

可以自定义章节名格式

入口: 编辑书籍信息 -> 章节名格式 -> 管理 -> 添加 -> 脚本模式

简易实现

js
// 日记章节命名脚本 - 只使用当前日期作为章节名
// 格式示例:2025年08月22日 星期五

function 格式日期(日期对象) {
  const = 日期对象.getFullYear();
  const = (日期对象.getMonth() + 1).toString().padStart(2, '0');
  const = 日期对象.getDate().toString().padStart(2, '0');
  
  // 星期映射表
  const 星期列表 = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  const 星期 = 星期列表[日期对象.getDay()];
  
  return `${}年${}月${}日 ${星期}`;
}

// 获取当前日期并格式化为章节名
格式日期(new Date());

效果:

提示

可以复制下面内容,修改一下你自己的需求,让豆包、元宝、DeepSeek等大模型帮助编写脚本

markdown
阅读下面脚本的文档,帮我实现一个用当前日期当做章节名的脚本,可以用来写日记

https://open.pendown.cn/open/chapter-name-format.html

复杂脚本

说明

该脚本由群友“钱钱喜欢我 ”贡献的,感谢!

输入脚本内容:

js
// == 日记章节生成器 ==
// 功能:自动生成以当前日期为章节名的日记条目
// 兼容:笔落写作开放平台API

class DiaryChapterGenerator {
  constructor() {
    // 支持多种日期格式选项
    this.dateFormats = {
      'zh-full': date => date.toLocaleDateString('zh-CN', {
        year: 'numeric',
        month: 'long',
        day: 'numeric',
        weekday: 'long'
      }), // 示例:2025年8月22日 星期五
      'zh-short': date => date.toLocaleDateString('zh-CN'),
      'iso': date => date.toISOString().split('T')[0], // YYYY-MM-DD
      'custom': date => {
        const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
        return `${date.getFullYear()}年${(date.getMonth()+1).toString().padStart(2,'0')}月${date.getDate().toString().padStart(2,'0')}日 ${weekdays[date.getDay()]}`;
      }
    };
  }

  /**
   * 生成带时间戳的日记章节
   * @param {string} formatKey - 日期格式键 (zh-full/zh-short/iso/custom)
   * @returns {object} 包含章节名和默认内容的完整章节对象
   */
  generateDiaryChapter(formatKey = 'custom') {
    const now = new Date();
    const formatFunction = this.dateFormats[formatKey] || this.dateFormats.custom;

    // 生成章节标题
    const chapterName = `📅 ${formatFunction(now)}`;

    // 生成默认日记内容模板
    const content = this.generateDefaultContent(now);

    return {
      name: chapterName,
      content: content,
      metadata: {
        created: now.toISOString(),
        format: formatKey
      }
    };
  }

  /**
   * 生成日记默认内容模板
   * @param {Date} date - 当前日期对象
   * @returns {string} Markdown格式的日记模板
   */
  generateDefaultContent(date) {
    const timeString = date.toLocaleTimeString('zh-CN', { hour12: false });
    const weatherEmoji = '☀️'; // 可替换为天气API获取的实际数据

    return `## ${timeString} ${weatherEmoji}

### 今日计划
1. [ ] 重要任务
2. [ ] 次要任务

### 今日记录
- 上午:
- 下午:
- 晚上:

### 今日总结
<!-- 写下今日感想 -->

---
> 心情:😊 | 地点:🏠 | 能量:⚡⚡⚡
`;
  }
}

// == 与笔落写作平台集成的接口函数 ==
/**
 * 主入口函数(笔落写作平台会自动调用)
 * @returns {string} 生成的章节名称
 */
function main() {
  try {
    const generator = new DiaryChapterGenerator();

    // 检查是否已有今日日记
    if (hasTodayChapter()) {
      return "今日日记已存在";
    }

    // 生成新章节
    const chapter = generator.generateDiaryChapter();

    // 在笔落平台中创建章节
    if (typeof createChapter === 'function') {
      createChapter(chapter.name, chapter.content);
    }

    return chapter.name;
  } catch (error) {
    console.error('生成日记章节时出错:', error);
    return `日记 ${new Date().toLocaleDateString()}`;
  }
}

/**
 * 检查是否已存在今日章节
 * @returns {boolean}
 */
function hasTodayChapter() {
  if (typeof getCurrentNameList !== 'function') return false;

  const today = new Date();
  const dateString = today.toLocaleDateString('zh-CN');
  const existingChapters = getCurrentNameList();

  return existingChapters.some(name =>
    name.includes(dateString) ||
    name.includes(today.getDate().toString())
  );
}

// 执行并返回结果
main();

效果: