Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/spech66/bootstrap-bp-hugo-startpage.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pech <windows@spech.de>2019-07-22 12:28:27 +0300
committerSebastian Pech <windows@spech.de>2019-07-22 12:28:27 +0300
commitf88b26b3007323d00394ba7077d9f66ec3f5231f (patch)
treeed22afdf8f4373624e3a607ee731f8faf48d4e65
parent4b0f5a2da422933c49c4f69b2c6903a328211b71 (diff)
initial
-rw-r--r--.gitignore61
-rw-r--r--LICENSE.md21
-rw-r--r--README.md52
-rw-r--r--static/.htaccess150
-rw-r--r--theme.toml15
5 files changed, 298 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ad46b30
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,61 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+
+# next.js build output
+.next
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..32a5eed
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Sebastian Pech
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 597d70c..df699af 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,52 @@
-# bootstrap-bp-hugo-startpage
+# Bootstrap-BP hugo startpage
+
Bootstrap based Hugo startpage theme which provides out of the box best practices.
+This theme is a combination of my [Bootstrap-BP hugo theme](https://github.com/spech66/bootstrap-bp-hugo-theme) and my [startpage](https://github.com/spech66/startpage).
+Instead of rendering the items on-the-fly as in the startpage theme the **Bootstrap-BP hugo startpage** will generate a complete single page site.
+
+## Install the theme
+
+With Git installed, run the following commands inside the Hugo site folder. If Hugo has not yet been installed, read the setup guide [here](https://gohugo.io/overview/installing/).
+
+```sh
+mkdir themes
+cd themes
+git clone https://github.com/spech66/bootstrap-bp-hugo-startpage.git
+```
+
+You can get a zip of the latest version of the theme from the [home page](https://github.com/spech66/bootstrap-bp-hugo-theme) and extract it to the themes folder.
+
+## Theme settings
+
+Most settings should be done with hugo specific variables. There are only a few (optional) additional `[params]`.
+
+* `startPageColumns = true` will show the start page in a Masonry-like mode.
+
+## Google Analytics
+
+This theme uses the internal asynchronous template for Google Analytics tracking. You only have to provide your tracking id in your configuration file:
+
+```yaml
+googleAnalytics = "UA-123-45"
+```
+
+## Schema.org support
+
+Provide one author to enable the Schema.org support.
+
+```yaml
+[Author]
+ name = "Sebastian Pech"
+```
+
+## Images, Open Graph and Twitter Cards
+
+This theme uses Hugos `feature/cover` name method to set the optimized feature image. This will also be in the Twitter Cards and Open Graph block.
+
+```yaml
+# Site Config toml
+title = "My hugo site"
+
+[params]
+ description = "Text about the site"
+```
diff --git a/static/.htaccess b/static/.htaccess
new file mode 100644
index 0000000..132e09e
--- /dev/null
+++ b/static/.htaccess
@@ -0,0 +1,150 @@
+RewriteEngine On
+
+# If you migrate from wordpress this will keep your tags and categories working
+# RewriteRule ^tag/(.*)$ https://www.REPLACEME.xyz/tags/$1/ [R=301,L]
+# RewriteRule ^category/(.*)$ https://www.REPLACEME.xyz/categories/$1/ [R=301,L]
+
+# Migrate old content
+# RewriteRule ^my/old/(.*)$ https://www.REPLACEME.xyz/new/page/ [R=301,L]
+# RewriteRule ^2018/10/old-blog-post/(.*)$ https://www.REPLACEME.xyz/2018/10/new-blog-post/ [R=301,L]
+
+# SSL and www
+# RewriteCond %{HTTPS} !on [OR]
+# RewriteCond %{HTTP_HOST} !^www\.
+# RewriteRule (.*) https://www.REPLACEME.xyz%{REQUEST_URI} [L,R=301]
+
+# Create 404 error page in /layouts
+ErrorDocument 404 /404.html
+
+# Redirect Wordpress RSS feed URL to Hugo RSS feed URL
+# RedirectMatch 301 (?i)^/feed/?(index.xml)?$ https://www.REPLACEME.xyz/index.xml
+
+# HSTS
+Header set Strict-Transport-Security "max-age=31536000"
+# Block site from being framed with X-Frame-Options and CSP
+#Header set Content-Security-Policy "frame-ancestors 'self';"
+Header append X-Frame-Options: DENY
+# Prevent browsers from incorrectly detecting non-scripts as scripts
+Header append X-Content-Type-Options: nosniff
+# Content Security Policy
+# Don't implement the above policy yet; instead just report violations that would have occured
+#Header set Content-Security-Policy-Report-Only: "default-src https: 'unsafe-eval' 'unsafe-inline' data:; img-src * data:; object-src 'none'; frame-src 'self' *.google.de google.de *.google.com google.com; font-src * https: data:; frame-ancestors 'self';"
+Header set Content-Security-Policy: "default-src https: 'unsafe-eval' 'unsafe-inline' data:; img-src * data:; object-src 'none'; frame-src 'self' *.google.de google.de *.google.com google.com; font-src * data:; frame-ancestors 'self';"
+
+# Active GZIP compression
+<IfModule mod_deflate.c>
+SetOutputFilter DEFLATE
+</IfModule>
+
+<IfModule mod_headers.c>
+ Header append Cache-Control "public"
+ Header append Vary Accept-Encoding
+ Header set Connection keep-alive
+ Header unset ETag
+ FileETag None
+
+ # Because `mod_headers` cannot match based on the content-type,
+ # the following workaround needs to be used.
+ <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ic[os]|jpe?g|m?js|json(ld)?|m4[av]|manifest|map|markdown|md|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
+ Header unset Content-Security-Policy
+ Header unset X-Content-Security-Policy
+ Header unset X-Frame-Options
+ Header unset X-UA-Compatible
+ Header unset X-WebKit-CSP
+ Header unset X-XSS-Protection
+ Header unset X-Content-Type-Options
+ </FilesMatch>
+</IfModule>
+
+# Browser Caching
+<IfModule mod_expires.c>
+
+ ExpiresActive on
+ ExpiresDefault "access plus 1 month"
+
+ # DATA
+ ExpiresByType text/xml "access plus 0 seconds"
+ ExpiresByType text/html "access plus 0 seconds"
+ ExpiresByType text/plain "access plus 0 seconds"
+ ExpiresByType application/xml "access plus 0 seconds"
+ ExpiresByType application/json "access plus 0 seconds"
+ ExpiresByType application/rss+xml "access plus 1 hour"
+ ExpiresByType application/atom+xml "access plus 1 hour"
+ ExpiresByType text/x-component "access plus 1 hour"
+
+ # MANIFEST
+ ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
+ ExpiresByType text/cache-manifest "access plus 0 seconds"
+
+ # SCRIPTS
+ ExpiresByType text/css "access plus 1 month"
+ ExpiresByType text/javascript "access plus 1 month"
+ ExpiresByType application/javascript "access plus 1 month"
+ ExpiresByType application/x-javascript "access plus 1 month"
+
+ # IMAGES
+ ExpiresByType image/gif "access plus 1 year"
+ ExpiresByType image/png "access plus 1 year"
+ ExpiresByType image/jpe "access plus 1 year"
+ ExpiresByType image/jpg "access plus 1 year"
+ ExpiresByType image/jpeg "access plus 1 year"
+ ExpiresByType image/jp2 "access plus 1 year"
+ ExpiresByType image/pipeg "access plus 1 year"
+ ExpiresByType image/bmp "access plus 1 year"
+ ExpiresByType image/tiff "access plus 1 year"
+ ExpiresByType image/svg+xml "access plus 1 year"
+ ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
+
+ # ICONS
+ ExpiresByType image/ico "access plus 1 year"
+ ExpiresByType image/icon "access plus 1 year"
+ ExpiresByType text/ico "access plus 1 year"
+ ExpiresByType image/x-ico "access plus 1 year"
+ ExpiresByType image/x-icon "access plus 1 year"
+ ExpiresByType application/ico "access plus 1 year"
+
+ # AUDIO
+ ExpiresByType audio/ogg "access plus 1 year"
+ ExpiresByType audio/basic "access plus 1 year"
+ ExpiresByType audio/mid "access plus 1 year"
+ ExpiresByType audio/midi "access plus 1 year"
+ ExpiresByType audio/mpeg "access plus 1 year"
+ ExpiresByType audio/x-aiff "access plus 1 year"
+ ExpiresByType audio/x-mpegurl "access plus 1 year"
+ ExpiresByType audio/x-pn-realaudio "access plus 1 year"
+ ExpiresByType audio/x-wav "access plus 1 year"
+
+ # VIDEO
+ ExpiresByType video/ogg "access plus 1 year"
+ ExpiresByType video/mp4 "access plus 1 year"
+ ExpiresByType video/webm "access plus 1 year"
+ ExpiresByType video/x-msvideo "access plus 1 year"
+ ExpiresByType video/mpeg "access plus 1 year"
+ ExpiresByType video/quicktime "access plus 1 year"
+ ExpiresByType video/x-la-asf "access plus 1 year"
+ ExpiresByType video/x-ms-asf "access plus 1 year"
+ ExpiresByType x-world/x-vrml "access plus 1 year"
+
+ # FONTS
+ ExpiresByType font/truetype "access plus 1 year"
+ ExpiresByType font/opentype "access plus 1 year"
+ ExpiresByType application/x-font-ttf "access plus 1 year"
+ ExpiresByType application/x-font-woff "access plus 1 year"
+ ExpiresByType application/font-woff "access plus 1 year"
+ ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
+
+ # FLASH
+ ExpiresByType application/x-shockwave-flash "access plus 1 year"
+ ExpiresByType video/x-flv "access plus 1 year"
+
+ # OTHERS
+ ExpiresByType application/pdf "access plus 1 year"
+ ExpiresByType image/vnd.wap.wbmp "access plus 1 year"
+ ExpiresByType application/vnd.wap.wbxml "access plus 1 year"
+ ExpiresByType application/smil "access plus 1 year"
+
+ <IfModule mod_headers.c>
+ Header append Cache-Control "public"
+ </IfModule>
+
+</IfModule>
diff --git a/theme.toml b/theme.toml
new file mode 100644
index 0000000..f677449
--- /dev/null
+++ b/theme.toml
@@ -0,0 +1,15 @@
+# theme.toml template for a Hugo theme
+# See https://github.com/gohugoio/hugoThemes#themetoml for an example
+
+name = "Bootstrap-BP-Startpage"
+license = "MIT"
+licenselink = "https://github.com/spech66/bootstrap-bp-hugo-startpage/blob/master/LICENSE"
+description = "Bootstrap based Hugo startpage theme which provides out of the box best practices."
+homepage = "https://github.com/spech66/bootstrap-bp-hugo-startpage/"
+tags = ["minimalist", "single-page", "clean", "simple", "bootstrap", "responsive", "google analytics", "one-page", "light", "fast"]
+features = ["responsive", "google analytics", "bootstrap v4.1.x", "open graph", "twitter cards"]
+min_version = "0.48"
+
+[author]
+ name = "Sebastian Pech"
+ homepage = "https://www.spech.de/"