├── .editorconfig ├── .github └── workflows │ └── hugo.yml ├── .gitignore ├── .gitlab-ci.yml ├── .jshintrc ├── .markdownlint.json ├── .prettierrc ├── .vscode └── extensions.json ├── README.md ├── archetypes └── default.md ├── assets ├── js │ ├── bootstrap.js │ └── script.js ├── plugins │ ├── aos │ │ ├── README.md │ │ ├── aos.css │ │ └── aos.js │ ├── cookie │ │ └── cookie.js │ ├── gallery │ │ └── glightbox.js │ ├── jquery │ │ └── jquery.min.js │ ├── line-awesome │ │ └── css │ │ │ └── line-awesome.min.css │ ├── rellax │ │ └── rellax.min.js │ ├── swiper │ │ ├── swiper-bundle.min.css │ │ └── swiper-bundle.min.js │ └── webfont-loader │ │ └── webfont-loader-2.min.js └── scss │ ├── _buttons.scss │ ├── _common.scss │ ├── _mixins.scss │ ├── _typography.scss │ ├── custom.scss │ ├── style.scss │ └── templates │ ├── _bootstrap.scss │ ├── _main.scss │ └── _navigation.scss ├── exampleSite ├── assets │ ├── images │ │ ├── about │ │ │ ├── 01.jpg │ │ │ ├── 02.jpg │ │ │ ├── flags │ │ │ │ ├── au.png │ │ │ │ ├── china.png │ │ │ │ ├── germany.png │ │ │ │ └── us.png │ │ │ ├── team │ │ │ │ ├── 01.jpg │ │ │ │ ├── 02.jpg │ │ │ │ └── 03.jpg │ │ │ └── video-popup-2.jpg │ │ ├── author │ │ │ ├── abdullah.jpg │ │ │ └── derick.jpg │ │ ├── banner-app.png │ │ ├── blog │ │ │ ├── 01.jpg │ │ │ ├── 02.jpg │ │ │ ├── 03.jpg │ │ │ ├── 04.jpg │ │ │ ├── 05.jpg │ │ │ ├── 06.jpg │ │ │ └── 07.jpg │ │ ├── brands │ │ │ ├── 01-colored.png │ │ │ ├── 02-colored.png │ │ │ ├── 03-colored.png │ │ │ ├── 04-colored.png │ │ │ ├── 05-colored.png │ │ │ └── 06-colored.png │ │ ├── favicon.png │ │ ├── features-01.png │ │ ├── features-02.png │ │ ├── logo.svg │ │ ├── og-image.png │ │ ├── play-icon.svg │ │ ├── testimonials-01.png │ │ ├── testimonials-02.png │ │ ├── user-img │ │ │ ├── 05-i.jpg │ │ │ ├── 06-i.jpg │ │ │ ├── 07-i.jpg │ │ │ ├── 08-i.jpg │ │ │ ├── 09-i.jpg │ │ │ └── 10-i.jpg │ │ ├── vectors │ │ │ └── contact.png │ │ ├── video-popup.jpg │ │ └── waves │ │ │ ├── 04.svg │ │ │ └── 05.svg │ └── scss │ │ └── custom.scss ├── config │ └── _default │ │ ├── languages.toml │ │ ├── menus.en.toml │ │ ├── module.toml │ │ └── params.toml ├── content │ └── english │ │ ├── _index.md │ │ ├── about.md │ │ ├── author │ │ ├── abdullah-al-shifat.md │ │ └── derick-barker.md │ │ ├── blog │ │ ├── _index.md │ │ ├── post-1.md │ │ ├── post-2.md │ │ ├── post-3.md │ │ ├── post-4.md │ │ ├── post-5.md │ │ ├── post-6.md │ │ ├── post-7.md │ │ └── post-8.md │ │ ├── contact.md │ │ └── terms-and-conditions.md ├── data │ └── social.json ├── go.mod ├── hugo.toml ├── i18n │ └── en.yaml └── postcss.config.js ├── layouts ├── 404.html ├── _default │ ├── _markup │ │ └── render-link.html │ ├── about.html │ ├── article.html │ ├── baseof.html │ ├── contact.html │ ├── index.json │ ├── index.webmanifest │ ├── list.html │ ├── single.html │ ├── terms-and-conditions.html │ └── terms.html ├── author │ ├── list.html │ └── single.html ├── index.html ├── partials │ ├── components │ │ └── page-header.html │ └── essentials │ │ ├── footer.html │ │ ├── head.html │ │ ├── header.html │ │ ├── script.html │ │ └── style.html └── shortcodes │ └── badge.html ├── netlify.toml ├── package.json ├── scripts ├── clearModules.js ├── projectSetup.js └── themeSetup.js ├── vercel-build.sh └── vercel.json /.editorconfig: -------------------------------------------------------------------------------- 1 | ; https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Thumbs.db 2 | .DS_Store 3 | .dist 4 | .tmp 5 | .lock 6 | .sass-cache 7 | npm-debug.log 8 | node_modules 9 | builds 10 | package-lock.json 11 | public 12 | resources 13 | .hugo_build.lock 14 | jsconfig.json 15 | hugo_stats.json 16 | go.sum 17 | yarn.lock -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | stages: 2 | - build 3 | 4 | variables: 5 | HUGO_ENV: production 6 | HUGO_VERSION: "0.128.0" 7 | GO_VERSION: "1.22.0" 8 | NODE_VERSION: "18.16.1" 9 | 10 | cache: 11 | paths: 12 | - node_modules/ 13 | 14 | default: 15 | image: node:${NODE_VERSION} 16 | before_script: 17 | - echo "USING NODE ${NODE_VERSION}" 18 | - apt-get update && apt-get install -y curl 19 | - curl -LO "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz" 20 | - tar -xvf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz 21 | - mv hugo /usr/local/bin/ 22 | - rm hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz 23 | - echo "HUGO ${HUGO_VERSION} INSTALLED" 24 | - curl -LO "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" 25 | - tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 26 | - export PATH=$PATH:/usr/local/go/bin 27 | - rm go${GO_VERSION}.linux-amd64.tar.gz 28 | - echo "GO ${GO_VERSION} INSTALLED" 29 | - npm install 30 | 31 | pages: 32 | stage: build 33 | script: 34 | - npm run project-setup 35 | - npm run build 36 | - echo "SITE BUILT SUCCESSFULLY! LIVE AT https://$GITLAB_USER_LOGIN.gitlab.io/$CI_PROJECT_NAME/" 37 | artifacts: 38 | paths: 39 | - public 40 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esversion": 8 3 | } 4 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "MD033": false, 3 | "MD034": false, 4 | "MD013": false 5 | } 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [ 3 | { 4 | "files": ["*.html"], 5 | "options": { 6 | "parser": "go-template", 7 | "goTemplateBracketSpacing": true, 8 | "bracketSameLine": true 9 | } 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "budparr.language-hugo-vscode", 4 | "tamasfe.even-better-toml" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #

Andromeda Light

2 |

Andromeda is a multipurpose SaaS theme designed to showcase any SaaS product or solution.

3 |

👀Demo | Page Speed (98%)🚀

4 | 5 | 6 |

7 | 8 | 9 | 10 | 11 | 12 | license 13 | 14 | code size 15 | 16 | 17 | contributors 18 | 19 | 20 | follow on Twitter 22 |

23 | 24 | 25 |

26 | screenshot 27 |

28 | 29 | 30 | ## Discover Free & Premium Features 31 | 32 | Featurees | [Andromeda LIght](https://github.com/gethugothemes/andromeda-light) | [Andromeda Premium](https://gethugothemes.com/products/andromeda/?ref=github) | 33 | :------------ | :----: | :----: | 34 | 📊Google analytics support | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 35 | 🌄Image optimize with hugo pipe | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 36 | 🎨CSS and Js bundle with hugo pipe | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 37 | ⚙️Netlify settings predefine | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 38 | 🔤Google font loads from webfont loader | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 39 | 🎨Color and fonts variable in config file | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 40 | ✉️Contact form Support (formspree) | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 41 | 🔄GDPR consent enable | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 42 | ⏱️Post reading time calculator | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 43 | 🚀Google page speed optimized | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 44 | 🌐Open graph meta tag | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 45 | 🐦Twitter card meta tag | ![](https://demo.gethugothemes.com/icons/tick.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 46 | 🌍Multiple language support (Fr, En) | ![](https://demo.gethugothemes.com/icons/x.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 47 | 👥Multiple author and single author | ![](https://demo.gethugothemes.com/icons/x.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 48 | ⏳Caching enable | ![](https://demo.gethugothemes.com/icons/x.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 49 | 🔖9+ Premium Pages | ![](https://demo.gethugothemes.com/icons/x.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 50 | ⭐Priority Support | ![](https://demo.gethugothemes.com/icons/x.png) | ![](https://demo.gethugothemes.com/icons/tick.png) | 51 | 🛒Get It Now | [![download-light](https://demo.gethugothemes.com/icons/download.png)](https://github.com/gethugothemes/andromeda-light/archive/refs/heads/master.zip) | [![download](https://demo.gethugothemes.com/icons/grab.png)](https://gethugothemes.com/products/andromeda/?ref=github) 52 | 53 | ## 🔧Local development 54 | 55 | ```bash 56 | # clone the repository 57 | git clone git@github.com:gethugothemes/andromeda-light.git 58 | 59 | # setup project 60 | $ npm run project-setup 61 | 62 | # Install Dependencies 63 | npm install 64 | 65 | # Start local dev server 66 | $ npm run dev 67 | ``` 68 | 69 | Or Check out [Full Documentation](https://docs.gethugothemes.com/andromeda/?ref=github). 70 | 71 | 72 | ## ⚙️Deployment and hosting 73 | 74 | [![Deploy to 75 | Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/gethugothemes/andromeda-light) 76 | 77 | Follow the steps. 78 | 79 | 80 | ## 🐞Reporting Issues 81 | 82 | We use GitHub Issues as the official bug tracker for the andromeda light Template. Please Search [existing 83 | issues](https://github.com/gethugothemes/andromeda-light/issues). Someone may have already reported the same problem. 84 | If your problem or idea has not been addressed yet, feel free to [open a new 85 | issue](https://github.com/gethugothemes/andromeda-light/issues). 86 | 87 | ## 📱Submit Your Website To Our Showcase 88 | 89 | Are you using Andromeda Hugo theme? Submit it to our [showcase](https://gethugothemes.com/showcase). 90 | 91 | Our showcase aims to demonstrate to the world what amazing websites people like you have created utilizing our Hugo themes and to show that Hugo has tremendous capabilities as a Static Site Generator. 92 | 93 | View all the websites powered by Andromeda Hugo from [here](https://gethugothemes.com/showcase?theme=andromeda). 94 | 95 | [Submit](https://gethugothemes.com/showcase?submit=show) your Andromeda Hugo powered website. 96 | 97 | 98 | 99 | ## 📄License 100 | 101 | Copyright © Designed by [Themefisher](https://themefisher.com) & Developed by 102 | [Gethugothemes](https://gethugothemes.com) 103 | 104 | **Code License:** Released under the [MIT](https://github.com/gethugothemes/andromeda-light/blob/master/LICENSE) license. 105 | 106 | **Image license:** The images are only for demonstration purposes. They have their licenses. We don't have permission to 107 | share those images. 108 | 109 | 110 | ## 🙏Special Thanks 111 | 112 | - [Bootstrap](https://getbootstrap.com) 113 | - [Jquery](https://jquery.com) 114 | - [Aos](https://michalsnik.github.io/aos) 115 | - [Line awesome](https://icons8.com/line-awesome) 116 | - [Rellax](https://dixonandmoe.com) 117 | - [Swiper](https://swiperjs.com) 118 | - [Google Fonts](https://fonts.google.com) 119 | - [All Contributors](https://github.com/gethugothemes/andromeda-light/graphs/contributors) 120 | 121 | ## 👨‍💻Hire Us 122 | 123 | Besides developing unique, blazing-fast Hugo themes, we also provide customized services. We specialize in creating affordable, high-quality static websites based on Hugo. 124 | 125 | If you need to customize the theme or complete website development from scratch, you can hire us. 126 | **Check Our 127 | [Services](https://gethugothemes.com/services/?utm_source=andromeda_github&utm_medium=referral&utm_campaign=github_theme_readme)** 128 | 129 | 130 | ## 💎Premium Themes By Us 131 | 132 | | [![Mega-Bundle-HUGO](https://demo.gethugothemes.com/thumbnails/bundle.png?)](https://gethugothemes.com/bundle/?utm_source=andromeda_github&utm_medium=referral&utm_campaign=github_theme_readme) | [![Delta](https://demo.gethugothemes.com/thumbnails/delta.png)](https://gethugothemes.com/products/delta/) | [![Bizcraft](https://demo.gethugothemes.com/thumbnails/agico.png)](https://gethugothemes.com/products/agico/) | 133 | |:---:|:---:|:---:| 134 | | **Get 55+ Premium Hugo Themes Bundle** | **Delta** | **Agico** | 135 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | draft: true 5 | # description 6 | description: "This is meta description" 7 | --- 8 | -------------------------------------------------------------------------------- /assets/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | // bootstrap js components 2 | // import Alert from "js/bootstrap/src/alert"; 3 | // import Button from "js/bootstrap/src/button"; 4 | // import Carousel from "js/bootstrap/src/carousel"; 5 | import Collapse from "js/bootstrap/src/collapse"; 6 | import Dropdown from "js/bootstrap/src/dropdown"; 7 | import Modal from "js/bootstrap/src/modal"; 8 | // import Offcanvas from "js/bootstrap/src/offcanvas"; 9 | // import Popover from "js/bootstrap/src/popover"; 10 | // import ScrollSpy from "js/bootstrap/src/scrollspy"; 11 | import Tab from "js/bootstrap/src/tab"; 12 | // import Toast from "js/bootstrap/src/toast"; 13 | // import Tooltip from "js/bootstrap/src/tooltip"; 14 | 15 | // bootstrap popover and toats 16 | // (function () { 17 | // "use strict"; 18 | // let toastElList = [].slice.call(document.querySelectorAll(".toast")); 19 | // let toastList = toastElList.map(function (toastEl) { 20 | // return new Toast(toastEl); 21 | // }); 22 | 23 | // toastList.forEach(function (toast) { 24 | // toast.show(); 25 | // }); 26 | 27 | // let popoverTriggerList = [].slice.call( 28 | // document.querySelectorAll('[data-bs-toggle="popover"]') 29 | // ); 30 | // popoverTriggerList.map(function (popoverTriggerEl) { 31 | // return new Popover(popoverTriggerEl); 32 | // }); 33 | // })(); 34 | -------------------------------------------------------------------------------- /assets/js/script.js: -------------------------------------------------------------------------------- 1 | var header = document.querySelector(".header-nav"); 2 | var lastScroll = 0; 3 | window.onscroll = () => { 4 | // header-sticky-top 5 | if (window.pageYOffset >= 50) { 6 | header.classList.add("header-sticky-top"); 7 | } else { 8 | header.classList.remove("header-sticky-top"); 9 | } 10 | 11 | // headerPinUnpin init 12 | var currentScroll = 13 | document.documentElement.scrollTop || document.body.scrollTop; 14 | if (currentScroll > 300 && lastScroll <= currentScroll) { 15 | lastScroll = currentScroll; 16 | header.classList.add("header-unpinned"); 17 | } else { 18 | lastScroll = currentScroll; 19 | header.classList.remove("header-unpinned"); 20 | } 21 | }; 22 | 23 | window.onload = () => { 24 | // Preloader init 25 | setTimeout(() => { 26 | document.querySelector(".preloader").classList.add("preloader-hide"); 27 | }, 150); 28 | 29 | // AOS init 30 | setTimeout(() => { 31 | AOS.init({ 32 | duration: 600, 33 | once: true, 34 | }); 35 | }, 50); 36 | 37 | // video embed 38 | var videoPlay = document.querySelectorAll(".video-play-btn"); 39 | videoPlay.forEach(function (video) { 40 | var thumbnail = video.nextElementSibling; 41 | var thumbWidth = thumbnail.width; 42 | video.addEventListener("click", function () { 43 | var videoEl = 44 | '
'; 50 | this.parentNode.innerHTML = videoEl; 51 | }); 52 | }); 53 | 54 | // rellax 55 | if (document.querySelectorAll("[data-rellax-speed]").length) { 56 | var rellax = new Rellax("[data-rellax-speed]"); 57 | } 58 | 59 | // brand-carousel 60 | new Swiper(".brand-carousel", { 61 | spaceBetween: 0, 62 | speed: 1000, 63 | loop: true, 64 | autoplay: { 65 | delay: 3000, 66 | }, 67 | breakpoints: { 68 | 0: { 69 | slidesPerView: 2, 70 | spaceBetween: 0, 71 | }, 72 | 640: { 73 | slidesPerView: 3, 74 | spaceBetween: 0, 75 | }, 76 | 767: { 77 | slidesPerView: 3, 78 | spaceBetween: 0, 79 | }, 80 | 991: { 81 | slidesPerView: 5, 82 | spaceBetween: 0, 83 | }, 84 | }, 85 | }); 86 | 87 | // featuresCarousel fix 88 | new Swiper(".features-carousel", { 89 | spaceBetween: 0, 90 | speed: 600, 91 | autoplay: true, 92 | breakpoints: { 93 | 0: { 94 | slidesPerView: 1, 95 | spaceBetween: 0, 96 | }, 97 | 575: { 98 | slidesPerView: 1, 99 | spaceBetween: 0, 100 | }, 101 | 767: { 102 | slidesPerView: 2, 103 | spaceBetween: 0, 104 | }, 105 | 991: { 106 | slidesPerView: 3, 107 | spaceBetween: 0, 108 | }, 109 | }, 110 | pagination: { 111 | el: ".swiper-pagination", 112 | dynamicBullets: true, 113 | clickable: true, 114 | }, 115 | }); 116 | 117 | // testimonialsCarousel fix 118 | new Swiper(".testimonial-carousel", { 119 | spaceBetween: 0, 120 | speed: 600, 121 | loop: true, 122 | autoplay: true, 123 | slidesPerView: 1, 124 | pagination: { 125 | el: ".swiper-pagination", 126 | dynamicBullets: true, 127 | clickable: true, 128 | }, 129 | }); 130 | }; 131 | 132 | // Form validation Init 133 | (function () { 134 | window.addEventListener( 135 | "load", 136 | function () { 137 | var forms = document.getElementsByClassName("needs-validation"); 138 | var validation = Array.prototype.filter.call(forms, function (form) { 139 | form.addEventListener( 140 | "submit", 141 | function (event) { 142 | if (form.checkValidity() === false) { 143 | event.preventDefault(); 144 | event.stopPropagation(); 145 | } 146 | form.classList.add("was-validated"); 147 | }, 148 | false 149 | ); 150 | }); 151 | }, 152 | false 153 | ); 154 | 155 | const buyPremiumPopup = document.querySelector('.buyPremium'); 156 | const overlay = document.querySelector('.overlay'); 157 | const closeBtn = document.querySelector('.buyPremium .close'); 158 | 159 | if (buyPremiumPopup && overlay && closeBtn) { 160 | let popupShown = false; 161 | let lastPopupTime = 0; 162 | 163 | // Function to show the popup 164 | function showPopup() { 165 | const currentTime = Date.now(); 166 | if (!popupShown && (currentTime - lastPopupTime) >= 30000) { // 30 seconds = 30000 ms 167 | buyPremiumPopup.classList.add('show'); 168 | overlay.classList.add('fade', 'show'); 169 | popupShown = true; // Set the flag to true 170 | lastPopupTime = currentTime; // Update the last shown time 171 | } 172 | } 173 | 174 | // Function to hide the popup 175 | function hidePopup() { 176 | buyPremiumPopup.classList.remove('show'); 177 | overlay.classList.remove('fade', 'show'); 178 | popupShown = false; // Reset the flag 179 | } 180 | 181 | // Check scroll position 182 | window.addEventListener('scroll', function() { 183 | if (window.scrollY > 1000 && !popupShown) { 184 | showPopup(); 185 | } 186 | }); 187 | 188 | // Close button click event 189 | closeBtn.addEventListener('click', hidePopup); 190 | 191 | // Click overlay to close popup 192 | overlay.addEventListener('click', hidePopup); 193 | } else { 194 | console.error('Required elements not found.'); 195 | } 196 | 197 | 198 | 199 | })(); 200 | -------------------------------------------------------------------------------- /assets/plugins/aos/README.md: -------------------------------------------------------------------------------- 1 | [![AOS - Animate on scroll library](https://s32.postimg.org/ktvt59hol/aos_header.png)](http://michalsnik.github.io/aos/) 2 | 3 | [![NPM version](https://img.shields.io/npm/v/aos.svg?style=flat)](https://npmjs.org/package/aos) 4 | [![NPM downloads](https://img.shields.io/npm/dm/aos.svg?style=flat)](https://npmjs.org/package/aos) 5 | [![Build Status](https://travis-ci.org/michalsnik/aos.svg?branch=master)](https://travis-ci.org/michalsnik/aos) 6 | [![Gitter](https://badges.gitter.im/michalsnik/aos.svg)](https://gitter.im/michalsnik/aos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 7 | 8 | [![Twitter Follow](https://img.shields.io/twitter/follow/michalsnik.svg?style=social)](https://twitter.com/michalsnik) [![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /assets/plugins/rellax/rellax.min.js: -------------------------------------------------------------------------------- 1 | (function (q, g) { 2 | "function" === typeof define && define.amd 3 | ? define([], g) 4 | : "object" === typeof module && module.exports 5 | ? (module.exports = g()) 6 | : (q.Rellax = g()); 7 | })("undefined" !== typeof window ? window : global, function () { 8 | var q = function (g, u) { 9 | function C() { 10 | if ( 11 | 3 === a.options.breakpoints.length && 12 | Array.isArray(a.options.breakpoints) 13 | ) { 14 | var f = !0, 15 | c = !0, 16 | b; 17 | a.options.breakpoints.forEach(function (a) { 18 | "number" !== typeof a && (c = !1); 19 | null !== b && a < b && (f = !1); 20 | b = a; 21 | }); 22 | if (f && c) return; 23 | } 24 | a.options.breakpoints = [576, 768, 1201]; 25 | console.warn( 26 | "Rellax: You must pass an array of 3 numbers in ascending order to the breakpoints option. Defaults reverted" 27 | ); 28 | } 29 | var a = Object.create(q.prototype), 30 | l = 0, 31 | v = 0, 32 | m = 0, 33 | n = 0, 34 | d = [], 35 | w = !0, 36 | A = 37 | window.requestAnimationFrame || 38 | window.webkitRequestAnimationFrame || 39 | window.mozRequestAnimationFrame || 40 | window.msRequestAnimationFrame || 41 | window.oRequestAnimationFrame || 42 | function (a) { 43 | return setTimeout(a, 1e3 / 60); 44 | }, 45 | p = null, 46 | x = !1; 47 | try { 48 | var k = Object.defineProperty({}, "passive", { 49 | get: function () { 50 | x = !0; 51 | }, 52 | }); 53 | window.addEventListener("testPassive", null, k); 54 | window.removeEventListener("testPassive", null, k); 55 | } catch (f) {} 56 | var D = 57 | window.cancelAnimationFrame || 58 | window.mozCancelAnimationFrame || 59 | clearTimeout, 60 | E = 61 | window.transformProp || 62 | (function () { 63 | var a = document.createElement("div"); 64 | if (null === a.style.transform) { 65 | var c = ["Webkit", "Moz", "ms"], 66 | b; 67 | for (b in c) 68 | if (void 0 !== a.style[c[b] + "Transform"]) 69 | return c[b] + "Transform"; 70 | } 71 | return "transform"; 72 | })(); 73 | a.options = { 74 | speed: -2, 75 | verticalSpeed: null, 76 | horizontalSpeed: null, 77 | breakpoints: [576, 768, 1201], 78 | center: !1, 79 | wrapper: null, 80 | relativeToWrapper: !1, 81 | round: !0, 82 | vertical: !0, 83 | horizontal: !1, 84 | verticalScrollAxis: "y", 85 | horizontalScrollAxis: "x", 86 | callback: function () {}, 87 | }; 88 | u && 89 | Object.keys(u).forEach(function (d) { 90 | a.options[d] = u[d]; 91 | }); 92 | u && u.breakpoints && C(); 93 | g || (g = ".rellax"); 94 | k = "string" === typeof g ? document.querySelectorAll(g) : [g]; 95 | if (0 < k.length) { 96 | a.elems = k; 97 | if (a.options.wrapper && !a.options.wrapper.nodeType) 98 | if ((k = document.querySelector(a.options.wrapper))) 99 | a.options.wrapper = k; 100 | else { 101 | console.warn( 102 | "Rellax: The wrapper you're trying to use doesn't exist." 103 | ); 104 | return; 105 | } 106 | var F, 107 | B = function () { 108 | for (var f = 0; f < d.length; f++) 109 | a.elems[f].style.cssText = d[f].style; 110 | d = []; 111 | v = window.innerHeight; 112 | n = window.innerWidth; 113 | f = a.options.breakpoints; 114 | F = 115 | n < f[0] 116 | ? "xs" 117 | : n >= f[0] && n < f[1] 118 | ? "sm" 119 | : n >= f[1] && n < f[2] 120 | ? "md" 121 | : "lg"; 122 | H(); 123 | for (f = 0; f < a.elems.length; f++) { 124 | var c = void 0, 125 | b = a.elems[f], 126 | e = b.getAttribute("data-rellax-percentage"), 127 | y = b.getAttribute("data-rellax-speed"), 128 | t = b.getAttribute("data-rellax-xs-speed"), 129 | g = b.getAttribute("data-rellax-mobile-speed"), 130 | h = b.getAttribute("data-rellax-tablet-speed"), 131 | k = b.getAttribute("data-rellax-desktop-speed"), 132 | l = b.getAttribute("data-rellax-vertical-speed"), 133 | m = b.getAttribute("data-rellax-horizontal-speed"), 134 | p = b.getAttribute("data-rellax-vertical-scroll-axis"), 135 | q = b.getAttribute("data-rellax-horizontal-scroll-axis"), 136 | u = b.getAttribute("data-rellax-zindex") || 0, 137 | x = b.getAttribute("data-rellax-min"), 138 | A = b.getAttribute("data-rellax-max"), 139 | C = b.getAttribute("data-rellax-min-x"), 140 | D = b.getAttribute("data-rellax-max-x"), 141 | E = b.getAttribute("data-rellax-min-y"), 142 | L = b.getAttribute("data-rellax-max-y"), 143 | r = !0; 144 | t || g || h || k ? (c = { xs: t, sm: g, md: h, lg: k }) : (r = !1); 145 | t = a.options.wrapper 146 | ? a.options.wrapper.scrollTop 147 | : window.pageYOffset || 148 | document.documentElement.scrollTop || 149 | document.body.scrollTop; 150 | a.options.relativeToWrapper && 151 | (t = 152 | (window.pageYOffset || 153 | document.documentElement.scrollTop || 154 | document.body.scrollTop) - a.options.wrapper.offsetTop); 155 | var z = a.options.vertical ? (e || a.options.center ? t : 0) : 0, 156 | I = a.options.horizontal 157 | ? e || a.options.center 158 | ? a.options.wrapper 159 | ? a.options.wrapper.scrollLeft 160 | : window.pageXOffset || 161 | document.documentElement.scrollLeft || 162 | document.body.scrollLeft 163 | : 0 164 | : 0; 165 | t = z + b.getBoundingClientRect().top; 166 | g = b.clientHeight || b.offsetHeight || b.scrollHeight; 167 | h = I + b.getBoundingClientRect().left; 168 | k = b.clientWidth || b.offsetWidth || b.scrollWidth; 169 | z = e ? e : (z - t + v) / (g + v); 170 | e = e ? e : (I - h + n) / (k + n); 171 | a.options.center && (z = e = 0.5); 172 | c = r && null !== c[F] ? Number(c[F]) : y ? y : a.options.speed; 173 | l = l ? l : a.options.verticalSpeed; 174 | m = m ? m : a.options.horizontalSpeed; 175 | p = p ? p : a.options.verticalScrollAxis; 176 | q = q ? q : a.options.horizontalScrollAxis; 177 | y = J(e, z, c, l, m); 178 | b = b.style.cssText; 179 | r = ""; 180 | if ((e = /transform\s*:/i.exec(b))) 181 | (r = b.slice(e.index)), 182 | (r = (e = r.indexOf(";")) 183 | ? " " + r.slice(11, e).replace(/\s/g, "") 184 | : " " + r.slice(11).replace(/\s/g, "")); 185 | d.push({ 186 | baseX: y.x, 187 | baseY: y.y, 188 | top: t, 189 | left: h, 190 | height: g, 191 | width: k, 192 | speed: c, 193 | verticalSpeed: l, 194 | horizontalSpeed: m, 195 | verticalScrollAxis: p, 196 | horizontalScrollAxis: q, 197 | style: b, 198 | transform: r, 199 | zindex: u, 200 | min: x, 201 | max: A, 202 | minX: C, 203 | maxX: D, 204 | minY: E, 205 | maxY: L, 206 | }); 207 | } 208 | K(); 209 | w && (window.addEventListener("resize", B), (w = !1), G()); 210 | }, 211 | H = function () { 212 | var d = l, 213 | c = m; 214 | l = a.options.wrapper 215 | ? a.options.wrapper.scrollTop 216 | : ( 217 | document.documentElement || 218 | document.body.parentNode || 219 | document.body 220 | ).scrollTop || window.pageYOffset; 221 | m = a.options.wrapper 222 | ? a.options.wrapper.scrollLeft 223 | : ( 224 | document.documentElement || 225 | document.body.parentNode || 226 | document.body 227 | ).scrollLeft || window.pageXOffset; 228 | a.options.relativeToWrapper && 229 | (l = 230 | (( 231 | document.documentElement || 232 | document.body.parentNode || 233 | document.body 234 | ).scrollTop || window.pageYOffset) - a.options.wrapper.offsetTop); 235 | return (d != l && a.options.vertical) || 236 | (c != m && a.options.horizontal) 237 | ? !0 238 | : !1; 239 | }, 240 | J = function (d, c, b, e, g) { 241 | var f = {}; 242 | d = 100 * (g ? g : b) * (1 - d); 243 | c = 100 * (e ? e : b) * (1 - c); 244 | f.x = a.options.round ? Math.round(d) : Math.round(100 * d) / 100; 245 | f.y = a.options.round ? Math.round(c) : Math.round(100 * c) / 100; 246 | return f; 247 | }, 248 | h = function () { 249 | window.removeEventListener("resize", h); 250 | window.removeEventListener("orientationchange", h); 251 | (a.options.wrapper ? a.options.wrapper : window).removeEventListener( 252 | "scroll", 253 | h 254 | ); 255 | (a.options.wrapper 256 | ? a.options.wrapper 257 | : document 258 | ).removeEventListener("touchmove", h); 259 | p = A(G); 260 | }, 261 | G = function () { 262 | H() && !1 === w 263 | ? (K(), (p = A(G))) 264 | : ((p = null), 265 | window.addEventListener("resize", h), 266 | window.addEventListener("orientationchange", h), 267 | (a.options.wrapper ? a.options.wrapper : window).addEventListener( 268 | "scroll", 269 | h, 270 | x ? { passive: !0 } : !1 271 | ), 272 | (a.options.wrapper 273 | ? a.options.wrapper 274 | : document 275 | ).addEventListener("touchmove", h, x ? { passive: !0 } : !1)); 276 | }, 277 | K = function () { 278 | for (var f, c = 0; c < a.elems.length; c++) { 279 | var b = d[c].verticalScrollAxis.toLowerCase(), 280 | e = d[c].horizontalScrollAxis.toLowerCase(); 281 | f = -1 != b.indexOf("x") ? l : 0; 282 | b = -1 != b.indexOf("y") ? l : 0; 283 | var g = -1 != e.indexOf("x") ? m : 0; 284 | e = -1 != e.indexOf("y") ? m : 0; 285 | f = J( 286 | (f + g - d[c].left + n) / (d[c].width + n), 287 | (b + e - d[c].top + v) / (d[c].height + v), 288 | d[c].speed, 289 | d[c].verticalSpeed, 290 | d[c].horizontalSpeed 291 | ); 292 | e = f.y - d[c].baseY; 293 | b = f.x - d[c].baseX; 294 | null !== d[c].min && 295 | (a.options.vertical && 296 | !a.options.horizontal && 297 | (e = e <= d[c].min ? d[c].min : e), 298 | a.options.horizontal && 299 | !a.options.vertical && 300 | (b = b <= d[c].min ? d[c].min : b)); 301 | null != d[c].minY && (e = e <= d[c].minY ? d[c].minY : e); 302 | null != d[c].minX && (b = b <= d[c].minX ? d[c].minX : b); 303 | null !== d[c].max && 304 | (a.options.vertical && 305 | !a.options.horizontal && 306 | (e = e >= d[c].max ? d[c].max : e), 307 | a.options.horizontal && 308 | !a.options.vertical && 309 | (b = b >= d[c].max ? d[c].max : b)); 310 | null != d[c].maxY && (e = e >= d[c].maxY ? d[c].maxY : e); 311 | null != d[c].maxX && (b = b >= d[c].maxX ? d[c].maxX : b); 312 | a.elems[c].style[E] = 313 | "translate3d(" + 314 | (a.options.horizontal ? b : "0") + 315 | "px," + 316 | (a.options.vertical ? e : "0") + 317 | "px," + 318 | d[c].zindex + 319 | "px) " + 320 | d[c].transform; 321 | } 322 | a.options.callback(f); 323 | }; 324 | a.destroy = function () { 325 | for (var f = 0; f < a.elems.length; f++) 326 | a.elems[f].style.cssText = d[f].style; 327 | w || (window.removeEventListener("resize", B), (w = !0)); 328 | D(p); 329 | p = null; 330 | }; 331 | B(); 332 | a.refresh = B; 333 | return a; 334 | } 335 | console.warn("Rellax: The elements you're trying to select don't exist."); 336 | }; 337 | return q; 338 | }); 339 | -------------------------------------------------------------------------------- /assets/scss/_buttons.scss: -------------------------------------------------------------------------------- 1 | // button style 2 | .btn { 3 | padding: 0.875rem 1.5rem; 4 | font-size: 0.875rem; 5 | font-weight: 500; 6 | border-radius: 0.375rem; 7 | transition: 0.2s ease-out; 8 | position: relative; 9 | z-index: 1; 10 | overflow: hidden; 11 | border: 0; 12 | 13 | &:active, 14 | &:focus { 15 | box-shadow: none !important; 16 | } 17 | 18 | &.btn-sm { 19 | padding: 0.625rem 1.25rem; 20 | } 21 | 22 | &::after { 23 | position: absolute; 24 | content: ""; 25 | height: 0; 26 | width: 100%; 27 | left: 0; 28 | top: 0; 29 | background-color: rgba($black, 0.1); 30 | z-index: -1; 31 | transition: 0.3s; 32 | border-radius: 0.375rem; 33 | } 34 | &:hover, 35 | &:active, 36 | &:focus { 37 | box-shadow: 0 0.625rem 1.56rem rgba($black, 0.1); 38 | &::after { 39 | height: 100%; 40 | top: auto; 41 | bottom: 0; 42 | } 43 | } 44 | 45 | &.btn-primary { 46 | background-color: $color-primary !important; 47 | border: 0; 48 | &:hover, 49 | &:active, 50 | &:focus { 51 | color: $white; 52 | } 53 | } 54 | 55 | &.btn-outline-primary { 56 | color: $color-primary; 57 | border: 1px solid $color-primary; 58 | background-color: transparent !important; 59 | &::after { 60 | background-color: $color-primary !important; 61 | } 62 | &:hover, 63 | &:active, 64 | &:focus { 65 | color: $white; 66 | border-color: transparent !important; 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /assets/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin mobile-xs { 2 | @media (max-width: 400px) { 3 | @content; 4 | } 5 | } 6 | @mixin mobile { 7 | @media (max-width: 575px) { 8 | @content; 9 | } 10 | } 11 | @mixin tablet { 12 | @media (max-width: 767px) { 13 | @content; 14 | } 15 | } 16 | @mixin desktop { 17 | @media (max-width: 991px) { 18 | @content; 19 | } 20 | } 21 | @mixin desktop-lg { 22 | @media (max-width: 1200px) { 23 | @content; 24 | } 25 | } 26 | @mixin desktop-xl { 27 | @media (max-width: 1466px) { 28 | @content; 29 | } 30 | } 31 | 32 | @mixin size($size) { 33 | width: $size; 34 | height: $size; 35 | } 36 | -------------------------------------------------------------------------------- /assets/scss/_typography.scss: -------------------------------------------------------------------------------- 1 | .h1, 2 | .h2, 3 | .h3, 4 | .h4, 5 | .h5, 6 | .h6, 7 | h1, 8 | h2, 9 | h3, 10 | h4, 11 | h5, 12 | h6 { 13 | color: lighten($black, 13.33); 14 | font-weight: 600; 15 | line-height: 1.4; 16 | } 17 | a:focus, 18 | button:focus { 19 | outline: 0; 20 | } 21 | a { 22 | color: lighten($black, 53.33); 23 | transition: all 0.3s; 24 | text-decoration: none; 25 | &:hover { 26 | text-decoration: none; 27 | color: lighten($black, 13.33); 28 | } 29 | } 30 | ul, 31 | li { 32 | padding: 0; 33 | margin: 0; 34 | list-style-position: inside; 35 | } 36 | 37 | // List in descending order to prevent extra sort function 38 | $type-levels: 6, 5, 4, 3, 2, 1; 39 | 40 | @each $level in $type-levels { 41 | $font-size: $font-size * $font-scale; 42 | 43 | // Output heading styles 44 | h#{$level}, 45 | .h#{$level} { 46 | font-size: $font-size; 47 | line-height: calc(2px + 2ex + 2px); 48 | margin-bottom: 0.65em; 49 | 50 | &:not(h1, .h1, h2, .h2) { 51 | font-size: calc(#{$font-size} * 0.7); 52 | } 53 | 54 | // responsive for h1, h2, h3 55 | &:not(h4, .h4, h5, .h5, h6, .h6) { 56 | @include desktop { 57 | font-size: calc(#{$font-size} * 0.95); 58 | margin-bottom: 0.55em; 59 | } 60 | 61 | @include tablet { 62 | font-size: calc(#{$font-size} * 0.8); 63 | } 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /assets/scss/custom.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/assets/scss/custom.scss -------------------------------------------------------------------------------- /assets/scss/style.scss: -------------------------------------------------------------------------------- 1 | // Color Variables 2 | {{ with site.Params.variables }} 3 | $white: {{.white | default "#ffffff"}}; 4 | $black: {{.black | default "#000000"}}; 5 | $light: {{.light | default "#FAFAFA"}}; 6 | $color-primary: {{.color_primary | default "#FE6019"}}; 7 | $border-color: {{.border_color | default "#ECECEC"}}; 8 | 9 | // Font Variables 10 | $font-size: {{.font_size | default "16px"}}; 11 | $font-scale: {{.font_scale | default "1.25"}}; 12 | $font-primary: '{{ replaceRE ":[ital,]*[ital@]*[wght@]*[0-9,;]+" "" .font_primary | default "Lato"}}', {{.font_primary_type | default "sans-serif"}}; 13 | $font-secondary: '{{ replaceRE ":[ital,]*[ital@]*[wght@]*[0-9,;]+" "" .font_secondary | default "Lato"}}', {{.font_secondary_type | default "sans-serif"}}; 14 | $font-icon: '{{.font_icon | default "Font Awesome 5 Free"}}'; 15 | {{ end }} 16 | 17 | @import 'templates/bootstrap'; 18 | 19 | @import 'preloader'; 20 | 21 | @import 'mixins'; 22 | 23 | @import 'typography'; 24 | 25 | @import 'buttons'; 26 | 27 | @import 'common'; 28 | 29 | @import 'templates/navigation'; 30 | 31 | @import 'templates/main'; 32 | 33 | @import 'notice'; 34 | 35 | @import 'tabs'; 36 | 37 | // @import 'image'; 38 | 39 | @import 'gallery'; 40 | 41 | @import 'toc'; 42 | 43 | @import 'custom'; -------------------------------------------------------------------------------- /assets/scss/templates/_bootstrap.scss: -------------------------------------------------------------------------------- 1 | // bootstrap@v5.3.0-alpha1 2 | 3 | @import "../bootstrap/mixins/banner"; 4 | @include bsBanner(""); 5 | 6 | // scss-docs-start import-stack 7 | // Configuration 8 | @import "../bootstrap/functions"; 9 | @import "../bootstrap/variables"; 10 | @import "../bootstrap/variables-dark"; 11 | @import "../bootstrap/maps"; 12 | @import "../bootstrap/mixins"; 13 | @import "../bootstrap/utilities"; 14 | 15 | // Layout & components 16 | @import "../bootstrap/root"; 17 | @import "../bootstrap/reboot"; 18 | @import "../bootstrap/type"; 19 | @import "../bootstrap/images"; 20 | @import "../bootstrap/containers"; 21 | @import "../bootstrap/grid"; 22 | @import "../bootstrap/tables"; 23 | @import "../bootstrap/forms"; 24 | @import "../bootstrap/buttons"; 25 | @import "../bootstrap/transitions"; 26 | @import "../bootstrap/dropdown"; 27 | // @import "../bootstrap/button-group"; 28 | @import "../bootstrap/nav"; 29 | @import "../bootstrap/navbar"; 30 | @import "../bootstrap/card"; 31 | @import "../bootstrap/accordion"; 32 | @import "../bootstrap/breadcrumb"; 33 | @import "../bootstrap/pagination"; 34 | // @import "../bootstrap/badge"; 35 | // @import "../bootstrap/alert"; 36 | // @import "../bootstrap/progress"; 37 | // @import "../bootstrap/list-group"; 38 | // @import "../bootstrap/close"; 39 | // @import "../bootstrap/toasts"; 40 | @import "../bootstrap/modal"; 41 | // @import "../bootstrap/tooltip"; 42 | // @import "../bootstrap/popover"; 43 | // @import "../bootstrap/carousel"; 44 | // @import "../bootstrap/spinners"; 45 | // @import "../bootstrap/offcanvas"; 46 | // @import "../bootstrap/placeholders"; 47 | 48 | // Helpers 49 | @import "../bootstrap/helpers"; 50 | 51 | // Utilities 52 | @import "../bootstrap/utilities/api"; 53 | // scss-docs-end import-stack 54 | -------------------------------------------------------------------------------- /assets/scss/templates/_navigation.scss: -------------------------------------------------------------------------------- 1 | // start header style 2 | .header-height-fix { 3 | height: 7.3rem; 4 | 5 | @include desktop { 6 | height: 6.625rem; 7 | } 8 | 9 | @include tablet { 10 | height: 5.25rem; 11 | } 12 | // @include mobile-xs { 13 | // height: 7.93rem; 14 | // } 15 | } 16 | 17 | header { 18 | position: fixed; 19 | width: 100%; 20 | top: 0; 21 | left: 0; 22 | z-index: 99999; 23 | background-color: $white; 24 | padding: 1.8rem 0; 25 | transition: 0.15s ease-out; 26 | 27 | @include tablet { 28 | padding: 1.25rem 0; 29 | } 30 | // @include mobile-xs { 31 | // padding: 0.625rem 0; 32 | // } 33 | 34 | &.header-sticky-top { 35 | padding: 1.06rem 0; 36 | box-shadow: 0px 0.25rem 1.125rem 0 rgba(32, 45, 73, 0.02); 37 | @include mobile-xs { 38 | padding: 5px 0 0.625rem 0; 39 | } 40 | } 41 | 42 | &.header-unpinned { 43 | transform: translateY(calc(-100% - 5px)); 44 | } 45 | 46 | .navbar-brand { 47 | @include tablet { 48 | img { 49 | height: 1.8rem; 50 | width: auto; 51 | } 52 | } 53 | @include mobile-xs { 54 | img { 55 | height: 1.5rem; 56 | } 57 | } 58 | } 59 | 60 | .navbar-light .navbar-toggler { 61 | border-color: transparent; 62 | padding: 0; 63 | color: lighten($black, 13.33); 64 | border: 0; 65 | transition: 0.3s ease; 66 | box-shadow: none; 67 | .show { 68 | display: none; 69 | } 70 | .hide { 71 | display: block; 72 | } 73 | &[aria-expanded="true"] { 74 | .show { 75 | display: block; 76 | } 77 | .hide { 78 | display: none; 79 | } 80 | } 81 | 82 | @include tablet { 83 | font-size: 2rem; 84 | } 85 | 86 | &:hover { 87 | color: $color-primary; 88 | } 89 | } 90 | 91 | // @include mobile-xs { 92 | // .nav-controller { 93 | // width: 100%; 94 | // justify-content: space-between; 95 | // align-items: flex-end !important; 96 | // } 97 | // } 98 | 99 | .nav-item { 100 | .nav-link { 101 | font-weight: 500; 102 | font-size: 1rem; 103 | color: lighten($black, 13.33) !important; 104 | padding: 0.9rem 1.06rem !important; 105 | 106 | @include desktop-lg { 107 | font-size: 0.9rem; 108 | padding: 0.9rem 0.625rem !important; 109 | } 110 | } 111 | 112 | .nav-link:hover, 113 | &.active .nav-link { 114 | color: $color-primary !important; 115 | } 116 | &.dropdown .nav-link::after { 117 | display: inline-block; 118 | vertical-align: 0.255em; 119 | content: ""; 120 | height: 0.56rem; 121 | width: 0.56rem; 122 | border: 2px solid; 123 | border-left: 0; 124 | border-top: 0; 125 | border-color: inherit; 126 | border-radius: 2px; 127 | transform: rotate(45deg); 128 | transition: 0s; 129 | } 130 | } 131 | 132 | .dropdown-menu { 133 | border: 0; 134 | padding: 0 0.625rem; 135 | border-radius: 0.375rem; 136 | background-color: rgba($color-primary, 0.05); 137 | border: 1px solid rgba($color-primary, 0.05); 138 | 139 | li { 140 | &:first-child { 141 | margin-top: 0.75rem; 142 | } 143 | 144 | &:last-child { 145 | margin-bottom: 0.75rem; 146 | } 147 | } 148 | 149 | .dropdown-item { 150 | padding: 0.5rem 0.9rem; 151 | font-size: 0.875rem; 152 | font-weight: 500; 153 | color: lighten($black, 13.33); 154 | border-radius: 0.375rem; 155 | 156 | &:focus, 157 | &:hover, 158 | &:active { 159 | color: $color-primary; 160 | background-color: rgba($color-primary, 0.07); 161 | } 162 | 163 | &.active { 164 | color: $color-primary; 165 | background-color: transparent; 166 | &:focus, 167 | &:hover, 168 | &:active { 169 | background-color: rgba($color-primary, 0.07); 170 | } 171 | } 172 | } 173 | } 174 | 175 | @media (min-width: 991px) { 176 | .dropdown-menu { 177 | display: block; 178 | visibility: hidden; 179 | width: 13.75rem; 180 | left: 50% !important; 181 | transform: translate(-50%, -6px); 182 | z-index: 1; 183 | border: 0; 184 | margin-top: 0px !important; 185 | background-color: transparent; 186 | &::after { 187 | position: absolute; 188 | content: ""; 189 | height: 0; 190 | width: 100%; 191 | top: 0; 192 | left: 0; 193 | background-color: $white; 194 | z-index: -1; 195 | border-radius: 0.375rem; 196 | transition: 0.15s; 197 | border: 1px solid rgba($color-primary, 0.3); 198 | box-shadow: 0 0.9rem 1.56rem rgba($black, 0.1); 199 | } 200 | li { 201 | transform: translateY(1.25rem); 202 | opacity: 0; 203 | transition: 0.1s; 204 | } 205 | } 206 | 207 | .dropdown:hover .dropdown-menu { 208 | visibility: visible; 209 | height: 0; 210 | &::after { 211 | transition: 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); 212 | height: 100%; 213 | } 214 | li { 215 | opacity: 1; 216 | transform: translateY(0); 217 | transition: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); 218 | } 219 | $base-time: 0.05; 220 | $max-menu-item: 12; 221 | @for $i from 1 through $max-menu-item { 222 | li:nth-child(#{$i}) { 223 | transition-delay: $i * $base-time + s; 224 | } 225 | } 226 | } 227 | } 228 | 229 | @include desktop { 230 | .navbar-nav { 231 | max-width: 18.75rem; 232 | max-height: 25rem; 233 | overflow-y: auto; 234 | text-align: center; 235 | padding-top: 1.8rem; 236 | } 237 | 238 | .navbar-right { 239 | text-align: center; 240 | margin-top: 5px; 241 | padding-bottom: 0.625rem; 242 | 243 | select { 244 | margin-bottom: 0.9rem; 245 | } 246 | } 247 | 248 | .dropdown-menu { 249 | padding: 1px 0.9rem; 250 | text-align: center; 251 | height: initial !important; 252 | } 253 | 254 | .nav-item .nav-link { 255 | padding: 0.31rem 1.25rem !important; 256 | } 257 | } 258 | } 259 | -------------------------------------------------------------------------------- /exampleSite/assets/images/about/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/01.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/about/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/02.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/about/flags/au.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/flags/au.png -------------------------------------------------------------------------------- /exampleSite/assets/images/about/flags/china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/flags/china.png -------------------------------------------------------------------------------- /exampleSite/assets/images/about/flags/germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/flags/germany.png -------------------------------------------------------------------------------- /exampleSite/assets/images/about/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/flags/us.png -------------------------------------------------------------------------------- /exampleSite/assets/images/about/team/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/team/01.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/about/team/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/team/02.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/about/team/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/team/03.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/about/video-popup-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/about/video-popup-2.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/author/abdullah.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/author/abdullah.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/author/derick.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/author/derick.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/banner-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/banner-app.png -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/01.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/02.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/03.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/04.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/05.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/06.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/blog/07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/blog/07.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/brands/01-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/brands/01-colored.png -------------------------------------------------------------------------------- /exampleSite/assets/images/brands/02-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/brands/02-colored.png -------------------------------------------------------------------------------- /exampleSite/assets/images/brands/03-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/brands/03-colored.png -------------------------------------------------------------------------------- /exampleSite/assets/images/brands/04-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/brands/04-colored.png -------------------------------------------------------------------------------- /exampleSite/assets/images/brands/05-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/brands/05-colored.png -------------------------------------------------------------------------------- /exampleSite/assets/images/brands/06-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/brands/06-colored.png -------------------------------------------------------------------------------- /exampleSite/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/favicon.png -------------------------------------------------------------------------------- /exampleSite/assets/images/features-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/features-01.png -------------------------------------------------------------------------------- /exampleSite/assets/images/features-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/features-02.png -------------------------------------------------------------------------------- /exampleSite/assets/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /exampleSite/assets/images/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/og-image.png -------------------------------------------------------------------------------- /exampleSite/assets/images/play-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /exampleSite/assets/images/testimonials-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/testimonials-01.png -------------------------------------------------------------------------------- /exampleSite/assets/images/testimonials-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/testimonials-02.png -------------------------------------------------------------------------------- /exampleSite/assets/images/user-img/05-i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/user-img/05-i.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/user-img/06-i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/user-img/06-i.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/user-img/07-i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/user-img/07-i.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/user-img/08-i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/user-img/08-i.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/user-img/09-i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/user-img/09-i.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/user-img/10-i.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/user-img/10-i.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/vectors/contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/vectors/contact.png -------------------------------------------------------------------------------- /exampleSite/assets/images/video-popup.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/images/video-popup.jpg -------------------------------------------------------------------------------- /exampleSite/assets/images/waves/04.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /exampleSite/assets/images/waves/05.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /exampleSite/assets/scss/custom.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gethugothemes/andromeda-light-hugo/f1e7513063649a01131a663da720c423b85d2b5f/exampleSite/assets/scss/custom.scss -------------------------------------------------------------------------------- /exampleSite/config/_default/languages.toml: -------------------------------------------------------------------------------- 1 | ################################### English language ##################################### 2 | [en] 3 | languageName = "En" 4 | languageCode = "en-us" 5 | contentDir = "content/english" 6 | weight = 1 7 | # copyright 8 | copyright = "Designed By [Themefisher](https://themefisher.com/) & Developed By [Gethugothemes](https://gethugothemes.com/)" 9 | 10 | -------------------------------------------------------------------------------- /exampleSite/config/_default/menus.en.toml: -------------------------------------------------------------------------------- 1 | ############# English navigation ############## 2 | 3 | # main menu 4 | [[main]] 5 | name = "Home" 6 | url = "" 7 | weight = 1 8 | 9 | [[main]] 10 | name = "About" 11 | url = "about/" 12 | weight = 2 13 | 14 | 15 | [[main]] 16 | name = "Blog" 17 | url = "blog/" 18 | weight = 3 19 | 20 | [[main]] 21 | weight = 4 22 | name = "Pages" 23 | hasChildren = true 24 | 25 | [[main]] 26 | parent = "Pages" 27 | name = "Blog Details" 28 | url = "blog/post-1/" 29 | weight = 1 30 | 31 | 32 | [[main]] 33 | parent = "Pages" 34 | name = "Terms & Conditions" 35 | url = "terms-and-conditions/" 36 | weight = 2 37 | 38 | [[main]] 39 | name = "Contact" 40 | url = "contact/" 41 | weight = 5 42 | 43 | 44 | 45 | 46 | 47 | 48 | # footer menu 49 | [[footer]] 50 | name = "About" 51 | url = "about/" 52 | weight = 1 53 | 54 | [[footer]] 55 | name = "Blog" 56 | url = "blog/" 57 | weight = 2 58 | 59 | [[footer]] 60 | name = "Blog Details" 61 | url = "blog/post-1/" 62 | weight = 3 63 | 64 | [[footer]] 65 | name = "Terms & Conditions" 66 | url = "terms-and-conditions/" 67 | weight = 4 68 | -------------------------------------------------------------------------------- /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" -------------------------------------------------------------------------------- /exampleSite/config/_default/params.toml: -------------------------------------------------------------------------------- 1 | #################### default parameters ################################ 2 | # favicon module: https://github.com/gethugothemes/hugo-modules/tree/master/images#favicon-implementation 3 | favicon = "images/favicon.png" 4 | # logo module: https://github.com/gethugothemes/hugo-modules/tree/master/images#logo-implementation 5 | logo = "images/logo.svg" 6 | # use `px` or `x` with logo_width, example: "100px". 7 | # Note: logo_width is not work with .svg file 8 | logo_width = "257px" 9 | # if logo_webp set false, it will not generate WEBP version of logo | default is true 10 | logo_webp = true 11 | # logo text will only show when logo is missing. 12 | logo_text = "Andromeda" 13 | 14 | # footer information 15 | footer_info = "Lorem ipsum dolor sit sed dmi amet, consectetur adipiscing. Cdo tellus, sed condimentum volutpat." 16 | 17 | # contact form action 18 | contact_form_action = "https://formspree.io/f/xgernlzd" # contact form works with https://formspree.io 19 | 20 | # buy premium popup 21 | buy_premium_popup = true 22 | 23 | # custom script on header, example: custom_script= "" 24 | custom_script= "" 25 | 26 | # Main Sections 27 | mainSections= ["blog"] 28 | 29 | # contact information 30 | [contact_info] 31 | address = "2118 Thornridge Cir. Syracuse, Connecticut 35624" 32 | phone = ["+704-555-0127", "+205-857-2321", "+002-569-6969"] 33 | email = ["info@andromeda.io", "smith@anderson.io", "john@anderson.io"] 34 | 35 | # Preloader 36 | # module: https://github.com/gethugothemes/hugo-modules/tree/master/components/preloader 37 | [preloader] 38 | enable = true 39 | preloader = "images/favicon.png" # use jpg, png, svg or gif format. 40 | 41 | # Navigation button 42 | [navigation_button] 43 | enable = true 44 | label = "Buy Premium" 45 | link = "https://gethugothemes.com/products/andromeda/" 46 | 47 | 48 | # seo meta data for OpenGraph / Twitter Card 49 | # seo module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/basic-seo 50 | [metadata] 51 | keywords = ["Hugo", "GetHugoThemes", "Themefisher"] 52 | description = "Software and SAAS Landing Hugo Theme" 53 | author = "Gethugothemes" 54 | image = "images/og-image.jpg" # this image will be used as fallback if a page has no image of its own 55 | 56 | # matomo tracking: see https://matomo.org/ 57 | # matomo module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/matomo-analytics 58 | [matomo] 59 | enable = false 60 | url = "" # your matomo url 61 | id = "" # your matomo id 62 | 63 | # baidu analytics: see https://tongji.baidu.com/ 64 | # baidu module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/baidu-analytics 65 | [baidu] 66 | enable = false 67 | analytics_id = "" # Your ID 68 | 69 | # plausible analytics: see https://plausible.io/ 70 | # plausible module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/plausible-analytics 71 | [plausible] 72 | enable = false 73 | domain = "" # yourdomain.com 74 | 75 | # counter analytics: see https://counter.dev/setup.html 76 | # counter module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/counter-analytics 77 | [counter] 78 | enable = false 79 | username = "" # your username 80 | 81 | # site verifications 82 | # verification module: https://github.com/gethugothemes/hugo-modules/tree/master/seo-tools/site-verifications 83 | [site_verification] 84 | google = "" # Your verification code 85 | bing = "" # Your verification code 86 | baidu = "" # Your verification code 87 | facebook = "" # Your verification code 88 | 89 | # crisp chat - module: https://github.com/gethugothemes/hugo-modules/tree/master/components/crisp-chat 90 | [crisp_chat] 91 | enable = false 92 | crisp_website_id = "9aa449e1-9999-422a-938f-8567982eec6d" # replace this code with yours 93 | # Check this video tutorial to get your crisp website ID - https://www.youtube.com/watch?v=nW5UX6iVdFc 94 | 95 | # cookies 96 | # cookies module: https://github.com/gethugothemes/hugo-modules/tree/master/components/cookie-consent 97 | [cookies] 98 | enable = true 99 | expire_days = 2 100 | content = "This site uses cookies. By continuing to use this website, you agree to their use." 101 | button = "I Accept" 102 | 103 | # call-to-action 104 | [cta] 105 | enable = true 106 | title = "Helping teams in the world with focus" 107 | content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas
Werat viverra id et aliquet. vulputate egestas sollicitudin." 108 | button = "Buy Premium" 109 | button_link = "https://gethugothemes.com/products/andromeda/" 110 | -------------------------------------------------------------------------------- /exampleSite/content/english/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # banner 3 | banner: 4 | title: "Andromeda is the most intuitive way to prototype Designs" 5 | button: "Get Premium Version" 6 | button_link: "https://gethugothemes.com/products/andromeda/" 7 | image: "images/banner-app.png" 8 | 9 | # brands 10 | brands_carousel: 11 | enable: true 12 | brand_images: 13 | - "images/brands/01-colored.png" 14 | - "images/brands/02-colored.png" 15 | - "images/brands/04-colored.png" 16 | - "images/brands/03-colored.png" 17 | - "images/brands/05-colored.png" 18 | - "images/brands/06-colored.png" 19 | - "images/brands/04-colored.png" 20 | - "images/brands/02-colored.png" 21 | - "images/brands/01-colored.png" 22 | - "images/brands/06-colored.png" 23 | - "images/brands/05-colored.png" 24 | 25 | # features 26 | features: 27 | enable: true 28 | subtitle: "Special Features" 29 | title: "Elements to
get you started" 30 | description: "Lorem ipsum dolor sit amet, consecteturre adipiscing elit. Morbi egestas
Werat viverra id et aliquet. vulputate egestas sollicitudin." 31 | features_blocks: 32 | - icon: "las la-lock" 33 | title: "Updated Security" 34 | content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Neque enim id diam ornare volutpat in sagitis, aliquet. Arcu cursus" 35 | - icon: "las la-magnet" 36 | title: "Magnetic Turning" 37 | content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Neque enim id diam ornare volutpat in sagitis, aliquet. Arcu cursus" 38 | - icon: "las la-tachometer-alt" 39 | title: "Secured & upto date" 40 | content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Neque enim id diam ornare volutpat in sagitis, aliquet. Arcu cursus" 41 | - icon: "las la-link" 42 | title: "Instant Link Shareing" 43 | content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Neque enim id diam ornare volutpat in sagitis, aliquet. Arcu cursus" 44 | - icon: "las la-lock" 45 | title: "Updated Security" 46 | content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Neque enim id diam ornare volutpat in sagitis, aliquet. Arcu cursus" 47 | - icon: "las la-magnet" 48 | title: "Magnetic Turning" 49 | content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Neque enim id diam ornare volutpat in sagitis, aliquet. Arcu cursus" 50 | 51 | # intro_video 52 | intro_video: 53 | enable: true 54 | subtitle: "Short Intro Video" 55 | title: "Built exclusively for you" 56 | description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas
Werat viverra id et aliquet. vulputate egestas sollicitudin." 57 | video_url: "https://www.youtube.com/embed/dyZcRRWiuuw" 58 | video_thumbnail: "images/video-popup.jpg" 59 | 60 | 61 | # how_it_works 62 | how_it_works: 63 | enable: true 64 | block: 65 | - subtitle: "Primary Speciality" 66 | title: "You Will Not miss Your All misunderstandings" 67 | description: "Protect your design vision and leave nothing up to interpretation with interaction recipes. Quickly share and access all your team members interactions by using libraries, ensuring consistency throughout the." 68 | image: "images/features-01.png" 69 | 70 | - subtitle: "Secondary Speciality" 71 | title: "Say hello to no-code The Advance Creation" 72 | description: "From the simplest of interactions to those that use Excel-gradeing formulas, ProtoPie can handle them all. Make mind-blowing of New interactions everyday without ever having to write any new code." 73 | image: "images/features-02.png" 74 | 75 | 76 | # testimonials 77 | testimonials: 78 | enable: true 79 | subtitle: "Our Testimonial" 80 | title: "Don't take our word for it" 81 | description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi egestas
Werat viverra id et aliquet. vulputate egestas sollicitudin." 82 | image_left: "images/testimonials-01.png" 83 | image_right: "images/testimonials-02.png" 84 | 85 | testimonials_quotes: 86 | - quote: "Lorem ipsum dolor amet, conseetur adipiscing elit. Ornare quam porta arcu congue felis volutpat. Vitae lectudbfs dolor faucibus" 87 | name: "David Cameron" 88 | designation: "CEO, Nexuspay" 89 | image: "images/user-img/05-i.jpg" 90 | 91 | - quote: "Conseetur adipiscing elit. Ornare quam porta arcu congue felis volutpat. Vitae lectudbfs pellentesque vitae dolor faucibus" 92 | name: "David Cameron" 93 | designation: "CEO, Nexuspay" 94 | image: "images/user-img/06-i.jpg" 95 | 96 | - quote: "Lorem ipsum dolor amet, conseetur adipiscing elit. Ornare quam porta arcu congue felis volutpat. Vitae lectudbfs pellentesque vitae dolor" 97 | name: "David Cameron" 98 | designation: "CEO, Nexuspay" 99 | image: "images/user-img/07-i.jpg" 100 | 101 | - quote: "Lorem ipsum dolor amet, conseetur adipiscing elit. porta arcu congue felis volutpat. Vitae lectudbfs pellentesque vitae dolor faucibus" 102 | name: "David Cameron" 103 | designation: "CEO, Nexuspay" 104 | image: "images/user-img/08-i.jpg" 105 | 106 | - quote: "Lorem ipsum dolor ame conseetur. Ornare quam porta arcu congue felis volutpat. Vitae lectudbfs pellentesque vitae dolor faucibus" 107 | name: "David Cameron" 108 | designation: "CEO, Nexuspay" 109 | image: "images/user-img/09-i.jpg" 110 | 111 | - quote: "Lorem ipsum dolor amet, conseetur adipiscing elit. Ornare quam porta arcu congue lectudbfs pellentesque vitae dolor faucibus" 112 | name: "David Cameron" 113 | designation: "CEO, Nexuspay" 114 | image: "images/user-img/10-i.jpg" 115 | --- 116 | -------------------------------------------------------------------------------- /exampleSite/content/english/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "About" 3 | layout: "about" 4 | draft: false 5 | 6 | # who_we_are 7 | who_we_are: 8 | enable: true 9 | subtitle: "Who We Are" 10 | title: "Hello, We're Andromeda Here for your Help" 11 | description: "Your online Health & Fitness companion that offers free assistance on its Facebook Group and provides quality paid guided personal training packages by and through website. We are the first ever, online manifesto in Bangladesh to make place you will select when you think of getting fit" 12 | 13 | image: "images/about/01.jpg" 14 | 15 | # what_we_do 16 | what_we_do: 17 | enable: true 18 | subtitle: "Our Works" 19 | title: "What We Do" 20 | block: 21 | - title: "Building a new class" 22 | content: "Decade of engineering under his belt, Jeremie is responsible for technical infrastructure and feature development. In Flow, wherever things just work is understanding developing complex systems" 23 | 24 | - title: "Design for anyone" 25 | content: "Decade of engineering under his belt, Jeremie is responsible for technical infrastructure and feature development. In Flow, wherever things just work is understanding developing complex systems" 26 | 27 | - title: "Creative flair design" 28 | content: "Decade of engineering under his belt, Jeremie is responsible for technical infrastructure and feature development. In Flow, wherever things just work is understanding developing complex systems" 29 | 30 | - title: "Building products" 31 | content: "Decade of engineering under his belt, Jeremie is responsible for technical infrastructure and feature development. In Flow, wherever things just work is understanding developing complex systems" 32 | 33 | # our_mission 34 | our_mission: 35 | enable: true 36 | subtitle: "OUR MISSION" 37 | title: "Main Vision And Mission Of Our Company" 38 | description: "We were freelance designers and developers, constantly finding ourselve deep vague feedback. leaving a notes from the sticky note piece ." 39 | 40 | image: "images/about/02.jpg" 41 | 42 | # about_video 43 | about_video: 44 | enable: true 45 | subtitle: "A Short Video" 46 | title: "You Take Care Of The Payments, We Take Care Of The Rest." 47 | description: "Protect your design vision and leave nothing up to interpretation with interaction recipes. Quickly share and access all your team members interactions by using libraries, ensuring consistcy throughout the." 48 | video_url: "https://www.youtube.com/embed/dyZcRRWiuuw" 49 | video_thumbnail: "images/about/video-popup-2.jpg" 50 | 51 | # brands 52 | brands_carousel: 53 | enable: true 54 | subtitle: "Our Clients" 55 | title: "Trusted by Thousands Companies" 56 | section: "/" # brand images comming form _index.md 57 | 58 | # our team 59 | our_team: 60 | enable: true 61 | subtitle: "Our members" 62 | title: "The People Behind" 63 | description: "We were freelance designers and developers, constantly finding
ourselves deep in vague feedback. This made every client and team" 64 | team: 65 | - name: "Valentin Staykov" 66 | image: "images/about/team/01.jpg" 67 | designation: "Operations" 68 | - name: "Bukiakta Bansalo" 69 | image: "images/about/team/02.jpg" 70 | designation: "Product" 71 | - name: "Ortrin Okaster" 72 | image: "images/about/team/03.jpg" 73 | designation: "Engineering" 74 | 75 | # our office 76 | our_office: 77 | enable: true 78 | subtitle: "Our Offices" 79 | title: "Made with Love Of around the world With Many Offices" 80 | description: "We were freelance designers and developers, constantly finding
ourselves deep in vague feedback. This made every client and team" 81 | office_locations: 82 | - city: "NewYork, USA" 83 | country_flag: "images/about/flags/us.png" 84 | address_line_one: "219 Bald Hill Drive" 85 | address_line_two: "Oakland Gardens, NY 11364" 86 | - city: "Australia, Perth" 87 | country_flag: "images/about/flags/au.png" 88 | address_line_one: "Flat 23 80 Anthony Circlet" 89 | address_line_two: "Port Guiseppe, TAS 2691" 90 | - city: "Berlin, Germany" 91 | country_flag: "images/about/flags/germany.png" 92 | address_line_one: "Jl Raya Dewi Sartika Ged" 93 | address_line_two: "Harapan Masa, Br Germeny" 94 | - city: "China, Wohan" 95 | country_flag: "images/about/flags/china.png" 96 | address_line_one: "1hao Wen Ti Huo Dong" 97 | address_line_two: "Zhong Xin 1ceng Jian Xing" 98 | --- 99 | -------------------------------------------------------------------------------- /exampleSite/content/english/author/abdullah-al-shifat.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Abdullah Al Shifat" 3 | image: "images/author/abdullah.jpg" 4 | email: "sojon.themefisher@gmail.com" 5 | social: 6 | - icon: "lab la-linkedin-in" 7 | name: "linkedin" 8 | link: "#!" 9 | - icon: "lab la-twitter" 10 | name: "twitter" 11 | link: "#!" 12 | --- 13 | 14 | Hic dolor cumque quod quas pariatur modi rerum qui consequatur, iusto inventore necessitatibus. Facilis quisquam magni, autem deleniti nobis repellat excepturi id. 15 | -------------------------------------------------------------------------------- /exampleSite/content/english/author/derick-barker.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Derick Barker" 3 | image: "images/author/derick.jpg" 4 | email: "sojon.themefisher@gmail.com" 5 | social: 6 | - icon: "lab la-linkedin-in" 7 | name: "linkedin" 8 | link: "#!" 9 | - icon: "lab la-twitter" 10 | name: "twitter" 11 | link: "#!" 12 | --- 13 | 14 | Facilis architecto quis maxime nam at, optio harum a velit nulla repellat ad culpa dolorem ab ducimus, porro enim fugit incidunt expedita. Caut repudiandae a assumenda tempora! 15 | -------------------------------------------------------------------------------- /exampleSite/content/english/blog/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Blog" 3 | description: "meta description" 4 | draft: false 5 | --- 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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-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-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-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-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/contact.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "contact" 3 | layout: "contact" 4 | draft: false 5 | 6 | contact_image: "images/vectors/contact.png" 7 | --- 8 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /exampleSite/data/social.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": [ 3 | { 4 | "title": "facebook", 5 | "icon": "lab la-facebook-f", 6 | "link": "!#" 7 | }, 8 | { 9 | "title": "twitter", 10 | "icon": "lab la-twitter", 11 | "link": "!#" 12 | }, 13 | { 14 | "title": "linkedin", 15 | "icon": "lab la-linkedin-in", 16 | "link": "!#" 17 | }, 18 | { 19 | "title": "pinterest", 20 | "icon": "lab la-pinterest", 21 | "link": "!#" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /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/hugo.toml: -------------------------------------------------------------------------------- 1 | ######################## default configuration #################### 2 | # The base URL of your site (required). This will be prepended to all relative URLs. 3 | baseURL = "https://demo.gethugothemes.com/andromeda/site/" 4 | # Title of your website (required). 5 | title = "Andromeda - Software and SAAS Landing Hugo Theme" 6 | # Your theme name 7 | theme = "andromeda-light-hugo" 8 | # Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List 9 | timeZone = "America/New_York" 10 | # post pagination 11 | pagination.pagerSize = 2 # see https://gohugo.io/templates/pagination/#configuration 12 | # post excerpt 13 | summaryLength = 10 # see https://gohugo.io/content-management/excerpts/ 14 | 15 | # disable language 16 | disableLanguages = [] # example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/ 17 | 18 | 19 | ########################### Services ############################# 20 | [services] 21 | [services.googleAnalytics] 22 | ID = 'UA-123456-78' # see https://gohugo.io/templates/internal/#configure-google-analytics 23 | 24 | [services.disqus] 25 | 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/ 26 | 27 | 28 | ############################# Modules ############################ 29 | [module] 30 | [[module.mounts]] 31 | source = "assets" 32 | target = "assets" 33 | 34 | [[module.mounts]] 35 | source = "hugo_stats.json" 36 | target = "assets/watching/hugo_stats.json" 37 | 38 | 39 | ############################# Build ############################## 40 | [build] 41 | noJSConfigInAssets = false 42 | useResourceCacheWhen = 'fallback' 43 | [build.buildStats] 44 | enable = true 45 | [[build.cachebusters]] 46 | source = 'assets/.*\.(js|ts|jsx|tsx)' 47 | target = '(js|scripts|javascript)' 48 | [[build.cachebusters]] 49 | source = 'assets/.*\.(css|sass|scss)$' 50 | target = '(css|styles|scss|sass)' 51 | [[build.cachebusters]] 52 | source = '(postcss|tailwind)\.config\.js' 53 | target = '(css|styles|scss|sass)' 54 | [[build.cachebusters]] 55 | source = 'assets/.*\.(.*)$' 56 | target = '$1' 57 | 58 | 59 | ############################# Outputs ############################## 60 | [outputs] 61 | home = ["HTML", "RSS", "WebAppManifest"] 62 | 63 | ############################# Imaging ############################## 64 | [imaging] 65 | # See https://github.com/disintegration/imaging 66 | # Default JPEG or WebP quality setting. Default is 75. 67 | quality = 90 68 | resampleFilter = "lanczos" 69 | 70 | ############################# Caches ############################### 71 | [caches] 72 | [caches.images] 73 | dir = ":resourceDir/_gen" 74 | maxAge = "720h" 75 | 76 | [caches.assets] 77 | dir = ":resourceDir/_gen" 78 | maxAge = "720h" 79 | 80 | ############################# Markup ############################### 81 | [markup] 82 | [markup.goldmark.renderer] 83 | unsafe= true 84 | 85 | [markup.highlight] 86 | style = 'monokai' # see https://xyproto.github.io/splash/docs/all.html 87 | 88 | ############################ Media types ############################ 89 | [mediaTypes] 90 | [mediaTypes."application/manifest+json"] 91 | suffixes = ["webmanifest"] 92 | 93 | ############################ Output Format ########################### 94 | [outputFormats] 95 | [outputFormats.WebAppManifest] 96 | mediaType = "application/manifest+json" 97 | rel = "manifest" 98 | 99 | 100 | 101 | 102 | 103 | ######################### site variables ############################## 104 | # customize your color and font from here. 105 | [params.variables] 106 | color_primary = "#FE6019" 107 | border_color = "#e4e4e4" 108 | white = "#ffffff" 109 | black = "#000000" 110 | light = "#FAFAFA" 111 | 112 | # font variables 113 | # base font size for full website, 114 | font_size = "16px" # default is 16px 115 | 116 | # Font Scale Sizes 117 | # "minorSecond": 1.067, 118 | # "majorSecond": 1.125, 119 | # "minorThird": 1.2, 120 | # "majorThird": 1.25, 121 | # "perfectFourth": 1.333, 122 | # "augmentedFourth": 1.414, 123 | # "perfectFifth": 1.5, 124 | # "goldenRatio": 1.618 125 | font_scale = "1.2" # default is "minorThird": 1.2 126 | 127 | 128 | # go to https://fonts.google.com/ to find the font you want to use. select your font and copy only the bold part from the URL. and paste it here. 129 | # example: "Work+Sans:wght@400;500;600" 130 | font_primary = "Poppins:wght@400;500;600" 131 | font_primary_type = "sans-serif" # [serif/sans-serif] 132 | font_secondary = "" 133 | font_secondary_type = "" # [serif/sans-serif] 134 | font_icon = "Line Awesome Free" 135 | 136 | 137 | ############################# Plugins ############################## 138 | 139 | # CSS Plugins 140 | [[params.plugins.css]] 141 | link = "plugins/line-awesome/css/line-awesome.min.css" 142 | [[params.plugins.css]] 143 | link = "plugins/swiper/swiper-bundle.min.css" 144 | [[params.plugins.css]] 145 | link = "plugins/aos/aos.css" 146 | 147 | # JS Plugins 148 | [[params.plugins.js]] 149 | link = "plugins/aos/aos.js" 150 | [[params.plugins.js]] 151 | link = "plugins/swiper/swiper-bundle.min.js" 152 | [[params.plugins.js]] 153 | link = "plugins/rellax/rellax.min.js" 154 | [[params.plugins.js]] 155 | link = "plugins/cookie/cookie.js" 156 | [[params.plugins.js]] 157 | link = "plugins/webfont-loader/webfont-loader-2.min.js" 158 | [[params.plugins.js]] 159 | link = "plugins/glightbox.js" -------------------------------------------------------------------------------- /exampleSite/i18n/en.yaml: -------------------------------------------------------------------------------- 1 | - id: socials 2 | translation: Socials 3 | 4 | - id: social_media 5 | translation: Social Media 6 | 7 | - id: send_message 8 | translation: Send Message 9 | 10 | - id: message 11 | translation: Message 12 | 13 | - id: quick_links 14 | translation: Quick Links 15 | 16 | - id: location_contact 17 | translation: Location & Contact 18 | 19 | - id: recent_posts 20 | translation: Recent Posts by 21 | 22 | - id: related_articles 23 | translation: Related Articles 24 | 25 | - id: full_name 26 | translation: Full Name 27 | 28 | - id: email 29 | translation: Email Address 30 | 31 | - id: send_a_message 32 | translation: Send A Message 33 | 34 | - id: your_message 35 | translation: Your Message 36 | 37 | - id: phone 38 | translation: Phone 39 | 40 | - id: contact_us 41 | translation: Contact us 42 | 43 | - id: get_in_touch 44 | translation: Get In Touch 45 | 46 | - id: form_thanks_message 47 | translation: Thanks for your submission! 48 | 49 | - id: form_error_message 50 | translation: Oops! There was a problem submitting your form 51 | 52 | - id: min_read 53 | translation: Min read 54 | -------------------------------------------------------------------------------- /exampleSite/postcss.config.js: -------------------------------------------------------------------------------- 1 | const purgecss = require("@fullhuman/postcss-purgecss")({ 2 | content: ["./hugo_stats.json"], 3 | defaultExtractor: (content) => { 4 | const els = JSON.parse(content).htmlElements; 5 | return [...(els.tags || []), ...(els.classes || []), ...(els.ids || [])]; 6 | }, 7 | safelist: [ 8 | /dark/, 9 | /^swiper-/, 10 | /collapsing/, 11 | /show/, 12 | /[aria-expanded=true]/, 13 | /[aria-expanded=false]/, 14 | /^lb-/, 15 | /^gl/, 16 | /^go/, 17 | /^gc/, 18 | /^gs/, 19 | /^gi/, 20 | /^desc/, 21 | /^zoom/, 22 | /dragging/, 23 | /fullscreen/, 24 | /loaded/, 25 | /visible/, 26 | /current/, 27 | /active/, 28 | ], 29 | }); 30 | 31 | module.exports = { 32 | plugins: [ 33 | ...(process.env.HUGO_ENVIRONMENT === "production" ? [purgecss] : []), 34 | ], 35 | }; 36 | -------------------------------------------------------------------------------- /layouts/404.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |
6 |

404 Page Not Found!

7 | Back To Home 10 |
11 |
12 |
13 |
14 | {{ end }} 15 | -------------------------------------------------------------------------------- /layouts/_default/_markup/render-link.html: -------------------------------------------------------------------------------- 1 | {{ .Text }} 10 | -------------------------------------------------------------------------------- /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 |
8 |
9 |
10 |
11 |

{{ .subtitle | markdownify }}

12 |

{{ .title | markdownify }}

13 |

{{ .description | markdownify }}

14 |
15 |
16 |
20 |
21 |
22 | {{ partial "image.html" (dict "Src" .image "Alt" "about-image" "Size" "464x") }} 23 | 24 |
25 | 26 | 27 |
28 |
29 | 30 |
31 | 32 | 33 | 34 | 35 |
36 |
37 |
38 |
39 |
40 |
41 | {{ end }} 42 | {{ end }} 43 | 44 | {{ with .Params.what_we_do }} 45 | {{ if .enable }} 46 |
47 |
48 |
49 |
50 |
51 |

{{ .subtitle | markdownify }}

52 |

{{ .title | markdownify }}

53 |
54 |
55 | 56 | {{ range .block }} 57 |
58 |
59 |

{{ .title | markdownify }}

60 |

{{ .content | markdownify }}

61 |
62 |
63 | {{ end }} 64 |
65 |
66 |
67 | {{ end }} 68 | {{ end }} 69 | 70 | {{ with .Params.our_mission }} 71 | {{ if .enable }} 72 |
73 |
74 |
75 |
76 |
77 |
78 | {{ partial "image.html" (dict "Src" .image "Alt" "about-image" "Size" "4645x") }} 79 | 80 | 81 |
82 | 83 | 84 |
85 |
86 | 87 |
88 | 89 | 90 | 91 | 92 |
93 |
94 |
95 |
99 |
100 |

{{ .subtitle | markdownify }}

101 |

{{ .title | markdownify }}

102 |

{{ .description | markdownify }}

103 |
104 |
105 |
106 |
107 |
108 | {{ end }} 109 | {{ end }} 110 | 111 | {{ with .Params.about_video }} 112 | {{ if .enable }} 113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |

122 | {{ .subtitle | markdownify }} 123 |

124 |

{{ .title | markdownify }}

125 |

{{ .description | markdownify }}

126 |
127 |
128 | 129 |
130 |
134 | 141 | {{ partial "image.html" (dict "Src" .video_thumbnail "Alt" "Video Thumbnail" "Class" "video-thumb" 142 | "Size" "700x") 143 | }} 144 |
145 |
146 |
147 |
148 | 149 |
150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 167 | 172 | 177 | 178 |
179 |
180 |
181 |
182 |
183 | {{ end }} 184 | {{ end }} 185 | 186 | {{ with .Params.brands_carousel }} 187 | {{ if .enable }} 188 |
189 |
190 |
191 |
192 |
193 |

{{ .subtitle | markdownify }}

194 |

{{ .title | markdownify }}

195 |
196 |
197 | {{ with site.GetPage (string .Params.clients.section) }} 198 | {{ with .Params.brands_carousel }} 199 |
200 | 211 |
212 | {{ end }} 213 | {{ end }} 214 |
215 |
216 |
217 | {{ end }} 218 | {{ end }} 219 | 220 | {{ with .Params.our_team }} 221 | {{ if .enable }} 222 |
223 |
224 |
225 |
226 |
227 |

{{ .subtitle | markdownify }}

228 |

{{ .title | markdownify }}

229 |

{{ .description | markdownify }}

230 |
231 |
232 |
233 |
234 | {{ range .team }} 235 |
236 |
237 |
238 | {{ partial "image.html" (dict "Src" .image "Alt" "Video Thumbnail" "Class" "w-100 rounded-circle" "Size" 239 | "175x") 240 | }} 241 |
242 |

{{ .name | markdownify }}

243 |

{{ .designation | markdownify }}

244 |
245 |
246 | {{ end }} 247 |
248 |
249 |
250 | {{ end }} 251 | {{ end }} 252 | 253 | {{ with .Params.our_office }} 254 | {{ if .enable }} 255 |
256 |
257 |
258 |
259 |
260 |

{{ .subtitle | markdownify }}

261 |

{{ .title | markdownify }}

262 |

{{ .description | markdownify }}

263 |
264 |
265 |
266 |
267 |
268 |
269 | {{ range .office_locations }} 270 |
271 |
272 | {{ partial "image.html" (dict "Src" .country_flag "Alt" "Flags" "Size" "80x") }} 273 |

{{ .city | markdownify }}

274 |

{{ .address_line_one | markdownify }}

275 |

{{ .address_line_two | markdownify }}

276 |
277 |
278 | {{ end }} 279 |
280 |
281 |
282 |
283 |
284 | {{ end }} 285 | {{ end }} 286 | 287 | {{ end }} 288 | -------------------------------------------------------------------------------- /layouts/_default/article.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ with .Params.image }} 4 | {{ if fileExists (add `assets/` .) }} 5 | {{ partial "image.html" (dict "Src" . "Alt" "blog-post" "Class" "card-img-top h-auto" "Size" "570x") }} 6 | {{ else }} 7 | {{ partial "image.html" (dict "Src" "https://via.placeholder.com/570x380.png/eee/eee" "Alt" "image-fallback" "Size" 8 | "570x") 9 | }} 10 | {{ end }} 11 | {{ end }} 12 | 13 |
14 |

15 | {{ .Title }} 16 |

17 |

{{ .Plain | truncate 120 }}

18 |
19 | {{ $publishDate := .PublishDate.Format "Jan 02, 2006" }} 20 | {{ with site.GetPage (string .Params.Author | urlize | lower) }} 21 | 46 | {{ end }} 47 |
48 | -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | {{ partial "essentials/head.html" . }} 10 | 11 | 12 | 13 | {{ if hugo.IsProduction }} 14 | {{ partialCached "essentials/style.html" . }} 15 | {{ else }} 16 | {{ partial "essentials/style.html" . }} 17 | {{ end }} 18 | 19 | 20 | 21 | 22 | {{ if hugo.IsProduction }} 23 | {{ partialCached "preloader.html" . }} 24 | {{ partial "essentials/header.html" . }} 25 | {{ partialCached "gtm-noscript.html" . }} 26 | {{ else }} 27 | {{ partial "preloader.html" . }} 28 | {{ partial "essentials/header.html" . }} 29 | {{ end }} 30 | 31 | 32 |
33 | {{ block "main" . }}{{ end }} 34 |
35 | 36 | 37 | {{ if hugo.IsProduction }} 38 | {{ partialCached "essentials/script.html" . }} 39 | {{ partialCached "essentials/footer.html" . }} 40 | {{ else }} 41 | {{ partial "essentials/script.html" . }} 42 | {{ partial "essentials/footer.html" . }} 43 | {{ end }} 44 | 45 | 46 | -------------------------------------------------------------------------------- /layouts/_default/contact.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "components/page-header.html" . }} 3 | 4 | 5 |
6 |
7 |
8 |
11 |
12 | {{ partial "image.html" (dict "Src" .Params.contact_image "Alt" "contact image" "Size" "575x") }} 13 |
14 |
15 | {{ with site.Params.contact_form_action }} 16 |
17 |
18 |
19 |

{{ T `send_a_message` }}

20 |
21 |
22 |

23 |
24 | 25 | 32 |
33 |
34 | 35 | 42 |
43 |
44 | 47 | 54 |
55 | 56 | 62 |
63 |
64 |
65 | 66 | 87 | {{ end }} 88 |
89 | 90 |
91 |
92 |
93 |
94 |

{{ T `contact_us` }}

95 |

{{ T `get_in_touch` }}

96 |
97 |
98 | 99 | {{ with site.Params.contact_info.phone }} 100 |
103 |
104 |

{{ T `phone` }}

105 |
    106 | {{ range . }} 107 | {{ if . }} 108 |
  • 109 | {{ . }} 112 |
  • 113 | {{ end }} 114 | {{ end }} 115 |
116 |
117 |
118 | {{ end }} 119 | 120 | {{ with site.Params.contact_info.email }} 121 |
125 |
126 |

{{ T `email` }}

127 |
    128 | {{ range . }} 129 | {{ if . }} 130 |
  • 131 | {{ . }} 134 |
  • 135 | {{ end }} 136 | {{ end }} 137 |
138 |
139 |
140 | {{ end }} 141 | 142 | {{ with site.Params.social }} 143 |
147 |
148 |

{{ T `social_media` }}

149 |
    150 | {{ range . }} 151 | {{ if . }} 152 |
  • 153 | {{ .title }} 156 |
  • 157 | {{ end }} 158 | {{ end }} 159 |
160 |
161 |
162 | {{ end }} 163 |
164 |
165 |
166 |
167 | {{ end }} 168 | -------------------------------------------------------------------------------- /layouts/_default/index.json: -------------------------------------------------------------------------------- 1 | {{ $.Scratch.Add "index" slice }} 2 | {{ range site.RegularPages }} 3 | 4 | {{ $date:= time.Format ":date_long" .PublishDate }} 5 | 6 | {{ with .Params.image }} 7 | {{ $.Scratch.Set "image" (partial "image.html" (dict "Src" . "Size" "650x")) }} 8 | {{ end }} 9 | {{ $image:= $.Scratch.Get "image" }} 10 | 11 | {{ $.Scratch.Add "index" (dict "title" .Title "date" $date "image" $image "categories" .Params.categories "contents" .Plain "permalink" .RelPermalink) }} 12 | {{ end }} 13 | {{ $.Scratch.Get "index" | jsonify }} -------------------------------------------------------------------------------- /layouts/_default/index.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "{{site.Title}}", 3 | "short_name": "{{site.Title}}", 4 | "lang": "{{ site.LanguageCode | default `en-us` }}", 5 | "display": "fullscreen", 6 | "orientation" : "portrait", 7 | "start_url": "{{ site.BaseURL | relLangURL }}?utm_source=web_app_manifest", 8 | "background_color": "{{ site.Params.variables.body_color | default `#fff`}}", 9 | "theme_color": "{{ site.Params.variables.color_primary | default `#000`}}", 10 | 11 | {{ $icon:= site.Params.favicon }} 12 | {{ if $icon }} 13 | {{ if fileExists (add `assets/` $icon) }} 14 | {{ $icon:= resources.Get $icon }} 15 | {{ $icon_48:= $icon.Resize "48x48 png" }} 16 | {{ $icon_72:= $icon.Resize "72x72 png" }} 17 | {{ $icon_96:= $icon.Resize "96x96 png" }} 18 | {{ $icon_144:= $icon.Resize "144x144 png" }} 19 | {{ $icon_192:= $icon.Resize "192x192 png" }} 20 | {{ $icon_512:= $icon.Resize "512x512 png" }} 21 | "icons": [ 22 | { 23 | "src": "{{$icon_48.RelPermalink}}", 24 | "sizes": "48x48", 25 | "type": "image/png" 26 | }, 27 | { 28 | "src": "{{$icon_72.RelPermalink}}", 29 | "sizes": "72x72", 30 | "type": "image/png" 31 | }, 32 | { 33 | "src": "{{$icon_96.RelPermalink}}", 34 | "sizes": "96x96", 35 | "type": "image/png" 36 | }, 37 | { 38 | "src": "{{$icon_144.RelPermalink}}", 39 | "sizes": "144x144", 40 | "type": "image/png" 41 | }, 42 | { 43 | "src": "{{$icon_192.RelPermalink}}", 44 | "sizes": "192x192", 45 | "type": "image/png", 46 | "purpose": "any maskable" 47 | }, 48 | { 49 | "src": "{{$icon_512.RelPermalink}}", 50 | "sizes": "512x512", 51 | "type": "image/png" 52 | } 53 | ] 54 | {{ end }} 55 | {{ end }} 56 | } -------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | 4 | {{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "news") (eq .Section "categories") (eq .Section "tags") }} 5 | {{ partial "components/page-header.html" . }} 6 | 7 |
8 |
9 |
10 | {{ $paginator := .Paginate (where site.RegularPages "Section" "in" site.Params.mainSections) }} 11 | {{ range $paginator.Pages }} 12 |
13 | {{ .Render "article" }} 14 |
15 | {{ end }} 16 |
17 |
18 |
19 | 20 |
21 |
22 |
23 |
24 | {{"" | safeHTML }} 25 | {{ $paginator := .Paginator }} 26 | 27 | {{ $adjacent_links := 2 }} 28 | 29 | {{ $max_links := (add (mul $adjacent_links 2) 1) }} 30 | 31 | {{ $lower_limit := (add $adjacent_links 1) }} 32 | 33 | {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }} 34 | 35 | {{ if gt $paginator.TotalPages 1 }} 36 | 90 | {{ end }} 91 |
92 |
93 |
94 |
95 | 96 | 97 | 98 | 99 | {{ else }} 100 | 101 | {{ partial "components/page-header.html" . }} 102 |
103 |
104 |
105 |
106 |
107 | {{.Content}} 108 |
109 |
110 |
111 |
112 |
113 | {{ end }} 114 | 115 | 116 | {{ end }} -------------------------------------------------------------------------------- /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 |
9 |
10 |
11 | {{ with .Params.image }} 12 | {{ partial "image.html" (dict "Src" . "Alt" "blog post" "Class" "w-100 rounded-3" "Size" "1020x") }} 13 | {{ end }} 14 |
15 |
16 |
17 |

{{ .Title | markdownify }}

18 | {{ $publishDate := .PublishDate.Format "Jan 02, 2006" }} 19 | {{ with site.GetPage (string .Params.Author | urlize | lower) }} 20 | 42 | {{ end }} 43 |
44 | 45 |
46 | {{ .Content }} 47 |
48 |
49 | {{ if site.Config.Services.Disqus.Shortname }} 50 |
51 | 52 |
53 | {{ template "_internal/disqus.html" . }} 54 |
55 |
56 | {{ end }} 57 |
58 |
59 |
60 | 61 | 62 | 63 |
64 |
65 |
66 |
67 |
68 |

{{ T `related_articles` }}

69 |
70 |
71 | 72 | {{ $related := (where site.RegularPages "Section" "in" site.Params.mainSections) | intersect (where 73 | site.RegularPages ".Title" "!=" .Title) | union (site.RegularPages.Related . ) 74 | }} 75 | {{ range first 2 $related }} 76 |
77 | {{ .Render "article" }} 78 |
79 | {{ end }} 80 |
81 |
82 |
83 | 84 | 85 | 86 | {{ else }} 87 | {{ partial "components/page-header.html" . }} 88 |
89 |
90 |
91 |
92 |
93 | {{ .Content }} 94 |
95 |
96 |
97 |
98 |
99 | {{ end }} 100 | 101 | {{ end }} 102 | -------------------------------------------------------------------------------- /layouts/_default/terms-and-conditions.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "components/page-header.html" . }} 3 | 4 | 5 |
6 |
7 |
8 |
9 |

10 | Last Edited : {{ .PublishDate.Format "Jan 02, 2006" }} 11 |

12 |

13 | {{ .Description | markdownify }} 14 |

15 | 16 |
17 | {{ .Content }} 18 |
19 |
20 |
21 |
22 |
23 | {{ end }} 24 | -------------------------------------------------------------------------------- /layouts/_default/terms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /layouts/author/list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /layouts/author/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |
6 |
7 |
8 | {{ if and (.Params.image) (fileExists (add `assets/` .Params.image)) }} 9 | {{ partial "image.html" (dict "Src" .Params.image "Alt" .Title "Class" `rounded-circle border border-3 border-primary mx-auto` "Size" "100x") }} 10 | {{ else if .Params.Email }} 11 | {{ partial "image.html" (dict "Src" "https://www.gravatar.com/avatar/{{ md5 . }}?s=70&pg&d=identicon" 12 | "Alt" .Title "Class" "rounded-circle border-primary mx-auto" 13 | "Size" "100x") }} 14 | {{ end }} 15 |
16 |

{{ .Title }}

17 |
18 |
19 |
20 | {{ .Content }} 21 |
22 | 31 |
32 |
33 |
34 |
35 |
36 |

37 | {{ T `recent_posts` }} 38 | {{ .Title }} 39 |

40 |
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/components/page-header.html: -------------------------------------------------------------------------------- 1 | 76 | -------------------------------------------------------------------------------- /layouts/partials/essentials/footer.html: -------------------------------------------------------------------------------- 1 | {{ with site.Params.cta }} 2 | {{ if .enable }} 3 |
4 |
5 |
6 |
7 |
8 |
9 |

{{ .title | markdownify }}

10 |

{{ .content | markdownify }}

11 | {{ .button }} 14 |
15 |
16 | 17 |
18 | 26 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
39 |
40 |
41 |
42 |
43 | {{ end }} 44 | {{ end }} 45 | 46 | 47 | 126 | 127 | 138 | -------------------------------------------------------------------------------- /layouts/partials/essentials/head.html: -------------------------------------------------------------------------------- 1 | 2 | {{ .Title | default site.Title }} 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | {{ partialCached "favicon" . }} 13 | 14 | 15 | 16 | {{ partialCached "manifest" . }} 17 | 18 | 19 | 20 | {{ partialCached "site-verifications.html" . }} 21 | 22 | 23 | 24 | {{ partial "basic-seo.html" . }} 25 | 26 | 27 | 28 | {{ partialCached "custom-script.html" . }} 29 | 30 | 31 | 32 | {{ if and site.Config.Services.GoogleAnalytics.ID (ne site.Config.Services.GoogleAnalytics.ID "UA-123456-78") }} 33 | {{ template "_internal/google_analytics.html" . }} 34 | {{ end }} 35 | 36 | 37 | {{ partialCached "gtm.html" . }} 38 | 39 | 40 | 41 | {{ partialCached "matomo-analytics.html" . }} 42 | 43 | 44 | 45 | {{ partialCached "baidu-analytics.html" . }} 46 | 47 | 48 | 49 | {{ partialCached "plausible-analytics.html" . }} 50 | 51 | 52 | 53 | {{ partialCached "counter-analytics.html" . }} 54 | 55 | 56 | 57 | {{ partialCached "crisp-chat.html" . }} 58 | -------------------------------------------------------------------------------- /layouts/partials/essentials/header.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |
7 | 207 |
208 |
209 |
210 |
211 | 212 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /layouts/shortcodes/badge.html: -------------------------------------------------------------------------------- 1 | {{ with .Get "type" }} 2 | {{ . }} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "public" 3 | command = "yarn project-setup && yarn build" 4 | 5 | [build.environment] 6 | HUGO_VERSION = "0.128.0" 7 | GO_VERSION = "1.22.0" 8 | HUGO_BASEURL = "/" 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "andromeda-light-hugo", 3 | "version": "3.1.0", 4 | "license": "MIT", 5 | "author": "gethugothemes", 6 | "scripts": { 7 | "dev": "hugo server", 8 | "build": "hugo --gc --minify --templateMetrics --templateMetricsHints --forceSyncStatic", 9 | "preview": "hugo server --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --watch --forceSyncStatic -e production --minify", 10 | "dev:example": "cd exampleSite; hugo server --themesDir ../..", 11 | "build:example": "cd exampleSite; hugo --themesDir ../.. --gc --minify --templateMetrics --templateMetricsHints --forceSyncStatic", 12 | "preview:example": "cd exampleSite; hugo server --themesDir ../.. --disableFastRender --navigateToChanged --templateMetrics --templateMetricsHints --watch --forceSyncStatic -e production --minify", 13 | "update-modules": "node ./scripts/clearModules.js && hugo mod clean --all && hugo mod get -u ./... && hugo mod tidy", 14 | "project-setup": "node ./scripts/projectSetup.js", 15 | "theme-setup": "node ./scripts/themeSetup.js", 16 | "format": "prettier -w ." 17 | }, 18 | "devDependencies": { 19 | "@fullhuman/postcss-purgecss": "^5.0.0", 20 | "postcss": "^8.4.21", 21 | "postcss-cli": "^10.1.0", 22 | "prettier": "^2.8.4", 23 | "prettier-plugin-go-template": "0.0.13" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /scripts/clearModules.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | 3 | const clearModules = (filePath) => { 4 | if (fs.existsSync(filePath)) { 5 | let fileContent = fs.readFileSync(filePath, "utf8"); 6 | fileContent = fileContent.replace(/require\s*\([\s\S]*?\)/, ""); 7 | fs.writeFileSync(filePath, fileContent, "utf8"); 8 | } else { 9 | console.log("File does not exist."); 10 | } 11 | }; 12 | 13 | clearModules("go.mod"); 14 | clearModules("exampleSite/go.mod"); 15 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /vercel-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # default versions 4 | NODE_VERSION='18.16.1'; 5 | GO_VERSION='1.22.0'; 6 | HUGO_VERSION='0.128.0'; 7 | 8 | # install Node.js 9 | # echo "Installing Node.js $NODE_VERSION..." 10 | # curl -sSOL https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}.tar.gz 11 | # tar -xzf node-v${NODE_VERSION}.tar.gz 12 | # export PATH=$PATH:/usr/local/bin 13 | # rm -rf node-v${NODE_VERSION}.tar.gz 14 | 15 | echo "USING NODE VERSION: $(node -v)" 16 | 17 | # install Go 18 | echo "Installing Go $GO_VERSION..." 19 | curl -sSOL https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz 20 | tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz 21 | export PATH=$PATH:/usr/local/go/bin 22 | rm -rf go${GO_VERSION}.linux-amd64.tar.gz 23 | go version 24 | 25 | # install Hugo 26 | echo "Installing Hugo $HUGO_VERSION..." 27 | curl -sSOL https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz 28 | tar -xzf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz 29 | mv hugo /usr/local/bin/ 30 | rm -rf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz 31 | hugo version 32 | 33 | # project setup 34 | echo "Project setting up..." 35 | npm run project-setup 36 | 37 | # install dependencies 38 | echo "Installing project dependencies..." 39 | npm install 40 | 41 | # run the build command 42 | echo "Running the build command..." 43 | npm run build 44 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "builds": [ 3 | { 4 | "src": "vercel-build.sh", 5 | "use": "@vercel/static-build", 6 | "config": { 7 | "distDir": "public" 8 | } 9 | } 10 | ] 11 | } 12 | --------------------------------------------------------------------------------