From 7c744961494ca80f82b3ad66c98ff0a1c0496db7 Mon Sep 17 00:00:00 2001 From: "Fred K. Schott" Date: Fri, 30 Jul 2021 22:39:15 -0700 Subject: Docs site cleanup (#948) * add language selector * docs site cleanup * review feedback * code review comments --- docs/src/components/ArticleFooter.astro | 16 - docs/src/components/AstroLogo.astro | 20 -- docs/src/components/AvatarList.astro | 151 --------- docs/src/components/DocSidebar/DocSidebar.tsx | 22 -- docs/src/components/DocSidebar/EditOnGithub.tsx | 29 -- docs/src/components/DocSidebar/More.tsx | 69 ---- docs/src/components/DocSidebar/TableOfContents.tsx | 55 --- docs/src/components/Footer/AvatarList.astro | 151 +++++++++ docs/src/components/Footer/Footer.astro | 16 + docs/src/components/HeadCommon.astro | 37 +++ docs/src/components/HeadSEO.astro | 40 +++ docs/src/components/Header/AstroLogo.astro | 20 ++ docs/src/components/Header/Header.astro | 155 +++++++++ docs/src/components/Header/LanguageSelect.css | 48 +++ docs/src/components/Header/LanguageSelect.tsx | 44 +++ docs/src/components/Header/Search.css | 67 ++++ docs/src/components/Header/Search.tsx | 87 +++++ docs/src/components/Header/SidebarToggle.tsx | 44 +++ docs/src/components/Header/SkipToContent.astro | 21 ++ docs/src/components/LeftSidebar/LeftSidebar.astro | 96 ++++++ docs/src/components/MenuToggle.tsx | 44 --- docs/src/components/MetaData.astro | 42 --- docs/src/components/Note.astro | 45 --- docs/src/components/PageContent/PageContent.astro | 41 +++ docs/src/components/RightSidebar/MoreMenu.astro | 68 ++++ .../src/components/RightSidebar/RightSidebar.astro | 25 ++ .../components/RightSidebar/TableOfContents.tsx | 55 +++ .../components/RightSidebar/ThemeToggleButton.css | 38 +++ .../components/RightSidebar/ThemeToggleButton.tsx | 83 +++++ docs/src/components/Search.css | 93 ------ docs/src/components/Search.tsx | 88 ----- docs/src/components/SiteSidebar.astro | 96 ------ docs/src/components/ThemeToggle.tsx | 82 ----- docs/src/config.ts | 30 +- docs/src/layouts/Main.astro | 367 --------------------- docs/src/layouts/MainLayout.astro | 122 +++++++ docs/src/layouts/SplashLayout.astro | 48 +++ docs/src/pages/404.astro | 7 +- docs/src/pages/blog/island-architecture.md | 2 +- docs/src/pages/comparing-astro-vs-other-tools.md | 2 +- docs/src/pages/core-concepts/astro-components.md | 2 +- docs/src/pages/core-concepts/astro-pages.md | 2 +- docs/src/pages/core-concepts/collections.md | 2 +- .../src/pages/core-concepts/component-hydration.md | 2 +- docs/src/pages/core-concepts/layouts.md | 2 +- docs/src/pages/core-concepts/project-structure.md | 2 +- docs/src/pages/examples.md | 2 +- docs/src/pages/getting-started.md | 2 +- docs/src/pages/guides/data-fetching.md | 2 +- docs/src/pages/guides/deploy.md | 2 +- docs/src/pages/guides/imports.md | 2 +- docs/src/pages/guides/markdown-content.md | 2 +- docs/src/pages/guides/publish-to-npm.md | 2 +- docs/src/pages/guides/styling.md | 2 +- docs/src/pages/index.astro | 21 +- docs/src/pages/installation.md | 2 +- docs/src/pages/nl/getting-started.md | 2 +- docs/src/pages/quick-start.md | 2 +- docs/src/pages/reference/api-reference.md | 2 +- docs/src/pages/reference/builtin-components.md | 2 +- docs/src/pages/reference/cli-reference.md | 2 +- .../src/pages/reference/configuration-reference.md | 2 +- docs/src/pages/reference/renderer-reference.md | 2 +- 63 files changed, 1356 insertions(+), 1275 deletions(-) delete mode 100644 docs/src/components/ArticleFooter.astro delete mode 100644 docs/src/components/AstroLogo.astro delete mode 100644 docs/src/components/AvatarList.astro delete mode 100644 docs/src/components/DocSidebar/DocSidebar.tsx delete mode 100644 docs/src/components/DocSidebar/EditOnGithub.tsx delete mode 100644 docs/src/components/DocSidebar/More.tsx delete mode 100644 docs/src/components/DocSidebar/TableOfContents.tsx create mode 100644 docs/src/components/Footer/AvatarList.astro create mode 100644 docs/src/components/Footer/Footer.astro create mode 100644 docs/src/components/HeadCommon.astro create mode 100644 docs/src/components/HeadSEO.astro create mode 100644 docs/src/components/Header/AstroLogo.astro create mode 100644 docs/src/components/Header/Header.astro create mode 100644 docs/src/components/Header/LanguageSelect.css create mode 100644 docs/src/components/Header/LanguageSelect.tsx create mode 100644 docs/src/components/Header/Search.css create mode 100644 docs/src/components/Header/Search.tsx create mode 100644 docs/src/components/Header/SidebarToggle.tsx create mode 100644 docs/src/components/Header/SkipToContent.astro create mode 100644 docs/src/components/LeftSidebar/LeftSidebar.astro delete mode 100644 docs/src/components/MenuToggle.tsx delete mode 100644 docs/src/components/MetaData.astro delete mode 100644 docs/src/components/Note.astro create mode 100644 docs/src/components/PageContent/PageContent.astro create mode 100644 docs/src/components/RightSidebar/MoreMenu.astro create mode 100644 docs/src/components/RightSidebar/RightSidebar.astro create mode 100644 docs/src/components/RightSidebar/TableOfContents.tsx create mode 100644 docs/src/components/RightSidebar/ThemeToggleButton.css create mode 100644 docs/src/components/RightSidebar/ThemeToggleButton.tsx delete mode 100644 docs/src/components/Search.css delete mode 100644 docs/src/components/Search.tsx delete mode 100644 docs/src/components/SiteSidebar.astro delete mode 100644 docs/src/components/ThemeToggle.tsx delete mode 100644 docs/src/layouts/Main.astro create mode 100644 docs/src/layouts/MainLayout.astro create mode 100644 docs/src/layouts/SplashLayout.astro (limited to 'docs/src') diff --git a/docs/src/components/ArticleFooter.astro b/docs/src/components/ArticleFooter.astro deleted file mode 100644 index 48de51054..000000000 --- a/docs/src/components/ArticleFooter.astro +++ /dev/null @@ -1,16 +0,0 @@ ---- -import AvatarList from './AvatarList.astro'; -const { path } = Astro.props; ---- - - - - diff --git a/docs/src/components/AstroLogo.astro b/docs/src/components/AstroLogo.astro deleted file mode 100644 index ff1939ad9..000000000 --- a/docs/src/components/AstroLogo.astro +++ /dev/null @@ -1,20 +0,0 @@ ---- -const {size} = Astro.props; ---- - \ No newline at end of file diff --git a/docs/src/components/AvatarList.astro b/docs/src/components/AvatarList.astro deleted file mode 100644 index 589e296b9..000000000 --- a/docs/src/components/AvatarList.astro +++ /dev/null @@ -1,151 +0,0 @@ ---- -// fetch all commits for just this page's path -const path = "docs/" + Astro.props.path; -const url = `https://api.github.com/repos/snowpackjs/astro/commits?path=${path}`; -const commitsURL = `https://github.com/snowpackjs/astro/commits/main/${path}`; - -async function getCommits(url) { - try { - const token = import.meta.env.SNOWPACK_PUBLIC_GITHUB_TOKEN; - if (!token) { - throw new Error( - 'Cannot find "SNOWPACK_PUBLIC_GITHUB_TOKEN" used for escaping rate-limiting.' - ); - } - - const auth = `Basic ${Buffer.from(token, "binary").toString("base64")}`; - - const res = await fetch(url, { - method: "GET", - headers: { - Authorization: auth, - "User-Agent": "astro-docs/1.0", - }, - }); - - const data = await res.json(); - - if (!res.ok) { - throw new Error( - `Request to fetch commits failed. Reason: ${res.statusText} - Message: ${data.message}` - ); - } - - return data; - } catch (e) { - console.warn(`[error] /src/components/AvatarList.astro - ${e?.message ?? e}`); - return new Array(); - } -} - -function removeDups(arr) { - if (!arr) { - return new Array(); - } - let map = new Map(); - - for (let item of arr) { - let author = item.author; - // Deduplicate based on author.id - map.set(author.id, { login: author.login, id: author.id }); - } - - return Array.from(map.values()); -} - -const data = await getCommits(url); -const unique = removeDups(data); -const recentContributors = unique.slice(0, 3); // only show avatars for the 3 most recent contributors -const additionalContributors = unique.length - recentContributors.length; // list the rest of them as # of extra contributors - ---- - -
- - {additionalContributors > 0 && {`and ${additionalContributors} additional contributor${additionalContributors > 1 ? 's' : ''}.`}} - {unique.length === 0 && Contributors} -
- - diff --git a/docs/src/components/DocSidebar/DocSidebar.tsx b/docs/src/components/DocSidebar/DocSidebar.tsx deleted file mode 100644 index ebf3dbf0d..000000000 --- a/docs/src/components/DocSidebar/DocSidebar.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import type { FunctionalComponent } from 'preact'; -import { h } from 'preact'; -import More from './More'; -import TableOfContents from './TableOfContents'; - -export const DocSidebar: FunctionalComponent<{ - headers: any[]; - editHref: string; -}> = ({ headers = [], editHref }) => { - return ( - - ); -}; - -export default DocSidebar; -export { default as More } from './More'; -export { default as TableOfContents } from './TableOfContents'; diff --git a/docs/src/components/DocSidebar/EditOnGithub.tsx b/docs/src/components/DocSidebar/EditOnGithub.tsx deleted file mode 100644 index e6e757f5f..000000000 --- a/docs/src/components/DocSidebar/EditOnGithub.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import type { FunctionalComponent } from 'preact'; -import { h } from 'preact'; - -const EditOnGithub: FunctionalComponent<{ href: string }> = ({ href }) => { - return ( - - - Edit this page - - ); -}; - -export default EditOnGithub; diff --git a/docs/src/components/DocSidebar/More.tsx b/docs/src/components/DocSidebar/More.tsx deleted file mode 100644 index 6b0c5145c..000000000 --- a/docs/src/components/DocSidebar/More.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import type { FunctionalComponent } from 'preact'; -import { h, Fragment } from 'preact'; -import EditOnGithub from './EditOnGithub'; -import ThemeToggle from '../ThemeToggle'; - -const More: FunctionalComponent<{ editHref: string }> = ({ editHref }) => { - return ( - <> -

More

- -
- -
- - ); -}; - -export default More; diff --git a/docs/src/components/DocSidebar/TableOfContents.tsx b/docs/src/components/DocSidebar/TableOfContents.tsx deleted file mode 100644 index 803b05568..000000000 --- a/docs/src/components/DocSidebar/TableOfContents.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import type { FunctionalComponent } from 'preact'; -import { h, Fragment } from 'preact'; -import { useState, useEffect, useRef } from 'preact/hooks'; - -const TableOfContents: FunctionalComponent<{ headers: any[] }> = ({ - headers = [], -}) => { - const itemOffsets = useRef([]); - const [activeId, setActiveId] = useState(undefined); - - useEffect(() => { - const getItemOffsets = () => { - const titles = document.querySelectorAll('article :is(h1, h2, h3, h4)'); - itemOffsets.current = Array.from(titles).map((title) => ({ - id: title.id, - topOffset: title.getBoundingClientRect().top + window.scrollY, - })); - }; - - getItemOffsets(); - window.addEventListener('resize', getItemOffsets); - - return () => { - window.removeEventListener('resize', getItemOffsets); - }; - }, []); - - return ( - <> -

On this page

- - - ); -}; - -export default TableOfContents; diff --git a/docs/src/components/Footer/AvatarList.astro b/docs/src/components/Footer/AvatarList.astro new file mode 100644 index 000000000..589e296b9 --- /dev/null +++ b/docs/src/components/Footer/AvatarList.astro @@ -0,0 +1,151 @@ +--- +// fetch all commits for just this page's path +const path = "docs/" + Astro.props.path; +const url = `https://api.github.com/repos/snowpackjs/astro/commits?path=${path}`; +const commitsURL = `https://github.com/snowpackjs/astro/commits/main/${path}`; + +async function getCommits(url) { + try { + const token = import.meta.env.SNOWPACK_PUBLIC_GITHUB_TOKEN; + if (!token) { + throw new Error( + 'Cannot find "SNOWPACK_PUBLIC_GITHUB_TOKEN" used for escaping rate-limiting.' + ); + } + + const auth = `Basic ${Buffer.from(token, "binary").toString("base64")}`; + + const res = await fetch(url, { + method: "GET", + headers: { + Authorization: auth, + "User-Agent": "astro-docs/1.0", + }, + }); + + const data = await res.json(); + + if (!res.ok) { + throw new Error( + `Request to fetch commits failed. Reason: ${res.statusText} + Message: ${data.message}` + ); + } + + return data; + } catch (e) { + console.warn(`[error] /src/components/AvatarList.astro + ${e?.message ?? e}`); + return new Array(); + } +} + +function removeDups(arr) { + if (!arr) { + return new Array(); + } + let map = new Map(); + + for (let item of arr) { + let author = item.author; + // Deduplicate based on author.id + map.set(author.id, { login: author.login, id: author.id }); + } + + return Array.from(map.values()); +} + +const data = await getCommits(url); +const unique = removeDups(data); +const recentContributors = unique.slice(0, 3); // only show avatars for the 3 most recent contributors +const additionalContributors = unique.length - recentContributors.length; // list the rest of them as # of extra contributors + +--- + +
+
    + +{recentContributors.map((item) => ( +
  • {`Contributor
  • + +))} +
+ {additionalContributors > 0 && {`and ${additionalContributors} additional contributor${additionalContributors > 1 ? 's' : ''}.`}} + {unique.length === 0 && Contributors} +
+ + diff --git a/docs/src/components/Footer/Footer.astro b/docs/src/components/Footer/Footer.astro new file mode 100644 index 000000000..48de51054 --- /dev/null +++ b/docs/src/components/Footer/Footer.astro @@ -0,0 +1,16 @@ +--- +import AvatarList from './AvatarList.astro'; +const { path } = Astro.props; +--- + +
+ +
+ + diff --git a/docs/src/components/HeadCommon.astro b/docs/src/components/HeadCommon.astro new file mode 100644 index 000000000..3a58af07b --- /dev/null +++ b/docs/src/components/HeadCommon.astro @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/src/components/HeadSEO.astro b/docs/src/components/HeadSEO.astro new file mode 100644 index 000000000..5553eb2d0 --- /dev/null +++ b/docs/src/components/HeadSEO.astro @@ -0,0 +1,40 @@ +--- +import {SITE, OPEN_GRAPH} from '../config.ts'; +export interface Props { + content: any, + site: any, + canonicalURL: URL | string, +}; +const { content = {}, canonicalURL } = Astro.props; +const formattedContentTitle = content.title ? `${content.title} 🚀 ${SITE.title}` : SITE.title; +const imageSrc = content?.image?.src ?? OPEN_GRAPH.image.src; +const canonicalImageSrc = new URL(imageSrc, Astro.site); +const imageAlt = content?.image?.alt ?? OPEN_GRAPH.image.alt; +--- + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/components/Header/AstroLogo.astro b/docs/src/components/Header/AstroLogo.astro new file mode 100644 index 000000000..ff1939ad9 --- /dev/null +++ b/docs/src/components/Header/AstroLogo.astro @@ -0,0 +1,20 @@ +--- +const {size} = Astro.props; +--- + \ No newline at end of file diff --git a/docs/src/components/Header/Header.astro b/docs/src/components/Header/Header.astro new file mode 100644 index 000000000..6ee66e24e --- /dev/null +++ b/docs/src/components/Header/Header.astro @@ -0,0 +1,155 @@ +--- +import SkipToContent from './SkipToContent.astro'; +import SidebarToggle from './SidebarToggle.tsx'; +import Search from "./Search.jsx"; +// import LanguageSelect from './LanguageSelect.jsx'; +--- + +
+ + +
\ No newline at end of file diff --git a/docs/src/components/Header/LanguageSelect.css b/docs/src/components/Header/LanguageSelect.css new file mode 100644 index 000000000..f353c18c2 --- /dev/null +++ b/docs/src/components/Header/LanguageSelect.css @@ -0,0 +1,48 @@ + +.language-select { + flex-grow: 1; + width: 48px; + box-sizing: border-box; + margin: 0; + padding: 0.33em 0.5em; + overflow: visible; + font-weight: 500; + font-size: 1rem; + font-family: inherit; + line-height: inherit; + background-color: transparent; + border-color: var(--theme-text-lighter); + color: var(--theme-text-light); + border-style: solid; + border-width: 1px; + border-radius: 0.25rem; + outline: 0; + cursor: pointer; + transition-timing-function: ease-out; + transition-duration: 0.2s; + transition-property: border-color, color; + -webkit-font-smoothing: antialiased; + padding-left: 30px; + padding-right: 1rem; +} +.language-select-wrapper .language-select:hover, +.language-select-wrapper .language-select:focus { + color: var(--theme-text); + border-color: var(--theme-text-light); +} +.language-select-wrapper { + color: var(--theme-text-light); + position: relative; +} +.language-select-wrapper > svg { + position: absolute; + top: 7px; + left: 10px; + z-index: -1; +} + +@media (min-width: 50em) { + .language-select { + width: 100%; + } +} \ No newline at end of file diff --git a/docs/src/components/Header/LanguageSelect.tsx b/docs/src/components/Header/LanguageSelect.tsx new file mode 100644 index 000000000..62849e867 --- /dev/null +++ b/docs/src/components/Header/LanguageSelect.tsx @@ -0,0 +1,44 @@ +import type { FunctionalComponent } from 'preact'; +import { h } from 'preact'; +import './LanguageSelect.css'; + +const SelectLanguage: FunctionalComponent<{}> = ({}) => { + let defaultValue = undefined; + if (!import.meta.env.SSR) { + const oldPathname = window.location.pathname; + const oldPathnameParts = oldPathname.split('/'); + if (/[a-z]{2}/.test(oldPathnameParts[1])) { + defaultValue = oldPathnameParts[1]; + } + } + + return ( +
+ + +
+ ); +}; + +export default SelectLanguage; diff --git a/docs/src/components/Header/Search.css b/docs/src/components/Header/Search.css new file mode 100644 index 000000000..47ec15acf --- /dev/null +++ b/docs/src/components/Header/Search.css @@ -0,0 +1,67 @@ +/** Style Algolia */ +:root { + --docsearch-primary-color: var(--theme-accent); + --docsearch-logo-color: var(--theme-text); +} +.search-input { + flex-grow: 1; + box-sizing: border-box; + width: 100%; + margin: 0; + padding: 0.33em 0.5em; + overflow: visible; + font-weight: 500; + font-size: 1rem; + font-family: inherit; + line-height: inherit; + background-color: var(--theme-divider); + border-color: var(--theme-divider); + color: var(--theme-text-light); + border-style: solid; + border-width: 1px; + border-radius: 0.25rem; + outline: 0; + cursor: pointer; + transition-timing-function: ease-out; + transition-duration: 0.2s; + transition-property: border-color, color; + -webkit-font-smoothing: antialiased; +} +.search-input:hover, +.search-input:focus { + color: var(--theme-text); + border-color: var(--theme-text-light); +} +.search-input:hover::placeholder, +.search-input:focus::placeholder { + color: var(--theme-text-light); +} +.search-input::placeholder { + color: var(--theme-text-light); +} +.search-hint { + position: absolute; + top: 7px; + right: 19px; + padding: 3px 5px; + display: none; + display: none; + align-items: center; + justify-content: center; + letter-spacing: 0.125em; + font-size: 13px; + font-family: var(--font-mono); + pointer-events: none; + border-color: var(--theme-text-lighter); + color: var(--theme-text-light); + border-style: solid; + border-width: 1px; + border-radius: 0.25rem; + line-height: 14px; +} + +@media (min-width: 50em) { + .search-hint { + display: flex; + } +} \ No newline at end of file diff --git a/docs/src/components/Header/Search.tsx b/docs/src/components/Header/Search.tsx new file mode 100644 index 000000000..a1684e49f --- /dev/null +++ b/docs/src/components/Header/Search.tsx @@ -0,0 +1,87 @@ +/* jsxImportSource: react */ +import { useState, useCallback, useRef } from 'react'; +import { createPortal } from 'react-dom'; +import { DocSearchModal, useDocSearchKeyboardEvents } from '@docsearch/react'; +import '@docsearch/css//dist/style.css'; +import './Search.css'; + +export default function Search() { + const [isOpen, setIsOpen] = useState(false); + const searchButtonRef = useRef(); + const [initialQuery, setInitialQuery] = useState(null); + + const onOpen = useCallback(() => { + setIsOpen(true); + }, [setIsOpen]); + + const onClose = useCallback(() => { + setIsOpen(false); + }, [setIsOpen]); + + const onInput = useCallback( + (e) => { + setIsOpen(true); + setInitialQuery(e.key); + }, + [setIsOpen, setInitialQuery] + ); + + useDocSearchKeyboardEvents({ + isOpen, + onOpen, + onClose, + onInput, + searchButtonRef, + }); + + return ( + <> + + {isOpen && + createPortal( + { + return items.map((item) => { + // We transform the absolute URL into a relative URL to + // work better on localhost, preview URLS. + const a = document.createElement('a'); + a.href = item.url; + const hash = a.hash === '#overview' ? '' : a.hash; + return { + ...item, + url: `${a.pathname}${hash}`, + }; + }); + }} + />, + document.body + )} + + ); +} diff --git a/docs/src/components/Header/SidebarToggle.tsx b/docs/src/components/Header/SidebarToggle.tsx new file mode 100644 index 000000000..605581077 --- /dev/null +++ b/docs/src/components/Header/SidebarToggle.tsx @@ -0,0 +1,44 @@ +import type { FunctionalComponent } from 'preact'; +import { h, Fragment } from 'preact'; +import { useState, useEffect } from 'preact/hooks'; + +const MenuToggle: FunctionalComponent = () => { + const [sidebarShown, setSidebarShown] = useState(false); + + useEffect(() => { + const body = document.getElementsByTagName('body')[0]; + if (sidebarShown) { + body.classList.add('mobile-sidebar-toggle'); + } else { + body.classList.remove('mobile-sidebar-toggle'); + } + }, [sidebarShown]); + + return ( + + ); +}; + +export default MenuToggle; diff --git a/docs/src/components/Header/SkipToContent.astro b/docs/src/components/Header/SkipToContent.astro new file mode 100644 index 000000000..6df3a72ed --- /dev/null +++ b/docs/src/components/Header/SkipToContent.astro @@ -0,0 +1,21 @@ + + diff --git a/docs/src/components/LeftSidebar/LeftSidebar.astro b/docs/src/components/LeftSidebar/LeftSidebar.astro new file mode 100644 index 000000000..f44762dba --- /dev/null +++ b/docs/src/components/LeftSidebar/LeftSidebar.astro @@ -0,0 +1,96 @@ +--- +import { SIDEBAR } from '../../config.ts'; +const {currentPage} = Astro.props; +--- + + + + + + diff --git a/docs/src/components/MenuToggle.tsx b/docs/src/components/MenuToggle.tsx deleted file mode 100644 index 605581077..000000000 --- a/docs/src/components/MenuToggle.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import type { FunctionalComponent } from 'preact'; -import { h, Fragment } from 'preact'; -import { useState, useEffect } from 'preact/hooks'; - -const MenuToggle: FunctionalComponent = () => { - const [sidebarShown, setSidebarShown] = useState(false); - - useEffect(() => { - const body = document.getElementsByTagName('body')[0]; - if (sidebarShown) { - body.classList.add('mobile-sidebar-toggle'); - } else { - body.classList.remove('mobile-sidebar-toggle'); - } - }, [sidebarShown]); - - return ( - - ); -}; - -export default MenuToggle; diff --git a/docs/src/components/MetaData.astro b/docs/src/components/MetaData.astro deleted file mode 100644 index ce5a9ff77..000000000 --- a/docs/src/components/MetaData.astro +++ /dev/null @@ -1,42 +0,0 @@ ---- -export interface Props { - content: any, - site: any, - canonicalURL: URL | string, -}; -const { content = {}, site, canonicalURL } = Astro.props; -const formattedContentTitle = content.title ? `${content.title} 🚀 ${site.title}` : site.title; -const imageSrc = content?.image?.src ?? site.image.src; -const canonicalImageSrc = new URL(imageSrc, Astro.site); -const imageAlt = content?.image?.alt ?? site.image.alt; ---- - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/src/components/Note.astro b/docs/src/components/Note.astro deleted file mode 100644 index a9c2ebf51..000000000 --- a/docs/src/components/Note.astro +++ /dev/null @@ -1,45 +0,0 @@ ---- -const { type = 'tip', title } = Astro.props; ---- - - - - diff --git a/docs/src/components/PageContent/PageContent.astro b/docs/src/components/PageContent/PageContent.astro new file mode 100644 index 000000000..fd1e9d242 --- /dev/null +++ b/docs/src/components/PageContent/PageContent.astro @@ -0,0 +1,41 @@ +--- +const {content, githubEditUrl} = Astro.props; +const title = content.title; +const headers = content.astro.headers; +import MoreMenu from '../RightSidebar/MoreMenu.astro'; +import TableOfContents from '../RightSidebar/TableOfContents.tsx'; +--- + +
+
+

{title}

+ + +
+ +
\ No newline at end of file diff --git a/docs/src/components/RightSidebar/MoreMenu.astro b/docs/src/components/RightSidebar/MoreMenu.astro new file mode 100644 index 000000000..6014bdee7 --- /dev/null +++ b/docs/src/components/RightSidebar/MoreMenu.astro @@ -0,0 +1,68 @@ +--- +import ThemeToggleButton from './ThemeToggleButton.jsx'; +const {editHref} = Astro.props; +--- + +

More

+ +
+ +
diff --git a/docs/src/components/RightSidebar/RightSidebar.astro b/docs/src/components/RightSidebar/RightSidebar.astro new file mode 100644 index 000000000..ed1dd37cc --- /dev/null +++ b/docs/src/components/RightSidebar/RightSidebar.astro @@ -0,0 +1,25 @@ +--- +import TableOfContents from './TableOfContents.jsx'; +import MoreMenu from './MoreMenu.astro'; +const {content, githubEditUrl} = Astro.props; +const headers = content.astro.headers; +--- + + \ No newline at end of file diff --git a/docs/src/components/RightSidebar/TableOfContents.tsx b/docs/src/components/RightSidebar/TableOfContents.tsx new file mode 100644 index 000000000..803b05568 --- /dev/null +++ b/docs/src/components/RightSidebar/TableOfContents.tsx @@ -0,0 +1,55 @@ +import type { FunctionalComponent } from 'preact'; +import { h, Fragment } from 'preact'; +import { useState, useEffect, useRef } from 'preact/hooks'; + +const TableOfContents: FunctionalComponent<{ headers: any[] }> = ({ + headers = [], +}) => { + const itemOffsets = useRef([]); + const [activeId, setActiveId] = useState(undefined); + + useEffect(() => { + const getItemOffsets = () => { + const titles = document.querySelectorAll('article :is(h1, h2, h3, h4)'); + itemOffsets.current = Array.from(titles).map((title) => ({ + id: title.id, + topOffset: title.getBoundingClientRect().top + window.scrollY, + })); + }; + + getItemOffsets(); + window.addEventListener('resize', getItemOffsets); + + return () => { + window.removeEventListener('resize', getItemOffsets); + }; + }, []); + + return ( + <> +

On this page

+
    + + {headers + .filter(({ depth }) => depth > 1 && depth < 4) + .map((header) => ( + + ))} +
+ + ); +}; + +export default TableOfContents; diff --git a/docs/src/components/RightSidebar/ThemeToggleButton.css b/docs/src/components/RightSidebar/ThemeToggleButton.css new file mode 100644 index 000000000..43915c5b9 --- /dev/null +++ b/docs/src/components/RightSidebar/ThemeToggleButton.css @@ -0,0 +1,38 @@ + +.theme-toggle { + display: inline-flex; + align-items: center; + gap: 0.25em; + padding: 0.33em 0.67em; + border-radius: 99em; + background-color: var(--theme-code-inline-bg); +} + +.theme-toggle > label:focus-within { + outline: 2px solid transparent; + box-shadow: 0 0 0 0.08em var(--theme-accent), 0 0 0 0.12em white; +} + +.theme-toggle > label { + color: var(--theme-code-inline-text); + position: relative; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.5; +} + +.theme-toggle .checked { + color: var(--theme-accent); + opacity: 1; +} + +input[name='theme-toggle'] { + position: absolute; + opacity: 0; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; +} \ No newline at end of file diff --git a/docs/src/components/RightSidebar/ThemeToggleButton.tsx b/docs/src/components/RightSidebar/ThemeToggleButton.tsx new file mode 100644 index 000000000..d3dc678c2 --- /dev/null +++ b/docs/src/components/RightSidebar/ThemeToggleButton.tsx @@ -0,0 +1,83 @@ +import type { FunctionalComponent } from 'preact'; +import { h, Fragment } from 'preact'; +import { useState, useEffect } from 'preact/hooks'; +import './ThemeToggleButton.css'; + +const themes = ['light', 'dark']; + +const icons = [ + + + , + + + , +]; + +const ThemeToggle: FunctionalComponent = () => { + const [theme, setTheme] = useState(() => { + if (import.meta.env.SSR) { + return undefined; + } + if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) { + return localStorage.getItem('theme'); + } + if (window.matchMedia('(prefers-color-scheme: dark)').matches) { + return 'dark'; + } + return 'light'; + }); + + useEffect(() => { + const root = document.documentElement; + if (theme === 'light') { + root.classList.remove('theme-dark'); + } else { + root.classList.add('theme-dark'); + } + }, [theme]); + + return ( +
+ {themes.map((t, i) => { + const icon = icons[i]; + const checked = t === theme; + return ( + + ); + })} +
+ ); +}; + +export default ThemeToggle; diff --git a/docs/src/components/Search.css b/docs/src/components/Search.css deleted file mode 100644 index 330a02d1d..000000000 --- a/docs/src/components/Search.css +++ /dev/null @@ -1,93 +0,0 @@ -:root { - --docsearch-primary-color: var(--theme-accent); - --docsearch-logo-color: var(--theme-text); -} - -.search { - display: none; - position: relative; - z-index: 10; - flex-grow: 1; - grid-area: search; - padding-left: 0.75rem; - padding-right: 0.7rem; - display: flex; - width: 400px; - max-width: 400px; -} -.search > * { - flex-grow: 1; -} - -.search > :global(.algolia-autocomplete) { - width: 100%; -} - -:global(body.is-nav-open) .search { - display: flex; -} - -.search-input { - flex-grow: 1; - box-sizing: border-box; - width: 100%; - margin: 0; - padding: 0.33em 0.5em; - overflow: visible; - font-weight: 500; - font-size: 1rem; - font-family: inherit; - line-height: inherit; - background-color: var(--theme-divider); - border-color: var(--theme-divider); - color: var(--theme-text-light); - border-style: solid; - border-width: 1px; - border-radius: 0.25rem; - outline: 0; - cursor: pointer; - transition-timing-function: ease-out; - transition-duration: 0.2s; - transition-property: border-color, background-color; - -webkit-font-smoothing: antialiased; -} -.no-underline { - text-decoration: none; -} -.search-input:hover { - color: var(--theme-text); -} -.search-input:hover::placeholder { - color: var(--theme-text-light); -} -.search-input::placeholder { - color: var(--theme-text-light); -} - -.search-hint { - position: absolute; - top: 7px; - right: 19px; - padding: 3px 5px; - display: none; - display: none; - align-items: center; - justify-content: center; - letter-spacing: 0.125em; - color: var(--theme-text-light); - font-size: 13px; - font-family: var(--font-mono); - pointer-events: none; - border-color: var(--theme-text-lighter); - color: var(--theme-text-light); - border-style: solid; - border-width: 1px; - border-radius: 0.25rem; - line-height: 14px; -} - -@media (min-width: 50em) { - .search-hint { - display: flex; - } -} diff --git a/docs/src/components/Search.tsx b/docs/src/components/Search.tsx deleted file mode 100644 index af04829e9..000000000 --- a/docs/src/components/Search.tsx +++ /dev/null @@ -1,88 +0,0 @@ -/* jsxImportSource: react */ -import { useState, useCallback, useRef } from 'react'; -import { createPortal } from 'react-dom'; -import { DocSearchModal, useDocSearchKeyboardEvents } from '@docsearch/react'; -import '@docsearch/css//dist/style.css'; -import './Search.css'; - -export function Search() { - const [isOpen, setIsOpen] = useState(false); - const searchButtonRef = useRef(); - const [initialQuery, setInitialQuery] = useState(null); - - const onOpen = useCallback(() => { - setIsOpen(true); - }, [setIsOpen]); - - const onClose = useCallback(() => { - setIsOpen(false); - }, [setIsOpen]); - - const onInput = useCallback( - (e) => { - setIsOpen(true); - setInitialQuery(e.key); - }, - [setIsOpen, setInitialQuery] - ); - - useDocSearchKeyboardEvents({ - isOpen, - onOpen, - onClose, - onInput, - searchButtonRef, - }); - - return ( - <> - - {isOpen && - createPortal( - { - return items.map((item) => { - // We transform the absolute URL into a relative URL to - // work better on localhost, preview URLS. - const a = document.createElement('a'); - a.href = item.url; - console.log(a.hash); - const hash = a.hash === '#overview' ? '' : a.hash; - return { - ...item, - url: `${a.pathname}${hash}`, - }; - }); - }} - />, - document.body - )} - - ); -} diff --git a/docs/src/components/SiteSidebar.astro b/docs/src/components/SiteSidebar.astro deleted file mode 100644 index 382b122f4..000000000 --- a/docs/src/components/SiteSidebar.astro +++ /dev/null @@ -1,96 +0,0 @@ ---- -import { sidebar } from '../config.ts'; -const {currentPage} = Astro.props; ---- - - - - - - diff --git a/docs/src/components/ThemeToggle.tsx b/docs/src/components/ThemeToggle.tsx deleted file mode 100644 index 37b028758..000000000 --- a/docs/src/components/ThemeToggle.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import type { FunctionalComponent } from 'preact'; -import { h, Fragment } from 'preact'; -import { useState, useEffect } from 'preact/hooks'; - -const themes = ['light', 'dark']; - -const icons = [ - - - , - - - , -]; - -const ThemeToggle: FunctionalComponent = () => { - const [theme, setTheme] = useState(() => { - if (import.meta.env.SSR) { - return undefined; - } - if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) { - return localStorage.getItem('theme'); - } - if (window.matchMedia('(prefers-color-scheme: dark)').matches) { - return 'dark'; - } - return 'light'; - }); - - useEffect(() => { - const root = document.documentElement; - if (theme === 'light') { - root.classList.remove('theme-dark'); - } else { - root.classList.add('theme-dark'); - } - }, [theme]); - - return ( -
- {themes.map((t, i) => { - const icon = icons[i]; - const checked = t === theme; - return ( - - ); - })} -
- ); -}; - -export default ThemeToggle; diff --git a/docs/src/config.ts b/docs/src/config.ts index ad69bd16d..c3e78d8d9 100644 --- a/docs/src/config.ts +++ b/docs/src/config.ts @@ -1,4 +1,4 @@ -export const sidebar = [ +export const SIDEBAR = [ { text: 'Setup', link: '', @@ -50,36 +50,20 @@ export const sidebar = [ { text: 'Renderer Reference', link: 'reference/renderer-reference' }, ], }, - // To add once rest of the site is complete - // see https://github.com/snowpackjs/astro-docs/issues/9 - // { - // text: 'Integrations', - // link: 'integrations', - // children: [ - // { text: 'Deploy Astro', link: 'integrations/deploy-astro' }, - // { text: 'Data Sources / CMS', link: 'integrations/data-sources-cms' }, - // { text: 'State Management', link: 'integrations/state-management' }, - // { - // text: 'Styles & CSS Libraries', - // link: 'integrations/styles-and-css-libraries', - // }, - // { text: 'Developer Tools', link: 'integrations/developer-tools' }, - // ], - // }, ]; -export const site = { +export const SITE = { title: 'Astro Documentation', description: 'Build faster websites with less client-side Javascript.', - ogLocale: 'en_US', +} + +export const OPEN_GRAPH = { + locale: 'en_US', image: { src: '/default-og-image.png?v=1', alt: 'astro logo on a starry expanse of space,' + ' with a purple saturn-like planet floating in the right foreground', }, - twitter: { - site: 'astrodotbuild', - creator: 'astrodotbuild', - }, + twitter: 'astrodotbuild', }; diff --git a/docs/src/layouts/Main.astro b/docs/src/layouts/Main.astro deleted file mode 100644 index 52b0f84a0..000000000 --- a/docs/src/layouts/Main.astro +++ /dev/null @@ -1,367 +0,0 @@ ---- -import ArticleFooter from '../components/ArticleFooter.astro'; -import SiteSidebar from '../components/SiteSidebar.astro'; -import DocSidebar, { TableOfContents, More } from '../components/DocSidebar/DocSidebar.tsx'; -import MenuToggle from '../components/MenuToggle.tsx'; -import MetaData from "../components/MetaData.astro"; -import {Search} from "../components/Search.jsx"; -import { site } from "../config.ts"; - -const { content = {}, centered = false } = Astro.props; -const headers = content?.astro?.headers; -const currentPage = Astro.request?.url?.pathname; -let currentFile; -let githubEditUrl; -if (currentPage) { - currentFile = currentPage === '/' ? 'src/pages/index.md' : `src/pages${currentPage.replace(/\/$/, "")}.md`; - githubEditUrl = `https://github.com/snowpackjs/astro/blob/main/docs/${currentFile}`; -} ---- - - - - - - {content.title ? `${content.title} 🚀 ${site.title}` : site.title} - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
- -
-
-
-

{content?.title}

- {currentPage && } - -
- {currentPage && } - {currentPage && } -
-
- -
- - - - - - diff --git a/docs/src/layouts/MainLayout.astro b/docs/src/layouts/MainLayout.astro new file mode 100644 index 000000000..c96091559 --- /dev/null +++ b/docs/src/layouts/MainLayout.astro @@ -0,0 +1,122 @@ +--- +import HeadCommon from "../components/HeadCommon.astro"; +import HeadSEO from "../components/HeadSEO.astro"; +import Header from '../components/Header/Header.astro'; +import Footer from '../components/Footer/Footer.astro'; +import PageContent from '../components/PageContent/PageContent.astro'; +import LeftSidebar from '../components/LeftSidebar/LeftSidebar.astro'; +import RightSidebar from '../components/RightSidebar/RightSidebar.astro'; +import { SITE } from "../config.ts"; + +const { content = {} } = Astro.props; +const currentPage = Astro.request.url.pathname; +const currentFile = `src/pages${currentPage.replace(/\/$/, "")}.md`; +const githubEditUrl = `https://github.com/snowpackjs/astro/blob/main/docs/${currentFile}`; +--- + + + + + + {content.title ? `${content.title} 🚀 ${SITE.title}` : SITE.title} + + + + +
+
+ +
+ + + +
+ +
+ + diff --git a/docs/src/layouts/SplashLayout.astro b/docs/src/layouts/SplashLayout.astro new file mode 100644 index 000000000..69d3f90b6 --- /dev/null +++ b/docs/src/layouts/SplashLayout.astro @@ -0,0 +1,48 @@ +--- +import HeadCommon from "../components/HeadCommon.astro"; +import Header from '../components/Header/Header.astro'; +import { SITE } from "../config.ts"; + +const { title } = Astro.props; +--- + + + + + {`${title} 🚀 ${SITE.title}`} + + + + +
+
+
+ +
+
+ + diff --git a/docs/src/pages/404.astro b/docs/src/pages/404.astro index 195a29d4e..242cbf594 100644 --- a/docs/src/pages/404.astro +++ b/docs/src/pages/404.astro @@ -1,8 +1,9 @@ --- -import Layout from '../layouts/Main.astro'; +import SplashLayout from '../layouts/SplashLayout.astro'; --- - + +

404

This page isn't in our solar system.

Take me home. -
+ diff --git a/docs/src/pages/blog/island-architecture.md b/docs/src/pages/blog/island-architecture.md index c516287ef..78be15c92 100644 --- a/docs/src/pages/blog/island-architecture.md +++ b/docs/src/pages/blog/island-architecture.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Island Architecture draft: true --- diff --git a/docs/src/pages/comparing-astro-vs-other-tools.md b/docs/src/pages/comparing-astro-vs-other-tools.md index 5157ee95e..aa9f12745 100644 --- a/docs/src/pages/comparing-astro-vs-other-tools.md +++ b/docs/src/pages/comparing-astro-vs-other-tools.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Comparing Astro --- diff --git a/docs/src/pages/core-concepts/astro-components.md b/docs/src/pages/core-concepts/astro-components.md index 758b3fb07..85d1fbccc 100644 --- a/docs/src/pages/core-concepts/astro-components.md +++ b/docs/src/pages/core-concepts/astro-components.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Astro Components --- diff --git a/docs/src/pages/core-concepts/astro-pages.md b/docs/src/pages/core-concepts/astro-pages.md index 87157c5b1..de61239c8 100644 --- a/docs/src/pages/core-concepts/astro-pages.md +++ b/docs/src/pages/core-concepts/astro-pages.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Pages --- diff --git a/docs/src/pages/core-concepts/collections.md b/docs/src/pages/core-concepts/collections.md index e49cd1500..edf4cf1fa 100644 --- a/docs/src/pages/core-concepts/collections.md +++ b/docs/src/pages/core-concepts/collections.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Collections --- diff --git a/docs/src/pages/core-concepts/component-hydration.md b/docs/src/pages/core-concepts/component-hydration.md index a4c25cf26..ed2ab453d 100644 --- a/docs/src/pages/core-concepts/component-hydration.md +++ b/docs/src/pages/core-concepts/component-hydration.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Partial Hydration in Astro --- diff --git a/docs/src/pages/core-concepts/layouts.md b/docs/src/pages/core-concepts/layouts.md index ca97f3b83..534c66ab3 100644 --- a/docs/src/pages/core-concepts/layouts.md +++ b/docs/src/pages/core-concepts/layouts.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Layouts --- diff --git a/docs/src/pages/core-concepts/project-structure.md b/docs/src/pages/core-concepts/project-structure.md index de929f2cc..3c2207a5b 100644 --- a/docs/src/pages/core-concepts/project-structure.md +++ b/docs/src/pages/core-concepts/project-structure.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Project Structure --- diff --git a/docs/src/pages/examples.md b/docs/src/pages/examples.md index cccecad90..17af0bb87 100644 --- a/docs/src/pages/examples.md +++ b/docs/src/pages/examples.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Examples --- diff --git a/docs/src/pages/getting-started.md b/docs/src/pages/getting-started.md index d1ff80a31..cc7d9d688 100644 --- a/docs/src/pages/getting-started.md +++ b/docs/src/pages/getting-started.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Getting Started --- diff --git a/docs/src/pages/guides/data-fetching.md b/docs/src/pages/guides/data-fetching.md index c3e033405..c853dfe54 100644 --- a/docs/src/pages/guides/data-fetching.md +++ b/docs/src/pages/guides/data-fetching.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Data Fetching --- diff --git a/docs/src/pages/guides/deploy.md b/docs/src/pages/guides/deploy.md index c12860565..261fb7269 100644 --- a/docs/src/pages/guides/deploy.md +++ b/docs/src/pages/guides/deploy.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Deploy a Website --- diff --git a/docs/src/pages/guides/imports.md b/docs/src/pages/guides/imports.md index f8f96b098..ec49c98d1 100644 --- a/docs/src/pages/guides/imports.md +++ b/docs/src/pages/guides/imports.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Supported Imports --- diff --git a/docs/src/pages/guides/markdown-content.md b/docs/src/pages/guides/markdown-content.md index 4ef908f6b..220a7ea16 100644 --- a/docs/src/pages/guides/markdown-content.md +++ b/docs/src/pages/guides/markdown-content.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Markdown --- diff --git a/docs/src/pages/guides/publish-to-npm.md b/docs/src/pages/guides/publish-to-npm.md index e7c974866..4f6ab402f 100644 --- a/docs/src/pages/guides/publish-to-npm.md +++ b/docs/src/pages/guides/publish-to-npm.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Publish a Component to NPM --- diff --git a/docs/src/pages/guides/styling.md b/docs/src/pages/guides/styling.md index 5d693c2fc..d570ef10a 100644 --- a/docs/src/pages/guides/styling.md +++ b/docs/src/pages/guides/styling.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Styling & CSS --- diff --git a/docs/src/pages/index.astro b/docs/src/pages/index.astro index 7b16ea1a0..b462cacf9 100644 --- a/docs/src/pages/index.astro +++ b/docs/src/pages/index.astro @@ -1,9 +1,18 @@ --- -import Layout from '../layouts/Main.astro'; +import Layout from '../layouts/MainLayout.astro'; --- - -

- npm init astro -

-
+ \ No newline at end of file diff --git a/docs/src/pages/installation.md b/docs/src/pages/installation.md index 4fcd08f64..231c6ee4c 100644 --- a/docs/src/pages/installation.md +++ b/docs/src/pages/installation.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Installation --- diff --git a/docs/src/pages/nl/getting-started.md b/docs/src/pages/nl/getting-started.md index 0f1678e62..c3600cfc2 100644 --- a/docs/src/pages/nl/getting-started.md +++ b/docs/src/pages/nl/getting-started.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Beginnen --- diff --git a/docs/src/pages/quick-start.md b/docs/src/pages/quick-start.md index f6f08304f..3685c6bbd 100644 --- a/docs/src/pages/quick-start.md +++ b/docs/src/pages/quick-start.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Quick Start --- diff --git a/docs/src/pages/reference/api-reference.md b/docs/src/pages/reference/api-reference.md index ee42196e0..f7e3f92bb 100644 --- a/docs/src/pages/reference/api-reference.md +++ b/docs/src/pages/reference/api-reference.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: API Reference --- diff --git a/docs/src/pages/reference/builtin-components.md b/docs/src/pages/reference/builtin-components.md index 54f22c2ea..d148c8ba0 100644 --- a/docs/src/pages/reference/builtin-components.md +++ b/docs/src/pages/reference/builtin-components.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Built-In Components --- diff --git a/docs/src/pages/reference/cli-reference.md b/docs/src/pages/reference/cli-reference.md index 710cf8d91..6be3b122f 100644 --- a/docs/src/pages/reference/cli-reference.md +++ b/docs/src/pages/reference/cli-reference.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: CLI Reference --- diff --git a/docs/src/pages/reference/configuration-reference.md b/docs/src/pages/reference/configuration-reference.md index d0a088ba4..ef851f848 100644 --- a/docs/src/pages/reference/configuration-reference.md +++ b/docs/src/pages/reference/configuration-reference.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: Configuration Reference --- diff --git a/docs/src/pages/reference/renderer-reference.md b/docs/src/pages/reference/renderer-reference.md index 6ce54df51..f74a024dd 100644 --- a/docs/src/pages/reference/renderer-reference.md +++ b/docs/src/pages/reference/renderer-reference.md @@ -1,5 +1,5 @@ --- -layout: ~/layouts/Main.astro +layout: ~/layouts/MainLayout.astro title: UI Renderer Reference --- -- cgit v1.2.3