Code reference detail
html-export-utils.ts
packages/analytical/src/export/html-export-utils.ts
| Idea | Status | Tags | Summary |
|---|---|---|---|
| html_export | The extension should support building documentation as html from the requirement graph. Html export should render ideas, attributes, references, and navigable structure suitable for sharing. Core export pipeline lives in `@reqlan/analytical` ( `exportHtml` / `AnalysisApi.exportHtml` ); the extension command palette and CLI ( `reqlan export` ) are thin hosts. A command palette action ( and the Ideas Summary link ) should open ["./features-export.rq".export_webview] with HTML selected and export requirements to html as a multi-file static site ( single-file mode remains optional via [html_export_runtime_modes] ). HTML-specific form fields live under [html_export_form] within that general export webview. [html_export_form] [html_export_multi_file] [html_export_internal_links] [html_export_search] [html_export_list_views] [html_export_idea_pages] [html_export_file_pages] [html_export_code_reference_pages] [html_export_cluster_pages] [html_export_graph_page] [html_export_attributes_index] [html_export_attribute_pages] [html_export_printable_pages] [html_export_runtime_modes] [html_export_scrollable_lists] [html_export_header_link] [html_export_url_base] | ||
| html_export_code_reference_pages | Html export should generate dedicated pages for outbound file_reference targets that are not idea-hosting reqlan files already covered by [html_export_file_pages]. Code-file pages should list referencing ideas and reference labels, and participate in search and navigation. Emission defaults on and is controllable via includeCodeFilePages so this page family can be flagged in or out later. Outbound reference path cells and graph external file nodes should link to these pages when enabled. | ||
| html_export_graph_links | Graph node hrefs must resolve to idea pages from every export page depth, including nested idea, file, and cluster pages. Node urls should be export-root-relative so path segments such as ideas / are not dropped when resolving from nested pages. When [html_export_url_base] is set, runtime resolution of those urls must honour the mount prefix ( same contract as page and asset hrefs ). External file nodes should resolve to [html_export_file_pages] or [html_export_code_reference_pages] when those page families are enabled. | ||
| html_export_url_base | done | Html export should accept an optional urlBase mount prefix ( for example `/spec` or `/reqlan/spec` ). When set, page and asset hrefs must be root-relative under that prefix so static hosts resolve correctly whether the directory URL includes a trailing slash. When omitted, exports keep document-relative hrefs suitable for local folder browsing. Applies across [html_export_internal_links] and [html_export_graph_links]; site embed consumption: ["../../site/reqs/core.rq".spec_html_export]. Often paired with [html_export_header_link] when the export is mounted under a parent static site. | |
| graph_library | Reusable cytoscape-based graph visualization library for force-directed and compound graphs. Provides a mount → sync slice → layout → optional live physics → destroy lifecycle with a simplified API. Implementation lives in ["../../../packages/extension/webviews/shared/graph/graph-cytoscape.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-controller.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-elements.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-interactions.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-highlight.ts"], ["../../../packages/extension/webviews/shared/graph/graph-physics.ts"], ["../../../packages/extension/webviews/shared/graph/graph-groups.ts"], and ["../../../packages/extension/webviews/shared/graph/graph-theme.ts"]. Ideas Summary re-exports the shared modules from ["../../../packages/extension/webviews/ideas-summary/lib/"] for backward-compatible import paths. Consumers pass a node / edge slice and sync options; the library owns the cytoscape instance, diffing, layout runs, and optional continuous physics. | ||
| graph_status_tag_filters | done | Status and tag graph filters are searchable checkbox dropdowns ( still a dropdown trigger; multi-select via checkboxes; OR within each field ). They must distinguish attribute absence from an empty declaration and from a literal unspecified value: - Not present — attribute key absent ( no `@status` / no `@tags` ) - Empty — attribute declared with no value ( `@status`, `@tags`, `@status ""`, bare flag ) - unspecified — literal authored value " unspecified " Do not invent unspecified for missing attributes in rollups, clusters, or filter options. Special options render differently from concrete values ( italic muted Not present; info-tint Empty; warning-tint unspecified ). Shared helpers live in ["../../../packages/analytical/src/core/filter-specials.ts"]. Surfaces: Ideas Summary SearchableCheckboxDropdown; HTML export SCD in ["../../../packages/analytical/src/export/html-export-assets.ts"]. |
Reference labels
../../../packages/analytical/src/export/html-export-utils.ts, ../../packages/analytical/src/export/html-export-utils.ts