Compare commits

..

10 commits

5 changed files with 46 additions and 9 deletions

View file

@ -133,7 +133,10 @@ import magnifierIcon from "@icons/magnifier.svg?raw";
//@ts-expect-error
"@pagefind/default-ui"
);
new PagefindUI({
const versionMatch = window.location.pathname.match(/^\/docs\/([^/]+)/);
const activeVersion = versionMatch?.[1];
const search = new PagefindUI({
element: "#qs_search",
// resetStyles: false,
sort: { version: "desc" },
@ -170,6 +173,10 @@ import magnifierIcon from "@icons/magnifier.svg?raw";
});
},
});
if (activeVersion) {
search.triggerFilters({ version: activeVersion });
}
});
});
}

View file

@ -176,12 +176,13 @@ document.addEventListener("DOMContentLoaded", () => {
// video handling
const videos = scroller.querySelectorAll("video");
const observerOptions = {
const playObserverOptions = {
root: container,
threshold: 0.5,
};
const videoObserver = new IntersectionObserver(entries => {
const playObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
const video = entry.target as HTMLVideoElement;
if (entry.isIntersecting) {
@ -190,12 +191,28 @@ document.addEventListener("DOMContentLoaded", () => {
video.pause();
}
});
}, observerOptions);
}, playObserverOptions);
const resetObserverOptions = {
root: container,
threshold: 0.01,
};
const resetObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
const video = entry.target as HTMLVideoElement;
if (!entry.isIntersecting) {
video.currentTime = 0;
video.pause();
}
});
}, resetObserverOptions);
const startObserving = () => {
const allVideos = scroller.querySelectorAll("video");
allVideos.forEach(v => {
videoObserver.observe(v);
playObserver.observe(v);
resetObserver.observe(v);
v.addEventListener("ended", () => {
targetScrollX += itemWidth;
startAnimation();

View file

@ -43,8 +43,14 @@ const details = type.details
? await processMarkdown(version.name, type.details)
: null;
const description = type.description
? await processMarkdown(version.name, type.description)
: null;
const searchWeight =
version.name != "master" ? getSearchWeight(version.name) : 999.0;
---
<DocsLayout
@ -78,7 +84,7 @@ const searchWeight =
<code class="type-module" data-pagefind-ignore>import {module.name}</code>
<section class="typedocs-data typedata">
<subheading class="typedocs-subheading">
{details ? <span class="parsedMD" set:html={details}/> : (<span class="toparse">{type.description}</span>)}
{details ? <span class="parsedMD" set:html={details}/> : <span class="parsedMD" set:html={description}/>}
</subheading>
{Object.keys(type.properties ?? {}).length != 0 && (
<h2>Properties <a href={`/docs/${version.name}/guide/qml-language#properties`}>[?]</a></h2>

View file

@ -2,7 +2,6 @@
import DocsLayout from "@layouts/DocsLayout.astro";
import { getVersionsData } from "@config/io/generateTypeData";
import { processMarkdown } from "@src/config/io/markdown";
import type { TypeData } from "@_types";
export async function getStaticPaths() {
return (await getVersionsData()).versions.flatMap(version => {
@ -17,6 +16,11 @@ const { version, module } = Astro.props;
const details = module.details
? await processMarkdown(version.name, module.details)
: null;
const types = await Promise.all(module.types.map(async type => ({
description2: type.description ? await processMarkdown(version.name, type.description) : null,
...type
})));
---
<DocsLayout
@ -29,13 +33,13 @@ const details = module.details
<section>
<span>{module.description}</span>
<div class="root-nav" data-pagefind-ignore>
{module.types.map((type: TypeData) =>
{types.map(type =>
(
<div class="root-nav-entry">
<a class="root-nav-link" href={`/docs/${version.name}/types/${module.name}/${type.name}`}>
{type.name}
</a>
<span class="root-nav-desc">{type.description}</span>
{type.description2 && <span class="root-nav-desc" set:html={type.description2}/>}
</div>
)
)}

View file

@ -363,6 +363,9 @@ html:has(input#theme-manual-toggle:checked) .typevariants {
& .root-nav-desc {
padding-left: 1rem;
border-left: 1px solid hsl(var(--blue) 10% 15% / 0.6);
/* for processMarkdown in desc strs*/
& > p { margin: 0 }
}
}
}