fini
29
README.md
@ -0,0 +1,29 @@
|
||||
Comment lancer mon site ?
|
||||
|
||||
UTILISATION
|
||||
CREATION DU SITE 📃
|
||||
Vérifier l'installation:
|
||||
hugo version
|
||||
Créer la structure du site:
|
||||
hugo new site mon-site
|
||||
Créer du contenu:
|
||||
cd mon-site
|
||||
hugo new posts/mon-post.md
|
||||
nano posts/mon-post.md
|
||||
Ajouter des medias:
|
||||
|
||||
images:
|
||||
## Image via link:
|
||||

|
||||
|
||||
------
|
||||
|
||||
## Image via url locale (/static):
|
||||

|
||||
videos:
|
||||
## Vidéo Youtube (le code 'ZSWzPI4BqvA' correspond à l'id de la vidéo):
|
||||
{{< youtube ZSWzPI4BqvA >}}
|
||||
AJOUT D'UN THEME 🎨
|
||||
git init
|
||||
git submodule add https://github.com/halogenica/papermod.git themes/papermod
|
||||
echo theme = \"papermod\" >> hugo.toml
|
||||
@ -1,36 +0,0 @@
|
||||
# Use an official node image as a parent image
|
||||
FROM node:20
|
||||
|
||||
# Set environment variables for versions
|
||||
ARG HUGO_VERSION=0.126.1
|
||||
ARG GO_VERSION=1.22.3
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install -y ca-certificates openssl git curl && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Determine architecture
|
||||
RUN ARCH=$(uname -m) && \
|
||||
if [ "$ARCH" = "aarch64" ]; then ARCH=arm64; else ARCH=amd64; fi && \
|
||||
echo "Architecture: $ARCH"
|
||||
|
||||
# Download and install Hugo
|
||||
RUN ARCH=$(uname -m) && \
|
||||
if [ "$ARCH" = "aarch64" ]; then ARCH=arm64; else ARCH=amd64; fi && \
|
||||
wget -O hugo_extended_${HUGO_VERSION}.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-${ARCH}.tar.gz && \
|
||||
tar xf hugo_extended_${HUGO_VERSION}.tar.gz && \
|
||||
mv hugo /usr/bin/hugo && \
|
||||
rm hugo_extended_${HUGO_VERSION}.tar.gz && \
|
||||
echo "Hugo installed"
|
||||
|
||||
# Download and install Go
|
||||
RUN ARCH=$(uname -m) && \
|
||||
if [ "$ARCH" = "aarch64" ]; then ARCH=arm64; else ARCH=amd64; fi && \
|
||||
wget -O go${GO_VERSION}.linux-${ARCH}.tar.gz https://dl.google.com/go/go${GO_VERSION}.linux-${ARCH}.tar.gz && \
|
||||
tar -C /usr/local -xzf go${GO_VERSION}.linux-${ARCH}.tar.gz && \
|
||||
rm go${GO_VERSION}.linux-${ARCH}.tar.gz && \
|
||||
echo "Go installed"
|
||||
|
||||
# Export Go path
|
||||
ENV PATH=$PATH:/usr/local/go/bin
|
||||
@ -1,23 +0,0 @@
|
||||
{
|
||||
"name": "Hugo",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": {
|
||||
"GO_VERSION": "1.22.3",
|
||||
"HUGO_VERSION": "0.126.1"
|
||||
}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"settings": {},
|
||||
"extensions": [
|
||||
"bradlc.vscode-tailwindcss",
|
||||
"budparr.language-hugo-vscode",
|
||||
"tamasfe.even-better-toml"
|
||||
]
|
||||
}
|
||||
},
|
||||
"remoteUser": "node",
|
||||
"postCreateCommand": "npm install && npm run dev:example",
|
||||
"forwardPorts": [1313]
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
; https://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
@ -1,79 +0,0 @@
|
||||
name: 🐛 Bug Report
|
||||
description: Report any issues you encounter to make hugoplate even more efficient.
|
||||
|
||||
body:
|
||||
- type: input
|
||||
id: hugo-version
|
||||
attributes:
|
||||
label: What is your Hugo Extended Version
|
||||
description: Check the [README](https://github.com/zeon-studio/hugoplate?tab=readme-ov-file#user-content-️-prerequisites) for the required version. Use "hugo version" in your terminal to see your Hugo version.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: go-version
|
||||
attributes:
|
||||
label: What is your Go Version
|
||||
description: Check the [README](https://github.com/zeon-studio/hugoplate?tab=readme-ov-file#user-content-️-prerequisites) for the required version. Use "go version" in your terminal to see your Go version.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: node-version
|
||||
attributes:
|
||||
label: What is your Node.js Version
|
||||
description: Check the [README](https://github.com/zeon-studio/hugoplate?tab=readme-ov-file#user-content-️-prerequisites) for the required version. Use "node -v" in your terminal to see your Node.js version.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: operating-system
|
||||
attributes:
|
||||
label: What is your Operating System
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: checkboxes
|
||||
id: make-sure
|
||||
attributes:
|
||||
label: Check for Existing Issues
|
||||
description: |
|
||||
Before reporting a problem, please confirm that you've searched thoroughly for any existing reports on the same issue. If no relevant issues are found, proceed with the report.
|
||||
options:
|
||||
- label: I have searched and found no relevant issues.
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: A clear description of what you expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: steps-to-reproduce
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: |
|
||||
Please explain the steps required to duplicate this issue. Include detailed commands and expected outcomes.
|
||||
placeholder: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: reproduction-url
|
||||
attributes:
|
||||
label: Code Reproduction URL
|
||||
description: Please reproduce this issue and provide a link to the repository.
|
||||
placeholder: github.com/yourusername/repo
|
||||
|
||||
- type: textarea
|
||||
id: additional-information
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: |
|
||||
List any other information that is relevant to your issue. You can use Markdown for formatting, including code blocks, links, etc.
|
||||
75
hugoplate-main/.github/workflows/main.yml
vendored
@ -1,75 +0,0 @@
|
||||
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||
name: Deploy Hugo site to Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
branches: ["main"]
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Environment variables available to all jobs and steps in this workflow
|
||||
env:
|
||||
HUGO_ENV: production
|
||||
HUGO_VERSION: "0.139.2"
|
||||
GO_VERSION: "1.23.3"
|
||||
NODE_VERSION: "20.0.0"
|
||||
TINA_CLIENT_ID: ${{ vars.TINA_CLIENT_ID }}
|
||||
TINA_TOKEN: ${{ vars.TINA_TOKEN }}
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Install Hugo
|
||||
run: |
|
||||
curl -LO "https://github.com/gohugoio/hugo/releases/download/v${{ env.HUGO_VERSION }}/hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz"
|
||||
tar -xvf hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz
|
||||
sudo mv hugo /usr/local/bin/
|
||||
rm hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz
|
||||
hugo version
|
||||
|
||||
- name: Install Go
|
||||
run: |
|
||||
curl -LO "https://dl.google.com/go/go${{ env.GO_VERSION }}.linux-amd64.tar.gz"
|
||||
sudo tar -C /usr/local -xzf go${{ env.GO_VERSION }}.linux-amd64.tar.gz
|
||||
echo "export PATH=$PATH:/usr/local/go/bin" >> $GITHUB_ENV
|
||||
rm go${{ env.GO_VERSION }}.linux-amd64.tar.gz
|
||||
go version
|
||||
|
||||
- name: Setup Project
|
||||
run: npm run project-setup
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Publish to GitHub Pages
|
||||
run: npm run build
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: ./public
|
||||
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
||||
17
hugoplate-main/.gitignore
vendored
@ -1,17 +0,0 @@
|
||||
Thumbs.db
|
||||
.DS_Store
|
||||
.dist
|
||||
.tmp
|
||||
.lock
|
||||
.sass-cache
|
||||
npm-debug.log
|
||||
node_modules
|
||||
builds
|
||||
package-lock.json
|
||||
public
|
||||
resources
|
||||
.hugo_build.lock
|
||||
jsconfig.json
|
||||
hugo_stats.json
|
||||
go.sum
|
||||
yarn.lock
|
||||
@ -1,38 +0,0 @@
|
||||
stages:
|
||||
- build
|
||||
|
||||
variables:
|
||||
HUGO_ENV: production
|
||||
HUGO_VERSION: "0.139.2"
|
||||
GO_VERSION: "1.23.3"
|
||||
NODE_VERSION: "18.16.1"
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- node_modules/
|
||||
|
||||
default:
|
||||
image: node:${NODE_VERSION}
|
||||
before_script:
|
||||
- echo "USING NODE ${NODE_VERSION}"
|
||||
- apt-get update && apt-get install -y curl
|
||||
- curl -LO "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz"
|
||||
- tar -xvf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz
|
||||
- mv hugo /usr/local/bin/
|
||||
- rm hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz
|
||||
- echo "HUGO ${HUGO_VERSION} INSTALLED"
|
||||
- curl -LO "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz"
|
||||
- tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
|
||||
- export PATH=$PATH:/usr/local/go/bin
|
||||
- rm go${GO_VERSION}.linux-amd64.tar.gz
|
||||
- echo "GO ${GO_VERSION} INSTALLED"
|
||||
- npm install
|
||||
|
||||
pages:
|
||||
stage: build
|
||||
script:
|
||||
- npm run project-setup
|
||||
- npm run build
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
@ -1,59 +0,0 @@
|
||||
{
|
||||
"maxerr": 50,
|
||||
"bitwise": true,
|
||||
"camelcase": false,
|
||||
"curly": true,
|
||||
"eqeqeq": true,
|
||||
"forin": true,
|
||||
"freeze": true,
|
||||
"immed": true,
|
||||
"indent": 2,
|
||||
"latedef": true,
|
||||
"newcap": false,
|
||||
"noarg": true,
|
||||
"noempty": true,
|
||||
"nonbsp": true,
|
||||
"nonew": true,
|
||||
"plusplus": false,
|
||||
"undef": true,
|
||||
"unused": false,
|
||||
"strict": true,
|
||||
"maxparams": false,
|
||||
"maxdepth": 4,
|
||||
"maxstatements": false,
|
||||
"maxcomplexity": false,
|
||||
"maxlen": 400,
|
||||
"browser": true,
|
||||
"devel": true,
|
||||
"asi": false,
|
||||
"boss": false,
|
||||
"debug": false,
|
||||
"eqnull": false,
|
||||
"es3": false,
|
||||
"es5": false,
|
||||
"esversion": 12,
|
||||
"moz": false,
|
||||
"evil": true,
|
||||
"expr": true,
|
||||
"funcscope": false,
|
||||
"globalstrict": false,
|
||||
"iterator": false,
|
||||
"lastsemic": false,
|
||||
"laxbreak": false,
|
||||
"laxcomma": false,
|
||||
"loopfunc": true,
|
||||
"multistr": true,
|
||||
"noyield": false,
|
||||
"notypeof": false,
|
||||
"proto": false,
|
||||
"scripturl": false,
|
||||
"shadow": false,
|
||||
"sub": false,
|
||||
"supernew": false,
|
||||
"validthis": false,
|
||||
"globals": {
|
||||
"jQuery": false,
|
||||
"google": false,
|
||||
"$": false
|
||||
}
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
{
|
||||
"MD033": false,
|
||||
"MD034": false,
|
||||
"MD013": false
|
||||
}
|
||||
@ -1,13 +0,0 @@
|
||||
{
|
||||
"plugins": ["prettier-plugin-go-template"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.html"],
|
||||
"options": {
|
||||
"parser": "go-template",
|
||||
"goTemplateBracketSpacing": true,
|
||||
"bracketSameLine": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
7
hugoplate-main/.vscode/extensions.json
vendored
@ -1,7 +0,0 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"bradlc.vscode-tailwindcss",
|
||||
"budparr.language-hugo-vscode",
|
||||
"tamasfe.even-better-toml"
|
||||
]
|
||||
}
|
||||
25
hugoplate-main/.vscode/tasks.json
vendored
@ -1,25 +0,0 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Development",
|
||||
"type": "shell",
|
||||
"command": "yarn dev:example",
|
||||
"isBackground": true,
|
||||
"group": {
|
||||
"kind": "test",
|
||||
"isDefault": true
|
||||
},
|
||||
},
|
||||
{
|
||||
"label": "Build",
|
||||
"type": "shell",
|
||||
"command": "yarn build:example",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2023 - Present, Zeon Studio
|
||||
|
||||
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.
|
||||
@ -1 +0,0 @@
|
||||
/* /en/404.html 404
|
||||
@ -1,29 +0,0 @@
|
||||
version: 1
|
||||
frontend:
|
||||
phases:
|
||||
preBuild:
|
||||
commands:
|
||||
- yum install -y curl
|
||||
- curl -LO "https://github.com/gohugoio/hugo/releases/download/v0.139.2/hugo_extended_0.139.2_Linux-64bit.tar.gz"
|
||||
- tar -xvf hugo_extended_0.139.2_Linux-64bit.tar.gz
|
||||
- mv hugo /usr/local/bin/
|
||||
- rm hugo_extended_0.139.2_Linux-64bit.tar.gz
|
||||
- echo "HUGO 0.139.2 INSTALLED"
|
||||
- curl -LO "https://dl.google.com/go/go1.23.3.linux-amd64.tar.gz"
|
||||
- tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz
|
||||
- export PATH=$PATH:/usr/local/go/bin
|
||||
- rm go1.23.3.linux-amd64.tar.gz
|
||||
- echo "GO 1.23.3 INSTALLED"
|
||||
- npm install
|
||||
build:
|
||||
commands:
|
||||
- npm run project-setup
|
||||
- npm run build
|
||||
artifacts:
|
||||
# IMPORTANT - Please verify your build output directory
|
||||
baseDirectory: /public
|
||||
files:
|
||||
- "**/*"
|
||||
cache:
|
||||
paths:
|
||||
- node_modules/**/*
|
||||
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 697 KiB |
|
Before Width: | Height: | Size: 254 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@ -1 +0,0 @@
|
||||
// Add your own custom styles here
|
||||
@ -1,6 +0,0 @@
|
||||
################ French language ##################
|
||||
[en]
|
||||
languageName = "Fr"
|
||||
languageCode = "fr"
|
||||
contentDir = "content/english"
|
||||
weight = 1
|
||||
@ -1,46 +0,0 @@
|
||||
############# English navigation ##############
|
||||
|
||||
# main menu
|
||||
[[main]]
|
||||
name = "Accueil"
|
||||
url = "/"
|
||||
weight = 1
|
||||
|
||||
[[main]]
|
||||
name = "Nos actions"
|
||||
url = "/about"
|
||||
weight = 2
|
||||
|
||||
[[main]]
|
||||
name = "Faire un don"
|
||||
url = "/elements"
|
||||
weight = 3
|
||||
|
||||
[[main]]
|
||||
weight = 4
|
||||
name = "Devenir bénévole"
|
||||
url = "/blog"
|
||||
|
||||
|
||||
[[main]]
|
||||
name = "Nous contacter"
|
||||
url = "/contact"
|
||||
weight = 5
|
||||
|
||||
|
||||
# footer menu
|
||||
[[footer]]
|
||||
name = "Nos actions"
|
||||
url = "/about"
|
||||
weight = 1
|
||||
|
||||
[[footer]]
|
||||
name = "Faire un don"
|
||||
url = "/elements"
|
||||
weight = 2
|
||||
|
||||
[[footer]]
|
||||
name = "Politique de confidentialité"
|
||||
url = "/privacy-policy"
|
||||
weight = 3
|
||||
|
||||
@ -1,99 +0,0 @@
|
||||
[hugoVersion]
|
||||
extended = true
|
||||
min = "0.139.2"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/zeon-studio/hugoplate"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/search"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/pwa"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/images"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/videos"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/icons/font-awesome"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/icons/themify-icons"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/gzip-caching"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/adsense"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/accordion"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/table-of-contents"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/tab"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/modal"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/gallery-slider"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/components/preloader"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/components/social-share"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/components/cookie-consent"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/components/announcement"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/components/custom-script"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/components/render-link"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/components/valine-comment"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/components/crisp-chat"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/shortcodes/button"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/shortcodes/notice"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics"
|
||||
|
||||
# [[imports]]
|
||||
# path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics"
|
||||
|
||||
[[imports]]
|
||||
path = "github.com/hugomods/mermaid"
|
||||
@ -1,112 +0,0 @@
|
||||
#################### default parameters ############################
|
||||
# favicon module: https://github.com/gethugothemes/hugo-modules/tree/master/images#favicon-implementation
|
||||
favicon = "images/favicon.png"
|
||||
# logo module: https://github.com/gethugothemes/hugo-modules/tree/master/images#logo-implementation
|
||||
logo = "images/logo.png"
|
||||
logo_darkmode = "images/logo-darkmode.png"
|
||||
# use `px` or `x` with logo_width, example: "100px".
|
||||
# Note: logo_width is not work with .svg file
|
||||
logo_width = "160px"
|
||||
logo_height = "32px"
|
||||
# if logo_webp set false, will not generate WEBP version of logo | default is true
|
||||
logo_webp = true
|
||||
# logo text will only show when logo is missing.
|
||||
logo_text = "Hugoplate"
|
||||
# navbar fixed to top
|
||||
navbar_fixed = true
|
||||
# theme-mode
|
||||
theme_switcher = true
|
||||
theme_default = "system" # available options [light/dark/system]
|
||||
# Main Sections
|
||||
mainSections = ["blog"]
|
||||
# contact form action
|
||||
contact_form_action = "#" # contact form works with [https://airform.io/] or [https://formspree.io]
|
||||
# google tag manager, see https://developers.google.com/tag-manager/
|
||||
google_tag_manager = "" # example: G-XXXXXXXXXX
|
||||
google_adsense = "" # example: ca-pub-xxxxxxxxxxxxxxxx
|
||||
# custom script on header, example: custom_script= "<script>console.log(\"Hello World\")</script>"
|
||||
custom_script = ""
|
||||
# copyright
|
||||
copyright = "Designed by [Axel]"
|
||||
|
||||
# Preloader
|
||||
# preloader module: https://github.com/gethugothemes/hugo-modules/tree/master/components/preloader
|
||||
[preloader]
|
||||
enable = false
|
||||
preloader = "" # use jpg, png, svg or gif format.
|
||||
|
||||
# Navigation button
|
||||
[navigation_button]
|
||||
enable = true
|
||||
label = "get a quote"
|
||||
link = "contact"
|
||||
|
||||
# search
|
||||
# search module: https://github.com/gethugothemes/hugo-modules/tree/master/search
|
||||
[search]
|
||||
enable = true
|
||||
primary_color = "#121212"
|
||||
include_sections = ["blog"]
|
||||
show_image = true
|
||||
show_description = true
|
||||
show_tags = true
|
||||
show_categories = true
|
||||
|
||||
# announcement
|
||||
# announcement module: https://github.com/gethugothemes/hugo-modules/tree/master/components/announcement
|
||||
[announcement]
|
||||
enable = false
|
||||
expire_days = 7
|
||||
content = "You must replace the **baseURL** in **hugo.toml** file when deploying, you can manage this announcement from the **params.toml** file."
|
||||
|
||||
# seo meta data for OpenGraph / Twitter Card
|
||||
# seo module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/basic-seo
|
||||
[metadata]
|
||||
keywords = ["Boilerplate", "Hugo"]
|
||||
description = "Hugo & Tailwindcss Starter"
|
||||
author = "zeon.studio"
|
||||
twitter = "zeon_studio"
|
||||
image = "images/og-image.png"
|
||||
|
||||
|
||||
# site verifications
|
||||
# verification module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/site-verifications
|
||||
[site_verification]
|
||||
google = "" # Your verification code
|
||||
bing = "" # Your verification code
|
||||
baidu = "" # Your verification code
|
||||
facebook = "" # Your verification code
|
||||
mastodon = "" # Your verification code
|
||||
|
||||
# cookies
|
||||
# cookies module: https://github.com/gethugothemes/hugo-modules/tree/master/components/cookie-consent
|
||||
[cookies]
|
||||
enable = false
|
||||
expire_days = 60
|
||||
content = "This site uses cookies. By continuing to use this website, you agree to their use."
|
||||
button = "I Accept"
|
||||
|
||||
# diagrams
|
||||
[mermaid]
|
||||
js_url = 'https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.esm.min.mjs'
|
||||
|
||||
######################## sidebar widgets #########################
|
||||
[widgets]
|
||||
sidebar = ["categories", "tags"]
|
||||
|
||||
|
||||
# google map
|
||||
[google_map]
|
||||
enable = false
|
||||
map_api_key = "AIzaSyCcABaamniA6OL5YvYSpB3pFMNrXwXnLwU"
|
||||
map_latitude = "51.5223477"
|
||||
map_longitude = "-0.1622023"
|
||||
map_marker = "images/marker.png"
|
||||
|
||||
|
||||
# Subscription
|
||||
[subscription]
|
||||
enable = false
|
||||
# mailchimp subsciption
|
||||
mailchimp_form_action = "https://gmail.us4.list-manage.com/subscribe/post?u=463ee871f45d2d93748e77cad&id=a0a2c6d074" # replace this url with yours
|
||||
mailchimp_form_name = "b_463ee871f45d2d93748e77cad_a0a2c6d074"
|
||||
@ -1,13 +0,0 @@
|
||||
# defaultContentLanguageInSubdir must be true for this to work.
|
||||
|
||||
# Other languages redirects
|
||||
# [[redirects]]
|
||||
# from = '/fr/**'
|
||||
# to = '/fr/404.html'
|
||||
# status = 404
|
||||
|
||||
# Default language must be last.
|
||||
# [[redirects]]
|
||||
# from = '/**'
|
||||
# to = '/en/404.html'
|
||||
# status = 404
|
||||
@ -1,29 +0,0 @@
|
||||
---
|
||||
meta_title: "Accueil"
|
||||
draft: false
|
||||
---
|
||||
# S’engager dans les enjeux d’inégalités sociales et les problématiques environnementales
|
||||
z
|
||||
qsfsdfsdgs
|
||||
|
||||
|
||||
# RÉCUPÉRATION À RUNGIS ET AUTRES RÉCUP’
|
||||
|
||||
Trois fois par semaine une équipe constituée de bénévoles se rend au Marché International de Rungis pour récupérer les invendus de fruits, légumes et autres produits auprès de grossistes du marché.
|
||||
|
||||
Les commerçant.e.s du quartiers sont aussi mobilisé.e.s: **récupération des invendus de pain dans les boulangeries, gel et masques dans les pharmacies…**
|
||||
|
||||
Ces aliments sont ensuite acheminés à notre local.
|
||||
|
||||

|
||||
|
||||
# Distribution de paniers
|
||||
##### LES PANIERS
|
||||
|
||||
Une fois arrivéprivacy-policy/s au local, nous les répartissons équitablement dans différentes cagettes (nos “paniers”)
|
||||
|
||||
La distribution s’articule en deux phases :
|
||||
|
||||
une **distribution de paniers à participation symbolique**. Pour 80 foyers environ et une quarantaine de personnes envoyées par des assistantes sociales membres de l’association, ainsi que par le SAMU social.
|
||||
|
||||
une distribution de paniers à 5€ pour les personnes ayant la possibilité de participer financièrement. (Quand il en reste assez).
|
||||
@ -1,8 +0,0 @@
|
||||
---
|
||||
meta_title: "Accueil"
|
||||
draft: false
|
||||
---
|
||||
# S’engager dans les enjeux d’inégalités sociales et les problématiques environnementales
|
||||
z
|
||||
qsfsdfsdgs
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
---
|
||||
meta_title: "Nos actions"
|
||||
draft: false
|
||||
---
|
||||
# RÉCUPÉRATION À RUNGIS ET AUTRES RÉCUP’
|
||||
|
||||
Trois fois par semaine une équipe constituée de bénévoles se rend au Marché International de Rungis pour récupérer les invendus de fruits, légumes et autres produits auprès de grossistes du marché.
|
||||
|
||||
Les commerçant.e.s du quartiers sont aussi mobilisé.e.s: **récupération des invendus de pain dans les boulangeries, gel et masques dans les pharmacies…**
|
||||
|
||||
Ces aliments sont ensuite acheminés à notre local.
|
||||
|
||||

|
||||
|
||||
# Distribution de paniers
|
||||
##### LES PANIERS
|
||||
|
||||
Une fois arrivés au local, nous les répartissons équitablement dans différentes cagettes (nos “paniers”)
|
||||
|
||||
La distribution s’articule en deux phases :
|
||||
|
||||
une **distribution de paniers à participation symbolique**. Pour 80 foyers environ et une quarantaine de personnes envoyées par des assistantes sociales membres de l’association, ainsi que par le SAMU social.
|
||||
|
||||
une distribution de paniers à 5€ pour les personnes ayant la possibilité de participer financièrement. (Quand il en reste assez).
|
||||
|
||||
Les distributions s’effectuent les : – Mardi et Vendredi matin au : 4 place Henri Matisse, Paris 20. – Mercredi matin au : Maison du Bas Belleville, 5 rue de Tourtille Paris 20.
|
||||
|
||||
 
|
||||
|
||||
# Lien social et ateliers
|
||||
|
||||
L’association c’est aussi des relations humaines. Le temps des distributions est celui pour prendre des nouvelles, écouter les histoires, sentir que l’on est pas seul.
|
||||
Ainsi, nous avons répondu à l’envie de partager des moments ensemble et mis en place des ateliers.
|
||||
|
||||

|
||||
|
||||
##### CUISINE
|
||||
|
||||
Afin de partager les richesses culturelles et culinaires des habitants de notre quartier des ateliers de cuisine ont vu le jour. Ces ateliers permettent aux voisins isolés de se rencontrer et bien sûr de partager un bon repas par la suite.
|
||||
|
||||

|
||||
|
||||
##### AIDE ADMINISTRATIVE, JURIDIQUE, ET SOUTIEN SCOLAIRE
|
||||
|
||||
Nos bénévoles assurent toute les semaines un bureau ouvert aux personnes nécessitant un conseil dans leurs démarches administratives et juridique. (sur rendez-vous)
|
||||
|
||||
Des cours de soutien scolaires ont lieu chaque semaine pour tous niveaux du CP à la Terminale. (sur inscription)
|
||||
|
||||
Pour réduire la fracture numérique, un ordinateur et une imprimante ont été mis à disposition afin de faciliter les démarches administratives, ainsi que la recherche d’emploi (rédaction de CV, lettre de motivation…). Ces activités continuent de se développer dans notre local.
|
||||
|
||||

|
||||
|
||||
##### SPORT
|
||||
|
||||
Chaque semaine une séance de self-défense, deux cours de yoga et un de gym sont organisée par nos professeurs bénévoles aux Place Henri Matisse et à Saint Blaise.
|
||||
@ -1,3 +0,0 @@
|
||||
---
|
||||
title: "Devenir bénévole"
|
||||
---
|
||||
@ -1,6 +0,0 @@
|
||||
---
|
||||
title: "Blog Posts"
|
||||
meta_title: ""
|
||||
description: "this is meta description"
|
||||
---
|
||||
# Devenir bénévole
|
||||
@ -1,30 +0,0 @@
|
||||
---
|
||||
title: "Contact"
|
||||
date: 2024-12-06
|
||||
menu: "main"
|
||||
type: "page"
|
||||
---
|
||||
|
||||
## Contactez-nous
|
||||
|
||||
Nous serions heureux d'avoir de vos nouvelles. Remplissez le formulaire ci-dessous ou contactez-nous par email à [contact@marmoulins.com](mailto:contact@marmoulins.com).
|
||||
|
||||
### Formulaire de contact
|
||||
|
||||
{{< openstreetmap mapName="untitled-map_1148911#19" >}}
|
||||
|
||||
<form action="{{ site.Params.contact_form_action }}" method="POST">
|
||||
<div>
|
||||
<label for="name">Nom</label>
|
||||
<input type="text" id="name" name="name" placeholder="Votre nom" required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="email">Email</label>
|
||||
<input type="email" id="email" name="email" placeholder="Votre email" required>
|
||||
</div>
|
||||
<div>
|
||||
<label for="message">Message</label>
|
||||
<textarea id="message" name="message" rows="4" placeholder="Votre message" required></textarea>
|
||||
</div>
|
||||
<button type="submit">Envoyer</button>
|
||||
</form>
|
||||
@ -1,37 +0,0 @@
|
||||
---
|
||||
title: "Faire un don"
|
||||
# meta title
|
||||
meta_title: ""
|
||||
# meta description
|
||||
description: "This is meta description"
|
||||
# save as draft
|
||||
draft: false
|
||||
---
|
||||
|
||||
# Pour aider les Marmoulins de Ménil’
|
||||
|
||||
|
||||
**Avec votre soutien, nous pourrons aller plus loin dans nos actions, à savoir lutter contre le gaspillage alimentaire en aidant les personnes démunies du quartier.**
|
||||
|
||||
C’est pourquoi, Les Marmoulins de Ménils’ ont mis en place un formulaire de dons sur le site HelloAsso pour permettre à tous ceux qui le souhaitent et qui ne pourraient pas s’impliquer bénévolement d’apporter leur pierre à l’édifice.
|
||||
|
||||
#### FACE A LA PROGRESSION DE LA PAUVRETE, L’AIDE ALIMENTAIRE EST PLUS QUE JAMAIS NECESSAIRE ET REVET TOUTE SA DIMENSION HUMAINE. AU DELA DU BESOIN ALIMENTAIRE ELLE EST AUSSI UNE REPONSE A L’EXCLUSION SOCIALE.
|
||||
|
||||
|
||||
<div style="text-align: center;">
|
||||
{{< button label="Faire un don" link="/" style="solid" >}}
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
## D'autres moyens de donner...
|
||||
|
||||

|
||||
|
||||
Vous pouvez aussi donner directement à l’association à la boutique BMG : 10 rue de Sorbier 75020 (ouvert de 9h à 18h du mardi au samedi)
|
||||
OU
|
||||
Envoyer par courrier un chèque à l’ordre de Les Marmoulins de Ménil’ à l’adresse ci-dessus.
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
---
|
||||
title: "Privacy"
|
||||
# meta title
|
||||
meta_title: ""
|
||||
# meta description
|
||||
description: "This is meta description"
|
||||
# save as draft
|
||||
draft: false
|
||||
---
|
||||
|
||||
#### Responsibility of Contributors
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus. Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed
|
||||
|
||||
pretium, aliquam sit. Praesent elementum magna amet, tincidunt eros, nibh in leo. Malesuada purus, lacus, at aliquam suspendisse tempus. Quis tempus amet, velit nascetur sollicitudin. At sollicitudin eget amet in. Eu velit nascetur sollicitudin erhdfvssfvrgss eget viverra nec elementum. Lacus, facilisis tristique lectus in.
|
||||
|
||||
#### Gathering of Personal Information
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus. Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed
|
||||
|
||||
#### Protection of Personal- Information
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat quisque aliquam sagittis. Sem turpis sed viverra massa gravida pharetra. Non dui dolor potenti eu dignissim fusce. Ultrices amet, in curabitur a arcu a lectus morbi id. Iaculis erat sagittis in tortor cursus.
|
||||
|
||||
Molestie urna eu tortor, erat scelerisque eget. Nunc hendrerit sed interdum lacus. Lorem quis viverra sed
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Purus, donec nunc eros, ullamcorper id feugiat
|
||||
|
||||
#### Privacy Policy Changes
|
||||
|
||||
1. Sll the Themefisher items are designed to be with the latest , We check all
|
||||
2. comments that threaten or harm the reputation of any person or organization
|
||||
3. personal information including, but limited to, email addresses, telephone numbers
|
||||
4. Any Update come in The technology Customer will get automatic Notification.
|
||||
@ -1,14 +0,0 @@
|
||||
---
|
||||
enable: true
|
||||
title: "Ready to build your next project with Hugo?"
|
||||
image: "/images/call-to-action.png"
|
||||
description: "Experience the future of web development with Hugoplate and Hugo. Build lightning-fast static sites with ease and flexibility."
|
||||
button:
|
||||
enable: true
|
||||
label: "Get Started Now"
|
||||
link: "https://github.com/zeon-studio/hugoplate"
|
||||
|
||||
# don't create a separate page
|
||||
_build:
|
||||
render: "never"
|
||||
---
|
||||
@ -1,5 +0,0 @@
|
||||
---
|
||||
meta_title: "Accueil"
|
||||
draft: false
|
||||
---
|
||||
# S’engager dans les enjeux d’inégalités sociales et les problématiques environnementales
|
||||
@ -1,24 +0,0 @@
|
||||
{
|
||||
"main": [
|
||||
{
|
||||
"name": "facebook",
|
||||
"icon": "fab fa-facebook",
|
||||
"link": "https://www.facebook.com/"
|
||||
},
|
||||
{
|
||||
"name": "twitter",
|
||||
"icon": "fab fa-twitter",
|
||||
"link": "https://twitter.com/"
|
||||
},
|
||||
{
|
||||
"name": "github",
|
||||
"icon": "fab fa-github",
|
||||
"link": "https://www.github.com/"
|
||||
},
|
||||
{
|
||||
"name": "linkedin",
|
||||
"icon": "fab fa-linkedin",
|
||||
"link": "https://www.linkedin.com/"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,44 +0,0 @@
|
||||
{
|
||||
"colors": {
|
||||
"default": {
|
||||
"theme_color": {
|
||||
"primary": "#121212",
|
||||
"body": "#fff",
|
||||
"border": "#eaeaea",
|
||||
"theme_light": "#f6f6f6",
|
||||
"theme_dark": ""
|
||||
},
|
||||
"text_color": {
|
||||
"default": "#444444",
|
||||
"dark": "#040404",
|
||||
"light": "#717171"
|
||||
}
|
||||
},
|
||||
"darkmode": {
|
||||
"theme_color": {
|
||||
"primary": "#fff",
|
||||
"body": "#1c1c1c",
|
||||
"border": "#3E3E3E",
|
||||
"theme_light": "#222222",
|
||||
"theme_dark": ""
|
||||
},
|
||||
"text_color": {
|
||||
"default": "#B4AFB6",
|
||||
"dark": "#fff",
|
||||
"light": "#B4AFB6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"fonts": {
|
||||
"font_family": {
|
||||
"primary": "Heebo:wght@400;600",
|
||||
"primary_type": "sans-serif",
|
||||
"secondary": "Signika:wght@500;700",
|
||||
"secondary_type": "sans-serif"
|
||||
},
|
||||
"font_size": {
|
||||
"base": "16",
|
||||
"scale": "1.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,31 +0,0 @@
|
||||
module hugoplate.netlify.app
|
||||
|
||||
go 1.21
|
||||
|
||||
require (
|
||||
github.com/gethugothemes/hugo-modules/accordion v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/adsense v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/components/announcement v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/gallery-slider v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/images v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/modal v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/pwa v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/search v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/shortcodes/button v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/tab v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/table-of-contents v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/gethugothemes/hugo-modules/videos v0.0.0-20241203025515-30ad48e108af // indirect
|
||||
github.com/hugomods/mermaid v0.1.4 // indirect
|
||||
github.com/zeon-studio/hugoplate v0.0.0-20241203091903-bf5613de8b39 // indirect
|
||||
)
|
||||
@ -1,178 +0,0 @@
|
||||
######################## default configuration ####################
|
||||
# The base URL of your site (required). This will be prepended to all relative URLs.
|
||||
baseURL = "/"
|
||||
# Title of your website (required).
|
||||
title = "Les Marmoulins"
|
||||
# Your theme name
|
||||
theme = ["osm", ""]
|
||||
# Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
timeZone = "Europe/London"
|
||||
# post excerpt
|
||||
summaryLength = 10 # see https://gohugo.io/content-management/excerpts/
|
||||
# disable language
|
||||
disableLanguages = [
|
||||
] # example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/
|
||||
hasCJKLanguage = false # If hasCJKLanguage true, auto-detect Chinese/Japanese/Korean Languages in the content. see: https://gohugo.io/getting-started/configuration/#hascjklanguage
|
||||
# default language
|
||||
defaultContentLanguage = 'en'
|
||||
# defaultContentLanguageInSubdir need to be true if you want to use the language code as a subdirectory and language specific 404 page
|
||||
defaultContentLanguageInSubdir = true
|
||||
|
||||
########################### Services #############################
|
||||
[services]
|
||||
[services.googleAnalytics]
|
||||
ID = 'G-MEASUREMENT_ID' # see https://gohugo.io/templates/internal/#configure-google-analytics
|
||||
|
||||
[services.disqus]
|
||||
shortname = 'themefisher-template' # we use disqus to show comments in blog posts . To install disqus please follow this tutorial https://portfolio.peter-baumgartner.net/2017/09/10/how-to-install-disqus-on-hugo/
|
||||
|
||||
########################## Permalinks ############################
|
||||
[permalinks.page]
|
||||
"pages" = "/:slugorfilename/"
|
||||
|
||||
|
||||
########################## Pagination ############################
|
||||
[pagination]
|
||||
disableAliases = false
|
||||
pagerSize = 10
|
||||
path = 'page'
|
||||
|
||||
|
||||
############################# Modules ############################
|
||||
[module]
|
||||
[[module.mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
|
||||
[[module.mounts]]
|
||||
source = "hugo_stats.json"
|
||||
target = "assets/watching/hugo_stats.json"
|
||||
|
||||
############################# Build ##############################
|
||||
[build]
|
||||
noJSConfigInAssets = false
|
||||
useResourceCacheWhen = 'fallback'
|
||||
[build.buildStats]
|
||||
enable = true
|
||||
[[build.cachebusters]]
|
||||
source = 'assets/watching/hugo_stats\.json'
|
||||
target = 'style\.css'
|
||||
[[build.cachebusters]]
|
||||
source = '(postcss|tailwind)\.config\.js'
|
||||
target = 'css'
|
||||
[[build.cachebusters]]
|
||||
source = 'assets/.*\.(js|ts|jsx|tsx)'
|
||||
target = 'js'
|
||||
[[build.cachebusters]]
|
||||
source = 'assets/.*\.(css|scss|sass)'
|
||||
target = 'css'
|
||||
[[build.cachebusters]]
|
||||
source = 'data/.*\.(.*)$'
|
||||
target = 'css'
|
||||
[[build.cachebusters]]
|
||||
source = 'assets/.*\.(.*)$'
|
||||
target = '$1'
|
||||
|
||||
|
||||
############################# Outputs ############################
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "WebAppManifest", "SearchIndex"]
|
||||
|
||||
############################# Imaging ############################
|
||||
[imaging]
|
||||
# See https://github.com/disintegration/imaging
|
||||
# Default JPEG or WebP quality setting. Default is 75.
|
||||
quality = 80
|
||||
resampleFilter = "Lanczos"
|
||||
|
||||
############################ Caches ##############################
|
||||
[caches]
|
||||
[caches.images]
|
||||
dir = ":resourceDir/_gen"
|
||||
maxAge = "720h"
|
||||
|
||||
[caches.assets]
|
||||
dir = ":resourceDir/_gen"
|
||||
maxAge = "720h"
|
||||
|
||||
|
||||
############################ Markup ##############################
|
||||
[markup]
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
[markup.highlight]
|
||||
style = 'monokai' # see https://xyproto.github.io/splash/docs/all.html
|
||||
|
||||
[markup.tableOfContents]
|
||||
startLevel = 2
|
||||
endLevel = 5
|
||||
ordered = true
|
||||
|
||||
|
||||
########################### Media types ###########################
|
||||
[mediaTypes]
|
||||
[mediaTypes."application/manifest+json"]
|
||||
suffixes = ["webmanifest"]
|
||||
|
||||
|
||||
########################### Output Format ##########################
|
||||
[outputFormats]
|
||||
[outputFormats.WebAppManifest]
|
||||
mediaType = "application/manifest+json"
|
||||
rel = "manifest"
|
||||
|
||||
[outputFormats.SearchIndex]
|
||||
mediaType = "application/json"
|
||||
baseName = "searchindex"
|
||||
isPlainText = true
|
||||
notAlternative = true
|
||||
|
||||
|
||||
############################# Plugins ##############################
|
||||
|
||||
# CSS Plugins
|
||||
[[params.plugins.css]]
|
||||
link = "plugins/swiper/swiper-bundle.css"
|
||||
lazy = true
|
||||
[[params.plugins.css]]
|
||||
link = "plugins/glightbox/glightbox.css"
|
||||
lazy = true
|
||||
[[params.plugins.css]]
|
||||
link = "plugins/font-awesome/v6/brands.css"
|
||||
lazy = true
|
||||
[[params.plugins.css]]
|
||||
link = "plugins/font-awesome/v6/solid.css"
|
||||
lazy = true
|
||||
[[params.plugins.css]]
|
||||
link = "plugins/font-awesome/v6/icons.css"
|
||||
lazy = true
|
||||
|
||||
# JS Plugins
|
||||
[[params.plugins.js]]
|
||||
link = "js/search.js"
|
||||
lazy = false
|
||||
[[params.plugins.js]]
|
||||
link = "plugins/swiper/swiper-bundle.js"
|
||||
lazy = false
|
||||
[[params.plugins.js]]
|
||||
link = "plugins/cookie.js"
|
||||
lazy = false
|
||||
[[params.plugins.js]]
|
||||
link = "plugins/glightbox/glightbox.js"
|
||||
lazy = true
|
||||
[[params.plugins.js]]
|
||||
link = "js/gallery-slider.js"
|
||||
lazy = true
|
||||
[[params.plugins.js]]
|
||||
link = "js/accordion.js"
|
||||
lazy = true
|
||||
[[params.plugins.js]]
|
||||
link = "js/tab.js"
|
||||
lazy = true
|
||||
[[params.plugins.js]]
|
||||
link = "js/modal.js"
|
||||
lazy = true
|
||||
[[params.plugins.js]]
|
||||
link = "plugins/youtube-lite.js"
|
||||
lazy = true
|
||||
@ -1,14 +0,0 @@
|
||||
home: Home
|
||||
read_more: Read More
|
||||
send: Send
|
||||
related_posts: Related Posts
|
||||
categories: Categories
|
||||
tags: Tags
|
||||
toc: Table of Contents
|
||||
share: Share
|
||||
search_input_placeholder: Search Post...
|
||||
search_no_results: No results for
|
||||
search_initial_message: Type something to search..
|
||||
search_navigate: to navigate
|
||||
search_select: to select
|
||||
search_close: to close
|
||||
@ -1,7 +0,0 @@
|
||||
[build]
|
||||
publish = "public"
|
||||
command = "yarn project-setup; yarn build"
|
||||
|
||||
[build.environment]
|
||||
HUGO_VERSION = "0.139.2"
|
||||
GO_VERSION = "1.23.3"
|
||||
@ -1,39 +0,0 @@
|
||||
{
|
||||
"name": "hugoplate",
|
||||
"description": "hugo tailwindcss boilerplate",
|
||||
"version": "1.18.0",
|
||||
"license": "MIT",
|
||||
"author": "zeon.studio",
|
||||
"scripts": {
|
||||
"dev": "hugo server",
|
||||
"build": "hugo --gc --minify --templateMetrics --templateMetricsHints --forceSyncStatic",
|
||||
"preview": "hugo server --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --watch --forceSyncStatic -e production --minify",
|
||||
"dev:example": "cd exampleSite && hugo server",
|
||||
"build:example": "cd exampleSite && hugo --gc --minify --templateMetrics --templateMetricsHints --forceSyncStatic",
|
||||
"preview:example": "cd exampleSite && hugo server --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --watch --forceSyncStatic -e production --minify",
|
||||
"update-modules": "node ./scripts/clearModules.js && hugo mod clean --all && hugo mod get -u ./... && hugo mod tidy",
|
||||
"remove-darkmode": "node ./scripts/removeDarkmode.js && yarn format",
|
||||
"project-setup": "node ./scripts/projectSetup.js",
|
||||
"theme-setup": "node ./scripts/themeSetup.js",
|
||||
"update-theme": "node ./scripts/themeUpdate.js",
|
||||
"format": "prettier -w ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.9",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"postcss": "^8.4.49",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"prettier": "^3.4.1",
|
||||
"prettier-plugin-go-template": "0.0.15",
|
||||
"prettier-plugin-tailwindcss": "^0.6.9",
|
||||
"tailwind-bootstrap-grid": "^5.1.0",
|
||||
"tailwindcss": "^3.4.15"
|
||||
},
|
||||
"postcss": {
|
||||
"plugins": {
|
||||
"tailwindcss": {},
|
||||
"autoprefixer": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,239 +0,0 @@
|
||||
<h1 align="center">Hugo + Tailwind CSS Starter and Boilerplate</h1>
|
||||
|
||||
<p align="center">Hugoplate is a free starter template built with Hugo, and TailwindCSS, providing everything you need to jumpstart your Hugo project and save valuable time.</p>
|
||||
|
||||
<p align="center">Made with ♥ by <a href="https://zeon.studio/"> Zeon Studio</a></p>
|
||||
<p align=center> If you find this project useful, please give it a ⭐ to show your support.</p>
|
||||
|
||||
<h2 align="center"> <a target="_blank" href="https://zeon.studio/preview?project=hugoplate" rel="nofollow">👀 Demo</a> | <a target="_blank" href="https://pagespeed.web.dev/analysis/https-hugoplate-netlify-app/6lyxjw6t4r?form_factor=desktop">Page Speed (95+)🚀</a>
|
||||
</h2>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/gohugoio/hugo/releases/tag/v0.126.0" alt="Contributors">
|
||||
<img src="https://img.shields.io/static/v1?label=min-HUGO-version&message=0.126.0&color=f00&logo=hugo" />
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/zeon-studio/hugoplate/blob/main/LICENSE">
|
||||
<img src="https://img.shields.io/github/license/zeon-studio/hugoplate" alt="license">
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/zeon-studio/hugoplate">
|
||||
<img src="https://img.shields.io/github/languages/code-size/zeon-studio/hugoplate" alt="code size">
|
||||
</a>
|
||||
|
||||
<a href="https://github.com/zeon-studio/hugoplate/graphs/contributors">
|
||||
<img src="https://img.shields.io/github/contributors/zeon-studio/hugoplate" alt="contributors">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## 🎁 What's Included
|
||||
|
||||
We have included almost everything you need to start your Hugo project. Let's see what's included in this template:
|
||||
|
||||
### 📌 Key Features
|
||||
|
||||
- 👥 Multi-Authors
|
||||
- 🎯 Similar Posts Suggestion
|
||||
- 🔍 Search Functionality
|
||||
- 🌑 Dark Mode
|
||||
- 🏷️ Tags & Categories
|
||||
- 🔗 Netlify setting pre-configured
|
||||
- 📞 Support contact form
|
||||
- 📱 Fully responsive
|
||||
- 📝 Write and update content in Markdown
|
||||
- 💬 Disqus Comment
|
||||
- 🔳 Syntax Highlighting
|
||||
|
||||
### 📄 15+ Pre-designed Pages
|
||||
|
||||
- 🏠 Homepage
|
||||
- 👤 About
|
||||
- 📞 Contact
|
||||
- 👥 Authors
|
||||
- 👤 Author Single
|
||||
- 📝 Blog
|
||||
- 📝 Blog Single
|
||||
- 🚫 Custom 404
|
||||
- 💡 Elements
|
||||
- 📄 Privacy Policy
|
||||
- 🏷️ Tags
|
||||
- 🏷️ Tag Single
|
||||
- 🗂️ Categories
|
||||
- 🗂️ Category Single
|
||||
- 🔍 Search
|
||||
|
||||
### 📦 Tech Stack
|
||||
|
||||
- [Hugo](https://gohugo.io/)
|
||||
- [Tailwind CSS](https://tailwindcss.com/)
|
||||
- [PostCSS](https://postcss.org/)
|
||||
- [PurgeCSS](https://purgecss.com/)
|
||||
- [AutoPrefixer](https://autoprefixer.github.io/)
|
||||
- [Hugo Modules](https://gohugo.io/hugo-modules/) by [Gethugothemes](https://gethugothemes.com/hugo-modules)
|
||||
- [Markdown](https://markdownguide.org/)
|
||||
- [Prettier](https://prettier.io/)
|
||||
- [Jshint](https://jshint.com/)
|
||||
- [Netlify](https://www.netlify.com/)
|
||||
- [Vercel](https://vercel.com/)
|
||||
- [Github Actions](https://github.com/features/actions)
|
||||
- [Gitlab Ci](https://docs.gitlab.com/ee/ci/)
|
||||
- [AWS Amplify](https://aws.amazon.com/amplify/)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
First you need to [clone](https://github.com/zeon-studio/hugoplate) or [download](https://github.com/zeon-studio/hugoplate/archive/refs/heads/main.zip) the template repository, and then let's get started with the following process:
|
||||
|
||||
### ⚙️ Prerequisites
|
||||
|
||||
To start using this template, you need to have some prerequisites installed on your machine.
|
||||
|
||||
- [Hugo Extended v0.124+](https://gohugo.io/installation/)
|
||||
- [Node v20+](https://nodejs.org/en/download/)
|
||||
- [Go v1.22+](https://go.dev/doc/install)
|
||||
|
||||
### 👉 Project Setup
|
||||
|
||||
We build this custom script to make your project setup easier. It will create a new Hugo theme folder, and clone the Hugoplate theme into it. Then move the exampleSite folder into the root directory. So that you can start your Hugo server without going into the exampleSite folder. Use the following command to setup your project.
|
||||
|
||||
```bash
|
||||
npm run project-setup
|
||||
```
|
||||
|
||||
### 👉 Install Dependencies
|
||||
|
||||
Install all the dependencies using the following command.
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 👉 Development Command
|
||||
|
||||
Start the development server using the following command.
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 🎬 Still Confused? Watch a Quick Video
|
||||
|
||||
https://github.com/zeon-studio/hugoplate/assets/58769763/c260c0ae-91be-42ce-b8db-aa7f11f777bd
|
||||
|
||||
---
|
||||
|
||||
## 📝 Customization
|
||||
|
||||
This template has been designed with a lot of customization options in mind. You can customize almost anything you want, including:
|
||||
|
||||
### 👉 Site Config
|
||||
|
||||
You can change the site title, base URL, language, theme, plugins, and more from the `hugo.toml` file.
|
||||
|
||||
### 👉 Site Params
|
||||
|
||||
You can customize all the parameters from the `config/_default/params.toml` file. This includes the logo, favicon, search, SEO metadata, and more.
|
||||
|
||||
### 👉 Colors and Fonts
|
||||
|
||||
You can change the colors and fonts from the `data/theme.json` file. This includes the primary color, secondary color, font family, and font size.
|
||||
|
||||
### 👉 Social Links
|
||||
|
||||
You can change the social links from the `data/social.json` file. Add your social links here, and they will automatically be displayed on the site.
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Advanced Usage
|
||||
|
||||
We have added some custom scripts to make your life easier. You can use these scripts to help you with your development.
|
||||
|
||||
### 👉 Update Theme
|
||||
|
||||
If you want to update the theme, then you can use the following command. It will update the theme to the latest version.
|
||||
|
||||
```bash
|
||||
npm run update-theme
|
||||
```
|
||||
|
||||
> **Note:** This command will work after running `project-setup` script.
|
||||
|
||||
### 👉 Update Modules
|
||||
|
||||
We have added a lot of modules to this template. You can update all the modules using the following command.
|
||||
|
||||
```bash
|
||||
npm run update-modules
|
||||
```
|
||||
|
||||
### 👉 Remove Dark Mode
|
||||
|
||||
If you want to remove dark mode from your project, you can use the following command to remove dark mode from your project.
|
||||
|
||||
```bash
|
||||
npm run remove-darkmode
|
||||
```
|
||||
|
||||
> **Note:** This command will work before running `project-setup` script. If you already run the `project-setup` command, then you have to run `npm run theme-setup` first, and then you can run this command. afterward, you can run `npm run project-setup` again.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Build And Deploy
|
||||
|
||||
After you finish your development, you can build or deploy your project almost everywhere. Let's see the process:
|
||||
|
||||
### 👉 Build Command
|
||||
|
||||
To build your project locally, you can use the following command. It will purge all the unused CSS and minify all the files.
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 👉 Deploy Site
|
||||
|
||||
We have provided 5 different deploy platform configurations with this template, so you can deploy easily.
|
||||
|
||||
- [Netlify](https://www.netlify.com/)
|
||||
- [Vercel](https://vercel.com/)
|
||||
- [Github Actions](https://github.com/features/actions)
|
||||
- [Gitlab Ci](https://docs.gitlab.com/ee/ci/)
|
||||
- [AWS Amplify](https://aws.amazon.com/amplify/)
|
||||
|
||||
And if you want to Host some other hosting platforms. then you can build your project, and you will get a `public` folder. that you can copy and paste on your hosting platform.
|
||||
|
||||
> **Note:** You must change the `baseURL` in the `hugo.toml` file. Otherwise, your site will not work properly.
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Guide to Staying Compliant
|
||||
|
||||
### 🐞 Reporting Issues
|
||||
|
||||
We use GitHub Issues as the official bug tracker for this Template. Please Search [existing issues](https://github.com/zeon-studio/hugoplate/issues). It’s possible someone has already reported the same problem.
|
||||
If your problem or idea has not been addressed yet, feel free to [open a new issue](https://github.com/zeon-studio/hugoplate/issues).
|
||||
|
||||
### 📝 License
|
||||
|
||||
Copyright (c) 2023 - Present, Designed & Developed by [Zeon Studio](https://zeon.studio/)
|
||||
|
||||
**Code License:** Released under the [MIT](https://github.com/zeon-studio/hugoplate/blob/main/LICENSE) license.
|
||||
|
||||
**Image license:** The images are only for demonstration purposes. They have their license, we don't have permission to share those images.
|
||||
|
||||
---
|
||||
|
||||
## 🖼️ Showcase
|
||||
|
||||
List of some projects people are building with **Hugoplate**!
|
||||
|
||||
| [](https://open-neuromorphic.org/) | [](https://aimodels.org/) | [](https://www.hugobricks.preview.usecue.com/) | [](https://ono.day/)
|
||||
|:---:|:---:|:---:|:---:|
|
||||
| **Open Neuromorphic** | **AI Models** | **Hugobricks** | **ONO LLC** |
|
||||
|
||||
---
|
||||
|
||||
## 💻 Need Customization?
|
||||
|
||||
If you need a custom theme, theme customization, or complete website development services from scratch you can [Hire Us](https://zeon.studio/estimate-project).
|
||||
@ -1,14 +0,0 @@
|
||||
const fs = require("fs");
|
||||
|
||||
const clearModules = (filePath) => {
|
||||
if (fs.existsSync(filePath)) {
|
||||
let fileContent = fs.readFileSync(filePath, "utf8");
|
||||
fileContent = fileContent.replace(/require\s*\([\s\S]*?\)/, "");
|
||||
fs.writeFileSync(filePath, fileContent, "utf8");
|
||||
} else {
|
||||
console.log("File does not exist.");
|
||||
}
|
||||
};
|
||||
|
||||
clearModules("go.mod");
|
||||
clearModules("exampleSite/go.mod");
|
||||
@ -1,125 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const toggleComment = ({ filepath, regex }) => {
|
||||
let updatedContent = fs.readFileSync(filepath, "utf8");
|
||||
const match = updatedContent.match(regex);
|
||||
|
||||
if (filepath.endsWith("hugo.toml")) {
|
||||
updatedContent = updatedContent.replace(
|
||||
'baseURL = "https://example.org"',
|
||||
'baseURL = "/"',
|
||||
);
|
||||
}
|
||||
|
||||
if (match) {
|
||||
const matchedContent = match[0];
|
||||
const hasComment = matchedContent.startsWith("# ");
|
||||
if (hasComment) {
|
||||
updatedContent = updatedContent.replace(
|
||||
regex,
|
||||
matchedContent.replace("# ", ""),
|
||||
);
|
||||
fs.writeFileSync(filepath, updatedContent, "utf8");
|
||||
} else {
|
||||
const hasLineBreak = matchedContent.includes("\n");
|
||||
if (hasLineBreak) {
|
||||
const content = matchedContent
|
||||
.split("\n")
|
||||
.map((line) => "# " + line)
|
||||
.join("\n");
|
||||
updatedContent = updatedContent.replace(regex, content);
|
||||
fs.writeFileSync(filepath, updatedContent, "utf8");
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const getFolderName = (rootFolder) => {
|
||||
const configPath = path.join(rootFolder, "exampleSite/hugo.toml");
|
||||
const getConfig = fs.readFileSync(configPath, "utf8");
|
||||
const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/);
|
||||
let selectedTheme = null;
|
||||
if (match && match[1]) {
|
||||
selectedTheme = match[1];
|
||||
}
|
||||
return selectedTheme;
|
||||
};
|
||||
|
||||
const deleteFolder = (folderPath) => {
|
||||
if (fs.existsSync(folderPath)) {
|
||||
fs.rmSync(folderPath, { recursive: true, force: true });
|
||||
}
|
||||
};
|
||||
|
||||
const createNewFolder = (rootFolder, folderName) => {
|
||||
const newFolder = path.join(rootFolder, folderName);
|
||||
fs.mkdirSync(newFolder, { recursive: true });
|
||||
return newFolder;
|
||||
};
|
||||
|
||||
const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => {
|
||||
const directory = path.join(rootFolder);
|
||||
const items = fs.readdirSync(directory, { withFileTypes: true });
|
||||
items.forEach((item) => {
|
||||
if (item.isDirectory()) {
|
||||
createNewFolder(destinationRoot, item.name);
|
||||
iterateFilesAndFolders(path.join(directory, item.name), {
|
||||
currentFolder: item.name,
|
||||
destinationRoot: path.join(destinationRoot, item.name),
|
||||
});
|
||||
} else {
|
||||
const sourceFile = path.join(directory, item.name);
|
||||
const destinationFile = path.join(destinationRoot, item.name);
|
||||
fs.renameSync(sourceFile, destinationFile);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const setupProject = () => {
|
||||
const rootFolder = path.join(__dirname, "../");
|
||||
if (!fs.existsSync(path.join(rootFolder, "themes"))) {
|
||||
// remove this part if you don't using theme demo as a module
|
||||
[
|
||||
{
|
||||
filepath: path.join(rootFolder, "exampleSite/hugo.toml"),
|
||||
regex: /^.*theme\s*=\s*("[^"\]]+"|\S+)/m,
|
||||
},
|
||||
{
|
||||
filepath: path.join(
|
||||
rootFolder,
|
||||
"exampleSite/config/_default/module.toml",
|
||||
),
|
||||
regex: /\[\[imports\]\]\s*\r?\npath = "([^"]+)"/,
|
||||
},
|
||||
].forEach(toggleComment);
|
||||
|
||||
const folderList = ["layouts", "assets", "static"];
|
||||
const folderName = getFolderName(rootFolder);
|
||||
const newFolderName = createNewFolder(
|
||||
path.join(rootFolder, "themes"),
|
||||
folderName,
|
||||
);
|
||||
|
||||
folderList.forEach((folder) => {
|
||||
const source = path.join(rootFolder, folder);
|
||||
const destination = path.join(newFolderName, folder);
|
||||
if (fs.existsSync(source)) {
|
||||
fs.mkdirSync(destination, { recursive: true });
|
||||
iterateFilesAndFolders(source, {
|
||||
currentFolder: folder,
|
||||
destinationRoot: destination,
|
||||
});
|
||||
deleteFolder(source);
|
||||
}
|
||||
});
|
||||
|
||||
const exampleSite = path.join(rootFolder, "exampleSite");
|
||||
iterateFilesAndFolders(exampleSite, { destinationRoot: rootFolder });
|
||||
deleteFolder(exampleSite);
|
||||
} else {
|
||||
console.log("Project already setup");
|
||||
}
|
||||
};
|
||||
|
||||
setupProject();
|
||||
@ -1,99 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const rootDirs = ["assets/scss", "layouts"];
|
||||
const configFiles = [
|
||||
{
|
||||
filePath: "exampleSite/tailwind.config.js",
|
||||
patterns: ["darkmode:\\s*{[^}]*},", 'darkMode:\\s*"class",'],
|
||||
},
|
||||
{
|
||||
filePath: "exampleSite/data/theme.json",
|
||||
patterns: ["colors.darkmode"],
|
||||
},
|
||||
];
|
||||
|
||||
// asset paths
|
||||
const deleteAssetList = [
|
||||
"exampleSite/assets/images/logo-darkmode.png",
|
||||
"layouts/partials/components/theme-switcher.html",
|
||||
];
|
||||
|
||||
const filePaths = [
|
||||
{
|
||||
filePath: "layouts/partials/essentials/header.html",
|
||||
patterns: [
|
||||
'{{\\s*partial\\s*"components\\/theme-switcher"\\s*\\([^)]*\\)\\s*}}',
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
filePaths.forEach(({ filePath, patterns }) =>
|
||||
removeDarkModeFromFiles(filePath, patterns),
|
||||
);
|
||||
|
||||
deleteAssetList.forEach((asset) => {
|
||||
try {
|
||||
fs.unlinkSync(asset);
|
||||
console.log(`${path.basename(asset)} deleted successfully!`);
|
||||
} catch (error) {
|
||||
console.error(`${asset} not found`);
|
||||
}
|
||||
});
|
||||
|
||||
rootDirs.forEach(removeDarkModeFromPages);
|
||||
configFiles.forEach(removeDarkMode);
|
||||
|
||||
function removeDarkModeFromFiles(filePath, regexPatterns) {
|
||||
const fileContent = fs.readFileSync(filePath, "utf8");
|
||||
let updatedContent = fileContent;
|
||||
regexPatterns.forEach((pattern) => {
|
||||
const regex = new RegExp(pattern, "g");
|
||||
updatedContent = updatedContent.replace(regex, "");
|
||||
});
|
||||
|
||||
fs.writeFileSync(filePath, updatedContent, "utf8");
|
||||
}
|
||||
|
||||
// like html file
|
||||
function removeDarkModeFromPages(directoryPath) {
|
||||
const files = fs.readdirSync(directoryPath);
|
||||
|
||||
files.forEach((file) => {
|
||||
const filePath = path.join(directoryPath, file);
|
||||
const stats = fs.statSync(filePath);
|
||||
if (stats.isDirectory()) {
|
||||
removeDarkModeFromPages(filePath);
|
||||
} else if (stats.isFile()) {
|
||||
removeDarkModeFromFiles(filePath, [
|
||||
'(?:(?!["])\\S)*dark:(?:(?![,;"])\\S)*',
|
||||
"@apply?(\\s)*;",
|
||||
]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function removeDarkMode(configFile) {
|
||||
const { filePath, patterns } = configFile;
|
||||
if (filePath === "exampleSite/tailwind.config.js") {
|
||||
removeDarkModeFromFiles(filePath, patterns);
|
||||
} else {
|
||||
const contentFile = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
||||
patterns.forEach((pattern) => deleteNestedProperty(contentFile, pattern));
|
||||
fs.writeFileSync(filePath, JSON.stringify(contentFile));
|
||||
}
|
||||
}
|
||||
|
||||
function deleteNestedProperty(obj, propertyPath) {
|
||||
const properties = propertyPath.split(".");
|
||||
let currentObj = obj;
|
||||
for (let i = 0; i < properties.length - 1; i++) {
|
||||
const property = properties[i];
|
||||
if (currentObj.hasOwnProperty(property)) {
|
||||
currentObj = currentObj[property];
|
||||
} else {
|
||||
return; // Property not found, no need to continue
|
||||
}
|
||||
}
|
||||
delete currentObj[properties[properties.length - 1]];
|
||||
}
|
||||
@ -1,132 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const toggleComment = ({ filepath, regex }) => {
|
||||
let updatedContent = fs.readFileSync(filepath, "utf8");
|
||||
const match = updatedContent.match(regex);
|
||||
|
||||
if (filepath.endsWith("hugo.toml")) {
|
||||
updatedContent = updatedContent.replace(
|
||||
'baseURL = "/"',
|
||||
'baseURL = "https://example.org"',
|
||||
);
|
||||
}
|
||||
|
||||
if (match) {
|
||||
const matchedContent = match[0];
|
||||
const hasComment = matchedContent.startsWith("# ");
|
||||
if (hasComment) {
|
||||
const hasLineBreak = matchedContent.includes("\n");
|
||||
if (hasLineBreak) {
|
||||
updatedContent = updatedContent.replace(
|
||||
regex,
|
||||
matchedContent.replace(/# /gm, ""),
|
||||
);
|
||||
fs.writeFileSync(filepath, updatedContent, "utf8");
|
||||
}
|
||||
} else {
|
||||
updatedContent = updatedContent.replace(regex, "# " + matchedContent);
|
||||
fs.writeFileSync(filepath, updatedContent, "utf8");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const createNewFolder = (rootFolder, folderName) => {
|
||||
const newFolder = path.join(rootFolder, folderName);
|
||||
fs.mkdirSync(newFolder, { recursive: true });
|
||||
return newFolder;
|
||||
};
|
||||
|
||||
const deleteFolder = (folderPath) => {
|
||||
if (fs.existsSync(folderPath)) {
|
||||
fs.rmSync(folderPath, { recursive: true, force: true });
|
||||
}
|
||||
};
|
||||
|
||||
const getFolderName = (rootFolder) => {
|
||||
const configPath = path.join(rootFolder, "exampleSite/hugo.toml");
|
||||
const getConfig = fs.readFileSync(configPath, "utf8");
|
||||
const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/);
|
||||
let selectedTheme = null;
|
||||
if (match && match[1]) {
|
||||
selectedTheme = match[1];
|
||||
}
|
||||
return selectedTheme;
|
||||
};
|
||||
|
||||
const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => {
|
||||
const directory = path.join(rootFolder);
|
||||
const items = fs.readdirSync(directory, { withFileTypes: true });
|
||||
items.forEach((item) => {
|
||||
if (item.isDirectory()) {
|
||||
createNewFolder(destinationRoot, item.name);
|
||||
iterateFilesAndFolders(path.join(directory, item.name), {
|
||||
currentFolder: item.name,
|
||||
destinationRoot: path.join(destinationRoot, item.name),
|
||||
});
|
||||
} else {
|
||||
const sourceFile = path.join(directory, item.name);
|
||||
const destinationFile = path.join(destinationRoot, item.name);
|
||||
fs.renameSync(sourceFile, destinationFile);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const setupTheme = () => {
|
||||
const rootFolder = path.join(__dirname, "../");
|
||||
|
||||
if (!fs.existsSync(path.join(rootFolder, "exampleSite"))) {
|
||||
// remove this part if you don't using theme demo as a module
|
||||
[
|
||||
{
|
||||
filepath: path.join(rootFolder, "config/_default/module.toml"),
|
||||
regex: /# \[\[imports\]\]\s*\r?\n# path = "([^"]+)"/,
|
||||
},
|
||||
{
|
||||
filepath: path.join(rootFolder, "hugo.toml"),
|
||||
regex: /^.*theme\s*=\s*("[^"\]]+"|\S+)/m,
|
||||
},
|
||||
].forEach(toggleComment);
|
||||
|
||||
const includesFiles = [
|
||||
"tailwind.config.js",
|
||||
"postcss.config.js",
|
||||
"go.mod",
|
||||
"hugo.toml",
|
||||
"assets",
|
||||
"config",
|
||||
"data",
|
||||
"content",
|
||||
"i18n",
|
||||
"static",
|
||||
];
|
||||
|
||||
const folder = createNewFolder(rootFolder, "exampleSite");
|
||||
|
||||
fs.readdirSync(rootFolder, { withFileTypes: true }).forEach((file) => {
|
||||
if (includesFiles.includes(file.name)) {
|
||||
if (file.isDirectory()) {
|
||||
const destination = path.join(rootFolder, "exampleSite", file.name);
|
||||
fs.mkdirSync(destination, { recursive: true });
|
||||
iterateFilesAndFolders(path.join(rootFolder, file.name), {
|
||||
destinationRoot: destination,
|
||||
});
|
||||
deleteFolder(path.join(rootFolder, file.name));
|
||||
} else {
|
||||
fs.renameSync(
|
||||
path.join(rootFolder, file.name),
|
||||
path.join(folder, file.name),
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const themes = path.join(rootFolder, "themes");
|
||||
iterateFilesAndFolders(path.join(themes, getFolderName(rootFolder)), {
|
||||
destinationRoot: rootFolder,
|
||||
});
|
||||
deleteFolder(themes);
|
||||
}
|
||||
};
|
||||
|
||||
setupTheme();
|
||||
@ -1,19 +0,0 @@
|
||||
const { exec } = require("child_process");
|
||||
|
||||
const repositoryUrl = "https://github.com/zeon-studio/hugoplate";
|
||||
const localDirectory = "./themes/hugoplate";
|
||||
const foldersToFetch = ["assets", "layouts"];
|
||||
const foldersToSkip = ["exampleSite"];
|
||||
|
||||
const fetchFolder = (folder) => {
|
||||
exec(
|
||||
`curl -L ${repositoryUrl}/tarball/main | tar -xz --strip-components=1 --directory=${localDirectory} --exclude=$(curl -sL ${repositoryUrl}/tarball/main | tar -tz | grep -E "/(${foldersToSkip.join(
|
||||
"|",
|
||||
)})/") */${folder}`,
|
||||
);
|
||||
};
|
||||
|
||||
// Fetch each specified folder
|
||||
foldersToFetch.forEach((folder) => {
|
||||
fetchFolder(folder);
|
||||
});
|
||||
|
Before Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 515 KiB |
|
Before Width: | Height: | Size: 561 KiB |
|
Before Width: | Height: | Size: 561 KiB |
|
Before Width: | Height: | Size: 487 KiB |
|
Before Width: | Height: | Size: 568 KiB |
|
Before Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 493 KiB |
|
Before Width: | Height: | Size: 357 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 220 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 248 KiB |
@ -1,103 +0,0 @@
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const themePath = path.join(__dirname, "data/theme.json");
|
||||
const themeRead = fs.readFileSync(themePath, "utf8");
|
||||
const theme = JSON.parse(themeRead);
|
||||
|
||||
let font_base = Number(theme.fonts.font_size.base.replace("px", ""));
|
||||
let font_scale = Number(theme.fonts.font_size.scale);
|
||||
let h6 = font_scale;
|
||||
let h5 = h6 * font_scale;
|
||||
let h4 = h5 * font_scale;
|
||||
let h3 = h4 * font_scale;
|
||||
let h2 = h3 * font_scale;
|
||||
let h1 = h2 * font_scale;
|
||||
let fontPrimary, fontPrimaryType, fontSecondary, fontSecondaryType;
|
||||
if (theme.fonts.font_family.primary) {
|
||||
fontPrimary = theme.fonts.font_family.primary
|
||||
.replace(/\+/g, " ")
|
||||
.replace(/:[ital,]*[ital@]*[wght@]*[0-9,;.]+/gi, "");
|
||||
fontPrimaryType = theme.fonts.font_family.primary_type;
|
||||
}
|
||||
if (theme.fonts.font_family.secondary) {
|
||||
fontSecondary = theme.fonts.font_family.secondary
|
||||
.replace(/\+/g, " ")
|
||||
.replace(/:[ital,]*[ital@]*[wght@]*[0-9,;.]+/gi, "");
|
||||
fontSecondaryType = theme.fonts.font_family.secondary_type;
|
||||
}
|
||||
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: ["./hugo_stats.json"],
|
||||
safelist: [{ pattern: /^swiper-/ }],
|
||||
darkMode: "class",
|
||||
theme: {
|
||||
screens: {
|
||||
sm: "540px",
|
||||
md: "768px",
|
||||
lg: "1024px",
|
||||
xl: "1280px",
|
||||
"2xl": "1536px",
|
||||
},
|
||||
container: {
|
||||
center: true,
|
||||
padding: "2rem",
|
||||
},
|
||||
extend: {
|
||||
colors: {
|
||||
text: theme.colors.default.text_color.default,
|
||||
light: theme.colors.default.text_color.light,
|
||||
dark: theme.colors.default.text_color.dark,
|
||||
primary: theme.colors.default.theme_color.primary,
|
||||
secondary: theme.colors.default.theme_color.secondary,
|
||||
body: theme.colors.default.theme_color.body,
|
||||
border: theme.colors.default.theme_color.border,
|
||||
"theme-light": theme.colors.default.theme_color.theme_light,
|
||||
"theme-dark": theme.colors.default.theme_color.theme_dark,
|
||||
darkmode: {
|
||||
text: theme.colors.darkmode.text_color.default,
|
||||
light: theme.colors.darkmode.text_color.light,
|
||||
dark: theme.colors.darkmode.text_color.dark,
|
||||
primary: theme.colors.darkmode.theme_color.primary,
|
||||
secondary: theme.colors.darkmode.theme_color.secondary,
|
||||
body: theme.colors.darkmode.theme_color.body,
|
||||
border: theme.colors.darkmode.theme_color.border,
|
||||
"theme-light": theme.colors.darkmode.theme_color.theme_light,
|
||||
"theme-dark": theme.colors.darkmode.theme_color.theme_dark,
|
||||
},
|
||||
},
|
||||
fontSize: {
|
||||
base: font_base + "px",
|
||||
"base-sm": font_base * 0.8 + "px",
|
||||
h1: h1 + "rem",
|
||||
"h1-sm": h1 * 0.9 + "rem",
|
||||
h2: h2 + "rem",
|
||||
"h2-sm": h2 * 0.9 + "rem",
|
||||
h3: h3 + "rem",
|
||||
"h3-sm": h3 * 0.9 + "rem",
|
||||
h4: h4 + "rem",
|
||||
h5: h5 + "rem",
|
||||
h6: h6 + "rem",
|
||||
},
|
||||
fontFamily: {
|
||||
primary: [fontPrimary, fontPrimaryType],
|
||||
secondary: [fontSecondary, fontSecondaryType],
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
require("@tailwindcss/typography"),
|
||||
require("@tailwindcss/forms"),
|
||||
require("tailwind-bootstrap-grid")({
|
||||
generateContainer: false,
|
||||
gridGutterWidth: "2rem",
|
||||
gridGutters: {
|
||||
1: "0.25rem",
|
||||
2: "0.5rem",
|
||||
3: "1rem",
|
||||
4: "1.5rem",
|
||||
5: "3rem",
|
||||
},
|
||||
}),
|
||||
],
|
||||
};
|
||||
@ -1,38 +0,0 @@
|
||||
name = "Hugoplate"
|
||||
license = "MIT"
|
||||
licenselink = "https://github.com/zeon-studio/hugoplate/blob/main/LICENSE"
|
||||
description = "Hugoplate is a free starter template built with Hugo, and TailwindCSS, providing everything you need to jumpstart your Hugo project and save valuable time."
|
||||
homepage = "https://github.com/zeon-studio/hugoplate"
|
||||
demosite = "https://zeon.studio/preview?project=hugoplate"
|
||||
min_version = "0.139.2"
|
||||
|
||||
tags = [
|
||||
"blog",
|
||||
"responsive",
|
||||
"minimal",
|
||||
"personal",
|
||||
"light",
|
||||
"dark",
|
||||
"multilingual",
|
||||
"landing",
|
||||
"contact",
|
||||
"dark mode",
|
||||
"tailwindcss",
|
||||
]
|
||||
|
||||
features = [
|
||||
"Multi-Authors",
|
||||
"Search",
|
||||
"Multilingual",
|
||||
"Dark Mode",
|
||||
"Taxonomies",
|
||||
]
|
||||
|
||||
[author]
|
||||
name = "Zeon Studio"
|
||||
homepage = "https://zeon.studio"
|
||||
|
||||
[original]
|
||||
author = "Zeon Studio"
|
||||
homepage = "https://zeon.studio"
|
||||
repo = "https://github.com/zeon-studio/themeplate"
|
||||
@ -1,36 +0,0 @@
|
||||
// main script
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
// Dropdown Menu Toggler For Mobile
|
||||
// ----------------------------------------
|
||||
const dropdownMenuToggler = document.querySelectorAll(
|
||||
".nav-dropdown > .nav-link",
|
||||
);
|
||||
|
||||
dropdownMenuToggler.forEach((toggler) => {
|
||||
toggler?.addEventListener("click", (e) => {
|
||||
e.target.closest('.nav-item').classList.toggle("active");
|
||||
});
|
||||
});
|
||||
|
||||
// Testimonial Slider
|
||||
// ----------------------------------------
|
||||
new Swiper(".testimonial-slider", {
|
||||
spaceBetween: 24,
|
||||
loop: true,
|
||||
pagination: {
|
||||
el: ".testimonial-slider-pagination",
|
||||
type: "bullets",
|
||||
clickable: true,
|
||||
},
|
||||
breakpoints: {
|
||||
768: {
|
||||
slidesPerView: 2,
|
||||
},
|
||||
992: {
|
||||
slidesPerView: 3,
|
||||
},
|
||||
},
|
||||
});
|
||||
})();
|
||||
@ -1,179 +0,0 @@
|
||||
/*!***************************************************
|
||||
* Google Map
|
||||
*****************************************************/
|
||||
|
||||
window.marker = null;
|
||||
|
||||
function initialize() {
|
||||
var map,
|
||||
mapId = document.getElementById("map");
|
||||
var latitude = mapId.getAttribute("data-latitude");
|
||||
var longitude = mapId.getAttribute("data-longitude");
|
||||
var mapMarker = mapId.getAttribute("data-marker");
|
||||
var mapMarkerName = mapId.getAttribute("data-marker-name");
|
||||
var nottingham = new google.maps.LatLng(latitude, longitude);
|
||||
var style = [
|
||||
{
|
||||
featureType: "administrative",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
saturation: "-100",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "administrative.province",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
visibility: "off",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "landscape",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
saturation: -100,
|
||||
},
|
||||
{
|
||||
lightness: 65,
|
||||
},
|
||||
{
|
||||
visibility: "on",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "poi",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
saturation: -100,
|
||||
},
|
||||
{
|
||||
lightness: "50",
|
||||
},
|
||||
{
|
||||
visibility: "simplified",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "road",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
saturation: "-100",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "road.highway",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
visibility: "simplified",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "road.arterial",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
lightness: "30",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "road.local",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
lightness: "40",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "transit",
|
||||
elementType: "all",
|
||||
stylers: [
|
||||
{
|
||||
saturation: -100,
|
||||
},
|
||||
{
|
||||
visibility: "simplified",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "water",
|
||||
elementType: "geometry",
|
||||
stylers: [
|
||||
{
|
||||
hue: "#ffff00",
|
||||
},
|
||||
{
|
||||
lightness: -25,
|
||||
},
|
||||
{
|
||||
saturation: -97,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
featureType: "water",
|
||||
elementType: "labels",
|
||||
stylers: [
|
||||
{
|
||||
lightness: -25,
|
||||
},
|
||||
{
|
||||
saturation: -100,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
var mapOptions = {
|
||||
center: nottingham,
|
||||
mapTypeId: google.maps.MapTypeId.ROADMAP,
|
||||
backgroundColor: "#000",
|
||||
zoom: 15,
|
||||
panControl: !1,
|
||||
zoomControl: !0,
|
||||
mapTypeControl: !1,
|
||||
scaleControl: !1,
|
||||
streetViewControl: !1,
|
||||
overviewMapControl: !1,
|
||||
zoomControlOptions: {
|
||||
style: google.maps.ZoomControlStyle.LARGE,
|
||||
},
|
||||
};
|
||||
map = new google.maps.Map(document.getElementById("map"), mapOptions);
|
||||
var mapType = new google.maps.StyledMapType(style, {
|
||||
name: "Grayscale",
|
||||
});
|
||||
map.mapTypes.set("grey", mapType);
|
||||
map.setMapTypeId("grey");
|
||||
var marker_image = mapMarker;
|
||||
var pinIcon = new google.maps.MarkerImage(
|
||||
marker_image,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
new google.maps.Size(30, 50),
|
||||
);
|
||||
marker = new google.maps.Marker({
|
||||
position: nottingham,
|
||||
map: map,
|
||||
icon: pinIcon,
|
||||
title: mapMarkerName,
|
||||
});
|
||||
}
|
||||
var map = document.getElementById("map");
|
||||
if (map != null) {
|
||||
google.maps.event.addDomListener(window, "load", initialize);
|
||||
}
|
||||
@ -1,667 +0,0 @@
|
||||
/**
|
||||
* Swiper 8.0.7
|
||||
* Most modern mobile touch slider and framework with hardware accelerated transitions
|
||||
* https://swiperjs.com
|
||||
*
|
||||
* Copyright 2014-2022 Vladimir Kharlampidi
|
||||
*
|
||||
* Released under the MIT License
|
||||
*
|
||||
* Released on: March 4, 2022
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: "swiper-icons";
|
||||
src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
:root {
|
||||
--swiper-theme-color: #007aff;
|
||||
}
|
||||
.swiper {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
/* Fix of Webkit flickering */
|
||||
z-index: 1;
|
||||
}
|
||||
.swiper-vertical > .swiper-wrapper {
|
||||
flex-direction: column;
|
||||
}
|
||||
.swiper-wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
transition-property: transform;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
.swiper-android .swiper-slide,
|
||||
.swiper-wrapper {
|
||||
transform: translate3d(0px, 0, 0);
|
||||
}
|
||||
.swiper-pointer-events {
|
||||
touch-action: pan-y;
|
||||
}
|
||||
.swiper-pointer-events.swiper-vertical {
|
||||
touch-action: pan-x;
|
||||
}
|
||||
.swiper-slide {
|
||||
flex-shrink: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
transition-property: transform;
|
||||
}
|
||||
.swiper-slide-invisible-blank {
|
||||
visibility: hidden;
|
||||
}
|
||||
/* Auto Height */
|
||||
.swiper-autoheight,
|
||||
.swiper-autoheight .swiper-slide {
|
||||
height: auto;
|
||||
}
|
||||
.swiper-autoheight .swiper-wrapper {
|
||||
align-items: flex-start;
|
||||
transition-property: transform, height;
|
||||
}
|
||||
.swiper-backface-hidden .swiper-slide {
|
||||
transform: translateZ(0);
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
/* 3D Effects */
|
||||
.swiper-3d,
|
||||
.swiper-3d.swiper-css-mode .swiper-wrapper {
|
||||
perspective: 1200px;
|
||||
}
|
||||
.swiper-3d .swiper-wrapper,
|
||||
.swiper-3d .swiper-slide,
|
||||
.swiper-3d .swiper-slide-shadow,
|
||||
.swiper-3d .swiper-slide-shadow-left,
|
||||
.swiper-3d .swiper-slide-shadow-right,
|
||||
.swiper-3d .swiper-slide-shadow-top,
|
||||
.swiper-3d .swiper-slide-shadow-bottom,
|
||||
.swiper-3d .swiper-cube-shadow {
|
||||
transform-style: preserve-3d;
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow,
|
||||
.swiper-3d .swiper-slide-shadow-left,
|
||||
.swiper-3d .swiper-slide-shadow-right,
|
||||
.swiper-3d .swiper-slide-shadow-top,
|
||||
.swiper-3d .swiper-slide-shadow-bottom {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
pointer-events: none;
|
||||
z-index: 10;
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow {
|
||||
background: rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-left {
|
||||
background-image: linear-gradient(
|
||||
to left,
|
||||
rgba(0, 0, 0, 0.5),
|
||||
rgba(0, 0, 0, 0)
|
||||
);
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-right {
|
||||
background-image: linear-gradient(
|
||||
to right,
|
||||
rgba(0, 0, 0, 0.5),
|
||||
rgba(0, 0, 0, 0)
|
||||
);
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-top {
|
||||
background-image: linear-gradient(
|
||||
to top,
|
||||
rgba(0, 0, 0, 0.5),
|
||||
rgba(0, 0, 0, 0)
|
||||
);
|
||||
}
|
||||
.swiper-3d .swiper-slide-shadow-bottom {
|
||||
background-image: linear-gradient(
|
||||
to bottom,
|
||||
rgba(0, 0, 0, 0.5),
|
||||
rgba(0, 0, 0, 0)
|
||||
);
|
||||
}
|
||||
/* CSS Mode */
|
||||
.swiper-css-mode > .swiper-wrapper {
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
/* For Firefox */
|
||||
-ms-overflow-style: none;
|
||||
/* For Internet Explorer and Edge */
|
||||
}
|
||||
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
.swiper-css-mode > .swiper-wrapper > .swiper-slide {
|
||||
scroll-snap-align: start start;
|
||||
}
|
||||
.swiper-horizontal.swiper-css-mode > .swiper-wrapper {
|
||||
scroll-snap-type: x mandatory;
|
||||
}
|
||||
.swiper-vertical.swiper-css-mode > .swiper-wrapper {
|
||||
scroll-snap-type: y mandatory;
|
||||
}
|
||||
.swiper-centered > .swiper-wrapper::before {
|
||||
content: "";
|
||||
flex-shrink: 0;
|
||||
order: 9999;
|
||||
}
|
||||
.swiper-centered.swiper-horizontal
|
||||
> .swiper-wrapper
|
||||
> .swiper-slide:first-child {
|
||||
margin-inline-start: var(--swiper-centered-offset-before);
|
||||
}
|
||||
.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
|
||||
height: 100%;
|
||||
min-height: 1px;
|
||||
width: var(--swiper-centered-offset-after);
|
||||
}
|
||||
.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
|
||||
margin-block-start: var(--swiper-centered-offset-before);
|
||||
}
|
||||
.swiper-centered.swiper-vertical > .swiper-wrapper::before {
|
||||
width: 100%;
|
||||
min-width: 1px;
|
||||
height: var(--swiper-centered-offset-after);
|
||||
}
|
||||
.swiper-centered > .swiper-wrapper > .swiper-slide {
|
||||
scroll-snap-align: center center;
|
||||
}
|
||||
.swiper-virtual .swiper-slide {
|
||||
-webkit-backface-visibility: hidden;
|
||||
transform: translateZ(0);
|
||||
}
|
||||
.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
|
||||
height: 1px;
|
||||
width: var(--swiper-virtual-size);
|
||||
}
|
||||
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
|
||||
width: 1px;
|
||||
height: var(--swiper-virtual-size);
|
||||
}
|
||||
:root {
|
||||
--swiper-navigation-size: 44px;
|
||||
/*
|
||||
--swiper-navigation-color: var(--swiper-theme-color);
|
||||
*/
|
||||
}
|
||||
.swiper-button-prev,
|
||||
.swiper-button-next {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: calc(var(--swiper-navigation-size) / 44 * 27);
|
||||
height: var(--swiper-navigation-size);
|
||||
margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: var(--swiper-navigation-color, var(--swiper-theme-color));
|
||||
}
|
||||
.swiper-button-prev.swiper-button-disabled,
|
||||
.swiper-button-next.swiper-button-disabled {
|
||||
opacity: 0.35;
|
||||
cursor: auto;
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-button-prev:after,
|
||||
.swiper-button-next:after {
|
||||
font-family: swiper-icons;
|
||||
font-size: var(--swiper-navigation-size);
|
||||
text-transform: none !important;
|
||||
letter-spacing: 0;
|
||||
text-transform: none;
|
||||
font-variant: initial;
|
||||
line-height: 1;
|
||||
}
|
||||
.swiper-button-prev,
|
||||
.swiper-rtl .swiper-button-next {
|
||||
left: 10px;
|
||||
right: auto;
|
||||
}
|
||||
.swiper-button-prev:after,
|
||||
.swiper-rtl .swiper-button-next:after {
|
||||
content: "prev";
|
||||
}
|
||||
.swiper-button-next,
|
||||
.swiper-rtl .swiper-button-prev {
|
||||
right: 10px;
|
||||
left: auto;
|
||||
}
|
||||
.swiper-button-next:after,
|
||||
.swiper-rtl .swiper-button-prev:after {
|
||||
content: "next";
|
||||
}
|
||||
.swiper-button-lock {
|
||||
display: none;
|
||||
}
|
||||
:root {
|
||||
/*
|
||||
--swiper-pagination-color: var(--swiper-theme-color);
|
||||
--swiper-pagination-bullet-size: 8px;
|
||||
--swiper-pagination-bullet-width: 8px;
|
||||
--swiper-pagination-bullet-height: 8px;
|
||||
--swiper-pagination-bullet-inactive-color: #000;
|
||||
--swiper-pagination-bullet-inactive-opacity: 0.2;
|
||||
--swiper-pagination-bullet-opacity: 1;
|
||||
--swiper-pagination-bullet-horizontal-gap: 4px;
|
||||
--swiper-pagination-bullet-vertical-gap: 6px;
|
||||
*/
|
||||
}
|
||||
.swiper-pagination {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
transition: 300ms opacity;
|
||||
transform: translate3d(0, 0, 0);
|
||||
z-index: 10;
|
||||
}
|
||||
.swiper-pagination.swiper-pagination-hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
/* Common Styles */
|
||||
.swiper-pagination-fraction,
|
||||
.swiper-pagination-custom,
|
||||
.swiper-horizontal > .swiper-pagination-bullets,
|
||||
.swiper-pagination-bullets.swiper-pagination-horizontal {
|
||||
bottom: 10px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
/* Bullets */
|
||||
.swiper-pagination-bullets-dynamic {
|
||||
overflow: hidden;
|
||||
font-size: 0;
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
|
||||
transform: scale(0.33);
|
||||
position: relative;
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
|
||||
transform: scale(1);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
|
||||
transform: scale(1);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
|
||||
transform: scale(0.66);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
|
||||
transform: scale(0.33);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
|
||||
transform: scale(0.66);
|
||||
}
|
||||
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
|
||||
transform: scale(0.33);
|
||||
}
|
||||
.swiper-pagination-bullet {
|
||||
width: var(
|
||||
--swiper-pagination-bullet-width,
|
||||
var(--swiper-pagination-bullet-size, 8px)
|
||||
);
|
||||
height: var(
|
||||
--swiper-pagination-bullet-height,
|
||||
var(--swiper-pagination-bullet-size, 8px)
|
||||
);
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
background: var(--swiper-pagination-bullet-inactive-color, #000);
|
||||
opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
|
||||
}
|
||||
button.swiper-pagination-bullet {
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: none;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
.swiper-pagination-clickable .swiper-pagination-bullet {
|
||||
cursor: pointer;
|
||||
}
|
||||
.swiper-pagination-bullet:only-child {
|
||||
display: none !important;
|
||||
}
|
||||
.swiper-pagination-bullet-active {
|
||||
opacity: var(--swiper-pagination-bullet-opacity, 1);
|
||||
background: var(--swiper-pagination-color, var(--swiper-theme-color));
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets {
|
||||
right: 10px;
|
||||
top: 50%;
|
||||
transform: translate3d(0px, -50%, 0);
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets
|
||||
.swiper-pagination-bullet {
|
||||
margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
|
||||
display: block;
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 8px;
|
||||
}
|
||||
.swiper-vertical
|
||||
> .swiper-pagination-bullets.swiper-pagination-bullets-dynamic
|
||||
.swiper-pagination-bullet,
|
||||
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic
|
||||
.swiper-pagination-bullet {
|
||||
display: inline-block;
|
||||
transition:
|
||||
200ms transform,
|
||||
200ms top;
|
||||
}
|
||||
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
|
||||
.swiper-pagination-horizontal.swiper-pagination-bullets
|
||||
.swiper-pagination-bullet {
|
||||
margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
|
||||
}
|
||||
.swiper-horizontal
|
||||
> .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
|
||||
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
white-space: nowrap;
|
||||
}
|
||||
.swiper-horizontal
|
||||
> .swiper-pagination-bullets.swiper-pagination-bullets-dynamic
|
||||
.swiper-pagination-bullet,
|
||||
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic
|
||||
.swiper-pagination-bullet {
|
||||
transition:
|
||||
200ms transform,
|
||||
200ms left;
|
||||
}
|
||||
.swiper-horizontal.swiper-rtl
|
||||
> .swiper-pagination-bullets-dynamic
|
||||
.swiper-pagination-bullet {
|
||||
transition:
|
||||
200ms transform,
|
||||
200ms right;
|
||||
}
|
||||
/* Progress */
|
||||
.swiper-pagination-progressbar {
|
||||
background: rgba(0, 0, 0, 0.25);
|
||||
position: absolute;
|
||||
}
|
||||
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
|
||||
background: var(--swiper-pagination-color, var(--swiper-theme-color));
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
transform: scale(0);
|
||||
transform-origin: left top;
|
||||
}
|
||||
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
|
||||
transform-origin: right top;
|
||||
}
|
||||
.swiper-horizontal > .swiper-pagination-progressbar,
|
||||
.swiper-pagination-progressbar.swiper-pagination-horizontal,
|
||||
.swiper-vertical
|
||||
> .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
|
||||
.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {
|
||||
width: 100%;
|
||||
height: 4px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.swiper-vertical > .swiper-pagination-progressbar,
|
||||
.swiper-pagination-progressbar.swiper-pagination-vertical,
|
||||
.swiper-horizontal
|
||||
> .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
|
||||
.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {
|
||||
width: 4px;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.swiper-pagination-lock {
|
||||
display: none;
|
||||
}
|
||||
/* Scrollbar */
|
||||
.swiper-scrollbar {
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
-ms-touch-action: none;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.swiper-horizontal > .swiper-scrollbar {
|
||||
position: absolute;
|
||||
left: 1%;
|
||||
bottom: 3px;
|
||||
z-index: 50;
|
||||
height: 5px;
|
||||
width: 98%;
|
||||
}
|
||||
.swiper-vertical > .swiper-scrollbar {
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 1%;
|
||||
z-index: 50;
|
||||
width: 5px;
|
||||
height: 98%;
|
||||
}
|
||||
.swiper-scrollbar-drag {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
border-radius: 10px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.swiper-scrollbar-cursor-drag {
|
||||
cursor: move;
|
||||
}
|
||||
.swiper-scrollbar-lock {
|
||||
display: none;
|
||||
}
|
||||
.swiper-zoom-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
.swiper-zoom-container > img,
|
||||
.swiper-zoom-container > svg,
|
||||
.swiper-zoom-container > canvas {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
.swiper-slide-zoomed {
|
||||
cursor: move;
|
||||
}
|
||||
/* Preloader */
|
||||
:root {
|
||||
/*
|
||||
--swiper-preloader-color: var(--swiper-theme-color);
|
||||
*/
|
||||
}
|
||||
.swiper-lazy-preloader {
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-left: -21px;
|
||||
margin-top: -21px;
|
||||
z-index: 10;
|
||||
transform-origin: 50%;
|
||||
box-sizing: border-box;
|
||||
border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
|
||||
border-radius: 50%;
|
||||
border-top-color: transparent;
|
||||
}
|
||||
.swiper-slide-visible .swiper-lazy-preloader {
|
||||
animation: swiper-preloader-spin 1s infinite linear;
|
||||
}
|
||||
.swiper-lazy-preloader-white {
|
||||
--swiper-preloader-color: #fff;
|
||||
}
|
||||
.swiper-lazy-preloader-black {
|
||||
--swiper-preloader-color: #000;
|
||||
}
|
||||
@keyframes swiper-preloader-spin {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
/* a11y */
|
||||
.swiper .swiper-notification {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
z-index: -1000;
|
||||
}
|
||||
.swiper-free-mode > .swiper-wrapper {
|
||||
transition-timing-function: ease-out;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.swiper-grid > .swiper-wrapper {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.swiper-grid-column > .swiper-wrapper {
|
||||
flex-wrap: wrap;
|
||||
flex-direction: column;
|
||||
}
|
||||
.swiper-fade.swiper-free-mode .swiper-slide {
|
||||
transition-timing-function: ease-out;
|
||||
}
|
||||
.swiper-fade .swiper-slide {
|
||||
pointer-events: none;
|
||||
transition-property: opacity;
|
||||
}
|
||||
.swiper-fade .swiper-slide .swiper-slide {
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-fade .swiper-slide-active,
|
||||
.swiper-fade .swiper-slide-active .swiper-slide-active {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.swiper-cube {
|
||||
overflow: visible;
|
||||
}
|
||||
.swiper-cube .swiper-slide {
|
||||
pointer-events: none;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
z-index: 1;
|
||||
visibility: hidden;
|
||||
transform-origin: 0 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.swiper-cube .swiper-slide .swiper-slide {
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-cube.swiper-rtl .swiper-slide {
|
||||
transform-origin: 100% 0;
|
||||
}
|
||||
.swiper-cube .swiper-slide-active,
|
||||
.swiper-cube .swiper-slide-active .swiper-slide-active {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.swiper-cube .swiper-slide-active,
|
||||
.swiper-cube .swiper-slide-next,
|
||||
.swiper-cube .swiper-slide-prev,
|
||||
.swiper-cube .swiper-slide-next + .swiper-slide {
|
||||
pointer-events: auto;
|
||||
visibility: visible;
|
||||
}
|
||||
.swiper-cube .swiper-slide-shadow-top,
|
||||
.swiper-cube .swiper-slide-shadow-bottom,
|
||||
.swiper-cube .swiper-slide-shadow-left,
|
||||
.swiper-cube .swiper-slide-shadow-right {
|
||||
z-index: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
.swiper-cube .swiper-cube-shadow {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
opacity: 0.6;
|
||||
z-index: 0;
|
||||
}
|
||||
.swiper-cube .swiper-cube-shadow:before {
|
||||
content: "";
|
||||
background: #000;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
filter: blur(50px);
|
||||
}
|
||||
.swiper-flip {
|
||||
overflow: visible;
|
||||
}
|
||||
.swiper-flip .swiper-slide {
|
||||
pointer-events: none;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
z-index: 1;
|
||||
}
|
||||
.swiper-flip .swiper-slide .swiper-slide {
|
||||
pointer-events: none;
|
||||
}
|
||||
.swiper-flip .swiper-slide-active,
|
||||
.swiper-flip .swiper-slide-active .swiper-slide-active {
|
||||
pointer-events: auto;
|
||||
}
|
||||
.swiper-flip .swiper-slide-shadow-top,
|
||||
.swiper-flip .swiper-slide-shadow-bottom,
|
||||
.swiper-flip .swiper-slide-shadow-left,
|
||||
.swiper-flip .swiper-slide-shadow-right {
|
||||
z-index: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
.swiper-creative .swiper-slide {
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
overflow: hidden;
|
||||
transition-property: transform, opacity, height;
|
||||
}
|
||||
.swiper-cards {
|
||||
overflow: visible;
|
||||
}
|
||||
.swiper-cards .swiper-slide {
|
||||
transform-origin: center bottom;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
overflow: hidden;
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
html {
|
||||
@apply text-base-sm md:text-base;
|
||||
}
|
||||
|
||||
body {
|
||||
@apply bg-body text-base dark:bg-darkmode-body font-primary font-normal leading-relaxed text-text dark:text-darkmode-text;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
@apply font-secondary font-bold leading-tight text-dark dark:text-darkmode-dark;
|
||||
}
|
||||
|
||||
h1,
|
||||
.h1 {
|
||||
@apply text-h1-sm md:text-h1;
|
||||
}
|
||||
|
||||
h2,
|
||||
.h2 {
|
||||
@apply text-h2-sm md:text-h2;
|
||||
}
|
||||
|
||||
h3,
|
||||
.h3 {
|
||||
@apply text-h3-sm md:text-h3;
|
||||
}
|
||||
|
||||
h4,
|
||||
.h4 {
|
||||
@apply text-h4;
|
||||
}
|
||||
|
||||
h5,
|
||||
.h5 {
|
||||
@apply text-h5;
|
||||
}
|
||||
|
||||
h6,
|
||||
.h6 {
|
||||
@apply text-h6;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
@apply font-semibold;
|
||||
}
|
||||
|
||||
code {
|
||||
@apply after:border-none;
|
||||
}
|
||||
|
||||
blockquote > p {
|
||||
@apply my-0 #{!important};
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
.btn {
|
||||
@apply inline-block rounded border border-transparent px-5 py-2 font-semibold capitalize transition;
|
||||
}
|
||||
|
||||
.btn-sm {
|
||||
@apply rounded-sm px-4 py-1.5 text-sm;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
@apply border-primary bg-primary dark:border-darkmode-primary dark:text-dark text-white dark:bg-darkmode-primary;
|
||||
}
|
||||
|
||||
.btn-outline-primary {
|
||||
@apply border-dark text-dark hover:bg-dark dark:hover:text-dark bg-transparent hover:text-white dark:border-darkmode-primary dark:text-white dark:hover:bg-darkmode-primary;
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
main {
|
||||
min-height: 70vh;
|
||||
}
|
||||
|
||||
// section style
|
||||
.section {
|
||||
@apply py-24 xl:py-28;
|
||||
&-sm {
|
||||
@apply py-16 xl:py-20;
|
||||
}
|
||||
}
|
||||
|
||||
// container
|
||||
.container {
|
||||
@apply mx-auto px-4 2xl:max-w-[1320px];
|
||||
}
|
||||
|
||||
// form style
|
||||
.form-input {
|
||||
@apply bg-theme-light text-dark placeholder:text-light focus:border-primary dark:border-darkmode-border dark:bg-darkmode-theme-light dark:text-darkmode-light w-full rounded border-transparent px-6 py-4 focus:ring-transparent;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
@apply font-secondary text-dark dark:text-darkmode-light mb-4 block text-xl font-normal;
|
||||
}
|
||||
|
||||
// social icons
|
||||
.social-icons {
|
||||
@apply space-x-4;
|
||||
li {
|
||||
@apply inline-block;
|
||||
a {
|
||||
@apply bg-primary dark:bg-darkmode-primary dark:text-dark flex h-9 w-9 items-center justify-center rounded text-center leading-9 text-white;
|
||||
svg {
|
||||
@apply h-5 w-5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// swiper pagination
|
||||
.swiper-pagination-bullet {
|
||||
@apply bg-theme-light dark:bg-darkmode-theme-light h-2.5 w-2.5 opacity-100 mx-1.5 #{!important};
|
||||
|
||||
&-active {
|
||||
@apply bg-primary dark:bg-darkmode-primary h-4 w-4 #{!important};
|
||||
}
|
||||
}
|
||||
|
||||
// content style
|
||||
.content {
|
||||
@apply prose max-w-none;
|
||||
@apply prose-headings:mb-[.3em] prose-headings:mt-[.6em] prose-headings:text-dark prose-headings:dark:text-darkmode-dark;
|
||||
@apply prose-h1:text-h1-sm md:prose-h1:text-h1;
|
||||
@apply prose-h2:text-h2-sm md:prose-h2:text-h2;
|
||||
@apply prose-h3:text-h3-sm md:prose-h3:text-h3;
|
||||
@apply prose-img:max-w-full prose-img:rounded;
|
||||
@apply prose-hr:border-border prose-hr:dark:border-darkmode-border;
|
||||
@apply prose-p:text-base prose-p:text-text prose-p:dark:text-darkmode-text;
|
||||
@apply prose-blockquote:rounded-lg prose-blockquote:border prose-blockquote:border-l-[10px] prose-blockquote:border-primary prose-blockquote:bg-theme-light prose-blockquote:px-8 prose-blockquote:py-10 prose-blockquote:font-secondary prose-blockquote:text-2xl prose-blockquote:not-italic prose-blockquote:text-dark prose-blockquote:dark:border-darkmode-primary prose-blockquote:dark:bg-darkmode-theme-light prose-blockquote:dark:text-darkmode-light;
|
||||
@apply prose-pre:rounded-lg prose-pre:bg-theme-light prose-pre:dark:bg-darkmode-theme-light;
|
||||
@apply prose-code:px-1 prose-code:dark:text-darkmode-light;
|
||||
@apply prose-strong:text-dark prose-strong:dark:text-darkmode-text;
|
||||
@apply prose-a:text-text prose-a:underline hover:prose-a:text-primary prose-a:dark:text-darkmode-text hover:prose-a:dark:text-darkmode-primary;
|
||||
@apply prose-li:text-text prose-li:dark:text-darkmode-text;
|
||||
@apply prose-table:relative prose-table:overflow-hidden prose-table:rounded-lg prose-table:before:absolute prose-table:before:left-0 prose-table:before:top-0 prose-table:before:h-full prose-table:before:w-full prose-table:before:rounded-[inherit] prose-table:before:border prose-table:before:content-[""] prose-table:before:dark:border-darkmode-border;
|
||||
@apply prose-thead:border-border prose-thead:bg-theme-light prose-thead:dark:border-darkmode-border prose-thead:dark:bg-darkmode-theme-light;
|
||||
@apply prose-th:relative prose-th:z-10 prose-th:px-4 prose-th:py-[18px] prose-th:text-dark prose-th:dark:text-darkmode-text;
|
||||
@apply prose-tr:border-border prose-tr:dark:border-darkmode-border;
|
||||
@apply prose-td:relative prose-td:z-10 prose-td:px-3 prose-td:py-[18px] prose-td:dark:text-darkmode-text;
|
||||
.btn {
|
||||
@apply dark:hover:text-dark no-underline hover:text-white #{!important};
|
||||
}
|
||||
}
|
||||
@ -1,2 +0,0 @@
|
||||
// DO NOT WRITE ANY STYLE IN THIS FILE
|
||||
// If you want to add your own styles, please write it in the `./assets/scss/custom.scss` file.
|
||||
@ -1,30 +0,0 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
@import "base";
|
||||
}
|
||||
|
||||
@layer components {
|
||||
@import "components";
|
||||
@import "navigation";
|
||||
@import "buttons";
|
||||
}
|
||||
|
||||
@layer utilities {
|
||||
@import "utilities";
|
||||
}
|
||||
|
||||
@import "search";
|
||||
@import "social-share";
|
||||
@import "gallery-slider";
|
||||
@import "images";
|
||||
@import "toc";
|
||||
@import "tab";
|
||||
@import "accordion";
|
||||
@import "modal";
|
||||
@import "notice";
|
||||
|
||||
@import "module-overrides";
|
||||
@import "custom";
|
||||
@ -1,58 +0,0 @@
|
||||
// table of contents
|
||||
.table-of-content {
|
||||
@apply overflow-hidden rounded;
|
||||
}
|
||||
|
||||
// share icons
|
||||
.share-icons {
|
||||
.share-link {
|
||||
@apply h-9 w-9 rounded leading-9;
|
||||
@apply bg-primary hover:bg-primary dark:bg-darkmode-primary dark:hover:bg-darkmode-primary;
|
||||
}
|
||||
.share-icon svg {
|
||||
@apply dark:fill-dark;
|
||||
}
|
||||
}
|
||||
|
||||
// notice
|
||||
.notice {
|
||||
@apply rounded-lg;
|
||||
}
|
||||
|
||||
// tab
|
||||
.tab {
|
||||
@apply border-border dark:border-darkmode-border overflow-hidden rounded-lg border;
|
||||
&-nav {
|
||||
@apply border-border bg-theme-light dark:border-darkmode-border dark:bg-darkmode-theme-light pl-4;
|
||||
|
||||
&-item {
|
||||
@apply text-dark dark:text-darkmode-dark px-8 text-lg #{!important};
|
||||
&.active {
|
||||
@apply border-dark dark:border-darkmode-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
&-content {
|
||||
&-panel {
|
||||
@apply px-4 pt-0 #{!important};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// accordion
|
||||
.accordion {
|
||||
@apply border-border bg-theme-light dark:border-darkmode-border dark:bg-darkmode-theme-light mb-6 overflow-hidden rounded-lg border;
|
||||
&-header {
|
||||
@apply text-dark dark:text-darkmode-dark;
|
||||
}
|
||||
}
|
||||
|
||||
// cookie consent
|
||||
.cookie-box {
|
||||
@apply rounded-lg #{!important};
|
||||
}
|
||||
|
||||
// slider
|
||||
.gallery-slider {
|
||||
@apply ml-0 #{!important};
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
// navbar toggler
|
||||
input#nav-toggle:checked + label #show-button {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
input#nav-toggle:checked + label #hide-button {
|
||||
@apply block;
|
||||
}
|
||||
|
||||
input#nav-toggle:checked ~ #nav-menu {
|
||||
@apply block;
|
||||
}
|
||||
|
||||
.header {
|
||||
@apply bg-body dark:bg-darkmode-body py-6;
|
||||
}
|
||||
|
||||
// navbar items
|
||||
.navbar {
|
||||
@apply relative flex flex-wrap items-center justify-between;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
@apply text-dark dark:text-darkmode-dark text-xl font-semibold;
|
||||
image {
|
||||
@apply max-h-full max-w-full;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
@apply text-center lg:text-left;
|
||||
}
|
||||
|
||||
// .nav-item {
|
||||
// @apply mx-3;
|
||||
// }
|
||||
|
||||
.nav-link {
|
||||
@apply text-dark hover:text-primary dark:text-darkmode-dark dark:hover:text-darkmode-primary block p-3 cursor-pointer font-semibold transition lg:px-2 lg:py-3;
|
||||
}
|
||||
|
||||
.nav-dropdown {
|
||||
@apply mr-0;
|
||||
& > svg {
|
||||
@apply pointer-events-none;
|
||||
}
|
||||
&.active {
|
||||
.nav-dropdown-list {
|
||||
@apply block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav-dropdown-list {
|
||||
@apply bg-body dark:bg-darkmode-body z-10 min-w-[180px] rounded p-4 shadow hidden lg:invisible lg:absolute lg:block lg:opacity-0;
|
||||
}
|
||||
|
||||
.nav-dropdown-item {
|
||||
@apply [&:not(:last-child)]:mb-2;
|
||||
}
|
||||
|
||||
.nav-dropdown-link {
|
||||
@apply text-dark hover:text-primary dark:text-darkmode-text dark:hover:text-darkmode-primary block py-1 font-semibold transition;
|
||||
}
|
||||
|
||||
//theme-switcher
|
||||
.theme-switcher {
|
||||
@apply inline-flex;
|
||||
|
||||
label {
|
||||
@apply bg-border relative inline-block h-4 w-6 cursor-pointer rounded-2xl lg:w-10;
|
||||
}
|
||||
|
||||
input {
|
||||
@apply absolute opacity-0;
|
||||
}
|
||||
|
||||
span {
|
||||
@apply bg-dark absolute -top-1 left-0 flex h-6 w-6 items-center justify-center rounded-full transition-all duration-300 dark:bg-white;
|
||||
}
|
||||
|
||||
input:checked + label {
|
||||
span {
|
||||
@apply lg:left-4;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
.bg-gradient {
|
||||
@apply dark:from-darkmode-theme-light dark:to-darkmode-body bg-gradient-to-b from-[rgba(249,249,249,1)] from-[0.53%] to-white to-[83.28%];
|
||||
}
|
||||
|
||||
.rounded-sm {
|
||||
@apply rounded-[4px];
|
||||
}
|
||||
.rounded {
|
||||
@apply rounded-[6px];
|
||||
}
|
||||
.rounded-lg {
|
||||
@apply rounded-[12px];
|
||||
}
|
||||
.rounded-xl {
|
||||
@apply rounded-[16px];
|
||||
}
|
||||
|
||||
.shadow {
|
||||
box-shadow: 0px 4px 40px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||