Add fullwidth and circled Unicode formatting commands

This commit is contained in:
2026-05-05 16:05:10 +02:00
parent 43d8652d04
commit c798b8b39e
4 changed files with 36 additions and 6 deletions
+8 -2
View File
@@ -1,12 +1,14 @@
# Unicode Text Formatter
An [Obsidian](https://obsidian.md) plugin that transforms selected text into Unicode Mathematical Alphanumeric Symbols — Sans-Serif Bold, Italic, and Bold-Italic — for use in LinkedIn and Facebook posts.
An [Obsidian](https://obsidian.md) plugin that transforms selected text into Unicode Mathematical Alphanumeric Symbols — Sans-Serif Bold, Italic, and Bold-Italic — plus Circled and Fullwidth characters — for use in social media posts.
## Features
- **Unicode Bold** — converts letters and digits to sans-serif bold (𝗔𝗕𝗖 / 𝗮𝗯𝗰 / 𝟬𝟭𝟮)
- **Unicode Italic** — converts letters to sans-serif italic (𝘈𝘉𝘊 / 𝘢𝘣𝘤)
- **Unicode Bold Italic** — converts letters to sans-serif bold italic (𝘼𝘽𝘾 / 𝙖𝙗𝙘)
- **Unicode Fullwidth** — converts letters and digits to fullwidth forms (ABC / abc / 012)
- **Unicode Circled** — converts letters and digits to circled forms (ⒶⒷⒸ / ⓐⓑⓒ / ①②③)
- **Remove Unicode Formatting** — converts any formatted Unicode characters back to plain ASCII
- **Convert List Bullets to Arrow** — prefixes every selected line with `→ `, stripping any leading `* ` marker first
- **Convert List Bullets to Em Dash** — prefixes every selected line with `— `, stripping any leading `* ` marker first
@@ -23,6 +25,8 @@ An [Obsidian](https://obsidian.md) plugin that transforms selected text into Uni
- **Format as Unicode Bold**
- **Format as Unicode Italic**
- **Format as Unicode Bold Italic**
- **Format as Fullwidth**
- **Format as Circled Letters/Numbers**
- **Remove Unicode Formatting** — reverses any of the above back to plain ASCII
- **Convert List Bullets to Arrow** — prefixes every line with `→ ` (strips `* ` if present)
- **Convert List Bullets to Em Dash** — prefixes every line with `— ` (strips `* ` if present)
@@ -60,7 +64,7 @@ npm run lint # ESLint check
|------|---------|
| `src/unicode-maps.ts` | Builds character lookup maps from Unicode code point ranges |
| `src/formatter.ts` | `transformText`, `cleanText`, `bulletToEmdash`, `bulletToArrow`, `numberedListSlash`, `numberedListParens`, `markdownToLinkedIn` — text transformation functions |
| `src/commands.ts` | Registers the nine editor commands with the Obsidian plugin API |
| `src/commands.ts` | Registers the eleven editor commands with the Obsidian plugin API |
| `src/main.ts` | Plugin entry point — calls `registerCommands` on load |
### Unicode blocks used
@@ -70,6 +74,8 @@ npm run lint # ESLint check
| Sans-Serif Bold | U+1D5D4U+1D5ED | U+1D5EEU+1D607 | U+1D7ECU+1D7F5 |
| Sans-Serif Italic | U+1D608U+1D621 | U+1D622U+1D63B | — |
| Sans-Serif Bold-Italic | U+1D63CU+1D655 | U+1D656U+1D66F | — |
| Fullwidth | U+FF21U+FF3A | U+FF41U+FF5A | U+FF10U+FF19 |
| Circled | U+24B6U+24CF | U+24D0U+24E9 | U+2460U+2468, U+24EA |
## Releasing