Compare commits

..

8 Commits

Author SHA1 Message Date
Mark Dumay
a680a61825 Merge pull request #1224 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-10-07 07:44:46 +02:00
Mark Dumay
a075ca5f7b Merge branch 'main' into hugo-mod-dependencies 2024-10-07 07:39:55 +02:00
Mark Dumay
a816d2be25 Merge pull request #1225 from gethinode/develop
Support configurable CSP directives
2024-10-07 07:39:22 +02:00
Mark Dumay
52ff0fb71e Merge branch 'main' into develop 2024-10-07 07:32:05 +02:00
Mark Dumay
95fd919a6f Support configurable CSP directives 2024-10-07 07:31:28 +02:00
markdumay
85778dd374 fix: update Hugo module dependencies 2024-10-07 03:12:33 +00:00
github-actions[bot]
ee3a0ee8c4 Merge pull request #1220 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.132.0
Bump hugo-bin from 0.131.3 to 0.132.0
2024-09-30 13:15:30 +00:00
dependabot[bot]
3b721690f1 Bump hugo-bin from 0.131.3 to 0.132.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.131.3 to 0.132.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.131.3...v0.132.0)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-30 13:09:32 +00:00
14 changed files with 582 additions and 198 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
_vendor/
prebuild/
public/
resources/
node_modules/

View File

@@ -26,20 +26,48 @@ defaultContentLanguage = "en"
defaultContentLanguageInSubdir = false
# toml-docs-end language
# toml-docs-start headers
[outputFormats]
[outputFormats.netlify]
mediaType = "application/toml"
baseName = "netlify"
isPlainText = true
notAlternative = true
permalinkable = true
root = true
[outputFormats.server]
mediaType = "application/toml"
baseName = "server"
isPlainText = true
notAlternative = true
permalinkable = true
root = true
# toml-docs-end headers
[outputFormats.XML]
isPlainText = false
mediaType = "application/xml"
isHtml = false
noUgly = true
permalinkable = false
name = "xml"
# toml-docs-start redirect
[outputFormats.REDIR]
mediaType = "text/netlify"
baseName = "_redirects"
isPlainText = true
notAlternative = true
[outputFormats.REDIR]
mediaType = "text/netlify"
baseName = "_redirects"
isPlainText = true
notAlternative = true
[mediaTypes."text/netlify"]
delimiter = ""
[outputs]
home = ["HTML", "RSS", "REDIR"]
# toml-docs-end redirect
# toml-docs-start outputs
[outputs]
home = ["HTML", "RSS", "REDIR", "netlify", "server"]
# toml-docs-end outputs
# toml-docs-start build
[build]
writeStats = true
@@ -77,15 +105,6 @@ home = ["HTML", "RSS", "REDIR"]
[services.googleAnalytics]
# ID = "G-xxxxxxxxxx"
[outputFormats]
[outputFormats.XML]
isPlainText = false
mediaType = "application/xml"
isHtml = false
noUgly = true
permalinkable = false
name = "xml"
[minify]
[minify.tdewolff.js]
keepVarNames = true
@@ -126,6 +145,8 @@ home = ["HTML", "RSS", "REDIR"]
# toml-docs-start modules
[[module.imports]]
path = "github.com/gethinode/mod-bootstrap"
[[module.imports]]
path = "github.com/gethinode/mod-csp"
[[module.imports]]
path = "github.com/gethinode/mod-flexsearch/v2"
[[module.imports]]
@@ -143,3 +164,11 @@ home = ["HTML", "RSS", "REDIR"]
[[module.imports]]
path = "github.com/gethinode/mod-utils/v2"
# toml-docs-end modules
# toml-docs-start segments
[segments]
[segments.headers]
[[segments.headers.includes]]
kind = '{home}'
output = '{netlify,server}'
# toml-docs-end segments

View File

@@ -204,3 +204,25 @@
[links]
hinode = "https://gethinode.com"
[headers]
[headers.netlify]
source = "netlify.toml"
[modules.hinode.csp]
style-src = ["www.youtube.com"]
font-src = ["fonts.gstatic.com"]
frame-src = [
"player.cloudinary.com",
"player.vimeo.com",
"www.youtube-nocookie.com",
"www.youtube.com"
]
img-src = [
"data:",
"*.imgix.net",
"*.imagekit.io",
"*.cloudinary.com",
"i.vimeocdn.com",
"i.ytimg.com"
]

View File

@@ -1,41 +1,29 @@
# toml-docs-start server-config
# Auto-generated file - do not modify
[[headers]]
for = '/**'
[headers.values]
Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options = "nosniff"
X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\
default-src 'self'; \
script-src 'self' https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
for = '/**'
[headers.values]
Access-Control-Allow-Origin = '*'
Content-Security-Policy = """
base-uri 'self'; \
connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' https://player.cloudinary.com https://player.vimeo.com https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' data: https://*.imgix.net https://*.imagekit.io https://*.cloudinary.com https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
connect-src 'self' *.google-analytics.com *.analytics.google.com *.googletagmanager.com; \
default-src 'none' 'self'; \
font-src 'self' fonts.gstatic.com; \
form-action 'self'; \
frame-src player.cloudinary.com player.vimeo.com www.youtube-nocookie.com www.youtube.com; \
img-src 'self' *.google-analytics.com *.googletagmanager.com data: *.imgix.net *.imagekit.io *.cloudinary.com i.vimeocdn.com i.ytimg.com tile.openstreetmap.org; \
manifest-src 'self'; \
media-src 'self' \
media-src 'self'; \
object-src 'none'; \
script-src 'self' *.google-analytics.com *.googletagmanager.com; \
style-src 'self' www.youtube.com; \
"""
X-Frame-Options = "SAMEORIGIN"
Referrer-Policy = "strict-origin"
Permissions-Policy = """\
geolocation=(), \
midi=(), \
sync-xhr=(), \
microphone=(), \
camera=(), \
magnetometer=(), \
gyroscope=(), \
payment=() \
"""
cache-control = """\
max-age=0, \
no-cache, \
no-store, \
must-revalidate \
"""
Access-Control-Allow-Origin = "*"
# toml-docs-end server-config
Permissions-Policy = 'geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(), payment=() '
Referrer-Policy = 'strict-origin'
Strict-Transport-Security = 'max-age=31536000; includeSubDomains; preload'
X-Content-Type-Options = 'nosniff'
X-Frame-Options = 'SAMEORIGIN'
X-XSS-Protection = '1; mode=block'
cache-control = 'max-age=0, no-cache, no-store, must-revalidate '

35
data/netlify.toml Normal file
View File

@@ -0,0 +1,35 @@
# toml-docs-start netlify
[build]
publish = "exampleSite/public"
command = "npm run build:example"
[build.environment]
DART_SASS_VERSION = "1.78.0"
HUGO_VERSION = "0.134.1"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
NODE_VERSION = "20.17.0"
NPM_VERSION = "10.8.2"
# toml-docs-end netlify
[context.deploy-preview]
command = "npm run build:example -- -b $DEPLOY_PRIME_URL"
[context.branch-deploy]
command = "npm run build:example -- -b $DEPLOY_PRIME_URL"
[dev]
framework = "#custom"
command = "npm run start:example"
targetPort = 1313
port = 8888
publish = "public"
autoLaunch = false
# toml-docs-start plugins
[[plugins]]
package = "@gethinode/netlify-plugin-dartsass"
[[plugins]]
package = "netlify-plugin-hugo-cache-resources"
# toml-docs-end plugins

39
data/server.toml Normal file
View File

@@ -0,0 +1,39 @@
[[headers]]
for = "/**"
[headers.values]
Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options = "nosniff"
X-XSS-Protection = "1; mode=block"
X-Frame-Options = "SAMEORIGIN"
Referrer-Policy = "strict-origin"
Permissions-Policy = """\
geolocation=(), \
midi=(), \
sync-xhr=(), \
microphone=(), \
camera=(), \
magnetometer=(), \
gyroscope=(), \
fullscreen=(), \
payment=() \
"""
cache-control = """\
max-age=0, \
no-cache, \
no-store, \
must-revalidate \
"""
Access-Control-Allow-Origin = "*"
Content-Security-Policy = """\
default-src 'none'; \
script-src 'self'; \
font-src 'self'; \
connect-src 'self'; \
img-src 'self'; \
style-src 'self'; \
base-uri 'self'; \
object-src 'none'; \
form-action 'self'; \
manifest-src 'self'; \
media-src 'self' \
"""

View File

@@ -20,17 +20,39 @@ languageCode = "en-us"
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true
[outputFormats.REDIR]
mediaType = "text/netlify"
baseName = "_redirects"
isPlainText = true
notAlternative = true
[outputFormats]
[outputFormats.netlify]
mediaType = "application/toml"
baseName = "netlify"
isPlainText = true
notAlternative = true
permalinkable = true
root = true
[outputFormats.server]
mediaType = "application/toml"
baseName = "server"
isPlainText = true
notAlternative = true
permalinkable = true
root = true
[outputFormats.XML]
isPlainText = false
mediaType = "application/xml"
isHtml = false
noUgly = true
permalinkable = false
name = "xml"
[outputFormats.REDIR]
mediaType = "text/netlify"
baseName = "_redirects"
isPlainText = true
notAlternative = true
[mediaTypes."text/netlify"]
delimiter = ""
[outputs]
home = ["HTML", "RSS", "REDIR"]
home = ["HTML", "RSS", "REDIR", "netlify", "server"]
[build]
writeStats = true
@@ -67,15 +89,6 @@ home = ["HTML", "RSS", "REDIR"]
[services.googleAnalytics]
ID = "G-T85PPZ36GN"
[outputFormats]
[outputFormats.XML]
isPlainText = false
mediaType = "application/xml"
isHtml = false
noUgly = true
permalinkable = false
name = "xml"
[minify]
[minify.tdewolff.js]
keepVarNames = true
@@ -84,6 +97,12 @@ home = ["HTML", "RSS", "REDIR"]
[minify.tdewolff.html]
keepWhitespace = true
[segments]
[segments.headers]
[[segments.headers.includes]]
kind = '{home}'
output = '{netlify,server}'
[module]
# Build and serve using local hinode clone declared in the named Hugo workspace:
workspace = "hinode.work"
@@ -93,6 +112,8 @@ home = ["HTML", "RSS", "REDIR"]
path = "github.com/gethinode/hinode"
[[module.imports]]
path = "github.com/gethinode/mod-bootstrap"
[[module.imports]]
path = "github.com/gethinode/mod-csp"
[[module.imports]]
path = "github.com/gethinode/mod-flexsearch/v2"
[[module.imports]]

View File

@@ -1,41 +1,29 @@
# toml-docs-start server-config
# Auto-generated file - do not modify
[[headers]]
for = '/**'
[headers.values]
Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options = "nosniff"
X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\
default-src 'self'; \
script-src 'self' cdn-cookieyes.com https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
for = '/**'
[headers.values]
Access-Control-Allow-Origin = '*'
Content-Security-Policy = """
base-uri 'self'; \
connect-src 'self' *.cookieyes.com cdn-cookieyes.com \
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' https://player.cloudinary.com https://player.vimeo.com https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' data: cdn-cookieyes.com https://*.imgix.net https://*.imagekit.io https://*.cloudinary.com https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
connect-src 'self' *.google-analytics.com *.analytics.google.com *.googletagmanager.com; \
default-src 'none'; \
font-src 'self' fonts.gstatic.com; \
form-action 'self'; \
frame-src player.cloudinary.com player.vimeo.com www.youtube-nocookie.com www.youtube.com; \
img-src 'self' *.google-analytics.com *.googletagmanager.com data: *.imgix.net *.imagekit.io *.cloudinary.com i.vimeocdn.com i.ytimg.com tile.openstreetmap.org; \
manifest-src 'self'; \
media-src 'self' \
media-src 'self'; \
object-src 'none'; \
script-src 'self' *.google-analytics.com *.googletagmanager.com; \
style-src 'self' www.youtube.com; \
"""
X-Frame-Options = "SAMEORIGIN"
Referrer-Policy = "strict-origin"
Permissions-Policy = """\
geolocation=(), \
midi=(), \
sync-xhr=(), \
microphone=(), \
camera=(), \
magnetometer=(), \
gyroscope=(), \
payment=() \
"""
cache-control = """\
max-age=0, \
no-cache, \
no-store, \
must-revalidate \
"""
Access-Control-Allow-Origin = "*"
# toml-docs-end server-config
Permissions-Policy = 'geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(), payment=() '
Referrer-Policy = 'strict-origin'
Strict-Transport-Security = 'max-age=31536000; includeSubDomains; preload'
X-Content-Type-Options = 'nosniff'
X-Frame-Options = 'SAMEORIGIN'
X-XSS-Protection = '1; mode=block'
cache-control = 'max-age=0, no-cache, no-store, must-revalidate '

View File

@@ -144,7 +144,6 @@
"chroma",
"cky-audit-table-element",
"cky-banner-element",
"cky-cookie-audit-table",
"col",
"col-10",
"col-12",
@@ -422,7 +421,6 @@
"tab-pane",
"table",
"table-responsive",
"table-striped",
"tag-link",
"text-bg-body",
"text-bg-body-tertiary",

5
go.mod
View File

@@ -5,11 +5,12 @@ go 1.19
require (
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
github.com/gethinode/mod-bootstrap v1.3.1 // indirect
github.com/gethinode/mod-csp v1.0.2 // indirect
github.com/gethinode/mod-flexsearch/v2 v2.0.1 // indirect
github.com/gethinode/mod-fontawesome v1.10.0 // indirect
github.com/gethinode/mod-google-analytics v1.0.3 // indirect
github.com/gethinode/mod-google-analytics v1.1.2 // indirect
github.com/gethinode/mod-katex v1.1.2 // indirect
github.com/gethinode/mod-leaflet v1.1.1 // indirect
github.com/gethinode/mod-leaflet v1.2.0 // indirect
github.com/gethinode/mod-lottie v1.5.10 // indirect
github.com/gethinode/mod-simple-datatables v1.0.13 // indirect
github.com/gethinode/mod-utils/v2 v2.8.1 // indirect

12
go.sum
View File

@@ -24,6 +24,12 @@ github.com/gethinode/mod-bootstrap v1.3.0 h1:UxNmXgXo7gA8C8z1ar47+tSccmKYpaYBBN+
github.com/gethinode/mod-bootstrap v1.3.0/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
github.com/gethinode/mod-bootstrap v1.3.1 h1:ZUX72St0WZ5tyXpEPBJlayX/dmCH3cGErzsozkUKCok=
github.com/gethinode/mod-bootstrap v1.3.1/go.mod h1:CL9IDot6nbXIWJYE/KxfsTdYYEJIGL17BXbAYPn+wVQ=
github.com/gethinode/mod-csp v1.0.0 h1:Obp0MVMBjIPZbKDh6Ejl5pImDG7yERMLf2or9UVnwPA=
github.com/gethinode/mod-csp v1.0.0/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
github.com/gethinode/mod-csp v1.0.1 h1:IUUwPc41UNw7DAFuJ75nNPzhkPExenxXU7susdLaxdQ=
github.com/gethinode/mod-csp v1.0.1/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
github.com/gethinode/mod-csp v1.0.2 h1:KX8EeoCGbHhGSo5r0YIa9BmPZ6S6v7L9CChTejREkK4=
github.com/gethinode/mod-csp v1.0.2/go.mod h1:Nb22QMicoUHgZQUKP5TCgVrSI8K3KU7jLuLBShmotjg=
github.com/gethinode/mod-flexsearch v1.0.1 h1:FJkRsUzSnQTXl3MWCigT4E6vfff870UWTnkGqaDGIhA=
github.com/gethinode/mod-flexsearch v1.0.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.1.0 h1:7BCMyQDlYlskNXuazt8Jg/jg9WREexu2xVkYqThkAX4=
@@ -126,6 +132,10 @@ github.com/gethinode/mod-google-analytics v1.0.2 h1:ljrAYdAPqiQg6rdnL6Je8zLK6mhl
github.com/gethinode/mod-google-analytics v1.0.2/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.0.3 h1:QUm4AeBR6D9cLx26F6Cy5qQvQe/19c2wTJAqxmCfAq4=
github.com/gethinode/mod-google-analytics v1.0.3/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.1.1 h1:XzMXd6nBDl5Lj1Q5pd8MWtE87FI/vRCsUAkAvfuXDxE=
github.com/gethinode/mod-google-analytics v1.1.1/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-google-analytics v1.1.2 h1:mcoqaRRorut+PxYxJnOEMfKIlVIIOd6vxKhuEYTwFzw=
github.com/gethinode/mod-google-analytics v1.1.2/go.mod h1:dl628cFozpCvoIMCiV7ujzQipjxcm3eatXrSfLPWNII=
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=
@@ -170,6 +180,8 @@ github.com/gethinode/mod-leaflet v1.1.0 h1:FXzPCic5XmUluxQ6e7LYUhhLnxuQOBwry8qjG
github.com/gethinode/mod-leaflet v1.1.0/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
github.com/gethinode/mod-leaflet v1.1.1 h1:AIHR4k8SjmeoZxtjLgSS6/N3jKeZNZGdZTgu/7MwP4c=
github.com/gethinode/mod-leaflet v1.1.1/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
github.com/gethinode/mod-leaflet v1.2.0 h1:5q5LHmGNi9N4cdRDCsl/6oI8vY3oQ2ogNUjP3NCnk4Y=
github.com/gethinode/mod-leaflet v1.2.0/go.mod h1:Ei0x9WiL7Dbi4JeG6yI1CE63bT1QJ8sKi67Jea1wFSE=
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=

View File

@@ -1,88 +1,61 @@
# toml-docs-start netlify
# Auto-generated file - do not modify
[build]
publish = "exampleSite/public"
command = "npm run build:example"
command = 'npm run build:example'
publish = 'exampleSite/public'
[build.environment]
DART_SASS_VERSION = "1.78.0"
HUGO_VERSION = "0.134.1"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
NODE_VERSION = "20.17.0"
NPM_VERSION = "10.8.2"
# toml-docs-end netlify
[build.environment]
DART_SASS_VERSION = '1.78.0'
HUGO_ENABLEGITINFO = 'true'
HUGO_ENV = 'production'
HUGO_VERSION = '0.134.1'
NODE_VERSION = '20.17.0'
NPM_VERSION = '10.8.2'
[[headers]]
for = "/*"
[headers.values]
Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options = "nosniff"
X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\
default-src 'self'; \
child-src 'self' app.netlify.com; \
script-src 'self' cdn-cookieyes.com \
https://*.netlify.app app.netlify.com netlify-cdp-loader.netlify.app \
https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' 'unsafe-inline' \
https://*.netlify.app https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
base-uri 'self'; \
connect-src 'self' *.cookieyes.com cdn-cookieyes.com \
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://*.netlify.app https://fonts.gstatic.com; \
frame-src 'self' https://player.cloudinary.com https://player.vimeo.com https://www.youtube-nocookie.com https://www.youtube.com \
app.netlify.com; \
img-src 'self' data: cdn-cookieyes.com https://*.imgix.net https://*.imagekit.io https://*.cloudinary.com https://*.netlify.app https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
manifest-src 'self'; \
media-src 'self' \
"""
X-Frame-Options = "SAMEORIGIN"
Referrer-Policy = "strict-origin"
Permissions-Policy = """\
geolocation=(), \
midi=(), \
sync-xhr=(), \
microphone=(), \
camera=(), \
magnetometer=(), \
gyroscope=(), \
payment=() \
"""
cache-control = """\
max-age=0, \
no-cache, \
no-store, \
must-revalidate \
"""
Access-Control-Allow-Origin = "*"
[context]
[context.branch-deploy]
command = 'npm run build:example -- -b $DEPLOY_PRIME_URL'
[context.deploy-preview]
command = "npm run build:example -- -b $DEPLOY_PRIME_URL"
[context.branch-deploy]
command = "npm run build:example -- -b $DEPLOY_PRIME_URL"
[context.deploy-preview]
command = 'npm run build:example -- -b $DEPLOY_PRIME_URL'
[dev]
framework = "#custom"
command = "npm run start:example"
targetPort = 1313
port = 8888
publish = "public"
autoLaunch = false
# toml-docs-start plugins
[[plugins]]
package = "@gethinode/netlify-plugin-dartsass"
autoLaunch = false
command = 'npm run start:example'
framework = '#custom'
port = 8888
publish = 'public'
targetPort = 1313
[[plugins]]
package = "netlify-plugin-hugo-cache-resources"
[plugins.inputs]
# Redirected in exampleSite/config/_default/hugo.toml
# srcdir = ""
package = '@gethinode/netlify-plugin-dartsass'
[[plugins]]
package = 'netlify-plugin-hugo-cache-resources'
[[headers]]
for = '/**'
[headers.values]
Access-Control-Allow-Origin = '*'
Content-Security-Policy = """
base-uri 'self'; \
connect-src 'self' *.google-analytics.com *.analytics.google.com *.googletagmanager.com; \
default-src 'none'; \
font-src 'self' fonts.gstatic.com; \
form-action 'self'; \
frame-src player.cloudinary.com player.vimeo.com www.youtube-nocookie.com www.youtube.com; \
img-src 'self' *.google-analytics.com *.googletagmanager.com data: *.imgix.net *.imagekit.io *.cloudinary.com i.vimeocdn.com i.ytimg.com tile.openstreetmap.org; \
manifest-src 'self'; \
media-src 'self'; \
object-src 'none'; \
script-src 'self' *.google-analytics.com *.googletagmanager.com; \
style-src 'self' www.youtube.com; \
"""
Permissions-Policy = 'geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(), payment=() '
Referrer-Policy = 'strict-origin'
Strict-Transport-Security = 'max-age=31536000; includeSubDomains; preload'
X-Content-Type-Options = 'nosniff'
X-Frame-Options = 'SAMEORIGIN'
X-XSS-Protection = '1; mode=block'
cache-control = 'max-age=0, no-cache, no-store, must-revalidate '
# [[plugins]]
# package = "@netlify/plugin-lighthouse"
# [plugins.inputs]
# output_path = "reports/lighthouse.html"
# toml-docs-end plugins

286
package-lock.json generated
View File

@@ -1,23 +1,24 @@
{
"name": "@gethinode/hinode",
"version": "0.27.0-beta2",
"version": "0.27.0-beta3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@gethinode/hinode",
"version": "0.27.0-beta2",
"version": "0.27.0-beta3",
"license": "MIT",
"dependencies": {
"@fullhuman/postcss-purgecss": "^6.0.0",
"autoprefixer": "^10.4.20",
"cssnano": "^7.0.6",
"cssnano-preset-advanced": "^7.0.6",
"hugo-bin": "0.131.3",
"hugo-bin": "0.132.0",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"cpy-cli": "^5.0.0",
"eslint": "^9.11.1",
"markdownlint-cli2": "^0.14.0",
"neostandard": "^0.11.6",
@@ -1089,6 +1090,23 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/aggregate-error": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz",
"integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==",
"dev": true,
"license": "MIT",
"dependencies": {
"clean-stack": "^4.0.0",
"indent-string": "^5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -1295,6 +1313,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/arrify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
"integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@@ -1656,6 +1687,35 @@
"node": ">= 6"
}
},
"node_modules/clean-stack": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz",
"integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==",
"dev": true,
"license": "MIT",
"dependencies": {
"escape-string-regexp": "5.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/clean-stack/node_modules/escape-string-regexp": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -1760,6 +1820,100 @@
}
}
},
"node_modules/cp-file": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/cp-file/-/cp-file-10.0.0.tgz",
"integrity": "sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.10",
"nested-error-stacks": "^2.1.1",
"p-event": "^5.0.1"
},
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/cpy/-/cpy-10.1.0.tgz",
"integrity": "sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"arrify": "^3.0.0",
"cp-file": "^10.0.0",
"globby": "^13.1.4",
"junk": "^4.0.1",
"micromatch": "^4.0.5",
"nested-error-stacks": "^2.1.1",
"p-filter": "^3.0.0",
"p-map": "^6.0.0"
},
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy-cli": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-5.0.0.tgz",
"integrity": "sha512-fb+DZYbL9KHc0BC4NYqGRrDIJZPXUmjjtqdw4XRRg8iV8dIfghUX/WiL+q4/B/KFTy3sK6jsbUhBaz0/Hxg7IQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"cpy": "^10.1.0",
"meow": "^12.0.1"
},
"bin": {
"cpy": "cli.js"
},
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy-cli/node_modules/meow": {
"version": "12.1.1",
"resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz",
"integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=16.10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cpy/node_modules/globby": {
"version": "13.2.2",
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
"integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
"dev": true,
"license": "MIT",
"dependencies": {
"dir-glob": "^3.0.1",
"fast-glob": "^3.3.0",
"ignore": "^5.2.4",
"merge2": "^1.4.1",
"slash": "^4.0.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3681,9 +3835,9 @@
}
},
"node_modules/hugo-bin": {
"version": "0.131.3",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.131.3.tgz",
"integrity": "sha512-8+NVbq5ttvhUO2BHS+/qHKypXLxzAZ0ctLL/rkBU7DR+W1uTdSOZaxDZoFi67w5RquZCKoBTvHfJVtQgAOk/wQ==",
"version": "0.132.0",
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.132.0.tgz",
"integrity": "sha512-P8Bjl2ussOFzDJVppZfjxuyRegklKnlz2ILeFUszwkq9aDab8il0IJgr6pNxI0bbPIbLcoV64FmStyB1vXsynQ==",
"funding": [
{
"type": "github",
@@ -3763,6 +3917,19 @@
"node": ">=0.8.19"
}
},
"node_modules/indent-string": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
"integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4345,6 +4512,19 @@
"node": ">=4.0"
}
},
"node_modules/junk": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz",
"integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12.20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -4765,6 +4945,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/nested-error-stacks": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz",
"integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==",
"dev": true,
"license": "MIT"
},
"node_modules/netlify-plugin-hugo-cache-resources": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/netlify-plugin-hugo-cache-resources/-/netlify-plugin-hugo-cache-resources-0.2.1.tgz",
@@ -5164,6 +5351,54 @@
"node": ">=12.20"
}
},
"node_modules/p-event": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz",
"integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-timeout": "^5.0.2"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-filter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz",
"integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-map": "^5.1.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-filter/node_modules/p-map": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz",
"integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==",
"dev": true,
"license": "MIT",
"dependencies": {
"aggregate-error": "^4.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -5194,6 +5429,32 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-map": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz",
"integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-timeout": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz",
"integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -6833,6 +7094,19 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/slash": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/slice-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.27.0-beta2",
"version": "0.27.0-beta3",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -20,7 +20,7 @@
"prestart": "npm run -s mod:vendor",
"start": "hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings",
"start:example": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings -s exampleSite",
"start:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings --minify -e production",
"start:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings --minify -e production",
"start:example:prod": "npm run -s prestart && hugo server --bind=0.0.0.0 --disableFastRender --printI18nWarnings --minify -e production -s exampleSite",
"prebuild": "npm run clean:public && npm run -s mod:vendor",
"build": "hugo --gc --minify",
@@ -28,6 +28,8 @@
"build:example": "npm run -s prebuild && hugo --gc --minify -s exampleSite",
"build:example:ci": "npm run -s prebuild && hugo --gc --minify -s exampleSite -e ci",
"build:debug": "hugo -e debug --debug",
"build:headers": "hugo --renderSegments headers -d prebuild && cpy prebuild/server.toml config/_default/ --flat",
"build:example:headers": "hugo -s exampleSite --renderSegments headers -d prebuild && cpy exampleSite/prebuild/netlify.toml ./ --flat && cpy exampleSite/prebuild/server.toml exampleSite/config/_default/ --flat",
"build:preview": "npm run build -D -F",
"clean:public": "rimraf public exampleSite/public",
"clean:install": "rimraf package-lock.json node_modules",
@@ -71,11 +73,12 @@
"autoprefixer": "^10.4.20",
"cssnano": "^7.0.6",
"cssnano-preset-advanced": "^7.0.6",
"hugo-bin": "0.131.3",
"hugo-bin": "0.132.0",
"purgecss-whitelister": "^2.4.0"
},
"devDependencies": {
"@gethinode/netlify-plugin-dartsass": "^0.3.0",
"cpy-cli": "^5.0.0",
"eslint": "^9.11.1",
"markdownlint-cli2": "^0.14.0",
"neostandard": "^0.11.6",