From 7fb4aa5d619e843243a90ecaa1aaed1f97c627bb Mon Sep 17 00:00:00 2001 From: mrjvs Date: Thu, 21 Mar 2024 19:18:16 +0100 Subject: [PATCH 01/22] Fix sidebar and topbar not closing when switch page + fix not scrollable if going with open sidebar to desktop --- packages/guider/src/client/hooks/use-page-switch.ts | 12 ++++++++++++ .../client/partials/header/sidebar-mobile-nav.tsx | 8 ++++++-- .../src/client/partials/header/top-mobile-nav.tsx | 8 ++++++-- packages/guider/src/styles/global.css | 5 +++++ 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 packages/guider/src/client/hooks/use-page-switch.ts diff --git a/packages/guider/src/client/hooks/use-page-switch.ts b/packages/guider/src/client/hooks/use-page-switch.ts new file mode 100644 index 0000000..20eafbe --- /dev/null +++ b/packages/guider/src/client/hooks/use-page-switch.ts @@ -0,0 +1,12 @@ +import { useRouter } from 'next/router'; +import { useCallback, useEffect } from 'react'; + +export function usePageSwitch(cb: () => void, deps: any[]) { + const router = useRouter(); + const func = useCallback(cb, deps); + useEffect(() => { + return () => { + func(); + }; + }, [router.pathname, func]); +} diff --git a/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx b/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx index 09902ea..f7653c5 100644 --- a/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx +++ b/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx @@ -1,6 +1,7 @@ import classNames from 'classnames'; import { Fragment, useEffect, useState } from 'react'; import { makeKey } from 'src/client/utils/make-key'; +import { usePageSwitch } from 'src/client/hooks/use-page-switch'; import { GuiderSidebarContent } from '../sidebar'; import { Icon } from '../../components/icon'; import type { TabsChildren } from '../../../theme/components/site'; @@ -14,6 +15,9 @@ function CustomComponentTab(props: { component: CustomComponentComponent }) { export function SidebarMobileNav(props: { tabs: TabsChildren[] }) { const [navOpen, setNavOpen] = useState(false); + usePageSwitch(() => { + setNavOpen(false); + }, []); const toggleButton = ( + ); } -export function Themer() { +export function Themer(props: { + onGetCode?: (colors: ThemeColorStoreColors) => void; +}) { const [colors, setColors] = useGuideThemePicker(); + const onGetCode = useCallback( + (c: [HsbColor, HsbColor]) => { + props.onGetCode?.(makeColors(c)); + }, + [props.onGetCode], + ); - return ; + return ( + + ); } export function ThemerContainer(props: { children?: ReactNode }) { + const ref = useRef(null); + const tokenRef = useRef(null); + const [hasCode, setHasCode] = useState(false); + const onGetCode = useCallback((c: ThemeColorStoreColors) => { + if (tokenRef.current) { + tokenRef.current.innerText = JSON.stringify(c, null, 2); + return; + } + if (ref.current) { + setHasCode(true); + const token = [ + ...ref.current.querySelectorAll('code [data-line] span'), + ].find( + (el) => (el as HTMLSpanElement).innerText === 'CODE', + ) as HTMLSpanElement | null; + if (token) { + tokenRef.current = token; + token.innerText = JSON.stringify(c, null, 2); + } + } + }, []); + return ( -
-
- {props.children} -
-
-
- +
+
+
+ {props.children} +
+
+
+ +
diff --git a/apps/docs/hooks/use-guider-theme-picker.ts b/apps/docs/hooks/use-guider-theme-picker.ts index 4d822bf..e90e0a2 100644 --- a/apps/docs/hooks/use-guider-theme-picker.ts +++ b/apps/docs/hooks/use-guider-theme-picker.ts @@ -1,13 +1,35 @@ import type { ThemeColorStoreColors } from '@neato/guider/client'; import { useGuiderTheme } from '@neato/guider/client'; import { useCallback, useEffect, useState } from 'react'; +import Color from 'color'; import type { HsbColor } from './color-select'; import { hsbToColorToString } from './color-select'; -function makeColors(c: [HsbColor, HsbColor]): ThemeColorStoreColors { +function addConstrast(c: Color, ratio: number): Color { + if (c.isDark()) return c.lighten(ratio); + return c.darken(ratio); +} + +function addReverseContrast(c: Color, ratio: number): Color { + if (c.isDark()) return c.darken(ratio); + return c.lighten(ratio); +} + +export function makeColors(c: [HsbColor, HsbColor]): ThemeColorStoreColors { + const primary = Color(hsbToColorToString(c[0])); + const bg = Color(hsbToColorToString(c[1])); return { - primary: hsbToColorToString(c[0]), - background: hsbToColorToString(c[1]), + primary: primary.hex(), + primaryLighter: addReverseContrast(primary, 0.3).hex(), + primaryDarker: addConstrast(primary, 0.3).hex(), + background: bg.hex(), + backgroundLighter: addConstrast(bg, 0.2).hex(), + backgroundLightest: addConstrast(bg, 0.4).hex(), + backgroundDarker: addReverseContrast(bg, 0.2).hex(), + line: addConstrast(bg, 0.6).hex(), + text: addConstrast(bg, 0.85).hex(), + textLighter: addConstrast(bg, 0.9).hex(), + textHighlight: bg.isDark() ? '#fff' : '#000', }; } diff --git a/apps/docs/package.json b/apps/docs/package.json index 88f2aa8..78fdfbc 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -20,6 +20,7 @@ "@repo/eslint-config": "workspace:*", "@repo/prettier-config": "workspace:*", "@repo/typescript-config": "workspace:*", + "@types/color": "^3.0.6", "@types/react": "18.2.56", "autoprefixer": "^10.4.17", "postcss": "^8.4.37", @@ -28,6 +29,7 @@ "dependencies": { "@neato/guider": "workspace:*", "classnames": "^2.5.1", + "color": "^4.2.3", "next": "^14.1.0", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/apps/docs/pages/docs/guider/guides/config/theming.mdx b/apps/docs/pages/docs/guider/guides/config/theming.mdx index 3ed4b3e..dee0ea1 100644 --- a/apps/docs/pages/docs/guider/guides/config/theming.mdx +++ b/apps/docs/pages/docs/guider/guides/config/theming.mdx @@ -123,11 +123,14 @@ settings: { There are currently no other options other than `flare` and just having it disabled. - ## Want to build a theme? Give the color wheel a spin and generate a theme for your documentation. If you want more freedom, you can also use this as a base for you main theme and just customize where neccesary. + + ```json + CODE + ``` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7385f17..4b65a68 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: classnames: specifier: ^2.5.1 version: 2.5.1 + color: + specifier: ^4.2.3 + version: 4.2.3 next: specifier: ^14.1.0 version: 14.1.0(react-dom@18.2.0)(react@18.2.0) @@ -45,6 +48,9 @@ importers: '@repo/typescript-config': specifier: workspace:* version: link:../../packages/typescript-config + '@types/color': + specifier: ^3.0.6 + version: 3.0.6 '@types/react': specifier: 18.2.56 version: 18.2.56 From 2936ace6a6c79f4583b65ef636d899831fc7ebb0 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Thu, 21 Mar 2024 21:46:01 +0100 Subject: [PATCH 06/22] Fix capitititilisatoin --- .../pages/docs/guider/api-reference/theme/define-theme.mdx | 4 ++-- apps/docs/pages/docs/guider/api-reference/theme/site.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx b/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx index fb2e093..1be3889 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx @@ -6,12 +6,12 @@ the default export of the theme file. ## Example ```tsx title="theme.config.tsx" -export default definetheme({ +export default defineTheme({ directories: [], }) // or a list of sites -export default definetheme([ +export default defineTheme([ site('site-a', { directories: [], }), diff --git a/apps/docs/pages/docs/guider/api-reference/theme/site.mdx b/apps/docs/pages/docs/guider/api-reference/theme/site.mdx index 045223f..82150e4 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/site.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/site.mdx @@ -8,7 +8,7 @@ You can find more information on how to use sites effectively in [this guide](.. ## Example ```tsx title="theme.config.tsx" -export default definetheme([ +export default defineTheme([ site('site-a', { directories: [], }), From 7cf5e88585488971262a7fa2b9f1636e8746c4d2 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 22 Mar 2024 19:54:14 +0100 Subject: [PATCH 07/22] Add color theme generator for reals --- apps/docs/hooks/use-guider-theme-picker.ts | 62 +++++++++++++++++----- 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/apps/docs/hooks/use-guider-theme-picker.ts b/apps/docs/hooks/use-guider-theme-picker.ts index e90e0a2..58553ec 100644 --- a/apps/docs/hooks/use-guider-theme-picker.ts +++ b/apps/docs/hooks/use-guider-theme-picker.ts @@ -5,30 +5,64 @@ import Color from 'color'; import type { HsbColor } from './color-select'; import { hsbToColorToString } from './color-select'; -function addConstrast(c: Color, ratio: number): Color { - if (c.isDark()) return c.lighten(ratio); - return c.darken(ratio); +const clamp = (max: number, min: number, n: number) => + Math.max(min, Math.min(max, n)); + +function getContrastPoint(color: Color): [number, number] { + if (color.isDark()) return [100, 0]; + return [0, 100]; +} + +function getDistanceToContrastPoint(bgColor: Color, color: Color): number { + const contrastPoint = getContrastPoint(bgColor); + return Math.sqrt( + Math.pow(contrastPoint[0] - color.value(), 2) + + Math.pow(contrastPoint[1] - color.saturationl(), 2), + ); +} + +function moveColorToContrastPoint( + bgColor: Color, + color: Color, + amount: number, +): Color { + const contrastPoint = getContrastPoint(bgColor); + const length = getDistanceToContrastPoint(bgColor, color); + const ratio = amount / length; + const currentPoint = [color.value(), color.saturationl()]; + const newX = currentPoint[0] + (contrastPoint[0] - currentPoint[0]) * ratio; + const newY = currentPoint[1] + (contrastPoint[1] - currentPoint[1]) * ratio; + return color.value(clamp(100, 0, newX)).saturationl(clamp(100, 0, newY)); } -function addReverseContrast(c: Color, ratio: number): Color { - if (c.isDark()) return c.darken(ratio); - return c.lighten(ratio); +function moveRatioColorToContrastPoint( + bgColor: Color, + color: Color, + ratio: number, +): Color { + const distance = getDistanceToContrastPoint(bgColor, color); + return moveColorToContrastPoint(bgColor, color, distance * ratio); } export function makeColors(c: [HsbColor, HsbColor]): ThemeColorStoreColors { const primary = Color(hsbToColorToString(c[0])); const bg = Color(hsbToColorToString(c[1])); + const text = moveRatioColorToContrastPoint(bg, bg, 0.7); + + // TODO add semantic colors (just make a light version and a dark version) return { primary: primary.hex(), - primaryLighter: addReverseContrast(primary, 0.3).hex(), - primaryDarker: addConstrast(primary, 0.3).hex(), + primaryLighter: moveColorToContrastPoint(primary, primary, -30).hex(), + primaryDarker: moveColorToContrastPoint(primary, primary, 30).hex(), + background: bg.hex(), - backgroundLighter: addConstrast(bg, 0.2).hex(), - backgroundLightest: addConstrast(bg, 0.4).hex(), - backgroundDarker: addReverseContrast(bg, 0.2).hex(), - line: addConstrast(bg, 0.6).hex(), - text: addConstrast(bg, 0.85).hex(), - textLighter: addConstrast(bg, 0.9).hex(), + backgroundLighter: moveColorToContrastPoint(bg, bg, 8).hex(), + backgroundLightest: moveColorToContrastPoint(bg, bg, 16).hex(), + backgroundDarker: moveColorToContrastPoint(bg, bg, -8).hex(), + line: moveColorToContrastPoint(bg, bg, 25).hex(), + + text: text.hex(), + textLighter: moveColorToContrastPoint(bg, text, 10).hex(), textHighlight: bg.isDark() ? '#fff' : '#000', }; } From cb6c6787732b7393a6ca7c6c664771034d00dbf2 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 22 Mar 2024 21:10:40 +0100 Subject: [PATCH 08/22] Add real showcases --- apps/docs/components/showcase-card.tsx | 15 +++++++-------- apps/docs/hooks/use-guider-theme-picker.ts | 1 - apps/docs/pages/docs/config/index.tsx | 2 +- .../docs/guider/guides/config/landing.mdx | 2 +- apps/docs/pages/docs/guider/index.tsx | 2 +- apps/docs/pages/showcase.tsx | 13 ++++--------- .../public/showcases/movie-web-account.png | Bin 0 -> 168659 bytes apps/docs/public/showcases/pretendo.png | Bin 0 -> 136400 bytes 8 files changed, 14 insertions(+), 21 deletions(-) create mode 100644 apps/docs/public/showcases/movie-web-account.png create mode 100644 apps/docs/public/showcases/pretendo.png diff --git a/apps/docs/components/showcase-card.tsx b/apps/docs/components/showcase-card.tsx index 41ebdcb..d59e188 100644 --- a/apps/docs/components/showcase-card.tsx +++ b/apps/docs/components/showcase-card.tsx @@ -69,14 +69,13 @@ export function ShowcaseCard(props: { showcase: ShowcaseType }) {
- {props.showcase.title} - + className="block hover:opacity-75 border-line border aspect-video w-full bg-bgLightest mb-6 rounded-xl overflow-hidden" + style={{ + backgroundImage: `url(${props.showcase.imageUrl})`, + backgroundPosition: 'center', + backgroundSize: 'cover', + }} + />

{props.showcase.title} diff --git a/apps/docs/hooks/use-guider-theme-picker.ts b/apps/docs/hooks/use-guider-theme-picker.ts index 58553ec..863e090 100644 --- a/apps/docs/hooks/use-guider-theme-picker.ts +++ b/apps/docs/hooks/use-guider-theme-picker.ts @@ -49,7 +49,6 @@ export function makeColors(c: [HsbColor, HsbColor]): ThemeColorStoreColors { const bg = Color(hsbToColorToString(c[1])); const text = moveRatioColorToContrastPoint(bg, bg, 0.7); - // TODO add semantic colors (just make a light version and a dark version) return { primary: primary.hex(), primaryLighter: moveColorToContrastPoint(primary, primary, -30).hex(), diff --git a/apps/docs/pages/docs/config/index.tsx b/apps/docs/pages/docs/config/index.tsx index 0efcb60..ace9cd0 100644 --- a/apps/docs/pages/docs/config/index.tsx +++ b/apps/docs/pages/docs/config/index.tsx @@ -18,7 +18,7 @@ export default function LandingPage() { diff --git a/apps/docs/pages/docs/guider/guides/config/landing.mdx b/apps/docs/pages/docs/guider/guides/config/landing.mdx index 07ff508..fc7a527 100644 --- a/apps/docs/pages/docs/guider/guides/config/landing.mdx +++ b/apps/docs/pages/docs/guider/guides/config/landing.mdx @@ -53,7 +53,7 @@ export default function LandingPage() { diff --git a/apps/docs/pages/docs/guider/index.tsx b/apps/docs/pages/docs/guider/index.tsx index 4db786d..2a2b8ba 100644 --- a/apps/docs/pages/docs/guider/index.tsx +++ b/apps/docs/pages/docs/guider/index.tsx @@ -21,7 +21,7 @@ export default function LandingPage() { diff --git a/apps/docs/pages/showcase.tsx b/apps/docs/pages/showcase.tsx index 5573feb..70a1860 100644 --- a/apps/docs/pages/showcase.tsx +++ b/apps/docs/pages/showcase.tsx @@ -3,27 +3,22 @@ import { useMemo, useState } from 'react'; import { Showcase } from 'components/showcase-layout'; import type { ShowcaseTag, ShowcaseType } from 'components/showcase-card'; import { ShowcaseCard, ShowcaseCardContainer } from 'components/showcase-card'; +import pretendoImg from 'public/showcases/pretendo.png'; +import mwAccountImg from 'public/showcases/movie-web-account.png'; const showcases: ShowcaseType[] = [ { title: 'Pretendo', description: 'Uses Guider for protocol documentation.', href: 'https://developer.pretendo.network/', - imageUrl: 'https://placehold.co/600x400', - tags: ['guider'], - }, - { - title: 'movie-web docs', - description: 'Uses Guider for self-hosting documentation.', - href: 'https://movie-web.github.io/docs/', - imageUrl: 'https://placehold.co/600x400', + imageUrl: pretendoImg.src, tags: ['guider'], }, { title: 'movie-web account', description: 'Uses Config for their account service.', href: 'https://github.com/movie-web/movie-web/', - imageUrl: 'https://placehold.co/600x400', + imageUrl: mwAccountImg.src, tags: ['config'], }, ]; diff --git a/apps/docs/public/showcases/movie-web-account.png b/apps/docs/public/showcases/movie-web-account.png new file mode 100644 index 0000000000000000000000000000000000000000..e5bca90df6f4e63b6eb5662e18bc6053ad53e4f5 GIT binary patch literal 168659 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

JMP16$ENp(-{9je8tR7} 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 Va$M#rjn@o7;OXk;vd$@?2>{02NcjK& literal 0 HcmV?d00001 diff --git a/apps/docs/public/showcases/pretendo.png b/apps/docs/public/showcases/pretendo.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6051fee24f34348f3a1e0b1fe8ff888a885625 GIT binary patch literal 136400 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 literal 0 HcmV?d00001 From c7979ce8814d2e3c994fa103a11cae73b7d3e3a3 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 22 Mar 2024 21:18:01 +0100 Subject: [PATCH 09/22] Responsive --- apps/docs/components/themer.tsx | 8 ++++---- packages/guider/src/client/components/public/card.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/docs/components/themer.tsx b/apps/docs/components/themer.tsx index ff50bc9..cd33600 100644 --- a/apps/docs/components/themer.tsx +++ b/apps/docs/components/themer.tsx @@ -2,7 +2,7 @@ import type { ThemeColorStoreColors } from '@neato/guider/client'; import { Button } from '@neato/guider/client'; import classNames from 'classnames'; import type { ReactNode } from 'react'; -import React, { useState, useCallback, useRef, useEffect } from 'react'; +import React, { useState, useCallback, useRef } from 'react'; import type { HsbColor } from 'hooks/color-select'; import { hsbToColorToString, useColorSelect } from 'hooks/color-select'; import { makeColors, useGuideThemePicker } from 'hooks/use-guider-theme-picker'; @@ -185,15 +185,15 @@ export function ThemerContainer(props: { children?: ReactNode }) {
-
+
{props.children}
-
-
+
+
diff --git a/packages/guider/src/client/components/public/card.tsx b/packages/guider/src/client/components/public/card.tsx index 0d8e4fc..8d24bad 100644 --- a/packages/guider/src/client/components/public/card.tsx +++ b/packages/guider/src/client/components/public/card.tsx @@ -23,7 +23,7 @@ export function Card(props: CardProps) { export function CardGrid(props: { children?: ReactNode }) { return ( -
+
{props.children}
); From e3619392a7bce686d0b36b44fb24ebbc5a0d088d Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 22 Mar 2024 21:37:45 +0100 Subject: [PATCH 10/22] Update readmes --- README.md | 6 +++--- packages/guider/README.md | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2077fdf..a729955 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ - @neato/guider - beautiful documentation generator framework based on nextjs (ALPHA) ## Upcoming packages -- @neato/router - http router based on fastify () -- @neato/orm - mini ORM, it's just migrations, mapper and a query builder -- @neato/email - JSX based email template engine +- @neato/router - http router based on fastify - @neato/auth - fully fledged authentication system, including permissions +- @neato/jobs - persistent job queue +- @neato/log - simple logger with good pretty defaults diff --git a/packages/guider/README.md b/packages/guider/README.md index dc77e9f..08da9fd 100644 --- a/packages/guider/README.md +++ b/packages/guider/README.md @@ -13,7 +13,6 @@ Beautiful documentation sites, without all the hassle. Check out the documentati ## 🍄Installation / usage -> [TIP] > **Visit the [documentation](https://neatojs.com/docs/guider/guides/installation) on how to install. From b1f39cfc5ab6ae9440fcbf2c6a41761f277ac7d3 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Mar 2024 23:10:47 +0100 Subject: [PATCH 11/22] Add documentation for all theme components --- .../guider/api-reference/theme/component.mdx | 80 ++++++++- .../guider/api-reference/theme/directory.mdx | 49 +++++- .../docs/guider/api-reference/theme/group.mdx | 58 ++++++- .../docs/guider/api-reference/theme/link.mdx | 157 +++++++++++++++++- .../guider/api-reference/theme/seperator.mdx | 28 +++- .../api-reference/theme/site-template.mdx | 30 +++- .../docs/guider/api-reference/theme/site.mdx | 2 +- .../guider/api-reference/theme/social.mdx | 59 ++++++- 8 files changed, 441 insertions(+), 22 deletions(-) diff --git a/apps/docs/pages/docs/guider/api-reference/theme/component.mdx b/apps/docs/pages/docs/guider/api-reference/theme/component.mdx index f6e46a6..4920ea9 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/component.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/component.mdx @@ -1,5 +1,79 @@ # `component()` - -This article is a stub, please help by contributing to the docs. - +A custom component for a navigation item, +for if you want to add custom functionality to your sidebars (or other navigation structures). + + +## Example + +```tsx title="theme.config.tsx" +function DonateButton() { + return ( +
+ +
+ ) +} + +export default defineTheme({ + directories: [ + directory("dir-a", { + sidebar: [ + link("Home", "/home"), + component(() => ) + ] + }) + ], +}) +``` + + +## Reference + +```tsx +function component(comp); +``` + + + A function that returns JSX. You can run React hooks in here. + + + + temp. + + + + Extra options for this link. All fields are optional. + + + + temp. + + + temp. + + + temp. + + + temp. + + + + + +## Reference - options + +```tsx +function component(options); +``` + + + Options for this custom component item. + + + + A function that returns JSX. You can run React hooks in here. + + + diff --git a/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx b/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx index 90bc7ac..562274f 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx @@ -1,5 +1,48 @@ # `directory()` - -This article is a stub, please help by contributing to the docs. - +Directories are the holder of your sidebar navigation items. + + +## Example + +```tsx title="theme.config.tsx" +export default defineTheme({ + directories: [ + directory("dir-a", { + sidebar: [ + link("Home", "/home"), + ] + }) + ], +}) +``` + + +## Reference + +```tsx +function directory(id, options); +``` + + + The id of the directory, can be anything and is only used for referencing in meta files or similar. + + + + All options of the directory. + + + + The default layout to show for all pages associated with this directory. Defaults to the layout for the site. + + + The layout settings for this directory, read more [about layout settings](./settings.mdx). + + The settings in this settings layer are applied as a base. Followed by the settings on the chosen layout, then finally the directory. + + + List of links to show in the sidebar. You can specify `link()`, `link.nested()`, `seperator()`, `component()`, `group()` (groups can hold all other types except for more groups). + Read more about those on their respective documentation pages. + + + diff --git a/apps/docs/pages/docs/guider/api-reference/theme/group.mdx b/apps/docs/pages/docs/guider/api-reference/theme/group.mdx index adc1ce5..a852c66 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/group.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/group.mdx @@ -1,5 +1,57 @@ # `group()` - -This article is a stub, please help by contributing to the docs. - +A navigation group, can be used to categorize or group links. + + +## Example + +```tsx title="theme.config.tsx" +export default defineTheme({ + directories: [ + directory("dir-a", { + sidebar: [ + group("Guides", [ + link("Guide A", "/guides/a"), + link("Guide B", "/guides/b"), + ]), + ] + }) + ], +}) +``` + + +## Reference + +```tsx +function group(title, items); +``` + + + The title of the group. + + + + The navigation items inside of this group, the acceptable item types depends on what the the group is in. + + + +## Reference - options + +```tsx +function group(options); +``` + + + The options for this group. + + + + The title of the group. + + + + The navigation items inside of this group, the acceptable item types depends on what the the group is in. + + + diff --git a/apps/docs/pages/docs/guider/api-reference/theme/link.mdx b/apps/docs/pages/docs/guider/api-reference/theme/link.mdx index 800154d..b692eda 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/link.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/link.mdx @@ -1,5 +1,156 @@ # `link()` - -This article is a stub, please help by contributing to the docs. - +A standard link for your navigation items. You can also nest links. + +## Example + +```tsx title="theme.config.tsx" +export default defineTheme({ + directories: [ + directory("dir-a", { + sidebar: [ + link("Home", "/home"), + link.nested("Guides", [ + link("Guide A", "/guides/a"), + link("Guide B", "/guides/b"), + ]), + ] + }) + ], +}) +``` + + +## Reference - link parameters + +```tsx +function link(title, to, options); +``` + + + The title of the link. + + + + Where the link goes to. For example: `/docs/guides/guide-a`. + + + + Extra options for this link. All fields are optional. + + + + The icon to display in the navigation item, choose from [icones](https://icones.js.org/). + + + If clicking the link should open a new tab or not. + + + If the active page check should check the exact page and not it's child routes. Useful in the case where you have a homepage in navigation. + + + The display style of the link, can be `default` or `star`. + + + + + +## Reference - link options + +```tsx +function link(options); +``` + + + The options for this link. + + + + The title of the link. + + + Where the link goes to. For example: `/docs/guides/guide-a`. + + + The icon to display in the navigation item, choose from [icones](https://icones.js.org/). + + + If clicking the link should open a new tab or not. + + + If the active page check should check the exact page and not it's child routes. Useful in the case where you have a homepage in navigation. + + + The display style of the link, can be `default` or `star`. + + + + + +## Reference - nested link parameters + +```tsx +function link.nested(title, to, items); +``` + + + The title of the link. + + + + Where the link goes to. For example: `/docs/guides/guide-a`. + + + + The child items of the nested link. + + + +## Reference - nested link parameters without link + +```tsx +function link.nested(title, items); +``` + + + The title of the link. + + + + The child items of the nested link. + + + +## Reference - nested link options + +```tsx +function link.nested(options); +``` + + + The options for this nested link. + + + + The title of the link. + + + Where the link goes to. For example: `/docs/guides/guide-a`. + + + The child items of the nested link. + + + The icon to display in the navigation item, choose from [icones](https://icones.js.org/). + + + If clicking the link should open a new tab or not. + + + If the active page check should check the exact page and not it's child routes. Useful in the case where you have a homepage in navigation. + + + The display style of the link, can be `default` or `star`. + + + diff --git a/apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx b/apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx index 3845f3b..0d52667 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx @@ -1,5 +1,27 @@ # `seperator()` - -This article is a stub, please help by contributing to the docs. - +A seperator, simply draws a line inbetween navigation items. + + +## Example + +```tsx title="theme.config.tsx" +export default defineTheme({ + directories: [ + directory("dir-a", { + sidebar: [ + link("Guide A", "/guides/a"), + seperator(), + link("Guide B", "/guides/b"), + ] + }) + ], +}) +``` + + +## Reference + +```tsx +function seperator(); +``` diff --git a/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx b/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx index 0adb241..41559c3 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx @@ -1,5 +1,29 @@ # `siteTemplate()` - -This article is a stub, please help by contributing to the docs. - +Site templates can be used to make a reusuable instance of a site. You can use `Site.extends{:ts}` to utilize site templates. + + +## Example + +```tsx title="theme.config.tsx" +const baseTemplate = siteTemplate({ + // all sites that extend this template will have the github setting set + github: "mrjvs/neatojs", +}) + +export default defineTheme({ + extends: [baseTemplate], + directories: [], +}) +``` + + +## Reference + +```tsx +function siteTemplate(options); +``` + + + This accepts the same options as a normal site would, see [the site function](./site.mdx) for the reference for those options. + diff --git a/apps/docs/pages/docs/guider/api-reference/theme/site.mdx b/apps/docs/pages/docs/guider/api-reference/theme/site.mdx index 82150e4..6d61998 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/site.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/site.mdx @@ -105,7 +105,7 @@ function site(id, options); - The layout settings for this layout, read more [about layout settings](./settings.mdx). + The layout settings for this site, read more [about layout settings](./settings.mdx). The settings in this settings layer are applied as a base. Followed by the settings on the chosen layout, then finally the directory. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/social.mdx b/apps/docs/pages/docs/guider/api-reference/theme/social.mdx index ca43763..f9cfb75 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/social.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/social.mdx @@ -1,5 +1,58 @@ # `social()` - -This article is a stub, please help by contributing to the docs. - +Social links, currently only usable in the content footer. + + +## Example + +```tsx title="theme.config.tsx" +export default defineTheme({ + contentFooter: { + socials: [ + social.twitter("https://x.com"), // twitter both show the X logo + social.x("https://x.com"), + social.discord("https://discord.gg"), + social.github("https://github.com"), + social.slack("https://slack.com"), + social.mastodon("https://joinmastodon.org/"), + ], + }, +}) +``` + + +## Reference + +```tsx +function social.twitter(link); // twitter and X both show the X logo +function social.x(link); +function social.discord(link); +function social.github(link); +function social.slack(link); +function social.mastodon(link); +``` + + + The link of the social media account. + + + +## Reference - options + +```tsx +function social(options); +``` + + + The options for this group. + + + + The type of the social media. Can be any of these: `slack`, `mastodon`, `twitter`, `discord`, `github`. + + + + The link of the social media account. + + + From f8e4507310f6f02656b08ea6ffc22dd6cac24b9a Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Mar 2024 23:17:22 +0100 Subject: [PATCH 12/22] Add meta file structure --- .../guider/api-reference/meta/structure.mdx | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx b/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx index 1b30aef..ecb091d 100644 --- a/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx +++ b/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx @@ -1,5 +1,27 @@ # Structure of `_meta.json` - -This article is a stub, please help by contributing to the docs. - +Find out the structure of the `_meta.json` file. + + +## The file + +The `_meta.json` file can created and placed in any folder in the `/pages` directory. + +The meta file will be applied to all routes and child routes of the folder. + + + All fields inside the meta file can also be specified in the Frontmatter of a page, so you don't need to make a meta file for a single page. + + + +## Reference + + + Which site the page(s) belong to, defaults to the first (or only) site. + + + Which directory the page(s) is in, defaults to the first directory of the selected site. + + + Which layout the page(s) should be displayed with, defaults to the layout with id `default`. + From a72e49193522fb93f0c8fb5b055cef197da420e3 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Fri, 29 Mar 2024 23:42:15 +0100 Subject: [PATCH 13/22] Fix separator typo Co-authored-by: William Oldham --- examples/guider/kitchen-sink/theme.config.tsx | 6 +++--- packages/guider/src/client/partials/header/nav.tsx | 4 ++-- .../src/client/partials/header/sidebar-mobile-nav.tsx | 4 ++-- packages/guider/src/client/partials/sidebar/group.tsx | 4 ++-- .../guider/src/client/partials/sidebar/nested.tsx | 4 ++-- .../partials/sidebar/{seperator.tsx => separator.tsx} | 2 +- .../guider/src/client/partials/sidebar/sidebar.tsx | 4 ++-- packages/guider/src/client/utils/make-key.ts | 4 ++-- packages/guider/src/theme/components/directory.ts | 4 ++-- packages/guider/src/theme/components/group.ts | 4 ++-- packages/guider/src/theme/components/index.ts | 2 +- packages/guider/src/theme/components/link.ts | 4 ++-- packages/guider/src/theme/components/separator.ts | 11 +++++++++++ packages/guider/src/theme/components/seperator.ts | 11 ----------- packages/guider/src/theme/components/site.ts | 4 ++-- 15 files changed, 36 insertions(+), 36 deletions(-) rename packages/guider/src/client/partials/sidebar/{seperator.tsx => separator.tsx} (68%) create mode 100644 packages/guider/src/theme/components/separator.ts delete mode 100644 packages/guider/src/theme/components/seperator.ts diff --git a/examples/guider/kitchen-sink/theme.config.tsx b/examples/guider/kitchen-sink/theme.config.tsx index 96c9e1a..915c318 100644 --- a/examples/guider/kitchen-sink/theme.config.tsx +++ b/examples/guider/kitchen-sink/theme.config.tsx @@ -4,7 +4,7 @@ import { directory, group, link, - seperator, + separator, site, type SiteComponent, } from '@neato/guider/theme'; @@ -19,7 +19,7 @@ const siteTemplate = site('docs', { link('API reference', '/api-ref'), link('Documentation', '/docs/guides', { icon: 'fa6-solid:house' }), link('API reference', '/api-ref'), - seperator(), + separator(), ], github: 'movie-web/movie-web', }); @@ -57,7 +57,7 @@ export default defineTheme([ link('Guides', '/docs/guides/'), link('How to?', '/docs/guides/how-to'), ]), - seperator(), + separator(), link.nested('Troubleshooting', '/docs/guides/troubleshooting', [ link('Guides', '/docs/guides/'), link('How to?', '/docs/guides/how-to'), diff --git a/packages/guider/src/client/partials/header/nav.tsx b/packages/guider/src/client/partials/header/nav.tsx index b536f04..164fd38 100644 --- a/packages/guider/src/client/partials/header/nav.tsx +++ b/packages/guider/src/client/partials/header/nav.tsx @@ -32,7 +32,7 @@ function NavCustomComponent(props: { component: CustomComponentComponent }) { return {props.component.component?.()}; } -function NavSeperator() { +function NavSeparator() { return (
); @@ -46,7 +46,7 @@ export function HeaderNav(props: { items: TopNavChildren[] }) { if (v.type === 'component') return ; if (v.type === 'link') return ; - if (v.type === 'seperator') return ; + if (v.type === 'separator') return ; return null; })} diff --git a/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx b/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx index f7653c5..ef29014 100644 --- a/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx +++ b/packages/guider/src/client/partials/header/sidebar-mobile-nav.tsx @@ -7,7 +7,7 @@ import { Icon } from '../../components/icon'; import type { TabsChildren } from '../../../theme/components/site'; import type { CustomComponentComponent } from '../../../theme/components/component'; import { SidebarStarLink } from '../sidebar/star-link'; -import { SidebarSeperator } from '../sidebar/seperator'; +import { SidebarSeparator } from '../sidebar/separator'; function CustomComponentTab(props: { component: CustomComponentComponent }) { return {props.component.component?.()}; @@ -76,7 +76,7 @@ export function SidebarMobileNav(props: { tabs: TabsChildren[] }) { ); return null; })} - {props.tabs.length > 0 ? : null} + {props.tabs.length > 0 ? : null}
diff --git a/packages/guider/src/client/partials/sidebar/group.tsx b/packages/guider/src/client/partials/sidebar/group.tsx index b78d706..88b55b4 100644 --- a/packages/guider/src/client/partials/sidebar/group.tsx +++ b/packages/guider/src/client/partials/sidebar/group.tsx @@ -2,7 +2,7 @@ import { makeKey } from 'src/client/utils/make-key'; import type { GroupComponent, GroupComponentChildren } from '../../../theme'; import { SidebarLink } from './link'; import { SidebarCustomComponent } from './component'; -import { SidebarSeperator } from './seperator'; +import { SidebarSeparator } from './separator'; import { SidebarNested } from './nested'; export function SidebarGroup(props: { @@ -20,7 +20,7 @@ export function SidebarGroup(props: { return ; if (link.type === 'component') return ; - if (link.type === 'seperator') return ; + if (link.type === 'separator') return ; return null; })} diff --git a/packages/guider/src/client/partials/sidebar/nested.tsx b/packages/guider/src/client/partials/sidebar/nested.tsx index b731d44..2cf1c66 100644 --- a/packages/guider/src/client/partials/sidebar/nested.tsx +++ b/packages/guider/src/client/partials/sidebar/nested.tsx @@ -7,7 +7,7 @@ import ActiveLink, { useIsRouteActive, } from '../../components/utils/activelink'; import { SidebarLink } from './link'; -import { SidebarSeperator } from './seperator'; +import { SidebarSeparator } from './separator'; function MaybeLink(props: { link: NestableLinkComponent; @@ -114,7 +114,7 @@ export function SidebarNested(props: { link: NestableLinkComponent }) { const key = makeKey(i, link); if (link.type === 'link') return ; - if (link.type === 'seperator') return ; + if (link.type === 'separator') return ; return null; })}
diff --git a/packages/guider/src/client/partials/sidebar/seperator.tsx b/packages/guider/src/client/partials/sidebar/separator.tsx similarity index 68% rename from packages/guider/src/client/partials/sidebar/seperator.tsx rename to packages/guider/src/client/partials/sidebar/separator.tsx index 7cc2a38..2d4ddf0 100644 --- a/packages/guider/src/client/partials/sidebar/seperator.tsx +++ b/packages/guider/src/client/partials/sidebar/separator.tsx @@ -1,3 +1,3 @@ -export function SidebarSeperator() { +export function SidebarSeparator() { return
; } diff --git a/packages/guider/src/client/partials/sidebar/sidebar.tsx b/packages/guider/src/client/partials/sidebar/sidebar.tsx index cf01d9a..74e797e 100644 --- a/packages/guider/src/client/partials/sidebar/sidebar.tsx +++ b/packages/guider/src/client/partials/sidebar/sidebar.tsx @@ -4,7 +4,7 @@ import { useGuider } from '../../hooks/use-guider'; import { GuiderLayoutContext } from '../../page/context'; import { SidebarLink } from './link'; import { SidebarCustomComponent } from './component'; -import { SidebarSeperator } from './seperator'; +import { SidebarSeparator } from './separator'; import { SidebarGroup } from './group'; import { SidebarNested } from './nested'; import { SidebarStarLink } from './star-link'; @@ -26,7 +26,7 @@ export function SidebarInternal() { return ; if (link.type === 'component') return ; - if (link.type === 'seperator') return ; + if (link.type === 'separator') return ; if (link.type === 'group') return ; return null; diff --git a/packages/guider/src/client/utils/make-key.ts b/packages/guider/src/client/utils/make-key.ts index cd48120..df3e7de 100644 --- a/packages/guider/src/client/utils/make-key.ts +++ b/packages/guider/src/client/utils/make-key.ts @@ -1,7 +1,7 @@ import type { LinkComponent, NestableLinkComponent, - SeperatorComponent, + SeparatorComponent, GroupComponent, CustomComponentComponent, } from 'src/theme'; @@ -9,7 +9,7 @@ import type { export type KeyableComponets = | LinkComponent | NestableLinkComponent - | SeperatorComponent + | SeparatorComponent | CustomComponentComponent | GroupComponent; diff --git a/packages/guider/src/theme/components/directory.ts b/packages/guider/src/theme/components/directory.ts index c476324..b210f61 100644 --- a/packages/guider/src/theme/components/directory.ts +++ b/packages/guider/src/theme/components/directory.ts @@ -1,6 +1,6 @@ import type { PartialDeep } from 'type-fest'; import type { LinkComponent, NestableLinkComponent } from './link'; -import type { SeperatorComponent } from './seperator'; +import type { SeparatorComponent } from './separator'; import type { CustomComponentComponent } from './component'; import type { GroupComponent, GroupComponentChildren } from './group'; import type { LayoutSettings } from './settings'; @@ -9,7 +9,7 @@ import { makeLayoutSettings } from './layout'; type DirectoryComponentChildren = | NestableLinkComponent | LinkComponent - | SeperatorComponent + | SeparatorComponent | CustomComponentComponent | GroupComponent; diff --git a/packages/guider/src/theme/components/group.ts b/packages/guider/src/theme/components/group.ts index dbfaf89..1ba6e98 100644 --- a/packages/guider/src/theme/components/group.ts +++ b/packages/guider/src/theme/components/group.ts @@ -1,11 +1,11 @@ import type { CustomComponentComponent } from './component'; import type { LinkComponent, NestableLinkComponent } from './link'; -import type { SeperatorComponent } from './seperator'; +import type { SeparatorComponent } from './separator'; export type GroupComponentChildren = | NestableLinkComponent | LinkComponent - | SeperatorComponent + | SeparatorComponent | CustomComponentComponent; export interface GroupOptions { diff --git a/packages/guider/src/theme/components/index.ts b/packages/guider/src/theme/components/index.ts index bebab9d..9550859 100644 --- a/packages/guider/src/theme/components/index.ts +++ b/packages/guider/src/theme/components/index.ts @@ -2,7 +2,7 @@ export * from './component'; export * from './directory'; export * from './group'; export * from './link'; -export * from './seperator'; +export * from './separator'; export * from './site'; export * from './footer'; export * from './layout'; diff --git a/packages/guider/src/theme/components/link.ts b/packages/guider/src/theme/components/link.ts index e97e011..d9ec1bb 100644 --- a/packages/guider/src/theme/components/link.ts +++ b/packages/guider/src/theme/components/link.ts @@ -1,6 +1,6 @@ -import type { SeperatorComponent } from './seperator'; +import type { SeparatorComponent } from './separator'; -export type NestedLinkComponentChildren = LinkComponent | SeperatorComponent; +export type NestedLinkComponentChildren = LinkComponent | SeparatorComponent; export interface ExtraLinkOptions { icon?: string; diff --git a/packages/guider/src/theme/components/separator.ts b/packages/guider/src/theme/components/separator.ts new file mode 100644 index 0000000..37f84e2 --- /dev/null +++ b/packages/guider/src/theme/components/separator.ts @@ -0,0 +1,11 @@ +export interface SeparatorComponent { + type: 'separator'; +} + +export type SeparatorBuilder = () => SeparatorComponent; + +export const separator: SeparatorBuilder = () => { + return { + type: 'separator', + }; +}; diff --git a/packages/guider/src/theme/components/seperator.ts b/packages/guider/src/theme/components/seperator.ts deleted file mode 100644 index 96c2c52..0000000 --- a/packages/guider/src/theme/components/seperator.ts +++ /dev/null @@ -1,11 +0,0 @@ -export interface SeperatorComponent { - type: 'seperator'; -} - -export type SeperatorBuilder = () => SeperatorComponent; - -export const seperator: SeperatorBuilder = () => { - return { - type: 'seperator', - }; -}; diff --git a/packages/guider/src/theme/components/site.ts b/packages/guider/src/theme/components/site.ts index a3263a7..becc6d0 100644 --- a/packages/guider/src/theme/components/site.ts +++ b/packages/guider/src/theme/components/site.ts @@ -4,7 +4,7 @@ import type { NextSeoProps } from 'next-seo'; import type { DirectoryComponent } from './directory'; import type { LinkComponent } from './link'; import type { CustomComponentComponent } from './component'; -import type { SeperatorComponent } from './seperator'; +import type { SeparatorComponent } from './separator'; import type { LayoutSettings, PopulatedLayoutSettings } from './settings'; import { makeLayoutSettings, @@ -24,7 +24,7 @@ import type { GroupComponent } from './group'; export type TopNavChildren = | LinkComponent - | SeperatorComponent + | SeparatorComponent | CustomComponentComponent; export type TabsChildren = LinkComponent | CustomComponentComponent; From 26caf4ce371f310765a2b8096cabedec35be1ea3 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 30 Mar 2024 00:00:54 +0100 Subject: [PATCH 14/22] Proof reading by binary :) thx Co-authored-by: William Oldham --- .../guider/api-reference/meta/structure.mdx | 2 +- .../guider/api-reference/theme/component.mdx | 28 ++----------------- .../api-reference/theme/define-theme.mdx | 6 ++-- .../guider/api-reference/theme/directory.mdx | 11 ++++---- .../docs/guider/api-reference/theme/group.mdx | 6 ++-- .../docs/guider/api-reference/theme/link.mdx | 10 +++---- .../theme/{seperator.mdx => separator.mdx} | 8 +++--- .../api-reference/theme/site-template.mdx | 2 +- .../docs/guider/api-reference/theme/site.mdx | 28 ++++++++++--------- .../guider/api-reference/theme/social.mdx | 6 ++-- .../docs/guider/guides/config/navigation.mdx | 10 +++---- apps/docs/pages/showcase.tsx | 6 ++-- apps/docs/theme.config.tsx | 2 +- 13 files changed, 52 insertions(+), 73 deletions(-) rename apps/docs/pages/docs/guider/api-reference/theme/{seperator.mdx => separator.mdx} (68%) diff --git a/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx b/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx index ecb091d..e51d54e 100644 --- a/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx +++ b/apps/docs/pages/docs/guider/api-reference/meta/structure.mdx @@ -23,5 +23,5 @@ The meta file will be applied to all routes and child routes of the folder. Which directory the page(s) is in, defaults to the first directory of the selected site. - Which layout the page(s) should be displayed with, defaults to the layout with id `default`. + Which layout the page(s) should be displayed with, defaults to the layout with ID `default`. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/component.mdx b/apps/docs/pages/docs/guider/api-reference/theme/component.mdx index 4920ea9..885b498 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/component.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/component.mdx @@ -1,7 +1,6 @@ # `component()` -A custom component for a navigation item, -for if you want to add custom functionality to your sidebars (or other navigation structures). +Allows using a custom component for a navigation item. Useful if you want to add custom functionality to your sidebars (or other navigation structures). ## Example @@ -38,31 +37,8 @@ function component(comp); A function that returns JSX. You can run React hooks in here. - - temp. - - - - Extra options for this link. All fields are optional. - - - - temp. - - - temp. - - - temp. - - - temp. - - - - -## Reference - options +## Reference - Options ```tsx function component(options); diff --git a/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx b/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx index 1be3889..ed58a43 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/define-theme.mdx @@ -1,6 +1,6 @@ # `defineTheme()` -The only purpose `defineTheme()` is to make a theme configuration. Its return value needs to be +The only purpose `defineTheme()` has is to make a theme configuration. The output of this function must be the default export of the theme file. ## Example @@ -30,7 +30,7 @@ function defineTheme(options); To make a theme, you can either provide a site object or a list of `SiteComponent`. - They can be made by using [the site function](./site.mdx), the same page also lists site options. + The site objects can be made using [the site function](./site.mdx). The same page also lists the options for a site. - If you use a site object, the site id will be set to `main`. + If you use a site object, the site ID will be set to `main`. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx b/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx index 562274f..9794436 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/directory.mdx @@ -1,6 +1,6 @@ # `directory()` -Directories are the holder of your sidebar navigation items. +Directories hold a site's sidebar navigation items. ## Example @@ -25,7 +25,7 @@ function directory(id, options); ``` - The id of the directory, can be anything and is only used for referencing in meta files or similar. + The ID of the directory - Can be anything and is only used for referencing in meta files or similar. @@ -38,10 +38,11 @@ function directory(id, options); The layout settings for this directory, read more [about layout settings](./settings.mdx). - The settings in this settings layer are applied as a base. Followed by the settings on the chosen layout, then finally the directory. + The settings in this settings layer are applied last - overriding settings defined in sites and layouts. - - List of links to show in the sidebar. You can specify `link()`, `link.nested()`, `seperator()`, `component()`, `group()` (groups can hold all other types except for more groups). + + List of links to show in the sidebar. You can specify `link()`, `link.nested()`, `separator()`, `component()`, `group()` (groups can hold all other types except for more groups). + Read more about those on their respective documentation pages. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/group.mdx b/apps/docs/pages/docs/guider/api-reference/theme/group.mdx index a852c66..d587c91 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/group.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/group.mdx @@ -32,11 +32,11 @@ function group(title, items); - The navigation items inside of this group, the acceptable item types depends on what the the group is in. + The navigation items inside of this group, the acceptable item types depends on which navigation area the group is in. -## Reference - options +## Reference - Options ```tsx function group(options); @@ -51,7 +51,7 @@ function group(options); - The navigation items inside of this group, the acceptable item types depends on what the the group is in. + The navigation items inside of this group, the acceptable item types depends on which navigation area the group is in. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/link.mdx b/apps/docs/pages/docs/guider/api-reference/theme/link.mdx index b692eda..8de78ac 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/link.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/link.mdx @@ -21,7 +21,7 @@ export default defineTheme({ ``` -## Reference - link parameters +## Reference - Link parameters ```tsx function link(title, to, options); @@ -46,7 +46,7 @@ function link(title, to, options); If clicking the link should open a new tab or not. - If the active page check should check the exact page and not it's child routes. Useful in the case where you have a homepage in navigation. + If the active page check should check the exact page and not its child routes. Useful in the case where you have a homepage in navigation. The display style of the link, can be `default` or `star`. @@ -101,7 +101,7 @@ function link.nested(title, to, items); Where the link goes to. For example: `/docs/guides/guide-a`. - + The child items of the nested link. @@ -116,7 +116,7 @@ function link.nested(title, items); The title of the link. - + The child items of the nested link. @@ -137,7 +137,7 @@ function link.nested(options); Where the link goes to. For example: `/docs/guides/guide-a`. - + The child items of the nested link. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx b/apps/docs/pages/docs/guider/api-reference/theme/separator.mdx similarity index 68% rename from apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx rename to apps/docs/pages/docs/guider/api-reference/theme/separator.mdx index 0d52667..c57b45d 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/seperator.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/separator.mdx @@ -1,6 +1,6 @@ -# `seperator()` +# `separator()` -A seperator, simply draws a line inbetween navigation items. +A separator, simply draws a line inbetween navigation items. ## Example @@ -11,7 +11,7 @@ export default defineTheme({ directory("dir-a", { sidebar: [ link("Guide A", "/guides/a"), - seperator(), + separator(), link("Guide B", "/guides/b"), ] }) @@ -23,5 +23,5 @@ export default defineTheme({ ## Reference ```tsx -function seperator(); +function separator(); ``` diff --git a/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx b/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx index 41559c3..fff776e 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/site-template.mdx @@ -7,7 +7,7 @@ Site templates can be used to make a reusuable instance of a site. You can use ` ```tsx title="theme.config.tsx" const baseTemplate = siteTemplate({ - // all sites that extend this template will have the github setting set + // All sites that extend this template will have the "github" property set github: "mrjvs/neatojs", }) diff --git a/apps/docs/pages/docs/guider/api-reference/theme/site.mdx b/apps/docs/pages/docs/guider/api-reference/theme/site.mdx index 6d61998..8fbbc77 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/site.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/site.mdx @@ -1,6 +1,6 @@ # `site()` -A site is an instance of root level configuration, if you need to modify navigation items, footers and alike, you'll be modifying a site. +A site is an instance of root level configuration. If you need to modify navigation items, footers and alike, you'll be modifying a site. You can find more information on how to use sites effectively in [this guide](../../guides/advanced/multi-site.mdx). @@ -41,8 +41,8 @@ function site(id, options); Read more about how to use templates in [this guide](../../guides/advanced/multi-site.mdx#site-templates). - - List of items shown in the top navigation bar. You can only specify `seperator()`, `link()` and `component()`. + + List of items shown in the top navigation bar. You can only specify `separator()`, `link()` and `component()`. Read more about those on their respective documentation pages. @@ -62,12 +62,12 @@ function site(id, options); You can either specify an object for your meta data, which will follow the structure [defined here](https://github.com/garmeeh/next-seo?tab=readme-ov-file#nextseo-options). - Or you can pass in a function to render your own meta tags. Note that you do **have** to use [NextSeo](https://github.com/garmeeh/next-seo) to use this method. + Or you can pass in a function to render your own meta tags. Note that you do **must** use [NextSeo](https://github.com/garmeeh/next-seo) when using this method. Read more about how to use this on [this page](../../guides/config/seo.mdx). - A repository identifier, if specified an github widget with the star count and fork count is displayed on the right side of the header. + A repository identifier, if specified a GitHub widget with the star count and fork count is displayed on the right side of the header. The identifier needs to be either `{ORG_NAME}/{REPO_NAME}` or `{USER_NAME}/{REPO_NAME}`. For example: `mrjvs/neatojs`. @@ -78,20 +78,20 @@ function site(id, options); - Text to display in the logo + Text to display in the logo. - Link to make the logo redirect towards of clicked. If not specified, the logo is not clickable + Link to make the logo redirect to when clicked. If not specified, the logo is not clickable. - The default layout to show for all pages associated with this site. Defaults to the layout with ID `default`. + The default layout to show for all pages associated with this site. Defaults to the layout with the ID `default`. List of layouts to add to the site. Pages and directories can specify which layout they want to use. - The default included layouts are still added even if you add items to this list. You can change the default layouts by making a layout yourself with the same id as the defaults. + The default included layouts are still added even if you add items to this list. You can change the default layouts by making a layout yourself with the same ID as the defaults. Read more about layouts in [this guide](../../guides/advanced/customizing-layout.mdx#using-layouts). @@ -107,7 +107,7 @@ function site(id, options); The layout settings for this site, read more [about layout settings](./settings.mdx). - The settings in this settings layer are applied as a base. Followed by the settings on the chosen layout, then finally the directory. + The settings in this settings layer act as defaults for following layers. The settings are overriden by the layout settings and directory settings in that order if they exist. List of directories for this site, read more [about directories here](./directory.mdx). @@ -116,7 +116,8 @@ function site(id, options); Options for the content footer (the footer placed right below the content). - Specifying options here or not will not influence if it is shown, check [the footer page](../../guides/advanced/footer.mdx) for more info. + + The visibility of the content footer is not controlled by the settings. To control the visibility of the footer, check [the footer page](../../guides/advanced/footer.mdx) for more info. @@ -126,7 +127,7 @@ function site(id, options); List of social media links shown in the content footer. Check [the social() page](./social.mdx) for usage. - Base URL of your git repository, it will be used to show a "edit on github" link. Leave undefined if you don't want such a link. + Base URL of your Git repository, it will be used to show a "Edit on GitHub" link. Leave undefined if you don't want such a link. Check [this page](../../guides/advanced/footer.mdx#configuring-the-content-footer) for information on how to configure it. @@ -134,7 +135,8 @@ function site(id, options); Options for the page footer (the footer placed at the very bottom of the page). - Specifying options here or not will not influence if it is shown, check [the footer page](../../guides/advanced/footer.mdx) for more info. + + The visibility of the page footer is not controlled by the settings. To control the visibility of the footer, check [the footer page](../../guides/advanced/footer.mdx) for more info. diff --git a/apps/docs/pages/docs/guider/api-reference/theme/social.mdx b/apps/docs/pages/docs/guider/api-reference/theme/social.mdx index f9cfb75..a122e95 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/social.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/social.mdx @@ -9,7 +9,7 @@ Social links, currently only usable in the content footer. export default defineTheme({ contentFooter: { socials: [ - social.twitter("https://x.com"), // twitter both show the X logo + social.twitter("https://x.com"), // Twitter and X both show the X logo social.x("https://x.com"), social.discord("https://discord.gg"), social.github("https://github.com"), @@ -24,7 +24,7 @@ export default defineTheme({ ## Reference ```tsx -function social.twitter(link); // twitter and X both show the X logo +function social.twitter(link); // Twitter and X both show the X logo function social.x(link); function social.discord(link); function social.github(link); @@ -37,7 +37,7 @@ function social.mastodon(link); -## Reference - options +## Reference - Options ```tsx function social(options); diff --git a/apps/docs/pages/docs/guider/guides/config/navigation.mdx b/apps/docs/pages/docs/guider/guides/config/navigation.mdx index fd494d9..7fb9e92 100644 --- a/apps/docs/pages/docs/guider/guides/config/navigation.mdx +++ b/apps/docs/pages/docs/guider/guides/config/navigation.mdx @@ -12,11 +12,11 @@ You can use the following components, all of which are imported from `@neato/gui - `link(){:ts}`: A standard sidebar link with optional icon. - `link.nested(){:ts}`: A nested link, it's collapsable by the user. - `group(){:ts}`: A group or section, used for visual hierarchy. -- `seperator(){:ts}`: A plain & simple line. +- `separator(){:ts}`: A plain & simple line. - `component(){:ts}`: A custom component, you can render any React component in here. - Groups can contain any other components except another group. Nested links can only contain normal links and seperators. + Groups can contain any other components except another group. Nested links can only contain normal links and separators. Here is an example that uses every component. This sidebar configuration will @@ -40,7 +40,7 @@ sidebar: [ group("Group A", [ link("Link E", "/link/e"), ]) - seperator(), + separator(), component(() =>

Custom component

), ] ``` @@ -52,7 +52,7 @@ Adding links to the navigation bar is quite easy. You can use the following components, all of which are imported from `@neato/guider/theme`. - `link(){:ts}`: A standard link with optional icon. -- `seperator(){:ts}`: A plain & simple line. +- `separator(){:ts}`: A plain & simple line. You can configure the top navigation per site. Here is an example that uses every component: @@ -61,7 +61,7 @@ site("my-site", { navigation: [ link("Link A", "/link/a"), link("Link B with icon", "/link/b", { icon: 'fa6-solid:b' }), - seperator(), + separator(), link("Link C", "/link/c"), ] }) diff --git a/apps/docs/pages/showcase.tsx b/apps/docs/pages/showcase.tsx index 70a1860..cb1ffe9 100644 --- a/apps/docs/pages/showcase.tsx +++ b/apps/docs/pages/showcase.tsx @@ -17,7 +17,7 @@ const showcases: ShowcaseType[] = [ { title: 'movie-web account', description: 'Uses Config for their account service.', - href: 'https://github.com/movie-web/movie-web/', + href: 'https://github.com/movie-web/backend/', imageUrl: mwAccountImg.src, tags: ['config'], }, @@ -35,11 +35,11 @@ export default function ShowcasePage() { Showcase - NeatoJS can make your life easier — it has for them! + NeatoJS increases your development speed — it has for them! Below you can find out who uses NeatoJS, inspire yourself and figure - out how we can best be of service. + out how NeatoJS can work best for you! {filtered.map((v) => ( diff --git a/apps/docs/theme.config.tsx b/apps/docs/theme.config.tsx index 53e90c6..b113628 100644 --- a/apps/docs/theme.config.tsx +++ b/apps/docs/theme.config.tsx @@ -212,7 +212,7 @@ export default defineTheme([ link('directory()', gdApi('/theme/directory')), link('link()', gdApi('/theme/link')), link('group()', gdApi('/theme/group')), - link('seperator()', gdApi('/theme/seperator')), + link('separator()', gdApi('/theme/separator')), link('component()', gdApi('/theme/component')), link('social()', gdApi('/theme/social')), link('Layout settings', gdApi('/theme/settings')), From 49a83ed4d6da6a34bceb5e330f9de7c49e5e39cb Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 30 Mar 2024 17:22:17 +0100 Subject: [PATCH 15/22] Finish api reference --- .../components/guider-content-footer.mdx | 19 ++ .../components/guider-header.mdx | 22 +- .../components/guider-layout.mdx | 62 +++++- .../api-reference/components/guider-logo.mdx | 19 ++ .../components/guider-page-footer.mdx | 19 ++ .../components/guider-sidebar.mdx | 22 +- .../api-reference/components/guider-toc.mdx | 22 +- .../functions/create-not-found-page.mdx | 24 ++- .../functions/create-redirect.mdx | 28 ++- .../functions/use-guider-page.mdx | 106 ++++++++- .../api-reference/functions/use-guider.mdx | 203 +++++++++++++++++- .../guider/api-reference/theme/settings.mdx | 70 +++++- apps/docs/theme.config.tsx | 9 + packages/guider/src/client/partials/index.ts | 3 + 14 files changed, 601 insertions(+), 27 deletions(-) create mode 100644 apps/docs/pages/docs/guider/api-reference/components/guider-content-footer.mdx create mode 100644 apps/docs/pages/docs/guider/api-reference/components/guider-logo.mdx create mode 100644 apps/docs/pages/docs/guider/api-reference/components/guider-page-footer.mdx diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-content-footer.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-content-footer.mdx new file mode 100644 index 0000000..eb1a768 --- /dev/null +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-content-footer.mdx @@ -0,0 +1,19 @@ +# `` + +React component that will show the currently configured content footer. + +It respects configured `contentFooter` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + + +## Example + +```tsx + +``` + + +## Reference + +```tsx +function GuiderContentFooter(): ReactNode; +``` diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-header.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-header.mdx index 6bdc3bb..276e927 100644 --- a/apps/docs/pages/docs/guider/api-reference/components/guider-header.mdx +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-header.mdx @@ -1,5 +1,21 @@ # `` - -This article is a stub, please help by contributing to the docs. - +React component that will show the currently configured navigation partial. + +It respects configured `navigation` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + + +## Example + +```tsx +
+ // [!code focus] +
+``` + + +## Reference + +```tsx +function GuiderHeader(): ReactNode; +``` diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-layout.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-layout.mdx index 80acf70..a77ee0c 100644 --- a/apps/docs/pages/docs/guider/api-reference/components/guider-layout.mdx +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-layout.mdx @@ -1,5 +1,61 @@ # `` - -This article is a stub, please help by contributing to the docs. - +React component that will show the currently configured layout partial. + +It respects configured `layout` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + +The primary use of this component is to make a non-MDX page look like an MDX page. Don't use it if you're already in an MDX File. + +## Example + +```tsx + +

Custom page

+

This is a custom page that doesn't use MDX

+
+``` + + +## Reference + +```tsx +function GuiderLayout(props); +``` + + The props for this component. Every prop is optional. + + + + The meta configuration, see [the meta file reference](../meta/structure.mdx) for the contents. + + + An excerpt of the page, used in meta tags for SEO. + + + The headings of the page, first depth 1 heading is used as page title for SEO. + + This is also to display the table of contents. + + + + The depth of the heading. Equals to the amount of hashtags of the heading. + + + Text content of the heading. + + + Extra data associated with the heading. + + + + The ID of the heading. + + + + + + + The children of the react component, it will be displayed as the page contents. + + + diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-logo.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-logo.mdx new file mode 100644 index 0000000..1dbb8c0 --- /dev/null +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-logo.mdx @@ -0,0 +1,19 @@ +# `` + +React component that will show the currently configured logo. + +It respects configured `logo` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + + +## Example + +```tsx + +``` + + +## Reference + +```tsx +function GuiderLogo(): ReactNode; +``` diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-page-footer.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-page-footer.mdx new file mode 100644 index 0000000..28ff6ca --- /dev/null +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-page-footer.mdx @@ -0,0 +1,19 @@ +# `` + +React component that will show the currently configured page footer. + +It respects configured `pageFooter` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + + +## Example + +```tsx + +``` + + +## Reference + +```tsx +function GuiderPageFooter(): ReactNode; +``` diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-sidebar.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-sidebar.mdx index 0c77caa..cf47f55 100644 --- a/apps/docs/pages/docs/guider/api-reference/components/guider-sidebar.mdx +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-sidebar.mdx @@ -1,5 +1,21 @@ # `` - -This article is a stub, please help by contributing to the docs. - +React component that will show the currently configured sidebar partial. + +It respects configured `sidebar` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + + +## Example + +```tsx +
+ // [!code focus] +
+``` + + +## Reference + +```tsx +function GuiderSidebar(): ReactNode; +``` diff --git a/apps/docs/pages/docs/guider/api-reference/components/guider-toc.mdx b/apps/docs/pages/docs/guider/api-reference/components/guider-toc.mdx index 065bf97..f021384 100644 --- a/apps/docs/pages/docs/guider/api-reference/components/guider-toc.mdx +++ b/apps/docs/pages/docs/guider/api-reference/components/guider-toc.mdx @@ -1,5 +1,21 @@ # `` - -This article is a stub, please help by contributing to the docs. - +React component that will show the currently configured table of contents. + +It respects configured `toc` in the layout settings. Read more [about partials](../theme/settings.mdx#about-partials). + + +## Example + +```tsx +
+ // [!code focus] +
+``` + + +## Reference + +```tsx +function GuiderToc(): ReactNode; +``` diff --git a/apps/docs/pages/docs/guider/api-reference/functions/create-not-found-page.mdx b/apps/docs/pages/docs/guider/api-reference/functions/create-not-found-page.mdx index 83f39fd..125a51d 100644 --- a/apps/docs/pages/docs/guider/api-reference/functions/create-not-found-page.mdx +++ b/apps/docs/pages/docs/guider/api-reference/functions/create-not-found-page.mdx @@ -1,5 +1,23 @@ # `createNotFoundPage()` - -This article is a stub, please help by contributing to the docs. - +This function creates a premade 404 page. + +You don't have to use this 404 page, it does nothing special. Feel free to make your own. + + + This has be put in `/pages/404.tsx` to work, you can't choose a different location or it won't work. + + + +## Example + +```tsx title="/pages/404.tsx" +export default createNotFoundPage(); +``` + + +## Reference + +```tsx +function createNotFoundPage(); +``` diff --git a/apps/docs/pages/docs/guider/api-reference/functions/create-redirect.mdx b/apps/docs/pages/docs/guider/api-reference/functions/create-redirect.mdx index 93a18b2..3091a72 100644 --- a/apps/docs/pages/docs/guider/api-reference/functions/create-redirect.mdx +++ b/apps/docs/pages/docs/guider/api-reference/functions/create-redirect.mdx @@ -1,5 +1,27 @@ # `createRedirect()` - -This article is a stub, please help by contributing to the docs. - +This utility function is an easy way to make redirects work in static site generation mode. + + +## Example + +```tsx title="/pages/index.tsx" +export default createRedirect({ to: '/docs/guides' }); +``` + + +## Reference + +```tsx +function createRedirect(options); +``` + + + Options for the redirect. + + + + Where the user gets redirected to when it renders this page. + + + diff --git a/apps/docs/pages/docs/guider/api-reference/functions/use-guider-page.mdx b/apps/docs/pages/docs/guider/api-reference/functions/use-guider-page.mdx index d48f083..8421cc7 100644 --- a/apps/docs/pages/docs/guider/api-reference/functions/use-guider-page.mdx +++ b/apps/docs/pages/docs/guider/api-reference/functions/use-guider-page.mdx @@ -1,5 +1,105 @@ # `useGuiderPage()` - -This article is a stub, please help by contributing to the docs. - +This React hook is the way to hook into Guider internals for the current page. + + +## Example + +```tsx +function useIsTocEnabled() { + const guider = useGuiderPage(); + const tocState = guider.settings.tocState; + return tocState; +} +``` + + +## Reference + +```tsx +function useGuiderPage(): GuiderPageContext; +``` + + The context for a Guider page, including the page meta data. + + + + The currently active site. + + See [the `useGuider()` page](./use-guider.mdx) for more info. + + + The currently active directory. + + See [the `useGuider()` page](./use-guider.mdx) for more info. + + + The currently active layout. + + See [the `useGuider()` page](./use-guider.mdx) for more info. + + + The fully populated layout settings, all defaults are merged into it (so no optional properties). + + Read more [about layout settings](../theme/settings.mdx). + + See [the `useGuider()` page](./use-guider.mdx) for more info. + + + A list of the contents of your `_meta.json` files. + + See [the `useGuider()` page](./use-guider.mdx) for more info. + + + Data for the current page content. + + + + The metadata for this page. + + + + The site field in the Frontmatter + + + The directory field in the Frontmatter + + + The layout field in the Frontmatter + + + The title field in the Frontmatter + + + The description field in the Frontmatter + + + + + The headings in the page content in order of appearance. + + + + The depth of the heading. Equals to the amount of hashtags of the heading. + + + Text content of the heading. + + + Extra data associated with the heading. + + + + The ID of the heading. + + + + + + + An first paragraph of the page content. + + + + + diff --git a/apps/docs/pages/docs/guider/api-reference/functions/use-guider.mdx b/apps/docs/pages/docs/guider/api-reference/functions/use-guider.mdx index 0762a69..50c6831 100644 --- a/apps/docs/pages/docs/guider/api-reference/functions/use-guider.mdx +++ b/apps/docs/pages/docs/guider/api-reference/functions/use-guider.mdx @@ -1,5 +1,202 @@ # `useGuider()` - -This article is a stub, please help by contributing to the docs. - +This React hook is the way to hook into Guider internals. It can give you information about the entire Guider instance. + + +## Example + +```tsx +function useIsTocEnabled() { + const guider = useGuider(); + const tocState = guider.settings.tocState; + return tocState; +} +``` + + +## Reference + +```tsx +function useGuider(metaConf): GuiderContext; +``` + + + Optional meta config overwrite, it will fall back on what is configured in `_meta.json` files. + + This does **not** account for FrontMatter config. Use `useGuiderPage()` ([Check here](../functions/use-guider-page.mdx)) if you need Frontmatter accounted for. + + + + The context for a Guider page. + + + + The currently active site. + + + + The ID of the site, this is used for referencing the site in other parts of your configuration, for example in `_meta.json` files. + + + List of items shown in the top navigation bar. + + + List of links to show in the tabs section of the header. + + + List of links to show in the dropdown section of the header. You can only specify `link()` and `group()` (groups can only hold other links). + + + The meta data shown for all pages associated with the site. + + + A repository identifier, if specified a GitHub widget with the star count and fork count is displayed on the right side of the header. + + The identifier needs to be either `{ORG_NAME}/{REPO_NAME}` or `{USER_NAME}/{REPO_NAME}`. For example: `mrjvs/neatojs`. + + + A text based logo to show top left of the header. If not specified, a placeholder is shown. + + You can also overwrite the logo, for example to show an image. Read more [about overwriting the logo](../../guides/config/theming.mdx#changing-the-logo). + + + + Text to display in the logo. + + + Link to make the logo redirect to when clicked. If not specified, the logo is not clickable. + + + + + The default layout to show for all pages associated with this site. + + + List of layouts for this site. + + + + The ID of the layout + + + The populated layout settings for this layout, read more [about layout settings](../theme/settings.mdx). + + This is preresolved, but you shouldn't use it directly. Use the returned settings on `GuiderContext.settings` instead. + + + + + The layout settings for this site, read more [about layout settings](../theme/settings.mdx). + + This is preresolved, but you shouldn't use it directly. Use the returned settings on `GuiderContext.settings` instead. + + + List of directories for this site, read more [about directories here](../theme/directory.mdx). + + + + The ID of the directory + + + The ID of the layout that needs to be shown for pages in this directory. + + + The populated layout settings for this directory, read more [about layout settings](../theme/settings.mdx). + + This is preresolved, but you shouldn't use it directly. Use the returned settings on `GuiderContext.settings` instead. + + + List of links to show in the sidebar. + + + + + Options for the content footer (the footer placed right below the content). + + The visibility of the content footer is not controlled by the settings. To control the visibility of the footer, check [the footer page](../../guides/advanced/footer.mdx) for more info. + + + + Text shown in the content footer, by default it will be a copyright notice. + + + List of social media links shown in the content footer. Check [the social() page](../theme/social.mdx) for usage. + + + Base URL of your Git repository, it will be used to show a "Edit on GitHub" link. Leave undefined if you don't want such a link. + + Check [this page](../../guides/advanced/footer.mdx#configuring-the-content-footer) for information on how to configure it. + + + + + Options for the page footer (the footer placed at the very bottom of the page). + + The visibility of the page footer is not controlled by the settings. To control the visibility of the footer, check [the footer page](../../guides/advanced/footer.mdx) for more info. + + + + Text shown in the page footer, it will be blank by default. + + + + + + + The currently active directory. + + + + The ID of the directory + + + The ID of the layout that needs to be shown for pages in this directory. + + + The populated layout settings for this directory, read more [about layout settings](../theme/settings.mdx). + + This is preresolved, but you shouldn't use it directly. Use the returned settings on `GuiderContext.settings` instead. + + + List of links to show in the sidebar. + + + + + The currently active layout. + + + + The ID of the layout + + + The populated layout settings for this layout, read more [about layout settings](../theme/settings.mdx). + + This is preresolved, but you shouldn't use it directly. Use the returned settings on `GuiderContext.settings` instead. + + + + + The fully populated layout settings, all defaults are merged into it (so no optional properties). + + Read more [about layout settings](../theme/settings.mdx). + + + A list of the contents of your `_meta.json` files. + + + + The site path that this `_meta.json` file belongs to. + + + The resolved meta file configuration, it accounts for all meta files that are above it. So you can use this if it's the most specific path. + + Read more [about meta files](../meta/structure.mdx). + + + The raw contents of the `_meta.json` file. Can be used for custom properties. + + + + + diff --git a/apps/docs/pages/docs/guider/api-reference/theme/settings.mdx b/apps/docs/pages/docs/guider/api-reference/theme/settings.mdx index a41e05b..709dd26 100644 --- a/apps/docs/pages/docs/guider/api-reference/theme/settings.mdx +++ b/apps/docs/pages/docs/guider/api-reference/theme/settings.mdx @@ -1,5 +1,69 @@ # Layout settings - -This article is a stub, please help by contributing to the docs. - +Layout settings are the interface on which you modify your layout. + +All of these settings can be changed in any settings layer, [read more about settings layers](../../guides/advanced/customizing-layout.mdx). + + +## Example + +```tsx +settings: { + toc: false, + colors: { + primary: '#f76957', + } +} +``` + + +## About partials + +Partial settings work slightly differently than other settings: +- To overwrite a partial, pass in a function (e.g. `toc: () =>

hello

{:tsx}`). This will also **show** the partial. +- Set a partial to `true{:tsx}` to **show** the partial, but not change its contents (e.g. `toc: true{:tsx}`). +- Set a partial to `false{:tsx}` to **hide** the partial, but not change its contents (e.g. `toc: false{:tsx}`). +- To use the settings from the upper layer. Just don't set the settings (or set it to undefined). + +You can read more about layout partials in the [layout settings guide](../../guides/advanced/customizing-layout.mdx). + +When you overwrite a partial, you can use `useGuiderPage()` to get the current page information. ([Read more here](../functions/use-guider-page.mdx)). + + +## Reference + + + The table of contents partial. Check [this section](#about-partials) for information on how to use partials. + + + The sidebar partial. Check [this section](#about-partials) for information on how to use partials. + + + The navigation/header partial. Check [this section](#about-partials) for information on how to use partials. + + + The content footer partial. Check [this section](#about-partials) for information on how to use partials. + + + The page footer partial. Check [this section](#about-partials) for information on how to use partials. + + + The logo partial. Check [this section](#about-partials) for information on how to use partials. + + + The page layout partial. Check [this section](#about-partials) for information on how to use partials. + + + This partial cannot be hidden, the layout wraps the entire site. + + + + the background pattern settings, set it `flare` to have a nice shard of light on your page background. + + Just like partials, you can use `true` and `false` to show or hide the partial. + + + The layout colors, this is how you customize the theme colors. + + Discover the theme colors [in this guide](../../guides/config/theming.mdx#changing-colors). + diff --git a/apps/docs/theme.config.tsx b/apps/docs/theme.config.tsx index b113628..9f94fda 100644 --- a/apps/docs/theme.config.tsx +++ b/apps/docs/theme.config.tsx @@ -237,6 +237,15 @@ export default defineTheme([ link('', gdApi('/components/guider-layout')), link('', gdApi('/components/guider-sidebar')), link('', gdApi('/components/guider-toc')), + link('', gdApi('/components/guider-logo')), + link( + '', + gdApi('/components/guider-content-footer'), + ), + link( + '', + gdApi('/components/guider-page-footer'), + ), ]), ], }), diff --git a/packages/guider/src/client/partials/index.ts b/packages/guider/src/client/partials/index.ts index 4574c21..e2dc835 100644 --- a/packages/guider/src/client/partials/index.ts +++ b/packages/guider/src/client/partials/index.ts @@ -2,3 +2,6 @@ export { GuiderHeader } from './header'; export { GuiderLayout } from './layout'; export { GuiderSidebar } from './sidebar'; export { GuiderToc } from './toc'; +export { GuiderLogo } from './logo'; +export { GuiderContentFooter } from './content-footer'; +export { GuiderpageFooter } from './page-footer'; From 308b9e3796ae988e2c1f6695dd72403b8dbd35af Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 30 Mar 2024 18:18:15 +0100 Subject: [PATCH 16/22] Add deployment guides --- .../docs/guider/guides/deploy/cloudflare.mdx | 43 +++++++++++++++++-- .../guider/guides/deploy/github-pages.mdx | 4 ++ .../docs/guider/guides/deploy/netlify.mdx | 38 ++++++++++++++-- .../docs/guider/guides/deploy/vercel.mdx | 34 +++++++++++++-- 4 files changed, 109 insertions(+), 10 deletions(-) diff --git a/apps/docs/pages/docs/guider/guides/deploy/cloudflare.mdx b/apps/docs/pages/docs/guider/guides/deploy/cloudflare.mdx index c77061d..5e59e80 100644 --- a/apps/docs/pages/docs/guider/guides/deploy/cloudflare.mdx +++ b/apps/docs/pages/docs/guider/guides/deploy/cloudflare.mdx @@ -1,5 +1,42 @@ # Cloudflare Pages - -This article is a stub, please help by contributing to the docs. - +A guide to deploy a Guider project to Cloudflare Pages. + + +## The guide + +Follow the steps below to deploy a Guider project to Cloudflare Pages. + + + + ### Make a new Application + + Go to [the cloudflare dashboard](https://dash.cloudflare.com) on under "Workers & Pages" click "Create application". + + + ### Select your repository + + On the "Create application" page, select the "Pages" tab. + + Choose a repository by pressing "Connect to Git" and then selecting it from the repository list. + + + ### Configure your project + + Configure the following fields: + - **Project name:** Choose a fitting name. + - **Production branch:** Select your release branch. + - **Framework preset:** Select "Next.js (Static HTML Export)" + - **Build command:** Set to `npm run build` (or your favourite package manager) + - **Root directory (advanced):** If you have your project in a subdirectory, set it here. otherwise leave empty. + + + ### Deploy + + Click the `Save and Deploy` button and wait until your site has been deployed. + + + Cloudflare has linked this deploy with your branch, meaning that once new changes are pushed. Cloudflare will automatically update your site. + + + diff --git a/apps/docs/pages/docs/guider/guides/deploy/github-pages.mdx b/apps/docs/pages/docs/guider/guides/deploy/github-pages.mdx index bbeebd1..8d11e3f 100644 --- a/apps/docs/pages/docs/guider/guides/deploy/github-pages.mdx +++ b/apps/docs/pages/docs/guider/guides/deploy/github-pages.mdx @@ -64,3 +64,7 @@ jobs: id: deployment uses: actions/deploy-pages@v4 ``` + + + This GitHub Action is activated on push of your release branch, meaning that once new changes are pushed. The action will automatically update your site. + diff --git a/apps/docs/pages/docs/guider/guides/deploy/netlify.mdx b/apps/docs/pages/docs/guider/guides/deploy/netlify.mdx index 11e9835..c77cb98 100644 --- a/apps/docs/pages/docs/guider/guides/deploy/netlify.mdx +++ b/apps/docs/pages/docs/guider/guides/deploy/netlify.mdx @@ -1,5 +1,35 @@ -# Netlify +# Vercel - -This article is a stub, please help by contributing to the docs. - +A guide to deploy a Guider project to Netlify. + + +## The guide + +Follow the steps below to deploy a Guider project to Netlify. + + + + ### Make a new Netlify project + + Go to [New site](https://app.netlify.com/start) on Netlify, and select your repository. + + + ### Configure your project + + Configure the following fields: + - **Site name:** Choose a fitting name. + - **Site to deploy:** Set to `Other (configure manually)`. + - **Base directory:** Set to the project directory, set to `/` if unsure. + - **Build command:** Set to `npm run build` (or your favourite package manager). + - **Publish directory:** Set to `/out` (prefix it with your project directory if it's not root). + + + ### Deploy + + Click the `deploy` button and wait until your site has been deployed. + + + Netlify has linked this deploy with your branch, meaning that once new changes are pushed. Netlify will automatically update your site. + + + diff --git a/apps/docs/pages/docs/guider/guides/deploy/vercel.mdx b/apps/docs/pages/docs/guider/guides/deploy/vercel.mdx index 1cacc42..0bd9b40 100644 --- a/apps/docs/pages/docs/guider/guides/deploy/vercel.mdx +++ b/apps/docs/pages/docs/guider/guides/deploy/vercel.mdx @@ -1,5 +1,33 @@ # Vercel - -This article is a stub, please help by contributing to the docs. - +A guide to deploy a Guider project to Vercel. + + +## The guide + +Follow the steps below to deploy a Guider project on Vercel. + + + + ### Make a new Vercel project + + Go to [New project](https://vercel.com/new) on Vercel, and select your repository. + + + ### Configure your project + + Configure the following fields: + - **Project Name:** Choose a fitting name. + - **Framework Preset:** Set it to `Next.js`. + - **Root Directory:** Make sure it matches to the root of your Guider project. + + + ### Deploy + + Click the `deploy` button and wait until your site has been deployed. + + + Vercel has linked this deploy with your branch, meaning that once new changes are pushed. Vercel will automatically update your site. + + + From cc363905554122edcc019d45ba34a8c832abac9a Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 30 Mar 2024 18:42:42 +0100 Subject: [PATCH 17/22] Remove examples page + document API reference for components --- .../docs/guider/guides/config/examples.mdx | 9 ------- .../guider/writing/components/callouts.mdx | 12 ++++++++++ .../guider/writing/components/code-groups.mdx | 21 ++++++++++++++++ .../docs/guider/writing/components/fields.mdx | 3 +-- .../docs/guider/writing/components/frames.mdx | 12 ++++++++++ .../docs/guider/writing/components/steps.mdx | 18 ++++++++++++++ .../docs/guider/writing/components/tabs.mdx | 24 +++++++++++++++++++ apps/docs/theme.config.tsx | 1 - 8 files changed, 88 insertions(+), 12 deletions(-) delete mode 100644 apps/docs/pages/docs/guider/guides/config/examples.mdx diff --git a/apps/docs/pages/docs/guider/guides/config/examples.mdx b/apps/docs/pages/docs/guider/guides/config/examples.mdx deleted file mode 100644 index 8350ed3..0000000 --- a/apps/docs/pages/docs/guider/guides/config/examples.mdx +++ /dev/null @@ -1,9 +0,0 @@ -# Examples - -Checking out examples can often be a fast shortcut on how to figure out the details of a frameworks. - -Below is a list of popular documentation sites, remade in Guider: - - -This article is a stub, please help by contributing to the docs. (I haven't made any examples yet) - diff --git a/apps/docs/pages/docs/guider/writing/components/callouts.mdx b/apps/docs/pages/docs/guider/writing/components/callouts.mdx index 85767ec..e9afa68 100644 --- a/apps/docs/pages/docs/guider/writing/components/callouts.mdx +++ b/apps/docs/pages/docs/guider/writing/components/callouts.mdx @@ -61,3 +61,15 @@ In case you need to dynamically change the type of the callout, you can use the ```jsx I am a callout ``` + + +## Component API - `` + +The general component API, the more specific versions don't have any props. + + + The type and style of the callout, can be any of the following: `warning`, `note`, `important`, `caution`, `tip` + + + The contents of the callout, you can use markdown freely in here. + diff --git a/apps/docs/pages/docs/guider/writing/components/code-groups.mdx b/apps/docs/pages/docs/guider/writing/components/code-groups.mdx index cfb08cf..3325bf7 100644 --- a/apps/docs/pages/docs/guider/writing/components/code-groups.mdx +++ b/apps/docs/pages/docs/guider/writing/components/code-groups.mdx @@ -78,3 +78,24 @@ Codegroup children can also contain `` components. See the example below. + + +## Component API - `` + +The base component, has no props other than children + + + The items of the CodeGroup. + + + +## Component API - `` + +The CodeGroup item, can only be a child of a `{:tsx}`. + + + The title of this CodeGroup item, will be displayed as the tab name. + + + The contents of this CodeGroup item. Must be a codeblock or a `{:tsx}` + diff --git a/apps/docs/pages/docs/guider/writing/components/fields.mdx b/apps/docs/pages/docs/guider/writing/components/fields.mdx index 3548800..12c4c39 100644 --- a/apps/docs/pages/docs/guider/writing/components/fields.mdx +++ b/apps/docs/pages/docs/guider/writing/components/fields.mdx @@ -47,8 +47,7 @@ You can also use the `{:tsx}` component to group properties A field with a type display, great for documenting types or structures. - + The title of the field diff --git a/apps/docs/pages/docs/guider/writing/components/frames.mdx b/apps/docs/pages/docs/guider/writing/components/frames.mdx index 6f2be99..7d7aabd 100644 --- a/apps/docs/pages/docs/guider/writing/components/frames.mdx +++ b/apps/docs/pages/docs/guider/writing/components/frames.mdx @@ -35,3 +35,15 @@ If you don't want something to be centered. You can wrap your content in `
Hello world
+ + +## Component API - `` + +The Frame component. + + + Boolean property on the style of the frame. Set to `true` to remove the background grid. + + + The content of the frame. + diff --git a/apps/docs/pages/docs/guider/writing/components/steps.mdx b/apps/docs/pages/docs/guider/writing/components/steps.mdx index e37309f..c558643 100644 --- a/apps/docs/pages/docs/guider/writing/components/steps.mdx +++ b/apps/docs/pages/docs/guider/writing/components/steps.mdx @@ -32,3 +32,21 @@ You can put any content inside of a step, so don't feel restricted to just text. Step content goes here + + +## Component API - `` + +The base Steps component only has some children, no specific props. + + + The individual steps that should be displayed. + + + +## Component API - `` + +An individual step component only has some children, no specific props. + + + The contents of the Step. + diff --git a/apps/docs/pages/docs/guider/writing/components/tabs.mdx b/apps/docs/pages/docs/guider/writing/components/tabs.mdx index 5b9a6b6..13ae36e 100644 --- a/apps/docs/pages/docs/guider/writing/components/tabs.mdx +++ b/apps/docs/pages/docs/guider/writing/components/tabs.mdx @@ -86,3 +86,27 @@ If you would like the user's choice to be stored, you can give a `storageKey` pr Tab C + + +## Component API - `` + +The Tabs component + + + The tab items, must have the same number of items as there are tabs. + + + The storage key, to store the preferences against. See [this section](#storing-the-tab-choice) for usage. + + + The tabs to display. + + + +## Component API - `` + +A Tabs item can only be a child of a `{:tsx}`. + + + The contents of this Tab. + diff --git a/apps/docs/theme.config.tsx b/apps/docs/theme.config.tsx index 9f94fda..c458016 100644 --- a/apps/docs/theme.config.tsx +++ b/apps/docs/theme.config.tsx @@ -123,7 +123,6 @@ export default defineTheme([ link('API reference + docs', gdGuides('/config/common/api-ref')), link('Blog posts + docs', gdGuides('/config/common/blog')), ]), - link('Examples', gdGuides('/config/examples')), ]), group('Advanced', [ link('Running multiple sites', gdGuides('/advanced/multi-site')), From b710c13c64f1d46125cae3fa6e4ac4c440837152 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 30 Mar 2024 20:03:31 +0100 Subject: [PATCH 18/22] Add migration guides --- .../getting-started/migration/from-docus.mdx | 49 +++++++++++++++++-- .../migration/from-mintlify.mdx | 35 +++++++++++-- .../getting-started/migration/from-nextra.mdx | 38 ++++++++++++-- 3 files changed, 113 insertions(+), 9 deletions(-) diff --git a/apps/docs/pages/docs/guider/guides/getting-started/migration/from-docus.mdx b/apps/docs/pages/docs/guider/guides/getting-started/migration/from-docus.mdx index 6a1cf8d..6891605 100644 --- a/apps/docs/pages/docs/guider/guides/getting-started/migration/from-docus.mdx +++ b/apps/docs/pages/docs/guider/guides/getting-started/migration/from-docus.mdx @@ -1,5 +1,48 @@ # Migrating from Docus - -This article is a stub, please help by contributing to the docs. - +Migrating can be a long journey, this guide aims to create a clear set of steps to move to Guider. + + +## Compatability table + +| Feature | Docus | Guider | +|---|:---:|:---:| +| Markdown based pages | **✓** | **✓** | +| Search bar | **✓** | 𐄂 | +| Dark mode | **✓** | **✓** | +| Light mode | **✓** | 𐄂 | +| SEO & custom meta tags | **✓** | **✓** | +| Redirects | **✓** | **✓** | +| Layouts | **✓** | **✓** | +| Component: Alert | **✓** | **✓** (called callouts) | +| Component: Badge | **✓** | 𐄂 | +| Component: BlockHero | **✓** | **✓** (Looks different) | +| Component: ButtonLink | **✓** | **✓** (called Button) | +| Component: Callouts | **✓** | 𐄂 (despite similar name, not supported) | +| Component: Card | **✓** | **✓** (part of the landing page) | +| Component: CardGrid | **✓** | **✓** (part of the landing page) | +| Component: CodeGroup | **✓** | **✓** | +| Component: CodeBlock | **✓** | **✓** (called Frame) | +| Component: CopyButton | **✓** | 𐄂 | +| Component: Icon | **✓** | 𐄂 | +| Component: List | **✓** | 𐄂 | +| Component: Sandbox | **✓** | 𐄂 | +| Component: Terminal | **✓** | 𐄂 | +| Component: VideoPlayer | **✓** | 𐄂 | + + +## Migration steps + +1. **Make a guider project:** Make a new guider project by following [this guide](../installation.mdx). +2. **Copy your markdown files over:** Copy over all Markdown files into the pages directory of the new project. + - Remove the numbers prefixed on front of your files and folders. The order is now in the theme config. + - Replace the component directives with MDX React components. + - Update frontmatter to set the layout ID instead of modifying the layout settings directly. See [this page](../../advanced/customizing-layout.mdx). + - Replace title in the frontmatter to a link in the theme config. +3. **Migrate _dir.yml files:** dir files don't exist in Guider. Check these steps: + - title goes in a `group()` in the theme config. + - replace `navigation.redirect` with a `createRedirect()` in a index.tsx + - title template can be set globally, not a per directory basis. +4. **Migrate app.config.ts:** The settings in Guider go into the theme config, along with your sidebar contents. +5. **Migrate vue components to react:** Guider is based in react, so to have custom components work you will need to port them. +6. **Finished:** That should be everything to migrate to Guider, congratulations! diff --git a/apps/docs/pages/docs/guider/guides/getting-started/migration/from-mintlify.mdx b/apps/docs/pages/docs/guider/guides/getting-started/migration/from-mintlify.mdx index 60b816c..d1bcbf0 100644 --- a/apps/docs/pages/docs/guider/guides/getting-started/migration/from-mintlify.mdx +++ b/apps/docs/pages/docs/guider/guides/getting-started/migration/from-mintlify.mdx @@ -1,5 +1,34 @@ # Migrating from Mintlify - -This article is a stub, please help by contributing to the docs. - +Migrating can be a long journey, this guide aims to create a clear set of steps to move to Guider. + + +## Compatability table + +| Feature | Mintlify | Guider | +|---|:---:|:---:| +| MDX based pages | **✓** | **✓** | +| Custom CSS/JS | **✓** | **✓** | +| Search bar | **✓** | 𐄂 | +| Dark mode | **✓** | **✓** | +| Light mode | **✓** | 𐄂 | +| Banners | **✓** | 𐄂 | +| Versions | **✓** | **✓** (through dropdown) | +| Groups/Tabs | **✓** | **✓** | +| Redirects | **✓** | **✓** | +| SEO & custom meta tags | **✓** | **✓** | +| Sitemaps | **✓** | 𐄂 | +| Custom domain | **✓** | **✓** (you host it yourself) | +| API playground / openAPI | **✓** | 𐄂 | +| Snippets | **✓** | 𐄂 (use custom components instead) | +| integrations | **✓** | 𐄂 (you can use NextJS libraries) | + + +## Migration steps + +1. **Make a guider project:** Make a new guider project by following [this guide](../installation.mdx). +2. **Copy your MDX files over:** Copy over all MDX files into the pages directory of the new project. +3. **Remove or replace unsupported components:** Not all components are supported by Guider. Check the compatibility table above. +4. **Migrate `mint.json` file:** In Mintlify, the json file is used for all configuration. In Guider this is done in the theme config. [Check out this guide](../../config/navigation.mdx). +5. **Update frontmatter:** Mintlify has some configuration in the frontmatter. Remove the unsupported properties or move them to the theme config. +6. **Finished:** That should be everything to migrate to Guider, congratulations! diff --git a/apps/docs/pages/docs/guider/guides/getting-started/migration/from-nextra.mdx b/apps/docs/pages/docs/guider/guides/getting-started/migration/from-nextra.mdx index 13c1c35..5c56f43 100644 --- a/apps/docs/pages/docs/guider/guides/getting-started/migration/from-nextra.mdx +++ b/apps/docs/pages/docs/guider/guides/getting-started/migration/from-nextra.mdx @@ -1,5 +1,37 @@ # Migrating from Nextra - -This article is a stub, please help by contributing to the docs. - +Migrating can be a long journey, this guide aims to create a clear set of steps to move to Guider. + + +## Compatability table + +| Feature | Nextra | Guider | +|---|:---:|:---:| +| MDX based pages | **✓** | **✓** | +| I18N support | **✓** | 𐄂 | +| Search bar | **✓** | 𐄂 | +| Dark mode | **✓** | **✓** | +| Light mode | **✓** | 𐄂 | +| Banners | **✓** | 𐄂 | +| SEO & custom meta tags | **✓** | **✓** | +| Customizable layouts | **✓** | **✓** | +| Custom navigation links | **✓** | **✓** | +| Component: Callout | **✓** | **✓** | +| Component: Tabs | **✓** | **✓** | +| Component: Cards | **✓** | 𐄂 | +| Component: Steps | **✓** | **✓** | +| Component: FileTree | **✓** | 𐄂 | +| Component: Bleed | **✓** | 𐄂 | +| Npm2Yarn integration | **✓** | **✓** | +| Edit on GitHub link | **✓** | **✓** | +| Collapsable sidebar | **✓** | 𐄂 | + + +## Migration steps + +1. **Make a guider project:** Make a new guider project by following [this guide](../installation.mdx). +2. **Copy your MDX files over:** Copy over all MDX files into the pages directory of the new project. +3. **Remove or replace unsupported components:** Not all components are supported by Guider. Check the compatibility table above. +4. **Migrate `_meta.json` files:** In Nextra, meta files are for storing navigation structures. In Guider this is done in the theme config. [Check out this guide](../../config/navigation.mdx). +5. **Migrate the theme config:** Many Nextra theme configuration options are also possible in Guider. Check out the compatibility table above. +6. **Finished:** That should be everything to migrate to Guider, congratulations! From ff22f64a5713a57dbe737cbac469aaf9b6402395 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 31 Mar 2024 15:20:35 +0100 Subject: [PATCH 19/22] fix(md-loader): fix windows path error on md rewriting --- .../guider/src/webpack/loader/md-loader.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/guider/src/webpack/loader/md-loader.ts b/packages/guider/src/webpack/loader/md-loader.ts index 788a77d..8299556 100644 --- a/packages/guider/src/webpack/loader/md-loader.ts +++ b/packages/guider/src/webpack/loader/md-loader.ts @@ -1,4 +1,3 @@ -import { parse, format } from 'node:path'; import { compile } from '@mdx-js/mdx'; import remarkFrontmatter from 'remark-frontmatter'; import remarkHeadings from '@vcarl/remark-headings'; @@ -46,13 +45,24 @@ export async function mdLoader(source: string): Promise { const hasProtocol = Boolean(url.match(/[a-zA-Z]+:/g)); if (hasProtocol) return url; - // must be relative url const [path, hash] = url.split('#', 2); - const parsedPath = parse(path); - parsedPath.ext = ''; - parsedPath.base = ''; + + const pathSections = path.split('/'); + const lastSectionIndex = pathSections.length - 1; + + // We get the last section so that only the last extension is removed + // e.g. bar.ts.mdx -> bar.ts + const lastDot = pathSections[lastSectionIndex].lastIndexOf('.'); + + // If there is no dot, there is no extension to remove so we can return the url as is + if (lastDot === -1) return url; + + pathSections[lastSectionIndex] = pathSections[ + lastSectionIndex + ].slice(0, lastDot); + const hashPath = hash && hash.length > 0 ? `#${hash}` : ''; - return `${format(parsedPath)}${hashPath}`; + return `${pathSections.join('/')}${hashPath}`; }, }, ], From c058b5e2afa3bb9d1d9d5ed6c4ea004c9adbe3b2 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 31 Mar 2024 15:22:20 +0100 Subject: [PATCH 20/22] fix(webpack-collector): normalise DOS line endings for site links and GH file paths --- .../partials/content-footer/github-edit-link.tsx | 2 +- packages/guider/src/theme/types.ts | 1 + packages/guider/src/webpack/plugin/collector.ts | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/guider/src/client/partials/content-footer/github-edit-link.tsx b/packages/guider/src/client/partials/content-footer/github-edit-link.tsx index aefabb7..18da9f9 100644 --- a/packages/guider/src/client/partials/content-footer/github-edit-link.tsx +++ b/packages/guider/src/client/partials/content-footer/github-edit-link.tsx @@ -9,7 +9,7 @@ export function useEditLink(baseUrl: string | null | undefined): string | null { const parsed = gitUrlParse(baseUrl); let filePath = parsed.filepath; filePath += filePath.length > 0 ? '/' : ''; - filePath += file.filePath; + filePath += file.urlSafeFilePath; // Resets the filepath as we want to manually construct it parsed.filepath = ''; diff --git a/packages/guider/src/theme/types.ts b/packages/guider/src/theme/types.ts index 48cf5fe..b97b42e 100644 --- a/packages/guider/src/theme/types.ts +++ b/packages/guider/src/theme/types.ts @@ -17,4 +17,5 @@ export type MetaMapItem = { export type PageMapItem = { sitePath: string; filePath: string; + urlSafeFilePath: string; }; diff --git a/packages/guider/src/webpack/plugin/collector.ts b/packages/guider/src/webpack/plugin/collector.ts index b417c5a..4c1ed07 100644 --- a/packages/guider/src/webpack/plugin/collector.ts +++ b/packages/guider/src/webpack/plugin/collector.ts @@ -22,6 +22,7 @@ export type CollectorItem = { export type PageMapItem = { sitePath: string; filePath: string; // path relative to project root + urlSafeFilePath: string; // filePath with / as separator }; export interface MetaCollectorResult { @@ -29,12 +30,20 @@ export interface MetaCollectorResult { pageMap: PageMapItem[]; } +const pathSeparatorRegex = RegExp(`\\${sep}`, 'g'); +function normalizePathSeparator(path: string): string { + return path.replace(pathSeparatorRegex, '/'); +} + async function filePathToSitePath( filePath: string, ): Promise { - const strippedPath = dirname(relative('./pages', filePath)); + let strippedPath = dirname(relative('./pages', filePath)); const fileContents = await readFile(filePath, 'utf-8'); const parsedContents = JSON.parse(fileContents); + + strippedPath = normalizePathSeparator(strippedPath); + return { sitePath: `/${strippedPath}`, fileContents: parsedContents, @@ -49,12 +58,16 @@ async function pagePathToSitePath( let dir = dirname(relative('./pages', filePath)); if (dir === '.') dir = ''; + dir = normalizePathSeparator(dir); + const urlSafeFilePath = normalizePathSeparator(filePath); + if (file.startsWith('_')) return null; const strippedPath = file === 'index' ? dir : `${dir}/${file}`; return { sitePath: strippedPath.startsWith('/') ? strippedPath : `/${strippedPath}`, filePath, + urlSafeFilePath, }; } From bd66546d5b7212bccd58d9e6606bf7b4ac4cea37 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sun, 31 Mar 2024 16:26:35 +0200 Subject: [PATCH 21/22] Fix unordered lists getting numbers --- packages/guider/src/styles/components/lists.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/guider/src/styles/components/lists.css b/packages/guider/src/styles/components/lists.css index aa9051d..cf832ac 100644 --- a/packages/guider/src/styles/components/lists.css +++ b/packages/guider/src/styles/components/lists.css @@ -24,11 +24,11 @@ /* * numbered lists */ -ol.neato-guider-list > li .neato-guider-list-line { +ol.neato-guider-list > li > .neato-guider-list-line { @apply gd-bg-transparent gd-mt-0 gd-text-text; } -ol.neato-guider-list > li .neato-guider-list-line::before { +ol.neato-guider-list > li > .neato-guider-list-line::before { counter-increment: listitem; content: counter(listitem) "."; } From 089214e99107f66da1ffcb65ef36f7904d61516d Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sun, 31 Mar 2024 16:33:55 +0200 Subject: [PATCH 22/22] Bump version --- packages/guider/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/guider/package.json b/packages/guider/package.json index 0f8b822..3633ddc 100644 --- a/packages/guider/package.json +++ b/packages/guider/package.json @@ -1,6 +1,6 @@ { "name": "@neato/guider", - "version": "0.1.3", + "version": "0.1.4", "description": "Beautiful documentation sites, without all the hassle", "main": "./dist/index.js", "type": "module",