mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-13 13:03:13 +00:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5c54291eb8 | ||
![]() |
2a862034aa | ||
![]() |
56e0713582 | ||
![]() |
23a3f7ef71 | ||
![]() |
3418ac8d1d | ||
![]() |
c645024474 | ||
![]() |
6dd208f671 |
@@ -1,5 +1,6 @@
|
||||
assets/js/critical/color.js
|
||||
assets/js/analytics.js
|
||||
assets/js/flexsearch.js
|
||||
assets/js/sharing.js
|
||||
assets/js/vendor
|
||||
node_modules
|
||||
|
36
assets/js/sharing.js
Normal file
36
assets/js/sharing.js
Normal file
@@ -0,0 +1,36 @@
|
||||
{{- if site.Params.sharing.webshare -}}
|
||||
|
||||
// Adapted from: https://dev.to/j471n/how-to-share-anything-from-your-website-by-web-share-api-1h5g
|
||||
|
||||
// function for Web Share API
|
||||
function webShareAPI (title, description, link) {
|
||||
navigator
|
||||
.share({
|
||||
title,
|
||||
text: description,
|
||||
url: link
|
||||
})
|
||||
.then(() => console.log('Successful share'))
|
||||
.catch((error) => console.log('Error sharing', error))
|
||||
}
|
||||
|
||||
const shareBtn = document.getElementById('btn-webshare')
|
||||
|
||||
if (shareBtn !== null) {
|
||||
if (navigator.share) {
|
||||
const title = shareBtn.getAttribute('data-sharing-title')
|
||||
const description = shareBtn.getAttribute('data-sharing-description')
|
||||
const url = shareBtn.getAttribute('data-sharing-url')
|
||||
|
||||
// show button if it supports webShareAPI
|
||||
shareBtn.style.display = 'block'
|
||||
shareBtn.addEventListener('click', () =>
|
||||
webShareAPI(title, description, url)
|
||||
)
|
||||
} else {
|
||||
// hide button if host does not support Web Share API
|
||||
shareBtn.style.display = 'none'
|
||||
}
|
||||
}
|
||||
|
||||
{{- end -}}
|
@@ -63,6 +63,7 @@
|
||||
enabled = true
|
||||
sort = "weight"
|
||||
reverse = false
|
||||
webshare = true
|
||||
|
||||
[[sharing.providers]]
|
||||
name = "LinkedIn"
|
||||
|
@@ -26,6 +26,7 @@
|
||||
"main.externalLinks.cue" in the site's parameters.
|
||||
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
|
||||
"main.externalLinks.tab" in the site's parameters.
|
||||
"attributes" Optional dictionary of key-value pairs added as custom attributes to the button element ('<a>').
|
||||
-->
|
||||
|
||||
{{- $title := trim .title " \r\n" -}}
|
||||
@@ -136,6 +137,8 @@
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $attributes := .attributes -}}
|
||||
|
||||
<a aria-label="{{ $title }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end }}
|
||||
{{ with $id }}id="{{ . }}"{{ end }}
|
||||
{{ with $target }}target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}
|
||||
@@ -148,6 +151,9 @@
|
||||
{{ with $collapse }}data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end }}
|
||||
{{ if eq $state "active" }}data-bs-toggle="button" aria-pressed="true"{{ end }}
|
||||
{{ if eq $state "inactive" }}data-bs-toggle="button" aria-pressed="false"{{ end }}
|
||||
{{ range $key, $val := $attributes }}
|
||||
{{ print $key | safeHTMLAttr }}="{{ $val }}"
|
||||
{{ end }}
|
||||
>
|
||||
|
||||
<div class="d-flex justify-content-{{ $justify }}">
|
||||
|
@@ -23,6 +23,10 @@
|
||||
{{- end -}}
|
||||
{{ partial "assets/button.html" (dict "toast" $target "clipboard" $clipboard "href" $url "icon" (printf "%s fa-fw" $item.icon) "class" "btn-social p-0" )}}
|
||||
{{- end -}}
|
||||
{{ if .Site.Params.sharing.webshare }}
|
||||
{{ $attr := dict "data-sharing-title" .Title "data-sharing-description" .Description "data-sharing-url" .Permalink }}
|
||||
{{ partial "assets/button.html" (dict "href" "#!" "icon" "fas share-nodes fa-fw" "id" "btn-webshare" "class" "btn-social p-0" "attributes" $attr )}}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.16.8",
|
||||
"version": "0.16.9",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.16.8",
|
||||
"version": "0.16.9",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.16.8",
|
||||
"version": "0.16.9",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
|
Reference in New Issue
Block a user