mirror of
https://github.com/bcs1037/side-bookmark.git
synced 2026-07-22 06:06:38 +00:00
0.0.4: Standardize UI text casing and language
This commit is contained in:
parent
6b38578a35
commit
4dadf5c754
11 changed files with 88 additions and 74 deletions
19
CHANGELOG.md
19
CHANGELOG.md
|
|
@ -2,10 +2,23 @@
|
|||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.0.2] - 2026-04-15
|
||||
## [0.0.4] - 2026-04-21
|
||||
|
||||
### Fixed
|
||||
- **UI Text Standardization**: Converted all remaining Chinese UI text to English sentence case to comply with Obsidian community plugin standards.
|
||||
- Updated command names, setting labels/descriptions, modal text, and context menu items.
|
||||
- Fixed `aria-label` casing and language issues.
|
||||
|
||||
## [0.0.3] - 2026-04-16
|
||||
|
||||
### Fixed
|
||||
- **Plugin Submission Fixes**: Addressed 10 critical code quality and guideline validation issues reported by the `ObsidianReviewBot`.
|
||||
- Removed unnecessary type assertions to comply with strict TypeScript guidelines.
|
||||
- Resolved "Floating Promise" warnings using the `void` operator.
|
||||
- Aligned UI naming conventions to Obsidian defaults ("Side bookmark").
|
||||
- Stripped plugin ID prefix from command IDs.
|
||||
- Standardized heading layouts in settings.
|
||||
|
||||
### Added
|
||||
- **拦截笔记链接**:新增设置项「拦截笔记链接」,开启后单击笔记中的外部链接(http/https)将自动在 Side Bookmark 内置浏览器中打开,取代系统浏览器。按住 Cmd/Ctrl 单击可临时绕过,仍使用系统浏览器。
|
||||
|
||||
## [0.0.1] - 2026-04-01
|
||||
|
||||
|
|
|
|||
4
main.js
4
main.js
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "side-bookmark",
|
||||
"name": "Side Bookmark",
|
||||
"version": "0.0.3",
|
||||
"version": "0.0.4",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "A sidebar bookmark browser. Browse websites and manage bookmarks right in the sidebar.",
|
||||
"author": "bcs1037",
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "side-bookmark",
|
||||
"version": "0.0.2",
|
||||
"version": "0.0.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "side-bookmark",
|
||||
"version": "0.0.2",
|
||||
"version": "0.0.3",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"obsidian": "latest"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "side-bookmark",
|
||||
"version": "0.0.3",
|
||||
"version": "0.0.4",
|
||||
"description": "A sidebar bookmark browser plugin for Obsidian",
|
||||
"main": "main.js",
|
||||
"type": "module",
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ export class BookmarkPanel {
|
|||
const headerLeft = this.headerEl.createDiv({ cls: 'sb-bookmark-header-left' });
|
||||
const collapseIcon = headerLeft.createDiv({ cls: 'sb-collapse-icon' });
|
||||
setIcon(collapseIcon, 'chevron-down');
|
||||
headerLeft.createSpan({ text: '书签', cls: 'sb-bookmark-title' });
|
||||
headerLeft.createSpan({ text: 'Bookmarks', cls: 'sb-bookmark-title' });
|
||||
|
||||
headerLeft.addEventListener('click', () => {
|
||||
this.toggleCollapse();
|
||||
|
|
@ -51,7 +51,7 @@ export class BookmarkPanel {
|
|||
|
||||
const addBookmarkBtn = addBtnGroup.createDiv({
|
||||
cls: 'sb-header-btn',
|
||||
attr: { 'aria-label': '添加书签' },
|
||||
attr: { 'aria-label': 'Add bookmark' },
|
||||
});
|
||||
setIcon(addBookmarkBtn, 'plus');
|
||||
addBookmarkBtn.addEventListener('click', (e: MouseEvent) => {
|
||||
|
|
@ -61,7 +61,7 @@ export class BookmarkPanel {
|
|||
|
||||
const addFolderBtn = addBtnGroup.createDiv({
|
||||
cls: 'sb-header-btn',
|
||||
attr: { 'aria-label': '新建文件夹' },
|
||||
attr: { 'aria-label': 'New folder' },
|
||||
});
|
||||
setIcon(addFolderBtn, 'folder-plus');
|
||||
addFolderBtn.addEventListener('click', (e: MouseEvent) => {
|
||||
|
|
@ -111,9 +111,9 @@ export class BookmarkPanel {
|
|||
const emptyState = this.listEl.createDiv({ cls: 'sb-empty-state' });
|
||||
const emptyIcon = emptyState.createDiv({ cls: 'sb-empty-icon' });
|
||||
setIcon(emptyIcon, 'bookmark');
|
||||
emptyState.createDiv({ text: '暂无书签', cls: 'sb-empty-text' });
|
||||
emptyState.createDiv({ text: 'No bookmarks', cls: 'sb-empty-text' });
|
||||
emptyState.createDiv({
|
||||
text: '点击 + 按钮或 ⭐ 按钮添加书签',
|
||||
text: 'Click the + button or ⭐ icon to add a bookmark',
|
||||
cls: 'sb-empty-hint',
|
||||
});
|
||||
return;
|
||||
|
|
@ -225,7 +225,7 @@ export class BookmarkPanel {
|
|||
const menu = new Menu();
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('打开');
|
||||
item.setTitle('Open');
|
||||
item.setIcon('external-link');
|
||||
item.onClick(() => {
|
||||
if (this.onNavigate) {
|
||||
|
|
@ -237,7 +237,7 @@ export class BookmarkPanel {
|
|||
menu.addSeparator();
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('编辑');
|
||||
item.setTitle('Edit');
|
||||
item.setIcon('pencil');
|
||||
item.onClick(() => {
|
||||
new EditBookmarkModal(
|
||||
|
|
@ -253,7 +253,7 @@ export class BookmarkPanel {
|
|||
|
||||
// Move to folder submenu
|
||||
menu.addItem(item => {
|
||||
item.setTitle('移动到...');
|
||||
item.setTitle('Move to...');
|
||||
item.setIcon('folder-input');
|
||||
item.onClick(() => {
|
||||
this.showMoveMenu(event, bookmark);
|
||||
|
|
@ -263,12 +263,12 @@ export class BookmarkPanel {
|
|||
menu.addSeparator();
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('删除');
|
||||
item.setTitle('Delete');
|
||||
item.setIcon('trash-2');
|
||||
item.onClick(() => {
|
||||
new ConfirmDeleteModal(
|
||||
this.app,
|
||||
`确定要删除书签"${bookmark.title}"吗?`,
|
||||
`Are you sure you want to delete bookmark "${bookmark.title}"?`,
|
||||
async () => { await this.store.removeBookmark(bookmark.id); }
|
||||
).open();
|
||||
});
|
||||
|
|
@ -282,7 +282,7 @@ export class BookmarkPanel {
|
|||
const menu = new Menu();
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('添加书签到此文件夹');
|
||||
item.setTitle('Add bookmark to this folder');
|
||||
item.setIcon('plus');
|
||||
item.onClick(() => {
|
||||
new AddBookmarkModal(this.app, this.store, '', '', folder.id).open();
|
||||
|
|
@ -290,7 +290,7 @@ export class BookmarkPanel {
|
|||
});
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('添加子文件夹');
|
||||
item.setTitle('Add sub-folder');
|
||||
item.setIcon('folder-plus');
|
||||
item.onClick(() => {
|
||||
new AddFolderModal(this.app, this.store, folder.id).open();
|
||||
|
|
@ -300,7 +300,7 @@ export class BookmarkPanel {
|
|||
menu.addSeparator();
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('重命名');
|
||||
item.setTitle('Rename');
|
||||
item.setIcon('pencil');
|
||||
item.onClick(() => {
|
||||
new EditFolderModal(this.app, this.store, folder.id, folder.name).open();
|
||||
|
|
@ -310,14 +310,14 @@ export class BookmarkPanel {
|
|||
menu.addSeparator();
|
||||
|
||||
menu.addItem(item => {
|
||||
item.setTitle('删除文件夹');
|
||||
item.setTitle('Delete folder');
|
||||
item.setIcon('trash-2');
|
||||
item.onClick(() => {
|
||||
const bookmarkCount = this.store.getBookmarksByFolder(folder.id).length;
|
||||
const subFolderCount = this.store.getSubFolders(folder.id).length;
|
||||
let msg = `确定要删除文件夹"${folder.name}"吗?`;
|
||||
let msg = `Are you sure you want to delete folder "${folder.name}"?`;
|
||||
if (bookmarkCount > 0 || subFolderCount > 0) {
|
||||
msg += `\n其中包含 ${bookmarkCount} 个书签和 ${subFolderCount} 个子文件夹,将一并删除。`;
|
||||
msg += `\nIt contains ${bookmarkCount} bookmarks and ${subFolderCount} folders, which will all be deleted.`;
|
||||
}
|
||||
new ConfirmDeleteModal(
|
||||
this.app,
|
||||
|
|
@ -337,7 +337,7 @@ export class BookmarkPanel {
|
|||
// Move to root
|
||||
if (bookmark.folderId !== null) {
|
||||
menu.addItem(item => {
|
||||
item.setTitle('(根级别)');
|
||||
item.setTitle('(Root level)');
|
||||
item.setIcon('corner-left-up');
|
||||
item.onClick(async () => {
|
||||
await this.store.moveBookmark(bookmark.id, null);
|
||||
|
|
|
|||
|
|
@ -31,15 +31,15 @@ export class BrowserPanel {
|
|||
// Navigation buttons
|
||||
const navBtns = this.navBarEl.createDiv({ cls: 'sb-nav-buttons' });
|
||||
|
||||
this.backBtn = navBtns.createDiv({ cls: 'sb-nav-btn', attr: { 'aria-label': '后退' } });
|
||||
this.backBtn = navBtns.createDiv({ cls: 'sb-nav-btn', attr: { 'aria-label': 'Back' } });
|
||||
setIcon(this.backBtn, 'arrow-left');
|
||||
this.backBtn.addEventListener('click', () => this.goBack());
|
||||
|
||||
this.forwardBtn = navBtns.createDiv({ cls: 'sb-nav-btn', attr: { 'aria-label': '前进' } });
|
||||
this.forwardBtn = navBtns.createDiv({ cls: 'sb-nav-btn', attr: { 'aria-label': 'Forward' } });
|
||||
setIcon(this.forwardBtn, 'arrow-right');
|
||||
this.forwardBtn.addEventListener('click', () => this.goForward());
|
||||
|
||||
this.refreshBtn = navBtns.createDiv({ cls: 'sb-nav-btn', attr: { 'aria-label': '刷新' } });
|
||||
this.refreshBtn = navBtns.createDiv({ cls: 'sb-nav-btn', attr: { 'aria-label': 'Reload' } });
|
||||
setIcon(this.refreshBtn, 'refresh-cw');
|
||||
this.refreshBtn.addEventListener('click', () => this.reload());
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ export class BrowserPanel {
|
|||
cls: 'sb-url-input',
|
||||
attr: {
|
||||
type: 'text',
|
||||
placeholder: '输入网址...',
|
||||
placeholder: 'Enter URL...',
|
||||
spellcheck: 'false',
|
||||
},
|
||||
});
|
||||
|
|
@ -62,7 +62,7 @@ export class BrowserPanel {
|
|||
});
|
||||
|
||||
// Bookmark (star) button
|
||||
this.bookmarkBtn = this.navBarEl.createDiv({ cls: 'sb-nav-btn sb-bookmark-btn', attr: { 'aria-label': '添加书签' } });
|
||||
this.bookmarkBtn = this.navBarEl.createDiv({ cls: 'sb-nav-btn sb-bookmark-btn', attr: { 'aria-label': 'Add bookmark' } });
|
||||
setIcon(this.bookmarkBtn, 'star');
|
||||
this.bookmarkBtn.addEventListener('click', () => {
|
||||
if (this.onAddBookmark && this.currentUrl) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ export default class SideBookmarkPlugin extends Plugin {
|
|||
|
||||
this.addCommand({
|
||||
id: 'open',
|
||||
name: '打开侧边栏书签',
|
||||
name: 'Open side bookmark',
|
||||
callback: () => {
|
||||
void this.activateView();
|
||||
},
|
||||
|
|
|
|||
|
|
@ -37,18 +37,18 @@ export class AddBookmarkModal extends Modal {
|
|||
contentEl.empty();
|
||||
contentEl.addClass('side-bookmark-modal');
|
||||
|
||||
contentEl.createEl('h3', { text: '添加书签' });
|
||||
contentEl.createEl('h3', { text: 'Add bookmark' });
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('标题')
|
||||
.setName('Title')
|
||||
.addText(text => text
|
||||
.setPlaceholder('输入书签标题')
|
||||
.setPlaceholder('Enter bookmark title')
|
||||
.setValue(this.title)
|
||||
.onChange(value => { this.title = value; })
|
||||
);
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('网址')
|
||||
.setName('URL')
|
||||
.addText(text => text
|
||||
.setPlaceholder('https://example.com')
|
||||
.setValue(this.url)
|
||||
|
|
@ -56,9 +56,9 @@ export class AddBookmarkModal extends Modal {
|
|||
);
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('文件夹')
|
||||
.setName('Folder')
|
||||
.addDropdown(dropdown => {
|
||||
dropdown.addOption('__root__', '(无文件夹)');
|
||||
dropdown.addOption('__root__', '(No folder)');
|
||||
for (const folder of this.store.folders) {
|
||||
dropdown.addOption(folder.id, this.getFolderPath(folder));
|
||||
}
|
||||
|
|
@ -70,7 +70,7 @@ export class AddBookmarkModal extends Modal {
|
|||
|
||||
new Setting(contentEl)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('保存')
|
||||
.setButtonText('Save')
|
||||
.setCta()
|
||||
.onClick(async () => {
|
||||
if (!this.url.trim()) {
|
||||
|
|
@ -93,7 +93,7 @@ export class AddBookmarkModal extends Modal {
|
|||
})
|
||||
)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('取消')
|
||||
.setButtonText('Cancel')
|
||||
.onClick(() => this.close())
|
||||
);
|
||||
}
|
||||
|
|
@ -147,18 +147,18 @@ export class EditBookmarkModal extends Modal {
|
|||
contentEl.empty();
|
||||
contentEl.addClass('side-bookmark-modal');
|
||||
|
||||
contentEl.createEl('h3', { text: '编辑书签' });
|
||||
contentEl.createEl('h3', { text: 'Edit bookmark' });
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('标题')
|
||||
.setName('Title')
|
||||
.addText(text => text
|
||||
.setPlaceholder('输入书签标题')
|
||||
.setPlaceholder('Enter bookmark title')
|
||||
.setValue(this.title)
|
||||
.onChange(value => { this.title = value; })
|
||||
);
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('网址')
|
||||
.setName('URL')
|
||||
.addText(text => text
|
||||
.setPlaceholder('https://example.com')
|
||||
.setValue(this.url)
|
||||
|
|
@ -166,9 +166,9 @@ export class EditBookmarkModal extends Modal {
|
|||
);
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('文件夹')
|
||||
.setName('Folder')
|
||||
.addDropdown(dropdown => {
|
||||
dropdown.addOption('__root__', '(无文件夹)');
|
||||
dropdown.addOption('__root__', '(No folder)');
|
||||
for (const folder of this.store.folders) {
|
||||
dropdown.addOption(folder.id, this.getFolderPath(folder));
|
||||
}
|
||||
|
|
@ -180,7 +180,7 @@ export class EditBookmarkModal extends Modal {
|
|||
|
||||
new Setting(contentEl)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('保存')
|
||||
.setButtonText('Save')
|
||||
.setCta()
|
||||
.onClick(async () => {
|
||||
if (!this.url.trim()) return;
|
||||
|
|
@ -200,7 +200,7 @@ export class EditBookmarkModal extends Modal {
|
|||
})
|
||||
)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('取消')
|
||||
.setButtonText('Cancel')
|
||||
.onClick(() => this.close())
|
||||
);
|
||||
}
|
||||
|
|
@ -242,20 +242,20 @@ export class AddFolderModal extends Modal {
|
|||
contentEl.empty();
|
||||
contentEl.addClass('side-bookmark-modal');
|
||||
|
||||
contentEl.createEl('h3', { text: '新建文件夹' });
|
||||
contentEl.createEl('h3', { text: 'New folder' });
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('文件夹名称')
|
||||
.setName('Folder name')
|
||||
.addText(text => text
|
||||
.setPlaceholder('输入文件夹名称')
|
||||
.setPlaceholder('Enter folder name')
|
||||
.setValue(this.folderName)
|
||||
.onChange(value => { this.folderName = value; })
|
||||
);
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('父文件夹')
|
||||
.setName('Parent folder')
|
||||
.addDropdown(dropdown => {
|
||||
dropdown.addOption('__root__', '(根级别)');
|
||||
dropdown.addOption('__root__', '(Root level)');
|
||||
for (const folder of this.store.folders) {
|
||||
dropdown.addOption(folder.id, this.getFolderPath(folder));
|
||||
}
|
||||
|
|
@ -267,7 +267,7 @@ export class AddFolderModal extends Modal {
|
|||
|
||||
new Setting(contentEl)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('创建')
|
||||
.setButtonText('Create')
|
||||
.setCta()
|
||||
.onClick(async () => {
|
||||
if (!this.folderName.trim()) return;
|
||||
|
|
@ -276,7 +276,7 @@ export class AddFolderModal extends Modal {
|
|||
})
|
||||
)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('取消')
|
||||
.setButtonText('Cancel')
|
||||
.onClick(() => this.close())
|
||||
);
|
||||
}
|
||||
|
|
@ -318,19 +318,19 @@ export class EditFolderModal extends Modal {
|
|||
contentEl.empty();
|
||||
contentEl.addClass('side-bookmark-modal');
|
||||
|
||||
contentEl.createEl('h3', { text: '编辑文件夹' });
|
||||
contentEl.createEl('h3', { text: 'Edit folder' });
|
||||
|
||||
new Setting(contentEl)
|
||||
.setName('文件夹名称')
|
||||
.setName('Folder name')
|
||||
.addText(text => text
|
||||
.setPlaceholder('输入文件夹名称')
|
||||
.setPlaceholder('Enter folder name')
|
||||
.setValue(this.folderName)
|
||||
.onChange(value => { this.folderName = value; })
|
||||
);
|
||||
|
||||
new Setting(contentEl)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('保存')
|
||||
.setButtonText('Save')
|
||||
.setCta()
|
||||
.onClick(async () => {
|
||||
if (!this.folderName.trim()) return;
|
||||
|
|
@ -341,7 +341,7 @@ export class EditFolderModal extends Modal {
|
|||
})
|
||||
)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('取消')
|
||||
.setButtonText('Cancel')
|
||||
.onClick(() => this.close())
|
||||
);
|
||||
}
|
||||
|
|
@ -369,12 +369,12 @@ export class ConfirmDeleteModal extends Modal {
|
|||
contentEl.empty();
|
||||
contentEl.addClass('side-bookmark-modal');
|
||||
|
||||
contentEl.createEl('h3', { text: '确认删除' });
|
||||
contentEl.createEl('h3', { text: 'Confirm delete' });
|
||||
contentEl.createEl('p', { text: this.message });
|
||||
|
||||
new Setting(contentEl)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('删除')
|
||||
.setButtonText('Delete')
|
||||
.setWarning()
|
||||
.onClick(async () => {
|
||||
await this.onConfirm();
|
||||
|
|
@ -382,7 +382,7 @@ export class ConfirmDeleteModal extends Modal {
|
|||
})
|
||||
)
|
||||
.addButton(btn => btn
|
||||
.setButtonText('取消')
|
||||
.setButtonText('Cancel')
|
||||
.onClick(() => this.close())
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ export class SideBookmarkSettingTab extends PluginSettingTab {
|
|||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
|
||||
new Setting(containerEl).setName('设置').setHeading();
|
||||
new Setting(containerEl).setName('General').setHeading();
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('默认首页')
|
||||
.setDesc('打开插件时默认加载的网址')
|
||||
.setName('Default homepage')
|
||||
.setDesc('The URL to load when the plugin opens.')
|
||||
.addText(text => text
|
||||
.setPlaceholder('https://www.google.com')
|
||||
.setValue(this.plugin.store.defaultUrl)
|
||||
|
|
@ -33,8 +33,8 @@ export class SideBookmarkSettingTab extends PluginSettingTab {
|
|||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('默认显示书签面板')
|
||||
.setDesc('打开插件时是否默认展开书签列表面板')
|
||||
.setName('Show bookmark panel by default')
|
||||
.setDesc('Expand the bookmark list panel automatically when the plugin opens.')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.store.showBookmarkPanel)
|
||||
.onChange(async (value) => {
|
||||
|
|
@ -44,8 +44,8 @@ export class SideBookmarkSettingTab extends PluginSettingTab {
|
|||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('拦截笔记链接')
|
||||
.setDesc('开启后,单击笔记中的外部链接(http/https)将自动在内置浏览器中打开,而非使用系统浏览器。按住 Cmd/Ctrl 单击可临时绕过,仍使用系统浏览器打开。')
|
||||
.setName('Intercept note links')
|
||||
.setDesc('When enabled, clicking external links (http/https) in notes opens them in the built-in browser instead of the system browser. Hold Cmd/Ctrl while clicking to bypass and use the system browser.')
|
||||
.addToggle(toggle => toggle
|
||||
.setValue(this.plugin.store.interceptLinks)
|
||||
.onChange(async (value) => {
|
||||
|
|
@ -55,14 +55,14 @@ export class SideBookmarkSettingTab extends PluginSettingTab {
|
|||
);
|
||||
|
||||
// Statistics section
|
||||
new Setting(containerEl).setName('统计').setHeading();
|
||||
new Setting(containerEl).setName('Statistics').setHeading();
|
||||
|
||||
const stats = containerEl.createDiv({ cls: 'sb-settings-stats' });
|
||||
stats.createEl('p', {
|
||||
text: `书签数量: ${this.plugin.store.bookmarks.length}`,
|
||||
text: `Bookmarks: ${this.plugin.store.bookmarks.length}`,
|
||||
});
|
||||
stats.createEl('p', {
|
||||
text: `文件夹数量: ${this.plugin.store.folders.length}`,
|
||||
text: `Folders: ${this.plugin.store.folders.length}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"0.0.1": "0.15.0",
|
||||
"0.0.2": "0.15.0",
|
||||
"0.0.3": "0.15.0"
|
||||
"0.0.3": "0.15.0",
|
||||
"0.0.4": "0.15.0"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue