mirror of
https://github.com/docker/docs.git
synced 2026-11-04 10:01:00 +00:00
site: improve search ux, add /search page
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
1 parent
166a5771a8
commit
58aa02924d
13 files changed
+446
-183
No files matched your search
+18
-1
@@ -16,7 +16,24 @@
|
||||
}
|
||||
|
||||
mark {
|
||||
@apply bg-amber-light-200 dark:bg-amber-dark-600/25 dark:text-white;
|
||||
@apply bg-transparent font-bold text-blue-light dark:text-blue-dark;
|
||||
}
|
||||
|
||||
/* Hide the clear (X) button for search inputs */
|
||||
/* Chrome, Safari, Edge, and Opera */
|
||||
input[type="search"]::-webkit-search-cancel-button {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
/* Firefox */
|
||||
input[type="search"]::-moz-search-cancel-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Internet Explorer and Edge (legacy) */
|
||||
input[type="search"]::-ms-clear {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<svg width="16" height="16" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="mask0_225_286" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="22" height="23">
|
||||
<path d="M18.5 8.646V3.646M5.5 21.646V16.646M16 6.146H21M3 19.146H8M6.5 2.646L5.71554 4.21491C5.45005 4.74589 5.31731 5.01138 5.13997 5.24144C4.98261 5.44559 4.79959 5.6286 4.59545 5.78597C4.36538 5.9633 4.0999 6.09605 3.56892 6.36154L2 7.146L3.56892 7.93045C4.0999 8.19594 4.36538 8.32869 4.59545 8.50603C4.79959 8.66339 4.98261 8.8464 5.13997 9.05055C5.31731 9.28061 5.45005 9.5461 5.71554 10.0771L6.5 11.646L7.28446 10.0771C7.54995 9.5461 7.68269 9.28061 7.86003 9.05055C8.01739 8.8464 8.20041 8.66339 8.40455 8.50603C8.63462 8.32869 8.9001 8.19594 9.43108 7.93045L11 7.146L9.43108 6.36154C8.9001 6.09605 8.63462 5.9633 8.40455 5.78597C8.20041 5.6286 8.01739 5.44559 7.86003 5.24144C7.68269 5.01138 7.54995 4.74589 7.28446 4.21491L6.5 2.646ZM17 12.646L16.0489 14.5482C15.7834 15.0792 15.6506 15.3447 15.4733 15.5748C15.3159 15.7789 15.1329 15.9619 14.9288 16.1193C14.6987 16.2966 14.4332 16.4294 13.9023 16.6949L12 17.646L13.9023 18.5971C14.4332 18.8626 14.6987 18.9954 14.9288 19.1727C15.1329 19.3301 15.3159 19.5131 15.4733 19.7172C15.6506 19.9473 15.7834 20.2128 16.0489 20.7437L17 22.646L17.9511 20.7437C18.2166 20.2128 18.3494 19.9473 18.5267 19.7172C18.6841 19.5131 18.8671 19.3301 19.0712 19.1727C19.3013 18.9954 19.5668 18.8626 20.0977 18.5971L22 17.646L20.0977 16.6949C19.5668 16.4294 19.3013 16.2966 19.0712 16.1193C18.8671 15.9619 18.6841 15.7789 18.5267 15.5748C18.3494 15.3447 18.2166 15.0792 17.9511 14.5482L17 12.646Z" stroke="#677285" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_225_286)">
|
||||
<rect y="0.799316" width="24" height="24" fill="url(#paint0_linear_225_286)"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_225_286" x1="0" y1="24.7993" x2="24" y2="0.799316" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FBB552"/>
|
||||
<stop offset="1" stop-color="#E950E2"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="mask0_200_9677" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="2" y="0" width="21" height="23">
|
||||
<path d="M21.2461 21.4956L16.8961 17.1456M19.2461 11.4956C19.2461 15.9139 15.6644 19.4956 11.2461 19.4956C6.82782 19.4956 3.24609 15.9139 3.24609 11.4956C3.24609 7.07733 6.82782 3.49561 11.2461 3.49561" stroke="#677285" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.7461 1.84082L17.5306 3.40974C17.796 3.94072 17.9288 4.2062 18.1061 4.43627C18.2635 4.64041 18.4465 4.82343 18.6506 4.98079C18.8807 5.15813 19.1462 5.29087 19.6772 5.55636L21.2461 6.34082L19.6772 7.12528C19.1462 7.39077 18.8807 7.52351 18.6506 7.70085C18.4465 7.85821 18.2635 8.04123 18.1061 8.24537C17.9288 8.47544 17.796 8.74093 17.5306 9.2719L16.7461 10.8408L15.9616 9.2719C15.6961 8.74092 15.5634 8.47544 15.3861 8.24537C15.2287 8.04123 15.0457 7.85821 14.8415 7.70085C14.6115 7.52351 14.346 7.39077 13.815 7.12528L12.2461 6.34082L13.815 5.55636C14.346 5.29087 14.6115 5.15813 14.8415 4.98079C15.0457 4.82343 15.2287 4.64041 15.3861 4.43627C15.5634 4.2062 15.6961 3.94072 15.9616 3.40974L16.7461 1.84082Z" stroke="#677285" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_200_9677)">
|
||||
<rect x="0.426636" y="0.495605" width="24" height="24" fill="white"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,5 @@
|
||||
---
|
||||
sitemap: false
|
||||
title: Search
|
||||
layout: search
|
||||
---
|
||||
+31
-21
@@ -6,6 +6,7 @@
|
||||
"--mount",
|
||||
"--tmpfs",
|
||||
"-mb-3",
|
||||
"-mt-0.5",
|
||||
"-mt-1",
|
||||
"-mt-4",
|
||||
"-top-16",
|
||||
@@ -136,13 +137,11 @@
|
||||
"Without-packages",
|
||||
"Without-systemd",
|
||||
"absolute",
|
||||
"appearance-none",
|
||||
"aspect-video",
|
||||
"bake-action",
|
||||
"bg-accent-light",
|
||||
"bg-amber-light",
|
||||
"bg-amber-light-200",
|
||||
"bg-background-dark/70",
|
||||
"bg-background-light",
|
||||
"bg-black/70",
|
||||
"bg-blue-light",
|
||||
@@ -165,10 +164,12 @@
|
||||
"bg-transparent",
|
||||
"bg-violet-light",
|
||||
"bg-white",
|
||||
"bg-white/10",
|
||||
"block",
|
||||
"border",
|
||||
"border-0",
|
||||
"border-amber-light",
|
||||
"border-b",
|
||||
"border-b-2",
|
||||
"border-b-4",
|
||||
"border-b-gray-light-400",
|
||||
@@ -183,7 +184,9 @@
|
||||
"border-l-4",
|
||||
"border-l-magenta-light",
|
||||
"border-red-light",
|
||||
"border-transparent",
|
||||
"border-violet-light",
|
||||
"border-white",
|
||||
"bottom-0",
|
||||
"box-content",
|
||||
"build-push-action",
|
||||
@@ -200,7 +203,6 @@
|
||||
"dark:bg-blue-dark-400",
|
||||
"dark:bg-blue-dark-500",
|
||||
"dark:bg-gray-dark-100",
|
||||
"dark:bg-gray-dark-100/70",
|
||||
"dark:bg-gray-dark-200",
|
||||
"dark:bg-gray-dark-300",
|
||||
"dark:bg-gray-dark-300/50",
|
||||
@@ -224,17 +226,18 @@
|
||||
"dark:border-violet-dark",
|
||||
"dark:decoration-blue-dark",
|
||||
"dark:fill-blue-dark",
|
||||
"dark:focus:outline-blue-dark",
|
||||
"dark:focus:ring-blue-dark",
|
||||
"dark:from-accent-dark",
|
||||
"dark:from-background-dark",
|
||||
"dark:from-blue-dark-400",
|
||||
"dark:hidden",
|
||||
"dark:hover:bg-blue-dark",
|
||||
"dark:hover:bg-blue-dark-500",
|
||||
"dark:hover:bg-gray-dark-200",
|
||||
"dark:hover:bg-gray-dark-500",
|
||||
"dark:hover:text-white",
|
||||
"dark:outline-gray-dark",
|
||||
"dark:prose-invert",
|
||||
"dark:ring-gray-dark-400",
|
||||
"dark:syntax-dark",
|
||||
"dark:text-amber-dark",
|
||||
"dark:text-blue-dark",
|
||||
@@ -262,12 +265,11 @@
|
||||
"fixed",
|
||||
"flex",
|
||||
"flex-1",
|
||||
"flex-auto",
|
||||
"flex-col",
|
||||
"flex-col-reverse",
|
||||
"flex-grow",
|
||||
"flex-wrap",
|
||||
"focus:outline-blue-light",
|
||||
"focus:ring-blue-light",
|
||||
"font-medium",
|
||||
"footnote-backref",
|
||||
"footnote-ref",
|
||||
@@ -290,7 +292,6 @@
|
||||
"grid-cols-2",
|
||||
"group",
|
||||
"group-hover:block'",
|
||||
"h-12",
|
||||
"h-16",
|
||||
"h-2",
|
||||
"h-32",
|
||||
@@ -306,8 +307,10 @@
|
||||
"highlight",
|
||||
"hover:bg-blue-light-400",
|
||||
"hover:bg-gray-light-100",
|
||||
"hover:bg-gray-light-200",
|
||||
"hover:bg-gray-light-300",
|
||||
"hover:border-gray-light-200",
|
||||
"hover:border-white/20",
|
||||
"hover:dark:bg-gray-dark-300",
|
||||
"hover:dark:border-gray-dark",
|
||||
"hover:dark:text-blue-dark",
|
||||
@@ -316,6 +319,7 @@
|
||||
"hover:opacity-90",
|
||||
"hover:text-black",
|
||||
"hover:text-blue-light",
|
||||
"hover:text-white",
|
||||
"hover:underline",
|
||||
"icon-lg",
|
||||
"icon-sm",
|
||||
@@ -329,6 +333,7 @@
|
||||
"items-stretch",
|
||||
"justify-between",
|
||||
"justify-center",
|
||||
"justify-end",
|
||||
"justify-evenly",
|
||||
"justify-self-end",
|
||||
"leading-snug",
|
||||
@@ -344,21 +349,19 @@
|
||||
"lg:scale-100",
|
||||
"lg:text-base",
|
||||
"lg:w-[1200px]",
|
||||
"lg:w-[600px]",
|
||||
"link",
|
||||
"lntable",
|
||||
"lntd",
|
||||
"m-2",
|
||||
"m-4",
|
||||
"m-auto",
|
||||
"macOS",
|
||||
"max-h-[80vh]",
|
||||
"max-h-full",
|
||||
"max-w-56",
|
||||
"max-w-[1400px]",
|
||||
"max-w-[840px]",
|
||||
"max-w-full",
|
||||
"max-w-none",
|
||||
"max-w-xl",
|
||||
"mb-4",
|
||||
"mb-8",
|
||||
"md:block",
|
||||
@@ -374,16 +377,14 @@
|
||||
"md:max-w-[66%]",
|
||||
"md:px-20",
|
||||
"md:scale-100",
|
||||
"min-h-0",
|
||||
"min-h-screen",
|
||||
"min-w-0",
|
||||
"ml-3",
|
||||
"ml-auto",
|
||||
"mt-1",
|
||||
"mt-2",
|
||||
"mt-20",
|
||||
"mt-auto",
|
||||
"mx-1",
|
||||
"mx-8",
|
||||
"mx-auto",
|
||||
"my-0",
|
||||
"my-2",
|
||||
@@ -394,15 +395,13 @@
|
||||
"no-wrap",
|
||||
"not-prose",
|
||||
"object-cover",
|
||||
"open-kapa-widget",
|
||||
"openSUSE-and-SLES",
|
||||
"origin-bottom-right",
|
||||
"outline",
|
||||
"outline-2",
|
||||
"outline-gray-light",
|
||||
"outline-none",
|
||||
"overflow-clip",
|
||||
"overflow-hidden",
|
||||
"overflow-x-hidden",
|
||||
"overflow-y-auto",
|
||||
"overflow-y-scroll",
|
||||
"p-1",
|
||||
"p-2",
|
||||
@@ -422,6 +421,7 @@
|
||||
"pl-4",
|
||||
"pl-5",
|
||||
"place-items-center",
|
||||
"placeholder:text-white",
|
||||
"pr-2",
|
||||
"prose",
|
||||
"pt-0",
|
||||
@@ -429,9 +429,9 @@
|
||||
"px-2",
|
||||
"px-3",
|
||||
"px-4",
|
||||
"px-6",
|
||||
"px-8",
|
||||
"py-1",
|
||||
"py-12",
|
||||
"py-2",
|
||||
"py-20",
|
||||
"py-4",
|
||||
@@ -440,6 +440,8 @@
|
||||
"right-0",
|
||||
"right-3",
|
||||
"right-8",
|
||||
"ring-[1.5px]",
|
||||
"ring-gray-light-200",
|
||||
"rotate-45",
|
||||
"rounded",
|
||||
"rounded-[6px]",
|
||||
@@ -456,9 +458,13 @@
|
||||
"select-none",
|
||||
"self-center",
|
||||
"shadow",
|
||||
"shadow-lg",
|
||||
"sm:flex",
|
||||
"sm:flex-row",
|
||||
"sm:grid-cols-2",
|
||||
"sm:hidden",
|
||||
"sm:items-center",
|
||||
"sm:w-full",
|
||||
"space-x-2",
|
||||
"space-y-4",
|
||||
"sticky",
|
||||
@@ -497,6 +503,7 @@
|
||||
"top-16",
|
||||
"top-3",
|
||||
"top-6",
|
||||
"top-full",
|
||||
"transition",
|
||||
"truncate",
|
||||
"underline",
|
||||
@@ -507,17 +514,20 @@
|
||||
"w-8",
|
||||
"w-[1200px]",
|
||||
"w-[32px]",
|
||||
"w-fit",
|
||||
"w-full",
|
||||
"w-lvw",
|
||||
"w-screen",
|
||||
"xl:grid-cols-3",
|
||||
"xl:grid-cols-4",
|
||||
"xl:grid-cols-main-xl",
|
||||
"xl:w-[1200px]",
|
||||
"xl:w-[800px]",
|
||||
"xl:w-[400px]",
|
||||
"youtube-video",
|
||||
"z-10",
|
||||
"z-20",
|
||||
"z-30"
|
||||
"z-30",
|
||||
"z-50"
|
||||
],
|
||||
"ids": null
|
||||
}
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
{{ partial "head.html" . }}
|
||||
</head>
|
||||
|
||||
<body class="bg-background-light text-base dark:bg-background-dark dark:text-white">
|
||||
<body
|
||||
class="bg-background-light text-base dark:bg-background-dark dark:text-white">
|
||||
{{ partial "header.html" . }}
|
||||
<main class="grid grid-cols-1 xl:grid-cols-main-xl lg:grid-cols-main-lg md:grid-cols-main-md">
|
||||
<!-- First column: visible on lg and xl -->
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
{{ partial "head.html" . }}
|
||||
</head>
|
||||
|
||||
<body class="flex min-h-screen flex-col bg-background-light text-base dark:bg-background-dark dark:text-white">
|
||||
{{ partial "header.html" . }}
|
||||
<main class="flex justify-center">
|
||||
<div class="w-lvw overflow-clip p-6 pt-0 lg:w-[1200px]">
|
||||
<article class="prose max-w-none dark:prose-invert">
|
||||
<h1 class="py-4">{{ .Title }}</h1>
|
||||
{{ .Content }}
|
||||
<div class="not-prose">
|
||||
<div class="flex gap-4">
|
||||
<input type="search" id="search-page-input"
|
||||
class="ring-[1.5px] ring-gray-light-200 dark:ring-gray-dark-400 w-full max-w-xl rounded px-4 py-2 outline-none bg-white dark:bg-background-dark focus:ring-blue-light dark:focus:ring-blue-dark"
|
||||
placeholder="Search…" tabindex="0" />
|
||||
<button
|
||||
class="py-1 px-4 rounded open-kapa-widget flex w-fit gap-2 items-center hover:bg-gray-light-200 dark:hover:bg-gray-dark-200">
|
||||
<span>Ask AI</span>
|
||||
<img height="24px" width="24px" src="{{ (resources.Get "images/ai-stars.svg").Permalink }}"
|
||||
alt="AI sparkles!" />
|
||||
</button>
|
||||
</div>
|
||||
<hr class="border-divider-light dark:border-divider-dark">
|
||||
<div id="search-page-results">
|
||||
<!-- results -->
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</main>
|
||||
<footer class="mt-auto">{{ partialCached "footer.html" . }}</footer>
|
||||
<script type="module">
|
||||
// Global variable to hold the pagefind module
|
||||
let pagefind;
|
||||
|
||||
// Initialize the pagefind module and fire a search if the query parameter exists
|
||||
window.addEventListener("load", async function () {
|
||||
// Hydrate pagefind
|
||||
pagefind = await import("/pagefind/pagefind.js");
|
||||
|
||||
// Get the query parameter from the URL
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const query = urlParams.get("q");
|
||||
|
||||
// If no query parameter is set, return
|
||||
if (!query) {
|
||||
return;
|
||||
}
|
||||
|
||||
const searchInput = document.getElementById("search-page-input");
|
||||
|
||||
// Set the value of the input field to the query parameter
|
||||
searchInput.value = query;
|
||||
|
||||
// Trigger the input event to simulate user typing
|
||||
const event = new Event("input", {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
});
|
||||
// Trigger the input event for the search input
|
||||
searchInput.dispatchEvent(event);
|
||||
searchInput.focus();
|
||||
});
|
||||
|
||||
const searchPageInput = document.querySelector("#search-page-input");
|
||||
const searchPageResults = document.querySelector("#search-page-results");
|
||||
|
||||
// onPageSearch returns 10 results per query
|
||||
async function onPageSearch(e) {
|
||||
pagefind.init();
|
||||
const query = e.target.value;
|
||||
|
||||
// Set the query parameter in the URL
|
||||
const params = new URLSearchParams(document.location.search);
|
||||
params.set("q", query);
|
||||
|
||||
// Default the current page to 1
|
||||
let currentPage = 1;
|
||||
|
||||
// Check if the page parameter exists
|
||||
const page = params.get("page");
|
||||
// Calculate the range start based on the page parameter
|
||||
if (page) {
|
||||
currentPage = parseInt(page);
|
||||
}
|
||||
const rangeStart = (currentPage - 1) * 10;
|
||||
const rangeEnd = rangeStart + 10;
|
||||
|
||||
// Execute the search
|
||||
const search = await pagefind.debouncedSearch(query);
|
||||
// If no search results are found, exit
|
||||
if (search === null) {
|
||||
return;
|
||||
} else {
|
||||
// total number of results
|
||||
const resultsLength = search.results.length;
|
||||
// Get the data for the search results
|
||||
// Slice the results based on the range start + 10
|
||||
const resultsData = await Promise.all(
|
||||
search.results.slice(rangeStart, rangeEnd).map((r) => r.data()),
|
||||
);
|
||||
// If the range does not have any results, display a message
|
||||
if (resultsData.length === 0) {
|
||||
searchPageResults.innerHTML = `<div class="p-4">No results found</div>`;
|
||||
return;
|
||||
}
|
||||
// Add an index to the results, for heap tracking
|
||||
const results = resultsData.map((item, index) => ({
|
||||
...item,
|
||||
index: index + 1,
|
||||
}));
|
||||
|
||||
// If the query is not empty, display the search results container
|
||||
if (query) {
|
||||
searchPageResults.classList.remove("hidden");
|
||||
} else {
|
||||
searchPageResults.classList.add("hidden");
|
||||
}
|
||||
|
||||
// Generate the search results HTML
|
||||
let resultsHTML = `<div class="text-gray-light dark:text-gray-dark p-2">${resultsLength} results</div>`;
|
||||
|
||||
// Map results to HTML
|
||||
resultsHTML += results
|
||||
.map((item) => {
|
||||
return `<div class="p-4">
|
||||
<div class="flex flex-col">
|
||||
<span class="text-gray-light dark:texty-gray-dark text-sm">${item.meta.breadcrumbs}</span>
|
||||
<a class="link" href="${item.url}" data-query="${query}" data-index="${item.index}">${item.meta.title}</a>
|
||||
<p class="text-black dark:text-white overflow-hidden">…${item.excerpt}…</p>
|
||||
</div>
|
||||
</div>`;
|
||||
})
|
||||
.join("");
|
||||
// If the results length is greater than 10, display links to show more results
|
||||
if (resultsLength > 10) {
|
||||
resultsHTML += `<hr class="border-divider-light dark:border-divider-dark">`
|
||||
resultsHTML += `<ul class="flex flex-wrap gap-1 pt-4 pb-8 justify-center text-sm">`;
|
||||
for (let i = 1; i <= resultsLength / 10; i++) {
|
||||
if (i == currentPage) {
|
||||
resultsHTML += `<li class="text-center text-white">
|
||||
<a href="/search?q=${query}&page=${i}" class="block h-6 w-6 rounded-sm bg-blue-light dark:bg-blue-dark">${i}</a>
|
||||
</li>`;
|
||||
} else {
|
||||
resultsHTML += `<li class="text-center text-gray-light dark:text-gray-dark">
|
||||
<a href="/search?q=${query}&page=${i}" class="block h-6 w-6 rounded-sm bg-gray-light-200 dark:bg-gray-dark-200">${i}</a>
|
||||
</li>`;
|
||||
}
|
||||
}
|
||||
resultsHTML += `</ul>`;
|
||||
}
|
||||
|
||||
searchPageResults.innerHTML = resultsHTML;
|
||||
}
|
||||
}
|
||||
|
||||
searchPageInput.addEventListener("input", (e) => onPageSearch(e));
|
||||
|
||||
// Event delegation for tracking link clicks
|
||||
if (window.heap !== undefined) {
|
||||
searchPageResults.addEventListener("click", function (event) {
|
||||
if (event.target.tagName === "A" && event.target.closest(".link")) {
|
||||
const searchQuery = event.target.getAttribute("data-query");
|
||||
const resultIndex = event.target.getAttribute("data-index");
|
||||
const url = new URL(event.target.href);
|
||||
const properties = {
|
||||
docs_search_target_path: url.pathname,
|
||||
docs_search_target_title: event.target.textContent,
|
||||
docs_search_query_text: searchQuery,
|
||||
docs_search_target_index: resultIndex,
|
||||
docs_search_source_path: window.location.pathname,
|
||||
docs_search_source_title: document.title,
|
||||
};
|
||||
heap.track("Docs - Search - Click - Result Link", properties);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,4 +1,10 @@
|
||||
<nav id="breadcrumbs" data-pagefind-ignore class="py-4 gap-4 flex items-center text-gray-light dark:text-gray-dark max-w-full min-w-0">
|
||||
<nav id="breadcrumbs"
|
||||
{{- $breadcrumbTitles := slice }}
|
||||
{{ range .Ancestors.Reverse }}
|
||||
{{ $breadcrumbTitles = $breadcrumbTitles | append .LinkTitle }}
|
||||
{{ end }}
|
||||
data-pagefind-meta="breadcrumbs:{{ collections.Delimit $breadcrumbTitles " / " }}"
|
||||
data-pagefind-ignore class="py-4 gap-4 flex items-center text-gray-light dark:text-gray-dark max-w-full min-w-0">
|
||||
{{ range .Ancestors.Reverse }}
|
||||
<a href="{{ .Permalink }}" class="link truncate">{{ markdownify .LinkTitle }}</a>
|
||||
<span>/</span>
|
||||
|
||||
+33
-27
@@ -1,5 +1,16 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<script type="module">
|
||||
const pagefind = await import("/pagefind/pagefind.js");
|
||||
await pagefind.options({
|
||||
ranking: {
|
||||
termFrequency: 0.2,
|
||||
pageLength: 0.75,
|
||||
termSaturation: 1.4,
|
||||
termSimilarity: 6.0,
|
||||
},
|
||||
});
|
||||
</script>
|
||||
{{ partial "meta.html" . }}
|
||||
{{- if hugo.IsProduction -}}
|
||||
<script
|
||||
@@ -49,33 +60,28 @@
|
||||
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
|
||||
</script>
|
||||
{{ end }}
|
||||
{{ if hugo.IsProduction }}
|
||||
{{/* kapa.ai widget */}}
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
var script = document.createElement('script');
|
||||
script.src = 'https://widget.kapa.ai/kapa-widget.bundle.js';
|
||||
script.setAttribute('data-website-id', '{{ site.Params.kapa.id }}');
|
||||
script.setAttribute('data-project-name', 'Docker');
|
||||
script.setAttribute('data-user-analytics-fingerprint-enabled', 'true');
|
||||
script.setAttribute('data-button-image-height', '29px');
|
||||
script.setAttribute('data-button-image-width', '40px');
|
||||
script.setAttribute('data-modal-image-height', '29px');
|
||||
script.setAttribute('data-modal-image-width', '40px');
|
||||
script.setAttribute('data-modal-title-color', '#fff');
|
||||
script.setAttribute('data-project-color', '#086dd7');
|
||||
script.setAttribute('data-modal-header-bg-color', '#086dd7');
|
||||
script.setAttribute('data-project-logo', '/assets/images/logo-icon-white.svg');
|
||||
script.setAttribute('data-font-family', 'Roboto Flex,sans-serif');
|
||||
script.setAttribute('data-modal-disclaimer', 'This is a custom LLM for answering questions about Docker. Answers are based on the contents of the documentation. This feature is experimental - rate the answers to let us know what you think!');
|
||||
script.setAttribute('data-modal-disclaimer-bg-color', '#e5f2fc');
|
||||
script.setAttribute('data-modal-disclaimer-text-color', '#086dd7');
|
||||
script.setAttribute('data-kapa-branding-text', 'powered by [kapa.ai](https://www.kapa.ai) and Docker');
|
||||
script.async = true;
|
||||
document.body.appendChild(script);
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
||||
{{/* kapa.ai widget */}}
|
||||
<script async src="https://widget.kapa.ai/kapa-widget.bundle.js"
|
||||
data-button-hide="true"
|
||||
data-font-family="Roboto Flex,sans-serif"
|
||||
data-modal-close-button-hide="true"
|
||||
data-modal-disclaimer-bg-color="#e5f2fc"
|
||||
data-modal-disclaimer-text-color="#086dd7"
|
||||
data-modal-disclaimer="This is a custom LLM for answering questions about Docker. Answers are based on the contents of the documentation. Rate the answers to let us know what you think!"
|
||||
data-kapa-branding-text="powered by [kapa.ai](https://www.kapa.ai) and Docker"
|
||||
data-modal-header-bg-color="#1d63ed"
|
||||
data-modal-image-height="25px"
|
||||
data-modal-image-width="181px"
|
||||
data-modal-title=""
|
||||
data-modal-override-open-class="open-kapa-widget"
|
||||
data-modal-ask-ai-input-placeholder="Ask me a question about Docker…"
|
||||
data-modal-title-color="#fff"
|
||||
data-project-color="#1d63ed"
|
||||
data-project-logo="/assets/images/logo-icon-white.svg"
|
||||
data-project-name="Docker"
|
||||
data-user-analytics-fingerprint-enabled="true"
|
||||
data-website-id="{{ site.Params.kapa.id }}"
|
||||
></script>
|
||||
{{/* preload Roboto Flex as it's a critical font: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preload */}}
|
||||
<link href="/assets/fonts/RobotoFlex.woff2" rel="preload" as="font" type="font/woff2" crossorigin />
|
||||
{{ partialCached "utils/css.html" "-" }}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<header
|
||||
class="sticky top-0 z-20 h-16 px-4 text-white bg-gradient-to-r from-accent-light to-blue-light-500 dark:from-accent-dark dark:to-blue-dark-100">
|
||||
<div class="mx-auto flex h-full max-w-[1400px] items-center justify-between">
|
||||
<div class="mx-auto flex gap-4 h-full max-w-[1400px] items-center justify-between">
|
||||
<div class="flex h-full items-center md:gap-8 gap-2">
|
||||
{{ if not .IsHome }}
|
||||
<button x-data @click="$dispatch('togglesidebar')"
|
||||
@@ -19,15 +19,20 @@
|
||||
<nav>
|
||||
<ul class="mt-1 box-content hidden gap-4 md:flex">
|
||||
{{ range site.Menus.main }}
|
||||
<li {{- if or (eq page .Page) (page.IsDescendant .Page) }} class="border-b-4" {{- end }}>
|
||||
<li
|
||||
{{- if or (eq page .Page) (page.IsDescendant .Page) }}
|
||||
class="border-b-4"
|
||||
{{- else }}
|
||||
class="border-b-4 border-transparent hover:border-white/20"
|
||||
{{- end }}>
|
||||
<a class="block px-2 py-1" href="{{ .URL }}">{{ .Name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="flex items-center gap-6">
|
||||
{{ partialCached "search.html" "-" }}
|
||||
<div class="flex items-center gap-6 flex-grow justify-end">
|
||||
{{ partialCached "search-bar.html" "-" }}
|
||||
<button aria-label="Theme switch" id="theme-switch" class="svg-icon"
|
||||
x-data="{ theme: localStorage.getItem('theme-preference') }" x-init="$watch('theme', value => {
|
||||
localStorage.setItem('theme-preference', value);
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
<!-- search button, mobile (link off to the search page for now) -->
|
||||
<a href="/search" class="sm:hidden">
|
||||
<span class="icon-svg">{{ partialCached "icon" "search" "search" }}</span>
|
||||
</a>
|
||||
<!-- search button -->
|
||||
<div x-ref="searchBarRef" x-data="{ open: false, focus: false }" @focus="open = true;" @click.outside="open = false;"
|
||||
@keyup.escape.window="open = false" id="search-bar"
|
||||
class="hidden sm:flex relative bg-white/10 rounded items-center p-2 sm:w-full xl:w-[400px]">
|
||||
{{ (resources.Get "images/search-ai.svg").Content | safeHTML }}
|
||||
<input x-ref="searchBarInput" type="search" id="search-bar-input" @click="open = true" @focus="open = true;"
|
||||
@blur.window.capture="$refs.searchBarRef.contains($event.relatedTarget) || (open = false);"
|
||||
@keyup.enter.prevent="window.location.href = '/search?q=' + $event.target.value;"
|
||||
@keyup.escape.prevent="open = false;" @keydown.window="(e) => {
|
||||
switch(e.key) {
|
||||
case 'k':
|
||||
if (e.metaKey || e.ctrlKey) {
|
||||
e.preventDefault();
|
||||
$el.focus();
|
||||
open = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}" class="flex-grow px-2 bg-transparent text-white placeholder:text-white outline-none" placeholder="Search"
|
||||
tabindex="0" />
|
||||
<div x-cloak :class="open && 'hidden'" class="border px-1 text-sm border-white rounded flex items-center">
|
||||
<div class="-mt-0.5">
|
||||
<span x-show="navigator.platform == 'MacIntel'" class="icon-svg icon-sm">{{ partialCached "icon" "keyboard_command_key" "keyboard_command_key" }}</span>
|
||||
<span x-show="navigator.platform != 'MacIntel'" class="icon-svg icon-sm">{{ partialCached "icon" "keyboard_control_key" "keyboard_control_key" }}</span>
|
||||
</div>
|
||||
<span>K</span>
|
||||
</div>
|
||||
<div x-cloak :class="open || 'hidden'">
|
||||
<button tabindex="-1" @click="$refs.searchBarInput.value = ''; open = false" class="text-white hover:text-white">
|
||||
<span class="icon-svg">{{ partialCached "icon" "close" "close" }}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div x-show="open" x-cloak
|
||||
class="absolute px-6 py-4 right-0 w-screen max-w-xl top-full bg-background-light dark:bg-background-dark rounded shadow-lg z-50">
|
||||
<button @click="open = false"
|
||||
class="text-black dark:text-white py-1 px-2 rounded w-full open-kapa-widget flex justify-between items-center hover:bg-gray-light-200 dark:hover:bg-gray-dark-200">
|
||||
<div class="flex gap-1 items-center">
|
||||
<img src="{{ (resources.Get "images/ai-stars.svg").Permalink }}" alt="AI Stars" />
|
||||
<span>Ask AI</span>
|
||||
</div>
|
||||
<span>→</span>
|
||||
</button>
|
||||
<hr class="mt-2 border-b border-divider-light dark:border-divider-dark">
|
||||
<div id="search-bar-results">
|
||||
<div class="p-2 text-gray-light dark:text-gray-dark">Start typing to search…</div>
|
||||
<!-- results -->
|
||||
</div>
|
||||
</div>
|
||||
<script type="module">
|
||||
window.addEventListener("load", async function () {
|
||||
const pagefind = await import("/pagefind/pagefind.js");
|
||||
|
||||
const searchBarInput = document.querySelector("#search-bar-input");
|
||||
const searchBarResults = document.querySelector(
|
||||
"#search-bar-results",
|
||||
);
|
||||
|
||||
async function search(e) {
|
||||
const query = e.target.value;
|
||||
if (query === "") {
|
||||
searchBarResults.innerHTML = `<div class="p-2 text-gray-light dark:text-gray-dark">Start typing to search…</div>`;
|
||||
return;
|
||||
}
|
||||
const search = await pagefind.debouncedSearch(query);
|
||||
if (search === null) {
|
||||
return;
|
||||
} else {
|
||||
const resultsLength = search.results.length
|
||||
const resultsData = await Promise.all(search.results.slice(0, 5).map(r => r.data()));
|
||||
const results = resultsData.map((item, index) => ({...item, index: index + 1}));
|
||||
|
||||
if (query) {
|
||||
searchBarResults.classList.remove("hidden");
|
||||
} else {
|
||||
searchBarResults.classList.add("hidden");
|
||||
}
|
||||
|
||||
let resultsHTML = `<div class="p-2 text-gray-light dark:text-gray-dark">${resultsLength} results</div>`;
|
||||
resultsHTML += results
|
||||
.map((item) => {
|
||||
return `<div class="p-2">
|
||||
<div class="flex flex-col">
|
||||
<a class="link" href="${item.url}" data-query="${query}" data-index="${item.index}">${item.meta.title}</a>
|
||||
<p class="text-black dark:text-white overflow-hidden">…${item.excerpt}…</p>
|
||||
</div>
|
||||
</div>`;
|
||||
})
|
||||
.join("");
|
||||
if (resultsLength > 5) {
|
||||
resultsHTML += `<div class="w-fit ml-auto px-4 py-2"><a href="/search?q=${query}" class="link">Show all results</a></div>`;
|
||||
}
|
||||
|
||||
searchBarResults.innerHTML = resultsHTML;
|
||||
}
|
||||
}
|
||||
|
||||
searchBarInput.addEventListener("input", search);
|
||||
|
||||
// Event delegation for tracking link clicks
|
||||
if (window.heap !== undefined) {
|
||||
searchBarResults.addEventListener('click', function (event) {
|
||||
if (event.target.tagName === 'A' && event.target.closest('.link')) {
|
||||
const searchQuery = event.target.getAttribute('data-query');
|
||||
const resultIndex = event.target.getAttribute('data-index');
|
||||
const url = new URL(event.target.href);
|
||||
const properties = {
|
||||
docs_search_target_path: url.pathname,
|
||||
docs_search_target_title: event.target.textContent,
|
||||
docs_search_query_text: searchQuery,
|
||||
docs_search_target_index: resultIndex,
|
||||
docs_search_source_path: window.location.pathname,
|
||||
docs_search_source_title: document.title,
|
||||
};
|
||||
heap.track("Docs - Search - Click - Result Link", properties);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
@@ -1,112 +0,0 @@
|
||||
<div x-data="{ open: false }"
|
||||
@keyup.escape.window="open = false; if (!open) { document.body.classList.remove('overflow-hidden'); }"
|
||||
@keydown.window="(e) => {
|
||||
switch(e.key) {
|
||||
case 'k':
|
||||
if (e.metaKey || e.ctrlKey) {
|
||||
e.preventDefault()
|
||||
open = !open;
|
||||
if (open) {
|
||||
document.body.classList.add('overflow-hidden');
|
||||
} else {
|
||||
document.body.classList.remove('overflow-hidden');
|
||||
}
|
||||
}
|
||||
}
|
||||
}">
|
||||
<!-- search button -->
|
||||
<button @click="open = true; document.body.classList.add('overflow-hidden');">
|
||||
<span class="icon-svg">{{ partialCached "icon" "search" "search" }}</span>
|
||||
</button>
|
||||
<!-- search modal -->
|
||||
<div class="fixed left-0 top-0 z-20 flex w-lvw justify-center py-12 text-gray-light-800 dark:text-gray-dark-800"
|
||||
role="dialog" tabindex="-1" x-show="open" x-trap="open" x-cloak x-transition>
|
||||
<div
|
||||
class="mx-8 flex max-h-[80vh] w-full flex-col overflow-hidden rounded-lg bg-white p-2 dark:bg-background-dark lg:w-[600px] xl:w-[800px]"
|
||||
@click.away="open = false; document.body.classList.remove('overflow-hidden');">
|
||||
<div class="m-2 text-xl">Search Docker documentation</div>
|
||||
<header class="flex items-center py-2">
|
||||
<input type="search" id="modal-search-input"
|
||||
class="mx-1 flex h-12 flex-auto appearance-none rounded bg-transparent p-4 outline outline-2 outline-gray-light focus:outline-blue-light dark:outline-gray-dark dark:focus:outline-blue-dark"
|
||||
placeholder="Search..." tabindex="0" />
|
||||
<div class="icon-svg px-2">
|
||||
{{ partialCached "icon" "search" "search" }}
|
||||
</div>
|
||||
</header>
|
||||
<section class="overflow-y-auto px-2">
|
||||
<div class="flex min-h-0 flex-col gap-2" id="modal-search-results">
|
||||
<!-- results -->
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<!-- search modal backdrop -->
|
||||
<div class="fixed left-0 top-0 h-full w-full bg-background-dark/70 dark:bg-gray-dark-100/70" x-show="open" x-cloak>
|
||||
</div>
|
||||
<script type="module">
|
||||
window.addEventListener("load", async function () {
|
||||
const pagefind = await import("/pagefind/pagefind.js");
|
||||
await pagefind.options({
|
||||
ranking: {
|
||||
termFrequency: 0.2,
|
||||
pageLength: 0.75,
|
||||
termSaturation: 1.4,
|
||||
termSimilarity: 6.0,
|
||||
},
|
||||
});
|
||||
pagefind.init();
|
||||
|
||||
const modalSearchInput = document.querySelector("#modal-search-input");
|
||||
const modalSearchResults = document.querySelector(
|
||||
"#modal-search-results",
|
||||
);
|
||||
|
||||
async function modalSearch(e) {
|
||||
const query = e.target.value;
|
||||
const search = await pagefind.debouncedSearch(query);
|
||||
if (search === null) {
|
||||
return;
|
||||
} else {
|
||||
const resultsData = await Promise.all(search.results.map(r => r.data()));
|
||||
const results = resultsData.map((item, index) => ({...item, index: index + 1}));
|
||||
|
||||
let resultsHTML = `<div>${results.length} results</div>`;
|
||||
resultsHTML += results
|
||||
.map((item) => {
|
||||
return `<div class="bg-gray-light-100 dark:bg-gray-dark-200 rounded p-4">
|
||||
<div class="flex flex-col">
|
||||
<a class="link" href="${item.url}" data-query="${query}" data-index="${item.index}">${item.meta.title}</a>
|
||||
<p class="text-gray-light dark:text-gray-dark overflow-hidden">…${item.excerpt}…</p>
|
||||
</div>
|
||||
</div>`;
|
||||
})
|
||||
.join("");
|
||||
|
||||
modalSearchResults.innerHTML = resultsHTML;
|
||||
}
|
||||
}
|
||||
|
||||
modalSearchInput.addEventListener("input", modalSearch);
|
||||
|
||||
// Event delegation for tracking link clicks
|
||||
if (window.heap !== undefined) {
|
||||
modalSearchResults.addEventListener('click', function(event) {
|
||||
if (event.target.tagName === 'A' && event.target.closest('.link')) {
|
||||
const searchQuery = event.target.getAttribute('data-query');
|
||||
const resultIndex = event.target.getAttribute('data-index');
|
||||
const url = new URL(event.target.href);
|
||||
const properties = {
|
||||
docs_search_target_path: url.pathname,
|
||||
docs_search_target_title: event.target.textContent,
|
||||
docs_search_query_text: searchQuery,
|
||||
docs_search_target_index: resultIndex,
|
||||
docs_search_source_path: window.location.pathname,
|
||||
docs_search_source_title: document.title,
|
||||
};
|
||||
heap.track("Docs - Search - Click - Result Link", properties);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
@@ -1,19 +1,12 @@
|
||||
<svg width="40" height="29" viewBox="0 0 40 29" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_217_4032)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M39.6057 11.0964C39.4973 11.0086 38.4837 10.243 36.3481 10.243C35.8139 10.243 35.2504 10.2918 34.6649 10.388C34.2523 7.54965 31.9133 6.167 31.8045 6.10436L31.2305 5.77262L30.8523 6.31818C30.8241 6.35878 30.1594 7.32772 29.8333 8.70689C29.4504 10.3266 29.6828 11.8473 30.5045 13.1491C29.5122 13.702 27.9281 13.8462 27.5993 13.8505H1.25209C0.564673 13.8505 0.00308371 14.41 0.000381905 15.0978C-0.0100393 17.5252 0.389442 19.871 1.15521 21.8812C2.0634 24.2652 3.4143 26.0202 5.1697 27.0978C7.13854 28.3057 10.344 28.9986 13.9637 28.9986C15.6573 28.9986 17.3456 28.8455 18.8455 28.5555C21.2091 28.0992 23.3551 27.3186 25.2233 26.2364C26.8524 25.2926 28.3157 24.092 29.5724 22.6692C31.6601 20.3036 32.9037 17.6617 33.8285 15.3236C33.9532 15.3286 34.0759 15.331 34.1971 15.331C36.4824 15.331 37.8878 14.4161 38.6639 13.6483C39.5058 12.8154 39.8053 11.9853 39.8365 11.8933L40.0002 11.4134L39.6057 11.0964Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.69368 13.0787H7.22455C7.39477 13.0787 7.53333 12.9403 7.53333 12.769V9.61823C7.53333 9.44694 7.39477 9.30852 7.22455 9.30852H3.69368C3.52309 9.30852 3.38452 9.44694 3.38452 9.61823V12.769C3.38452 12.9403 3.52309 13.0787 3.69368 13.0787Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.55941 13.0787H12.0895C12.2605 13.0787 12.3987 12.9403 12.3987 12.769V9.61823C12.3987 9.44694 12.2605 9.30852 12.0895 9.30852H8.55941C8.38842 9.30852 8.25024 9.44694 8.25024 9.61823V12.769C8.25024 12.9403 8.38842 13.0787 8.55941 13.0787Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.4994 13.0787H17.0299C17.2005 13.0787 17.339 12.9403 17.339 12.769V9.61823C17.339 9.44694 17.2005 9.30852 17.0299 9.30852H13.4994C13.3288 9.30852 13.1906 9.44694 13.1906 9.61823V12.769C13.1906 12.9403 13.3288 13.0787 13.4994 13.0787Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.3806 13.0787H21.9111C22.082 13.0787 22.2202 12.9403 22.2202 12.769V9.61823C22.2202 9.44694 22.082 9.30852 21.9111 9.30852H18.3806C18.2104 9.30852 18.0714 9.44694 18.0714 9.61823V12.769C18.0714 12.9403 18.2104 13.0787 18.3806 13.0787Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.55941 8.54493H12.0895C12.2605 8.54493 12.3987 8.40651 12.3987 8.23561V5.08442C12.3987 4.91352 12.2605 4.77472 12.0895 4.77472H8.55941C8.38842 4.77472 8.25024 4.91352 8.25024 5.08442V8.23561C8.25024 8.40651 8.38842 8.54493 8.55941 8.54493Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.4994 8.54493H17.0299C17.2005 8.54493 17.339 8.40651 17.339 8.23561V5.08442C17.339 4.91352 17.2005 4.77472 17.0299 4.77472H13.4994C13.3288 4.77472 13.1906 4.91352 13.1906 5.08442V8.23561C13.1906 8.40651 13.3288 8.54493 13.4994 8.54493Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.3806 8.54492H21.9111C22.082 8.54492 22.2202 8.4065 22.2202 8.2356V5.08442C22.2202 4.91352 22.082 4.77471 21.9111 4.77471H18.3806C18.2104 4.77471 18.0714 4.91352 18.0714 5.08442V8.2356C18.0714 8.4065 18.2104 8.54492 18.3806 8.54492Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.3806 4.01146H21.9111C22.082 4.01146 22.2202 3.87265 22.2202 3.70175V0.550951C22.2202 0.379665 22.082 0.241245 21.9111 0.241245H18.3806C18.2104 0.241245 18.0714 0.379665 18.0714 0.550951V3.70175C18.0714 3.87265 18.2104 4.01146 18.3806 4.01146Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.3055 13.0787H26.8356C27.0066 13.0787 27.1448 12.9403 27.1448 12.769V9.61823C27.1448 9.44694 27.0066 9.30852 26.8356 9.30852H23.3055C23.1345 9.30852 22.9963 9.44694 22.9963 9.61823V12.769C22.9963 12.9403 23.1345 13.0787 23.3055 13.0787Z" fill="white"/>
|
||||
</g>
|
||||
<svg width="181" height="25" viewBox="0 0 181 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M24.3064 10.7906C23.7179 10.3937 22.1721 10.224 21.0479 10.5276C20.9873 9.40534 20.4097 8.45979 19.3538 7.63486L18.9624 7.37181L18.7016 7.76638C18.1891 8.54539 17.9741 9.58356 18.0502 10.5276C18.1107 11.1089 18.3126 11.7626 18.7016 12.2373C17.2388 13.088 15.8902 12.895 9.91811 12.895H0.699848C0.672673 14.2467 0.890067 16.8468 2.53915 18.9629C2.72161 19.1963 2.92114 19.4228 3.13776 19.6407C4.47861 20.987 6.50503 21.9738 9.53534 21.977C14.1581 21.9809 18.1185 19.4765 20.5277 13.421C21.3204 13.4343 23.4128 13.5635 24.4369 11.5797C24.4617 11.5463 24.6978 11.0536 24.6978 11.0536L24.3064 10.7906ZM6.71621 9.39601H4.12379V11.9945H6.71621V9.39601ZM10.0656 9.39601H7.47321V11.9945H10.0656V9.39601ZM13.415 9.39601H10.8226V11.9945H13.415V9.39601ZM16.7644 9.39601H14.172V11.9945H16.7644V9.39601ZM3.36602 9.39601H0.774382V11.9945H3.3668L3.36602 9.39601ZM6.71543 6.11341H4.12302V8.71194H6.71543V6.11341ZM10.0648 6.11341H7.47243V8.71194H10.0648V6.11341ZM13.4143 6.11341H10.8218V8.71194H13.4143V6.11341ZM13.4143 2.83081H10.8218V5.42934H13.4143V2.83081Z" fill="white"/>
|
||||
<path d="M36.4718 21.4958C35.2758 21.4958 34.1948 21.2198 33.2288 20.6678C32.2781 20.1005 31.5191 19.3338 30.9518 18.3678C30.3998 17.4018 30.1238 16.3131 30.1238 15.1018C30.1238 13.8905 30.3768 12.8095 30.8828 11.8588C31.4041 10.8928 32.1094 10.1338 32.9988 9.58181C33.8881 9.01448 34.8924 8.73081 36.0118 8.73081C36.9164 8.73081 37.7521 8.92248 38.5188 9.30581C39.2854 9.67381 39.9294 10.1798 40.4508 10.8238V4.61381C40.4508 4.26114 40.5581 3.97747 40.7728 3.76281C41.0028 3.54814 41.2864 3.44081 41.6238 3.44081C41.9764 3.44081 42.2601 3.54814 42.4748 3.76281C42.6894 3.97747 42.7968 4.26114 42.7968 4.61381V15.1018C42.7968 16.3131 42.5131 17.4018 41.9458 18.3678C41.3938 19.3338 40.6424 20.1005 39.6918 20.6678C38.7411 21.2198 37.6678 21.4958 36.4718 21.4958ZM36.4718 19.4258C37.2538 19.4258 37.9514 19.2418 38.5648 18.8738C39.1781 18.4905 39.6611 17.9691 40.0138 17.3098C40.3664 16.6505 40.5428 15.9145 40.5428 15.1018C40.5428 14.2738 40.3664 13.5378 40.0138 12.8938C39.6611 12.2498 39.1781 11.7438 38.5648 11.3758C37.9514 10.9925 37.2538 10.8008 36.4718 10.8008C35.7051 10.8008 35.0074 10.9925 34.3788 11.3758C33.7654 11.7438 33.2748 12.2498 32.9068 12.8938C32.5541 13.5378 32.3778 14.2738 32.3778 15.1018C32.3778 15.9145 32.5541 16.6505 32.9068 17.3098C33.2748 17.9691 33.7654 18.4905 34.3788 18.8738C35.0074 19.2418 35.7051 19.4258 36.4718 19.4258ZM51.6436 21.4958C50.4016 21.4958 49.3053 21.2275 48.3546 20.6908C47.404 20.1388 46.6526 19.3875 46.1006 18.4368C45.564 17.4708 45.2956 16.3668 45.2956 15.1248C45.2956 13.8675 45.564 12.7635 46.1006 11.8128C46.6526 10.8468 47.404 10.0955 48.3546 9.55881C49.3053 9.00681 50.4016 8.73081 51.6436 8.73081C52.8703 8.73081 53.959 9.00681 54.9096 9.55881C55.8603 10.0955 56.604 10.8468 57.1406 11.8128C57.6926 12.7635 57.9686 13.8675 57.9686 15.1248C57.9686 16.3668 57.7003 17.4708 57.1636 18.4368C56.627 19.3875 55.8833 20.1388 54.9326 20.6908C53.982 21.2275 52.8856 21.4958 51.6436 21.4958ZM51.6436 19.4258C52.441 19.4258 53.1463 19.2418 53.7596 18.8738C54.373 18.5058 54.8483 17.9998 55.1856 17.3558C55.5383 16.7118 55.7146 15.9681 55.7146 15.1248C55.7146 14.2815 55.5383 13.5378 55.1856 12.8938C54.8483 12.2345 54.373 11.7208 53.7596 11.3528C53.1463 10.9848 52.441 10.8008 51.6436 10.8008C50.8463 10.8008 50.141 10.9848 49.5276 11.3528C48.9143 11.7208 48.4313 12.2345 48.0786 12.8938C47.726 13.5378 47.5496 14.2815 47.5496 15.1248C47.5496 15.9681 47.726 16.7118 48.0786 17.3558C48.4313 17.9998 48.9143 18.5058 49.5276 18.8738C50.141 19.2418 50.8463 19.4258 51.6436 19.4258ZM66.1641 21.4958C64.9375 21.4958 63.8411 21.2198 62.8751 20.6678C61.9245 20.1005 61.1731 19.3415 60.6211 18.3908C60.0845 17.4248 59.8161 16.3361 59.8161 15.1248C59.8161 13.8828 60.0845 12.7788 60.6211 11.8128C61.1578 10.8468 61.8938 10.0955 62.8291 9.55881C63.7645 9.00681 64.8378 8.73081 66.0491 8.73081C66.9538 8.73081 67.7818 8.90714 68.5331 9.25981C69.2845 9.59714 69.9591 10.1108 70.5571 10.8008C70.7718 11.0461 70.8485 11.2991 70.7871 11.5598C70.7258 11.8205 70.5571 12.0505 70.2811 12.2498C70.0665 12.4031 69.8288 12.4568 69.5681 12.4108C69.3075 12.3495 69.0698 12.2115 68.8551 11.9968C68.1038 11.1995 67.1685 10.8008 66.0491 10.8008C65.2671 10.8008 64.5771 10.9848 63.9791 11.3528C63.3811 11.7055 62.9135 12.2038 62.5761 12.8478C62.2388 13.4918 62.0701 14.2508 62.0701 15.1248C62.0701 15.9528 62.2388 16.6888 62.5761 17.3328C62.9288 17.9768 63.4118 18.4905 64.0251 18.8738C64.6385 19.2418 65.3515 19.4258 66.1641 19.4258C66.7008 19.4258 67.1685 19.3645 67.5671 19.2418C67.9811 19.1038 68.3568 18.8968 68.6941 18.6208C68.9395 18.4215 69.1925 18.3141 69.4531 18.2988C69.7138 18.2681 69.9438 18.3371 70.1431 18.5058C70.4038 18.7205 70.5495 18.9658 70.5801 19.2418C70.6108 19.5025 70.5188 19.7401 70.3041 19.9548C69.2001 20.9821 67.8201 21.4958 66.1641 21.4958ZM75.4816 16.8038L74.0556 15.2398L81.1166 8.93781C81.3466 8.72314 81.5996 8.62347 81.8756 8.63881C82.1669 8.65414 82.4123 8.77681 82.6116 9.00681C82.8263 9.23681 82.9259 9.48981 82.9106 9.76581C82.8953 10.0418 82.7726 10.2871 82.5426 10.5018L75.4816 16.8038ZM74.4006 21.4038C74.0633 21.4038 73.7873 21.3041 73.5726 21.1048C73.3733 20.8901 73.2736 20.6141 73.2736 20.2768V4.56781C73.2736 4.23047 73.3733 3.96214 73.5726 3.76281C73.7873 3.54814 74.0633 3.44081 74.4006 3.44081C74.7379 3.44081 75.0063 3.54814 75.2056 3.76281C75.4203 3.96214 75.5276 4.23047 75.5276 4.56781V20.2768C75.5276 20.6141 75.4203 20.8901 75.2056 21.1048C75.0063 21.3041 74.7379 21.4038 74.4006 21.4038ZM82.6116 21.2888C82.3663 21.4881 82.0903 21.5725 81.7836 21.5418C81.4923 21.5265 81.2469 21.3961 81.0476 21.1508L76.3786 15.3778L77.9886 13.8598L82.7726 19.7478C82.9719 19.9931 83.0563 20.2615 83.0256 20.5528C83.0103 20.8288 82.8723 21.0741 82.6116 21.2888ZM90.1338 21.4958C88.8612 21.4958 87.7265 21.2275 86.7298 20.6908C85.7485 20.1388 84.9742 19.3875 84.4068 18.4368C83.8548 17.4708 83.5788 16.3668 83.5788 15.1248C83.5788 13.8675 83.8395 12.7635 84.3608 11.8128C84.8975 10.8468 85.6335 10.0955 86.5688 9.55881C87.5042 9.00681 88.57Line truncated
|
||||
<path d="M113.495 21.5188C112.283 21.5188 111.195 21.2428 110.229 20.6908C109.263 20.1235 108.496 19.3568 107.929 18.3908C107.377 17.4248 107.101 16.3285 107.101 15.1018C107.101 13.8905 107.369 12.8018 107.906 11.8358C108.458 10.8698 109.201 10.1108 110.137 9.55881C111.072 8.99147 112.13 8.70781 113.311 8.70781C114.338 8.70781 115.266 8.93014 116.094 9.37481C116.922 9.80414 117.589 10.3791 118.095 11.0998V4.33781C118.095 4.06181 118.179 3.84714 118.348 3.69381C118.516 3.52514 118.731 3.44081 118.992 3.44081C119.252 3.44081 119.467 3.52514 119.636 3.69381C119.804 3.84714 119.889 4.06181 119.889 4.33781V15.1938C119.858 16.3898 119.559 17.4708 118.992 18.4368C118.44 19.3875 117.681 20.1388 116.715 20.6908C115.764 21.2428 114.691 21.5188 113.495 21.5188ZM113.495 19.9088C114.384 19.9088 115.174 19.7018 115.864 19.2878C116.569 18.8585 117.121 18.2835 117.52 17.5628C117.934 16.8421 118.141 16.0218 118.141 15.1018C118.141 14.1971 117.934 13.3845 117.52 12.6638C117.121 11.9278 116.569 11.3528 115.864 10.9388C115.174 10.5248 114.384 10.3178 113.495 10.3178C112.621 10.3178 111.831 10.5248 111.126 10.9388C110.42 11.3528 109.861 11.9278 109.447 12.6638C109.033 13.3845 108.826 14.1971 108.826 15.1018C108.826 16.0218 109.033 16.8421 109.447 17.5628C109.861 18.2835 110.42 18.8585 111.126 19.2878C111.831 19.7018 112.621 19.9088 113.495 19.9088ZM128.756 21.5188C127.53 21.5188 126.433 21.2428 125.467 20.6908C124.501 20.1388 123.742 19.3798 123.19 18.4138C122.638 17.4478 122.362 16.3515 122.362 15.1248C122.362 13.8828 122.638 12.7788 123.19 11.8128C123.742 10.8468 124.501 10.0878 125.467 9.53581C126.433 8.98381 127.53 8.70781 128.756 8.70781C129.983 8.70781 131.072 8.98381 132.022 9.53581C132.988 10.0878 133.747 10.8468 134.299 11.8128C134.851 12.7788 135.135 13.8828 135.15 15.1248C135.15 16.3515 134.867 17.4478 134.299 18.4138C133.747 19.3798 132.988 20.1388 132.022 20.6908C131.072 21.2428 129.983 21.5188 128.756 21.5188ZM128.756 19.9088C129.646 19.9088 130.443 19.7018 131.148 19.2878C131.854 18.8738 132.406 18.3065 132.804 17.5858C133.203 16.8651 133.402 16.0448 133.402 15.1248C133.402 14.2048 133.203 13.3845 132.804 12.6638C132.406 11.9278 131.854 11.3528 131.148 10.9388C130.443 10.5248 129.646 10.3178 128.756 10.3178C127.867 10.3178 127.07 10.5248 126.364 10.9388C125.659 11.3528 125.099 11.9278 124.685 12.6638C124.287 13.3845 124.087 14.2048 124.087 15.1248C124.087 16.0448 124.287 16.8651 124.685 17.5858C125.099 18.3065 125.659 18.8738 126.364 19.2878C127.07 19.7018 127.867 19.9088 128.756 19.9088ZM143.207 21.5188C141.996 21.5188 140.915 21.2428 139.964 20.6908C139.029 20.1235 138.285 19.3568 137.733 18.3908C137.196 17.4248 136.928 16.3361 136.928 15.1248C136.928 13.8981 137.189 12.8018 137.71 11.8358C138.231 10.8698 138.944 10.1108 139.849 9.55881C140.754 8.99147 141.796 8.70781 142.977 8.70781C143.912 8.70781 144.771 8.89181 145.553 9.25981C146.35 9.62781 147.048 10.1798 147.646 10.9158C147.815 11.0998 147.876 11.2991 147.83 11.5138C147.784 11.7131 147.654 11.8895 147.439 12.0428C147.27 12.1655 147.079 12.2115 146.864 12.1808C146.665 12.1348 146.488 12.0198 146.335 11.8358C145.446 10.8238 144.326 10.3178 142.977 10.3178C142.118 10.3178 141.359 10.5248 140.7 10.9388C140.056 11.3528 139.55 11.9201 139.182 12.6408C138.829 13.3615 138.653 14.1895 138.653 15.1248C138.653 16.0448 138.845 16.8651 139.228 17.5858C139.611 18.3065 140.148 18.8738 140.838 19.2878C141.528 19.7018 142.318 19.9088 143.207 19.9088C143.805 19.9088 144.349 19.8321 144.84 19.6788C145.346 19.5101 145.791 19.2571 146.174 18.9198C146.358 18.7665 146.55 18.6821 146.749 18.6668C146.948 18.6515 147.132 18.7128 147.301 18.8508C147.485 19.0195 147.585 19.2111 147.6 19.4258C147.631 19.6405 147.562 19.8245 147.393 19.9778C146.274 21.0051 144.878 21.5188 143.207 21.5188ZM154.667 21.5188C153.762 21.5188 152.865 21.3655 151.976 21.0588C151.086 20.7521 150.366 20.2921 149.814 19.6788C149.645 19.4948 149.576 19.2878 149.607 19.0578C149.637 18.8278 149.752 18.6285 149.952 18.4598C150.166 18.3065 150.389 18.2451 150.619 18.2758C150.849 18.3065 151.04 18.4061 151.194 18.5748C151.562 19.0041 152.045 19.3338 152.643 19.5638C153.256 19.7938 153.931 19.9088 154.667 19.9088C155.801 19.9088 156.622 19.7171 157.128 19.3338C157.634 18.9351 157.894 18.4598 157.91 17.9078C157.91 17.3558 157.649 16.9035 157.128 16.5508C156.606 16.1828 155.748 15.8991 154.552 15.6998C153.003 15.4545 151.868 15.0251 151.148 14.4118C150.427 13.7985 150.067 13.0701 150.067 12.2268C150.067 11.4448 150.274 10.7931 150.688 10.2718C151.102 9.75047 151.654 9.35947 152.344 9.09881C153.034 8.83814 153.793 8.70781 154.621 8.70781C155.648 8.70781 156.53 8.88414 157.266 9.23681C158.017 9.58947 158.623 10.0648 159.083 10.6628C159.236 10.8621 159.297 11.0691 159.267 11.2838C159.236 11.4985 159.113 11.6748 158.899 11.8128C158.715 11.9201 158.5 11.9585 158.255 11.9278C158.025 11.8818 157.825 11.7668 157.657 11.5828C157.273 11.1381 156.829 10.8161 156.323 10.6168C155.817 10.4021 155.234 10.2948 154.575 10.2948C153.731Line truncated
|
||||
<path d="M170.072 8.46533L165.611 21.4058H162.914L168.533 6.47607H170.256L170.072 8.46533ZM173.804 21.4058L169.333 8.46533L169.138 6.47607H170.871L176.511 21.4058H173.804ZM173.589 15.8687V17.9092H165.468V15.8687H173.589ZM180.93 6.47607V21.4058H178.357V6.47607H180.93Z" fill="url(#paint0_linear_193_9979)"/>
|
||||
<defs>
|
||||
<clipPath id="clip0_217_4032">
|
||||
<rect width="40" height="28.9986" fill="white"/>
|
||||
</clipPath>
|
||||
<linearGradient id="paint0_linear_193_9979" x1="186.02" y1="0.405762" x2="158.788" y2="24.9838" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FCE1A9"/>
|
||||
<stop offset="1" stop-color="#FFA6F0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 14 KiB |
Reference in new issue
Block a user