Skip to content

Commit

Permalink
fix(v1): fix page title render issue when referred by search result (#…
Browse files Browse the repository at this point in the history
…1869)

* fix(v1): Fix page title render issue when referred by search result

When Algolia DocSearch query finds a match for a page's title, it attempts to generate
a permalink. Because the page title element (`h1`) does not have an `id`, Algolia
generates uses the `id` from closes parent element. Because of this, the page title
scrolls to a position that is slightly overlayed by the fixed top navigation bar.

This fix sets an `id` for the page title so that the search result is able to generate
a more accurate permalink.

* Adjust css for handling post title to be on the top when referred by an anchor

The post title can sometimes be referred by an anchor using the "id" of that element.
In that case the title will be automatically be the first element within the viewport.
Since we have a header fixed at the top of the view port, the title becomes hidden or
not visible. That's why some css adjustments are needed so that if any user ends up
with a link to a page that is referring to the post title (i.e. auto generated anchor
link by algolia DocSearch).

The css code uses pseudo element `:before` to make the adjustments. Details on this
can be found in the following article:

https://css-tricks.com/hash-tag-links-padding/

* Adjust CSS so that different selectors are on separate lines
  • Loading branch information
parkas2018 authored and yangshun committed Nov 18, 2019
1 parent c16407c commit 1bf590e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
4 changes: 3 additions & 1 deletion packages/docusaurus-1.x/lib/core/Doc.js
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,9 @@ class Doc extends React.Component {
<header className="postHeader">
{editLink}
{!this.props.hideTitle && (
<h1 className="postHeaderTitle">{this.props.title}</h1>
<h1 id="__docusaurus" className="postHeaderTitle">
{this.props.title}
</h1>
)}
</header>
<article>
Expand Down
22 changes: 22 additions & 0 deletions packages/docusaurus-1.x/lib/static/css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -653,6 +653,16 @@ blockquote {
padding: 0;
}

.mainContainer .wrapper .post .postHeader:before,
.mainContainer .wrapper .post .postHeaderTitle:before {
content: "";
display: block;
height: 90px; /* fixed header height and empty space below it */
margin-top: -90px; /* negative fixed header height and empty space below it */
visibility: hidden;
pointer-events: none;
}

.mainContainer .wrapper .post .postSocialPlugins {
padding-top: 1em;
}
Expand Down Expand Up @@ -714,6 +724,18 @@ blockquote {
width: 100%;
}
}

@media only screen and (max-width: 1023px) {
.mainContainer .wrapper .post .postHeader:before,
.mainContainer .wrapper .post .postHeaderTitle:before {
content: "";
display: block;
height: 200px; /* fixed header height and empty space below it */
margin-top: -200px; /* negative fixed header height and empty space below it */
visibility: hidden;
pointer-events: none;
}
}
/* End of Main Container */

/* Navbar */
Expand Down

0 comments on commit 1bf590e

Please sign in to comment.