about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2023-09-09 19:21:12 +0200
committerAlan Pearce2023-09-09 19:21:12 +0200
commita961bc284bb130e44468c07aaaa028652c151e08 (patch)
treed6f8a479ef106f7c93a82f970cc34456effece61
parentfe37fcf3daa0eaafc1236050ac95b5d4ba21bcd2 (diff)
downloadwebsite-a961bc284bb130e44468c07aaaa028652c151e08.tar.lz
website-a961bc284bb130e44468c07aaaa028652c151e08.tar.zst
website-a961bc284bb130e44468c07aaaa028652c151e08.zip
Squashed 'themes/bear/' changes from fe37fcf..d10630d
d10630d Hash inline style in CSP
f51202d Allow end-user to disable CSP header meta tags without editing theme
093ac10 Add form-action and base-uri CSPs
4c9ac0a Update base_url
eed984f Merge dark/light screenshots into one
099acbd Add "deploy to netlify" button
0800ba2 Update demo URL
9a344d8 Add meta description
241f290 Remove ignored CSP content
53d198f Move demo site to netlify
3423985 Add netlify status badge to readme
edfec31 Configure headers for netlify
a1bcb91 Add netlify.toml
d69e95a Add content-security-policy header-equivalent meta tag
1706ade Linkify demo URL
141c10c Merge pull request 'Update 'theme.toml'' (#1) from jakeg/zola-bearblog:main into main
6b275f6 Update 'theme.toml'
REVERT: fe37fcf Merge branch 'main' into microformats2
REVERT: 40881d1 Merge branch 'main' into microformats2
REVERT: 2ca8f6c Merge branch 'main' into microformats2
REVERT: dad7895 Merge branch 'main' into microformats2
REVERT: cdd1069 Move header/footer/main elements into child templates

git-subtree-dir: themes/bear
git-subtree-split: d10630da50a2b0e005ef0499190cc5cc898f0b06
-rw-r--r--README.md21
-rw-r--r--config.toml5
-rw-r--r--netlify.toml25
-rw-r--r--screenshot-dark.pngbin319272 -> 0 bytes
-rw-r--r--screenshot.pngbin317002 -> 262700 bytes
-rw-r--r--templates/base.html7
-rw-r--r--templates/security_tags.html2
-rw-r--r--templates/seo_tags.html1
-rw-r--r--templates/style.css.html (renamed from templates/style.html)3
-rw-r--r--theme.toml5
10 files changed, 52 insertions, 17 deletions
diff --git a/README.md b/README.md
index 5396a5b..db77233 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,18 @@
 # Zola ʕ•ᴥ•ʔ Bear Blog
 
+[![Netlify Status](https://api.netlify.com/api/v1/badges/121b53ce-c913-4604-9179-eb3cca31cd2c/deploy-status)](https://app.netlify.com/sites/zola-bearblog/deploys)
+
 🧸 A [Zola](https://www.getzola.org/)-theme based on [Bear Blog](https://bearblog.dev).
 
 > Free, no-nonsense, super-fast blogging.
 
 ## Demo
 
-For a current & working demo of this theme, please check out https://alanpearce.codeberg.page/zola-bearblog/ 🎯.
-
-## Screenshots
+For a current & working demo of this theme, please check out <https://zola-bearblog.netlify.app/> 🎯.
 
-⬜️ [Light][light-screenshot]
-![light mode screenshot][light-screenshot]
+## Screenshot
 
-⬛️ [Dark][dark-screenshot]
-![dark mode screenshot][dark-screenshot]
+![Screenshot][screenshot]
 
 When the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out the [`style.html`](https://codeberg.org/alanpearce/zola-bearblog/src/branch/main/templates/style.html)-file for the implementation.
 
@@ -30,6 +28,12 @@ Then, adjust the `config.toml` as detailed below.
 
 For more information, read the official [setup guide][zola-setup-guide] of Zola.
 
+Alternatively, you can quickly deploy a copy of the theme site to Netlify using this button:
+
+[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://gitlab.com/alanpearce/zola-bearblog)
+
+(Note that this method makes it harder to keep up-to-date with theme updates, which might be necessary for newer versions of Zola.)
+
 ## Adjust configuration / config.toml
 
 Please check out the included [config.toml](https://codeberg.org/alanpearce/zola-bearblog/src/branch/main/config.toml)
@@ -76,5 +80,4 @@ A special thank you goes out to [Herman](https://herman.bearblog.dev), for creat
 [MIT License](http://en.wikipedia.org/wiki/MIT_License) © [Alan Pearce](https://www.alanpearce.eu/)
 
 [zola-setup-guide]: https://www.getzola.org/documentation/getting-started/installation/
-[light-screenshot]: https://codeberg.org/alanpearce/zola-bearblog/raw/branch/main/screenshot.png
-[dark-screenshot]: https://codeberg.org/alanpearce/zola-bearblog/raw/branch/main/screenshot-dark.png
+[screenshot]: https://codeberg.org/alanpearce/zola-bearblog/raw/branch/main/screenshot.png
diff --git a/config.toml b/config.toml
index ca8d27a..78e9f9a 100644
--- a/config.toml
+++ b/config.toml
@@ -1,6 +1,6 @@
 title = "Zola ʕ•ᴥ•ʔ Bear Blog"
-base_url = "https://alanpearce.codeberg.page/zola-bearblog"
-description = ""
+base_url = "https://zola-bearblog.netlify.app/"
+description = "A Zola-theme based on Bear Blog."
 
 # Whether to automatically compile all Sass files in the sass directory
 compile_sass = false
@@ -20,6 +20,7 @@ highlight_code = true
 
 [extra]
 date_format="%d %b, %Y"
+webserver_sends_csp_headers=true
 
 [[extra.main_menu]]
 name = "Bear"
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 0000000..6be8468
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,25 @@
+[build]
+publish = "public"
+command = "zola build"
+
+[build.environment]
+# Set the version name that you want to use and Netlify will automatically use it.
+ZOLA_VERSION = "0.17.2"
+
+# The magic for deploying previews of branches.
+# We need to override the base url with whatever url Netlify assigns to our
+# preview site.  We do this using the Netlify environment variable
+# `$DEPLOY_PRIME_URL`.
+
+[context.deploy-preview]
+command = "zola build --base-url $DEPLOY_PRIME_URL"
+
+[[headers]]
+  for = "/*"
+  [headers.values]
+    X-Frame-Options = "DENY"
+    X-Content-Type-Options = "nosniff"
+    X-XSS-Protection = "1; mode=block"
+    Referrer-Policy = "strict-origin-when-cross-origin"
+    Strict-Transport-Security = "max-age=63072000; includeSubdomains"
+    Content-Security-Policy = "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'sha256-2Sbht7dvdhJX00j84akXy9AejYUf6sOM3OpwMxNiDXQ='; form-action 'none'; base-uri 'self'; frame-ancestors 'none'"
diff --git a/screenshot-dark.png b/screenshot-dark.png
deleted file mode 100644
index 266f883..0000000
--- a/screenshot-dark.png
+++ /dev/null
Binary files differdiff --git a/screenshot.png b/screenshot.png
index 4013a5c..273266a 100644
--- a/screenshot.png
+++ b/screenshot.png
Binary files differdiff --git a/templates/base.html b/templates/base.html
index 4ba8442..ee206b3 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -1,6 +1,9 @@
 <!DOCTYPE html>
 <html lang="{{ lang | default(value="en-US" ) }}">
 <head>
+  {%- if config.webserver_sends_csp_headers %}
+  {%- include "security_tags.html" ignore missing %}
+  {%- endif %}
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   {% include "favicon.html" ignore missing -%}
@@ -12,7 +15,9 @@
   <link rel="alternate" type={% if config.feed_filename == "atom.xml" %}"application/atom+xml"{% else %}"application/rss+xml"{% endif %} title="{{ config.title }}" href="{{ get_url(path=config.feed_filename) | safe }}">
   {%- endblock -%}
   {%- endif %}
-  {% include "style.html" ignore missing -%}
+  <style>
+  {%- include "style.css.html" ignore missing -%}
+  </style>
   {% include "custom_head.html" ignore missing -%}
 </head>
 <body>
diff --git a/templates/security_tags.html b/templates/security_tags.html
new file mode 100644
index 0000000..0f922ea
--- /dev/null
+++ b/templates/security_tags.html
@@ -0,0 +1,2 @@
+<!-- These tags are here for demostration. It's recommended to send them via HTTP headers instead. -->
+<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src 'self'; object-src 'none'; script-src 'none'; style-src 'unsafe-inline'">
diff --git a/templates/seo_tags.html b/templates/seo_tags.html
index 797569a..4eb2bc8 100644
--- a/templates/seo_tags.html
+++ b/templates/seo_tags.html
@@ -1 +1,2 @@
 <meta name="title" content="{% if page.title %}{{ page.title }}{% else %}{{ config.title }}{% endif %}">
+<meta name="description" content="{{ config.description }}" />
diff --git a/templates/style.html b/templates/style.css.html
index 4744695..00b4131 100644
--- a/templates/style.html
+++ b/templates/style.css.html
@@ -1,4 +1,3 @@
-<style>
   body {
     font-family: Verdana, sans-serif;
     margin: auto;
@@ -168,5 +167,3 @@
       color: #aaa;
     }
   }
-
-</style>
diff --git a/theme.toml b/theme.toml
index ed137c8..902c8ec 100644
--- a/theme.toml
+++ b/theme.toml
@@ -1,11 +1,11 @@
 name = "Bear"
 description = "Bear blog theme"
 license = "MIT"
-homepage = "https://codeberg.org/alanpearce/zola/bearblog"
+homepage = "https://codeberg.org/alanpearce/zola-bearblog"
 # The minimum version of Zola required
 min_version = "0.4.0"
 # An optional live demo URL
-demo = "https://alanpearce.codeberg.page/zola-bearblog"
+demo = "https://zola-bearblog.netlify.app/"
 
 # Any variable there can be overridden in the end user `config.toml`
 # You don't need to prefix variables by the theme name but as this will
@@ -13,6 +13,7 @@ demo = "https://alanpearce.codeberg.page/zola-bearblog"
 # Use snake_casing to be consistent with the rest of Zola
 [extra]
 date_format="%d %b, %Y"
+webserver_sends_csp_headers=false
 
 [author]
 name = "Alan Pearce"