Obsidian Tasks 开源项目教程
项目的目录结构及介绍
Obsidian Tasks 项目的目录结构如下:
obsidian-tasks/
├── .github/
│ └── workflows/
├── .obsidian/
│ └── plugins/
├── .vscode/
│ └── settings.json
├── assets/
│ └── logo.png
├── src/
│ ├── commands/
│ ├── components/
│ ├── lang/
│ ├── lib/
│ ├── styles/
│ ├── tests/
│ ├── ui/
│ └── main.ts
├── .gitignore
├── .npmrc
├── .prettierrc
├── LICENSE
├── README.md
├── package.json
├── tsconfig.json
└── webpack.config.js
目录结构介绍
- .github/workflows: 包含 GitHub Actions 的工作流配置文件。
- .obsidian/plugins: 包含 Obsidian 插件的配置文件。
- .vscode/settings.json: Visual Studio Code 的设置文件。
- assets/logo.png: 项目的 logo 图片。
- src/: 项目的源代码目录,包含主要的 TypeScript 文件和资源文件。
- commands: 包含命令相关的代码。
- components: 包含 React 组件。
- lang: 包含多语言支持的文件。
- lib: 包含库文件。
- styles: 包含样式文件。
- tests: 包含测试文件。
- ui: 包含用户界面相关的代码。
- main.ts: 项目的主入口文件。
- .gitignore: Git 忽略文件配置。
- .npmrc: npm 配置文件。
- .prettierrc: Prettier 代码格式化配置文件。
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档。
- package.json: 项目的 npm 包配置文件。
- tsconfig.json: TypeScript 配置文件。
- webpack.config.js: Webpack 配置文件。
项目的启动文件介绍
项目的启动文件是 src/main.ts
。这个文件是 Obsidian Tasks 插件的入口点,负责初始化插件并注册各种命令和事件监听器。
src/main.ts
文件内容概览
import { Plugin } from 'obsidian';
import { TasksSettingsTab, DEFAULT_SETTINGS, TasksSettings } from './settings';
import { registerCommands } from './commands';
export default class TasksPlugin extends Plugin {
settings: TasksSettings;
async onload() {
await this.loadSettings();
// 注册命令
registerCommands(this);
// 添加设置选项卡
this.addSettingTab(new TasksSettingsTab(this.app, this));
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
}
启动文件功能介绍
- 导入依赖: 导入 Obsidian 插件核心模块和其他自定义模块。
- 定义插件类: 定义
TasksPlugin
类,继承自Plugin
类。 - 加载设置: 在
onload
方法中加载插件设置。 - 注册命令: 调用
registerCommands
方法注册插件的命令。 - 添加设置选项卡: 添加插件的设置选项卡。
项目的配置文件介绍
项目的配置文件主要包括 package.json
和 tsconfig.json
。
package.json
文件介绍
package.json
文件是 npm 包的配置文件,包含了项目的依赖、脚本和其他元数据。
{
"name": "obsidian-tasks",
"version": "1.0.0",
"description": "Task management for Obsidian",
"main": "main.js",
"scripts": {
"build": "webpack",
"dev": "webpack --mode development",
"test": "jest"
},
"keywords": [
"obsidian",
"tasks",
"