From a7746e2c24d9dbab012c04155229c4f2a4084c3a Mon Sep 17 00:00:00 2001 From: where where Date: Fri, 7 Nov 2025 12:58:14 +0800 Subject: [PATCH 1/2] Add webmanifest generator --- _config.yml | 4 ++++ scripts/generators/index.js | 5 +++++ scripts/generators/lib/webmanifest.js | 12 ++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 scripts/generators/index.js create mode 100644 scripts/generators/lib/webmanifest.js diff --git a/_config.yml b/_config.yml index fd6318f3fc..4199f5230e 100644 --- a/_config.yml +++ b/_config.yml @@ -63,6 +63,10 @@ favicon: safari_pinned_tab: /images/logo.svg #android_manifest: /manifest.json +# Generate webmanifest file for PWA. Path can be customized in `favicon.android_manifest`. +webmanifest: + enable: false + # Custom Logo (Warning: Do not support scheme Mist) custom_logo: #/uploads/custom-logo.png diff --git a/scripts/generators/index.js b/scripts/generators/index.js new file mode 100644 index 0000000000..af11fcbc4b --- /dev/null +++ b/scripts/generators/index.js @@ -0,0 +1,5 @@ +/* global hexo */ + +'use strict'; + +hexo.extend.generator.register('webmanifest_generator', () => require('./lib/webmanifest')(hexo)); \ No newline at end of file diff --git a/scripts/generators/lib/webmanifest.js b/scripts/generators/lib/webmanifest.js new file mode 100644 index 0000000000..b2a220b100 --- /dev/null +++ b/scripts/generators/lib/webmanifest.js @@ -0,0 +1,12 @@ +'use strict'; + +module.exports = hexo => { + const theme = hexo.theme.config; + const { enable, ...webmanifest } = theme.webmanifest; + if (enable) { + return { + path: theme.favicon.android_manifest || "manifest.json", + data: JSON.stringify(webmanifest) + } + } +} \ No newline at end of file From e2a25008c528c31c07232a4670a772b2fc21c3b0 Mon Sep 17 00:00:00 2001 From: where where Date: Fri, 7 Nov 2025 13:06:59 +0800 Subject: [PATCH 2/2] Fix code lint --- scripts/generators/index.js | 2 +- scripts/generators/lib/webmanifest.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/generators/index.js b/scripts/generators/index.js index af11fcbc4b..9b58565f27 100644 --- a/scripts/generators/index.js +++ b/scripts/generators/index.js @@ -2,4 +2,4 @@ 'use strict'; -hexo.extend.generator.register('webmanifest_generator', () => require('./lib/webmanifest')(hexo)); \ No newline at end of file +hexo.extend.generator.register('webmanifest_generator', () => require('./lib/webmanifest')(hexo)); diff --git a/scripts/generators/lib/webmanifest.js b/scripts/generators/lib/webmanifest.js index b2a220b100..72c4d34d6a 100644 --- a/scripts/generators/lib/webmanifest.js +++ b/scripts/generators/lib/webmanifest.js @@ -5,8 +5,8 @@ module.exports = hexo => { const { enable, ...webmanifest } = theme.webmanifest; if (enable) { return { - path: theme.favicon.android_manifest || "manifest.json", + path: theme.favicon.android_manifest || 'manifest.json', data: JSON.stringify(webmanifest) - } + }; } -} \ No newline at end of file +};