mirror of
https://github.com/TeamPiped/hugo-whisper-theme.git
synced 2024-08-14 23:57:00 +00:00
Enable to add anchor to header elements
This commit is contained in:
parent
d39f310357
commit
15d306cf14
4 changed files with 38 additions and 1 deletions
|
@ -7,3 +7,29 @@ menuTrigger.onclick = function() {
|
||||||
menuTrigger.classList.toggle('is-active')
|
menuTrigger.classList.toggle('is-active')
|
||||||
body.classList.toggle('lock-scroll')
|
body.classList.toggle('lock-scroll')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var content = document.querySelector('.content.anchor-link-enabled')
|
||||||
|
if (content) {
|
||||||
|
addHeaderAnchors(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addHeaderAnchors(content) {
|
||||||
|
var headers = content.querySelectorAll('h1, h2, h3, h4');
|
||||||
|
// SVG data from https://iconmonstr.com/link-1-svg/
|
||||||
|
var linkSvg = ' <svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"></path><path d="M6.188 8.719c.439-.439.926-.801 1.444-1.087 2.887-1.591 6.589-.745 8.445 2.069l-2.246 2.245c-.644-1.469-2.243-2.305-3.834-1.949-.599.134-1.168.433-1.633.898l-4.304 4.306c-1.307 1.307-1.307 3.433 0 4.74 1.307 1.307 3.433 1.307 4.74 0l1.327-1.327c1.207.479 2.501.67 3.779.575l-2.929 2.929c-2.511 2.511-6.582 2.511-9.093 0s-2.511-6.582 0-9.093l4.304-4.306zm6.836-6.836l-2.929 2.929c1.277-.096 2.572.096 3.779.574l1.326-1.326c1.307-1.307 3.433-1.307 4.74 0 1.307 1.307 1.307 3.433 0 4.74l-4.305 4.305c-1.311 1.311-3.44 1.3-4.74 0-.303-.303-.564-.68-.727-1.051l-2.246 2.245c.236.358.481.667.796.982.812.812 1.846 1.417 3.036 1.704 1.542.371 3.194.166 4.613-.617.518-.286 1.005-.648 1.444-1.087l4.304-4.305c2.512-2.511 2.512-6.582.001-9.093-2.511-2.51-6.581-2.51-9.092 0z"/></svg>';
|
||||||
|
var anchorForId = function (id) {
|
||||||
|
var anchor = document.createElement('a');
|
||||||
|
anchor.classList.add('header-anchor');
|
||||||
|
anchor.href = "#" + id;
|
||||||
|
anchor.innerHTML = linkSvg;
|
||||||
|
return anchor;
|
||||||
|
};
|
||||||
|
|
||||||
|
for (var h = 0; h < headers.length; h++) {
|
||||||
|
var header = headers[h];
|
||||||
|
|
||||||
|
if (typeof header.id !== "undefined" && header.id !== "") {
|
||||||
|
header.appendChild(anchorForId(header.id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
10
assets/scss/components/_anchor.scss
Normal file
10
assets/scss/components/_anchor.scss
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
.content {
|
||||||
|
.header-anchor {
|
||||||
|
text-decoration: none;
|
||||||
|
fill: currentColor;
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
.header-anchor:hover {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
|
@ -33,6 +33,7 @@
|
||||||
@import 'components/strip';
|
@import 'components/strip';
|
||||||
@import 'components/whitebox';
|
@import 'components/whitebox';
|
||||||
@import 'components/overview';
|
@import 'components/overview';
|
||||||
|
@import 'components/anchor';
|
||||||
|
|
||||||
// Pages
|
// Pages
|
||||||
@import 'pages/home';
|
@import 'pages/home';
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<h1 class="title">{{.Title}}</h1>
|
<h1 class="title">{{.Title}}</h1>
|
||||||
<div class="content">
|
<div class="content {{if .Site.Params.enable_anchor_link}}{{ "anchor-link-enabled" }}{{ end }}">
|
||||||
{{.Content}}
|
{{.Content}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue