From ba8deaa02bcc617d2a561347c988d9461f65e305 Mon Sep 17 00:00:00 2001 From: Yeban8090 Date: Wed, 23 Apr 2025 10:04:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A2=84=E8=A7=88=E9=A1=B5?= =?UTF-8?q?=E7=9A=84=E9=A1=B5=E7=9C=89=E9=A1=B5=E8=84=9A=E4=B8=BA=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=B8=AD=E7=9A=84=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 2 +- src/settings/CreateThemeModal.ts | 2 +- src/settings/SettingTab.ts | 2 +- src/settings/ThemePreviewModal.ts | 32 ++++++++++++++++++++++--------- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/manifest.json b/manifest.json index 586c045..071e3b6 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "note-to-red", "name": "Note to RED", - "version": "1.0.10", + "version": "1.0.11", "minAppVersion": "0.15.0", "description": "Convert Markdown notes to RED (Xiaohongshu) style images", "author": "Yeban", diff --git a/src/settings/CreateThemeModal.ts b/src/settings/CreateThemeModal.ts index 305ec9c..3098f57 100644 --- a/src/settings/CreateThemeModal.ts +++ b/src/settings/CreateThemeModal.ts @@ -195,7 +195,7 @@ export class CreateThemeModal extends Modal { .setButtonText('预览') .onClick(() => { // 打开预览模式 - const previewModal = new ThemePreviewModal(this.app, this.theme, this.plugin.themeManager); + const previewModal = new ThemePreviewModal(this.app, this.plugin.settingsManager, this.theme, this.plugin.themeManager); previewModal.open(); })) .addButton(btn => btn diff --git a/src/settings/SettingTab.ts b/src/settings/SettingTab.ts index 37bb87d..5c05d19 100644 --- a/src/settings/SettingTab.ts +++ b/src/settings/SettingTab.ts @@ -273,7 +273,7 @@ export class RedSettingTab extends PluginSettingTab { btn.setIcon('eye') .setTooltip('预览') .onClick(() => { - new ThemePreviewModal(this.app, theme, this.plugin.themeManager).open(); // 修改为使用预览模态框 + new ThemePreviewModal(this.app, this.plugin.settingsManager, theme, this.plugin.themeManager).open(); // 修改为使用预览模态框 })) .addExtraButton(btn => btn.setIcon('pencil') diff --git a/src/settings/ThemePreviewModal.ts b/src/settings/ThemePreviewModal.ts index 7cb00c4..8873427 100644 --- a/src/settings/ThemePreviewModal.ts +++ b/src/settings/ThemePreviewModal.ts @@ -1,12 +1,15 @@ import { App, Modal } from 'obsidian'; import { ThemeManager } from '../themeManager'; +import { SettingsManager } from '../settings/settings'; export class ThemePreviewModal extends Modal { private theme: any; private themeManager: ThemeManager; + private settingsManager: SettingsManager; - constructor(app: App, theme: any, themeManager: ThemeManager) { + constructor(app: App, settingsManager: SettingsManager, theme: any, themeManager: ThemeManager) { super(app); + this.settingsManager = settingsManager; this.theme = theme; this.themeManager = themeManager; } @@ -22,28 +25,39 @@ export class ThemePreviewModal extends Modal { // 添加预览区域 const container = contentEl.createDiv('tp-red-preview-container'); const previewContainer = container.createDiv('red-image-preview'); - + + const settings = this.settingsManager.getSettings(); + // 页眉区域 const header = previewContainer.createDiv('red-preview-header'); const userInfo = header.createEl('div', { cls: 'red-user-info' }); const userLeft = userInfo.createEl('div', { cls: 'red-user-left' }); const avatar = userLeft.createEl('div', { cls: 'red-user-avatar' }); - const placeholder = avatar.createEl('div', { cls: 'red-avatar-placeholder' }); + if (settings.userAvatar) { + avatar.createEl('img', { + attr: { + src: settings.userAvatar, + alt: '用户头像' + } + }); + } else { + const placeholder = avatar.createEl('div', { cls: 'red-avatar-placeholder' }); placeholder.createEl('span', { cls: 'red-avatar-upload-icon', text: '📷' }); + } const userMeta = userLeft.createEl('div', { cls: 'red-user-meta' }); const userNameContainer = userMeta.createEl('div', { cls: 'red-user-name-container' }); - userNameContainer.createEl('div', { cls: 'red-user-name', text: '夜半' }); + userNameContainer.createEl('div', { cls: 'red-user-name', text: `${settings.userName}` }); userNameContainer.createEl('div', { cls: 'red-verified-icon', text: '✓' }); - userMeta.createEl('div', { cls: 'red-user-id', text: '@Yeban' }); + userMeta.createEl('div', { cls: 'red-user-id', text: `${settings.userId}` }); const userRight = userInfo.createEl('div', { cls: 'red-user-right' }); userRight.createEl('div', { cls: 'red-post-time', text: '2025/4/20' }); // 内容区域 const content = previewContainer.createDiv('red-preview-content'); - + // 标题样式 content.createEl('h2', { text: '探索夜半插件的无限可能' }); @@ -74,13 +88,13 @@ export class ThemePreviewModal extends Modal { // 分隔线样式 content.createEl('hr'); - content.createEl('strong', { text: '如果您觉得我的插件对您有帮助,请打赏支持我。'}); + content.createEl('strong', { text: '如果您觉得我的插件对您有帮助,请打赏支持我。' }); // 页脚区域 const footer = previewContainer.createDiv('red-preview-footer'); - footer.createEl('div', { cls: 'red-footer-text', text: '夜半过后,光明便启程'}); + footer.createEl('div', { cls: 'red-footer-text', text: `${settings.footerLeftText}` }); footer.createEl('div', { cls: 'red-footer-separator', text: '|' }); - footer.createEl('div', { cls: 'red-footer-text', text: '欢迎关注公众号🌏:夜半'}); + footer.createEl('div', { cls: 'red-footer-text', text: `${settings.footerRightText}` }); this.themeManager.applyTheme(container, this.theme); }