From f71fbea487ab88deecd32d7f8f532f20ae2c0271 Mon Sep 17 00:00:00 2001 From: Billyyyyy3320 Date: Fri, 17 Jan 2020 00:36:12 +0800 Subject: [PATCH] fix: missing client apis for feed --- docs/client-api/README.md | 15 +++++++++++++++ src/node/handleOptions.ts | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/docs/client-api/README.md b/docs/client-api/README.md index 84501b3..0ddb584 100644 --- a/docs/client-api/README.md +++ b/docs/client-api/README.md @@ -134,3 +134,18 @@ Get the comment service #### `$service.email.enabled` Whether email (newsletter) service is enabled. + +### $service.feed + +#### `$service.feed.rss` + +whether RSS feed is enabled. + +#### `$service.feed.atom` + +whether Atom feed is enabled. + +#### `$service.feed.json` + +whether JSON feed is enabled. + diff --git a/src/node/handleOptions.ts b/src/node/handleOptions.ts index bf28b5b..dedc902 100644 --- a/src/node/handleOptions.ts +++ b/src/node/handleOptions.ts @@ -194,6 +194,7 @@ export function handleOptions( const services = { comment: { enabled: false, service: '' }, email: { enabled: false }, + feed: { rss: false, atom: false, json: false }, }; if (options.sitemap && options.sitemap.hostname) { @@ -246,6 +247,17 @@ export function handleOptions( directories.forEach(dir => { defaultFeedOptions.posts_directories.push(dir.dirname); }); + + services.feed = { rss: true, atom: true, json: true }; + if (options.feed.feeds) { + if (options.feed.feeds.rss2 && options.feed.feeds.rss2.enable === false) + services.feed.rss = false; + if (options.feed.feeds.atom1 && options.feed.feeds.atom1.enable === false) + services.feed.atom = false; + if (options.feed.feeds.json1 && options.feed.feeds.json1.enable === false) + services.feed.json = false; + } + const feedOptions = Object.assign({}, defaultFeedOptions, options.feed); plugins.push(['vuepress-plugin-feed', feedOptions]); }