a to z

approved

by supatipanno5611

add various features for korean users - This plugin has not been manually reviewed by Obsidian staff.

76 downloadsUpdated 19d ago0BSD

a to z

English | 한국어

a to z is an Obsidian plugin designed to streamline writing workflows, with particular support for Korean users.

It brings frequently used editing actions, source-linked Later notes, frontmatter and topic management, snippets, and symbol input together as commands and settings.

Features

AreaMain features
EditingCopy or cut an entire document, copy or cut the current line, delete a paragraph, and focus the main editor
Note organizationMove selected text to source-specific Later notes, move the current file, and clean up tabs
Property managementEdit and clean up topics, date, and other supported properties
Input assistanceInsert reusable snippets and symbols, and delete matching symbol pairs together

The plugin automatically uses Korean UI text when Obsidian's interface language is Korean. All other interface languages use English.

Installation

Community plugins

Once the plugin is available in the Obsidian Community directory:

  1. Open Settings → Community plugins.
  2. Search for a to z.
  3. Select Install, then enable the plugin.

Manual installation

  1. Download or clone this repository.
  2. Install the dependencies.
npm install
  1. Build the plugin.
npm run build
  1. Create the following folder inside your vault:
<your-vault>/.obsidian/plugins/atoz/
  1. Copy these files into the folder:
manifest.json
main.js
styles.css
  1. Reload Obsidian and enable a to z under Settings → Community plugins.

The minimum supported Obsidian version is 1.13.0. The plugin supports both desktop and mobile.

Optional CSS snippets

extras/delete_unnecessary_filemenues.css is a personal CSS snippet that hides selected items from Obsidian file menus. It is not included in or loaded by the plugin.

extras/mobile_notice_bottom.css places notices at the bottom of the screen on phones. It uses !important because Obsidian's notice position otherwise takes precedence. This snippet is also optional and is not loaded by the plugin.

To use either snippet:

  1. Copy the file to <your-vault>/.obsidian/snippets/.
  2. Open Settings → Appearance → CSS snippets.
  3. Reload snippets and enable the snippet you copied.

The snippet uses :has() selectors. This can affect menu rendering performance and may also hide menu items from other plugins that use the same icons. Enable it only if you want this behavior.

Recommended initial settings

After enabling the plugin, open Settings → a to z and configure only the features you need.

SettingDefaultDescription
Enable cursor centeringOffKeeps the cursor near the center of the screen while editing.
Reading time basisWithout spacesCharacter-count basis used to estimate reading time.
Reading speed500Personal reading speed in characters per minute.
Target presets1,000±50, 1,500±75, 2,000±100, 3,000±150Writing targets and their allowed ranges.
Snippet trigger character@Opens snippet suggestions while typing.
Snippet suggestion limit5Maximum number of snippet suggestions shown.
Snippet listEmptyStores reusable text, one snippet per line.
Symbol trigger character~Opens symbol suggestions while typing.
Symbol suggestion limit5Maximum number of symbol suggestions shown.
Symbol listDefault symbol setConfigures each symbol's ID, displayed character, and optional closing character.
Work note pathwork.mdFile opened by the Open work note command.

Use Reset all settings to restore these defaults.

Common workflows

Save text for Later

  1. Select text in a regular note or work.md, or place the cursor on a line.
  2. Run Move selection or current line to Later.
  3. The content is saved in <source-name>_later.md and removed from the source note.
  4. Select an entry in the later sidebar to move it back to the source note.

Each Later note is linked to its source by the later: "[[Source note]]" property.

Clean up frontmatter

Clean up properties checks Markdown files in the vault against the supported property list:

date:
topics:
title:
description:
cssclasses:
aliases:
tags:
later:
target-characters:
target-tolerance:

Unsupported empty properties are removed automatically. Files containing unsupported properties with values are opened in new tabs for review. log.md and the configured work note are excluded.

Insert snippets and symbols

By default, type @ followed by a search term to open snippet suggestions. Selecting an existing snippet replaces the typed range. A new snippet can be added directly from the suggestion list.

Type ~ followed by a symbol ID to open symbol suggestions. A symbol with a closing character wraps selected text, or inserts the pair and places the cursor between them. Pressing Backspace between a matching pair deletes both characters.

Commands

CommandDescription
Toggle cursor centeringKeeps the cursor near the center of the screen while editing.
Copy entire documentCopies the entire current document to the clipboard.
Cut entire documentCopies the entire current document, then clears it.
CopyCopies the selection, or the current line when nothing is selected.
CutCuts the selection, or the current line when nothing is selected.
Delete paragraphDeletes the line containing the cursor.
Focus main editorReturns focus to the main Markdown editor.
Toggle mobile toolbarShows or hides the bottom toolbar on mobile.
Move current fileMoves the current Markdown file to another folder in the vault.
Edit topicsSearches vault notes, headings, and existing block IDs to add, remove, or re-alias topic wikilinks.
Insert today's date propertyAdds today's date only when the date property is absent.
Update date property to todayReplaces the date value with today's date.
Clean up propertiesRemoves unsupported empty properties and opens files that need review.
View document infoShows character counts, reading time, and the writing target in the left sidebar.
Set writing target for current documentAssigns one of the configured target presets or clears the current target.
Open work noteOpens the configured work note.
Close all tabsCloses unpinned tabs in the main workspace.
Move selection or current line to laterMoves the exact selection or current line into a source-linked later note.
Open later sidebarShows later entries linked to the current note.
Select previous sidebar itemSelects the previous entry in the later sidebar.
Select next sidebar itemSelects the next entry in the later sidebar.
Take selected sidebar itemMoves the selected later entry back into the source editor.
Resolve later linksKeeps one linked later note when multiple notes point to the same source.

Ribbon icons provide quick access to the work note, mobile toolbar, Later sidebar, document info, and quick slots.

Documentation

Detailed feature documentation is currently available in Korean:

DocumentTopic
cursor-center.mdCursor centering
cut-copy.mdCopy and cut actions
delete-paragraph.mdDelete the current paragraph
focus-root-leaf.mdFocus the main editor
move-current-file.mdMove the current file
work.mdWork note and tab cleanup
later-sidebar.mdSource-specific Later notes and sidebar
edit-topics.mdTopic editing
date-property.mdDate properties
lint-properties.mdProperty cleanup
document-info.mdCharacter counts, reading time, and writing targets
mobile-toolbar.mdMobile toolbar visibility
snippets.mdSnippet suggestions
symbols.mdSymbol suggestions and paired deletion

Development

Source files are located in src/. The build output is generated as main.js in the repository root.

npm run dev

Starts esbuild in watch mode with src/main.ts as the entry point and generates a source-mapped main.js.

npm run build

Runs the TypeScript type check and creates a production bundle.

npm run lint

Checks the project with ESLint and the recommended Obsidian plugin rules.

npm run version

Runs version-bump.mjs, then stages manifest.json and versions.json.

npm run release

Interactively shows the latest release tag and commits since that tag, then offers major, minor, and patch version choices. After confirmation, it verifies a clean main branch and the remote state, updates all version metadata, runs lint and build checks, creates the release commit and tag, and atomically pushes both main and the tag. The existing GitHub Actions workflow then builds, attests, and publishes the release. Commit the release script itself before using it for the first time.

Project structure

.
├── manifest.json        # Obsidian plugin metadata
├── main.js              # Bundle generated by esbuild
├── styles.css           # Plugin styles
├── extras/              # Optional CSS snippets not loaded by the plugin
├── src/
│   ├── locales/         # English and Korean UI text
│   ├── main.ts          # Plugin loading, commands, and events
│   ├── setting.ts       # Settings tab
│   ├── types.ts         # Settings types and defaults
│   ├── utils.ts         # Shared utilities
│   └── features/        # Feature implementations
└── docs/                # Korean feature documentation

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.