feat: 限制只能打开 md/txt 文件,新建文件仅保存为 md

- 打开对话框移除「所有文件」选项
- 保存对话框移除 .txt 选项
- 拖拽打开增加扩展名过滤
- 浏览器降级路径同步过滤
This commit is contained in:
thzxx
2026-05-18 14:16:34 +08:00
parent 9f0b4550d1
commit 07989db28e
2 changed files with 8 additions and 6 deletions
+3 -6
View File
@@ -90,8 +90,7 @@ async function showOpenDialog() {
const result = await dialog.showOpenDialog(mainWindow, {
properties: ['openFile'],
filters: [
{ name: 'Markdown 文件', extensions: ['md', 'markdown', 'txt'] },
{ name: '所有文件', extensions: ['*'] }
{ name: 'Markdown 文件', extensions: ['md', 'markdown', 'txt'] }
]
});
if (!result.canceled && result.filePaths.length > 0) {
@@ -169,8 +168,7 @@ ipcMain.handle('file:save', async (event, { filePath, content }) => {
} else {
const result = await dialog.showSaveDialog(mainWindow, {
filters: [
{ name: 'Markdown 文件', extensions: ['md'] },
{ name: '文本文件', extensions: ['txt'] }
{ name: 'Markdown 文件', extensions: ['md'] }
]
});
if (!result.canceled) {
@@ -192,8 +190,7 @@ ipcMain.handle('file:saveAs', async (event, { content }) => {
try {
const result = await dialog.showSaveDialog(mainWindow, {
filters: [
{ name: 'Markdown 文件', extensions: ['md'] },
{ name: '文本文件', extensions: ['txt'] }
{ name: 'Markdown 文件', extensions: ['md'] }
]
});
if (!result.canceled) {
+5
View File
@@ -429,6 +429,8 @@
input.multiple = true;
input.onchange = (e) => {
Array.from(e.target.files).forEach(file => {
const ext = file.name.substring(file.name.lastIndexOf('.')).toLowerCase();
if (!['.md', '.markdown', '.txt'].includes(ext)) return;
const reader = new FileReader();
reader.onload = (ev) => {
createNewTab(file.name, ev.target.result);
@@ -584,8 +586,11 @@
dropOverlay.classList.add('hidden');
const files = e.dataTransfer.files;
const allowedExts = ['.md', '.markdown', '.txt'];
for (const file of files) {
const filePath = file.path;
const ext = filePath ? filePath.substring(filePath.lastIndexOf('.')).toLowerCase() : '';
if (!allowedExts.includes(ext)) continue;
if (filePath && typeof window.electronAPI !== 'undefined') {
const result = await window.electronAPI.readFile(filePath);
if (result.success) {