惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 司徒正美
C
Check Point Blog
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
IT之家
IT之家
B
Blog
博客园_首页
量子位
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
J
Java Code Geeks
H
Help Net Security
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
D
DataBreaches.Net
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News

博客园 - 风来风往风伤(TiAmo)

CPU监控工具 no matching host key type found. Their offer: ssh-rsa报错信息具体方法 Spring_AOP 原理 增强类型 js漂浮代码 ThoughtWorks(中国)程序员读书雷达 Java实现文件的RSA和DES加密算法 二维码 编码原理简介 Maven+eclipse+svn项目构建 QtCreator中使用CMake+Ninja加速编译 error C1088: 无法刷新编译器中间文件 error C1041: 无法打开程序数据库“xxx\vc140.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件 - 风来风往风伤(TiAmo) Navicat key MICROSOFT SQL SERVER 2012 序列号 IT外包概要 RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set. 判断django中的orm为空 QEventLoop配合QTimer实现阻塞任务超时处理 sql调优的总结 2019Python学习路线图
桌面日历软件
风来风往风伤(TiAmo) · 2026-03-09 · via 博客园 - 风来风往风伤(TiAmo)

桌面日历软件

项目概述

这是一个基于 Electron 框架开发的跨平台桌面日历应用,提供直观的日历视图、事件管理、节假日显示和数据同步功能。

主要特性

  • 📅 多视图支持:月视图、周视图、日视图和年视图
  • 🎯 事件管理:添加、编辑、删除事件,支持分类和提醒
  • 🎉 节假日显示:内置常见节假日,支持自定义节假日
  • 💾 数据存储:本地存储,支持导出/导入 JSON 备份
  • 🌙 主题切换:支持浅色和深色模式
  • 🌍 跨平台:支持 Windows、macOS 和 Linux

技术栈

  • 前端:HTML5 + CSS3 + JavaScript
  • 框架:Electron ^28.0.0
  • 构建工具:electron-builder ^24.0.0
  • 存储:electron-store ^8.0.0

快速开始

环境要求

  • Node.js v16.0.0 或更高版本
  • npm 6.0.0 或更高版本

安装与运行

  1. 克隆项目
git clone https://gitee.com/zhang.wei/desktop-calendar.git
cd calendar
  1. 安装依赖
npm install
  1. 启动开发模式
npm start
  1. 打包应用
# 打包所有平台
npm run build

# 打包特定平台
npm run build -- --win    # Windows
npm run build -- --mac    # macOS
npm run build -- --linux  # Linux

项目结构

calendar/
├── electron/             # Electron 主进程和预加载脚本
│   ├── main.js          # 主进程:创建窗口和处理系统事件
│   └── preload.js       # 预加载脚本:桥接主进程和渲染进程
├── src/                  # 前端源码
│   ├── css/              # 样式文件
│   │   └── style.css    # 主样式文件
│   ├── js/               # 核心逻辑
│   │   ├── app.js        # 应用主逻辑
│   │   ├── calendar.js   # 日历核心功能
│   │   ├── events.js     # 事件管理
│   │   ├── settings.js   # 设置管理
│   │   └── storage.js    # 存储管理
│   └── index.html        # 主界面
├── calendar-app/         # 备用应用结构
├── dist/                 # 打包输出目录
├── package.json          # 项目配置
├── README.md             # 本文档
└── 打包部署指南.md        # 打包与部署指南

核心功能

1. 日历视图

  • 月视图:显示当月所有日期,突出显示当前日期和包含事件的日期
  • 周视图:按周显示日期,适合查看一周的安排
  • 日视图:详细显示当天的事件,按时间顺序排列
  • 年视图:显示全年月份概览,快速导航到特定月份

2. 事件管理

  • 添加事件:设置标题、时间、地点、描述和分类
  • 编辑事件:修改现有事件的所有属性
  • 删除事件:移除不需要的事件
  • 事件分类:支持工作、个人、重要等分类,不同分类显示不同颜色
  • 事件提醒:设置提前提醒时间,支持系统通知
  • 重复事件:支持每天、每周、每月、每年重复

3. 节假日显示

  • 内置节假日:包含常见的法定节假日
  • 自定义节假日:支持添加和管理自定义节假日

4. 数据管理

  • 本地存储:使用 electron-store 进行本地数据持久化
  • 数据导出:导出为 JSON 文件,用于备份
  • 数据导入:从 JSON 文件导入数据,用于恢复或迁移

5. 设置功能

  • 主题设置:切换浅色/深色模式
  • 语言设置:支持多语言(目前仅支持中文)
  • 提醒设置:配置提醒声音和方式
  • 默认视图:设置启动时默认显示的视图

开发指南

启动开发模式

npm start

代码规范

  • 使用 2 个空格进行缩进
  • 变量命名使用驼峰命名法
  • 函数命名使用动词开头的驼峰命名法
  • 常量使用全大写字母,单词间用下划线分隔
  • 注释使用 JSDoc 格式

调试技巧

  • 主进程调试:在 package.json 中添加 --inspect 标志
  • 渲染进程调试:在应用中按 Ctrl+Shift+I 打开开发者工具
  • 日志输出:使用 console.log() 在控制台查看输出

构建与发布

构建配置

构建配置在 package.json 文件的 build 字段中定义:

"build": {
  "appId": "com.desktop.calendar",
  "productName": "Desktop Calendar",
  "directories": {
    "output": "dist"
  },
  "win": {
    "target": ["nsis", "portable"]
  },
  "mac": {
    "target": "dmg"
  },
  "linux": {
    "target": ["deb", "rpm", "AppImage"]
  }
}

构建命令

# 构建所有平台
npm run build

# 构建特定平台
npm run build -- --win    # Windows
npm run build -- --mac    # macOS
npm run build -- --linux  # Linux

发布流程

  1. 更新版本号(在 package.json 中)
  2. 运行构建命令
  3. 测试构建产物
  4. 发布到相关平台

贡献指南

提交代码

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 创建 Pull Request

报告问题

在 GitHub Issues 中报告问题时,请提供以下信息:

  • 操作系统版本
  • 应用版本
  • 具体问题描述
  • 重现步骤
  • 相关截图(如果有)

功能请求

欢迎提出新功能请求,在 GitHub Issues 中详细描述您希望添加的功能。

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

致谢

联系方式

  • Q:372806800

更新日志

v1.0.0 (2026-02-24)

  • ✨ 初始版本发布
  • 📅 实现月视图、周视图、日视图和年视图
  • 🎯 实现事件管理功能
  • 🎉 实现节假日显示
  • 💾 实现本地存储和数据导出/导入
  • 🌙 实现主题切换
  • 🌍 支持 Windows、macOS 和 Linux

注意:本项目仍在开发中,部分功能可能会有变化。

祝您使用愉快! 📅