1.3 KiB
1.3 KiB
Project: Obsidian Unicode Text Formatter Plugin
Goal
Transform selected text in the Obsidian editor into Unicode Mathematical Alphanumeric Symbols (Sans-Serif Bold / Italic / Bold-Italic) for use in LinkedIn and Facebook posts.
Architecture
- TypeScript, Obsidian Plugin API only, zero external dependencies
- Four files to implement: src/unicode-maps.ts, src/formatter.ts, src/commands.ts, main.ts
- Build tool: esbuild (already configured in the sample plugin template)
Key Unicode Blocks
- Sans-Serif Bold uppercase: U+1D5D4–U+1D5ED
- Sans-Serif Bold lowercase: U+1D5EE–U+1D607
- Sans-Serif Bold digits: U+1D7EC–U+1D7F5
- Sans-Serif Italic uppercase: U+1D608–U+1D621
- Sans-Serif Italic lowercase: U+1D622–U+1D63B
- Sans-Serif Bold-Italic uppercase: U+1D63C–U+1D655
- Sans-Serif Bold-Italic lowercase: U+1D656–U+1D66F
Obsidian API used
- editor.getSelection() / editor.replaceSelection()
- this.addCommand({ id, name, editorCallback })
- this.addRibbonIcon()
Commands to register
- unicode-formatter:bold "Format as Unicode Bold"
- unicode-formatter:italic "Format as Unicode Italic"
- unicode-formatter:bold-italic "Format as Unicode Bold Italic"
Testing
Install to: .obsidian/plugins/unicode-text-formatter/ (main.js + manifest.json) Enable in: Obsidian → Settings → Community Plugins