[ci] yarn format
This commit is contained in:
parent
85ad1aab67
commit
18bb39f0d4
5 changed files with 10 additions and 9 deletions
|
@ -48,6 +48,6 @@ Note: RSS feeds will **not** be built during development. Currently, RSS feeds a
|
||||||
|
|
||||||
RSS Feeds can be styled with an XSL stylesheet for a more pleasant user experience when they are opened directly in a browser. By default, Astro does not set a stylesheet for RSS feeds, but it can be enabled by setting the `stylesheet` option.
|
RSS Feeds can be styled with an XSL stylesheet for a more pleasant user experience when they are opened directly in a browser. By default, Astro does not set a stylesheet for RSS feeds, but it can be enabled by setting the `stylesheet` option.
|
||||||
|
|
||||||
Astro can automatically use [Pretty Feed](https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl), a popular open-source XSL stylesheet. To enable this behavior, pass `stylesheet: true`.
|
Astro can automatically use [Pretty Feed](https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl), a popular open-source XSL stylesheet. To enable this behavior, pass `stylesheet: true`.
|
||||||
|
|
||||||
If you'd like to use a custom XSL stylesheet, you can pass a string value like `stylesheet: '/my-custom-stylesheet.xsl'`. This file should be in your `public/` directory (in this case, `public/my-custom-stylesheet.xsl`).
|
If you'd like to use a custom XSL stylesheet, you can pass a string value like `stylesheet: '/my-custom-stylesheet.xsl'`. This file should be in your `public/` directory (in this case, `public/my-custom-stylesheet.xsl`).
|
||||||
|
|
|
@ -339,8 +339,8 @@ export interface RSS {
|
||||||
description: string;
|
description: string;
|
||||||
/** Specify arbitrary metadata on opening <xml> tag */
|
/** Specify arbitrary metadata on opening <xml> tag */
|
||||||
xmlns?: Record<string, string>;
|
xmlns?: Record<string, string>;
|
||||||
/**
|
/**
|
||||||
* If false (default), does not include XSL stylesheet.
|
* If false (default), does not include XSL stylesheet.
|
||||||
* If true, automatically includes 'pretty-feed-v3'.
|
* If true, automatically includes 'pretty-feed-v3'.
|
||||||
* If a string value, specifies a local custom XSL stylesheet, for example '/custom-feed.xsl'.
|
* If a string value, specifies a local custom XSL stylesheet, for example '/custom-feed.xsl'.
|
||||||
*/
|
*/
|
||||||
|
@ -370,7 +370,7 @@ export interface RSS {
|
||||||
|
|
||||||
export type RSSFunction = (args: RSS) => void;
|
export type RSSFunction = (args: RSS) => void;
|
||||||
|
|
||||||
export type FeedResult = { url: string; content?: string; };
|
export type FeedResult = { url: string; content?: string };
|
||||||
export type RSSResult = { xml: FeedResult; xsl?: FeedResult };
|
export type RSSResult = { xml: FeedResult; xsl?: FeedResult };
|
||||||
|
|
||||||
export type SSRError = Error & vite.ErrorPayload['err'];
|
export type SSRError = Error & vite.ErrorPayload['err'];
|
||||||
|
|
|
@ -92,7 +92,9 @@ export async function collectPagesData(opts: CollectPagesDataOptions): Promise<C
|
||||||
const { url, content } = result.rss.xsl;
|
const { url, content } = result.rss.xsl;
|
||||||
const stylesheetFile = new URL(url.replace(/^\/?/, './'), astroConfig.dist);
|
const stylesheetFile = new URL(url.replace(/^\/?/, './'), astroConfig.dist);
|
||||||
if (assets[fileURLToPath(stylesheetFile)]) {
|
if (assets[fileURLToPath(stylesheetFile)]) {
|
||||||
throw new Error(`[getStaticPaths] RSS feed stylesheet ${url} already exists.\nUse \`rss(data, {stylesheet: '...'})\` to choose a unique, custom URL. (${route.component})`);
|
throw new Error(
|
||||||
|
`[getStaticPaths] RSS feed stylesheet ${url} already exists.\nUse \`rss(data, {stylesheet: '...'})\` to choose a unique, custom URL. (${route.component})`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
assets[fileURLToPath(stylesheetFile)] = content;
|
assets[fileURLToPath(stylesheetFile)] = content;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,15 +95,15 @@ export function generateRssFunction(site: string | undefined, route: RouteData):
|
||||||
result.xsl = {
|
result.xsl = {
|
||||||
url: rssData.stylesheet,
|
url: rssData.stylesheet,
|
||||||
content: generateRSSStylesheet(),
|
content: generateRSSStylesheet(),
|
||||||
}
|
};
|
||||||
} else if (typeof rssData.stylesheet === 'string') {
|
} else if (typeof rssData.stylesheet === 'string') {
|
||||||
result.xsl = {
|
result.xsl = {
|
||||||
url: rssData.stylesheet,
|
url: rssData.stylesheet,
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
result.xml = {
|
result.xml = {
|
||||||
url: feedURL,
|
url: feedURL,
|
||||||
content: generateRSS({ rssData, site, srcFile: route.component, feedURL })
|
content: generateRSS({ rssData, site, srcFile: route.component, feedURL }),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
rss: result,
|
rss: result,
|
||||||
|
|
|
@ -83,7 +83,6 @@ export function viteID(filePath: URL): string {
|
||||||
return slash(fileURLToPath(filePath));
|
return slash(fileURLToPath(filePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Vendored from https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl
|
// Vendored from https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl
|
||||||
/** Basic stylesheet for RSS feeds */
|
/** Basic stylesheet for RSS feeds */
|
||||||
export const PRETTY_FEED_V3 = `<?xml version="1.0" encoding="utf-8"?>
|
export const PRETTY_FEED_V3 = `<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
Loading…
Add table
Reference in a new issue