From cc60b64505f6198b1674421c1e33b5b4d16b3f66 Mon Sep 17 00:00:00 2001 From: Boris Waaub Date: Wed, 28 Jan 2026 09:40:37 +0100 Subject: [PATCH] Converti chill-theme en dossier classique --- themes/chill-theme | 1 - themes/chill-theme/.gitignore | 30 + themes/chill-theme/LICENSE | 21 + themes/chill-theme/README.md | 470 +++++++ themes/chill-theme/assets/css/main.css | 199 +++ themes/chill-theme/config.toml | 4 + themes/chill-theme/docs/CONFIGURATION.md | 1144 +++++++++++++++++ themes/chill-theme/docs/CONTENT-CREATION.md | 989 ++++++++++++++ themes/chill-theme/docs/DEPLOYMENT.md | 811 ++++++++++++ themes/chill-theme/docs/INSTALLATION.md | 644 ++++++++++ .../chill-theme/docs/INTERNATIONALIZATION.md | 737 +++++++++++ themes/chill-theme/docs/LAYOUTS.md | 785 +++++++++++ themes/chill-theme/docs/README.md | 313 +++++ themes/chill-theme/docs/SHORTCODES.md | 866 +++++++++++++ themes/chill-theme/docs/STYLING.md | 751 +++++++++++ themes/chill-theme/docs/TROUBLESHOOTING.md | 895 +++++++++++++ themes/chill-theme/docs/zh-cn.toml.example | 155 +++ themes/chill-theme/i18n/en.toml | 154 +++ themes/chill-theme/i18n/fr.toml | 20 + themes/chill-theme/i18n/nl.toml | 10 + themes/chill-theme/images/screenshot.png | Bin 0 -> 309290 bytes themes/chill-theme/images/tn.png | Bin 0 -> 156253 bytes .../chill-theme/layouts/_default/baseof.html | 118 ++ .../chill-theme/layouts/_default/career.html | 115 ++ .../chill-theme/layouts/_default/company.html | 6 + .../chill-theme/layouts/_default/feature.html | 76 ++ .../layouts/_default/job-single.html | 51 + themes/chill-theme/layouts/_default/list.html | 70 + .../chill-theme/layouts/_default/pricing.html | 12 + .../chill-theme/layouts/_default/simple.html | 8 + .../chill-theme/layouts/_default/single.html | 86 ++ themes/chill-theme/layouts/docs/single.html | 20 + themes/chill-theme/layouts/index.html | 3 + .../layouts/partials/components/cta.html | 28 + .../partials/components/subscribe-form.html | 46 + .../layouts/partials/custom-head.html | 18 + .../layouts/partials/docs-sidebar.html | 22 + .../chill-theme/layouts/partials/footer.html | 151 +++ .../layouts/partials/google-analytics.html | 10 + .../layouts/partials/google-tag-manager.html | 9 + .../chill-theme/layouts/partials/header.html | 160 +++ .../chill-theme/layouts/partials/icons.html | 22 + .../layouts/partials/language-switcher.html | 24 + .../layouts/partials/post-card.html | 80 ++ .../layouts/partials/post-meta.html | 45 + .../layouts/partials/shortcodes/feature.html | 52 + .../chill-theme/layouts/partials/sidebar.html | 88 ++ .../layouts/shortcodes/benefits-grid.html | 25 + .../layouts/shortcodes/case-study-card.html | 15 + .../layouts/shortcodes/client-logos.html | 82 ++ .../chill-theme/layouts/shortcodes/code.html | 19 + .../chill-theme/layouts/shortcodes/cta.html | 17 + .../chill-theme/layouts/shortcodes/faq.html | 31 + .../layouts/shortcodes/feature.html | 51 + .../layouts/shortcodes/features-carousel.html | 81 ++ .../layouts/shortcodes/features-list.html | 26 + .../layouts/shortcodes/features-section.html | 17 + .../layouts/shortcodes/figure.html | 18 + .../layouts/shortcodes/hero-image.html | 3 + .../chill-theme/layouts/shortcodes/hero.html | 51 + .../layouts/shortcodes/investor-logo.html | 7 + .../layouts/shortcodes/pricing-table-1.html | 63 + .../layouts/shortcodes/pricing-table-2.html | 60 + .../layouts/shortcodes/section-container.html | 5 + .../chill-theme/layouts/shortcodes/stat.html | 4 + .../layouts/shortcodes/team-member.html | 22 + .../layouts/shortcodes/testimonials.html | 183 +++ .../chill-theme/layouts/shortcodes/toc.html | 4 + .../layouts/shortcodes/value-card.html | 21 + themes/chill-theme/layouts/taxonomy/list.html | 70 + .../chill-theme/layouts/taxonomy/terms.html | 39 + themes/chill-theme/package.json | 20 + themes/chill-theme/postcss.config.js | 6 + .../chill-theme/screenshots/screenshot1.png | Bin 0 -> 287743 bytes .../chill-theme/screenshots/screenshot2.png | Bin 0 -> 309290 bytes .../chill-theme/screenshots/screenshot3.png | Bin 0 -> 883304 bytes .../chill-theme/static/images/blog/blog-1.jpg | Bin 0 -> 77805 bytes .../static/images/blog/blog-2.webp | Bin 0 -> 401558 bytes .../static/images/blog/blog-3.webp | Bin 0 -> 75850 bytes .../chill-theme/static/images/blog/blog-4.jpg | Bin 0 -> 428724 bytes .../chill-theme/static/images/blog/blog-5.jpg | Bin 0 -> 285620 bytes .../static/images/company/exec-1.svg | 7 + .../static/images/company/exec-2.svg | 7 + .../static/images/company/exec-3.svg | 7 + .../static/images/company/investor-1.svg | 7 + .../static/images/company/investor-2.svg | 7 + .../static/images/company/investor-3.svg | 8 + .../static/images/company/investor-4.svg | 8 + themes/chill-theme/static/images/favicon.ico | Bin 0 -> 193049 bytes .../chill-theme/static/images/feature-1.svg | 28 + .../chill-theme/static/images/feature-2.svg | 35 + .../chill-theme/static/images/feature-3.svg | 34 + .../static/images/hero-dashboard.svg | 26 + themes/chill-theme/static/images/logo.svg | 8 + .../static/images/logos/customer-1.png | Bin 0 -> 1491 bytes .../static/images/logos/customer-1.svg | 20 + .../static/images/logos/customer-2.png | Bin 0 -> 1867 bytes .../static/images/logos/customer-3.png | Bin 0 -> 2045 bytes .../static/images/logos/customer-4.png | Bin 0 -> 1776 bytes .../static/images/logos/customer-5.png | Bin 0 -> 1620 bytes .../static/images/social/behance.svg | 1 + .../static/images/social/bluesky.svg | 4 + .../static/images/social/discord.svg | 1 + .../static/images/social/dribbble.svg | 1 + .../static/images/social/facebook.svg | 1 + .../static/images/social/github.svg | 1 + .../static/images/social/instagram.svg | 1 + .../static/images/social/linkedin.svg | 1 + .../static/images/social/medium.svg | 1 + .../static/images/social/slack.svg | 1 + .../static/images/social/telegram.svg | 1 + .../static/images/social/twitter.svg | 1 + .../static/images/social/youtube.svg | 1 + themes/chill-theme/static/images/team.jpg | Bin 0 -> 19093 bytes .../static/images/testimonial-1.svg | 5 + .../static/js/language-preference.js | 332 +++++ themes/chill-theme/tailwind.config.js | 42 + themes/chill-theme/theme.toml | 13 + 118 files changed, 11868 insertions(+), 1 deletion(-) delete mode 160000 themes/chill-theme create mode 100644 themes/chill-theme/.gitignore create mode 100644 themes/chill-theme/LICENSE create mode 100644 themes/chill-theme/README.md create mode 100644 themes/chill-theme/assets/css/main.css create mode 100644 themes/chill-theme/config.toml create mode 100644 themes/chill-theme/docs/CONFIGURATION.md create mode 100644 themes/chill-theme/docs/CONTENT-CREATION.md create mode 100644 themes/chill-theme/docs/DEPLOYMENT.md create mode 100644 themes/chill-theme/docs/INSTALLATION.md create mode 100644 themes/chill-theme/docs/INTERNATIONALIZATION.md create mode 100644 themes/chill-theme/docs/LAYOUTS.md create mode 100644 themes/chill-theme/docs/README.md create mode 100644 themes/chill-theme/docs/SHORTCODES.md create mode 100644 themes/chill-theme/docs/STYLING.md create mode 100644 themes/chill-theme/docs/TROUBLESHOOTING.md create mode 100644 themes/chill-theme/docs/zh-cn.toml.example create mode 100644 themes/chill-theme/i18n/en.toml create mode 100644 themes/chill-theme/i18n/fr.toml create mode 100644 themes/chill-theme/i18n/nl.toml create mode 100644 themes/chill-theme/images/screenshot.png create mode 100644 themes/chill-theme/images/tn.png create mode 100644 themes/chill-theme/layouts/_default/baseof.html create mode 100644 themes/chill-theme/layouts/_default/career.html create mode 100644 themes/chill-theme/layouts/_default/company.html create mode 100644 themes/chill-theme/layouts/_default/feature.html create mode 100644 themes/chill-theme/layouts/_default/job-single.html create mode 100644 themes/chill-theme/layouts/_default/list.html create mode 100644 themes/chill-theme/layouts/_default/pricing.html create mode 100644 themes/chill-theme/layouts/_default/simple.html create mode 100644 themes/chill-theme/layouts/_default/single.html create mode 100644 themes/chill-theme/layouts/docs/single.html create mode 100644 themes/chill-theme/layouts/index.html create mode 100644 themes/chill-theme/layouts/partials/components/cta.html create mode 100644 themes/chill-theme/layouts/partials/components/subscribe-form.html create mode 100644 themes/chill-theme/layouts/partials/custom-head.html create mode 100644 themes/chill-theme/layouts/partials/docs-sidebar.html create mode 100644 themes/chill-theme/layouts/partials/footer.html create mode 100644 themes/chill-theme/layouts/partials/google-analytics.html create mode 100644 themes/chill-theme/layouts/partials/google-tag-manager.html create mode 100644 themes/chill-theme/layouts/partials/header.html create mode 100644 themes/chill-theme/layouts/partials/icons.html create mode 100644 themes/chill-theme/layouts/partials/language-switcher.html create mode 100644 themes/chill-theme/layouts/partials/post-card.html create mode 100644 themes/chill-theme/layouts/partials/post-meta.html create mode 100644 themes/chill-theme/layouts/partials/shortcodes/feature.html create mode 100644 themes/chill-theme/layouts/partials/sidebar.html create mode 100644 themes/chill-theme/layouts/shortcodes/benefits-grid.html create mode 100644 themes/chill-theme/layouts/shortcodes/case-study-card.html create mode 100644 themes/chill-theme/layouts/shortcodes/client-logos.html create mode 100644 themes/chill-theme/layouts/shortcodes/code.html create mode 100644 themes/chill-theme/layouts/shortcodes/cta.html create mode 100644 themes/chill-theme/layouts/shortcodes/faq.html create mode 100644 themes/chill-theme/layouts/shortcodes/feature.html create mode 100644 themes/chill-theme/layouts/shortcodes/features-carousel.html create mode 100644 themes/chill-theme/layouts/shortcodes/features-list.html create mode 100644 themes/chill-theme/layouts/shortcodes/features-section.html create mode 100644 themes/chill-theme/layouts/shortcodes/figure.html create mode 100644 themes/chill-theme/layouts/shortcodes/hero-image.html create mode 100644 themes/chill-theme/layouts/shortcodes/hero.html create mode 100644 themes/chill-theme/layouts/shortcodes/investor-logo.html create mode 100644 themes/chill-theme/layouts/shortcodes/pricing-table-1.html create mode 100644 themes/chill-theme/layouts/shortcodes/pricing-table-2.html create mode 100644 themes/chill-theme/layouts/shortcodes/section-container.html create mode 100644 themes/chill-theme/layouts/shortcodes/stat.html create mode 100644 themes/chill-theme/layouts/shortcodes/team-member.html create mode 100644 themes/chill-theme/layouts/shortcodes/testimonials.html create mode 100644 themes/chill-theme/layouts/shortcodes/toc.html create mode 100644 themes/chill-theme/layouts/shortcodes/value-card.html create mode 100644 themes/chill-theme/layouts/taxonomy/list.html create mode 100644 themes/chill-theme/layouts/taxonomy/terms.html create mode 100644 themes/chill-theme/package.json create mode 100644 themes/chill-theme/postcss.config.js create mode 100644 themes/chill-theme/screenshots/screenshot1.png create mode 100644 themes/chill-theme/screenshots/screenshot2.png create mode 100644 themes/chill-theme/screenshots/screenshot3.png create mode 100644 themes/chill-theme/static/images/blog/blog-1.jpg create mode 100644 themes/chill-theme/static/images/blog/blog-2.webp create mode 100644 themes/chill-theme/static/images/blog/blog-3.webp create mode 100644 themes/chill-theme/static/images/blog/blog-4.jpg create mode 100644 themes/chill-theme/static/images/blog/blog-5.jpg create mode 100644 themes/chill-theme/static/images/company/exec-1.svg create mode 100644 themes/chill-theme/static/images/company/exec-2.svg create mode 100644 themes/chill-theme/static/images/company/exec-3.svg create mode 100644 themes/chill-theme/static/images/company/investor-1.svg create mode 100644 themes/chill-theme/static/images/company/investor-2.svg create mode 100644 themes/chill-theme/static/images/company/investor-3.svg create mode 100644 themes/chill-theme/static/images/company/investor-4.svg create mode 100644 themes/chill-theme/static/images/favicon.ico create mode 100644 themes/chill-theme/static/images/feature-1.svg create mode 100644 themes/chill-theme/static/images/feature-2.svg create mode 100644 themes/chill-theme/static/images/feature-3.svg create mode 100644 themes/chill-theme/static/images/hero-dashboard.svg create mode 100644 themes/chill-theme/static/images/logo.svg create mode 100644 themes/chill-theme/static/images/logos/customer-1.png create mode 100644 themes/chill-theme/static/images/logos/customer-1.svg create mode 100644 themes/chill-theme/static/images/logos/customer-2.png create mode 100644 themes/chill-theme/static/images/logos/customer-3.png create mode 100644 themes/chill-theme/static/images/logos/customer-4.png create mode 100644 themes/chill-theme/static/images/logos/customer-5.png create mode 100644 themes/chill-theme/static/images/social/behance.svg create mode 100644 themes/chill-theme/static/images/social/bluesky.svg create mode 100644 themes/chill-theme/static/images/social/discord.svg create mode 100644 themes/chill-theme/static/images/social/dribbble.svg create mode 100644 themes/chill-theme/static/images/social/facebook.svg create mode 100644 themes/chill-theme/static/images/social/github.svg create mode 100644 themes/chill-theme/static/images/social/instagram.svg create mode 100644 themes/chill-theme/static/images/social/linkedin.svg create mode 100644 themes/chill-theme/static/images/social/medium.svg create mode 100644 themes/chill-theme/static/images/social/slack.svg create mode 100644 themes/chill-theme/static/images/social/telegram.svg create mode 100644 themes/chill-theme/static/images/social/twitter.svg create mode 100644 themes/chill-theme/static/images/social/youtube.svg create mode 100644 themes/chill-theme/static/images/team.jpg create mode 100644 themes/chill-theme/static/images/testimonial-1.svg create mode 100644 themes/chill-theme/static/js/language-preference.js create mode 100644 themes/chill-theme/tailwind.config.js create mode 100644 themes/chill-theme/theme.toml diff --git a/themes/chill-theme b/themes/chill-theme deleted file mode 160000 index 5d19f48..0000000 --- a/themes/chill-theme +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5d19f48b3d3d047ddd4142fb00821aca251c9f02 diff --git a/themes/chill-theme/.gitignore b/themes/chill-theme/.gitignore new file mode 100644 index 0000000..deb425c --- /dev/null +++ b/themes/chill-theme/.gitignore @@ -0,0 +1,30 @@ +# Dependencies +node_modules/ +package-lock.json +yarn.lock + +# Hugo +public/ +resources/ +.hugo_build.lock +hugo_stats.json + +# Build output +assets/css/style.css +static/css/ + +# IDE/Editor +.idea/ +.vscode/ +*.swp +*.swo +.DS_Store + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db diff --git a/themes/chill-theme/LICENSE b/themes/chill-theme/LICENSE new file mode 100644 index 0000000..7ec485b --- /dev/null +++ b/themes/chill-theme/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Chaoming Li + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/themes/chill-theme/README.md b/themes/chill-theme/README.md new file mode 100644 index 0000000..9fd0b61 --- /dev/null +++ b/themes/chill-theme/README.md @@ -0,0 +1,470 @@ +# Hugo Saasify Theme + +A modern and elegant Hugo theme specifically designed for building **SaaS marketing websites**. Built with TailwindCSS, this theme provides a clean, professional look while maintaining excellent performance and customization options. + +## Why Hugo Saasify Theme? + +Perfect for creating high-converting SaaS landing pages, product marketing sites, and company websites with: + +- **SEO Optimized** - Built-in SEO best practices, semantic HTML, and optimized meta tags to help you rank better +- **Lightning Fast** - Static site generation delivers blazing-fast load times (90+ Lighthouse scores) +- **Global Ready** - Full internationalization (i18n) support with automatic language detection powered by [VisitorAPI](https://visitorapi.com/) +- **Developer Friendly** - Clean code structure, comprehensive documentation, and easy customization +- **Production Ready** - Battle-tested with real SaaS companies, mobile-responsive, and accessibility compliant + +Whether you're launching a new SaaS product or refreshing your marketing site, Hugo Saasify Theme helps you build a professional web presence quickly and efficiently. + +![Hugo Saasify Theme Screenshot](https://raw.githubusercontent.com/chaoming/chill-theme/main/screenshots/screenshot1.png) + +![Hugo Saasify Theme Screenshot 2](https://raw.githubusercontent.com/chaoming/chill-theme/main/screenshots/screenshot2.png) + +![Hugo Saasify Theme Screenshot 3](https://raw.githubusercontent.com/chaoming/chill-theme/main/screenshots/screenshot3.png) + +[Demo Site](https://saasify-demo.chaoming.li) + +## Features + +- ๐ŸŽจ Modern design with TailwindCSS +- ๐Ÿ“ฑ Fully responsive layout +- ๐Ÿš€ Performance optimized +- ๐Ÿ’… Clean typography with Inter & Plus Jakarta Sans fonts +- ๐ŸŽฏ Perfect for SaaS and business websites +- ๐Ÿ›  Easy to customize +- ๐Ÿ“ฆ No jQuery, minimal JavaScript +- ๐Ÿ“Š Google Analytics support +- ๐Ÿ“ˆ Google Tag Manager support +- ๐Ÿ”ง Custom head content support for additional tracking scripts +- ๐ŸŽช 21 pre-built shortcodes for rapid page building +- ๐Ÿ“š Documentation layout with automatic sidebar navigation +- ๐ŸŒ Full multilingual (i18n) support with automatic language switcher (powered by [VisitorAPI](https://visitorapi.com/)) + +## Documentation + +**๐Ÿ“– [Complete Documentation โ†’](docs/README.md)** + +Comprehensive guides covering everything you need: + +- **[Installation Guide](docs/INSTALLATION.md)** - Get started quickly +- **[Configuration Guide](docs/CONFIGURATION.md)** - All configuration options +- **[Internationalization Guide](docs/INTERNATIONALIZATION.md)** - Complete i18n and multilingual setup guide +- **[Layouts Guide](docs/LAYOUTS.md)** - Understanding layouts and templates +- **[Shortcodes Reference](docs/SHORTCODES.md)** - All 21 shortcodes documented +- **[Styling Guide](docs/STYLING.md)** - Customize colors, fonts, and styles +- **[Content Creation Guide](docs/CONTENT-CREATION.md)** - Create pages and blog posts +- **[Deployment Guide](docs/DEPLOYMENT.md)** - Deploy to various platforms +- **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Common issues and solutions + +## Requirements + +- Hugo Extended Version (>= 0.80.0) +- Node.js (>= 14.x) +- npm or yarn + +## Installation + +### 1. Create a new Hugo site (skip if you have an existing site) + +```bash +hugo new site your-site-name +cd your-site-name +``` + +### 2. Add the theme as a submodule + +```bash +git init +git submodule add https://github.com/chaoming/chill-theme themes/chill-theme +``` + +### 3. Example Site (Optional) + +The theme comes with a fully functional example site that demonstrates its features and capabilities. You can use this as a reference when building your own site. + +### Using the Example Site + +The example site provides a great starting point to understand how to: +- Structure your content +- Use different page layouts +- Configure navigation menus +- Set up site parameters +- Implement common SaaS website features + +1. Copy the example site content: +```bash +cp -r themes/chill-theme/exampleSite/* . +``` + +2. The example site includes: +- Complete content structure with sample pages +- Blog posts with various layouts +- Feature pages +- Career/Jobs section +- Pricing page +- Company information page +- Properly configured hugo.toml + +### 4. Install dependencies + +```bash +# Copy package.json and other config files to your site root +cp themes/chill-theme/package.json . +cp themes/chill-theme/postcss.config.js . +cp themes/chill-theme/tailwind.config.copy.js ./tailwind.config.js +``` + +```bash +# Install dependencies +npm install +``` + +### 5. Configure your Hugo site + +Create or update your `hugo.toml` with the following configuration: + +```toml +# Basic Configuration +baseURL = "/" +title = "Your Site Title" +theme = "chill-theme" +defaultContentLanguage = "en" + +# Required Features +enableEmoji = true # Enable emoji support +enableGitInfo = true # Enable Git info for lastmod + +# Pagination +paginate = 6 +paginatePath = "page" + +# Required Module Configuration +[module] + [module.hugoVersion] + extended = true + min = "0.80.0" + +# Required Build Configuration +[build] + writeStats = true # Required for TailwindCSS + +[build.buildStats] + enable = true + +# Security Configuration +[security.funcs] + getenv = ['^HUGO_', '^CI$'] + +# Required Markup Configuration +[markup] + [markup.highlight] + noClasses = false + lineNos = true + codeFences = true + guessSyntax = true + lineNumbersInTable = true + [markup.goldmark.renderer] + unsafe = true # Allow HTML in markdown + [markup.tableOfContents] + endLevel = 3 + ordered = false + startLevel = 2 + +# Taxonomies +[taxonomies] + category = 'categories' + tag = 'tags' + +# Theme Parameters +[params] + description = "Your site description" + author = "Your Name" + logo = "/images/logo.svg" # Path to your logo + # Google Analytics ID (e.g., "G-XXXXXXXXXX") + googleAnalytics = "G-XXXXXXXXXX" # Only enabled in production + + # Google Tag Manager ID (e.g., "GTM-XXXXXXX") + # Only enabled in production + googleTagManager = "GTM-XXXXXXX" + + # Header Configuration + [params.header] + background = "bg-white/80 backdrop-blur-sm" + border = "border-b border-gray-100" + + # Header Logo + [params.header.logo] + src = "/images/logo.svg" + + # Header Buttons (optional) + [params.header.buttons] + [params.header.buttons.signIn] + text = "Sign in" + url = "/signin" + [params.header.buttons.getStarted] + text = "Get Started" + url = "/get-started" + + # Global CTA Configuration (optional) + [params.cta] + enable = true + title = "Ready to Get Started?" + description = "Join companies using our platform" + [params.cta.primary_button] + text = "Get Started Free" + url = "/get-started" + [params.cta.secondary_button] + text = "Book Demo" + url = "/demo" + + # Social Media Links (optional) + [params.social] + linkedin = "https://linkedin.com/in/yourusername" + twitter = "https://twitter.com/yourusername" + bluesky = "https://bsky.app/profile/yourblueskyhandle" + github = "https://github.com/yourusername" + +# Navigation Menu +[menu] + [[menu.main]] + name = "Features" + weight = 1 + [menu.main.params] + has_submenu = true + submenu = [ + { name = "Feature 1", url = "/features/feature-1/" }, + { name = "Feature 2", url = "/features/feature-2/" } + ] + [[menu.main]] + name = "Pricing" + url = "/pricing" + weight = 2 + [[menu.main]] + name = "Blog" + url = "/blog" + weight = 3 +``` + +This configuration includes: + +- **Basic Settings**: Site title, theme selection, and default language +- **Required Features**: Emoji support and Git integration +- **Pagination**: Posts per page configuration +- **Module Configuration**: Hugo Extended version requirements +- **Build Settings**: Required for TailwindCSS integration with build stats +- **Security Settings**: Environment variable access control +- **Markup Settings**: Syntax highlighting and markdown rendering options +- **Taxonomies**: Categories and tags support +- **Theme Parameters**: + - Header configuration with logo and navigation + - Call-to-action (CTA) sections + - Social media links + - Google Analytics configuration (only enabled in production) + - Google Tag Manager configuration (only enabled in production) + - Custom head content for additional tracking scripts and meta tags +- **Navigation Menu**: Main menu structure with dropdown support + +**Note**: For multilingual sites, see the [Multilingual Support](#multilingual-support) section below for additional language configuration. + +## Development + +To start the development server with live reload: + +```bash +npm run start +``` + +This will: +- Watch for changes in your TailwindCSS styles +- Run the Hugo development server +- Automatically rebuild when changes are detected + +To build your site for production: + +```bash +npm run build +``` + +This will: +- Build and minify your TailwindCSS styles +- Generate minified Hugo site in the `public` directory + +## Customization + +### Colors + +The theme uses a primary and secondary color scheme that can be customized in `tailwind.config.js`: + +```js +colors: { + primary: { + // Your primary color palette + }, + secondary: { + // Your secondary color palette + } +} +``` + +### Typography + +The theme uses Inter for body text and Plus Jakarta Sans for headings. You can modify this in `tailwind.config.js`: + +```js +fontFamily: { + sans: ['Inter', 'system-ui', 'sans-serif'], + heading: ['Plus Jakarta Sans', 'sans-serif'], +} +``` + +### Layout Components + +Common components like buttons, cards, and sections can be customized in `assets/scss/main.scss`. + +### Custom Head Content + +Add custom tracking scripts or meta tags by creating `layouts/partials/custom-head.html` in your site: + +```html + + + + + + +``` + +This is perfect for: +- Third-party analytics (Hotjar, Mixpanel, Heap, etc.) +- Site verification meta tags +- Custom fonts or stylesheets +- A/B testing scripts +- Chat widgets + +See the [Configuration Guide](docs/CONFIGURATION.md#custom-head-content) for more details. + +## Multilingual Support + +The theme has full multilingual (i18n) support with: +- Automatic language switcher in the header +- Language-specific content directories +- Translatable UI strings via i18n files +- Language-specific menus and parameters + +### Quick Setup + +1. **Configure languages in `hugo.toml`:** + +```toml +defaultContentLanguage = "en" + +[languages] + [languages.en] + languageCode = "en-us" + languageName = "English" + weight = 1 + contentDir = "content" + + [languages.zh-cn] + languageCode = "zh-cn" + languageName = "็ฎ€ไฝ“ไธญๆ–‡" + weight = 2 + contentDir = "content/zh-cn" +``` + +2. **Create translation files:** + +Copy `themes/chill-theme/i18n/en.toml` to your site's `i18n/` directory and create language-specific versions (e.g., `i18n/zh-cn.toml`). + +3. **Organize content by language:** + +``` +content/ +โ”œโ”€โ”€ _index.md # English homepage +โ”œโ”€โ”€ blog/ # English blog posts +โ””โ”€โ”€ zh-cn/ # Chinese content + โ”œโ”€โ”€ _index.md # Chinese homepage + โ””โ”€โ”€ blog/ # Chinese blog posts +``` + +4. **Configure language-specific menus:** + +```toml +# English menu +[[languages.en.menu.main]] + name = "Features" + url = "/features" + +# Chinese menu +[[languages.zh-cn.menu.main]] + name = "ๅŠŸ่ƒฝ็‰นๆ€ง" + url = "/zh-cn/features" +``` + +The language switcher will automatically appear in the header when multiple languages are configured. + +**๐Ÿ“– [Full Multilingual Guide โ†’](docs/INTERNATIONALIZATION.md)** + +**๐Ÿ’ก Want to see a complete working example?** Check out the [demo site repository](https://github.com/chaoming/hugo-saasify-demo) for a full multilingual setup with English and Simplified Chinese, including all configuration files, translated content, and i18n files. + +## Content Structure + +``` +content/ +โ”œโ”€โ”€ _index.md # Homepage content +โ”œโ”€โ”€ blog/ # Blog posts +โ”œโ”€โ”€ features/ # Feature pages +โ”œโ”€โ”€ docs/ # Documentation pages +โ””โ”€โ”€ zh-cn/ # Additional language (optional) + โ”œโ”€โ”€ _index.md + โ””โ”€โ”€ blog/ +``` + +## Build Your Complete SaaS Solution + +Hugo Saasify Theme is perfect for your **marketing site**, but what about your actual SaaS application? Check out [**Fireact.dev**](https://fireact.dev/) - an open-source framework that complements this theme perfectly. + +[Fireact.dev](https://github.com/fireact-dev/main) is a production-ready SaaS application starter built with **React, Firebase, and Stripe**. It provides everything you need for the application side of your SaaS business: + +- **Stripe Integration** - Complete billing system with subscription management, payment processing, invoices, and customer portal +- **User Management** - Built-in authentication, team collaboration, user invitations, and role-based access control (admin/user roles) +- **Multi-tenancy** - Full support for multiple subscription accounts with isolated data and permissions +- **Production Ready** - TypeScript, internationalization (i18n), Firebase Cloud Functions, and comprehensive documentation + +**Perfect Combination**: Use Hugo Saasify Theme for your public-facing marketing website (landing pages, blog, documentation) and Fireact.dev for your authenticated SaaS application. Together, they provide a complete solution for launching your SaaS product quickly. + +Learn more at [fireact.dev](https://fireact.dev/) or view the [GitHub repository](https://github.com/fireact-dev/main). + +## License + +This theme is released under the [MIT license](https://github.com/chaoming/chill-theme/blob/main/LICENSE). + +## Quick Links + +- ๐Ÿ“– [Documentation](docs/README.md) +- ๐ŸŽจ [Demo Site](https://saasify-demo.chaoming.li) +- ๐Ÿ› [Report Issues](https://github.com/chaoming/chill-theme/issues) +- ๐Ÿ’ฌ [Discussions](https://github.com/chaoming/chill-theme/discussions) + +## Support + +Need help? Check the documentation first: + +1. **[Complete Documentation](docs/README.md)** - Start here +2. **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Common issues +3. **[GitHub Issues](https://github.com/chaoming/chill-theme/issues)** - Report bugs or request features + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. + +## Author + +Created by [Chaoming Li](https://chaoming.li) diff --git a/themes/chill-theme/assets/css/main.css b/themes/chill-theme/assets/css/main.css new file mode 100644 index 0000000..dc470f5 --- /dev/null +++ b/themes/chill-theme/assets/css/main.css @@ -0,0 +1,199 @@ + +@tailwind base; +@tailwind components; +@tailwind utilities; + + +@layer base { + html { + @apply scroll-smooth; + } + + body { + @apply font-sans text-gray-700 antialiased; + } + + +} + +@layer utilities { + .rounded-lg { + border-radius: 2rem; + } +} + +@layer components { + .cta-section { + padding-top: 3rem; + padding-bottom: 3rem; + margin-top: 2rem; + margin-bottom: 2rem; + } + + .cta-gradient { + background: linear-gradient(calc(var(--gradient-angle) * 1deg), var(--gradient-from), var(--gradient-to)); + } + + .btn { + @apply inline-flex items-center justify-center px-6 py-3 font-medium transition duration-200 ease-in-out; + border-radius: 2rem; + } + + .btn-primary { + @apply btn bg-primary-600 text-white hover:bg-primary-700 hover:scale-105; + } + + .btn-secondary { + @apply btn bg-secondary-600 text-white hover:bg-secondary-700 hover:scale-105; + } + + .btn-outline { + @apply btn border-2 border-primary-600 text-primary-600 hover:scale-105; + } + + .container { + @apply mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl; + } + + .section { + @apply py-16 md:py-24; + } + + .card { + @apply bg-white p-6 transition duration-200 hover:shadow-md; + border-radius: 2rem; + } + + .nav-link { + @apply text-gray-600 hover:text-primary-600 font-bold transition duration-200; + } + + .feature-grid { + @apply grid gap-8 md:grid-cols-2 lg:grid-cols-3; + } + + /* Blog and Syntax Highlighting Styles */ + .highlight { + @apply text-sm font-mono text-gray-200; + } + + .highlight table { + @apply w-full border-separate border-spacing-0; + } + + .highlight table td { + @apply p-0; + } + + .highlight table td:first-child { + @apply pr-4 text-right select-none text-gray-500 border-r border-gray-700; + } + + .highlight table td:last-child { + @apply pl-4 w-full; + } + + .highlight .k, .highlight .kd { + @apply text-purple-400 font-semibold; + } + + .highlight .nf, .highlight .nx { + @apply text-blue-400; + } + + .highlight .s, .highlight .s1, .highlight .s2 { + @apply text-green-400; + } + + .highlight .mi, .highlight .mf { + @apply text-orange-400; + } + + .highlight .c, .highlight .c1, .highlight .cm { + @apply text-gray-500 italic; + } + + .highlight .o { + @apply text-yellow-400; + } + + .highlight .p { + @apply text-gray-400; + } + + .prose { + @apply max-w-none; + } + + .prose h1, .prose h2, .prose h3, .prose h4 { + @apply font-heading font-bold text-gray-900; + } + + .prose h1 { + @apply text-4xl mb-8; + } + + .prose h2 { + @apply text-3xl mt-12 mb-6; + } + + .prose h3 { + @apply text-2xl mt-8 mb-4; + } + + .prose p { + @apply text-gray-700 leading-relaxed mb-6; + } + + .prose a { + @apply text-primary-600 hover:text-primary-700 no-underline; + } + + .prose ul, .prose ol { + @apply my-6 ml-6; + } + + .prose li { + @apply mb-2; + } + + .prose blockquote { + @apply border-l-4 border-gray-200 pl-4 italic text-gray-700 my-8; + } + + .prose img { + @apply rounded-lg shadow-lg my-8; + } + + .prose code:not(pre code) { + @apply bg-gray-100 text-gray-900 px-1.5 py-0.5 rounded text-sm font-mono; + } + + .table-of-contents { + @apply bg-gray-50 p-6 rounded-lg my-8; + } + + .table-of-contents nav { + @apply space-y-2; + } + + .table-of-contents a { + @apply text-gray-700 hover:text-primary-600 no-underline; + } + + .table-of-contents ul { + @apply list-none ml-4 space-y-2; + } +} +.features-carousel__nav { margin-bottom: 1rem; text-align: center; } +.features-carousel__nav button { + @apply btn text-gray-900 hover:text-primary-700; + max-height:40px; +} + +.features-carousel__nav button.active { + @apply btn bg-primary-600 text-white hover:bg-primary-700 hover:scale-105; +} + +.features-carousel__slides { min-height: 150px; } +.feature { display: none; } diff --git a/themes/chill-theme/config.toml b/themes/chill-theme/config.toml new file mode 100644 index 0000000..4fa7cab --- /dev/null +++ b/themes/chill-theme/config.toml @@ -0,0 +1,4 @@ +[module] + [module.hugoVersion] + extended = true + min = "0.80.0" diff --git a/themes/chill-theme/docs/CONFIGURATION.md b/themes/chill-theme/docs/CONFIGURATION.md new file mode 100644 index 0000000..ca090a5 --- /dev/null +++ b/themes/chill-theme/docs/CONFIGURATION.md @@ -0,0 +1,1144 @@ +# Configuration Guide + +Complete reference for configuring the Hugo Saasify Theme. This guide covers all available configuration options in your `hugo.toml` file. + +## Table of Contents + +- [Basic Configuration](#basic-configuration) +- [Site Parameters](#site-parameters) +- [Header Configuration](#header-configuration) +- [Footer Configuration](#footer-configuration) +- [CTA Configuration](#cta-configuration) +- [Blog Configuration](#blog-configuration) +- [Social Media Links](#social-media-links) +- [Analytics Configuration](#analytics-configuration) +- [Menu Configuration](#menu-configuration) +- [Build Settings](#build-settings) +- [Markup Configuration](#markup-configuration) +- [Taxonomy Configuration](#taxonomy-configuration) +- [Advanced Options](#advanced-options) + +## Basic Configuration + +Essential settings that every site needs. + +```toml +baseURL = "https://your-domain.com/" +languageCode = "en-us" +title = "Your SaaS Name" +theme = "chill-theme" + +# Enable syntax highlighting +pygmentsCodeFences = true +pygmentsUseClasses = true + +# Enable emoji support +enableEmoji = true + +# Enable Git info for lastmod dates +enableGitInfo = true + +# Pagination +paginate = 6 +paginatePath = "page" +``` + +### Configuration Options + +| Parameter | Type | Description | Default | +|-----------|------|-------------|---------| +| `baseURL` | string | Your site's production URL | Required | +| `languageCode` | string | Site language code (ISO 639-1) | `en-us` | +| `title` | string | Site title (appears in browser, meta) | Required | +| `theme` | string | Must be "chill-theme" | Required | +| `pygmentsCodeFences` | boolean | Enable syntax highlighting in code blocks | `true` | +| `pygmentsUseClasses` | boolean | Use CSS classes for syntax highlighting | `true` | +| `enableEmoji` | boolean | Enable emoji shortcodes in content | `true` | +| `enableGitInfo` | boolean | Use Git commit dates for lastmod | `false` | +| `paginate` | integer | Number of posts per page in lists | `6` | +| `paginatePath` | string | URL path component for pagination | `page` | + +## Site Parameters + +Global parameters available throughout your site. + +```toml +[params] + description = "Modern SaaS platform for your business needs" + author = "Your Company Name" + logo = "/images/logo.svg" + + # Google Analytics (GA4) + googleAnalytics = "G-XXXXXXXXXX" + + # Google Tag Manager + googleTagManager = "GTM-XXXXXXX" + + # Favicon + favicon = "/images/favicon.ico" + + # Default OG Image + ogImage = "/images/og-image.jpg" + + # Copyright text + copyright = "ยฉ 2025 Your Company. All rights reserved." +``` + +### Parameter Descriptions + +| Parameter | Type | Description | Required | +|-----------|------|-------------|----------| +| `description` | string | Default meta description | Recommended | +| `author` | string | Site author/company name | Optional | +| `logo` | string | Path to logo image | Recommended | +| `googleAnalytics` | string | Google Analytics 4 ID | Optional | +| `googleTagManager` | string | Google Tag Manager ID | Optional | +| `favicon` | string | Path to favicon | Optional | +| `ogImage` | string | Default Open Graph image | Optional | +| `copyright` | string | Footer copyright text | Optional | + +## Header Configuration + +Customize your site's header, navigation, and menu appearance. + +```toml +[params.header] + # Header styles + background = "bg-white/80 backdrop-blur-sm" + border = "border-b border-gray-100" + + # Logo configuration + [params.header.logo] + src = "/images/logo.svg" + alt = "Company Logo" + width = "auto" + height = "40" + + # Menu configuration + [params.header.menu] + spacing = "space-x-8" + font_size = "text-sm" + font_weight = "font-medium" + + # Dropdown menu styling + [params.header.menu.dropdown] + width = "w-72" + container_padding = "py-6" + item_padding = "px-8 py-3" + background = "bg-white" + border = "border border-gray-100" + shadow = "shadow-xl" + radius = "rounded-lg" + text_color = "text-gray-700" + hover_background = "hover:bg-gray-50" + text_size = "text-sm" + + # Header buttons + [params.header.buttons] + # Sign In button + [params.header.buttons.signIn] + text = "Sign in" + url = "/signin" + style = "text-gray-600 hover:text-primary-600" + + # Get Started button + [params.header.buttons.getStarted] + text = "Get Started" + url = "/get-started" + style = "btn-primary" +``` + +### Header Options + +**Background and Border** +- `background`: Tailwind classes for header background +- `border`: Tailwind classes for header border + +**Logo Settings** +- `src`: Path to logo image file +- `alt`: Alternative text for logo +- `width`: Logo width (CSS value) +- `height`: Logo height (CSS value) + +**Menu Styling** +- `spacing`: Horizontal spacing between menu items +- `font_size`: Text size for menu items +- `font_weight`: Font weight for menu items + +**Dropdown Customization** +- All properties accept Tailwind CSS classes +- Customize width, padding, colors, shadows, etc. + +## Footer Configuration + +Configure footer columns and layout. + +```toml +[params.footer] + # Column titles + column_1_title = "Product" + column_2_title = "Company" + column_3_title = "Legal" + + # Footer text + description = "Building amazing SaaS products since 2024" + + # Show social icons + show_social = true + + # Newsletter subscription + [params.footer.newsletter] + enable = true + title = "Subscribe to our newsletter" + description = "Get the latest updates and news" + action = "https://formspree.io/f/your-form-id" + placeholder = "Enter your email" + button_text = "Subscribe" +``` + +### Footer Menus + +Footer menus are configured in the `[menu]` section. See [Menu Configuration](#menu-configuration). + +## CTA Configuration + +Global Call-to-Action section that appears on various pages. + +```toml +[params.cta] + enable = true + title = "Ready to Get Started?" + description = "Join thousands of companies using our platform" + + # Gradient background + gradient_from = "#2563eb" # Blue-600 + gradient_to = "#7c3aed" # Purple-600 + gradient_angle = 30 + + # Primary button + [params.cta.primary_button] + text = "Start Free Trial" + url = "/signup" + + # Secondary button + [params.cta.secondary_button] + text = "Schedule Demo" + url = "/demo" +``` + +### CTA Options + +| Parameter | Type | Description | +|-----------|------|-------------| +| `enable` | boolean | Show/hide global CTA | +| `title` | string | CTA heading text | +| `description` | string | CTA description text | +| `gradient_from` | string | Gradient start color (hex) | +| `gradient_to` | string | Gradient end color (hex) | +| `gradient_angle` | integer | Gradient angle in degrees | +| `primary_button.text` | string | Primary button label | +| `primary_button.url` | string | Primary button link | +| `secondary_button.text` | string | Secondary button label | +| `secondary_button.url` | string | Secondary button link | + +## Blog Configuration + +Configure blog functionality and sidebar options. + +```toml +[params.blog] + enable = true + title = "Latest Articles" + subtitle = "Insights, tutorials, and updates" + + # Show estimated reading time + show_reading_time = true + + # Show author info + show_author = true + + # Show post date + show_date = true + + # Date format (Go time format) + date_format = "January 2, 2006" + + # CTA in blog posts + [params.blog.cta] + enable = true + + # Sidebar configuration + [params.blog.sidebar] + # Recent articles + [params.blog.sidebar.recent] + enable = true + title = "Recent Articles" + count = 5 + + # Categories + [params.blog.sidebar.categories] + enable = true + title = "Categories" + show_count = true + + # Tags + [params.blog.sidebar.tags] + enable = true + title = "Popular Tags" + count = 20 + style = "cloud" # "cloud" or "list" + + # Newsletter subscription + [params.blog.sidebar.subscribe] + enable = true + title = "Subscribe to Newsletter" + description = "Get the latest posts delivered to your inbox" + action = "https://formspree.io/f/your-form-id" + emailName = "email" + buttonText = "Subscribe" + placeholder = "Enter your email" + disclaimer = "We respect your privacy. Unsubscribe anytime." +``` + +### Blog Display Options + +**Post Metadata** +- `show_reading_time`: Display estimated reading time +- `show_author`: Show author name +- `show_date`: Display publication date +- `date_format`: Date format string (Go format) + +**Sidebar Widgets** +- Each widget can be enabled/disabled individually +- Customize titles and display counts +- Tags can be displayed as cloud or list + +## Social Media Links + +Configure social media profiles for footer and sharing. + +```toml +[params.social] + linkedin = "https://linkedin.com/company/yourcompany" + twitter = "https://twitter.com/yourhandle" + bluesky = "https://bsky.app/profile/yourhandle" + youtube = "https://youtube.com/@yourchannel" + facebook = "https://facebook.com/yourpage" + instagram = "https://instagram.com/yourhandle" + github = "https://github.com/yourorg" + telegram = "https://t.me/yourchannel" + discord = "https://discord.gg/yourinvite" + slack = "https://yourteam.slack.com" + medium = "https://medium.com/@yourhandle" + dribbble = "https://dribbble.com/yourprofile" + behance = "https://behance.net/yourprofile" +``` + +Add only the social networks you want to display. Omit the others. + +## Analytics Configuration + +### Google Analytics 4 + +```toml +[params] + # Google Analytics 4 (GA4) + googleAnalytics = "G-XXXXXXXXXX" +``` + +The theme includes automatic GA4 integration. Simply add your measurement ID. + +**Features**: +- Page view tracking +- Event tracking +- User engagement metrics +- Automatic configuration + +### Google Tag Manager + +```toml +[params] + # Google Tag Manager + googleTagManager = "GTM-XXXXXXX" +``` + +GTM provides more advanced tracking capabilities. + +**Features**: +- Custom event tracking +- Enhanced e-commerce +- Multiple tag management +- Advanced triggers and variables + +**Implementation**: +- Head script automatically inserted +- Body script (noscript) included +- Compatible with GA4 + +### Using Both Analytics Tools + +You can use both GA4 and GTM simultaneously: + +```toml +[params] + googleAnalytics = "G-XXXXXXXXXX" + googleTagManager = "GTM-XXXXXXX" +``` + +**Best Practice**: If using GTM, configure GA4 through GTM rather than directly for better control. + +### Custom Head Content + +For tracking scripts and tools not covered by Google Analytics or Google Tag Manager, you can add custom code to the `` section. + +**How to use**: + +1. Create a file in your site: `layouts/partials/custom-head.html` +2. Add any custom HTML, scripts, or meta tags to this file + +**Example** - Adding Hotjar tracking: + +```html + + +``` + +**Example** - Adding site verification meta tags: + +```html + + + +``` + +**Example** - Adding custom fonts: + +```html + + + +``` + +**Use Cases**: +- Third-party tracking scripts (Hotjar, Mixpanel, Heap, etc.) +- Site verification meta tags +- Custom fonts or stylesheets +- A/B testing scripts +- Chat widget scripts +- Any other code that needs to be in the `` section + +**Note**: The `custom-head.html` partial is loaded after all other head elements, giving you full control while maintaining theme compatibility. + +## Menu Configuration + +Configure navigation menus for header and footer. + +### Main Navigation Menu + +```toml +[menu] + # Simple menu item + [[menu.main]] + name = "Pricing" + url = "/pricing" + weight = 2 + + # Menu item with dropdown + [[menu.main]] + name = "Features" + weight = 1 + [menu.main.params] + has_submenu = true + submenu = [ + { name = "Performance", url = "/features/performance/" }, + { name = "Design System", url = "/features/design/" }, + { name = "Developer Experience", url = "/features/dx/" } + ] + + # External link + [[menu.main]] + name = "Documentation" + url = "https://docs.example.com" + weight = 5 + [menu.main.params] + external = true +``` + +### Footer Menus + +```toml +[menu] + # Footer Column 1 + [[menu.footer_column_1]] + name = "Features" + url = "/features" + weight = 1 + + [[menu.footer_column_1]] + name = "Pricing" + url = "/pricing" + weight = 2 + + # Footer Column 2 + [[menu.footer_column_2]] + name = "About Us" + url = "/about" + weight = 1 + + [[menu.footer_column_2]] + name = "Blog" + url = "/blog" + weight = 2 + + # Footer Column 3 + [[menu.footer_column_3]] + name = "Privacy Policy" + url = "/privacy" + weight = 1 + + [[menu.footer_column_3]] + name = "Terms of Service" + url = "/terms" + weight = 2 +``` + +### Menu Parameters + +**Standard Parameters** +- `name`: Display text +- `url`: Link destination +- `weight`: Sort order (lower = earlier) + +**Custom Parameters** +- `has_submenu`: Enable dropdown menu +- `submenu`: Array of submenu items +- `external`: Mark as external link + +## Build Settings + +Essential build configuration for the theme. + +```toml +[module] + [module.hugoVersion] + extended = true + min = "0.80.0" + +[build] + writeStats = true + +[build.buildStats] + enable = true + +[security.funcs] + getenv = ['^HUGO_', '^CI$'] +``` + +### Build Options + +| Parameter | Description | +|-----------|-------------| +| `module.hugoVersion.extended` | Require Hugo Extended (needed for Tailwind) | +| `module.hugoVersion.min` | Minimum Hugo version | +| `build.writeStats` | Generate build statistics for Tailwind | +| `build.buildStats.enable` | Enable detailed build stats | +| `security.funcs.getenv` | Allowed environment variable patterns | + +**Important**: These settings are required for the theme to work correctly. + +## Markup Configuration + +Configure content rendering and syntax highlighting. + +```toml +[markup] + # Syntax highlighting + [markup.highlight] + noClasses = false # Use CSS classes + lineNos = true # Show line numbers + codeFences = true # Enable fenced code blocks + guessSyntax = true # Auto-detect language + lineNumbersInTable = true # Line numbers in table format + style = "monokai" # Syntax highlighting theme + + # Goldmark (Markdown renderer) + [markup.goldmark.renderer] + unsafe = true # Allow raw HTML in markdown + + # Table of Contents + [markup.tableOfContents] + endLevel = 3 # Deepest heading level + ordered = false # Use unordered lists + startLevel = 2 # Starting heading level +``` + +### Syntax Highlighting + +**Available Styles**: +- `monokai` (default, dark theme) +- `github` +- `dracula` +- `vim` +- `nord` +- And many more from [Chroma Gallery](https://xyproto.github.io/splash/docs/) + +**Line Numbers**: +- `lineNos`: Enable/disable line numbers +- `lineNumbersInTable`: Use table format for better copy/paste + +### Table of Contents + +- `startLevel`: First heading level to include (2 = h2) +- `endLevel`: Last heading level to include (3 = h3) +- `ordered`: Use ordered (`
    `) or unordered (`