md update

This commit is contained in:
2026-07-11 14:56:35 +03:00
parent 00cc10b90a
commit 09069047a6
2 changed files with 36 additions and 107 deletions
+30 -104
View File
@@ -1,115 +1,41 @@
# ZeroQ QoL Modules
Модульный плагин для **Obsidian** с набором QoL-функций, которые можно включать и отключать в настройках.
A modular **Obsidian** plugin with toggleable QoL (quality-of-life) modules. Each module can be independently enabled or disabled in the settings.
Modular **Obsidian** plugin with toggleable QoL modules in settings.
### Modules
## Установка / Installation
- **Attachment Clean Paste** — Replaces `![[embed]]` with `[[path/file|name]]` for specified file extensions on paste/drop
- **Preserve Link Aliases** — Preserves original link aliases when files are renamed
1. Скачайте `main.js`, `manifest.json` и `styles.css` из [релизов](https://github.com/your/repo/releases)
2. Поместите их в папку `.obsidian/plugins/zeroq-qol-modules/` вашего хранилища
3. В Obsidian: **Настройки****Community plugins****Включить**
4. Активируйте плагин **ZeroQ QoL Modules**
## Язык / Language
Язык плагина синхронизируется с **языком интерфейса Obsidian** (Settings → About → Language).
- Obsidian на русском → плагин на русском
- Obsidian на другом языке → плагин на английском
The plugin language syncs with **Obsidian's UI language** setting.
- Obsidian in English → plugin in English
- Obsidian in any other language → falls back to English
## Модули / Modules
- **Attachment Clean Paste** — Заменяет `![[embed]]` на `[[path/file|name]]` для файлов с указанными расширениями при вставке/перетаскивании
Каждый модуль включается/отключается в настройках плагина.
## Разработка / Development
### Архитектура / Architecture
```
src/
├── main.ts # точка входа, Plugin class
├── settings.ts # общая панель настроек
├── types.ts # базовые типы
├── locales/
│ ├── en.ts # тип Locale + EN-словарь
│ ├── ru.ts # RU-словарь
│ └── index.ts # авто-определение языка
└── modules/
├── index.ts # реестр модулей (статический импорт)
├── base-module.ts # абстрактный класс модуля
└── attachment-clean-paste/
└── index.ts # реализация модуля
```
**Принцип работы:**
- `main.ts` загружает настройки, итерирует `MODULES` и вызывает `onload()` для включённых
- Каждый модуль через `registerCleanup()` регистрирует функции очистки, которые вызываются при выключении модуля или выгрузке плагина
- В настройках отображаются все модули с чекбоксами вкл/выкл
### Добавление нового модуля / Adding a module
1. Создайте папку `src/modules/my-module/`
2. Создайте класс, унаследованный от `BaseModule`:
```typescript
import { BaseModule } from '../base-module';
import { locale } from '../../locales';
export class MyModule extends BaseModule {
id = 'my-module';
name = locale.modules['my-module'].name;
description = locale.modules['my-module'].description;
get defaultSettings() {
return { /* настройки по умолчанию */ };
}
onload(plugin, moduleSettings) {
// инициализация: регистрация событий, команд, настроек
}
onunload(plugin) {
// очистка (cleanup происходит автоматически через registerCleanup)
}
}
```
3. Добавьте переводы в `src/locales/en.ts` и `src/locales/ru.ts`
4. Зарегистрируйте модуль в `src/modules/index.ts`:
```typescript
import { MyModule } from './my-module';
export const MODULES: QoLModule[] = [
new AttachmentCleanPasteModule(),
new MyModule(),
];
```
### Добавление нового языка / Adding a language
1. Создайте `src/locales/de.ts` со структурой `Locale`
2. Импортируйте и добавьте в словарь в `src/locales/index.ts`:
```typescript
import { de } from './de';
const locales: Record<string, Locale> = { en, ru, de };
```
### Сборка / Build
### Build
```bash
npm run build # production-сборка
npm run dev # dev-сборка с sourcemap
npm run build # production
npm run dev # dev with sourcemaps
```
## Лицензия / License
### License
MIT
---
# ZeroQ QoL Modules
Модульный плагин для **Obsidian** с набором QoL-функций, которые можно независимо включать и отключать в настройках.
### Модули
- **Attachment Clean Paste** — заменяет `![[вложение]]` на `[[путь/файл|имя]]` для указанных расширений при вставке/перетаскивании
- **Preserve Link Aliases** — сохраняет оригинальные алиасы ссылок при переименовании файлов
### Сборка
```bash
npm run build # production
npm run dev # dev со sourcemap
```
### Лицензия
MIT
+5 -2
View File
@@ -7,6 +7,7 @@ Obsidian plugin with a **modular architecture**. Each feature is a separate modu
**Plugin ID:** `zeroq-qol-modules`
**Entry point:** `src/main.ts` → compiles to `main.js` (esbuild)
**Version source:** `package.json` → auto-synced to `manifest.json` on build
**Current modules (2):** `attachment-clean-paste`, `preserve-link-aliases`
## Stack
@@ -29,8 +30,10 @@ src/
└── modules/
├── index.ts # Static registry: array of all module instances
├── base-module.ts # BaseModule abstract class
── attachment-clean-paste/
└── index.ts # Concrete module implementation
── attachment-clean-paste/
└── index.ts # Handles paste/drop — replaces ![[embed]] → [[path|name]]
└── preserve-link-aliases/
└── index.ts # Preserves aliases on vault rename events
```
## Architecture