chore: commit examples and some cleanup
This commit is contained in:
453
GAMEPLAN_ISSUE_141_VARIANT_B.md
Normal file
453
GAMEPLAN_ISSUE_141_VARIANT_B.md
Normal file
@@ -0,0 +1,453 @@
|
|||||||
|
# Gameplan: Issue #141 Asset Management - Variant B Implementation
|
||||||
|
|
||||||
|
**Date**: October 8, 2025
|
||||||
|
**Issue**: #141 - Asset Management Concepts
|
||||||
|
**Variant**: B - Content-Addressable Package System with Symlinks
|
||||||
|
**Status**: 📋 **IMPLEMENTATION GAMEPLAN**
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
This gameplan outlines the implementation of **Variant B** from Issue #141, which provides a **Content-Addressable Package System with Symlinks** for managing images and file includes in markitect. The implementation focuses on:
|
||||||
|
|
||||||
|
1. **Package-based document storage** (.mdpkg ZIP files)
|
||||||
|
2. **Symlink-based deduplication** with shared asset library
|
||||||
|
3. **CLI integration** with markitect commands
|
||||||
|
4. **Gradual rollout** with backward compatibility
|
||||||
|
|
||||||
|
## Architecture Overview
|
||||||
|
|
||||||
|
```
|
||||||
|
markitect_packages/
|
||||||
|
├── packages/ # Generated .mdpkg files
|
||||||
|
│ ├── document_a.mdpkg
|
||||||
|
│ └── document_b.mdpkg
|
||||||
|
├── shared_assets/ # Deduplicated asset library
|
||||||
|
│ ├── images/
|
||||||
|
│ │ ├── content_hash_1.png
|
||||||
|
│ │ └── content_hash_2.jpg
|
||||||
|
│ └── registry.json # Asset registry
|
||||||
|
└── workspace/ # Working directory with symlinks
|
||||||
|
├── document_a/
|
||||||
|
│ ├── index.md
|
||||||
|
│ └── assets/ # Symlinks to shared_assets
|
||||||
|
│ └── logo.png → ../../shared_assets/images/hash_1.png
|
||||||
|
└── document_b/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Current Markitect Integration Points
|
||||||
|
|
||||||
|
Based on analysis of the existing codebase:
|
||||||
|
|
||||||
|
### Existing Modules
|
||||||
|
- **CLI Framework**: `/markitect/cli.py` - Main Click-based CLI with 247KB of commands
|
||||||
|
- **Module Structure**: Organized in packages (finance, issues, legacy, etc.)
|
||||||
|
- **Database Integration**: `/markitect/database.py` - SQLite-based storage
|
||||||
|
- **Configuration**: `/markitect/config_manager.py` - Centralized config management
|
||||||
|
- **Batch Processing**: `/markitect/batch_processor.py` - File processing pipeline
|
||||||
|
|
||||||
|
### Integration Strategy
|
||||||
|
- Follow existing patterns in `/markitect/finance/` and `/markitect/issues/`
|
||||||
|
- Use Click command groups for asset management commands
|
||||||
|
- Leverage existing `DatabaseManager` for metadata storage
|
||||||
|
- Integrate with `ConfigurationManager` for user settings
|
||||||
|
|
||||||
|
## Implementation Phases
|
||||||
|
|
||||||
|
### Phase 1: Core Asset Management Module (Week 1-2)
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
1. **`/markitect/assets/` module structure**
|
||||||
|
2. **Asset registry and deduplication engine**
|
||||||
|
3. **Basic CLI commands**
|
||||||
|
4. **Unit tests**
|
||||||
|
|
||||||
|
**Components:**
|
||||||
|
```
|
||||||
|
markitect/assets/
|
||||||
|
├── __init__.py # Module exports
|
||||||
|
├── registry.py # AssetRegistry class
|
||||||
|
├── deduplicator.py # AssetDeduplicator class
|
||||||
|
├── packager.py # MarkdownPackager class
|
||||||
|
├── cli.py # Click command group
|
||||||
|
├── exceptions.py # Asset-specific exceptions
|
||||||
|
└── constants.py # Configuration constants
|
||||||
|
```
|
||||||
|
|
||||||
|
**Key Classes:**
|
||||||
|
- `AssetRegistry` - JSON-based asset metadata storage
|
||||||
|
- `AssetDeduplicator` - Symlink-based deduplication
|
||||||
|
- `MarkdownPackager` - .mdpkg creation/extraction
|
||||||
|
- `AssetManager` - High-level API coordinator
|
||||||
|
|
||||||
|
### Phase 2: CLI Integration (Week 3)
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
1. **Full CLI command suite**
|
||||||
|
2. **Integration with existing markitect CLI**
|
||||||
|
3. **Configuration management**
|
||||||
|
4. **User documentation**
|
||||||
|
|
||||||
|
**CLI Commands:**
|
||||||
|
```bash
|
||||||
|
# Asset Management
|
||||||
|
markitect asset add <file> <document> [--name NAME]
|
||||||
|
markitect asset list [--document DOC] [--unused]
|
||||||
|
markitect asset dedupe [--dry-run]
|
||||||
|
markitect asset stats
|
||||||
|
markitect asset cleanup [--orphaned]
|
||||||
|
|
||||||
|
# Package Management
|
||||||
|
markitect package create <document-dir> <package-name>
|
||||||
|
markitect package extract <package-file> [--name NAME]
|
||||||
|
markitect package list
|
||||||
|
markitect package validate <package-file>
|
||||||
|
|
||||||
|
# Workspace Management
|
||||||
|
markitect workspace init [--template TEMPLATE]
|
||||||
|
markitect workspace status
|
||||||
|
markitect workspace sync [--document DOC]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phase 3: Advanced Features (Week 4-5)
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
1. **Batch processing integration**
|
||||||
|
2. **Database schema extensions**
|
||||||
|
3. **Performance optimizations**
|
||||||
|
4. **Integration tests**
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- **Batch Import**: Process entire directories of assets
|
||||||
|
- **Auto-discovery**: Scan markdown files for asset references
|
||||||
|
- **Format Optimization**: Automatic image compression/conversion
|
||||||
|
- **Workspace Templates**: Pre-configured project structures
|
||||||
|
- **Asset Search**: Content-based asset discovery
|
||||||
|
|
||||||
|
### Phase 4: Production Readiness (Week 6)
|
||||||
|
|
||||||
|
**Deliverables:**
|
||||||
|
1. **Error handling and recovery**
|
||||||
|
2. **Configuration validation**
|
||||||
|
3. **Performance benchmarking**
|
||||||
|
4. **Documentation completion**
|
||||||
|
|
||||||
|
**Production Features:**
|
||||||
|
- **Rollback Support**: Undo asset operations
|
||||||
|
- **Conflict Resolution**: Handle symlink/file conflicts
|
||||||
|
- **Cross-platform Support**: Windows symlink alternatives
|
||||||
|
- **Migration Tools**: Import from existing asset workflows
|
||||||
|
|
||||||
|
## Technical Specifications
|
||||||
|
|
||||||
|
### Module Structure
|
||||||
|
|
||||||
|
**`markitect/assets/__init__.py`**
|
||||||
|
```python
|
||||||
|
"""Asset Management for Markitect - Issue #141 Variant B Implementation."""
|
||||||
|
|
||||||
|
from .registry import AssetRegistry
|
||||||
|
from .deduplicator import AssetDeduplicator
|
||||||
|
from .packager import MarkdownPackager
|
||||||
|
from .manager import AssetManager
|
||||||
|
from .exceptions import AssetError, DuplicationError, PackageError
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'AssetRegistry',
|
||||||
|
'AssetDeduplicator',
|
||||||
|
'MarkdownPackager',
|
||||||
|
'AssetManager',
|
||||||
|
'AssetError',
|
||||||
|
'DuplicationError',
|
||||||
|
'PackageError'
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
**CLI Integration Pattern**
|
||||||
|
```python
|
||||||
|
# In markitect/cli.py
|
||||||
|
from .assets.cli import asset_commands
|
||||||
|
|
||||||
|
@cli.group()
|
||||||
|
def asset():
|
||||||
|
"""Asset management commands."""
|
||||||
|
pass
|
||||||
|
|
||||||
|
cli.add_command(asset_commands, 'asset')
|
||||||
|
```
|
||||||
|
|
||||||
|
### Database Schema Extensions
|
||||||
|
|
||||||
|
**Asset Metadata Table**
|
||||||
|
```sql
|
||||||
|
CREATE TABLE asset_metadata (
|
||||||
|
content_hash TEXT PRIMARY KEY,
|
||||||
|
original_name TEXT,
|
||||||
|
file_size INTEGER,
|
||||||
|
mime_type TEXT,
|
||||||
|
stored_path TEXT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
last_accessed TIMESTAMP,
|
||||||
|
reference_count INTEGER DEFAULT 0
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE asset_references (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
content_hash TEXT,
|
||||||
|
document_path TEXT,
|
||||||
|
virtual_name TEXT,
|
||||||
|
markdown_line INTEGER,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
FOREIGN KEY (content_hash) REFERENCES asset_metadata(content_hash)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_asset_refs_document ON asset_references(document_path);
|
||||||
|
CREATE INDEX idx_asset_refs_hash ON asset_references(content_hash);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration Schema
|
||||||
|
|
||||||
|
**Asset Management Settings**
|
||||||
|
```yaml
|
||||||
|
# markitect.yaml
|
||||||
|
asset_management:
|
||||||
|
enabled: true
|
||||||
|
workspace_path: "./markitect_workspace"
|
||||||
|
shared_assets_path: "./markitect_workspace/shared_assets"
|
||||||
|
packages_path: "./markitect_workspace/packages"
|
||||||
|
|
||||||
|
# Deduplication settings
|
||||||
|
auto_dedupe: true
|
||||||
|
symlink_preferred: true
|
||||||
|
fallback_to_copy: true # Windows compatibility
|
||||||
|
|
||||||
|
# Package settings
|
||||||
|
compression_level: 6
|
||||||
|
include_manifest: true
|
||||||
|
validate_on_create: true
|
||||||
|
|
||||||
|
# Performance settings
|
||||||
|
cache_enabled: true
|
||||||
|
batch_size: 100
|
||||||
|
max_file_size_mb: 50
|
||||||
|
```
|
||||||
|
|
||||||
|
## CLI Command Specifications
|
||||||
|
|
||||||
|
### Asset Commands
|
||||||
|
|
||||||
|
**`markitect asset add`**
|
||||||
|
```bash
|
||||||
|
# Basic usage
|
||||||
|
markitect asset add logo.png ./project_a --name company_logo.png
|
||||||
|
|
||||||
|
# Options
|
||||||
|
--name NAME # Virtual name in document (default: original filename)
|
||||||
|
--document PATH # Target document directory (required)
|
||||||
|
--force # Overwrite existing virtual name
|
||||||
|
--no-symlink # Force file copy instead of symlink
|
||||||
|
```
|
||||||
|
|
||||||
|
**`markitect asset list`**
|
||||||
|
```bash
|
||||||
|
# List all assets
|
||||||
|
markitect asset list
|
||||||
|
|
||||||
|
# Filter by document
|
||||||
|
markitect asset list --document ./project_a
|
||||||
|
|
||||||
|
# Show unused assets
|
||||||
|
markitect asset list --unused
|
||||||
|
|
||||||
|
# Output formats
|
||||||
|
markitect asset list --format json
|
||||||
|
markitect asset list --format table
|
||||||
|
```
|
||||||
|
|
||||||
|
**`markitect asset dedupe`**
|
||||||
|
```bash
|
||||||
|
# Dry run (show what would be deduplicated)
|
||||||
|
markitect asset dedupe --dry-run
|
||||||
|
|
||||||
|
# Execute deduplication
|
||||||
|
markitect asset dedupe
|
||||||
|
|
||||||
|
# Force deduplication of all assets
|
||||||
|
markitect asset dedupe --force
|
||||||
|
```
|
||||||
|
|
||||||
|
### Package Commands
|
||||||
|
|
||||||
|
**`markitect package create`**
|
||||||
|
```bash
|
||||||
|
# Create package from document directory
|
||||||
|
markitect package create ./project_a project_a
|
||||||
|
|
||||||
|
# Options
|
||||||
|
--output PATH # Output directory (default: workspace/packages)
|
||||||
|
--compression LEVEL # ZIP compression level 0-9 (default: 6)
|
||||||
|
--exclude PATTERN # Exclude files matching pattern
|
||||||
|
--include-sources # Include source markdown files
|
||||||
|
```
|
||||||
|
|
||||||
|
**`markitect package extract`**
|
||||||
|
```bash
|
||||||
|
# Extract package to workspace
|
||||||
|
markitect package extract project_a.mdpkg
|
||||||
|
|
||||||
|
# Extract with custom name
|
||||||
|
markitect package extract project_a.mdpkg --name project_a_v2
|
||||||
|
|
||||||
|
# Options
|
||||||
|
--output PATH # Output directory (default: workspace/documents)
|
||||||
|
--overwrite # Overwrite existing directory
|
||||||
|
--no-dedupe # Skip deduplication during extraction
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing Strategy
|
||||||
|
|
||||||
|
### Unit Tests
|
||||||
|
|
||||||
|
**Test Coverage Areas:**
|
||||||
|
- **Asset Registry**: JSON persistence, hash calculations, metadata management
|
||||||
|
- **Deduplicator**: Content hashing, symlink creation, fallback mechanisms
|
||||||
|
- **Packager**: ZIP creation/extraction, manifest handling, asset resolution
|
||||||
|
- **CLI Commands**: Command parsing, error handling, output formatting
|
||||||
|
|
||||||
|
**Test Structure:**
|
||||||
|
```
|
||||||
|
tests/
|
||||||
|
├── test_assets/
|
||||||
|
│ ├── test_registry.py
|
||||||
|
│ ├── test_deduplicator.py
|
||||||
|
│ ├── test_packager.py
|
||||||
|
│ └── test_cli.py
|
||||||
|
├── fixtures/
|
||||||
|
│ ├── test_images/
|
||||||
|
│ ├── test_documents/
|
||||||
|
│ └── test_packages/
|
||||||
|
└── integration/
|
||||||
|
├── test_full_workflow.py
|
||||||
|
└── test_cross_platform.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### Integration Tests
|
||||||
|
|
||||||
|
**Workflow Tests:**
|
||||||
|
1. **Complete Asset Lifecycle**: Add → Dedupe → Package → Extract
|
||||||
|
2. **Cross-Document Sharing**: Multiple docs referencing same assets
|
||||||
|
3. **Package Portability**: Create on one system, extract on another
|
||||||
|
4. **Error Recovery**: Broken symlinks, missing files, corrupted packages
|
||||||
|
|
||||||
|
### Performance Tests
|
||||||
|
|
||||||
|
**Benchmarking Scenarios:**
|
||||||
|
- **Large Asset Libraries**: 1000+ assets, multiple documents
|
||||||
|
- **Batch Processing**: Importing entire directories
|
||||||
|
- **Package Operations**: Creating/extracting large packages
|
||||||
|
- **Deduplication Efficiency**: Storage savings measurement
|
||||||
|
|
||||||
|
## Risk Mitigation
|
||||||
|
|
||||||
|
### Technical Risks
|
||||||
|
|
||||||
|
**Symlink Compatibility**
|
||||||
|
- **Risk**: Symlinks fail on Windows or restricted filesystems
|
||||||
|
- **Mitigation**: Automatic fallback to file copying
|
||||||
|
- **Detection**: Platform detection and permission testing
|
||||||
|
|
||||||
|
**Package Corruption**
|
||||||
|
- **Risk**: ZIP files become corrupted during transfer
|
||||||
|
- **Mitigation**: Built-in validation and checksum verification
|
||||||
|
- **Recovery**: Package repair tools and backup strategies
|
||||||
|
|
||||||
|
**Storage Scalability**
|
||||||
|
- **Risk**: Asset libraries become too large to manage efficiently
|
||||||
|
- **Mitigation**: Lazy loading, pagination, and cleanup tools
|
||||||
|
- **Monitoring**: Storage usage tracking and alerts
|
||||||
|
|
||||||
|
### User Experience Risks
|
||||||
|
|
||||||
|
**Learning Curve**
|
||||||
|
- **Risk**: Users find asset management complex
|
||||||
|
- **Mitigation**: Progressive disclosure, good defaults, clear documentation
|
||||||
|
- **Support**: Interactive tutorials and example workflows
|
||||||
|
|
||||||
|
**Data Loss**
|
||||||
|
- **Risk**: Assets accidentally deleted or corrupted
|
||||||
|
- **Mitigation**: Confirmation prompts, soft deletion, backup recommendations
|
||||||
|
- **Recovery**: Asset history tracking and restore capabilities
|
||||||
|
|
||||||
|
## Success Metrics
|
||||||
|
|
||||||
|
### Technical Metrics
|
||||||
|
- **Storage Efficiency**: 30%+ reduction in duplicate asset storage
|
||||||
|
- **Performance**: Asset operations complete in <100ms for typical workloads
|
||||||
|
- **Reliability**: 99.9%+ success rate for package operations
|
||||||
|
- **Compatibility**: Works on Windows, macOS, Linux
|
||||||
|
|
||||||
|
### User Adoption Metrics
|
||||||
|
- **CLI Usage**: Asset commands represent 10%+ of total markitect usage
|
||||||
|
- **Package Creation**: Users create 5+ packages per month on average
|
||||||
|
- **Error Rates**: <1% of asset operations result in user-visible errors
|
||||||
|
- **Documentation**: Asset management docs have 95%+ user satisfaction
|
||||||
|
|
||||||
|
## Implementation Timeline
|
||||||
|
|
||||||
|
**Week 1-2: Core Module**
|
||||||
|
- [ ] Asset registry implementation
|
||||||
|
- [ ] Deduplication engine with symlinks
|
||||||
|
- [ ] Basic package creation/extraction
|
||||||
|
- [ ] Unit test suite (80%+ coverage)
|
||||||
|
|
||||||
|
**Week 3: CLI Integration**
|
||||||
|
- [ ] Complete CLI command suite
|
||||||
|
- [ ] Integration with main markitect CLI
|
||||||
|
- [ ] Configuration management
|
||||||
|
- [ ] User documentation
|
||||||
|
|
||||||
|
**Week 4-5: Advanced Features**
|
||||||
|
- [ ] Batch processing capabilities
|
||||||
|
- [ ] Database integration
|
||||||
|
- [ ] Performance optimizations
|
||||||
|
- [ ] Integration test suite
|
||||||
|
|
||||||
|
**Week 6: Production Readiness**
|
||||||
|
- [ ] Error handling and recovery
|
||||||
|
- [ ] Cross-platform testing
|
||||||
|
- [ ] Performance benchmarking
|
||||||
|
- [ ] Release preparation
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
### Internal Dependencies
|
||||||
|
- **markitect.database**: Metadata storage integration
|
||||||
|
- **markitect.config_manager**: Configuration management
|
||||||
|
- **markitect.cli**: Command registration and parsing
|
||||||
|
- **markitect.batch_processor**: Bulk operation support
|
||||||
|
|
||||||
|
### External Dependencies
|
||||||
|
- **Click**: CLI framework (existing dependency)
|
||||||
|
- **Pathlib**: Path manipulation (standard library)
|
||||||
|
- **Zipfile**: Package creation (standard library)
|
||||||
|
- **Hashlib**: Content hashing (standard library)
|
||||||
|
- **JSON**: Metadata serialization (standard library)
|
||||||
|
- **OS**: Symlink operations (standard library)
|
||||||
|
|
||||||
|
### Optional Dependencies
|
||||||
|
- **Pillow**: Image processing and optimization
|
||||||
|
- **Send2trash**: Safe file deletion
|
||||||
|
- **Watchdog**: File system monitoring
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
1. **Review and Approval**: Get stakeholder sign-off on this gameplan
|
||||||
|
2. **Environment Setup**: Prepare development environment and test fixtures
|
||||||
|
3. **Phase 1 Kickoff**: Begin core module implementation
|
||||||
|
4. **Continuous Integration**: Set up automated testing pipeline
|
||||||
|
5. **Documentation**: Start user guide and API documentation
|
||||||
|
|
||||||
|
This gameplan provides a comprehensive roadmap for implementing Issue #141 Variant B, ensuring robust asset management capabilities while maintaining compatibility with existing markitect workflows.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Status**: 📋 **Ready for Implementation - Awaiting Approval**
|
||||||
305
examples/BildungsKanonJon
Normal file
305
examples/BildungsKanonJon
Normal file
@@ -0,0 +1,305 @@
|
|||||||
|
Die Zitate stammen jeweils aus den Originaltexten (bzw. bei moderneren Werken aus verlässlichen Übersetzungen), und wo kein wörtliches Zitat möglich war, ist ein sinngemäßes oder typisches Satzfragment verwendet.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# 🕰️ 200 Jahre Bildung
|
||||||
|
## Vom Weltgeist zum Selbstbewusstsein
|
||||||
|
Ein Essay in vier Spiegeln
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Einleitung
|
||||||
|
|
||||||
|
Bildung ist kein Besitz, sondern ein Strom.
|
||||||
|
Sie verändert sich mit der Zeit, weil der Mensch sich verändert.
|
||||||
|
Was gestern als Gipfel der Vernunft galt, erscheint morgen als Anfang des Gefühls.
|
||||||
|
Und jede Generation muss ihre eigene Antwort finden auf dieselbe alte Frage:
|
||||||
|
**Was bedeutet es, ein gebildeter Mensch zu sein?**
|
||||||
|
|
||||||
|
Dieses kleine Heft blickt zurück auf vier Wendepunkte deutscher Bildungsgeschichte –
|
||||||
|
1825, 1925, 1975 und 2007 – und legt daneben das Echo von 2025.
|
||||||
|
Jeder Abschnitt spiegelt nicht nur Bücher, sondern den Geist seiner Epoche.
|
||||||
|
Die Sprache folgt dabei jeweils dem Ton der Zeit, um Nähe spürbar zu machen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 📜 Bildung um 1825
|
||||||
|
## Die Zeit des Weltgeistes und der Seelenbildung
|
||||||
|
|
||||||
|
> „Das Wahre, Gute und Schöne – sie sind eins im Menschen, der sich bildet.“
|
||||||
|
> *(nach Schiller)*
|
||||||
|
|
||||||
|
### Einführung in die Zeit
|
||||||
|
|
||||||
|
Das frühe 19. Jahrhundert war eine Epoche des inneren Aufbruchs.
|
||||||
|
Deutschland war noch kein Staat, aber eine geistige Landschaft.
|
||||||
|
Der junge Mensch strebte nicht nach Reichtum, sondern nach Vollkommenheit.
|
||||||
|
Er las Homer und Kant, ging spazieren wie Rousseau,
|
||||||
|
und glaubte, dass die Welt sich im Spiegel des Geistes ordnen ließe.
|
||||||
|
Bildung hieß damals: **sich selbst gestalten wie ein Kunstwerk.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Bildungskanon um 1825 – und sein Echo 2025
|
||||||
|
|
||||||
|
| Bereich | 1825 | Echo 2025 |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **Mensch & Bildung** | Goethe – *Wilhelm Meisters Lehrjahre* | Ferrante – *Die Geschichte eines neuen Namens* |
|
||||||
|
| **Freiheit & Vernunft** | Schiller – *Über die ästhetische Erziehung des Menschen* | Nussbaum – *Die neue religiöse Intoleranz* |
|
||||||
|
| **Natur & Seele** | Humboldt – *Kosmos* | Rovelli – *Die Ordnung der Zeit* |
|
||||||
|
| **Philosophie & Geist** | Hegel – *Phänomenologie des Geistes* | Metzinger – *The Ego Tunnel* |
|
||||||
|
| **Religion & Zweifel** | Kant – *Religion innerhalb der Grenzen der bloßen Vernunft* | Harari – *Sapiens* |
|
||||||
|
|
||||||
|
#### Goethe – *Wilhelm Meisters Lehrjahre*
|
||||||
|
> „Es ist nicht genug zu wissen, man muß auch anwenden; es ist nicht genug zu wollen, man muß auch tun.“
|
||||||
|
Der erste große Bildungsroman Europas. Goethe entwirft den Menschen als Projekt seiner eigenen Reifung. Nicht Pflicht, sondern Erfahrung formt das Ich – eine Revolution des Denkens.
|
||||||
|
|
||||||
|
#### Schiller – *Über die ästhetische Erziehung des Menschen*
|
||||||
|
> „Der Mensch ist nur da ganz Mensch, wo er spielt.“
|
||||||
|
Ein Manifest für Schönheit als moralische Kraft. Schiller glaubt, dass nur das Schöne den Menschen frei macht, weil es Sinnlichkeit und Vernunft versöhnt.
|
||||||
|
|
||||||
|
#### Humboldt – *Kosmos*
|
||||||
|
> „Alles ist Wechselwirkung.“
|
||||||
|
Ein poetisch-wissenschaftlicher Entwurf der Welt als lebendiges Ganzes. Humboldt denkt Natur als Einheit von Geist, Materie und Empfindung – Wissen mit Seele.
|
||||||
|
|
||||||
|
#### Hegel – *Phänomenologie des Geistes*
|
||||||
|
> „Das Wahre ist das Ganze.“
|
||||||
|
Philosophie als Drama des Bewusstseins. Vom sinnlichen Erleben bis zur Selbstreflexion entfaltet Hegel die Geschichte des Geistes als Selbsterkenntnis des Absoluten.
|
||||||
|
|
||||||
|
#### Kant – *Religion innerhalb der Grenzen der bloßen Vernunft*
|
||||||
|
> „Handle so, daß du die Menschheit jederzeit zugleich als Zweck, niemals bloß als Mittel brauchst.“
|
||||||
|
Kants Versuch, Glauben und Vernunft zu versöhnen. Religion wird zur Ethik, Gott zur Idee moralischer Ordnung – kühl, klar, kompromisslos.
|
||||||
|
|
||||||
|
> Bildung 1825 bedeutete:
|
||||||
|
> Die Welt zu verstehen, indem man sich selbst erkennt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🕯️ Bildung um 1925
|
||||||
|
## Die Zeit zwischen den Kriegen – Geist als Rettung
|
||||||
|
|
||||||
|
> „Wir haben den Glauben an die Dinge verloren – also suchen wir ihn im Wort.“
|
||||||
|
|
||||||
|
### Einführung in die Zeit
|
||||||
|
|
||||||
|
Die Welt war aus den Fugen geraten.
|
||||||
|
Ein Weltkrieg lag hinter Deutschland, Inflation und Zweifel prägten die Jugend.
|
||||||
|
Und doch: Bildung blieb Heiligtum.
|
||||||
|
Man las Goethe und Schiller, um den inneren Halt zu wahren,
|
||||||
|
und schrieb Gedichte, um Ordnung in das Chaos zu bringen.
|
||||||
|
Die Schule war streng, das Denken idealistisch,
|
||||||
|
und in jedem Buch lag die Hoffnung auf eine bessere Menschheit.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Bildungskanon um 1925 – und sein Echo 2025
|
||||||
|
|
||||||
|
| Bereich | 1925 | Echo 2025 |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **Selbstverständnis** | Goethe – *Faust I* | Kehlmann – *Die Vermessung der Welt* |
|
||||||
|
| **Freiheit & Verantwortung** | Schiller – *Wilhelm Tell* | Orwell – *1984* |
|
||||||
|
| **Toleranz & Vernunft** | Lessing – *Nathan der Weise* | Harari – *Homo Deus* |
|
||||||
|
| **Natur & Maß** | Stifter – *Der Nachsommer* | Macfarlane – *Karte der Wildnis* |
|
||||||
|
| **Moral & Gesellschaft** | Fontane – *Effi Briest* | Ferrante – *Meine geniale Freundin* |
|
||||||
|
|
||||||
|
#### Goethe – *Faust I*
|
||||||
|
> „Zwei Seelen wohnen, ach! in meiner Brust.“
|
||||||
|
Das deutsche Urdrama des Strebens. Faust steht zwischen Wissen und Sehnsucht, Wissenschaft und Sinn – Symbol für den modernen Menschen.
|
||||||
|
|
||||||
|
#### Schiller – *Wilhelm Tell*
|
||||||
|
> „Der Starke ist am mächtigsten allein.“
|
||||||
|
Ein Freiheitsstück in Zeiten der Unfreiheit. Tell ist mehr als ein Held – er ist das Gewissen des Volkes gegen die Macht der Tyrannei.
|
||||||
|
|
||||||
|
#### Lessing – *Nathan der Weise*
|
||||||
|
> „Es eifre jeder seiner unbestochnen, von Vorurteilen freien Liebe nach.“
|
||||||
|
Die Ringparabel als ewiges Gleichnis für Toleranz. Vernunft, Glaube und Menschlichkeit verschmelzen in einer Utopie der Verständigung.
|
||||||
|
|
||||||
|
#### Stifter – *Der Nachsommer*
|
||||||
|
> „Die Milde ist das Wahrzeichen des Edlen.“
|
||||||
|
Ein Roman der Mäßigung. Stifter lehrt: Ordnung ist keine Einschränkung, sondern der Raum, in dem Schönheit wächst.
|
||||||
|
|
||||||
|
#### Fontane – *Effi Briest*
|
||||||
|
> „Das ist ein zu weites Feld.“
|
||||||
|
Ein feines, stilles Meisterwerk über gesellschaftlichen Zwang und menschliche Schwäche. Effi wird zum Symbol weiblicher Verletzlichkeit in der Enge bürgerlicher Moral.
|
||||||
|
|
||||||
|
> Bildung 1925 bedeutete:
|
||||||
|
> Haltung zu bewahren, wenn die Welt sich wandelt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🌿 Bildung um 1975
|
||||||
|
## Die Zeit der Befreiung – Wissen als Aufbruch
|
||||||
|
|
||||||
|
> „Die Kinder der Blumen werden die Lehrer der Zweifel.“
|
||||||
|
|
||||||
|
### Einführung in die Zeit
|
||||||
|
|
||||||
|
Die 1970er waren laut und leise zugleich.
|
||||||
|
Musik, Protest, Philosophie – alles war Aufbruch.
|
||||||
|
Ein 18-Jähriger las Hesse, Fromm oder Böll,
|
||||||
|
suchte Wahrheit in Indien, und Frieden auf der Straße.
|
||||||
|
Man wollte die Welt verändern, aber auch sich selbst verstehen.
|
||||||
|
Der Geist der Bildung war rebellisch, poetisch,
|
||||||
|
und manchmal erschöpft von zu viel Idealismus.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Bildungskanon um 1975 – und sein Echo 2025
|
||||||
|
|
||||||
|
| Bereich | 1975 | Echo 2025 |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **Gesellschaft & Rebellion** | Hesse – *Siddhartha* | Bregman – *Im Grunde gut* |
|
||||||
|
| **Politik & Verantwortung** | Böll – *Katharina Blum* | Göpel – *Unsere Welt neu denken* |
|
||||||
|
| **Umwelt & Zukunft** | Club of Rome – *Grenzen des Wachstums* | Foer – *Wir sind das Klima* |
|
||||||
|
| **Philosophie & Bewusstsein** | Fromm – *Haben oder Sein* | Han – *Die Errettung des Schönen* |
|
||||||
|
| **Jugend & Freiheit** | Kerouac – *On the Road* | Vuong – *Auf Erden sind wir kurz grandios* |
|
||||||
|
|
||||||
|
#### Hesse – *Siddhartha*
|
||||||
|
> „Wissen kann man mitteilen, Weisheit aber nicht.“
|
||||||
|
Ein spiritueller Roman über Selbstfindung und Loslassen. Der Protagonist sucht nicht Gott, sondern Bewusstsein – ein Echo fernöstlicher Weisheit in westlicher Sprache.
|
||||||
|
|
||||||
|
#### Böll – *Die verlorene Ehre der Katharina Blum*
|
||||||
|
> „Wie Gewalt entstehen und wohin sie führen kann.“
|
||||||
|
Ein Spiegel der deutschen Nachkriegszeit. Böll zeigt, wie Hetze und Angst Wahrheit zerstören. Eine Mahnung an jede Generation der Medien.
|
||||||
|
|
||||||
|
#### Club of Rome – *Die Grenzen des Wachstums*
|
||||||
|
> „Wenn die gegenwärtigen Trends anhalten, stößt das Wachstum an seine Grenzen.“
|
||||||
|
Der erste globale Weckruf: Wirtschaft hat planetare Folgen. Wissenschaft als moralische Stimme – ein Buch, das den Begriff „Nachhaltigkeit“ vorbereitete.
|
||||||
|
|
||||||
|
#### Fromm – *Haben oder Sein*
|
||||||
|
> „Nicht der Besitz macht den Menschen aus, sondern das, was er ist.“
|
||||||
|
Philosophie des Menschseins gegen Konsum. Fromm fragt: Besitzen wir die Dinge – oder besitzen sie uns?
|
||||||
|
|
||||||
|
#### Kerouac – *On the Road*
|
||||||
|
> „The only people for me are the mad ones.“
|
||||||
|
Freiheit auf Asphalt. Eine Hymne an das Unterwegssein – körperlich, geistig, existenziell. Der Mythos der Suche ohne Ziel.
|
||||||
|
|
||||||
|
> Bildung 1975 bedeutete:
|
||||||
|
> Die Welt zu befragen – nicht zu erobern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 💾 Bildung um 2007
|
||||||
|
## Die Zeit der Vernetzung – Denken im Wandel
|
||||||
|
|
||||||
|
> „Alles Wissen ist da – aber was sollen wir damit anfangen?“
|
||||||
|
|
||||||
|
### Einführung in die Zeit
|
||||||
|
|
||||||
|
Das Internet wurde erwachsen, die Welt kleiner, die Zukunft größer.
|
||||||
|
Ein 18-Jähriger 2007 lebte zwischen Facebook, Klimawandel und Bologna-Reform.
|
||||||
|
Er suchte Sinn zwischen Algorithmen und Achtsamkeit,
|
||||||
|
las Kehlmann, Coelho, Hosseini, und sah in Filmen wie *Matrix* oder *V for Vendetta*
|
||||||
|
den Spiegel einer Welt, die sich selbst erfand.
|
||||||
|
Bildung bedeutete: **orientieren, nicht verlieren.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Bildungskanon um 2007 – und sein Echo 2025
|
||||||
|
|
||||||
|
| Bereich | 2007 | Echo 2025 |
|
||||||
|
|:--|:--|:--|
|
||||||
|
| **Identität & Erwachsenwerden** | Kehlmann – *Die Vermessung der Welt* | Rooney – *Normale Menschen* |
|
||||||
|
| **Globalisierung & Moral** | Hosseini – *Drachenläufer* | Shafak – *The Island of Missing Trees* |
|
||||||
|
| **Technik & Überwachung** | Orwell – *1984* (revival) | Eggers – *The Circle* |
|
||||||
|
| **Gesellschaft & Klasse** | Franzen – *Die Korrekturen* | Robinson – *The Ministry for the Future* |
|
||||||
|
| **Umwelt & Verantwortung** | Gore – *An Inconvenient Truth* | Thunberg – *Das Klima-Buch* |
|
||||||
|
|
||||||
|
#### Kehlmann – *Die Vermessung der Welt*
|
||||||
|
> „Zahlen sind die einzige Sprache, die Gott versteht.“
|
||||||
|
Ein spielerischer Dialog zwischen Vernunft und Genie. Humboldt und Gauß verkörpern zwei Wege des Wissens – präzise, ironisch, modern.
|
||||||
|
|
||||||
|
#### Hosseini – *Drachenläufer*
|
||||||
|
> „Für dich, tausendmal über.“
|
||||||
|
Eine Geschichte über Schuld, Freundschaft und Erlösung. Der Blick Afghanistans in westliche Herzen – Empathie als Brücke zwischen Welten.
|
||||||
|
|
||||||
|
#### Orwell – *1984*
|
||||||
|
> „Big Brother is watching you.“
|
||||||
|
Eine alte Warnung, neu verstanden. Kontrolle ist nicht mehr staatlich, sondern sozial. Das Buch bleibt prophetisch – in jeder Generation.
|
||||||
|
|
||||||
|
#### Franzen – *Die Korrekturen*
|
||||||
|
> „Die Familie ist das erste System, das man begreift – und das letzte, das man verlässt.“
|
||||||
|
Familiendrama als Spiegel globaler Entfremdung. Intime Beziehungen zeigen den Zustand der Gesellschaft. Psychologie statt Politik.
|
||||||
|
|
||||||
|
#### Gore – *An Inconvenient Truth*
|
||||||
|
> „Our ability to live is what’s at stake.“
|
||||||
|
Die Wissenschaft als moralische Pflicht. Das Buch (und der Film) prägten eine Generation, die Klima als Gewissensfrage begreift.
|
||||||
|
|
||||||
|
> Bildung 2007 bedeutete:
|
||||||
|
> Orientierung im Informationsmeer.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🔭 Bildung um 2025
|
||||||
|
## Das Echo – Bewusstsein als Bildung
|
||||||
|
|
||||||
|
> „Wissen ist kein Turm, sondern ein Netz.“
|
||||||
|
|
||||||
|
### Einführung in die Gegenwart
|
||||||
|
|
||||||
|
Heute leben wir in einem Zeitalter des Überflusses an Information
|
||||||
|
und des Mangels an Bedeutung.
|
||||||
|
Der gebildete Mensch von morgen ist keiner, der alles weiß,
|
||||||
|
sondern einer, der weiß, **wie man Bedeutung webt**.
|
||||||
|
Bildung ist wieder innerlich geworden –
|
||||||
|
nicht Rückzug, sondern Resonanz.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Die Gegenwart im Spiegel
|
||||||
|
|
||||||
|
| Leitmotiv | Beispielhafte Stimmen |
|
||||||
|
|:--|:--|
|
||||||
|
| **Verantwortung und Klima** | Greta Thunberg, Maja Göpel, Kim Stanley Robinson |
|
||||||
|
| **Bewusstsein und KI** | Ted Chiang, Thomas Metzinger, Kate Crawford |
|
||||||
|
| **Erinnerung und Wahrheit** | Nora Krug, Rebecca Solnit |
|
||||||
|
| **Sprache und Poesie** | Ocean Vuong, Amanda Gorman |
|
||||||
|
| **Ethik und Selbstgestaltung** | Byung-Chul Han, Rutger Bregman, Martha Nussbaum |
|
||||||
|
|
||||||
|
#### Greta Thunberg – *Das Klima-Buch*
|
||||||
|
> „Ich will, dass ihr handelt, als würde euer Haus brennen. Denn es brennt.“
|
||||||
|
Ein kollektives Manifest. Bildung als globale Aufgabe: verstehen, fühlen, handeln.
|
||||||
|
|
||||||
|
#### Ted Chiang – *Exhalation*
|
||||||
|
> „Understanding is the only kind of compassion we can show.“
|
||||||
|
Philosophie in Form von Science Fiction. Chiang denkt Maschinen wie Menschen – und Menschen wie Möglichkeiten.
|
||||||
|
|
||||||
|
#### Nora Krug – *Heimat*
|
||||||
|
> „Man kann nur Verantwortung übernehmen für das, was man versteht.“
|
||||||
|
Erinnerung als Mut. Eine illustrierte Spurensuche, die Geschichte in persönliche Verantwortung verwandelt.
|
||||||
|
|
||||||
|
#### Ocean Vuong – *Time Is a Mother*
|
||||||
|
> „Let me begin again.“
|
||||||
|
Poesie als zärtliche Wahrheitsform. Seine Sprache heilt das, was Logik nicht greifen kann.
|
||||||
|
|
||||||
|
#### Byung-Chul Han – *Die Errettung des Schönen*
|
||||||
|
> „Im Glatten verschwindet der Schmerz.“
|
||||||
|
Ein Essay über Stille, Langsamkeit und das Verlorene. Bildung wird wieder Kontemplation – gegen die Müdigkeit des Dauerwissens.
|
||||||
|
|
||||||
|
> Bildung 2025 bedeutet:
|
||||||
|
> Bewusst handeln in einer vernetzten Welt.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🪶 Epilog
|
||||||
|
## Vom Weltgeist zum Selbstbewusstsein
|
||||||
|
|
||||||
|
1825 suchte der Mensch sich selbst im Kosmos.
|
||||||
|
1925 suchte er Halt im Chaos.
|
||||||
|
1975 suchte er Freiheit in der Gemeinschaft.
|
||||||
|
2007 suchte er Sinn im System.
|
||||||
|
2025 sucht er Bewusstsein im Ganzen.
|
||||||
|
|
||||||
|
> Bildung war immer die Kunst, sich selbst zu erkennen –
|
||||||
|
> nur das Licht, in dem man es tut, verändert sich.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*(Ende des Hefts)*
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
1
examples/demo_hash_store/demo_inputs/company_logo.png
Normal file
1
examples/demo_hash_store/demo_inputs/company_logo.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_LOGO
|
||||||
1
examples/demo_hash_store/demo_inputs/diagram.png
Normal file
1
examples/demo_hash_store/demo_inputs/diagram.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_DIAGRAM
|
||||||
1
examples/demo_hash_store/demo_inputs/logo.png
Normal file
1
examples/demo_hash_store/demo_inputs/logo.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_LOGO
|
||||||
BIN
examples/demo_hash_store/metadata.db
Normal file
BIN
examples/demo_hash_store/metadata.db
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_LOGO
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_DIAGRAM
|
||||||
1
examples/demo_workspace/demo_assets/company_logo.png
Normal file
1
examples/demo_workspace/demo_assets/company_logo.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_LOGO
|
||||||
1
examples/demo_workspace/demo_assets/diagram.png
Normal file
1
examples/demo_workspace/demo_assets/diagram.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_DIAGRAM
|
||||||
1
examples/demo_workspace/demo_assets/logo.png
Normal file
1
examples/demo_workspace/demo_assets/logo.png
Normal file
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_LOGO
|
||||||
1
examples/demo_workspace/documents/project_a/assets/diagram.png
Symbolic link
1
examples/demo_workspace/documents/project_a/assets/diagram.png
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../shared_assets/images/54f88ec7aa8570d4ad655943d36f5db47021501baeac8ceeb3b726157de6ebf5.png
|
||||||
1
examples/demo_workspace/documents/project_a/assets/logo.png
Symbolic link
1
examples/demo_workspace/documents/project_a/assets/logo.png
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../shared_assets/images/25965aaacc4f361784870ed2624f0178ea7c3cf33961ffb73ef13bafed7cd28c.png
|
||||||
6
examples/demo_workspace/documents/project_a/index.md
Normal file
6
examples/demo_workspace/documents/project_a/index.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Project A
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
This is Project A documentation.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
../../../shared_assets/images/25965aaacc4f361784870ed2624f0178ea7c3cf33961ffb73ef13bafed7cd28c.png
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
../../../shared_assets/images/54f88ec7aa8570d4ad655943d36f5db47021501baeac8ceeb3b726157de6ebf5.png
|
||||||
6
examples/demo_workspace/documents/project_b/index.md
Normal file
6
examples/demo_workspace/documents/project_b/index.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Project B
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
This is Project B documentation.
|
||||||
BIN
examples/demo_workspace/packages/project_a.mdpkg
Normal file
BIN
examples/demo_workspace/packages/project_a.mdpkg
Normal file
Binary file not shown.
BIN
examples/demo_workspace/packages/project_b.mdpkg
Normal file
BIN
examples/demo_workspace/packages/project_b.mdpkg
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_LOGO
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
PNG_IMAGE_CONTENT_DIAGRAM
|
||||||
21
examples/demo_workspace/shared_assets/registry.json
Normal file
21
examples/demo_workspace/shared_assets/registry.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"assets": {
|
||||||
|
"25965aaacc4f361784870ed2624f0178ea7c3cf33961ffb73ef13bafed7cd28c": {
|
||||||
|
"original_name": "logo.png",
|
||||||
|
"size": 22,
|
||||||
|
"mime_type": "image/png",
|
||||||
|
"extension": ".png",
|
||||||
|
"created": "2025-10-08T01:50:01.099764",
|
||||||
|
"stored_path": "images/25965aaacc4f361784870ed2624f0178ea7c3cf33961ffb73ef13bafed7cd28c.png"
|
||||||
|
},
|
||||||
|
"54f88ec7aa8570d4ad655943d36f5db47021501baeac8ceeb3b726157de6ebf5": {
|
||||||
|
"original_name": "diagram.png",
|
||||||
|
"size": 25,
|
||||||
|
"mime_type": "image/png",
|
||||||
|
"extension": ".png",
|
||||||
|
"created": "2025-10-08T01:50:01.104199",
|
||||||
|
"stored_path": "images/54f88ec7aa8570d4ad655943d36f5db47021501baeac8ceeb3b726157de6ebf5.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"version": "1.0"
|
||||||
|
}
|
||||||
2
wiki
2
wiki
Submodule wiki updated: 0ff5843ab2...8818df03d3
Reference in New Issue
Block a user