Skip to content

Rewrite plugin integration#101

Merged
saberzero1 merged 5 commits intomainfrom
rework-plugin-integrations
Jan 9, 2026
Merged

Rewrite plugin integration#101
saberzero1 merged 5 commits intomainfrom
rework-plugin-integrations

Conversation

@saberzero1
Copy link
Owner

  • Added support for Excalidraw drawings.
    • Excalidraw files (.excalidraw.md) are automatically converted to embedded SVG images.
    • Embedded drawings (![[Example.excalidraw]]) are supported.
    • Both light and dark theme variants are generated for proper theme support.
    • Uses the ExcalidrawAutomate API for reliable SVG export.
  • Improved Fantasy Statblocks integration.
    • Updated styles to match the plugin's Svelte component styling.
    • Added complete CSS variable support for theming.
  • Improved Datacore integration.
    • Updated styles with complete CSS from the plugin source (cards, tables, callouts, paging, embeds, errors, and layout).
  • Refactored plugin integration architecture for improved maintainability.
    • All integrations now use a unified PluginIntegration interface.
    • Integration styles are automatically managed via SCSS files in quartz/styles/syncer/.
  • Added new setting: Manage integration styles (enabled by default).
    • When enabled, Quartz Syncer automatically writes integration styles to your Quartz repository.
    • Styles are written to quartz/styles/syncer/ with automatic custom.scss import management.
    • Syncer import is added after @use "./base.scss" to ensure proper style ordering.
    • Disabling this setting will clean up syncer styles on next publish.
  • Updated documentation.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR represents a significant architectural refactoring of the plugin integration system for Quartz Syncer. The main change introduces a unified PluginIntegration interface that all plugin compilers now implement, replacing the previous ad-hoc compiler classes. This enables:

  • Automatic style management through a new AssetSyncer system
  • Better separation of concerns with pattern-based compilation
  • Support for Excalidraw drawings with light/dark theme variants
  • Enhanced styles for Fantasy Statblocks and Datacore integrations

Key Changes:

  • Introduced unified PluginIntegration interface with pattern-based compilation
  • Added AssetSyncer to automatically manage integration styles in the Quartz repository
  • Implemented Excalidraw support using the ExcalidrawAutomate API
  • Added new setting manageSyncerStyles to control automatic style injection

Reviewed changes

Copilot reviewed 32 out of 34 changed files in this pull request and generated no comments.

Show a summary per file
File Description
versions.json Added version mapping for 1.9.2
package.json, manifest.json, package-lock.json Version bump to 1.9.2
main.ts Added default value for manageSyncerStyles setting
src/models/settings.ts Added manageSyncerStyles setting field
src/views/SettingsView/Views/IntegrationSettings.ts Refactored to use integration registry instead of hard-coded integrations
src/compiler/integrations/types.ts New file defining PluginIntegration interface and related types
src/compiler/integrations/registry.ts New integration registry for managing plugin integrations
src/compiler/integrations/index.ts Central export point for integrations module
src/compiler/integrations/dataview.ts Dataview integration using new interface
src/compiler/integrations/datacore.ts Datacore integration with complete SCSS styles
src/compiler/integrations/excalidraw.ts New Excalidraw integration implementation
src/compiler/integrations/fantasy-statblocks.ts Fantasy Statblocks integration with updated styles
src/compiler/integrations/auto-card-link.ts Auto Card Link integration refactored
src/compiler/integrations/AssetSyncer.ts New asset syncer for managing integration styles
src/compiler/PluginCompiler.ts Refactored to use integration registry and pattern compilation
src/repositoryConnection/RepositoryConnection.ts Added getRawFile, updateFiles signature changes, raw file staging
src/publisher/Publisher.ts Integrated AssetSyncer into publish flow
src/utils/styles.ts Removed (styles moved to integration files)
src/compiler/plugins/*.ts Removed old compiler files
scripts/generateSyncerSettings.mjs Added manageSyncerStyles default
docs/* Updated Excalidraw documentation and changelog

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@saberzero1 saberzero1 merged commit 11d23c4 into main Jan 9, 2026
12 checks passed
@saberzero1 saberzero1 deleted the rework-plugin-integrations branch January 9, 2026 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants