diff --git a/src/constant/DefaultSettings.ts b/src/constant/DefaultSettings.ts index 1a33a5b..448adef 100644 --- a/src/constant/DefaultSettings.ts +++ b/src/constant/DefaultSettings.ts @@ -3,6 +3,9 @@ import {PersonNameMode} from "./Constsant"; import {doubanHeaders} from "./Douban"; export const DEFAULT_SETTINGS: DoubanPluginSetting = { + //以后会被移除 + bookTemplate: "", gameTemplate: "", movieTemplate: "", musicTemplate: "", noteTemplate: "", teleplayTemplate: "", + movieTemplateFile: ``, bookTemplateFile: ``, musicTemplateFile: ``, diff --git a/src/douban/data/handler/DoubanAbstractLoadHandler.ts b/src/douban/data/handler/DoubanAbstractLoadHandler.ts index 2e64628..86526bd 100644 --- a/src/douban/data/handler/DoubanAbstractLoadHandler.ts +++ b/src/douban/data/handler/DoubanAbstractLoadHandler.ts @@ -12,6 +12,7 @@ import HandleContext from "@App/data/model/HandleContext"; import HandleResult from "@App/data/model/HandleResult"; import {DEFAULT_TEMPLATE_CONTENT} from "../../../constant/DefaultTemplateContent"; import FileHandler from "../../../file/FileHandler"; +import StringUtil from "../../../utils/StringUtil"; export default abstract class DoubanAbstractLoadHandler implements DoubanSubjectLoadHandler { @@ -205,17 +206,26 @@ export default abstract class DoubanAbstractLoadHandler private async getTemplate(context: HandleContext):Promise { const tempKey:TemplateKey = this.getTemplateKey(context); + + // @ts-ignore + const oldTemplate:string = context.settings[tempKey.replace('File', '')] + if (oldTemplate && oldTemplate.length > 0) { + return oldTemplate; + } const templatePath:string = context.settings[tempKey]; - let firstLinkpathDest:TFile = this.doubanPlugin.app.metadataCache.getFirstLinkpathDest(templatePath, ''); // @ts-ignore const defaultContent = DEFAULT_TEMPLATE_CONTENT[tempKey + 'Content']; + if (!templatePath || StringUtil.isBlank(templatePath)) { + return defaultContent; + } + let firstLinkpathDest:TFile = this.doubanPlugin.app.metadataCache.getFirstLinkpathDest(templatePath, ''); if (!firstLinkpathDest) { return defaultContent; }else { // return firstLinkpathDest. - const val = await new FileHandler(this.doubanPlugin.app).getFileContent(firstLinkpathDest.path); + const val = await this.doubanPlugin.fileHandler.getFileContent(firstLinkpathDest.path); return val?val:defaultContent; } } diff --git a/src/douban/data/handler/DoubanBookLoadHandler.ts b/src/douban/data/handler/DoubanBookLoadHandler.ts index 2e19d0f..883e9f4 100644 --- a/src/douban/data/handler/DoubanBookLoadHandler.ts +++ b/src/douban/data/handler/DoubanBookLoadHandler.ts @@ -14,7 +14,7 @@ export default class DoubanBookLoadHandler extends DoubanAbstractLoadHandler { getTemplateKey(context: HandleContext): TemplateKey { - return TemplateKey.bookTemplate + return TemplateKey.bookTemplateFile } parseText(beforeContent: string, extract: DoubanSubject, context: HandleContext): string { diff --git a/src/douban/data/handler/DoubanTeleplayLoadHandler.ts b/src/douban/data/handler/DoubanTeleplayLoadHandler.ts index 72d0672..79d9b9c 100644 --- a/src/douban/data/handler/DoubanTeleplayLoadHandler.ts +++ b/src/douban/data/handler/DoubanTeleplayLoadHandler.ts @@ -17,7 +17,7 @@ export class DoubanTeleplayLoadHandler extends DoubanAbstractLoadHandler { // @ts-ignore setting.setName( i18nHelper.getMessage(name)); + + const templateDesc = new DocumentFragment(); // @ts-ignore - setting.setDesc( i18nHelper.getMessage(desc)); + templateDesc.createDiv().innerHTML = i18nHelper.getMessage(desc) + `
不存在文件夹 `; + setting.setDesc(templateDesc); setting.addSearch(async (search: SearchComponent) => { const [oldValue, defaultVal] = manager.getSetting(key); let v = defaultVal; if (oldValue) { v = oldValue; } - new FileSuggest(manager.app, search.inputEl); + const fs = new FileSuggest(manager.app, search.inputEl); search.setValue(v); // @ts-ignore - search.setPlaceholder(i18nHelper.getMessage()); + search.setPlaceholder(i18nHelper.getMessage(placeholder)); search.onChange(async (value: string) => { + log.trace(`hange to : ${value} `) manager.updateSetting(key, value); - }); }); + }; } diff --git a/src/douban/setting/model/DoubanPluginSetting.ts b/src/douban/setting/model/DoubanPluginSetting.ts index 04bfbb6..9bce615 100644 --- a/src/douban/setting/model/DoubanPluginSetting.ts +++ b/src/douban/setting/model/DoubanPluginSetting.ts @@ -1,5 +1,13 @@ export interface DoubanPluginSetting { +//==兼容之前的配置 + movieTemplate: string, + bookTemplate: string, + musicTemplate: string, + noteTemplate: string, + gameTemplate: string, + teleplayTemplate: string, +//一段时间后会被删除,以上 movieTemplateFile: string, bookTemplateFile: string, musicTemplateFile: string, diff --git a/src/douban/setting/model/FileSuggest.ts b/src/douban/setting/model/FileSuggest.ts index b9dafe4..aa43a09 100644 --- a/src/douban/setting/model/FileSuggest.ts +++ b/src/douban/setting/model/FileSuggest.ts @@ -2,7 +2,7 @@ import {TAbstractFile, TFile, TFolder} from "obsidian"; import {TextInputSuggest} from "@App/setting/model/TextInputSuggest"; // Credits go to Liam's Periodic Notes Plugin: https://github.com/liamcain/obsidian-periodic-notes -export class FileSuggest extends TextInputSuggest { +export class FileSuggest extends TextInputSuggest { getSuggestions(inputStr: string): TFile[] { const abstractFiles = this.app.vault.getAllLoadedFiles(); const files: TFile[] = []; diff --git a/styles.css b/styles.css index 755a240..859f82c 100644 --- a/styles.css +++ b/styles.css @@ -1,21 +1,18 @@ .obsidian_douban_settings_area { margin-left: 5px; margin-right: 5px; - font-size: 14px; width: 100%; } .obsidian_douban_settings_textField { margin-left: 5px; margin-right: 5px; - font-size: 14px; width: 100%; } .obsidian_douban_search_input { margin-left: 5px; margin-right: 5px; - font-size: 14px; width: 90%; } @@ -23,5 +20,15 @@ margin-top: 10px; margin-left: 5px; margin-right: 5px; - font-size: 14px; } + +.obsidian_douban_settings_desc.has_error { + color: #fb464c; +} + +.obsidian_douban_settings_input.has-error { + color: #fb464c; + border-color: #fb464c; +} + +