mirror of
https://github.com/docsifyjs/docsify.git
synced 2025-12-08 19:55:52 +00:00
refactor: simplify auto header insertion logic (#2578)
This commit is contained in:
parent
c9301b0c9d
commit
b468bcd677
@ -72,7 +72,9 @@ window.$docsify = {
|
||||
- Type: `Boolean`
|
||||
- Default: `false`
|
||||
|
||||
If `loadSidebar` and `autoHeader` are both enabled, for each link in `_sidebar.md`, prepend a header to the page before converting it to HTML. See [#78](https://github.com/docsifyjs/docsify/issues/78).
|
||||
If `loadSidebar` and `autoHeader` are both enabled, for each link in `_sidebar.md`, prepend a header to the page before converting it to HTML — but only if the page does not already contain an H1 heading.
|
||||
|
||||
For more details, see [#78](https://github.com/docsifyjs/docsify/issues/78).
|
||||
|
||||
```js
|
||||
window.$docsify = {
|
||||
|
||||
@ -342,11 +342,15 @@ export function Render(Base) {
|
||||
|
||||
if (autoHeader && activeEl) {
|
||||
const main = dom.getNode('#main');
|
||||
const firstNode = main.children[0];
|
||||
if (firstNode && firstNode.tagName !== 'H1') {
|
||||
const h1 = this.compiler.header(activeEl.innerText, 1);
|
||||
const wrapper = dom.create('div', h1);
|
||||
dom.before(main, wrapper.children[0]);
|
||||
const hasH1 = main.querySelector('h1');
|
||||
|
||||
if (!hasH1) {
|
||||
const h1HTML = this.compiler.header(activeEl.innerText, 1);
|
||||
const h1Node = dom.create('div', h1HTML).firstElementChild;
|
||||
|
||||
if (h1Node) {
|
||||
dom.before(main, h1Node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user