robindoc 0.0.0-experimental-692c301 → 0.0.0-experimental-2c17c72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/types/initialize.d.ts +1 -0
- package/lib/core/types/initialize.d.ts.map +1 -1
- package/lib/core/utils/initialize-robindoc.d.ts +6 -0
- package/lib/core/utils/initialize-robindoc.d.ts.map +1 -1
- package/lib/core/utils/initialize-robindoc.js +1 -1
- package/lib/core/utils/initialize-robindoc.js.map +1 -1
- package/lib/styles.css +295 -295
- package/package.json +1 -1
|
@@ -3,5 +3,6 @@ export type StructureTemplate = Structure | (() => Structure | Promise<Structure
|
|
|
3
3
|
export type Options = {
|
|
4
4
|
processError?: (status: number, statusText: string) => void | null | never;
|
|
5
5
|
matcher?: string[];
|
|
6
|
+
cache?: boolean;
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=initialize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../src/core/types/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnF,MAAM,MAAM,OAAO,GAAG;IAClB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../src/core/types/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAEnF,MAAM,MAAM,OAAO,GAAG;IAClB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { type TreeItem } from "../../components/elements/sidebar/types";
|
|
2
3
|
import { type ArticleProps as ArticlePropsBase } from "../../components/elements/article";
|
|
3
4
|
import { type SidebarProps as SidebarPropsBase } from "../../components/elements/sidebar";
|
|
4
5
|
import { type StructureTemplate, type Options } from "../types/initialize";
|
|
6
|
+
import { type Pages } from "../types/content";
|
|
5
7
|
type PageProps = Omit<Partial<ArticlePropsBase>, "uri" | "content" | "provider" | "pathname" | "pages"> & {
|
|
6
8
|
pathname: string;
|
|
7
9
|
};
|
|
@@ -16,6 +18,10 @@ export declare const initializeRobindoc: (structureTemplate: StructureTemplate,
|
|
|
16
18
|
raw: string;
|
|
17
19
|
} | null>;
|
|
18
20
|
getPageInstruction: (pathname: string) => Promise<import("../types/content").Page | null>;
|
|
21
|
+
revalidate: (background?: boolean) => Promise<{
|
|
22
|
+
pages: Pages;
|
|
23
|
+
tree: TreeItem[];
|
|
24
|
+
}>;
|
|
19
25
|
};
|
|
20
26
|
export {};
|
|
21
27
|
//# sourceMappingURL=initialize-robindoc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-robindoc.d.ts","sourceRoot":"","sources":["../../../src/core/utils/initialize-robindoc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAA0B,KAAK,YAAY,IAAI,gBAAgB,EAAE,0CAAyC;AACjH,OAAO,EAA0B,KAAK,YAAY,IAAI,gBAAgB,EAAE,0CAAyC;AAEjH,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"initialize-robindoc.d.ts","sourceRoot":"","sources":["../../../src/core/utils/initialize-robindoc.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,QAAQ,EAAE,gDAA+C;AACvE,OAAO,EAA0B,KAAK,YAAY,IAAI,gBAAgB,EAAE,0CAAyC;AACjH,OAAO,EAA0B,KAAK,YAAY,IAAI,gBAAgB,EAAE,0CAAyC;AAEjH,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAO9C,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG;IACtG,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAiBnD,eAAO,MAAM,kBAAkB,GAAI,mBAAmB,iBAAiB,EAAE,UAAS,OAAY;;;sBAiE3D,CAAC,SAAS,MAAM,wBACnC,MAAM,qBACI,CAAC;4BAmBc,MAAM;4BA0BN,MAAM;;;;mCAyBC,MAAM;8BAsBX,OAAO;eA9KN,KAAK;cAAQ,QAAQ,EAAE;;CA8LlE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import r from"react";import{Article as t}from"../../components/elements/article/index.js";import{Sidebar as e}from"../../components/elements/sidebar/index.js";import{parseStructure as
|
|
1
|
+
import r from"react";import{Article as t}from"../../components/elements/article/index.js";import{Sidebar as e}from"../../components/elements/sidebar/index.js";import{parseStructure as a}from"./parse-structure.js";import{getConfiguration as o}from"./get-configuration.js";import{getMetadata as s}from"./get-metadata.js";import{normalizePathname as n,removeTrailingSlash as c}from"./path-tools.js";import{loadContent as i}from"./load-content.js";const u=async r=>{let t;t="function"==typeof r?await r():r;const e=o(t.configuration||{});return a(t.items||[],e)},p=(a,o={})=>{let p=u(a).then(r=>(p=r,r));const l=o.matcher?.map(r=>new RegExp(`^${r.replace(/^\^|\$$/g,"")}$`)),h=async r=>{if("then"in p)return p;if(r){const r=await u(a);p=r}else p=u(a).then(r=>(p=r,r));return p};return{Page:async({pathname:e,...a})=>{const s=n(e);if(l&&!l.every(r=>r.test(e))){const r=`Pathname "${s}" doesn't pass matcher rules check`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}o.cache||await h(!0);const{pages:c}=await p,i=c[s];if(!i){const r=`Can not find data for "${s}". Please check structure`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}const u=Object.keys(c),m=u.indexOf(s),f=u[m-1],w=m<u.length-1&&u[m+1],d=f&&{pathname:f,title:c[f].title},g=w&&{pathname:w,title:c[w].title},E=i.crumbs.map(r=>({title:c[r].title,pathname:r})),y=Object.entries(c).reduce((r,[t,{origPath:e}])=>(e&&r.push({clientPath:t,origPath:e}),r),[]);return r.createElement(t,{pathname:s,provider:i.configuration.provider,uri:i.uri,title:i.title,breadcrumbs:E,prev:d||void 0,next:g||void 0,pages:y,...a})},Sidebar:async t=>{o.cache||await h(!0);const{tree:a}=await p;return r.createElement(e,{tree:a,...t})},getStaticParams:async(r="",t="segments")=>{o.cache||await h(!0);const{pages:e}=await p,a=Object.keys(e),s=c(r);return a.reduce((r,e)=>e.startsWith(s)?(r.push({[t]:e.substring(s.length+1).split("/")}),r):r,[])},getMetadata:async r=>{const t=n(r);if(l&&!l.every(t=>t.test(r))){const r=`Pathname "${t}" doesn't pass matcher rules check`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}o.cache||await h(!0);const{pages:e}=await p,a=e[t];if(!a){const r=`Can not find data for "${t}". Please check structure`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}return await s({uri:a.uri,provider:a.configuration.provider})},getPageData:async r=>{const t=n(r);if(l&&!l.every(t=>t.test(r))){const r=`Pathname "${t}" doesn't pass matcher rules check`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}o.cache||await h(!0);const{pages:e}=await p,a=e[t];if(!a){const r=`Can not find data for "${t}". Please check structure`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}const s=a.title,{data:c}=await i(a.uri,a.configuration.provider);return{title:s,raw:c}},getPageInstruction:async r=>{const t=n(r);if(l&&!l.every(t=>t.test(r))){const r=`Pathname "${t}" doesn't pass matcher rules check`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}o.cache||await h(!0);const{pages:e}=await p,a=e[t];if(!a){const r=`Can not find data for "${t}". Please check structure`;if(o.processError)return o.processError(404,r)||null;throw new Error(r)}return a},revalidate:h}};export{p as initializeRobindoc};
|
|
2
2
|
//# sourceMappingURL=initialize-robindoc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-robindoc.js","sources":["../../../src/core/utils/initialize-robindoc.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Article as ArticleBase, type ArticleProps as ArticlePropsBase } from \"@src/components/elements/article\";\nimport { Sidebar as SidebarBase, type SidebarProps as SidebarPropsBase } from \"@src/components/elements/sidebar\";\n\nimport { type StructureTemplate, type Options } from \"../types/initialize\";\nimport { parseStructure } from \"./parse-structure\";\nimport { getConfiguration } from \"./get-configuration\";\nimport { getMetadata as getMetadataBase } from \"./get-metadata\";\nimport { normalizePathname, removeTrailingSlash } from \"./path-tools\";\nimport { loadContent } from \"./load-content\";\n\ntype PageProps = Omit<Partial<ArticlePropsBase>, \"uri\" | \"content\" | \"provider\" | \"pathname\" | \"pages\"> & {\n pathname: string;\n};\n\ntype SidebarProps = Omit<SidebarPropsBase, \"tree\">;\n\nconst loadStructure = async (structureTemplate: StructureTemplate) => {\n let structure;\n if (typeof structureTemplate === \"function\") {\n structure = await structureTemplate();\n } else {\n structure = structureTemplate;\n }\n\n const configuration = getConfiguration(structure.configuration || {});\n\n return parseStructure(structure.items || [], configuration);\n};\n\nexport const initializeRobindoc = (structureTemplate: StructureTemplate, options: Options = {}) => {\n const structureParsedPromise = loadStructure(structureTemplate);\n const matchingRules = options.matcher?.map((rule) => new RegExp(`^${rule.replace(/^\\^|\\$$/g, \"\")}$`));\n\n const Page: React.FC<PageProps> = async ({ pathname, ...props }) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const paths = Object.keys(pages);\n const targetPageIndex = paths.indexOf(pathnameNormalized);\n const prevPagePathname = paths[targetPageIndex - 1];\n const nextPagePathname = targetPageIndex < paths.length - 1 && paths[targetPageIndex + 1];\n const prev = prevPagePathname && { pathname: prevPagePathname, title: pages[prevPagePathname].title };\n const next = nextPagePathname && { pathname: nextPagePathname, title: pages[nextPagePathname].title };\n\n const breadcrumbs = pageInstruction.crumbs.map((crumb) => ({ title: pages[crumb].title, pathname: crumb }));\n const clientPages = Object.entries(pages).reduce<{ clientPath: string; origPath: string }[]>(\n (acc, [clientPath, { origPath }]) => {\n if (origPath) acc.push({ clientPath, origPath });\n return acc;\n },\n [],\n );\n\n return (\n <ArticleBase\n pathname={pathnameNormalized}\n provider={pageInstruction.configuration.provider}\n uri={pageInstruction.uri}\n title={pageInstruction.title}\n breadcrumbs={breadcrumbs}\n prev={prev || undefined}\n next={next || undefined}\n pages={clientPages}\n {...props}\n />\n );\n };\n\n const Sidebar: React.FC<SidebarProps> = async (props) => {\n const { tree } = await structureParsedPromise;\n\n return <SidebarBase tree={tree} {...props} />;\n };\n\n const getStaticParams = async <T extends string = \"segments\">(\n prefix: string = \"\",\n segmentsParamKey: T = \"segments\" as T,\n ) => {\n const { pages } = await structureParsedPromise;\n const pagesArr = Object.keys(pages);\n const prefixWithoutTrailingSlash = removeTrailingSlash(prefix);\n\n return pagesArr.reduce<Record<T, string[]>[]>((acc, cur) => {\n if (!cur.startsWith(prefixWithoutTrailingSlash)) return acc;\n\n acc.push({\n [segmentsParamKey]: cur.substring(prefixWithoutTrailingSlash.length + 1).split(\"/\"),\n } as Record<T, string[]>);\n\n return acc;\n }, []);\n };\n\n const getMetadata = async (pathname: string) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const metadata = await getMetadataBase({\n uri: pageInstruction.uri,\n provider: pageInstruction.configuration.provider,\n });\n return metadata;\n };\n\n const getPageData = async (pathname: string) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const title = pageInstruction.title;\n const { data } = await loadContent(pageInstruction.uri, pageInstruction.configuration.provider);\n\n return { title, raw: data };\n };\n\n const getPageInstruction = async (pathname: string) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n return pageInstruction;\n };\n\n return { Page, Sidebar, getStaticParams, getMetadata, getPageData, getPageInstruction };\n};\n"],"names":["initializeRobindoc","structureTemplate","options","structureParsedPromise","async","structure","configuration","getConfiguration","parseStructure","items","loadStructure","matchingRules","matcher","map","rule","RegExp","replace","Page","pathname","props","pathnameNormalized","normalizePathname","every","test","errorMessage","processError","Error","pages","pageInstruction","paths","Object","keys","targetPageIndex","indexOf","prevPagePathname","nextPagePathname","length","prev","title","next","breadcrumbs","crumbs","crumb","clientPages","entries","reduce","acc","clientPath","origPath","push","React","ArticleBase","provider","uri","undefined","Sidebar","tree","createElement","SidebarBase","getStaticParams","prefix","segmentsParamKey","pagesArr","prefixWithoutTrailingSlash","removeTrailingSlash","cur","startsWith","substring","split","getMetadata","getMetadataBase","getPageData","data","loadContent","raw","getPageInstruction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"initialize-robindoc.js","sources":["../../../src/core/utils/initialize-robindoc.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { type TreeItem } from \"@src/components/elements/sidebar/types\";\nimport { Article as ArticleBase, type ArticleProps as ArticlePropsBase } from \"@src/components/elements/article\";\nimport { Sidebar as SidebarBase, type SidebarProps as SidebarPropsBase } from \"@src/components/elements/sidebar\";\n\nimport { type StructureTemplate, type Options } from \"../types/initialize\";\nimport { type Pages } from \"../types/content\";\nimport { parseStructure } from \"./parse-structure\";\nimport { getConfiguration } from \"./get-configuration\";\nimport { getMetadata as getMetadataBase } from \"./get-metadata\";\nimport { normalizePathname, removeTrailingSlash } from \"./path-tools\";\nimport { loadContent } from \"./load-content\";\n\ntype PageProps = Omit<Partial<ArticlePropsBase>, \"uri\" | \"content\" | \"provider\" | \"pathname\" | \"pages\"> & {\n pathname: string;\n};\n\ntype SidebarProps = Omit<SidebarPropsBase, \"tree\">;\n\ntype StructureParsedData = Promise<{ pages: Pages; tree: TreeItem[] }> | { pages: Pages; tree: TreeItem[] };\n\nconst loadStructure = async (structureTemplate: StructureTemplate) => {\n let structure;\n if (typeof structureTemplate === \"function\") {\n structure = await structureTemplate();\n } else {\n structure = structureTemplate;\n }\n\n const configuration = getConfiguration(structure.configuration || {});\n\n return parseStructure(structure.items || [], configuration);\n};\n\nexport const initializeRobindoc = (structureTemplate: StructureTemplate, options: Options = {}) => {\n let structureParsedPromise: StructureParsedData = loadStructure(structureTemplate).then((data) => {\n structureParsedPromise = data;\n return data;\n });\n const matchingRules = options.matcher?.map((rule) => new RegExp(`^${rule.replace(/^\\^|\\$$/g, \"\")}$`));\n\n const Page: React.FC<PageProps> = async ({ pathname, ...props }) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n if (!options.cache) await revalidate(true);\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const paths = Object.keys(pages);\n const targetPageIndex = paths.indexOf(pathnameNormalized);\n const prevPagePathname = paths[targetPageIndex - 1];\n const nextPagePathname = targetPageIndex < paths.length - 1 && paths[targetPageIndex + 1];\n const prev = prevPagePathname && { pathname: prevPagePathname, title: pages[prevPagePathname].title };\n const next = nextPagePathname && { pathname: nextPagePathname, title: pages[nextPagePathname].title };\n\n const breadcrumbs = pageInstruction.crumbs.map((crumb) => ({ title: pages[crumb].title, pathname: crumb }));\n const clientPages = Object.entries(pages).reduce<{ clientPath: string; origPath: string }[]>(\n (acc, [clientPath, { origPath }]) => {\n if (origPath) acc.push({ clientPath, origPath });\n return acc;\n },\n [],\n );\n\n return (\n <ArticleBase\n pathname={pathnameNormalized}\n provider={pageInstruction.configuration.provider}\n uri={pageInstruction.uri}\n title={pageInstruction.title}\n breadcrumbs={breadcrumbs}\n prev={prev || undefined}\n next={next || undefined}\n pages={clientPages}\n {...props}\n />\n );\n };\n\n const Sidebar: React.FC<SidebarProps> = async (props) => {\n if (!options.cache) await revalidate(true);\n\n const { tree } = await structureParsedPromise;\n\n return <SidebarBase tree={tree} {...props} />;\n };\n\n const getStaticParams = async <T extends string = \"segments\">(\n prefix: string = \"\",\n segmentsParamKey: T = \"segments\" as T,\n ) => {\n if (!options.cache) await revalidate(true);\n\n const { pages } = await structureParsedPromise;\n const pagesArr = Object.keys(pages);\n const prefixWithoutTrailingSlash = removeTrailingSlash(prefix);\n\n return pagesArr.reduce<Record<T, string[]>[]>((acc, cur) => {\n if (!cur.startsWith(prefixWithoutTrailingSlash)) return acc;\n\n acc.push({\n [segmentsParamKey]: cur.substring(prefixWithoutTrailingSlash.length + 1).split(\"/\"),\n } as Record<T, string[]>);\n\n return acc;\n }, []);\n };\n\n const getMetadata = async (pathname: string) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n if (!options.cache) await revalidate(true);\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const metadata = await getMetadataBase({\n uri: pageInstruction.uri,\n provider: pageInstruction.configuration.provider,\n });\n return metadata;\n };\n\n const getPageData = async (pathname: string) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n if (!options.cache) await revalidate(true);\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n const title = pageInstruction.title;\n const { data } = await loadContent(pageInstruction.uri, pageInstruction.configuration.provider);\n\n return { title, raw: data };\n };\n\n const getPageInstruction = async (pathname: string) => {\n const pathnameNormalized = normalizePathname(pathname);\n if (matchingRules && !matchingRules.every((rule) => rule.test(pathname))) {\n const errorMessage = `Pathname \"${pathnameNormalized}\" doesn't pass matcher rules check`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n if (!options.cache) await revalidate(true);\n\n const { pages } = await structureParsedPromise;\n const pageInstruction = pages[pathnameNormalized];\n\n if (!pageInstruction) {\n const errorMessage = `Can not find data for \"${pathnameNormalized}\". Please check structure`;\n if (options.processError) return options.processError(404, errorMessage) || null;\n throw new Error(errorMessage);\n }\n\n return pageInstruction;\n };\n\n const revalidate = async (background?: boolean) => {\n if (\"then\" in structureParsedPromise) return structureParsedPromise;\n\n if (background) {\n const newData = await loadStructure(structureTemplate);\n structureParsedPromise = newData;\n } else {\n structureParsedPromise = loadStructure(structureTemplate).then((data) => {\n structureParsedPromise = data;\n return data;\n });\n }\n return structureParsedPromise;\n };\n\n return { Page, Sidebar, getStaticParams, getMetadata, getPageData, getPageInstruction, revalidate };\n};\n"],"names":["loadStructure","async","structureTemplate","structure","configuration","getConfiguration","parseStructure","items","initializeRobindoc","options","structureParsedPromise","then","data","matchingRules","matcher","map","rule","RegExp","replace","revalidate","background","newData","Page","pathname","props","pathnameNormalized","normalizePathname","every","test","errorMessage","processError","Error","cache","pages","pageInstruction","paths","Object","keys","targetPageIndex","indexOf","prevPagePathname","nextPagePathname","length","prev","title","next","breadcrumbs","crumbs","crumb","clientPages","entries","reduce","acc","clientPath","origPath","push","React","ArticleBase","provider","uri","undefined","Sidebar","tree","createElement","SidebarBase","getStaticParams","prefix","segmentsParamKey","pagesArr","prefixWithoutTrailingSlash","removeTrailingSlash","cur","startsWith","substring","split","getMetadata","getMetadataBase","getPageData","loadContent","raw","getPageInstruction"],"mappings":"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"}
|
package/lib/styles.css
CHANGED
|
@@ -362,20 +362,6 @@
|
|
|
362
362
|
--r-cl-60: #86181d;
|
|
363
363
|
--r-cl-61: #144620;
|
|
364
364
|
--r-cl-62: #c24e00;
|
|
365
|
-
}.r-blog-container {
|
|
366
|
-
min-height: calc(100dvh - var(--r-header-height));
|
|
367
|
-
overflow-wrap: break-word;
|
|
368
|
-
box-sizing: border-box;
|
|
369
|
-
}
|
|
370
|
-
@media screen and (width >= 1180px) {
|
|
371
|
-
.r-blog-container {
|
|
372
|
-
display: grid;
|
|
373
|
-
justify-content: space-between;
|
|
374
|
-
column-gap: 40px;
|
|
375
|
-
grid-template-areas: "breadcrumbs contents" "content contents" "pagination contents";
|
|
376
|
-
grid-template-columns: 760px 220px;
|
|
377
|
-
grid-template-rows: auto 1fr auto;
|
|
378
|
-
}
|
|
379
365
|
}.r-docs-container {
|
|
380
366
|
min-height: calc(100dvh - var(--r-header-height));
|
|
381
367
|
overflow-wrap: break-word;
|
|
@@ -402,6 +388,20 @@
|
|
|
402
388
|
min-height: calc(100dvh - var(--r-header-height));
|
|
403
389
|
overflow-wrap: break-word;
|
|
404
390
|
box-sizing: border-box;
|
|
391
|
+
}.r-blog-container {
|
|
392
|
+
min-height: calc(100dvh - var(--r-header-height));
|
|
393
|
+
overflow-wrap: break-word;
|
|
394
|
+
box-sizing: border-box;
|
|
395
|
+
}
|
|
396
|
+
@media screen and (width >= 1180px) {
|
|
397
|
+
.r-blog-container {
|
|
398
|
+
display: grid;
|
|
399
|
+
justify-content: space-between;
|
|
400
|
+
column-gap: 40px;
|
|
401
|
+
grid-template-areas: "breadcrumbs contents" "content contents" "pagination contents";
|
|
402
|
+
grid-template-columns: 760px 220px;
|
|
403
|
+
grid-template-rows: auto 1fr auto;
|
|
404
|
+
}
|
|
405
405
|
}.keylink-to-content {
|
|
406
406
|
position: absolute !important;
|
|
407
407
|
top: 8px;
|
|
@@ -840,110 +840,6 @@
|
|
|
840
840
|
.r-header-input:checked ~ .r-header-burger .r-burger-line._bottom {
|
|
841
841
|
transform: translateY(0) rotate(-45deg);
|
|
842
842
|
margin-top: 0;
|
|
843
|
-
}.r-dropdown {
|
|
844
|
-
position: relative;
|
|
845
|
-
color: var(--r-main-600);
|
|
846
|
-
transition: color 0.2s 0.1s;
|
|
847
|
-
}
|
|
848
|
-
.r-dropdown:hover, .r-dropdown:focus-within {
|
|
849
|
-
color: var(--r-main-950);
|
|
850
|
-
}
|
|
851
|
-
.r-dropdown:hover .r-dropdown-drop, .r-dropdown:focus-within .r-dropdown-drop {
|
|
852
|
-
visibility: visible;
|
|
853
|
-
pointer-events: all;
|
|
854
|
-
transform: translateY(20px);
|
|
855
|
-
opacity: 1;
|
|
856
|
-
}
|
|
857
|
-
.r-dropdown:hover .r-dropdown-chevron, .r-dropdown:focus-within .r-dropdown-chevron {
|
|
858
|
-
transform: rotate(180deg);
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
.r-dropdown-summary {
|
|
862
|
-
display: flex;
|
|
863
|
-
justify-content: space-between;
|
|
864
|
-
align-items: center;
|
|
865
|
-
width: 100%;
|
|
866
|
-
position: relative;
|
|
867
|
-
color: inherit;
|
|
868
|
-
cursor: pointer;
|
|
869
|
-
padding: 10px 4px;
|
|
870
|
-
font-size: 16px;
|
|
871
|
-
border: 0;
|
|
872
|
-
background: none;
|
|
873
|
-
z-index: 1;
|
|
874
|
-
box-sizing: border-box;
|
|
875
|
-
}
|
|
876
|
-
|
|
877
|
-
.r-dropdown-chevron {
|
|
878
|
-
display: block;
|
|
879
|
-
margin-left: 6px;
|
|
880
|
-
transition: transform 0.3s 0.1s;
|
|
881
|
-
box-sizing: border-box;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
.r-dropdown-drop {
|
|
885
|
-
list-style: none;
|
|
886
|
-
position: absolute;
|
|
887
|
-
top: 16px;
|
|
888
|
-
left: -12px;
|
|
889
|
-
visibility: hidden;
|
|
890
|
-
pointer-events: none;
|
|
891
|
-
opacity: 0;
|
|
892
|
-
transition: transform 0.3s 0.1s, opacity 0.3s 0.1s, visibility 0.3s 0.1s;
|
|
893
|
-
background-color: var(--r-main-50);
|
|
894
|
-
border: 1px solid var(--r-main-100);
|
|
895
|
-
border-radius: 8px;
|
|
896
|
-
margin: 0;
|
|
897
|
-
padding: 2px 6px;
|
|
898
|
-
min-width: 120px;
|
|
899
|
-
max-width: 180px;
|
|
900
|
-
box-sizing: border-box;
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
.r-dropdown-link {
|
|
904
|
-
display: block;
|
|
905
|
-
width: 100%;
|
|
906
|
-
text-decoration: none;
|
|
907
|
-
color: var(--r-main-700);
|
|
908
|
-
padding: 4px 8px;
|
|
909
|
-
margin-top: 4px;
|
|
910
|
-
margin-bottom: 4px;
|
|
911
|
-
border-radius: 4px;
|
|
912
|
-
transition: background-color 0.2s;
|
|
913
|
-
box-sizing: border-box;
|
|
914
|
-
}
|
|
915
|
-
.r-dropdown-link:hover {
|
|
916
|
-
color: var(--r-main-900);
|
|
917
|
-
background-color: var(--r-main-100);
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
.r-dropdown-link._active {
|
|
921
|
-
color: var(--r-primary-700);
|
|
922
|
-
}.r-header-social {
|
|
923
|
-
display: flex;
|
|
924
|
-
flex: 1;
|
|
925
|
-
justify-content: flex-end;
|
|
926
|
-
}
|
|
927
|
-
@media screen and (width >= 1024px) {
|
|
928
|
-
.r-header-social {
|
|
929
|
-
flex: none;
|
|
930
|
-
justify-content: unset;
|
|
931
|
-
}
|
|
932
|
-
}
|
|
933
|
-
|
|
934
|
-
.r-header-social-git {
|
|
935
|
-
color: var(--r-main-700);
|
|
936
|
-
transition: color 0.2s;
|
|
937
|
-
}
|
|
938
|
-
.r-header-social-git:hover, .r-header-social-git:focus {
|
|
939
|
-
color: var(--r-main-950);
|
|
940
|
-
}.r-container {
|
|
941
|
-
max-width: 1180px;
|
|
942
|
-
padding-right: 12px;
|
|
943
|
-
padding-left: 12px;
|
|
944
|
-
margin-right: auto;
|
|
945
|
-
margin-left: auto;
|
|
946
|
-
box-sizing: border-box;
|
|
947
843
|
}.r-search-btn {
|
|
948
844
|
position: relative;
|
|
949
845
|
border-radius: 6px;
|
|
@@ -1127,6 +1023,110 @@
|
|
|
1127
1023
|
font-size: 14px;
|
|
1128
1024
|
color: var(--r-main-600);
|
|
1129
1025
|
margin: 12px 0 0;
|
|
1026
|
+
}.r-dropdown {
|
|
1027
|
+
position: relative;
|
|
1028
|
+
color: var(--r-main-600);
|
|
1029
|
+
transition: color 0.2s 0.1s;
|
|
1030
|
+
}
|
|
1031
|
+
.r-dropdown:hover, .r-dropdown:focus-within {
|
|
1032
|
+
color: var(--r-main-950);
|
|
1033
|
+
}
|
|
1034
|
+
.r-dropdown:hover .r-dropdown-drop, .r-dropdown:focus-within .r-dropdown-drop {
|
|
1035
|
+
visibility: visible;
|
|
1036
|
+
pointer-events: all;
|
|
1037
|
+
transform: translateY(20px);
|
|
1038
|
+
opacity: 1;
|
|
1039
|
+
}
|
|
1040
|
+
.r-dropdown:hover .r-dropdown-chevron, .r-dropdown:focus-within .r-dropdown-chevron {
|
|
1041
|
+
transform: rotate(180deg);
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
.r-dropdown-summary {
|
|
1045
|
+
display: flex;
|
|
1046
|
+
justify-content: space-between;
|
|
1047
|
+
align-items: center;
|
|
1048
|
+
width: 100%;
|
|
1049
|
+
position: relative;
|
|
1050
|
+
color: inherit;
|
|
1051
|
+
cursor: pointer;
|
|
1052
|
+
padding: 10px 4px;
|
|
1053
|
+
font-size: 16px;
|
|
1054
|
+
border: 0;
|
|
1055
|
+
background: none;
|
|
1056
|
+
z-index: 1;
|
|
1057
|
+
box-sizing: border-box;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
.r-dropdown-chevron {
|
|
1061
|
+
display: block;
|
|
1062
|
+
margin-left: 6px;
|
|
1063
|
+
transition: transform 0.3s 0.1s;
|
|
1064
|
+
box-sizing: border-box;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
.r-dropdown-drop {
|
|
1068
|
+
list-style: none;
|
|
1069
|
+
position: absolute;
|
|
1070
|
+
top: 16px;
|
|
1071
|
+
left: -12px;
|
|
1072
|
+
visibility: hidden;
|
|
1073
|
+
pointer-events: none;
|
|
1074
|
+
opacity: 0;
|
|
1075
|
+
transition: transform 0.3s 0.1s, opacity 0.3s 0.1s, visibility 0.3s 0.1s;
|
|
1076
|
+
background-color: var(--r-main-50);
|
|
1077
|
+
border: 1px solid var(--r-main-100);
|
|
1078
|
+
border-radius: 8px;
|
|
1079
|
+
margin: 0;
|
|
1080
|
+
padding: 2px 6px;
|
|
1081
|
+
min-width: 120px;
|
|
1082
|
+
max-width: 180px;
|
|
1083
|
+
box-sizing: border-box;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
.r-dropdown-link {
|
|
1087
|
+
display: block;
|
|
1088
|
+
width: 100%;
|
|
1089
|
+
text-decoration: none;
|
|
1090
|
+
color: var(--r-main-700);
|
|
1091
|
+
padding: 4px 8px;
|
|
1092
|
+
margin-top: 4px;
|
|
1093
|
+
margin-bottom: 4px;
|
|
1094
|
+
border-radius: 4px;
|
|
1095
|
+
transition: background-color 0.2s;
|
|
1096
|
+
box-sizing: border-box;
|
|
1097
|
+
}
|
|
1098
|
+
.r-dropdown-link:hover {
|
|
1099
|
+
color: var(--r-main-900);
|
|
1100
|
+
background-color: var(--r-main-100);
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
.r-dropdown-link._active {
|
|
1104
|
+
color: var(--r-primary-700);
|
|
1105
|
+
}.r-container {
|
|
1106
|
+
max-width: 1180px;
|
|
1107
|
+
padding-right: 12px;
|
|
1108
|
+
padding-left: 12px;
|
|
1109
|
+
margin-right: auto;
|
|
1110
|
+
margin-left: auto;
|
|
1111
|
+
box-sizing: border-box;
|
|
1112
|
+
}.r-header-social {
|
|
1113
|
+
display: flex;
|
|
1114
|
+
flex: 1;
|
|
1115
|
+
justify-content: flex-end;
|
|
1116
|
+
}
|
|
1117
|
+
@media screen and (width >= 1024px) {
|
|
1118
|
+
.r-header-social {
|
|
1119
|
+
flex: none;
|
|
1120
|
+
justify-content: unset;
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
.r-header-social-git {
|
|
1125
|
+
color: var(--r-main-700);
|
|
1126
|
+
transition: color 0.2s;
|
|
1127
|
+
}
|
|
1128
|
+
.r-header-social-git:hover, .r-header-social-git:focus {
|
|
1129
|
+
color: var(--r-main-950);
|
|
1130
1130
|
}.r-theme-switcher {
|
|
1131
1131
|
position: relative;
|
|
1132
1132
|
display: flex;
|
|
@@ -1254,87 +1254,15 @@
|
|
|
1254
1254
|
.r-breadcrumb-title {
|
|
1255
1255
|
color: var(--r-main-950);
|
|
1256
1256
|
font-weight: 600;
|
|
1257
|
-
}.r-
|
|
1258
|
-
grid-area:
|
|
1259
|
-
display: grid;
|
|
1260
|
-
grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
|
|
1261
|
-
gap: 16px;
|
|
1262
|
-
margin-bottom: 40px;
|
|
1257
|
+
}.r-contents {
|
|
1258
|
+
grid-area: contents;
|
|
1263
1259
|
}
|
|
1264
1260
|
|
|
1265
|
-
.r-
|
|
1266
|
-
position:
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
font-size: 14px;
|
|
1271
|
-
color: var(--r-main-800);
|
|
1272
|
-
}
|
|
1273
|
-
.r-pagination-item:hover {
|
|
1274
|
-
color: var(--r-main-950);
|
|
1275
|
-
}
|
|
1276
|
-
|
|
1277
|
-
.r-pagination-item._prev {
|
|
1278
|
-
padding-left: 28px;
|
|
1279
|
-
}
|
|
1280
|
-
|
|
1281
|
-
.r-pagination-item._next {
|
|
1282
|
-
text-align: right;
|
|
1283
|
-
padding-right: 28px;
|
|
1284
|
-
}
|
|
1285
|
-
|
|
1286
|
-
.r-pagination-text {
|
|
1287
|
-
display: block;
|
|
1288
|
-
line-height: 2;
|
|
1289
|
-
}
|
|
1290
|
-
|
|
1291
|
-
.r-pagination-title {
|
|
1292
|
-
font-weight: 600;
|
|
1293
|
-
font-size: 16px;
|
|
1294
|
-
}
|
|
1295
|
-
|
|
1296
|
-
.r-pagination-icon {
|
|
1297
|
-
position: absolute;
|
|
1298
|
-
top: 50%;
|
|
1299
|
-
transform: translateY(-50%);
|
|
1300
|
-
transition: transform 0.2s;
|
|
1301
|
-
}
|
|
1302
|
-
|
|
1303
|
-
.r-pagination-icon._prev {
|
|
1304
|
-
left: 0;
|
|
1305
|
-
}
|
|
1306
|
-
.r-pagination-item:hover .r-pagination-icon._prev {
|
|
1307
|
-
transform: translate(-4px, -50%);
|
|
1308
|
-
}
|
|
1309
|
-
@media screen and (width >= 1180px) {
|
|
1310
|
-
.r-pagination-item:hover .r-pagination-icon._prev {
|
|
1311
|
-
transform: translate(-8px, -50%);
|
|
1312
|
-
}
|
|
1313
|
-
}
|
|
1314
|
-
|
|
1315
|
-
.r-pagination-icon._next {
|
|
1316
|
-
right: 0;
|
|
1317
|
-
}
|
|
1318
|
-
.r-pagination-item:hover .r-pagination-icon._next {
|
|
1319
|
-
transform: translate(4px, -50%);
|
|
1320
|
-
}
|
|
1321
|
-
@media screen and (width >= 1180px) {
|
|
1322
|
-
.r-pagination-item:hover .r-pagination-icon._next {
|
|
1323
|
-
transform: translate(8px, -50%);
|
|
1324
|
-
}
|
|
1325
|
-
}
|
|
1326
|
-
|
|
1327
|
-
.r-pagination-svg {
|
|
1328
|
-
display: block;
|
|
1329
|
-
}.r-contents {
|
|
1330
|
-
grid-area: contents;
|
|
1331
|
-
}
|
|
1332
|
-
|
|
1333
|
-
.r-contents-sticky {
|
|
1334
|
-
position: sticky;
|
|
1335
|
-
top: var(--r-header-height);
|
|
1336
|
-
width: 100%;
|
|
1337
|
-
box-sizing: border-box;
|
|
1261
|
+
.r-contents-sticky {
|
|
1262
|
+
position: sticky;
|
|
1263
|
+
top: var(--r-header-height);
|
|
1264
|
+
width: 100%;
|
|
1265
|
+
box-sizing: border-box;
|
|
1338
1266
|
}
|
|
1339
1267
|
@media screen and (width >= 1180px) {
|
|
1340
1268
|
.r-contents-sticky {
|
|
@@ -1565,11 +1493,81 @@
|
|
|
1565
1493
|
}
|
|
1566
1494
|
.r-contents-git:hover {
|
|
1567
1495
|
color: var(--r-main-900);
|
|
1496
|
+
}.r-pagination {
|
|
1497
|
+
grid-area: pagination;
|
|
1498
|
+
display: grid;
|
|
1499
|
+
grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
|
|
1500
|
+
gap: 16px;
|
|
1501
|
+
margin-bottom: 40px;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
.r-pagination-item {
|
|
1505
|
+
position: relative;
|
|
1506
|
+
padding-top: 8px;
|
|
1507
|
+
padding-bottom: 8px;
|
|
1508
|
+
text-decoration: none;
|
|
1509
|
+
font-size: 14px;
|
|
1510
|
+
color: var(--r-main-800);
|
|
1511
|
+
}
|
|
1512
|
+
.r-pagination-item:hover {
|
|
1513
|
+
color: var(--r-main-950);
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
.r-pagination-item._prev {
|
|
1517
|
+
padding-left: 28px;
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1520
|
+
.r-pagination-item._next {
|
|
1521
|
+
text-align: right;
|
|
1522
|
+
padding-right: 28px;
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
.r-pagination-text {
|
|
1526
|
+
display: block;
|
|
1527
|
+
line-height: 2;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
.r-pagination-title {
|
|
1531
|
+
font-weight: 600;
|
|
1532
|
+
font-size: 16px;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
.r-pagination-icon {
|
|
1536
|
+
position: absolute;
|
|
1537
|
+
top: 50%;
|
|
1538
|
+
transform: translateY(-50%);
|
|
1539
|
+
transition: transform 0.2s;
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
.r-pagination-icon._prev {
|
|
1543
|
+
left: 0;
|
|
1544
|
+
}
|
|
1545
|
+
.r-pagination-item:hover .r-pagination-icon._prev {
|
|
1546
|
+
transform: translate(-4px, -50%);
|
|
1547
|
+
}
|
|
1548
|
+
@media screen and (width >= 1180px) {
|
|
1549
|
+
.r-pagination-item:hover .r-pagination-icon._prev {
|
|
1550
|
+
transform: translate(-8px, -50%);
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
.r-pagination-icon._next {
|
|
1555
|
+
right: 0;
|
|
1556
|
+
}
|
|
1557
|
+
.r-pagination-item:hover .r-pagination-icon._next {
|
|
1558
|
+
transform: translate(4px, -50%);
|
|
1559
|
+
}
|
|
1560
|
+
@media screen and (width >= 1180px) {
|
|
1561
|
+
.r-pagination-item:hover .r-pagination-icon._next {
|
|
1562
|
+
transform: translate(8px, -50%);
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
.r-pagination-svg {
|
|
1567
|
+
display: block;
|
|
1568
1568
|
}.r-last-modified {
|
|
1569
1569
|
color: var(--r-main-700);
|
|
1570
1570
|
margin-block-start: 16px;
|
|
1571
|
-
}.r-git-logo {
|
|
1572
|
-
display: block;
|
|
1573
1571
|
}.r-backdrop {
|
|
1574
1572
|
position: fixed;
|
|
1575
1573
|
top: 0;
|
|
@@ -1617,6 +1615,27 @@
|
|
|
1617
1615
|
background-color: currentColor;
|
|
1618
1616
|
border-radius: 0 0 0 4px;
|
|
1619
1617
|
box-sizing: border-box;
|
|
1618
|
+
}.r-git-logo {
|
|
1619
|
+
display: block;
|
|
1620
|
+
}.r-anchor-heading:hover .r-anchor-heading-link {
|
|
1621
|
+
visibility: visible;
|
|
1622
|
+
opacity: 1;
|
|
1623
|
+
}
|
|
1624
|
+
|
|
1625
|
+
.r-anchor-heading-link {
|
|
1626
|
+
visibility: hidden;
|
|
1627
|
+
opacity: 0;
|
|
1628
|
+
transition: opacity 0.3s allow-discrete;
|
|
1629
|
+
padding-inline: 8px;
|
|
1630
|
+
margin-inline-start: -4px;
|
|
1631
|
+
color: var(--r-main-600);
|
|
1632
|
+
text-decoration: none;
|
|
1633
|
+
}
|
|
1634
|
+
.r-anchor-heading-link:hover {
|
|
1635
|
+
color: var(--r-primary-800);
|
|
1636
|
+
}
|
|
1637
|
+
.r-anchor-heading-link::after {
|
|
1638
|
+
content: "#";
|
|
1620
1639
|
}.r-code-section {
|
|
1621
1640
|
position: relative;
|
|
1622
1641
|
margin-block-start: 1.5em;
|
|
@@ -1668,25 +1687,6 @@
|
|
|
1668
1687
|
|
|
1669
1688
|
.r-code-section-filename {
|
|
1670
1689
|
font-family: var(--monospace-font, monospace, monospace);
|
|
1671
|
-
}.r-anchor-heading:hover .r-anchor-heading-link {
|
|
1672
|
-
visibility: visible;
|
|
1673
|
-
opacity: 1;
|
|
1674
|
-
}
|
|
1675
|
-
|
|
1676
|
-
.r-anchor-heading-link {
|
|
1677
|
-
visibility: hidden;
|
|
1678
|
-
opacity: 0;
|
|
1679
|
-
transition: opacity 0.3s allow-discrete;
|
|
1680
|
-
padding-inline: 8px;
|
|
1681
|
-
margin-inline-start: -4px;
|
|
1682
|
-
color: var(--r-main-600);
|
|
1683
|
-
text-decoration: none;
|
|
1684
|
-
}
|
|
1685
|
-
.r-anchor-heading-link:hover {
|
|
1686
|
-
color: var(--r-primary-800);
|
|
1687
|
-
}
|
|
1688
|
-
.r-anchor-heading-link::after {
|
|
1689
|
-
content: "#";
|
|
1690
1690
|
}.r-block {
|
|
1691
1691
|
width: 100%;
|
|
1692
1692
|
overflow: auto;
|
|
@@ -1882,77 +1882,6 @@
|
|
|
1882
1882
|
min-width: 24px;
|
|
1883
1883
|
text-align: center;
|
|
1884
1884
|
box-sizing: border-box;
|
|
1885
|
-
}.r-copy-button {
|
|
1886
|
-
position: relative;
|
|
1887
|
-
padding: 6px;
|
|
1888
|
-
background: none;
|
|
1889
|
-
color: var(--r-main-700);
|
|
1890
|
-
border: 0;
|
|
1891
|
-
border-radius: 6px;
|
|
1892
|
-
cursor: pointer;
|
|
1893
|
-
font: inherit;
|
|
1894
|
-
transition: color 0.2s, background-color 0.2s;
|
|
1895
|
-
}
|
|
1896
|
-
|
|
1897
|
-
.r-copy-button-success {
|
|
1898
|
-
opacity: 0;
|
|
1899
|
-
transform: scale(0.7);
|
|
1900
|
-
transition: transform 0.2s;
|
|
1901
|
-
}
|
|
1902
|
-
|
|
1903
|
-
.r-copy-button-base {
|
|
1904
|
-
transition: transform 0.2s;
|
|
1905
|
-
}
|
|
1906
|
-
|
|
1907
|
-
.r-copy-button:hover {
|
|
1908
|
-
color: var(--r-main-950);
|
|
1909
|
-
}
|
|
1910
|
-
|
|
1911
|
-
.r-copy-button:active,
|
|
1912
|
-
.r-copy-button._active {
|
|
1913
|
-
color: var(--r-success);
|
|
1914
|
-
}
|
|
1915
|
-
.r-copy-button:active .r-copy-button-success,
|
|
1916
|
-
.r-copy-button._active .r-copy-button-success {
|
|
1917
|
-
opacity: 1;
|
|
1918
|
-
transform: scale(1);
|
|
1919
|
-
}
|
|
1920
|
-
.r-copy-button:active .r-copy-button-base,
|
|
1921
|
-
.r-copy-button._active .r-copy-button-base {
|
|
1922
|
-
opacity: 0;
|
|
1923
|
-
transform: scale(0.7);
|
|
1924
|
-
}
|
|
1925
|
-
|
|
1926
|
-
.r-copy-button-svg {
|
|
1927
|
-
display: block;
|
|
1928
|
-
}.r-copy-text {
|
|
1929
|
-
position: relative;
|
|
1930
|
-
cursor: pointer;
|
|
1931
|
-
background: none;
|
|
1932
|
-
border: 0;
|
|
1933
|
-
padding: 0;
|
|
1934
|
-
font: inherit;
|
|
1935
|
-
padding: 6px 0;
|
|
1936
|
-
}
|
|
1937
|
-
.r-copy-text:hover {
|
|
1938
|
-
color: var(--r-main-950);
|
|
1939
|
-
}
|
|
1940
|
-
.r-copy-text::before {
|
|
1941
|
-
content: "";
|
|
1942
|
-
position: absolute;
|
|
1943
|
-
bottom: 0;
|
|
1944
|
-
left: 0;
|
|
1945
|
-
width: 100%;
|
|
1946
|
-
height: 1px;
|
|
1947
|
-
background: linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;
|
|
1948
|
-
transition: background 0.2s;
|
|
1949
|
-
box-sizing: border-box;
|
|
1950
|
-
opacity: 0.6;
|
|
1951
|
-
}
|
|
1952
|
-
|
|
1953
|
-
.r-copy-text:active,
|
|
1954
|
-
.r-copy-text._active {
|
|
1955
|
-
color: var(--r-success);
|
|
1956
1885
|
}.r-content-link {
|
|
1957
1886
|
text-decoration: none;
|
|
1958
1887
|
color: inherit;
|
|
@@ -2002,6 +1931,77 @@
|
|
|
2002
1931
|
background-color: currentColor;
|
|
2003
1932
|
border-radius: 0 0 0 4px;
|
|
2004
1933
|
box-sizing: border-box;
|
|
1934
|
+
}.r-copy-text {
|
|
1935
|
+
position: relative;
|
|
1936
|
+
cursor: pointer;
|
|
1937
|
+
background: none;
|
|
1938
|
+
border: 0;
|
|
1939
|
+
padding: 0;
|
|
1940
|
+
font: inherit;
|
|
1941
|
+
padding: 6px 0;
|
|
1942
|
+
}
|
|
1943
|
+
.r-copy-text:hover {
|
|
1944
|
+
color: var(--r-main-950);
|
|
1945
|
+
}
|
|
1946
|
+
.r-copy-text::before {
|
|
1947
|
+
content: "";
|
|
1948
|
+
position: absolute;
|
|
1949
|
+
bottom: 0;
|
|
1950
|
+
left: 0;
|
|
1951
|
+
width: 100%;
|
|
1952
|
+
height: 1px;
|
|
1953
|
+
background: linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;
|
|
1954
|
+
transition: background 0.2s;
|
|
1955
|
+
box-sizing: border-box;
|
|
1956
|
+
opacity: 0.6;
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1959
|
+
.r-copy-text:active,
|
|
1960
|
+
.r-copy-text._active {
|
|
1961
|
+
color: var(--r-success);
|
|
1962
|
+
}.r-copy-button {
|
|
1963
|
+
position: relative;
|
|
1964
|
+
padding: 6px;
|
|
1965
|
+
background: none;
|
|
1966
|
+
color: var(--r-main-700);
|
|
1967
|
+
border: 0;
|
|
1968
|
+
border-radius: 6px;
|
|
1969
|
+
cursor: pointer;
|
|
1970
|
+
font: inherit;
|
|
1971
|
+
transition: color 0.2s, background-color 0.2s;
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1974
|
+
.r-copy-button-success {
|
|
1975
|
+
opacity: 0;
|
|
1976
|
+
transform: scale(0.7);
|
|
1977
|
+
transition: transform 0.2s;
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1980
|
+
.r-copy-button-base {
|
|
1981
|
+
transition: transform 0.2s;
|
|
1982
|
+
}
|
|
1983
|
+
|
|
1984
|
+
.r-copy-button:hover {
|
|
1985
|
+
color: var(--r-main-950);
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
.r-copy-button:active,
|
|
1989
|
+
.r-copy-button._active {
|
|
1990
|
+
color: var(--r-success);
|
|
1991
|
+
}
|
|
1992
|
+
.r-copy-button:active .r-copy-button-success,
|
|
1993
|
+
.r-copy-button._active .r-copy-button-success {
|
|
1994
|
+
opacity: 1;
|
|
1995
|
+
transform: scale(1);
|
|
1996
|
+
}
|
|
1997
|
+
.r-copy-button:active .r-copy-button-base,
|
|
1998
|
+
.r-copy-button._active .r-copy-button-base {
|
|
1999
|
+
opacity: 0;
|
|
2000
|
+
transform: scale(0.7);
|
|
2001
|
+
}
|
|
2002
|
+
|
|
2003
|
+
.r-copy-button-svg {
|
|
2004
|
+
display: block;
|
|
2005
2005
|
}.r-li {
|
|
2006
2006
|
line-height: 1.8;
|
|
2007
2007
|
margin-block-start: 6px;
|
|
@@ -2030,17 +2030,13 @@
|
|
|
2030
2030
|
padding: 6px 12px;
|
|
2031
2031
|
border-bottom: 1px solid var(--r-main-400);
|
|
2032
2032
|
border-collapse: collapse;
|
|
2033
|
+
}.r-thead {
|
|
2034
|
+
background-color: var(--r-main-100);
|
|
2033
2035
|
}.r-th {
|
|
2034
2036
|
padding: 6px 12px;
|
|
2035
2037
|
border-top: 1px solid var(--r-main-500);
|
|
2036
2038
|
border-bottom: 1px solid var(--r-main-500);
|
|
2037
2039
|
border-collapse: collapse;
|
|
2038
|
-
}.r-thead {
|
|
2039
|
-
background-color: var(--r-main-100);
|
|
2040
|
-
}.r-task-ol {
|
|
2041
|
-
list-style: none;
|
|
2042
|
-
}.r-task-ul {
|
|
2043
|
-
list-style: none;
|
|
2044
2040
|
}.r-task-li.r-task-li {
|
|
2045
2041
|
margin-block-start: 2px;
|
|
2046
2042
|
margin-block-end: 2px;
|
|
@@ -2070,6 +2066,10 @@
|
|
|
2070
2066
|
|
|
2071
2067
|
.r-task-label-text {
|
|
2072
2068
|
vertical-align: middle;
|
|
2069
|
+
}.r-task-ol {
|
|
2070
|
+
list-style: none;
|
|
2071
|
+
}.r-task-ul {
|
|
2072
|
+
list-style: none;
|
|
2073
2073
|
}.r-tooltip {
|
|
2074
2074
|
font-family: var(--monospace-font, monospace, monospace);
|
|
2075
2075
|
display: none;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "robindoc",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-2c17c72",
|
|
4
4
|
"description": "Robindoc is a framework for automatically creating documentation websites based on markdown files, built on React.js Server Components",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"scripts": {
|