7a4e09f97c9cdda20cf29f70f07b697b04876842
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Unicode Text Formatter
An Obsidian plugin that transforms selected text into Unicode Mathematical Alphanumeric Symbols — Sans-Serif Bold, Italic, and Bold-Italic — for use in LinkedIn and Facebook 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 (𝘼𝘽𝘾 / 𝙖𝙗𝙘)
- Remove Unicode Formatting — converts any formatted Unicode characters back to plain ASCII
- Non-mapped characters (punctuation, spaces, emoji, etc.) are passed through unchanged
Usage
- Select text in the editor
- Open the Command Palette (
Ctrl/Cmd + P) - Run one of:
- Format as Unicode Bold
- Format as Unicode Italic
- Format as Unicode Bold Italic
- Remove Unicode Formatting — reverses any of the above back to plain ASCII
The selected text is replaced in place.
Installation
Manual
- Build the plugin (see Development) or download a release
- Copy
main.jsandmanifest.jsonto your vault at:<VaultFolder>/.obsidian/plugins/unicode-text-formatter/ - In Obsidian: Settings → Community Plugins → Installed Plugins — enable Unicode Text Formatter
Development
Requirements: Node.js ≥ 16
npm install
npm run dev # watch mode — recompiles on save
npm run build # one-time production build
npm run lint # ESLint check
Project structure
| File | Purpose |
|---|---|
src/unicode-maps.ts |
Builds character lookup maps from Unicode code point ranges |
src/formatter.ts |
transformText(text, style) and cleanText(text) — character mapping functions |
src/commands.ts |
Registers the four editor commands with the Obsidian plugin API |
src/main.ts |
Plugin entry point — calls registerCommands on load |
Unicode blocks used
| Style | Uppercase | Lowercase | Digits |
|---|---|---|---|
| Sans-Serif Bold | U+1D5D4–U+1D5ED | U+1D5EE–U+1D607 | U+1D7EC–U+1D7F5 |
| Sans-Serif Italic | U+1D608–U+1D621 | U+1D622–U+1D63B | — |
| Sans-Serif Bold-Italic | U+1D63C–U+1D655 | U+1D656–U+1D66F | — |
Releasing
- Update
manifest.jsonwith the new version and minimum Obsidian version - Update
versions.json:"new-version": "min-obsidian-version" - Create a GitHub release tagged with the exact version number
- Attach
manifest.jsonandmain.jsas release assets
You can bump the version automatically:
npm version patch # or minor / major
API Documentation
Languages
TypeScript
88.7%
JavaScript
7%
CSS
4.3%