nldates-obsidian 开源项目教程
项目的目录结构及介绍
nldates-obsidian 项目的目录结构相对简单,主要包含以下几个部分:
nldates-obsidian/
├── main.ts
├── styles.css
├── manifest.json
├── README.md
└── package.json
- main.ts: 项目的主文件,包含了插件的主要逻辑。
- styles.css: 项目的样式文件,定义了插件的外观。
- manifest.json: 项目的清单文件,包含了插件的元数据。
- README.md: 项目的说明文件,提供了项目的详细介绍和使用指南。
- package.json: 项目的依赖管理文件,列出了项目所需的依赖包。
项目的启动文件介绍
项目的启动文件是 main.ts
,它是插件的核心逻辑所在。以下是 main.ts
的主要内容:
import { Plugin } from 'obsidian';
import { NLDateSettingTab, NLDatePluginSettings, DEFAULT_SETTINGS } from './settings';
import { parseDate } from './parser';
export default class NLDatePlugin extends Plugin {
settings: NLDatePluginSettings;
async onload() {
await this.loadSettings();
this.addCommand({
id: 'insert-date',
name: 'Insert current date',
callback: () => {
const date = parseDate(new Date());
this.insertDate(date);
}
});
this.addSettingTab(new NLDateSettingTab(this.app, this));
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
insertDate(date: string) {
const activeLeaf = this.app.workspace.activeLeaf;
if (activeLeaf) {
activeLeaf.view.editor.replaceSelection(date);
}
}
}
main.ts
文件定义了 NLDatePlugin
类,继承自 Plugin
类。在 onload
方法中,插件注册了一个命令 insert-date
,用于插入当前日期。同时,插件还添加了一个设置选项卡,允许用户进行自定义设置。
项目的配置文件介绍
项目的配置文件是 manifest.json
,它包含了插件的元数据和基本信息。以下是 manifest.json
的内容:
{
"id": "nldates-obsidian",
"name": "Natural Language Dates",
"version": "0.3.0",
"minAppVersion": "0.9.12",
"description": "Insert dates and times in a natural language in Obsidian",
"author": "Argentina Ortega Sainz",
"authorUrl": "https://argentinaos.com",
"isDesktopOnly": false
}
- id: 插件的唯一标识符。
- name: 插件的名称。
- version: 插件的版本号。
- minAppVersion: 插件支持的最低 Obsidian 版本。
- description: 插件的描述信息。
- author: 插件的作者。
- authorUrl: 作者的网站链接。
- isDesktopOnly: 是否仅支持桌面端。
manifest.json
文件是 Obsidian 插件的重要组成部分,它提供了插件的基本信息和兼容性要求。