@vuepress/plugin-watermark
Version:
VuePress plugin - watermark
27 lines (26 loc) • 1.03 kB
JavaScript
import { isFunction } from 'vuepress/shared';
import { getDirname, path } from 'vuepress/utils';
import { logger, PLUGIN_NAME } from './logger.js';
const __dirname = getDirname(import.meta.url);
export const watermarkPlugin = ({ enabled: enable = true, ...options } = {}) => (app) => {
if (app.env.isDebug)
logger.info('Options:', options);
return {
name: PLUGIN_NAME,
define: {
__WM_DELAY__: options.delay ?? 500,
__WM_GLOBAL__: enable === true,
__WM_OPTIONS__: options.watermarkOptions ?? {},
},
extendsPage: (page) => {
// When watermark is a filter function, enable watermark for matching pages.
if (isFunction(enable)) {
const { frontmatter } = page;
if (!('watermark' in frontmatter) && enable(page)) {
frontmatter.watermark = true;
}
}
},
clientConfigFile: path.resolve(__dirname, '../client/config.js'),
};
};