Skip to content

Commit 4c0ac8d

Browse files
committed
Logo updates
1 parent c299794 commit 4c0ac8d

File tree

5 files changed

+51
-5
lines changed

5 files changed

+51
-5
lines changed

core/src/export.rs

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,27 @@ const ASSETS: &[(&str, &[u8])] = &[
2828
("android-chrome-192x192.png", include_bytes!("../templates/assets/android-chrome-192x192.png")),
2929
];
3030

31+
/// Page descriptions for HTML export pages
32+
const PAGE_DESCRIPTION_CONTAINMENT: &str = r#"# Containment
33+
34+
The containment view shows the physical organization of the model—how elements are structured within folders and files. This hierarchical view reflects the file system layout and helps navigate to specific specification documents. In MBSE, containment represents where model elements are stored, separate from their logical relationships."#;
35+
36+
const PAGE_DESCRIPTION_MODEL: &str = r#"# Model
37+
38+
The model view displays the logical structure starting from root requirements—requirements without parent derivations. Each element shows its complete relation tree: derived child requirements, verifications, and implementations. This follows MBSE principles where stakeholder needs flow down through requirement hierarchies to verifiable, implementable specifications."#;
39+
40+
const PAGE_DESCRIPTION_WHOLE_MODEL: &str = r#"# Whole Model
41+
42+
This diagram visualizes the complete model as a single interconnected graph showing all elements and their relationships. Hover over any node to highlight its connected elements—ancestors (upstream) and descendants (downstream). Use this bird's-eye view to understand the overall requirements architecture and identify traceability chains across the model."#;
43+
44+
const PAGE_DESCRIPTION_TRACES: &str = r#"# Verification Traces
45+
46+
Verification traces show upward traceability—how each verification connects through the requirement hierarchy to root requirements. Each trace diagram starts from a verification and follows derivedFrom relations upward, marking which requirements along the path are directly verified. This view helps identify coverage gaps and detect redundant verify relations."#;
47+
48+
const PAGE_DESCRIPTION_COVERAGE: &str = r#"# Verification Coverage
49+
50+
Coverage analysis focuses on leaf requirements—the most specific requirements that don't derive other requirements. These represent implementable specifications that should be verified. The report shows verified vs. unverified percentages, broken down by file and type, helping identify gaps in verification coverage across the model."#;
51+
3152
/// Copies assets folder to output directory
3253
fn copy_assets_folder(output_dir: &Path) -> Result<(), ReqvireError> {
3354
let assets_dir = output_dir.join("assets");
@@ -311,12 +332,22 @@ pub fn generate_artifacts_in_temp(
311332
false, // Markdown output
312333
"TD" // Top-down diagrams for HTML export
313334
)?;
314-
filesystem::write_file("model.md", model_report.as_bytes())?;
335+
let model_content = format!(
336+
"{}\n\n{}",
337+
PAGE_DESCRIPTION_MODEL,
338+
model_report
339+
);
340+
filesystem::write_file("model.md", model_content.as_bytes())?;
315341

316342
// Generate whole model diagram (all elements and relations)
317343
info!("Generating whole-model.md...");
318344
let whole_model_mermaid = crate::diagrams::generate_model_diagram(&temp_model_manager.graph_registry, None)?;
319-
filesystem::write_file("whole-model.md", whole_model_mermaid.as_bytes())?;
345+
let whole_model_content = format!(
346+
"{}\n\n{}",
347+
PAGE_DESCRIPTION_WHOLE_MODEL,
348+
whole_model_mermaid
349+
);
350+
filesystem::write_file("whole-model.md", whole_model_content.as_bytes())?;
320351

321352
info!("Generating traces.md...");
322353
let trace_generator = crate::verification_trace::VerificationTraceGenerator::new(
@@ -326,16 +357,31 @@ pub fn generate_artifacts_in_temp(
326357
);
327358
let trace_report = trace_generator.generate();
328359
let traces_markdown = trace_generator.generate_markdown(&trace_report);
329-
filesystem::write_file("traces.md", traces_markdown.as_bytes())?;
360+
let traces_content = format!(
361+
"{}\n\n{}",
362+
PAGE_DESCRIPTION_TRACES,
363+
traces_markdown
364+
);
365+
filesystem::write_file("traces.md", traces_content.as_bytes())?;
330366

331367
info!("Generating coverage.md...");
332368
let coverage_report = crate::report_coverage::generate_coverage_report(&temp_model_manager.graph_registry);
333369
let coverage_text = coverage_report.format_text();
334-
filesystem::write_file("coverage.md", coverage_text.as_bytes())?;
370+
let coverage_content = format!(
371+
"{}\n\n{}",
372+
PAGE_DESCRIPTION_COVERAGE,
373+
coverage_text
374+
);
375+
filesystem::write_file("coverage.md", coverage_content.as_bytes())?;
335376

336377
info!("Generating containment.md...");
337378
let containment_diagram = crate::diagrams::generate_containment_diagram(&temp_model_manager.graph_registry, false)?;
338-
filesystem::write_file("containment.md", containment_diagram.as_bytes())?;
379+
let containment_content = format!(
380+
"{}\n\n{}",
381+
PAGE_DESCRIPTION_CONTAINMENT,
382+
containment_diagram
383+
);
384+
filesystem::write_file("containment.md", containment_content.as_bytes())?;
339385

340386
// Step 6: Convert markdown to HTML
341387
info!("Converting markdown to HTML...");
-4.16 KB
Loading
-4.06 KB
Loading

core/templates/assets/favicon.ico

-5.25 KB
Binary file not shown.

core/templates/assets/logo.png

-4.65 KB
Loading

0 commit comments

Comments
 (0)