add switch button

This commit is contained in:
Jiaxin Peng
2023-11-12 20:59:39 +00:00
parent 041a78fb52
commit 8734af6dbf
6 changed files with 114 additions and 59 deletions

View File

@@ -3,6 +3,14 @@
所以我在[原作者](https://github.com/EasyChris/obsidian-to-notion)的基础之上,增加了匹配[NotionNext](https://github.com/tangly1024/NotionNext)模板的功能。这样可以直接在Obsidian编辑整理好之后一键发布。 所以我在[原作者](https://github.com/EasyChris/obsidian-to-notion)的基础之上,增加了匹配[NotionNext](https://github.com/tangly1024/NotionNext)模板的功能。这样可以直接在Obsidian编辑整理好之后一键发布。
## 更新说明 ## 更新说明
### 0.2.6
- 增加一个按钮用来控制是否在名列列表中显示如下数据库。
![](https://minioapi.pjx.ac.cn/img1/2023/11/147c6a4eaa34da41a6f102558ed77106.png)
如果你关闭普通数据库的按钮你在上传命令列表中就不会出现普通数据库的选项。如果你关闭NotionNext数据库的按钮你在上传命令列表中就不会出现NotionNext数据库的选项。
![](https://minioapi.pjx.ac.cn/img1/2023/11/70b8e4fc2148688ccbd6cfc53ce339a2.png)
### 0.2.3 ### 0.2.3
- 修复了一个bug现在可以正常更新了。 - 修复了一个bug现在可以正常更新了。
### 0.2.2 ### 0.2.2

View File

@@ -5,6 +5,16 @@ Thanks to the [original author](https://github.com/EasyChris/obsidian-to-notion)
Thus, based on the [original author's work](https://github.com/EasyChris/obsidian-to-notion), I've added a feature to match the [NotionNext](https://github.com/tangly1024/NotionNext) template. This way, you can edit directly in Obsidian and publish with a single click after organizing. Thus, based on the [original author's work](https://github.com/EasyChris/obsidian-to-notion), I've added a feature to match the [NotionNext](https://github.com/tangly1024/NotionNext) template. This way, you can edit directly in Obsidian and publish with a single click after organizing.
## Update ## Update
### 0.2.6
- Add a switch button to control whether to show the upload command in the command palette.
![](https://minioapi.pjx.ac.cn/img1/2023/11/147c6a4eaa34da41a6f102558ed77106.png)
If you turn off the button for the General database, you won't see the option for the General database in the upload command list.
If you turn off the button for the NotionNext database, you won't see the option for the NotionNext database in the upload command list.
![](https://minioapi.pjx.ac.cn/img1/2023/11/70b8e4fc2148688ccbd6cfc53ce339a2.png)
### 0.2.3 ### 0.2.3
- Fix the bug, now you can update normally. - Fix the bug, now you can update normally.
### 0.2.2 ### 0.2.2

BIN
img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -16,27 +16,10 @@ interface Command {
export default class RibbonCommands { export default class RibbonCommands {
plugin: ObsidianSyncNotionPlugin; plugin: ObsidianSyncNotionPlugin;
Ncommand: Command[] = []; Ncommand: Command[] = [];
async ribbonDisplay() { constructor(plugin: ObsidianSyncNotionPlugin) {
const NcommandList: DatabaseList[] = []; this.plugin = plugin;
this.Ncommand.map(command => NcommandList.push(
{
name:command.name,
match: command.editorCallback
}
)
);
const fusg = new FuzzySuggester(this.plugin);
fusg.setSuggesterData(NcommandList);
await fusg.display(async (results) => {await results.match()})
};
constructor(plugin: ObsidianSyncNotionPlugin) {
this.plugin = plugin;
// Check if NextButton is true, then include the corresponding command // Check if NextButton is true, then include the corresponding command
if (this.plugin.settings.NextButton) { if (this.plugin.settings.NextButton) {
@@ -60,16 +43,68 @@ export default class RibbonCommands {
}); });
} }
// Register all the commands // Register all the commands
this.Ncommand.forEach(command => { this.Ncommand.forEach(command => {
this.plugin.addCommand( this.plugin.addCommand(
{ {
id: command.id, id: command.id,
name: command.name, name: command.name,
editorCallback: command.editorCallback, editorCallback: command.editorCallback,
} }
); );
}); });
} }
async ribbonDisplay() {
const NcommandList: DatabaseList[] = [];
this.Ncommand.map(command => NcommandList.push(
{
name:command.name,
match: command.editorCallback
}
)
);
const fusg = new FuzzySuggester(this.plugin);
fusg.setSuggesterData(NcommandList);
await fusg.display(async (results) => {await results.match()})
};
// if the setting has been changed, try to rebuild the command list
async updateCommand() {
this.Ncommand = [];
if (this.plugin.settings.NextButton) {
this.Ncommand.push({
id: "share-to-notionnext",
name: i18nConfig.CommandName, // Use the translated text from i18nConfig
editorCallback: async (editor: Editor, view: MarkdownView) => {
await uploadCommandNext(this.plugin, this.plugin.settings, this.plugin.app);
}
});
}
if (this.plugin.settings.GeneralButton) {
this.Ncommand.push({
id: "share-to-notion",
name: i18nConfig.CommandNameGeneral, // Use the translated text from i18nConfig
editorCallback: async (editor: Editor, view: MarkdownView) => {
await uploadCommandGeneral(this.plugin, this.plugin.settings, this.plugin.app);
}
});
}
this.Ncommand.forEach(command => {
this.plugin.addCommand(
{
id: command.id,
name: command.name,
editorCallback: command.editorCallback,
}
);
});
}
} }

View File

@@ -16,12 +16,12 @@ export const I18n: { [key: string]: any } = {
DatabaseIDText: "Enter your Database ID", DatabaseIDText: "Enter your Database ID",
BannerUrl: "Banner url(optional)", BannerUrl: "Banner url(optional)",
BannerUrlDesc: BannerUrlDesc:
"page banner url(optional), default is empty, if you want to show a banner, please enter the url(like: https://minioapi.pjx.ac.cn/img1/2023/11/b7b40a0724e93b7d7ab494bb3b8a2da8.png)", "Default is empty, if you want to show a banner, please enter the url(like: https://minioapi.pjx.ac.cn/img1/2023/11/b7b40a0724e93b7d7ab494bb3b8a2da8.png)",
BannerUrlText: "Enter your banner url", BannerUrlText: "Enter your banner url",
NotionUser: "Notion ID(username, optional)", NotionUser: "Notion ID(username, optional)",
NotionUserDesc: NotionUserDesc:
"Your notion ID (optional),share link likes:https://username.notion.site/,your notion id is [username]", "Your notion ID (optional),share link likes:https://username.notion.site/,your notion id is [username]",
NotionUserText: "Enter your notion ID (options)", NotionUserText: "Enter your notion ID",
NotionGeneralSettingHeader: "General Notion Database Settings", NotionGeneralSettingHeader: "General Notion Database Settings",
NotionGeneralButton: "Notion General command switch", NotionGeneralButton: "Notion General command switch",
NotionGeneralButtonDesc: "Open this option, Sync to Notion General Database command will be displayed in the command palette", NotionGeneralButtonDesc: "Open this option, Sync to Notion General Database command will be displayed in the command palette",
@@ -63,12 +63,12 @@ export const I18n: { [key: string]: any } = {
DatabaseIDText: "输入你的数据库 ID", DatabaseIDText: "输入你的数据库 ID",
BannerUrl: "封面图片地址(可选)", BannerUrl: "封面图片地址(可选)",
BannerUrlDesc: BannerUrlDesc:
"页面封面图片地址(可选),默认为空如果你想显示封面图片请输入图片地址例如https://minioapi.pjx.ac.cn/img1/2023/11/b7b40a0724e93b7d7ab494bb3b8a2da8.png", "默认为空如果你想显示封面图片请输入图片地址例如https://minioapi.pjx.ac.cn/img1/2023/11/b7b40a0724e93b7d7ab494bb3b8a2da8.png",
BannerUrlText: "输入你的封面图片地址", BannerUrlText: "输入你的封面图片地址",
NotionUser: "Notion ID用户名可选", NotionUser: "Notion ID用户名可选",
NotionUserDesc: NotionUserDesc:
"你的 Notion ID可选分享链接类似https://username.notion.site/,你的 Notion ID 是 [username]", "你的 Notion ID可选分享链接类似https://username.notion.site/,你的 Notion ID 是 [username]",
NotionUserText: "输入你的 Notion ID(可选)", NotionUserText: "输入你的 Notion ID",
NotionGeneralSettingHeader: "普通 Notion 数据库设置", NotionGeneralSettingHeader: "普通 Notion 数据库设置",
NotionGeneralButton: "普通数据库同步命令开关", NotionGeneralButton: "普通数据库同步命令开关",
NotionGeneralButtonDesc: "打开此选项,同步到普通数据库命令将显示在命令面板中", NotionGeneralButtonDesc: "打开此选项,同步到普通数据库命令将显示在命令面板中",

View File

@@ -48,18 +48,6 @@ export class ObsidianSettingTab extends PluginSettingTab {
containerEl.createEl('h2', {text: i18nConfig.GeneralSetting}) containerEl.createEl('h2', {text: i18nConfig.GeneralSetting})
new Setting(containerEl)
.setName(i18nConfig.NotionNextButton)
.setDesc(i18nConfig.NotionNextButtonDesc)
.addToggle((toggle) =>
toggle
.setValue(this.plugin.settings.NextButton)
.onChange(async (value) => {
this.plugin.settings.NextButton = value;
await this.plugin.saveSettings();
})
);
new Setting(containerEl) new Setting(containerEl)
.setName(i18nConfig.BannerUrl) .setName(i18nConfig.BannerUrl)
.setDesc(i18nConfig.BannerUrlDesc) .setDesc(i18nConfig.BannerUrlDesc)
@@ -89,6 +77,19 @@ export class ObsidianSettingTab extends PluginSettingTab {
containerEl.createEl('h2', {text: i18nConfig.NotionNextSettingHeader}) containerEl.createEl('h2', {text: i18nConfig.NotionNextSettingHeader})
new Setting(containerEl)
.setName(i18nConfig.NotionNextButton)
.setDesc(i18nConfig.NotionNextButtonDesc)
.addToggle((toggle) =>
toggle
.setValue(this.plugin.settings.NextButton)
.onChange(async (value) => {
this.plugin.settings.NextButton = value;
await this.plugin.saveSettings();
await this.plugin.commands.updateCommand();
})
);
new Setting(containerEl) new Setting(containerEl)
.setName(i18nConfig.NotionAPI) .setName(i18nConfig.NotionAPI)
.setDesc(i18nConfig.NotionAPIDesc) .setDesc(i18nConfig.NotionAPIDesc)
@@ -136,6 +137,7 @@ export class ObsidianSettingTab extends PluginSettingTab {
.onChange(async (value) => { .onChange(async (value) => {
this.plugin.settings.GeneralButton = value; this.plugin.settings.GeneralButton = value;
await this.plugin.saveSettings(); await this.plugin.saveSettings();
await this.plugin.commands.updateCommand();
}) })
); );
@@ -182,18 +184,18 @@ export class ObsidianSettingTab extends PluginSettingTab {
// Custom Database Settings // Custom Database Settings
containerEl.createEl('h2', {text: i18nConfig.NotionCustomSettingHeader}); // containerEl.createEl('h2', {text: i18nConfig.NotionCustomSettingHeader});
//
new Setting(containerEl) // new Setting(containerEl)
.setName(i18nConfig.NotionCustomButton) // .setName(i18nConfig.NotionCustomButton)
.setDesc(i18nConfig.NotionCustomButtonDesc) // .setDesc(i18nConfig.NotionCustomButtonDesc)
.addToggle((toggle) => // .addToggle((toggle) =>
toggle // toggle
.setValue(this.plugin.settings.CustomButton) // .setValue(this.plugin.settings.CustomButton)
.onChange(async (value) => { // .onChange(async (value) => {
this.plugin.settings.CustomButton = value; // this.plugin.settings.CustomButton = value;
await this.plugin.saveSettings(); // await this.plugin.saveSettings();
}) // })
); // );
} }
} }