Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions docs/_includes/head_custom.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<style>
.version-selector {
margin: 0.5rem 0 1rem;
display: flex;
align-items: center;
gap: 0.5rem;
flex-wrap: wrap;
}

.version-selector .version-select {
padding: 0.25rem 2rem 0.25rem 0.5rem;
font-size: 0.85rem;
border: 1px solid #d1d5da;
border-radius: 4px;
background-color: #fff;
cursor: pointer;
}

.version-panel {
margin-bottom: 1rem;
}

/* Only hide panels once JS has taken over, so no-JS users see everything. */
.js-version-picker .version-panel[hidden] {
display: none;
}
</style>

<script>
(function () {
function initVersionPicker() {
var select = document.getElementById("version-select");
var panels = document.querySelectorAll(".version-panel");
if (!select || !panels.length) {
return;
}

document.body.classList.add("js-version-picker");

function show(version) {
panels.forEach(function (panel) {
panel.hidden = panel.getAttribute("data-version") !== version;
});
}

select.addEventListener("change", function () {
show(select.value);
});

show(select.value);
}

if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initVersionPicker);
} else {
initVersionPicker();
}
})();
</script>
38 changes: 29 additions & 9 deletions docs/packages/generate_packages_doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,20 +146,37 @@ def generate_md_page(yaml_file, output_md, package_list):
]

if source_code:
lines.append(f"- **Source Code:** [{source_code}]({source_code})")
lines.append(f"**Source code:** [{source_code}]({source_code})")
lines.append("")

lines.append("- **Supported versions:**")
# Version picker: a dropdown that reveals one version panel at a time.
# Without JavaScript every panel stays visible, so content degrades
# gracefully; version-selector.js hides all but the selected panel.
lines.append('<div class="version-selector">')
lines.append(
' <label for="version-select"><strong>Select version:</strong></label>'
)
lines.append(' <select id="version-select" class="version-select">')
for version in versions:
version_number = str(version["version"])
is_latest = version_number == latest_version
option_label = f"{version_number} (latest)" if is_latest else version_number
selected = " selected" if is_latest else ""
lines.append(
f' <option value="{version_number}"{selected}>{option_label}</option>'
)
lines.append(" </select>")
lines.append("</div>")
lines.append("")

for version in versions:
version_number = str(version["version"])
is_latest = version_number == latest_version
summary_label = f"{version_number} (latest)" if is_latest else version_number

lines.append(
f'<details markdown="1"{" open" if is_latest else ""}>'
f'<div class="version-panel" markdown="1" '
f'data-version="{version_number}">'
)
lines.append(f"<summary><strong>{summary_label}</strong></summary>")
lines.append("")

install_command = (
Expand All @@ -172,16 +189,18 @@ def generate_md_page(yaml_file, output_md, package_list):

lic = version.get("license", license_type)
if lic:
lines.append(f"- **License:** {lic}")
lines.append(f"**License:** {lic}")
lines.append("")

package_id = get_package_id(package_name, version_number, package_list)
if package_id:
registry_link = (
f"https://gitlab.com/riseproject/python/wheel_builder/-/packages/{package_id}"
)
lines.append(
f"- **Download files:** [{registry_link}]({registry_link})"
f"**Download files:** [{registry_link}]({registry_link})"
)
lines.append("")

if "patched" in version and source_code:
project_name = (
Expand All @@ -196,17 +215,18 @@ def generate_md_page(yaml_file, output_md, package_list):
f"{project_name}/patches/{upstream_tag}"
)
lines.append(
f"- **Patch applied for this version:** "
f"**Patch applied for this version:** "
f"[{patch_link}]({patch_link})"
)
lines.append("")

if version.get("comment"):
_callout(lines, "note", version["comment"])

if version.get("warning"):
_callout(lines, "warning", version["warning"])

lines += ["</details>", ""]
lines += ["</div>", ""]

if comment:
_callout(lines, "note", comment)
Expand Down
Loading