This commit is contained in:
Devon22 2025-06-13 23:03:30 +08:00
parent 9b9cf99c5d
commit c3c5209aa6
10 changed files with 250 additions and 94 deletions

View file

@ -1,7 +1,7 @@
{
"id": "gridexplorer",
"name": "GridExplorer",
"version": "2.1.1",
"version": "2.2.0",
"minAppVersion": "1.1.0",
"description": "Browse note files in a grid view.",
"author": "Devon22",

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "gridexplorer",
"version": "2.1.1",
"version": "2.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "gridexplorer",
"version": "2.1.1",
"version": "2.2.0",
"license": "MIT",
"devDependencies": {
"@types/node": "^16.11.6",

View file

@ -1,6 +1,6 @@
{
"name": "gridexplorer",
"version": "2.1.1",
"version": "2.2.0",
"description": "Browse note files in a grid view.",
"main": "main.js",
"scripts": {

View file

@ -92,15 +92,16 @@ export class FolderNoteSettingsModal extends Modal {
});
// 圖示選項
const customFolderIcon = this.plugin.settings.customFolderIcon;
new Setting(contentEl)
.setName(t('folder_icon'))
.setDesc(t('folder_icon_desc'))
.addText(text => {
text
.setPlaceholder('📁')
.setValue(this.settings.icon || '📁')
.setPlaceholder(customFolderIcon)
.setValue(this.settings.icon || customFolderIcon)
.onChange(value => {
this.settings.icon = value || '📁';
this.settings.icon = value || customFolderIcon;
});
});

View file

@ -1,4 +1,4 @@
import { WorkspaceLeaf, ItemView, TFolder, TFile, Menu, Notice, Platform, setIcon, getFrontMatterInfo } from 'obsidian';
import { WorkspaceLeaf, ItemView, TFolder, TFile, Menu, Notice, Platform, setIcon, getFrontMatterInfo, FrontMatterCache } from 'obsidian';
import { showFolderSelectionModal } from './FolderSelectionModal';
import { findFirstImageInNote } from './mediaUtils';
import { MediaModal } from './MediaModal';
@ -30,6 +30,7 @@ export class GridView extends ItemView {
fileWatcher: FileWatcher;
recentSources: string[] = []; // 歷史記錄
minMode: boolean = false; // 最小模式
showIgnoredFolders: boolean = false; // 顯示忽略資料夾
pinnedList: string[] = []; // 置頂清單
constructor(leaf: WorkspaceLeaf, plugin: GridExplorerPlugin) {
@ -236,6 +237,7 @@ export class GridView extends ItemView {
});
}
}
// 最小化模式選項
menu.addItem((item) => {
item
.setTitle(t(this.minMode ? 'close_min_mode' : 'min_mode'))
@ -250,6 +252,21 @@ export class GridView extends ItemView {
this.render();
});
});
// 顯示忽略資料夾選項
menu.addItem((item) => {
item
.setTitle(this.showIgnoredFolders ? t('hide_ignored_folders') : t('show_ignored_folders'))
.setIcon('folder')
.onClick(() => {
this.showIgnoredFolders = !this.showIgnoredFolders;
const titleElement = this.containerEl.querySelector('.ge-header-buttons')?.querySelector('.ge-title');
if (titleElement) {
titleElement.textContent = this.showIgnoredFolders ? t('hide_ignored_folders') : t('show_ignored_folders');
}
this.app.workspace.requestSaveLayout();
this.render();
});
});
menu.addItem((item) => {
item
.setTitle(t('open_settings'))
@ -757,7 +774,8 @@ export class GridView extends ItemView {
const contentArea = parentFolderEl.createDiv('ge-content-area');
const titleContainer = contentArea.createDiv('ge-title-container');
titleContainer.createEl('span', { cls: 'ge-title', text: `📁 ..` });
const customFolderIcon = this.plugin.settings.customFolderIcon;
titleContainer.createEl('span', { cls: 'ge-title', text: `${customFolderIcon} ..`.trim() });
// 回上層資料夾事件
parentFolderEl.addEventListener('click', () => {
@ -772,16 +790,18 @@ export class GridView extends ItemView {
if (currentFolder instanceof TFolder) {
const subfolders = currentFolder.children
.filter(child => {
// 如果不是資料夾,則不顯示
if (!(child instanceof TFolder)) return false;
// 如果開啟顯示忽略資料夾模式,則顯示所有資料夾
if (this.showIgnoredFolders) return true;
// 檢查資料夾是否在忽略清單中
const isInIgnoredFolders = this.plugin.settings.ignoredFolders.some(folder =>
child.path === folder || child.path.startsWith(folder + '/')
);
if (isInIgnoredFolders) {
return false;
}
if (isInIgnoredFolders) return false;
// 檢查資料夾是否符合忽略的模式
if (this.plugin.settings.ignoredFolderPatterns && this.plugin.settings.ignoredFolderPatterns.length > 0) {
@ -802,9 +822,7 @@ export class GridView extends ItemView {
}
});
if (matchesIgnoredPattern) {
return false;
}
if (matchesIgnoredPattern) return false;
}
return true;
@ -819,7 +837,8 @@ export class GridView extends ItemView {
const contentArea = folderEl.createDiv('ge-content-area');
const titleContainer = contentArea.createDiv('ge-title-container');
titleContainer.createEl('span', { cls: 'ge-title', text: `📁 ${folder.name}` });
const customFolderIcon = this.plugin.settings.customFolderIcon;
titleContainer.createEl('span', { cls: 'ge-title', text: `${customFolderIcon} ${folder.name}`.trim() });
titleContainer.setAttribute('title', folder.name);
// 檢查同名筆記是否存在
@ -919,16 +938,29 @@ export class GridView extends ItemView {
});
});
}
//加入"忽略此資料夾"選項
menu.addItem((item) => {
item
.setTitle(t('ignore_folder'))
.setIcon('x')
.onClick(() => {
this.plugin.settings.ignoredFolders.push(folder.path);
this.plugin.saveSettings();
});
});
if (!this.plugin.settings.ignoredFolders.includes(folder.path)) {
//加入"忽略此資料夾"選項
menu.addItem((item) => {
item
.setTitle(t('ignore_folder'))
.setIcon('folder-x')
.onClick(() => {
this.plugin.settings.ignoredFolders.push(folder.path);
this.plugin.saveSettings();
});
});
} else {
//加入"取消忽略此資料夾"選項
menu.addItem((item) => {
item
.setTitle(t('unignore_folder'))
.setIcon('folder-up')
.onClick(() => {
this.plugin.settings.ignoredFolders = this.plugin.settings.ignoredFolders.filter((path) => path !== folder.path);
this.plugin.saveSettings();
});
});
}
// 重新命名資料夾
menu.addItem((item) => {
item
@ -1122,59 +1154,67 @@ export class GridView extends ItemView {
// Markdown 檔案顯示內容預覽
const content = await this.app.vault.cachedRead(file);
const frontMatterInfo = getFrontMatterInfo(content);
let metadata: FrontMatterCache | undefined = undefined;
if (frontMatterInfo.exists) {
metadata = this.app.metadataCache.getFileCache(file)?.frontmatter;
}
let pEl: HTMLElement | null = null;
if (!this.minMode) {
let contentWithoutFrontmatter = '';
if (summaryLength < 500) {
contentWithoutFrontmatter = content.substring(frontMatterInfo.contentStart).slice(0, 500);
const summaryField = this.plugin.settings.noteSummaryField || 'summary';
const summaryValue = metadata?.[summaryField];
if (summaryValue) {
pEl = contentArea.createEl('p', { text: summaryValue.trim() });
} else {
contentWithoutFrontmatter = content.substring(frontMatterInfo.contentStart).slice(0, summaryLength + summaryLength);
let contentWithoutFrontmatter = '';
if (summaryLength < 500) {
contentWithoutFrontmatter = content.substring(frontMatterInfo.contentStart).slice(0, 500);
} else {
contentWithoutFrontmatter = content.substring(frontMatterInfo.contentStart).slice(0, summaryLength + summaryLength);
}
let contentWithoutMediaLinks = '';
if (this.plugin.settings.showCodeBlocksInSummary) {
contentWithoutMediaLinks = contentWithoutFrontmatter;
} else {
// 刪除 code block
contentWithoutMediaLinks = contentWithoutFrontmatter
.replace(/```[\s\S]*?```\n/g, '')
.replace(/```[\s\S]*$/,'');
}
// 刪除註解及連結
contentWithoutMediaLinks = contentWithoutMediaLinks
.replace(/<!--[\s\S]*?-->/g, '')
.replace(/!?\[([^\]]*)\]\([^)]+\)|!?\[\[([^\]]+)\]\]/g, (match, p1, p2) => {
const linkText = p1 || p2 || '';
if (!linkText) return '';
// 獲取副檔名並檢查是否為圖片或影片
const extension = linkText.split('.').pop()?.toLowerCase() || '';
return (IMAGE_EXTENSIONS.has(extension) || VIDEO_EXTENSIONS.has(extension)) ? '' : linkText;
});
//把開頭的標題整行刪除
if (contentWithoutMediaLinks.startsWith('# ') || contentWithoutMediaLinks.startsWith('## ') || contentWithoutMediaLinks.startsWith('### ')) {
contentWithoutMediaLinks = contentWithoutMediaLinks.split('\n').slice(1).join('\n');
}
if (!this.plugin.settings.showCodeBlocksInSummary) {
// 不刪除code block的情況下包含這些特殊符號
contentWithoutMediaLinks = contentWithoutMediaLinks.replace(/[>|\-#*]/g,'').trim();
}
// 只取前 summaryLength 個字符作為預覽
const preview = contentWithoutMediaLinks.slice(0, summaryLength) + (contentWithoutMediaLinks.length > summaryLength ? '...' : '');
// 創建預覽內容
pEl = contentArea.createEl('p', { text: preview.trim() });
}
let contentWithoutMediaLinks = '';
if (this.plugin.settings.showCodeBlocksInSummary) {
contentWithoutMediaLinks = contentWithoutFrontmatter;
} else {
// 刪除 code block
contentWithoutMediaLinks = contentWithoutFrontmatter
.replace(/```[\s\S]*?```\n/g, '')
.replace(/```[\s\S]*$/,'');
}
// 刪除註解及連結
contentWithoutMediaLinks = contentWithoutMediaLinks
.replace(/<!--[\s\S]*?-->/g, '')
.replace(/!?\[([^\]]*)\]\([^)]+\)|!?\[\[([^\]]+)\]\]/g, (match, p1, p2) => {
const linkText = p1 || p2 || '';
if (!linkText) return '';
// 獲取副檔名並檢查是否為圖片或影片
const extension = linkText.split('.').pop()?.toLowerCase() || '';
return (IMAGE_EXTENSIONS.has(extension) || VIDEO_EXTENSIONS.has(extension)) ? '' : linkText;
});
//把開頭的標題整行刪除
if (contentWithoutMediaLinks.startsWith('# ') || contentWithoutMediaLinks.startsWith('## ') || contentWithoutMediaLinks.startsWith('### ')) {
contentWithoutMediaLinks = contentWithoutMediaLinks.split('\n').slice(1).join('\n');
}
if (!this.plugin.settings.showCodeBlocksInSummary) {
// 不刪除code block的情況下包含這些特殊符號
contentWithoutMediaLinks = contentWithoutMediaLinks.replace(/[>|\-#*]/g,'').trim();
}
// 只取前 summaryLength 個字符作為預覽
const preview = contentWithoutMediaLinks.slice(0, summaryLength) + (contentWithoutMediaLinks.length > summaryLength ? '...' : '');
// 創建預覽內容
pEl = contentArea.createEl('p', { text: preview.trim() });
}
if (frontMatterInfo.exists) {
const metadata = this.app.metadataCache.getFileCache(file)?.frontmatter;
const colorValue = metadata?.color;
if (colorValue) {
// 設置背景色、框線色和文字顏色
@ -1187,18 +1227,15 @@ export class GridView extends ItemView {
pEl.style.color = `rgba(var(--color-${colorValue}-rgb), 0.7)`;
}
}
const hasTitleField = !!this.plugin.settings.noteTitleField;
if (hasTitleField) {
const titleField = this.plugin.settings.noteTitleField;
const titleValue = metadata?.[titleField];
if (titleValue) {
// 將標題文字設為 frontmatter 的 title
const titleEl = fileEl.querySelector('.ge-title');
if (titleEl) {
titleEl.textContent = titleValue;
}
const titleField = this.plugin.settings.noteTitleField || 'title';
const titleValue = metadata?.[titleField];
if (titleValue) {
// 將標題文字設為 frontmatter 的 title
const titleEl = fileEl.querySelector('.ge-title');
if (titleEl) {
titleEl.textContent = titleValue;
}
}
}
const displayValue = metadata?.display;
if (displayValue === 'minimized') {
// 移除已建立的預覽段落
@ -2130,6 +2167,7 @@ export class GridView extends ItemView {
searchMediaFiles: this.searchMediaFiles,
randomNoteIncludeMedia: this.randomNoteIncludeMedia,
minMode: this.minMode,
showIgnoredFolders: this.showIgnoredFolders,
}
};
}
@ -2146,6 +2184,7 @@ export class GridView extends ItemView {
this.searchMediaFiles = state.state.searchMediaFiles ?? false;
this.randomNoteIncludeMedia = state.state.randomNoteIncludeMedia ?? false;
this.minMode = state.state.minMode ?? false;
this.showIgnoredFolders = state.state.showIgnoredFolders ?? false;
this.render();
}
}

View file

@ -5,6 +5,7 @@ import { GridView } from './GridView';
export interface NoteSettings {
title: string;
summary: string;
color: string;
isPinned: boolean;
isMinimized: boolean;
@ -19,6 +20,7 @@ export class NoteSettingsModal extends Modal {
files: TFile[];
settings: NoteSettings = {
title: '',
summary: '',
color: '',
isPinned: false,
isMinimized: false,
@ -35,7 +37,7 @@ export class NoteSettingsModal extends Modal {
contentEl.empty();
// 讀取現有設定
await this.loadExistingSettings();
await this.loadAttributes();
// 標題
if (this.files.length > 1) {
@ -55,6 +57,16 @@ export class NoteSettingsModal extends Modal {
this.settings.title = value;
});
});
// 自訂筆記摘要
new Setting(contentEl)
.setName(t('note_summary'))
.setDesc(t('note_summary_desc'))
.addText(text => {
text.setValue(this.settings.summary);
text.onChange(value => {
this.settings.summary = value;
});
});
}
// 顏色選項
@ -115,24 +127,28 @@ export class NoteSettingsModal extends Modal {
.setButtonText(t('confirm'))
.setCta() // 設置為主要按鈕樣式
.onClick(() => {
this.saveNoteColor();
this.saveAttributes();
this.close();
});
});
}
// 讀取現有筆記的設定
async loadExistingSettings() {
async loadAttributes() {
try {
// 讀取自訂標題設定
if (this.files.length === 1) {
const fileCache = this.app.metadataCache.getFileCache(this.files[0]);
if (fileCache && fileCache.frontmatter) {
const titleField = this.plugin.settings.noteTitleField || 'title';
if ('title' in fileCache.frontmatter) {
this.settings.title = fileCache.frontmatter.title || '';
this.settings.title = fileCache.frontmatter[titleField] || '';
}
}
const summaryField = this.plugin.settings.noteSummaryField || 'summary';
if ('summary' in fileCache.frontmatter) {
this.settings.summary = fileCache.frontmatter[summaryField] || '';
}
}
}
// 如果有多個檔案,只讀取第一個檔案的設定作為預設值
@ -167,16 +183,23 @@ export class NoteSettingsModal extends Modal {
}
}
// 儲存筆記顏色設定
async saveNoteColor() {
// 儲存筆記屬性設定
async saveAttributes() {
try {
if (this.files.length === 1 && this.files[0].extension === "md") {
// 使用 fileManager.processFrontMatter 更新 frontmatter
await this.app.fileManager.processFrontMatter(this.files[0], (frontmatter) => {
const titleField = this.plugin.settings.noteTitleField || 'title';
if (this.settings.title) {
frontmatter['title'] = this.settings.title;
frontmatter[titleField] = this.settings.title;
} else {
delete frontmatter['title'];
delete frontmatter[titleField];
}
const summaryField = this.plugin.settings.noteSummaryField || 'summary';
if (this.settings.summary) {
frontmatter[summaryField] = this.settings.summary;
} else {
delete frontmatter[summaryField];
}
if (this.settings.color) {
frontmatter['color'] = this.settings.color;

View file

@ -143,6 +143,10 @@ export function sortFiles(files: TFile[], gridView: GridView): TFile[] {
export function ignoredFiles(files: TFile[], gridView: GridView): TFile[] {
const settings = gridView.plugin.settings;
return files.filter(file => {
// 如果開啟顯示忽略資料夾模式,則顯示所有檔案
if (gridView.showIgnoredFolders) return true;
// 檢查是否在忽略的資料夾中
const isInIgnoredFolder = settings.ignoredFolders.some(folder =>
file.path.startsWith(`${folder}/`)

View file

@ -25,9 +25,11 @@ export interface GallerySettings {
showAllFilesMode: boolean; // 是否顯示所有檔案模式
showRandomNoteMode: boolean; // 是否顯示隨機筆記模式
showRecentFilesMode: boolean; // 是否顯示最近筆記模式
customFolderIcon: string; // 自訂資料夾圖示
customDocumentExtensions: string; // 自訂文件副檔名(用逗號分隔)
recentSources: string[]; // 最近的瀏覽記錄
noteTitleField: string; // 筆記標題的欄位名稱
noteSummaryField: string; // 筆記摘要的欄位名稱
modifiedDateField: string; // 修改時間的欄位名稱
createdDateField: string; // 建立時間的欄位名稱
recentFilesCount: number; // 最近筆記模式顯示的筆數
@ -63,9 +65,11 @@ export const DEFAULT_SETTINGS: GallerySettings = {
showRecentFilesMode: true, // 預設顯示最近筆記模式
recentFilesCount: 30, // 預設最近筆記模式顯示的筆數
randomNoteCount: 10, // 預設隨機筆記模式顯示的筆數
customFolderIcon: '📁', // 自訂資料夾圖示
customDocumentExtensions: '', // 自訂文件副檔名(用逗號分隔)
recentSources: [], // 預設最近的瀏覽記錄
noteTitleField: 'title', // 筆記標題的欄位名稱
noteSummaryField: 'summary', // 筆記摘要的欄位名稱
modifiedDateField: '', // 修改時間的欄位名稱
createdDateField: '', // 建立時間的欄位名稱
showNoteTags: false, // 預設不顯示筆記標籤
@ -302,6 +306,18 @@ export class GridExplorerSettingTab extends PluginSettingTab {
await this.plugin.saveSettings(false);
}));
// 筆記摘要欄位名稱設定
new Setting(containerEl)
.setName(t('note_summary_field'))
.setDesc(t('note_summary_field_desc'))
.addText(text => text
.setPlaceholder('summary')
.setValue(this.plugin.settings.noteSummaryField)
.onChange(async (value) => {
this.plugin.settings.noteSummaryField = value;
await this.plugin.saveSettings(false);
}));
// 修改時間欄位名稱設定
new Setting(containerEl)
.setName(t('modified_date_field'))
@ -370,6 +386,19 @@ export class GridExplorerSettingTab extends PluginSettingTab {
});
});
// 自訂資料夾圖示
new Setting(containerEl)
.setName(t('custom_folder_icon'))
.setDesc(t('custom_folder_icon_desc'))
.addText(text => {
text
.setValue(this.plugin.settings.customFolderIcon)
.onChange(async (value) => {
this.plugin.settings.customFolderIcon = value;
await this.plugin.saveSettings();
});
});
// 顯示"回上層資料夾"選項設定
new Setting(containerEl)
.setName(t('show_parent_folder_item'))

View file

@ -86,6 +86,8 @@ export const TRANSLATIONS: Translations = {
'default_sort_type_desc': '設定開啟網格視圖時的預設排序模式',
'note_title_field': '筆記標題欄位名稱',
'note_title_field_desc': '指定 frontmatter 中用於筆記標題的欄位名稱',
'note_summary_field': '筆記摘要欄位名稱',
'note_summary_field_desc': '指定 frontmatter 中用於筆記摘要的欄位名稱',
'modified_date_field': '"修改時間"欄位名稱',
'modified_date_field_desc': '指定 frontmatter 中用於筆記修改時間的欄位名稱',
'created_date_field': '"建立時間"欄位名稱',
@ -141,6 +143,9 @@ export const TRANSLATIONS: Translations = {
'custom_document_extensions_desc': '額外的文件副檔名(用逗號分隔,不含點號)',
'custom_document_extensions_placeholder': '例如txt,doc,docx',
'custom_folder_icon': '自訂資料夾圖示',
'custom_folder_icon_desc': '自訂資料夾圖示使用Emoji',
// 選擇資料夾對話框
'select_folders': '選擇資料夾',
'open_grid_view': '開啟網格視圖',
@ -153,12 +158,15 @@ export const TRANSLATIONS: Translations = {
'open_new_grid_view': '開啟新網格視圖',
'min_mode': '最小化模式',
'close_min_mode': '關閉最小化模式',
'show_ignored_folders': '顯示忽略的資料夾',
'hide_ignored_folders': '隱藏忽略的資料夾',
'delete_note': '刪除檔案',
'open_folder_note': '開啟資料夾筆記',
'create_folder_note': '建立資料夾筆記',
'delete_folder_note': '刪除資料夾筆記',
'edit_folder_note_settings': '編輯資料夾筆記設定',
'ignore_folder': '忽略此資料夾',
'unignore_folder': '取消忽略此資料夾',
'searching': '搜尋中...',
'no_files': '沒有找到任何檔案',
'filter_folders': '篩選資料夾...',
@ -185,6 +193,8 @@ export const TRANSLATIONS: Translations = {
'note_attribute_settings': '筆記屬性設定',
'note_title': '筆記標題',
'note_title_desc': '設定此筆記的顯示標題',
'note_summary': '筆記摘要',
'note_summary_desc': '設定此筆記的摘要',
'note_color': '筆記顏色',
'note_color_desc': '設定此筆記的顯示顏色',
'set_note_attribute': '設定筆記屬性',
@ -270,6 +280,8 @@ export const TRANSLATIONS: Translations = {
'default_sort_type_desc': 'Set the default sorting method when opening Grid View',
'note_title_field': 'Note title field name',
'note_title_field_desc': 'Set the field name in frontmatter to use for the note title',
'note_summary_field': 'Note summary field name',
'note_summary_field_desc': 'Set the field name in frontmatter to use for the note summary',
'modified_date_field': '"Modified date" field name',
'modified_date_field_desc': 'Set the field name in frontmatter to use for the modified date',
'created_date_field': '"Created date" field name',
@ -325,6 +337,9 @@ export const TRANSLATIONS: Translations = {
'custom_document_extensions_desc': 'Additional document extensions (comma-separated, without dots)',
'custom_document_extensions_placeholder': 'e.g., txt,doc,docx',
'custom_folder_icon': 'Custom Folder Icon',
'custom_folder_icon_desc': 'Custom folder icon (use emoji)',
// Select Folder Dialog
'select_folders': 'Select folder',
'open_grid_view': 'Open grid view',
@ -337,12 +352,15 @@ export const TRANSLATIONS: Translations = {
'open_new_grid_view': 'Open new grid view',
'min_mode': 'Minimize mode',
'close_min_mode': 'Close minimize mode',
'show_ignored_folders': 'Show ignored folders',
'hide_ignored_folders': 'Hide ignored folders',
'delete_note': 'Delete file',
'open_folder_note': 'Open folder note',
'create_folder_note': 'Create folder note',
'delete_folder_note': 'Delete folder note',
'edit_folder_note_settings': 'Edit folder note settings',
'ignore_folder': 'Ignore this folder',
'unignore_folder': 'Unignore this folder',
'searching': 'Searching...',
'no_files': 'No files found',
'filter_folders': 'Filter folders...',
@ -369,6 +387,8 @@ export const TRANSLATIONS: Translations = {
'note_attribute_settings': 'Note attribute settings',
'note_title': 'Note title',
'note_title_desc': 'Set the display title for this note',
'note_summary': 'Note summary',
'note_summary_desc': 'Set the display summary for this note',
'note_color': 'Note color',
'note_color_desc': 'Set the display color for this note',
'set_note_attribute': 'Set note attribute',
@ -454,6 +474,8 @@ export const TRANSLATIONS: Translations = {
'default_sort_type_desc': '设置打开网格视图时的默认排序模式',
'note_title_field': '笔记标题字段名称',
'note_title_field_desc': '设置 frontmatter 中用于笔记标题的字段名称',
'note_summary_field': '笔记摘要字段名称',
'note_summary_field_desc': '设置 frontmatter 中用于笔记摘要的字段名称',
'modified_date_field': '"修改时间"字段名称',
'modified_date_field_desc': '设置 frontmatter 中用于笔记修改时间的字段名称',
'created_date_field': '"创建时间"字段名称',
@ -509,6 +531,9 @@ export const TRANSLATIONS: Translations = {
'custom_document_extensions_desc': '额外的文件扩展名(用逗号分隔,不含点号)',
'custom_document_extensions_placeholder': '例如txt,doc,docx',
'custom_folder_icon': '自定义文件夹图标',
'custom_folder_icon_desc': '自定义文件夹图标使用Emoji',
// 选择文件夹对话框
'select_folders': '选择文件夹',
'open_grid_view': '打开网格视图',
@ -521,12 +546,15 @@ export const TRANSLATIONS: Translations = {
'open_new_grid_view': '打开新网格视图',
'min_mode': '最小化模式',
'close_min_mode': '关闭最小化模式',
'show_ignored_folders': '显示忽略的文件夹',
'hide_ignored_folders': '隐藏忽略的文件夹',
'delete_note': '删除文件',
'open_folder_note': '打开文件夹笔记',
'create_folder_note': '创建文件夹笔记',
'delete_folder_note': '删除文件夹笔记',
'edit_folder_note_settings': '编辑文件夹笔记设置',
'ignore_folder': '忽略此文件夹',
'unignore_folder': '取消忽略此文件夹',
'searching': '搜索中...',
'no_files': '没有找到任何文件',
'filter_folders': '筛选文件夹...',
@ -553,6 +581,8 @@ export const TRANSLATIONS: Translations = {
'note_attribute_settings': '笔记属性设置',
'note_title': '笔记标题',
'note_title_desc': '设置此笔记的显示标题',
'note_summary': '笔记摘要',
'note_summary_desc': '设置此笔记的显示摘要',
'note_color': '笔记颜色',
'note_color_desc': '设置此笔记的显示颜色',
'set_note_attribute': '设置笔记属性',
@ -638,6 +668,8 @@ export const TRANSLATIONS: Translations = {
'default_sort_type_desc': 'グリッドビューを開いたときのデフォルトの並び替え方法を設定',
'note_title_field': 'ノートタイトルフィールド名',
'note_title_field_desc': 'frontmatterでートタイトルとして使用するフィールド名を設定',
'note_summary_field': 'ノート要約フィールド名',
'note_summary_field_desc': 'frontmatterでート要約として使用するフィールド名を設定',
'modified_date_field': '"更新日"フィールド名',
'modified_date_field_desc': 'frontmatterで更新日として使用するフィールド名を設定',
'created_date_field': '"作成日"フィールド名',
@ -693,6 +725,9 @@ export const TRANSLATIONS: Translations = {
'custom_document_extensions_desc': '追加の文書拡張子(カンマ区切り、ドット無し)',
'custom_document_extensions_placeholder': '例txt,doc,docx',
'custom_folder_icon': 'カスタムフォルダーアイコン',
'custom_folder_icon_desc': 'カスタムフォルダーアイコンEmojiを使用',
// フォルダ選択ダイアログ
'select_folders': 'フォルダを選択',
'open_grid_view': 'グリッドビューを開く',
@ -705,12 +740,15 @@ export const TRANSLATIONS: Translations = {
'open_new_grid_view': '新しいグリッドビューを開く',
'min_mode': '最小化モード',
'close_min_mode': '最小化モードを閉じる',
'show_ignored_folders': '無視するフォルダーを表示',
'hide_ignored_folders': '無視するフォルダーを非表示',
'delete_note': 'ファイルを削除',
'open_folder_note': 'フォルダーノートを開く',
'create_folder_note': 'フォルダーノートを作成',
'delete_folder_note': 'フォルダーノートを削除',
'edit_folder_note_settings': 'フォルダーノート設定を編集',
'ignore_folder': 'このフォルダーを無視',
'unignore_folder': 'このフォルダーを無視解除',
'searching': '検索中...',
'no_files': 'ファイルが見つかりません',
'filter_folders': 'フォルダをフィルタリング...',
@ -737,6 +775,8 @@ export const TRANSLATIONS: Translations = {
'note_attribute_settings': 'ノート属性設定',
'note_title': 'ノートタイトル',
'note_title_desc': 'このノートの表示タイトルを設定',
'note_summary': 'ノート要約',
'note_summary_desc': 'このノートの表示要約を設定',
'note_color': 'ノート色',
'note_color_desc': 'このノートの表示色を設定',
'set_note_attribute': 'ノート属性設定',
@ -822,6 +862,8 @@ export const TRANSLATIONS: Translations = {
'default_sort_type_desc': 'Установите метод сортировки по умолчанию при открытии сеточного вида',
'note_title_field': 'Имя поля "Название заметки"',
'note_title_field_desc': 'Укажите имя поля в метаданных для использования в качестве названия заметки',
'note_summary_field': 'Имя поля "Краткое описание"',
'note_summary_field_desc': 'Укажите имя поля в метаданных для использования в качестве краткого описания',
'modified_date_field': 'Имя поля "Дата изменения"',
'modified_date_field_desc': 'Укажите имя поля в метаданных для использования в качестве даты изменения',
'created_date_field': 'Имя поля "Дата создания"',
@ -877,6 +919,9 @@ export const TRANSLATIONS: Translations = {
'custom_document_extensions_desc': 'Дополнительные расширения документов (через запятую, без точек)',
'custom_document_extensions_placeholder': 'например, txt,doc,docx',
'custom_folder_icon': 'Пользовательский иконка папки',
'custom_folder_icon_desc': 'Пользовательская иконка папки (используйте Emoji)',
// Select Folder Dialog
'select_folders': 'Выбрать папку',
'open_grid_view': 'Открыть сеточный вид',
@ -889,12 +934,15 @@ export const TRANSLATIONS: Translations = {
'open_new_grid_view': 'Открыть новый сеточный вид',
'min_mode': 'Минимизировать вид',
'close_min_mode': 'Закрыть минимизированный вид',
'show_ignored_folders': 'Показать игнорируемые папки',
'hide_ignored_folders': 'Скрыть игнорируемые папки',
'delete_note': 'Удалить файл',
'open_folder_note': 'Открыть заметку папки',
'create_folder_note': 'Создать заметку папки',
'delete_folder_note': 'Удалить заметку папки',
'edit_folder_note_settings': 'Редактировать настройки заметки папки',
'ignore_folder': 'Игнорировать эту папку',
'unignore_folder': 'Отменить игнорирование этой папки',
'searching': 'Поиск...',
'no_files': 'Файлы не найдены',
'filter_folders': 'Фильтровать папки...',
@ -921,6 +969,8 @@ export const TRANSLATIONS: Translations = {
'note_attribute_settings': 'Настройки атрибутов заметки',
'note_title': 'Название заметки',
'note_title_desc': 'Установите отображаемое название для этой заметки',
'note_summary': 'Краткий описатель',
'note_summary_desc': 'Установите отображаемое краткий описатель для этой заметки',
'note_color': 'Цвет заметки',
'note_color_desc': 'Установите цвет отображения для этой заметки',
'set_note_attribute': 'Установить атрибуты заметки',
@ -1006,6 +1056,8 @@ export const TRANSLATIONS: Translations = {
'default_sort_type_desc': 'Встановіть метод сортування за замовчуванням при відкритті сіткового вигляду',
'note_title_field': 'Назва поля "Назва нотатки"',
'note_title_field_desc': 'Вкажіть назву поля в метаданих для використання як назви нотатки',
'note_summary_field': 'Назва поля "Краткий опис"',
'note_summary_field_desc': 'Вкажіть назву поля в метаданих для використання як краткого опису',
'modified_date_field': 'Назва поля "Дата зміни"',
'modified_date_field_desc': 'Вкажіть назву поля в метаданих для використання як дати зміни',
'created_date_field': 'Назва поля "Дата створення"',
@ -1061,6 +1113,9 @@ export const TRANSLATIONS: Translations = {
'custom_document_extensions_desc': 'Додаткові розширення документів (через кому, без крапок)',
'custom_document_extensions_placeholder': 'наприклад, txt,doc,docx',
'custom_folder_icon': 'Користувацька іконка папки',
'custom_folder_icon_desc': 'Користувацька іконка папки (використовуйте Emoji)',
// Select Folder Dialog
'select_folders': 'Вибрати папку',
'open_grid_view': 'Відкрити сітковий вигляд',
@ -1073,12 +1128,15 @@ export const TRANSLATIONS: Translations = {
'open_new_grid_view': 'Відкрити новий сітковий вигляд',
'min_mode': 'Мінімізувати вигляд',
'close_min_mode': 'Закрити мінімізоване вигляд',
'show_ignored_folders': 'Показати ігноровані папки',
'hide_ignored_folders': 'Сховати ігноровані папки',
'delete_note': 'Видалити файл',
'open_folder_note': 'Відкрити нотатку папки',
'create_folder_note': 'Створити нотатку папки',
'delete_folder_note': 'Видалити нотатку папки',
'edit_folder_note_settings': 'Редагувати налаштування нотатки папки',
'ignore_folder': 'Ігнорувати цю папку',
'unignore_folder': 'Відмінити ігнорування цієї папки',
'searching': 'Пошук...',
'no_files': 'Файли не знайдено',
'filter_folders': 'Фільтрувати папки...',
@ -1105,6 +1163,8 @@ export const TRANSLATIONS: Translations = {
'note_attribute_settings': 'Налаштування атрибутів нотатки',
'note_title': 'Назва нотатки',
'note_title_desc': 'Встановіть назву відображення для цієї нотатки',
'note_summary': 'Краткий опис',
'note_summary_desc': 'Встановіть краткий опис для цієї нотатки',
'note_color': 'Колір нотатки',
'note_color_desc': 'Встановіть колір відображення для цієї нотатки',
'set_note_attribute': 'Встановити атрибути нотатки',

View file

@ -1,3 +1,3 @@
{
"2.1.1": "1.1.0"
"2.2.0": "1.1.0"
}