Added comprehensive plugin system for independent JavaScript UI development: **Plugin Infrastructure:** - Extended existing MarkiTect plugin system with RenderingEnginePlugin base class - Added RENDERING plugin type to PluginType enum - Created RenderingConfig for asset management and deployment - Implemented RenderingEngineManager for plugin discovery and lifecycle **TestDrive JSUI Plugin:** - Extracted JavaScript UI components to independent testdrive-jsui plugin - Created standalone development environment (no Python required) - Implemented compass-positioned control panels (NW, NE, E, SE) - Added clean JSON configuration interface for Python↔JavaScript data transfer **Asset Management:** - Development mode: serve assets directly from plugin source directory - Production mode: deploy to _markitect/plugins/[plugin-name]/ structure - Configurable asset URLs and deployment strategies - Support for external dependencies (CDN resources) **Standalone Development:** - testdrive-jsui/test.html for browser-based development - Package.json with npm scripts for development server - Complete separation of JavaScript development from Python environment - Hot reload and standard web development workflow **Integration Demo:** - demo_plugin_integration.py showcasing all plugin capabilities - Standalone, plugin discovery, production deployment examples - Asset URL generation for different deployment modes This enables JavaScript-first development while maintaining clean integration with the MarkiTect Python ecosystem. Developers can now work on UI components independently using standard web development tools and workflows. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
42 lines
917 B
Python
42 lines
917 B
Python
"""
|
|
MarkiTect Plugin System
|
|
|
|
This package provides the plugin architecture for extending MarkiTect functionality.
|
|
Plugins can extend processors, formatters, validators, exporters, and more.
|
|
"""
|
|
|
|
from .manager import PluginManager
|
|
from .base import (
|
|
BasePlugin,
|
|
PluginType,
|
|
PluginMetadata,
|
|
ProcessorPlugin,
|
|
FormatterPlugin,
|
|
ValidatorPlugin,
|
|
ExporterPlugin,
|
|
CommandPlugin
|
|
)
|
|
from .rendering import (
|
|
RenderingEnginePlugin,
|
|
RenderingConfig,
|
|
RenderingEngineManager
|
|
)
|
|
from .registry import plugin_registry
|
|
from .decorators import register_plugin
|
|
|
|
__all__ = [
|
|
'PluginManager',
|
|
'BasePlugin',
|
|
'PluginType',
|
|
'PluginMetadata',
|
|
'ProcessorPlugin',
|
|
'FormatterPlugin',
|
|
'ValidatorPlugin',
|
|
'ExporterPlugin',
|
|
'CommandPlugin',
|
|
'RenderingEnginePlugin',
|
|
'RenderingConfig',
|
|
'RenderingEngineManager',
|
|
'plugin_registry',
|
|
'register_plugin'
|
|
] |