/
githubmirror
/
cpython
Обзор
Документация
Войти
/
githubmirror
/
cpython
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Doc/tools/static/glossary_search.js
47 строк
1 KB
Adam Turner
GH-121970: Improve the glossary preview in HTML search (#121991)
19 июл 2024, 12:16
Не верифицирован
19 июл 2024, 12:16
adf0b94
Код
Авторство
О чём код?
"use strict"; const GLOSSARY_PAGE = "glossary.html"; const glossary_search = async () => { const response = await fetch("_static/glossary.json"); if (!response.ok) { throw new Error("Failed to fetch glossary.json"); } const glossary = await response.json(); const params = new URLSearchParams(document.location.search).get("q"); if (!params) { return; } const searchParam = params.toLowerCase(); const glossaryItem = glossary[searchParam]; if (!glossaryItem) { return; } // set up the title text with a link to the glossary page const glossaryTitle = document.getElementById("glossary-title"); glossaryTitle.textContent = "Glossary: " + glossaryItem.title; const linkTarget = searchParam.replace(/ /g, "-"); glossaryTitle.href = GLOSSARY_PAGE + "#term-" + linkTarget; // rewrite any anchor links (to other glossary terms) // to have a full reference to the glossary page const glossaryBody = document.getElementById("glossary-body"); glossaryBody.innerHTML = glossaryItem.body; const anchorLinks = glossaryBody.querySelectorAll('a[href^="#"]'); anchorLinks.forEach(function (link) { const currentUrl = link.getAttribute("href"); link.href = GLOSSARY_PAGE + currentUrl; }); const glossaryResult = document.getElementById("glossary-result"); glossaryResult.style.display = ""; }; if (document.readyState !== "loading") { glossary_search().catch(console.error); } else { document.addEventListener("DOMContentLoaded", glossary_search); }