Repository navigation
Releases
Syntax Palette 0.5.11
Syntax Palette 0.5.11
This release changes iOS editor highlighting to use CodeMirror decorations when the host also exposes CSS Custom Highlights. The change addresses reports of native and Syntax Palette colors appearing together. It also updates reading-view token styling and refresh behavior.
The automated test suite and build checks passed. This change has not yet been verified on an iPhone: in particular, highlighting, editing, selection, and scrolling performance still require on-device testing. Mobile support remains experimental.
Requires Obsidian 1.14.5 or later. Install main.js, manifest.json, and styles.css together, retaining any existing data.json.
Syntax Palette 0.5.9
Syntax Palette 0.5.9
This mobile candidate replaces per-fragment CSS displacement with one native
horizontal scroll container per fenced block when the host provides CodeMirror's
BlockWrapper API. The wrapper is created and managed by CodeMirror through
EditorView.blockWrappers; the plugin does not reparent editable DOM or replace
text with a widget. API availability was checked in Obsidian 1.15.0, the version
reported by the user. Hosts without this API keep the 0.5.8 shared-offset path.
Native block scrolling removes per-frame inherited CSS offset changes and the
extra position marks that were split by syntax tokens. The browser owns touch
panning and momentum. The plugin installs no touch listeners in this mode,
avoiding the main-thread wait caused by a non-passive touchmove listener.
Desktop row scrolling is unchanged. Width measurement, caret visibility,
virtualization offset restoration, wrapping and plugin cleanup are retained.
The 0.5.8 data-ignore-swipe navigation opt-out is present on the native wrapper
and code rows, including at block boundaries; vertical page panning remains
available. The reading-view gutter fix is unchanged.
The performance fixture compares 24, 46 and 120 logical code lines, including
many syntax tokens, over 60 offset updates. It records browser style/layout
metrics and mounted DOM counts rather than timing only the JS setter. The
baseline and new path use the same isolated macOS Obsidian 1.15.0 harness with
GPU disabled. These measurements do not establish iPhone FPS or native iOS
keyboard/selection behavior. On-device testing is still required.
Requires Obsidian 1.14.5 or later; the optimized mobile path uses the newer editor
API available in the checked 1.15.0 host. Install main.js, manifest.json, and
styles.css, retaining any existing data.json.
Syntax Palette 0.5.2 — Initial public release
Make code blocks look the way you like.
Syntax Palette lets you choose code colors in Obsidian without changing your whole app theme.
Features
- 39 color variants across 15 theme families, with independent light and dark choices.
- Syntax coloring for Python, JavaScript, TypeScript, JSON, Bash, HTML, and CSS.
- Optional code-block backgrounds, colored brackets, and line numbers.
- Editor wrapping controls and independent horizontal scrolling for long code lines.
- Settings are saved locally without modifying your Markdown content.
Manual installation
Download main.js, manifest.json, and styles.css from this release.
Copy all three files into your vault's .obsidian/plugins/syntax-palette/ folder, reload Obsidian, and enable Syntax Palette under Settings → Community plugins.
The complete syntax runtime is included in main.js. No separate onig.wasm file is needed.
Compatibility
Requires Obsidian 1.14.5 or later on desktop.
- macOS has been tested.
- Windows and Linux have not been tested on real systems.
- iOS, iPadOS, Android, and pop-out windows are unsupported.
The Community Plugins listing is pending review. Publishing this GitHub release does not mean the plugin has been approved for the community directory.
License
Project-authored code within the owner's licensing authority uses Apache-2.0. Bundled themes, grammars, parser-derived code, and dependencies retain their original licenses. Full third-party notices are embedded in main.js and included in the supplementary ZIP.