41 | {{ range where site.RegularPages ".Params.author" (.Title | urlize | lower) }}
42 |
43 | {{ .Render "article" }}
44 |
45 | {{ end }}
46 |
47 |
48 |
49 |
50 |
51 | {{ end }}
52 |
--------------------------------------------------------------------------------
/layouts/partials/essentials/script.html:
--------------------------------------------------------------------------------
1 |
2 | {{ $bootstrap := resources.Get "js/bootstrap.js" }}
3 | {{ $params := dict }}
4 | {{ $sourceMap := cond hugo.IsProduction "" "inline" }}
5 | {{ $opts := dict "sourceMap" $sourceMap "target" "es2018" "params" $params }}
6 | {{ $bootstrap = $bootstrap | js.Build $opts }}
7 | {{ if hugo.IsProduction }}
8 | {{ $bootstrap = $bootstrap | fingerprint "sha512" }}
9 | {{ end }}
10 |
11 |
12 |
13 | {{ $scripts := slice }}
14 | {{ range site.Params.plugins.js }}
15 | {{ if findRE "^http" .link }}
16 |
20 | {{ else }}
21 | {{ $scripts = $scripts | append (resources.Get .link) }}
22 | {{ end }}
23 | {{ end }}
24 |
25 |
26 |
27 | {{ $scripts = $scripts | append (resources.Get "js/script.js" | minify) }}
28 | {{ $scripts = $scripts | resources.Concat "js/script.js" | minify | fingerprint "sha512" }}
29 |
30 |
31 |
32 | {{ $pf:= site.Params.variables.font_primary }}
33 | {{ $sf:= site.Params.variables.font_secondary }}
34 |
46 |
47 |
48 | {{ partialCached "pwa.html" . }}
49 |
50 |
51 |
52 | {{ partialCached "cookie-consent.html" . }}
53 |
54 |
55 |
56 | {{ partialCached "adsense-script.html" . }}
57 |
--------------------------------------------------------------------------------
/layouts/partials/essentials/style.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | {{ $styles := slice }}
25 | {{ range site.Params.plugins.css }}
26 | {{ if findRE "^http" .link }}
27 |
33 | {{ else }}
34 | {{ $styles = $styles | append (resources.Get .link) }}
35 | {{ end }}
36 | {{ end }}
37 | {{ $styles := $styles | append (resources.Get "scss/style.scss" | resources.ExecuteAsTemplate "style.scss" . | toCSS) }}
38 | {{ $styles := $styles | resources.Concat "/css/style.css" | fingerprint "sha512" }}
39 |
40 |
41 |
42 | {{ if and hugo.IsProduction site.Params.purge_css }}
43 | {{ $styles = $styles | css.PostCSS | fingerprint "sha256" }}
44 | {{ $styles = $styles | resources.PostProcess }}
45 | {{ end }}
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/exampleSite/assets/images/waves/04.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.github/workflows/hugo.yml:
--------------------------------------------------------------------------------
1 | # Sample workflow for building and deploying a Hugo site to GitHub Pages
2 | name: Deploy Hugo site to Pages
3 |
4 | on:
5 | # Runs on pushes targeting the default branch
6 | push:
7 | branches: ["main"]
8 |
9 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
10 | permissions:
11 | contents: read
12 | pages: write
13 | id-token: write
14 |
15 | # Environment variables available to all jobs and steps in this workflow
16 | env:
17 | HUGO_ENV: production
18 | HUGO_VERSION: "0.128.0"
19 | GO_VERSION: "1.22.0"
20 | NODE_VERSION: "18.15.0"
21 | TINA_CLIENT_ID: ${{ vars.TINA_CLIENT_ID }}
22 | TINA_TOKEN: ${{ vars.TINA_TOKEN }}
23 |
24 | jobs:
25 | # Build job
26 | build:
27 | runs-on: ubuntu-latest
28 | steps:
29 | - uses: actions/checkout@v3
30 | - name: Set up Node.js
31 | uses: actions/setup-node@v3
32 | with:
33 | node-version: ${{ env.NODE_VERSION }}
34 |
35 | - name: Install Hugo
36 | run: |
37 | curl -LO "https://github.com/gohugoio/hugo/releases/download/v${{ env.HUGO_VERSION }}/hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz"
38 | tar -xvf hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz
39 | sudo mv hugo /usr/local/bin/
40 | rm hugo_extended_${{ env.HUGO_VERSION }}_Linux-64bit.tar.gz
41 | hugo version
42 |
43 | - name: Install Go
44 | run: |
45 | curl -LO "https://dl.google.com/go/go${{ env.GO_VERSION }}.linux-amd64.tar.gz"
46 | sudo tar -C /usr/local -xzf go${{ env.GO_VERSION }}.linux-amd64.tar.gz
47 | echo "export PATH=$PATH:/usr/local/go/bin" >> $GITHUB_ENV
48 | rm go${{ env.GO_VERSION }}.linux-amd64.tar.gz
49 | go version
50 |
51 | - name: Setup Project
52 | run: npm run project-setup
53 |
54 | - name: Install npm dependencies
55 | run: npm install
56 |
57 | - name: Publish to GitHub Pages
58 | run: npm run build
59 |
60 | - name: Upload artifact
61 | uses: actions/upload-pages-artifact@v1
62 | with:
63 | path: ./public
64 |
65 | # Deployment job
66 | deploy:
67 | environment:
68 | name: github-pages
69 | url: ${{ steps.deployment.outputs.page_url }}
70 | runs-on: ubuntu-latest
71 | needs: build
72 | steps:
73 | - name: Deploy to GitHub Pages
74 | id: deployment
75 | uses: actions/deploy-pages@v2
76 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-3.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-12"
3 | title: "Three reasons you DON’T need an app on the App Store"
4 | image: "images/blog/03.jpg"
5 | author: "derick-barker"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-6.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-09"
3 | title: "How to write a brief for a new website or app."
4 | image: "images/blog/06.jpg"
5 | author: "abdullah-al-shifat"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-4.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-11"
3 | title: "Five eCommerce lessons to learn from Bloom & Wild"
4 | image: "images/blog/04.jpg"
5 | author: "abdullah-al-shifat"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-5.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-10"
3 | title: "Using Wakanda for project management when working remote"
4 | image: "images/blog/05.jpg"
5 | author: "derick-barker"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-2.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-13"
3 | title: "Why you should launch your product in phases not after done"
4 | image: "images/blog/02.jpg"
5 | author: "derick-barker"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-7.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-08"
3 | title: "How and why we decided to launch an EMI scheme for our employees."
4 | image: "images/blog/02.jpg"
5 | author: "derick-barker"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-8.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-07"
3 | title: "What to consider before starting a business – Inside The Studio"
4 | image: "images/blog/03.jpg"
5 | author: "abdullah-al-shifat"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/exampleSite/content/english/blog/post-1.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: "2021-07-14"
3 | title: "The Real Product From the Buyers improvements in Overflow basis."
4 | image: "images/blog/01.jpg"
5 | author: "Abdullah Al Shifat"
6 | draft: false
7 | ---
8 |
9 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget
10 |
11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent
12 |
13 | Pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet Faucibus consectetur tempus adipiscing vitae. Nec blandit tincidunt nibh nisi, quam volutpat. In lacus laoreet diam risus. Mauris, risus faucibus sagittis sagittis tincidunt id justo. Diam massa pretium consequat mauris viverra. Sagittis eu libero
14 |
15 | > Facing a challenge in life is kind of a turn-on for an easy rider. When life gives you lemons, use them in your designs
16 | >
17 | > !Alexender Smith
18 |
19 | Consectetur adipiscing elit. Nec et ipsum ullamcorper venenatis fringilla. Pretium, purus eu nec vulputate vel habitant egestas. Congue ornare at ipsum, viverra. Vitae magna faucibus eros, lectus sociis. Etiam nunc amet id dignissim. Feugiat id tempor vel sit in ornare turpis posuere. Eu quisque integer non rhoncus elementum vel. Quis nec viverra lectus augue nec praesent volutpat tortor. Ipsum eget sed tempus luctus nisl. Ut etiam molestie mattis at faucibus mi at pellentesque. Pellentesque morbi nunc, curabitur arcu euismod suscipit. Duis mi sapien, donec non dictum
20 |
21 | Laoreet mauris odio ut nec. Nisl, sed adipiscing dignissim arcu placerat ornare pharetra nec in. Ultrices in nisl potenti vitae tempus. Auctor consectetur luctus eu in amet sagittis. Dis urna, vel hendrerit convallis cursus id.
22 |
23 | Senectus feugiat faucibus commodo egestas leo vitae in morbi. Enim arcu dignissim mauris, eu, eget pharetra odio amet pellentesque. Egestas nisi adipiscing sed in lectus. Vitae ultrices malesuada aliquet dignissim. Faucibus non tristique eu.
24 |
--------------------------------------------------------------------------------
/scripts/projectSetup.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const getFolderName = (rootfolder) => {
5 | const configPath = path.join(rootfolder, "exampleSite/hugo.toml");
6 | const getConfig = fs.readFileSync(configPath, "utf8");
7 | const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/);
8 | let selectedTheme = null;
9 | if (match && match[1]) {
10 | selectedTheme = match[1];
11 | }
12 | return selectedTheme;
13 | };
14 |
15 | const deleteFolder = (folderPath) => {
16 | if (fs.existsSync(folderPath)) {
17 | fs.rmSync(folderPath, { recursive: true, force: true });
18 | }
19 | };
20 |
21 | const createNewfolder = (rootfolder, folderName) => {
22 | const newFolder = path.join(rootfolder, folderName);
23 | fs.mkdirSync(newFolder, { recursive: true });
24 | return newFolder;
25 | };
26 |
27 | const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => {
28 | const directory = path.join(rootFolder);
29 | const items = fs.readdirSync(directory, { withFileTypes: true });
30 | items.forEach((item) => {
31 | if (item.isDirectory()) {
32 | createNewfolder(destinationRoot, item.name);
33 | iterateFilesAndFolders(path.join(directory, item.name), {
34 | currentFolder: item.name,
35 | destinationRoot: path.join(destinationRoot, item.name),
36 | });
37 | } else {
38 | const sourceFile = path.join(directory, item.name);
39 | const destinationFile = path.join(destinationRoot, item.name);
40 | fs.renameSync(sourceFile, destinationFile);
41 | }
42 | });
43 | };
44 |
45 | const setupProject = () => {
46 | const rootfolder = path.join(__dirname, "../");
47 | if (!fs.existsSync(path.join(rootfolder, "themes"))) {
48 | const folderList = ["layouts", "assets", "static"];
49 | const folderName = getFolderName(rootfolder);
50 | const newfolderName = createNewfolder(
51 | path.join(rootfolder, "themes"),
52 | folderName
53 | );
54 |
55 | folderList.forEach((folder) => {
56 | const source = path.join(rootfolder, folder);
57 | const destination = path.join(newfolderName, folder);
58 | if (fs.existsSync(source)) {
59 | fs.mkdirSync(destination, { recursive: true });
60 | iterateFilesAndFolders(source, {
61 | currentFolder: folder,
62 | destinationRoot: destination,
63 | });
64 | deleteFolder(source);
65 | }
66 | });
67 |
68 | const exampleSite = path.join(rootfolder, "exampleSite");
69 | iterateFilesAndFolders(exampleSite, { destinationRoot: rootfolder });
70 | deleteFolder(exampleSite);
71 | }
72 | };
73 |
74 | setupProject();
75 |
--------------------------------------------------------------------------------
/exampleSite/config/_default/module.toml:
--------------------------------------------------------------------------------
1 | [hugoVersion]
2 | extended = true
3 | min = "0.128.0"
4 |
5 | [[imports]]
6 | path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5"
7 |
8 | [[imports]]
9 | path = "github.com/gethugothemes/hugo-modules/components/preloader"
10 |
11 | [[imports]]
12 | path = "github.com/gethugothemes/hugo-modules/components/social-share"
13 |
14 | [[imports]]
15 | path = "github.com/gethugothemes/hugo-modules/components/cookie-consent"
16 |
17 | [[imports]]
18 | path = "github.com/gethugothemes/hugo-modules/components/custom-script"
19 |
20 | [[imports]]
21 | path = "github.com/gethugothemes/hugo-modules/components/render-link"
22 |
23 | [[imports]]
24 | path = "github.com/gethugothemes/hugo-modules/icons/font-awesome"
25 |
26 | [[imports]]
27 | path = "github.com/gethugothemes/hugo-modules/components/valine-comment"
28 |
29 | [[imports]]
30 | path = "github.com/gethugothemes/hugo-modules/components/crisp-chat"
31 |
32 | [[imports]]
33 | path = "github.com/gethugothemes/hugo-modules/pwa"
34 |
35 | [[imports]]
36 | path = "github.com/gethugothemes/hugo-modules/images"
37 |
38 | [[imports]]
39 | path = "github.com/gethugothemes/hugo-modules/shortcodes/buttons"
40 |
41 | [[imports]]
42 | path = "github.com/gethugothemes/hugo-modules/shortcodes/codepen"
43 |
44 | [[imports]]
45 | path = "github.com/gethugothemes/hugo-modules/shortcodes/collapse"
46 |
47 | [[imports]]
48 | path = "github.com/gethugothemes/hugo-modules/shortcodes/notice"
49 |
50 | [[imports]]
51 | path = "github.com/gethugothemes/hugo-modules/shortcodes/video"
52 |
53 | [[imports]]
54 | path = "github.com/gethugothemes/hugo-modules/shortcodes/tabs"
55 |
56 | [[imports]]
57 | path = "github.com/gethugothemes/hugo-modules/shortcodes/gallery"
58 |
59 | [[imports]]
60 | path = "github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents"
61 |
62 | [[imports]]
63 | path = "github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite"
64 |
65 | [[imports]]
66 | path = "github.com/gethugothemes/hugo-modules/shortcodes/vimeo-lite"
67 |
68 | [[imports]]
69 | path = "github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics"
70 |
71 | [[imports]]
72 | path = "github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics"
73 |
74 | [[imports]]
75 | path = "github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics"
76 |
77 | [[imports]]
78 | path = "github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics"
79 |
80 | [[imports]]
81 | path = "github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager"
82 |
83 | [[imports]]
84 | path = "github.com/gethugothemes/hugo-modules/seo-tools/site-verifications"
85 |
86 | [[imports]]
87 | path = "github.com/gethugothemes/hugo-modules/seo-tools/basic-seo"
88 |
89 | [[imports]]
90 | path = "github.com/gethugothemes/hugo-modules/gzip-caching"
91 |
92 | [[imports]]
93 | path = "github.com/gethugothemes/hugo-modules/adsense"
--------------------------------------------------------------------------------
/scripts/themeSetup.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const createNewfolder = (rootfolder, folderName) => {
5 | const newFolder = path.join(rootfolder, folderName);
6 | fs.mkdirSync(newFolder, { recursive: true });
7 | return newFolder;
8 | };
9 |
10 | const deleteFolder = (folderPath) => {
11 | if (fs.existsSync(folderPath)) {
12 | fs.rmSync(folderPath, { recursive: true, force: true });
13 | }
14 | };
15 |
16 | const getFolderName = (rootfolder) => {
17 | const configPath = path.join(rootfolder, "exampleSite/hugo.toml");
18 | const getConfig = fs.readFileSync(configPath, "utf8");
19 | const match = getConfig.match(/theme\s*=\s*\[?"([^"\]]+)"\]?/);
20 | let selectedTheme = null;
21 | if (match && match[1]) {
22 | selectedTheme = match[1];
23 | }
24 | return selectedTheme;
25 | };
26 |
27 | const iterateFilesAndFolders = (rootFolder, { destinationRoot }) => {
28 | const directory = path.join(rootFolder);
29 | const items = fs.readdirSync(directory, { withFileTypes: true });
30 | items.forEach((item) => {
31 | if (item.isDirectory()) {
32 | createNewfolder(destinationRoot, item.name);
33 | iterateFilesAndFolders(path.join(directory, item.name), {
34 | currentFolder: item.name,
35 | destinationRoot: path.join(destinationRoot, item.name),
36 | });
37 | } else {
38 | const sourceFile = path.join(directory, item.name);
39 | const destinationFile = path.join(destinationRoot, item.name);
40 | fs.renameSync(sourceFile, destinationFile);
41 | }
42 | });
43 | };
44 |
45 | const setupTheme = () => {
46 | const rootFolder = path.join(__dirname, "../");
47 |
48 | if (!fs.existsSync(path.join(rootFolder, "exampleSite"))) {
49 | const includesFiles = [
50 | "postcss.config.js",
51 | "go.mod",
52 | "hugo.toml",
53 | "assets",
54 | "config",
55 | "data",
56 | "content",
57 | "i18n",
58 | "static",
59 | ];
60 |
61 | const folder = createNewfolder(rootFolder, "exampleSite");
62 |
63 | fs.readdirSync(rootFolder, { withFileTypes: true }).forEach((file) => {
64 | if (includesFiles.includes(file.name)) {
65 | if (file.isDirectory()) {
66 | const destination = path.join(rootFolder, "exampleSite", file.name);
67 | fs.mkdirSync(destination, { recursive: true });
68 | iterateFilesAndFolders(path.join(rootFolder, file.name), {
69 | destinationRoot: destination,
70 | });
71 | deleteFolder(path.join(rootFolder, file.name));
72 | } else {
73 | fs.renameSync(
74 | path.join(rootFolder, file.name),
75 | path.join(folder, file.name)
76 | );
77 | }
78 | }
79 | });
80 |
81 | const themes = path.join(rootFolder, "themes");
82 | iterateFilesAndFolders(path.join(themes, getFolderName(rootFolder)), {
83 | destinationRoot: rootFolder,
84 | });
85 | deleteFolder(themes);
86 | }
87 | };
88 |
89 | setupTheme();
90 |
--------------------------------------------------------------------------------
/assets/plugins/cookie/cookie.js:
--------------------------------------------------------------------------------
1 | !(function (e) {
2 | var n;
3 | if (
4 | ("function" == typeof define && define.amd && (define(e), (n = !0)),
5 | "object" == typeof exports && ((module.exports = e()), (n = !0)),
6 | !n)
7 | ) {
8 | var t = window.Cookies,
9 | o = (window.Cookies = e());
10 | o.noConflict = function () {
11 | return (window.Cookies = t), o;
12 | };
13 | }
14 | })(function () {
15 | function f() {
16 | for (var e = 0, n = {}; e < arguments.length; e++) {
17 | var t = arguments[e];
18 | for (var o in t) n[o] = t[o];
19 | }
20 | return n;
21 | }
22 | function a(e) {
23 | return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
24 | }
25 | return (function e(u) {
26 | function c() {}
27 | function t(e, n, t) {
28 | if ("undefined" != typeof document) {
29 | "number" == typeof (t = f({ path: "/" }, c.defaults, t)).expires &&
30 | (t.expires = new Date(1 * new Date() + 864e5 * t.expires)),
31 | (t.expires = t.expires ? t.expires.toUTCString() : "");
32 | try {
33 | var o = JSON.stringify(n);
34 | /^[\{\[]/.test(o) && (n = o);
35 | } catch (e) {}
36 | (n = u.write
37 | ? u.write(n, e)
38 | : encodeURIComponent(String(n)).replace(
39 | /%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,
40 | decodeURIComponent
41 | )),
42 | (e = encodeURIComponent(String(e))
43 | .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
44 | .replace(/[\(\)]/g, escape));
45 | var r = "";
46 | for (var i in t)
47 | t[i] &&
48 | ((r += "; " + i), !0 !== t[i] && (r += "=" + t[i].split(";")[0]));
49 | return (document.cookie = e + "=" + n + r);
50 | }
51 | }
52 | function n(e, n) {
53 | if ("undefined" != typeof document) {
54 | for (
55 | var t = {},
56 | o = document.cookie ? document.cookie.split("; ") : [],
57 | r = 0;
58 | r < o.length;
59 | r++
60 | ) {
61 | var i = o[r].split("="),
62 | c = i.slice(1).join("=");
63 | n || '"' !== c.charAt(0) || (c = c.slice(1, -1));
64 | try {
65 | var f = a(i[0]);
66 | if (((c = (u.read || u)(c, f) || a(c)), n))
67 | try {
68 | c = JSON.parse(c);
69 | } catch (e) {}
70 | if (((t[f] = c), e === f)) break;
71 | } catch (e) {}
72 | }
73 | return e ? t[e] : t;
74 | }
75 | }
76 | return (
77 | (c.set = t),
78 | (c.get = function (e) {
79 | return n(e, !1);
80 | }),
81 | (c.getJSON = function (e) {
82 | return n(e, !0);
83 | }),
84 | (c.remove = function (e, n) {
85 | t(e, "", f(n, { expires: -1 }));
86 | }),
87 | (c.defaults = {}),
88 | (c.withConverter = e),
89 | c
90 | );
91 | })(function () {});
92 | });
93 |
--------------------------------------------------------------------------------
/exampleSite/go.mod:
--------------------------------------------------------------------------------
1 | module gethugothemes.com
2 |
3 | go 1.20
4 |
5 | require (
6 | github.com/gethugothemes/hugo-modules/adsense v0.0.0-20240925042433-d2b5d05977e8 // indirect
7 | github.com/gethugothemes/hugo-modules/components/cookie-consent v0.0.0-20240925042433-d2b5d05977e8 // indirect
8 | github.com/gethugothemes/hugo-modules/components/crisp-chat v0.0.0-20240925042433-d2b5d05977e8 // indirect
9 | github.com/gethugothemes/hugo-modules/components/custom-script v0.0.0-20240925042433-d2b5d05977e8 // indirect
10 | github.com/gethugothemes/hugo-modules/components/preloader v0.0.0-20240925042433-d2b5d05977e8 // indirect
11 | github.com/gethugothemes/hugo-modules/components/render-link v0.0.0-20240925042433-d2b5d05977e8 // indirect
12 | github.com/gethugothemes/hugo-modules/components/social-share v0.0.0-20240925042433-d2b5d05977e8 // indirect
13 | github.com/gethugothemes/hugo-modules/components/valine-comment v0.0.0-20240925042433-d2b5d05977e8 // indirect
14 | github.com/gethugothemes/hugo-modules/gzip-caching v0.0.0-20240925042433-d2b5d05977e8 // indirect
15 | github.com/gethugothemes/hugo-modules/icons/font-awesome v0.0.0-20240925042433-d2b5d05977e8 // indirect
16 | github.com/gethugothemes/hugo-modules/images v0.0.0-20240925042433-d2b5d05977e8 // indirect
17 | github.com/gethugothemes/hugo-modules/pwa v0.0.0-20240925042433-d2b5d05977e8 // indirect
18 | github.com/gethugothemes/hugo-modules/seo-tools/baidu-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
19 | github.com/gethugothemes/hugo-modules/seo-tools/basic-seo v0.0.0-20240925042433-d2b5d05977e8 // indirect
20 | github.com/gethugothemes/hugo-modules/seo-tools/counter-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
21 | github.com/gethugothemes/hugo-modules/seo-tools/google-tag-manager v0.0.0-20240925042433-d2b5d05977e8 // indirect
22 | github.com/gethugothemes/hugo-modules/seo-tools/matomo-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
23 | github.com/gethugothemes/hugo-modules/seo-tools/plausible-analytics v0.0.0-20240925042433-d2b5d05977e8 // indirect
24 | github.com/gethugothemes/hugo-modules/seo-tools/site-verifications v0.0.0-20240925042433-d2b5d05977e8 // indirect
25 | github.com/gethugothemes/hugo-modules/shortcodes/buttons v0.0.0-20240925042433-d2b5d05977e8 // indirect
26 | github.com/gethugothemes/hugo-modules/shortcodes/codepen v0.0.0-20240925042433-d2b5d05977e8 // indirect
27 | github.com/gethugothemes/hugo-modules/shortcodes/collapse v0.0.0-20240925042433-d2b5d05977e8 // indirect
28 | github.com/gethugothemes/hugo-modules/shortcodes/gallery v0.0.0-20240925042433-d2b5d05977e8 // indirect
29 | github.com/gethugothemes/hugo-modules/shortcodes/notice v0.0.0-20240925042433-d2b5d05977e8 // indirect
30 | github.com/gethugothemes/hugo-modules/shortcodes/table-of-contents v0.0.0-20240925042433-d2b5d05977e8 // indirect
31 | github.com/gethugothemes/hugo-modules/shortcodes/tabs v0.0.0-20240925042433-d2b5d05977e8 // indirect
32 | github.com/gethugothemes/hugo-modules/shortcodes/video v0.0.0-20240925042433-d2b5d05977e8 // indirect
33 | github.com/gethugothemes/hugo-modules/shortcodes/vimeo-lite v0.0.0-20240925042433-d2b5d05977e8 // indirect
34 | github.com/gethugothemes/hugo-modules/shortcodes/youtube-lite v0.0.0-20240925042433-d2b5d05977e8 // indirect
35 | github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20200 // indirect
36 | )
37 |
--------------------------------------------------------------------------------
/exampleSite/content/english/terms-and-conditions.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Terms & Conditions"
3 | date: "2023-01-14"
4 | layout: "terms-and-conditions"
5 | draft: false
6 |
7 | description: "By Using The Service Or Clicking “I Agree”, The User Is Agreeing To Be Bound By This Agreement. If You Are Agreeing To This Agreement On Behalf Of Or For The Benefit Of A Company, Then The User Represents And Warrants That It Has The Necessary Authority To Agree To This Agreement On The Company’s"
8 | ---
9 |
10 | ### 1. Definitions
11 |
12 | We collect certain identifying personal data when you sign up to our Service such as your name, email address, PayPal address (if different from email address), and telephone number. The personal data we collect from you is disclosed only in accordance with our Terms of Service and/or this Privacy Policy.Conclude collects Slack account and access information from Users for the purposes of connecting to the Slack API and to authenticate access to information on the Conclude website. Whenever you visit our Site, we may collect non-identifying information from you, such as referring URL, browser, operating system, cookie information, and Internet Service Provider. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, this information alone cannot usually be used to identify you.The term "personal data" does not include any anonymized and aggregated data made on the basis of personal data, which are wholly owned by Conclude.
13 |
14 | ### 2. General Terms
15 |
16 | #### Service Provided AS IS:
17 |
18 | The Service is provided for free during this pilot project, and is provided "as is" with no warranty. Conclude will provide User support for the Service, however; Conclude is not committed to any level of service or availability of the Service. A further description of the Service and our user support is available at the Site.
19 |
20 | #### Interoperation with Slack:
21 |
22 | The Service interoperates with Slack.com, and depends on the continuing availability and access to Slack. If for any reason Conclude cannot access or use Slack (including without limitation, change in terms or increase in fees charged by Slack), Conclude may not be able to provide all of the functions of its Service. No refund or credit, if applicable, will be provided for temporary unavailability of Slack (for example, maintenance windows).
23 |
24 | #### Company Liability:
25 |
26 | If you enter into this agreement on behalf of a company, you hereby agree that the company is responsible under this Agreement for all actions and omissions conducted by its designated users of the Service.
27 |
28 | ### 4. Rules of Use
29 |
30 | 1. must keep passwords secure and confidential;
31 | 2. are solely responsible for User Data and all activity in their account while using the Service;
32 | 3. must use commercially reasonable efforts to prevent unauthorized access to their account, and notify Conclude promptly of any such unauthorized access; and
33 | 4. may use the Service only in accordance with Conclude's online user guide and all applicable laws and regulations.
34 |
35 | #### You must not:
36 |
37 | - Enhance or improve User experience, our Site, or our Service.
38 | - Process transactions.
39 | - Send emails about our Site or respond to inquiries.
40 | - As this Privacy Policy and our Terms of Service.
41 |
42 | ### 5. Intellectual Property Rights
43 |
44 | Your information may be transferred to — and maintained on — computers located outside of your state, province, country or other governmental jurisdiction where the privacy laws may not be as protective as those in your jurisdiction. If you choose to provide information to us, Conclude transfers Personal Information to Google Cloud Platform and processes it there. Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.
45 |
--------------------------------------------------------------------------------
/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 | {{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "news") (eq
4 | .Section "categories") (eq .Section "tags")
5 | }}
6 |
7 |
8 |
210 |
211 |
212 |
--------------------------------------------------------------------------------
/exampleSite/assets/images/logo.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/assets/plugins/aos/README.md:
--------------------------------------------------------------------------------
1 | [](http://michalsnik.github.io/aos/)
2 |
3 | [](https://npmjs.org/package/aos)
4 | [](https://npmjs.org/package/aos)
5 | [](https://travis-ci.org/michalsnik/aos)
6 | [](https://gitter.im/michalsnik/aos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
7 |
8 | [](https://twitter.com/michalsnik) [](https://twitter.com/home?status=AOS%20-%20Animate%20on%20Scroll%20library%0Ahttps%3A//github.com/michalsnik/aos)
9 |
10 | Small library to animate elements on your page as you scroll.
11 |
12 | You may say it's like WOWJS, yeah - you're right, effect is similar to WOWJS, but I had a different idea how to make such a plugin, so here it is. CSS3 driven scroll animation library.
13 |
14 | AOS allows you to animate elements as you scroll down, and up.
15 | If you scroll back to top, elements will animate to it's previous state and are ready to animate again if you scroll down.
16 |
17 | 👉 To get a better understanding how this actually works, I encourage you to check [my post on CSS-tricks](https://css-tricks.com/aos-css-driven-scroll-animation-library/).
18 |
19 | ---
20 |
21 | ### 🚀 [Demo](http://michalsnik.github.io/aos/)
22 |
23 | ### 🌟 Codepen Examples
24 |
25 | - [Different build in animations](http://codepen.io/michalsnik/pen/WxNdvq)
26 | - [With anchor setting in use](http://codepen.io/michalsnik/pen/jrOYVO)
27 | - [With anchor-placement and different easing](http://codepen.io/michalsnik/pen/EyxoNm)
28 | - [With simple custom animations](http://codepen.io/michalsnik/pen/WxvNvE)
29 |
30 | ---
31 |
32 | ## ❗ Attention
33 |
34 | From version `2.0.0` attributes `aos` are no longer supported, always use `data-aos`.
35 |
36 | ## ⚙ Setup
37 |
38 | ### Install AOS
39 |
40 | - Using `bower`
41 |
42 | ```bash
43 | bower install aos --save
44 | ```
45 |
46 | - Using `npm`
47 |
48 | ```bash
49 | npm install aos --save
50 | ```
51 |
52 | - Direct download -> [click here](https://github.com/michalsnik/aos/archive/master.zip)
53 |
54 | ### Link styles
55 |
56 | ```html
57 |
58 | ```
59 |
60 | ### Add scripts
61 |
62 | ```html
63 |
64 | ```
65 |
66 | AOS from version `1.2.0` is available as UMD module, so you can use it as AMD, Global, Node or ES6 module.
67 |
68 | ### Init AOS
69 |
70 | ```javascript
71 |
72 | ```
73 |
74 | ## 🤔 How to use it?
75 |
76 | ### Basic usage
77 |
78 | All you have to do is to add `data-aos` attribute to html element, like so:
79 |
80 | ```html
81 |
82 | ```
83 |
84 | Script will trigger "animation_name" animation on this element, if you scroll to it.
85 |
86 | [Down below](https://github.com/michalsnik/aos#-animations) is a list of all available animations for now :)
87 |
88 | ### 🔥 Advanced settings
89 |
90 | These settings can be set both on certain elements, or as default while initializing script (in options object without `data-` part).
91 |
92 | | Attribute | Description | Example value | Default value |
93 | | ----------------------------- | --------------------------------------------------------------------------------------------------- | ------------- | ------------- |
94 | | _`data-aos-offset`_ | Change offset to trigger animations sooner or later (px) | 200 | 120 |
95 | | _`data-aos-duration`_ | \*Duration of animation (ms) | 600 | 400 |
96 | | _`data-aos-easing`_ | Choose timing function to ease elements in different ways | ease-in-sine | ease |
97 | | _`data-aos-delay`_ | Delay animation (ms) | 300 | 0 |
98 | | _`data-aos-anchor`_ | Anchor element, whose offset will be counted to trigger animation instead of actual elements offset | #selector | null |
99 | | _`data-aos-anchor-placement`_ | Anchor placement - which one position of element on the screen should trigger animation | top-center | top-bottom |
100 | | _`data-aos-once`_ | Choose wheter animation should fire once, or every time you scroll up/down to element | true | false |
101 |
102 | \*Duration accept values from 50 to 3000, with step 50ms, it's because duration of animation is handled by css, and to not make css longer than it is already I created implementations only in this range. I think this should be good for almost all cases.
103 |
104 | If not, you may write simple CSS on your page that will add another duration option value available, for example:
105 |
106 | ```css
107 | body[data-aos-duration="4000"] [data-aos],
108 | [data-aos][data-aos][data-aos-duration="4000"] {
109 | transition-duration: 4000ms;
110 | }
111 | ```
112 |
113 | This code will add 4000ms duration available for you to set on AOS elements, or to set as global duration while initializing AOS script.
114 |
115 | Notice that double `[data-aos][data-aos]` - it's not a mistake, it is a trick, to make individual settings more important than global, without need to write ugly "!important" there :)
116 |
117 | `data-aos-anchor-placement` - You can set different placement option on each element, the principle is pretty simple, each anchor-placement option contains two words i.e. `top-center`. This means that animation will be triggered when `top` of element will reach `center` of the window.
118 | `bottom-top` means that animation will be triggered when `bottom` of an element reach `top` of the window, and so on.
119 | Down below you can find list of all anchor-placement options.
120 |
121 | #### Examples:
122 |
123 | ```html
124 |
130 | ```
131 |
132 | ```html
133 |
138 | ```
139 |
140 | ```html
141 |
142 | ```
143 |
144 | #### API
145 |
146 | AOS object is exposed as a global variable, for now there are three methods available:
147 |
148 | - `init` - initialize AOS
149 | - `refresh` - recalculate all offsets and positions of elements (called on window resize)
150 | - `refreshHard` - reinit array with AOS elements and trigger `refresh` (called on DOM changes that are related to `aos` elements)
151 |
152 | Example execution:
153 |
154 | ```javascript
155 | AOS.refresh();
156 | ```
157 |
158 | By default AOS is watching for DOM changes and if there are any new elements loaded asynchronously or when something is removed from DOM it calls `refreshHard` automatically. In browsers that don't support `MutationObserver` like IE you might need to call `AOS.refreshHard()` by yourself.
159 |
160 | `refresh` method is called on window resize and so on, as it doesn't require to build new store with AOS elements and should be as light as possible.
161 |
162 | ### Global settings
163 |
164 | If you don't want to change setting for each element separately, you can change it globally.
165 |
166 | To do this, pass options object to `init()` function, like so:
167 |
168 | ```javascript
169 |
177 | ```
178 |
179 | #### Additional configuration
180 |
181 | These settings can be set only in options object while initializing AOS.
182 |
183 | | Setting | Description | Example value | Default value |
184 | | -------------- | ------------------------------------------------- | ------------- | ---------------- |
185 | | _`disable`_ | Condition when AOS should be disabled | mobile | false |
186 | | _`startEvent`_ | Name of event, on which AOS should be initialized | exampleEvent | DOMContentLoaded |
187 |
188 | ##### Disabling AOS
189 |
190 | If you want to disable AOS on certain device or under any statement you can set `disable` option. Like so:
191 |
192 | ```javascript
193 |
198 | ```
199 |
200 | There are several options that you can use to fit AOS perfectly into your project, you can pass one of three device types:
201 | `mobile` (phones and tablets), `phone` or `tablet`. This will disable AOS on those certains devices. But if you want make your own condition, simple type your statement instead of device type name:
202 |
203 | ```javascript
204 | disable: window.innerWidth < 1024;
205 | ```
206 |
207 | There is also posibility to pass a `function`, which should at the end return `true` or `false`:
208 |
209 | ```javascript
210 | disable: function () {
211 | var maxWidth = 1024;
212 | return window.innerWidth < maxWidth;
213 | }
214 | ```
215 |
216 | ##### Start event
217 |
218 | If you don't want to initialize AOS on `DOMContentLoaded` event, you can pass your own event name and trigger it whenever you want. AOS is listening for this event on `document` element.
219 |
220 | ```javascript
221 |
226 | ```
227 |
228 | **Important note:** If you set `startEvent: 'load'` it will add event listener on `window` instead of `document`.
229 |
230 | ### 👻 Animations
231 |
232 | There are serveral predefined animations you can use already:
233 |
234 | - Fade animations:
235 |
236 | - fade
237 | - fade-up
238 | - fade-down
239 | - fade-left
240 | - fade-right
241 | - fade-up-right
242 | - fade-up-left
243 | - fade-down-right
244 | - fade-down-left
245 |
246 | - Flip animations:
247 |
248 | - flip-up
249 | - flip-down
250 | - flip-left
251 | - flip-right
252 |
253 | - Slide animations:
254 |
255 | - slide-up
256 | - slide-down
257 | - slide-left
258 | - slide-right
259 |
260 | - Zoom animations:
261 | - zoom-in
262 | - zoom-in-up
263 | - zoom-in-down
264 | - zoom-in-left
265 | - zoom-in-right
266 | - zoom-out
267 | - zoom-out-up
268 | - zoom-out-down
269 | - zoom-out-left
270 | - zoom-out-right
271 |
272 | ### Anchor placement:
273 |
274 | - top-bottom
275 | - top-center
276 | - top-top
277 | - center-bottom
278 | - center-center
279 | - center-top
280 | - bottom-bottom
281 | - bottom-center
282 | - bottom-top
283 |
284 | ### Easing functions:
285 |
286 | You can choose one of these timing function to animate elements nicely:
287 |
288 | - linear
289 | - ease
290 | - ease-in
291 | - ease-out
292 | - ease-in-out
293 | - ease-in-back
294 | - ease-out-back
295 | - ease-in-out-back
296 | - ease-in-sine
297 | - ease-out-sine
298 | - ease-in-out-sine
299 | - ease-in-quad
300 | - ease-out-quad
301 | - ease-in-out-quad
302 | - ease-in-cubic
303 | - ease-out-cubic
304 | - ease-in-out-cubic
305 | - ease-in-quart
306 | - ease-out-quart
307 | - ease-in-out-quart
308 |
309 | ## ✌️ [Contributing](CONTRIBUTING.md)
310 |
311 | ## 📝 [Changelog](CHANGELOG.md)
312 |
313 | ## ❔Questions
314 |
315 | If you have any questions, ideas or whatsoever, please check [AOS contribution guide](CONTRIBUTING.md) and don't hesitate to create new issues.
316 |
--------------------------------------------------------------------------------
/layouts/_default/about.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "components/page-header.html" . }}
3 |
4 | {{ with .Params.who_we_are }}
5 | {{ if .enable }}
6 |
7 |