diff --git a/_config.yml b/_config.yml index fd6318f3f..4199f5230 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 000000000..9b58565f2 --- /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)); diff --git a/scripts/generators/lib/webmanifest.js b/scripts/generators/lib/webmanifest.js new file mode 100644 index 000000000..72c4d34d6 --- /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) + }; + } +};