Fix anchor navigation in panel headers#1187
Conversation
| @@ -0,0 +1,19 @@ | |||
| const cheerio = module.parent.require('cheerio'); | |||
|
|
|||
| module.exports = { | |||
There was a problem hiding this comment.
don't think we should do this as a plugin since it is a core markbind feature.
You could look to insertHeaderFile and _parse to integrate this directly
There was a problem hiding this comment.
I can do that in postRender - the same place where plugins are applied. Will there be extra concerns by doing that?
There was a problem hiding this comment.
mainly of code organization and performance secondly ( as putting it there means you are parsing the entire content one more time, keeping the number of parses to a minimum would be nice )
Unless absolutely necessary ( like in the case of id resolution in popovers ), I think each stage of page generation should maintain a single unit of functionality as is currently. postRender is for plugins - you could certainly add it immediately outside of postRender, but adding one entire stage of parsing just for fixed navbars seems a little bit of waste, and there is already similar parsing going on in _parse/insertHeaderFile. Would make sense to put it there from both standpoints
There was a problem hiding this comment.
If we're to implement this inside _parse, fixed header would be a config option in site.json I suppose?
There was a problem hiding this comment.
you could still 'detect' it during insertHeaderFile - though just to confirm the current implementation is <header class="header-fixed"> right? 😮
What is the purpose of this pull request? (put "X" next to an item, remove the rest)
• [X] Documentation update
• [X] Bug fix
Replaces #1145
Fixes #1104 Fixes #1071
What changes did you make? (Give an overview)
Move span generation to a plugin during build time. Add
::beforeto panel card containers to make navigation work properly on panel headers.Provide some example code that this change will affect:
na
Is there anything you'd like reviewers to focus on?
Test if the panel functions are broken in any way.
Testing instructions:
na
Proposed commit message: (wrap lines at 72 characters)
To avoid dynamically injecting lots of dummy spans in a document with
many headings, let's generate these spans using a plugin, post
rendering.
To make anchor navigation function properly on panel headers, let's
introduce ::before element to
card-containerto make space for thefixed top nav.