From 1c55976fb6e064dbb4c0fafffb98ab9521b7269a Mon Sep 17 00:00:00 2001 From: bgpat Date: Wed, 7 Aug 2019 01:20:07 +0900 Subject: [PATCH 1/3] Don't replace leading digit --- src/core/render/slugify.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/render/slugify.js b/src/core/render/slugify.js index 719e49443..948c81a8f 100644 --- a/src/core/render/slugify.js +++ b/src/core/render/slugify.js @@ -19,7 +19,6 @@ export function slugify(str) { .replace(re, '') .replace(/\s/g, '-') .replace(/-+/g, '-') - .replace(/^(\d)/, '_$1') let count = cache[slug] count = hasOwn.call(cache, slug) ? count + 1 : 0 From 4f28cae11f76c113f2e876b8b0753a1583a707f2 Mon Sep 17 00:00:00 2001 From: bgpat Date: Wed, 7 Aug 2019 01:34:17 +0900 Subject: [PATCH 2/3] Install css.escape --- package-lock.json | 6 ++++++ package.json | 1 + 2 files changed, 7 insertions(+) diff --git a/package-lock.json b/package-lock.json index ba2f7519d..dad548abb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2907,6 +2907,12 @@ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, "cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", diff --git a/package.json b/package.json index 17572fdd1..858862bf9 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "chokidar": "^3.2.1", "conventional-changelog-cli": "^2.0.25", "cross-env": "^6.0.3", + "css.escape": "^1.5.1", "cssnano": "^4.1.10", "eslint": "^5.16.0", "eslint-config-xo-space": "^0.21.0", From 12745acb65f0fd8fc904ff080618ba584d62d298 Mon Sep 17 00:00:00 2001 From: bgpat Date: Wed, 7 Aug 2019 01:35:10 +0900 Subject: [PATCH 3/3] Escape leading digit of the anchor id --- src/core/event/scroll.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/event/scroll.js b/src/core/event/scroll.js index 3e9e33265..6a068e79a 100644 --- a/src/core/event/scroll.js +++ b/src/core/event/scroll.js @@ -1,6 +1,7 @@ import {isMobile} from '../util/env' import * as dom from '../util/dom' import Tweezer from 'tweezer.js' +import cssEscape from 'css.escape' const nav = {} let hoverOver = false @@ -131,7 +132,7 @@ export function scrollIntoView(path, id) { return } - const section = dom.find('#' + id) + const section = dom.find('#' + cssEscape(id)) section && scrollTo(section) const li = nav[getNavKey(path, id)]