Code reference detail
html_utils.rs
crates/reqlan-export/src/html_utils.rs
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| html_export | done | `@reqlan/analytical` builds documentation as HTML from the requirement graph ( ["./export.rq".export_pipeline], [analysis_scope] ). Html export should render ideas, attributes, references, and navigable structure suitable for sharing. Pipeline: `NativeAnalysisApi.exportHtml` / `AnalysisRuntime.export` → `reqlan-export` snapshot ( `build_export_snapshot` ) → multi-file static site ( `write_html_export` ). Single-file mode remains optional via [html_export_runtime_modes]. Interactive graph / search JS stays bundled static assets ( [html_export_graph_layout] ), not a second writer ( ["./rust_port.rq".export_rust] ). Thin hosts: extension UI ( ["../extension/export/export.rq".export_webview], ["../extension/export/html-export.rq".html_export_form], ["../extension/export/export.rq".export_html] ) and CLI ( `reqlan export` / ["../cli/cli_package.rq".commands] ). Export is scoped to a selected ["../bases/base.rq".base] ( not a merged multi-base workspace graph ). [html_export_multi_file] [html_export_internal_links] [html_export_idea_tooltips] [html_export_layout_cards] [html_export_heading_tooltips] [html_export_table_columns] [html_export_search] [html_export_list_views] [html_export_overview_links] [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_print_idea_cards] [html_export_print_body_whitespace] [html_export_print_in_page_anchors] [html_export_print_all_attributes] [html_export_print_button] [html_export_print_order_by] [html_export_runtime_modes] [html_export_scrollable_lists] [html_export_header_link] [html_export_url_base] [html_export_katz_column] | 0.201 | |
| html_export_code_reference_pages | Html export should generate dedicated pages for outbound file_reference targets and inbound comment_link code files 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. Comment-linked files: ["../indexer/indexer.rq".index_code_files]. | 0.151 | ||
| 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. Hosting-file linked nodes ( ["../extension/workspace-summary/ideas_summary/graphical_graph.rq".file_treatment_toggle] linked mode ) prefer `hostFilePageUrl` stamped during graph URL enrichment ( file / code-file page for the idea's `fileUri` ), falling back to a member idea `pageUrl` when file pages are disabled. | 0.117 | ||
| html_export_idea_tooltips | done | A link to an idea must show a tooltip when the pointer or keyboard focus rests on the link. The tooltip must show the idea name, the source file, and the idea body text. The tooltip must show the status when the idea has a status. The tooltip must be a styled panel. The tooltip must not use the browser title text. The tooltip must stay inside the viewport. An unresolved reference must not show an idea tooltip. Section and card heading tips follow [html_export_heading_tooltips]. | 0.099 | |
| html_export_list_views | Html export should provide searchable list views for ideas, files, code files, references, clusters, and attributes. List views should preserve the usability of the current ideas summary tables with counts, sorting, filters, and quick navigation. Every interactive table column should be sortable by header click and filterable with a per-column filter, in addition to any page-level search bar. Navigable facet cells in those tables ( status, tags, paths, attribute values, cluster labels / kinds ) should be links to the matching detail page or to a list page with the matching column filter applied via [html_export_overview_links]. Long lists that sit above other page content follow [html_export_scrollable_lists]. The ideas index count columns follow [html_export_ideas_ref_columns]. Column hide, resize, and selector chrome follow [html_export_table_columns]. [html_export_ideas_ref_columns] [html_export_table_columns] [html_export_attributes_index] [html_export_file_pages] [html_export_code_reference_pages] [html_export_scrollable_lists] [html_export_overview_links] | 0.121 | ||
| html_export_overview_links | done | The interactive overview page status rollup, tags rollup, and highlighted clusters must be interactive navigation, not plain labels. Status and tag rollup entries should open the matching status / tag cluster page when [html_export_cluster_pages] is enabled; otherwise they should open the ideas list with the Status or Tags column filter seeded from the rollup key. Highlighted clusters should open the matching cluster page ( or the clusters index when cluster pages are disabled ). List pages must honour URL query parameters that seed per-column filters ( for example `ideas.html?status=todo` or `ideas.html?tags=export` ) so overview and in-table facet links land with the filter already applied. Query keys match stable `data-filter-key` values on table headers; filter values use the same display labels as the rollup ( including Not present / Empty ). Cross-refs [html_export_list_views], [html_export_cluster_pages], [html_export_internal_links]. | 0.103 | |
| html_export_print_all_attributes | done | Printable report idea cards and per-idea printable sheets must show every declared attribute for the idea, not only status ( or status + tags ). Attribute values that contain idea refs follow the link rules of the hosting print surface ( [html_export_print_in_page_anchors] on the report page ). Cross-refs [html_export_printable_pages], [html_export_idea_pages]. | 0.110 | |
| html_export_print_in_page_anchors | done | On the printable report page, each idea card has a stable html `id` derived from the idea identity. Cross-idea links rendered on that page ( title links and inline idea refs in summaries / attributes ) must resolve to same-page `#` fragment urls targeting those ids, not separate idea detail pages. When browsed with the sticky site topbar, fragment navigation must leave the target card fully visible below the header ( scroll padding / scroll-margin ), not clipped behind it. Aligns with stable in-page anchors in [html_export_internal_links]. Cross-refs [html_export_printable_pages], [html_export_print_idea_cards]. | 0.145 | |
| html_export_printable_pages | Html export should provide static printable pages alongside the interactive site. Print pages should not depend on the interactive javascript bundle. Status and tags are nullable: when absent, printable sheets must omit those fields rather than inventing placeholders such as unspecified or empty dashes. When print pages are browsed in interactive runtime mode, long lists with content below them follow [html_export_scrollable_lists]. Idea cards on the printable report follow [html_export_print_idea_cards], [html_export_print_in_page_anchors], [html_export_print_all_attributes], and [html_export_print_button]. Stored idea body spaces on print pages follow [html_export_print_body_whitespace]. Ordering of cards on the printable report is tracked by [html_export_print_order_by]. | 0.174 | ||
| 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/site.rq".spec_html_export]. Often paired with [html_export_header_link] when the export is mounted under a parent static site. | 0.259 | |
| graph_design | The graph should show nodes for ideas and files and edges for references. Used by Ideas Summary, activity-bar minigraph, and export previews. | 0.040 | ||
| 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 ["../../../crates/reqlan-export/assets/app.js"]. | 0.134 | |
| attribute_namespacing | done | A bracket link `[idea.attribute]` targets one attribute of that idea. The first name is the idea name. The second name is the attribute name. The grammar types that name as an attribute or an idea declaration. `[attribute_namespacing.example]` targets the `example` attribute of this idea. The form `[ideaset.member]` still targets an ideaset member. See [references_to_subidea]. The editor opens the attribute when the first name is an idea. The editor reports an error when that idea has no attribute with the second name. The link target is only that attribute on that idea. HTML export uses the same link form. The export link opens that attribute on the idea page. See [attribute_namespacing.example]. Related: [reference_brackets], [attribute_marker], ["../core_analysis/html_export.rq".html_export_internal_links]. | 0.129 | |
| file_suffix | Reqlan requirement documents use the. rq file suffix. | 0.052 |
Reference labels
"../../../crates/reqlan-export/src/html_utils.rs", "../../crates/reqlan-export/src/html_utils.rs", ../../../crates/reqlan-export/src/html_utils.rs, ../../crates/reqlan-export/src/html_utils.rs