generated from coulomb/repo-seed
profile drill-down/source-link preservation
This commit is contained in:
@@ -927,11 +927,11 @@ def render_ability_map(ability_map: dict) -> str:
|
||||
capabilities = []
|
||||
for capability in ability["capabilities"]:
|
||||
features = "".join(
|
||||
f'<li>{escape(feature["name"])} <span class="pill">{escape(feature["type"])}</span> <span class="source">{escape(feature["location"])}</span></li>'
|
||||
render_approved_feature(feature)
|
||||
for feature in capability["features"]
|
||||
)
|
||||
evidence = "".join(
|
||||
f'<li>{escape(item["type"])} <span class="pill">{escape(item["strength"])}</span> <span class="source">{escape(item["reference"])}</span></li>'
|
||||
render_approved_evidence(item)
|
||||
for item in capability["evidence"]
|
||||
)
|
||||
capabilities.append(
|
||||
@@ -955,6 +955,28 @@ def render_ability_map(ability_map: dict) -> str:
|
||||
return f'<div class="tree"><ul>{"".join(items)}</ul></div>'
|
||||
|
||||
|
||||
def render_approved_feature(feature: dict) -> str:
|
||||
return f"""
|
||||
<li>
|
||||
{escape(feature["name"])}
|
||||
<span class="pill">{escape(feature["type"])}</span>
|
||||
<span class="source">{escape(feature["location"])}</span>
|
||||
{render_sources(feature.get("source_refs", []))}
|
||||
</li>
|
||||
"""
|
||||
|
||||
|
||||
def render_approved_evidence(evidence: dict) -> str:
|
||||
return f"""
|
||||
<li>
|
||||
{escape(evidence["type"])}
|
||||
<span class="pill">{escape(evidence["strength"])}</span>
|
||||
<span class="source">{escape(evidence["reference"])}</span>
|
||||
{render_sources(evidence.get("source_refs", []))}
|
||||
</li>
|
||||
"""
|
||||
|
||||
|
||||
def search_result_href(result: dict) -> str:
|
||||
href = f"/ui/repos/{result['repository_id']}"
|
||||
if result.get("capability_id"):
|
||||
@@ -968,7 +990,7 @@ def render_sources(source_refs: list[dict]) -> str:
|
||||
if not source_refs:
|
||||
return ""
|
||||
sources = ", ".join(
|
||||
f'<span class="source">{escape(ref["kind"])}:{escape(ref["path"] or ref["name"])}</span>'
|
||||
f'<span class="source">{escape(ref["kind"])}:{escape(source_ref_label(ref))}</span>'
|
||||
for ref in source_refs[:5]
|
||||
)
|
||||
if len(source_refs) > 5:
|
||||
@@ -976,6 +998,13 @@ def render_sources(source_refs: list[dict]) -> str:
|
||||
return f"<p>{sources}</p>"
|
||||
|
||||
|
||||
def source_ref_label(ref: dict) -> str:
|
||||
label = ref["path"] or ref["name"]
|
||||
if ref.get("line"):
|
||||
label = f"{label}:{ref['line']}"
|
||||
return label
|
||||
|
||||
|
||||
def render_search_context(result: dict) -> str:
|
||||
details = []
|
||||
if result.get("ability_name"):
|
||||
|
||||
Reference in New Issue
Block a user