TSDocs!
This commit is contained in:
parent
75416edef2
commit
79f269fc00
4
index.ts
4
index.ts
|
@ -14,6 +14,10 @@ const env = loadEnv(mode, process.cwd(), prefixes);
|
||||||
// SET LOCAL PACKAGE NAME
|
// SET LOCAL PACKAGE NAME
|
||||||
const pkg = '@matthiesenxyz/astro-ghostcms';
|
const pkg = '@matthiesenxyz/astro-ghostcms';
|
||||||
|
|
||||||
|
/** Astro-GhostCMS Integration
|
||||||
|
* @ For more information and to see the docs check
|
||||||
|
* @ https://astro-ghostcms.xyz
|
||||||
|
*/
|
||||||
export default function GhostCMS(options: UserConfig): AstroIntegration {
|
export default function GhostCMS(options: UserConfig): AstroIntegration {
|
||||||
return {
|
return {
|
||||||
name: pkg,
|
name: pkg,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@matthiesenxyz/astro-ghostcms",
|
"name": "@matthiesenxyz/astro-ghostcms",
|
||||||
"description": "Astro GhostCMS integration to allow easier importing of GhostCMS Content",
|
"description": "Astro GhostCMS integration to allow easier importing of GhostCMS Content",
|
||||||
"version": "2.1.2",
|
"version": "2.1.3",
|
||||||
"author": "MatthiesenXYZ (https://matthiesen.xyz)",
|
"author": "MatthiesenXYZ (https://matthiesen.xyz)",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -2,8 +2,20 @@ import { z } from 'astro/zod';
|
||||||
import * as S from './schemas';
|
import * as S from './schemas';
|
||||||
|
|
||||||
export const UserConfigSchema = z.object({
|
export const UserConfigSchema = z.object({
|
||||||
|
/** OPTIONAL - Theme Selector
|
||||||
|
* @ This option allows the user to replace the included theme with an external npm module */
|
||||||
theme: z.string().default('@matthiesenxyz/astro-ghostcms'),
|
theme: z.string().default('@matthiesenxyz/astro-ghostcms'),
|
||||||
|
/** OPTIONAL - astrojs/sitemap
|
||||||
|
* @ This option allows the user to configure the included integration
|
||||||
|
* @ Options shown are the availble options
|
||||||
|
* @REFERENCE https://docs.astro.build/en/guides/integrations-guide/sitemap
|
||||||
|
*/
|
||||||
sitemap: S.SitemapSchema.optional(),
|
sitemap: S.SitemapSchema.optional(),
|
||||||
|
/** OPTIONAL - astro-robots-txt
|
||||||
|
* @ This option allows the user to configure the included integration
|
||||||
|
* @ Options shown are the availble options
|
||||||
|
* @REFERENCE https://www.npmjs.com/package/astro-robots-txt#configuration
|
||||||
|
*/
|
||||||
robotstxt: S.RobotsTxtSchema.optional(),
|
robotstxt: S.RobotsTxtSchema.optional(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,47 @@
|
||||||
import { z } from 'astro/zod';
|
import { boolean, string, z } from 'astro/zod';
|
||||||
|
|
||||||
export const SitemapSchema = z.object({
|
export const SitemapSchema = z.object({
|
||||||
|
/** EXAMPLE: ['https://example-1.com', 'https://example-2.com]
|
||||||
|
* @REFERENCE https://docs.astro.build/en/guides/integrations-guide/sitemap/#custompages
|
||||||
|
*/
|
||||||
customPages: z.string().array().optional(),
|
customPages: z.string().array().optional(),
|
||||||
|
/** EXAMPLE: 10000
|
||||||
|
* @REFERENCE https://docs.astro.build/en/guides/integrations-guide/sitemap/#entrylimit
|
||||||
|
*/
|
||||||
entryLimit: z.number().optional()
|
entryLimit: z.number().optional()
|
||||||
})
|
})
|
||||||
|
|
||||||
const RobotsPolicySchema = z.object({
|
const RobotsPolicySchema = z.object({
|
||||||
|
/** You must provide a name of the automatic client (search engine crawler).
|
||||||
|
* @ Wildcards are allowed.
|
||||||
|
*/
|
||||||
userAgent: z.string(),
|
userAgent: z.string(),
|
||||||
allow: z.string().optional(),
|
/** Allowed paths for crawling */
|
||||||
disallow: z.string().optional(),
|
allow: z.string().or(string().array()).optional(),
|
||||||
cleanParam: z.string().optional(),
|
/** Disallowed paths for crawling */
|
||||||
crawlDelay: z.number()
|
disallow: z.string().or(string().array()).optional(),
|
||||||
|
/** Indicates that the page's URL contains parameters that should be ignored during crawling.
|
||||||
|
* @ Maximum string length is limited to 500.
|
||||||
|
*/
|
||||||
|
cleanParam: z.string().or(string().array()).optional(),
|
||||||
|
/** Minimum interval (in secs) for the crawler to wait after loading one page, before starting other */
|
||||||
|
crawlDelay: z.number().optional()
|
||||||
})
|
})
|
||||||
|
|
||||||
export const RobotsTxtSchema = z.object({
|
export const RobotsTxtSchema = z.object({
|
||||||
host: z.string().optional(),
|
/** @EXAMPLE1 host: true - automatically resolve using the site option from Astro config
|
||||||
sitemap: z.string().optional(),
|
* @EXAMPLE2 host: 'example.com'
|
||||||
|
*/
|
||||||
|
host: z.string().or(boolean()).optional(),
|
||||||
|
/** @EXAMPLE1 sitemap: "https://example.com/sitemap-0.xml"
|
||||||
|
* @EXAMPLE2 sitemap: ['https://example.com/sitemap-0.xml','https://example.com/sitemap-1.xml']
|
||||||
|
* @EXAMPLE3 sitemap: false - If you want to get the robots.txt file without the Sitemap: ... entry, set the sitemap parameter to false.
|
||||||
|
*/
|
||||||
|
sitemap: z.string().or(boolean()).or(string().array()).optional(),
|
||||||
|
/** astrojs/sitemap and astro-sitemap integrations have the sitemap-index.xml as their primary output. That is why the default value of sitemapBaseFileName is set to sitemap-index.
|
||||||
|
* @EXAMPLE sitemapBaseFileName: 'custom-sitemap'
|
||||||
|
*/
|
||||||
sitemapBaseFileName: z.string().optional(),
|
sitemapBaseFileName: z.string().optional(),
|
||||||
|
/** SET POLICY RULES */
|
||||||
policy: RobotsPolicySchema.array().optional(),
|
policy: RobotsPolicySchema.array().optional(),
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue