Module: Lutaml::UmlRepository::StaticSite
- Defined in:
- lib/lutaml/uml_repository/static_site.rb,
lib/lutaml/uml_repository/static_site/generator.rb,
lib/lutaml/uml_repository/static_site/id_generator.rb,
lib/lutaml/uml_repository/static_site/configuration.rb,
lib/lutaml/uml_repository/static_site/data_transformer.rb,
lib/lutaml/uml_repository/static_site/search_index_builder.rb
Overview
Static Site generation for UML model browsing.
Provides a complete SPA generator using:
-
Liquid templates
-
Alpine.js for reactivity
-
lunr.js for client-side search
-
Modern CSS (Grid/Flexbox)
-
External YAML configuration
Defined Under Namespace
Classes: Configuration, DataTransformer, Generator, IDGenerator, SearchIndexBuilder
Class Method Summary collapse
-
.build_search_index(repository, options = {}) ⇒ Hash
Build search index from repository.
-
.configuration(config_path = nil) ⇒ Configuration
Load configuration.
-
.generate(repository, options = {}) ⇒ String
Generate a static site from a repository.
-
.transform_data(repository, options = {}) ⇒ Hash
Transform repository data to JSON.
Class Method Details
.build_search_index(repository, options = {}) ⇒ Hash
Build search index from repository
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/lutaml/uml_repository/static_site.rb', line 67 def build_search_index(repository, = {}) config = [:config] || Configuration.load search_opts = { fields: config.search&.fields, document_types: config.search&.document_types, stop_words: config.search&.stop_words, }.merge() builder = SearchIndexBuilder.new(repository, search_opts) builder.build end |
.configuration(config_path = nil) ⇒ Configuration
Load configuration
82 83 84 |
# File 'lib/lutaml/uml_repository/static_site.rb', line 82 def configuration(config_path = nil) Configuration.load(config_path) end |
.generate(repository, options = {}) ⇒ String
Generate a static site from a repository
(:single_file or :multi_file)
45 46 47 48 |
# File 'lib/lutaml/uml_repository/static_site.rb', line 45 def generate(repository, = {}) generator = Generator.new(repository, ) generator.generate end |
.transform_data(repository, options = {}) ⇒ Hash
Transform repository data to JSON
55 56 57 58 59 60 |
# File 'lib/lutaml/uml_repository/static_site.rb', line 55 def transform_data(repository, = {}) config = [:config] || Configuration.load transformer_opts = config..merge() transformer = DataTransformer.new(repository, transformer_opts) transformer.transform end |