From 3a7963545d3be481cbd57095e56c69129db59430 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Mon, 5 Nov 2018 13:11:07 +0800 Subject: [PATCH] feat($active-header-links): sidebarLinkSelector & headerAnchorSelector option --- packages/@vuepress/plugin-active-header-links/index.js | 10 +++++++--- packages/@vuepress/plugin-active-header-links/mixin.js | 6 ++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/@vuepress/plugin-active-header-links/index.js b/packages/@vuepress/plugin-active-header-links/index.js index 04eea8cdea..3958c243ee 100644 --- a/packages/@vuepress/plugin-active-header-links/index.js +++ b/packages/@vuepress/plugin-active-header-links/index.js @@ -1,5 +1,9 @@ const { path } = require('@vuepress/shared-utils') -module.exports = { - clientRootMixin: path.resolve(__dirname, 'mixin.js') -} +module.exports = (options) => ({ + clientRootMixin: path.resolve(__dirname, 'mixin.js'), + define: { + AHL_SIDEBAR_LINK_SELECTOR: options.sidebarLinkSelector || '.sidebar-link', + AHL_HEADER_ANCHOR_SELECTOR: options.headerAnchorSelector || '.header-anchor' + } +}) diff --git a/packages/@vuepress/plugin-active-header-links/mixin.js b/packages/@vuepress/plugin-active-header-links/mixin.js index 550ff1e4eb..90e3db9db4 100644 --- a/packages/@vuepress/plugin-active-header-links/mixin.js +++ b/packages/@vuepress/plugin-active-header-links/mixin.js @@ -1,3 +1,5 @@ +/* global AHL_SIDEBAR_LINK_SELECTOR, AHL_HEADER_ANCHOR_SELECTOR */ + import throttle from 'lodash.throttle' function calculateCurrentAnchor (anchors) { @@ -25,9 +27,9 @@ function calculateCurrentAnchor (anchors) { } function getAnchors () { - const sidebarLinks = [].slice.call(document.querySelectorAll('.sidebar-link')) + const sidebarLinks = [].slice.call(document.querySelectorAll(AHL_SIDEBAR_LINK_SELECTOR)) return [].slice - .call(document.querySelectorAll('.header-anchor')) + .call(document.querySelectorAll(AHL_HEADER_ANCHOR_SELECTOR)) .filter(anchor => sidebarLinks.some(sidebarLink => sidebarLink.hash === anchor.hash)) .map(el => { return {