Refactor architecture: eliminate auto-discovery and consolidate packages

- Remove auto-discovery entirely (~450 lines)
  * Delete internal/content/discoverer.go
  * Simplify enhancer to single-phase processing
  * Remove duplicate container expansion logic

- Consolidate repository implementations
  * Move internal/content/client.go → internal/db/http_client.go
  * Group all repository implementations in db/ package

- Add file utilities to engine following Go stdlib patterns
  * Add engine.ProcessFile() and ProcessDirectory() methods
  * Engine now handles both content processing AND file operations

- Move site management to dedicated package
  * Move internal/content/site_manager.go → internal/sites/manager.go
  * Clear separation of site lifecycle from content processing

- Preserve container expansion (syntactic sugar)
  * .insertr on containers still auto-applies to viable children
  * Container detection logic consolidated in engine/utils.go

Result: Clean architecture with single source of truth for .insertr processing
This commit is contained in:
2025-10-19 22:37:26 +02:00
parent 87b78a4a69
commit dbdd4361b7
8 changed files with 152 additions and 667 deletions

View File

@@ -9,6 +9,7 @@ import (
"github.com/spf13/cobra"
"github.com/insertr/insertr/internal/config"
"github.com/insertr/insertr/internal/content"
"github.com/insertr/insertr/internal/db"
)
@@ -95,7 +96,7 @@ func runEnhance(cmd *cobra.Command, args []string) {
var client db.ContentRepository
if cfg.API.URL != "" {
fmt.Printf("🌐 Using content API: %s\n", cfg.API.URL)
client = content.NewHTTPClient(cfg.API.URL, cfg.API.Key)
client = db.NewHTTPClient(cfg.API.URL, cfg.API.Key)
} else if cfg.Database.Path != "" {
fmt.Printf("🗄️ Using database: %s\n", cfg.Database.Path)
database, err := db.NewDatabase(cfg.Database.Path)
@@ -110,7 +111,7 @@ func runEnhance(cmd *cobra.Command, args []string) {
// Load site-specific configuration
enhancementConfig := content.EnhancementConfig{
Discovery: content.DiscoveryConfig{
Discovery: config.DiscoveryConfig{
Enabled: false, // Default: disabled for explicit class="insertr" markings only
Aggressive: false,
Containers: true,