feat(M10/M3/M2): FR-M4/M6/X1/X2/B6/D1/D3 元数据/导出/弹层/迁移——EditorToolbar 加星标按钮(M4); DocMeta 加 createdAt+frontmatter 读写+DocInfoPanel 显示+创建时写入(M6); copyMd 失败 catch+错误提示(X1); @media print 干净排版+hljs配色(X2); SettingsPanel/CheatSheet Esc 关闭(B6); migration-service 旧版板块转换+init+switch 检测(D1/D3); meta-export E2E 3 项
This commit is contained in:
@@ -4,7 +4,6 @@ import nodePath from 'node:path';
|
||||
import { fileURLToPath, pathToFileURL } from 'node:url';
|
||||
import { VaultService } from './services/vault-service.js';
|
||||
import { registerIpc } from './ipc/handlers.js';
|
||||
import { MigrationService } from './services/migration-service.js';
|
||||
import { IPC } from '@hunter/shared';
|
||||
|
||||
const __dirname = nodePath.dirname(fileURLToPath(import.meta.url));
|
||||
@@ -56,11 +55,6 @@ app.whenReady().then(async () => {
|
||||
return new Response('not found', { status: 404 });
|
||||
}
|
||||
});
|
||||
// 旧版数据迁移检测(FR-D1/D2/D3):幂等,无旧数据则跳过
|
||||
const migrator = new MigrationService(app.getPath('userData'));
|
||||
const oldDataDir = nodePath.join(app.getPath('userData'), 'legacy-data');
|
||||
const r = await migrator.migrate(oldDataDir, vault.fileService?.getRoot() ?? '').catch(() => null);
|
||||
if (r?.migrated) console.log('[MIGRATION] migrated', r.count, 'items');
|
||||
// FR-A5:GPU 探测——软渲染时自动禁用实时模糊
|
||||
let gpuStatus = { softwareRendering: false, vendor: '', renderer: '' };
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user