2026-07-11 03:05:42 +03:00
2026-07-11 03:05:42 +03:00
2026-07-11 02:27:14 +03:00
2026-07-11 02:27:14 +03:00
2026-07-11 03:05:42 +03:00
2026-07-11 02:27:14 +03:00
2026-07-11 02:27:14 +03:00
2026-07-11 02:27:14 +03:00
2026-07-11 03:05:42 +03:00
2026-07-11 02:27:14 +03:00
2026-07-11 03:05:42 +03:00

ZeroQ QoL Modules

Модульный плагин для Obsidian с набором QoL-функций, которые можно включать и отключать в настройках.

Modular Obsidian plugin with toggleable QoL modules in settings.

Установка / Installation

  1. Скачайте main.js, manifest.json и styles.css из релизов
  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:
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)
  }
}
  1. Добавьте переводы в src/locales/en.ts и src/locales/ru.ts
  2. Зарегистрируйте модуль в src/modules/index.ts:
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:
import { de } from './de';
const locales: Record<string, Locale> = { en, ru, de };

Сборка / Build

npm run build    # production-сборка
npm run dev      # dev-сборка с sourcemap

Лицензия / License

MIT

S
Description
No description provided
Readme MIT
179 KiB
Languages
JavaScript 38.4%
TypeScript 35.7%
Shell 13.6%
PowerShell 12.2%
CSS 0.1%