Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added assets/img/nat-9l98kFByiao-unsplash.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions config/_default/hugo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ defaultContentLanguageInSubdir = false
disabled = false
simple = true

[privacy.twitter]
[privacy.x]
disabled = false
enableDNT = true
simple = true
Expand All @@ -50,7 +50,7 @@ defaultContentLanguageInSubdir = false
[services]
[services.instagram]
disableInlineCSS = true
[services.twitter]
[services.x]
disableInlineCSS = true
[services.googleAnalytics]
ID = "G-T85PPZ36GN"
Expand Down
24 changes: 12 additions & 12 deletions config/_default/menus/menus.en.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@
pageRef = "/docs/"
weight = 20

[[main]]
name = "Content Blocks"
pageRef = "/docs/content-blocks"
weight = 30

[[main]]
name = "Components"
pageRef = "/docs/components/"
weight = 30
weight = 40
[main.params]
alias = true

[[main]]
name = "Guides"
pageRef = "/guides/"
weight = 40

[[main]]
name = "Releases"
pageRef = "/releases/"
weight = 50

[[main]]
Expand Down Expand Up @@ -138,17 +138,17 @@

[[footer]]
parent = "Links"
name = "Components"
pageRef = "/docs/components/"
name = "Content blocks"
pageRef = "/docs/content-blocks/"
weight = 30
[footer.params]
alias = true

[[footer]]
parent = "Links"
name = "Releases"
pageRef = "/releases/"
name = "Components"
pageRef = "/docs/components/"
weight = 40
[footer.params]
alias = true

[[footer]]
name = "Guides"
Expand Down
2 changes: 1 addition & 1 deletion config/_default/params.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@

[navigation]
anchor = true
logo = "/img/logo_icon.svg"
logo = "/img/logo_var.svg#logo"
color = ""
fixed = true
offset = "5.5em"
Expand Down
2 changes: 1 addition & 1 deletion config/postcss.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const purgecss = purgeCSSPlugin({
'./_vendor/github.com/gethinode/hinode/assets/scss/theme/fonts.scss',
'./_vendor/github.com/gethinode/mod-cookieyes/v2/assets/scss/cookieyes.scss',
'./_vendor/github.com/gethinode/mod-flexsearch/v2/assets/scss/modules/flexsearch/flexsearch.scss',
'./_vendor/github.com/gethinode/mod-simple-datatables/dist/simple-datatables.scss',
'./_vendor/github.com/gethinode/mod-simple-datatables/v2/dist/simple-datatables.scss',
'./_vendor/github.com/gethinode/mod-katex/dist/katex.scss',
'./_vendor/github.com/gethinode/mod-leaflet/dist/leaflet.scss',
'./_vendor/github.com/twbs/bootstrap/scss/_carousel.scss',
Expand Down
112 changes: 98 additions & 14 deletions content/en/_index.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,103 @@
---
author: Mark Dumay
title: Creating your website has never been easier
description: Focus on your content and let Hinode generate your static website. Use powerful shortcodes to add interactive elements with ease. And best of all - it is open source.
thumbnail: /img/logo_var.svg#logo
actions:
getstarted:
url: "docs/getting-started/introduction/"
title: "Get Started"
icon: "fas book-open"
weight: 1
demo:
url: "https://demo.gethinode.com"
title: "Live Demo"
icon: "fas display"
title: A Hugo Theme
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
content_blocks:
- _bookshop_name: hero
heading:
title: Build a static website. Fast and flexible.
align: start
content: >-
Powered by [Hugo](https://gohugo.io), the world’s fastest framework for building websites, Hinode is fast and flexible. Hinode lets you create a blog, documentation site, or landing page that scales with your needs.
width: 6
align: end
order: last
illustration:
image: /img/logo_icon.svg
# image: /img/logo_var.svg#logo
width: 6
links:
- title: Getting Started
url: docs/getting-started/introduction/
icon: fas book-open
outline: true
weight: 2
- title: Live Demo
url: https://demo.gethinode.com
icon: fas display
outline: true
orientation: horizontal
cover: true

- _bookshop_name: articles
heading:
title: Flexible & ready-to-use
content: >-
Hinode provides many ready-to-use [content blocks](/docs/content-blocks) and [components](/docs/components) to quickly develop your site. With native support for [Hugo modules](https://gohugo.io/hugo-modules/), you can easily extend your site to your liking.
align: center
width: 8
input:
section: guides
reverse: true
sort: title
hide-empty: false
header-style: none
more:
title: More Guides
padding: 0
max: 3
class: border-0 card-zoom card-body-margin
justify: center

- _bookshop_name: video-message
heading:
title: Developer-friendly and secure
content: >-
By separating content from presentation, your Hinode site is easily managed and versioned. Hinode provides a modern build system that is flexible and robust.
align: center
width: 8
background:
color: body-tertiary
orientation: horizontal
video:
provider: youtube
media-id: "w7Ft2ymGmfc"
autoplay: false
messages:
- title: Structured
icon: fas sitemap
content: >-
Hinode uses a structured approach to [organize and present content](https://gohugo.io/content-management/organization/). This increases usability and [Lighthouse scores](https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F).
- title: Automated
icon: fas robot
content: >-
Hinodes fully supports [npm](https://www.npmjs.com/) and [GitHub actions](https://github.com/features/actions) to ensure your deployed site is always up-to-date.
- title: Secure
icon: fas check
content: >-
As a static site, Hinode is secure by design. In addition, Hinode uses strict security policies by default. This results in an [A+ security score](https://observatory.mozilla.org/analyze/demo.gethinode.com).
justify: center

- _bookshop_name: cards
heading:
title: Powered by open source
content: >-
Hinode builds upon several open-source packages, such as Hugo, Bootstrap, and Font Awesome. Want to make Hinode even better? Hinode is [open to contributions](/docs/getting-started/contribute/).
align: center
width: 8
orientation: stacked
elements:
- title: Hugo
icon: fab markdown
content: >-
[Hugo](https://gohugo.io) is a static website generator written in the Go language. It is optimized for speed, ease of use, and configurability.
- title: Bootstrap
icon: fab bootstrap
content: >-
[Bootstrap](https://getbootstrap.com) is a popular, open-source web development framework. Is uses a mobile-first approach to create responsive websites.
- title: Font Awesome
icon: fa font-awesome
content: >-
[Font Awesome](https://fontawesome.com) is a popular icon library and toolkit, used on over 200 million sites. The free version provides more than 2,000 icons.
justify: center
---

3 changes: 2 additions & 1 deletion content/en/cookies.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Cookie policy of gethinode.com
date: 2024-09-19
layout: docs
---
{{% comment %}}<!-- markdownlint-disable MD036 -->{{% /comment %}}
<!-- markdownlint-disable MD036 -->
*Effective Date 19-Sep-2024*

## What are cookies?
Expand Down Expand Up @@ -42,3 +42,4 @@ Internet Explorer: https://support.microsoft.com/en-us/topic/how-to-delete-cooki
If you are using any other web browser, please visit your browser’s official support documents.

*Cookie Policy generated by {{< link "https://www.cookieyes.com" >}}CookieYes - Cookie Policy Generator{{< /link >}}.*
<!-- markdownlint-enable MD036 -->
1 change: 1 addition & 0 deletions content/en/docs/latest/about/credits.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Hinode is based on the following core components:
- {{< link hugo >}}Hugo{{< /link >}} is a static HTML and CSS website generator written in the {{< link golang >}}Go language{{< /link >}}. It is optimized for speed, ease of use, and configurability. Hugo takes a directory with {{< link markdown_guide >}}Markdown content{{< /link >}} and templates and renders them into a full HTML website.
- {{< link bootstrap >}}Bootstrap{{< /link >}} is a popular, open-source web development framework. Using a mobile-first approach, it provides several functions and components to simplify the creation of responsive websites.
- {{< link npm >}}npm{{< /link >}} is a software registry that enables the sharing and reuse of both open-source and private software packages. By taking advantage of its version management, software dependencies are easily tracked and updated.
- [Bookshop](https://github.com/CloudCannon/bookshop) is a component development workflow for static websites.
- {{< link flexsearch >}}FlexSearch{{< /link >}} is a flexible search library to enable full text search across your site.
- {{< link fontawesome >}}Font Awesome{{< /link >}} is a popular icon library and toolkit, used on over 200 million sites. The free version provides access to more than 2,000 icons. The toolkit also provides various styling and animation options out of the box.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
---
author: Mark Dumay
title: Releases
date: 2023-08-14
date: 2025-06-11
aliases:
- "/docs/about/releases/"
- "/docs/releases/"
- "/releases/"
description: A chronological overview of key releases since the initial launch of Hinode.
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ The workflow requires two secrets within your repository. Add them as `action se

Hugo modules have several constraints to work properly. The below overview provides some common challenges and how to overcome them.

{{% comment %}}<!-- markdownlint-disable MD037 -->{{% /comment %}}
<!-- markdownlint-disable MD037 -->
{{< accordion class="accordion-theme accordion-flush" >}}
{{< accordion-item header="The required distribution files are unavailable" >}}
Hugo modules use the latest available release on GitHub, or the most recent HEAD of the default branch otherwise. However, not all repositories maintain their distribution files as part of version control or their GitHub release assets. One such example is the {{</* link leaflet >}}Leaflet library{{< /link */>}}. The repository does not include the compiled JavaScript, but only its source files. As a workaround, the {{</* link repository_mod_leaflet >}}Leaflet module{{< /link */>}} downloads the npm package instead and copies the required files in a `postinstall` script.
Expand All @@ -202,4 +202,4 @@ Hugo modules have several constraints to work properly. The below overview provi
You might have an issue with your Hugo module cache. Certain operating systems such as macOS have a volatile cache system, that is modified when your machine has restarted or was recently suspended. Try running `hugo mod clean` to clear the Hugo module cache and then rerun `hugo mod get -u`.
{{< /accordion-item >}}
{{< /accordion >}}
{{% comment %}}<!-- markdownlint-enable MD037 -->{{% /comment %}}
<!-- markdownlint-enable MD037 -->
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ date: 2024-01-03
layout: docs
---

> [!IMPORTANT]
> The partial development is being revised. The documentation on this page is still to be updated. Visit this [GitHub issue](https://github.com/gethinode/hinode/issues/1430#issuecomment-2988697852) for more information.

Hinode supports more than 30 shortcodes. Many of these shortcodes wrap an predefined Bootstrap component, such as the {{< link "docs/components/button" />}} or {{< link "docs/components/tooltip" />}}. Custom shortcodes include a {{< link "docs/components/command-prompt" />}}, {{< link "docs/components/image" />}}, and {{< link "docs/components/timeline" />}}. Some of these components are maintained in a separate module, such as the {{< link "docs/components/animation" />}} or {{< link "docs/components/map" />}}. Hinode follows several conventions to standardize and streamline the development of shortcodes and partials. You are encouraged to use the same conventions, especially when contributing your own code for sharing.

## Shared partials
Expand Down Expand Up @@ -58,13 +61,13 @@ Most shortcodes support multiple arguments to configure their behavior and to re

Let's consider the following example. The {{< link "docs/components/toast" />}} shortcode displays a dismissable message in the bottom-right corner of the screen. We can trigger it by assigning its unique identifier to a button.

{{% comment %}}<!-- markdownlint-disable MD037 -->{{% /comment %}}
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button toast="toast-example-1" */>}}Show toast{{</* /button */>}}

{{</* toast id="toast-example-1" header="First title" */>}}This is a toast message{{</* /toast */>}}
{{< /example >}}
{{% comment %}}<!-- markdownlint-enable MD037 -->{{% /comment %}}
<!-- markdownlint-enable MD037 -->

The toast shortcode displays the message `This is a toast message` provided as inner input. Additionally, it supports the following arguments:

Expand Down
8 changes: 4 additions & 4 deletions content/en/docs/latest/advanced-settings/scripts.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ layout: docs
---

> [!IMPORTANT]
> Hinode release {{< release version="v0.27.0" short="true" type="link" >}} has overhauled the build pipeline of scripts and modules. The bundled files now support categorization by intent.
> Hinode release {{< release version="v0.27.0" short="true" link-type="link" >}} has overhauled the build pipeline of scripts and modules. The bundled files now support categorization by intent.

Hinodes bundles JavaScript files to optimize the page loading speed. By utilizing [Hugo modules]({{% ref "overview" %}}), referenced JavaScript files are automatically ingested and version controlled. Since release {{< release version="v0.27.0" short="true" type="link" >}}, Hinode also supports the grouping of scripts by their intent. Review the next sections to familiarize yourself with the build system.
Hinodes bundles JavaScript files to optimize the page loading speed. By utilizing [Hugo modules]({{% ref "overview" %}}), referenced JavaScript files are automatically ingested and version controlled. Since release {{< release version="v0.27.0" short="true" link-type="link" >}}, Hinode also supports the grouping of scripts by their intent. Review the next sections to familiarize yourself with the build system.

## Types of integrations

Hinodes recognizes three types of integrations for JavaScript files. You can mount these files directly into Hugo's virtual file system, or use modules instead.

{{% comment %}}<!-- markdownlint-disable MD037 -->{{% /comment %}}
<!-- markdownlint-disable MD037 -->
{{< accordion class="accordion-theme accordion-flush" >}}
{{< accordion-item header="Critical" >}}
Critical scripts are loaded immediately as part of the page header. The included scripts are considered vital for the initial page to render correctly and are blocking. For example, Hinode includes a script to toggle the site's [color mode]({{% relref "color-modes" %}}). It should be loaded before the page is being displayed to reduce screen flickering.
Expand All @@ -26,7 +26,7 @@ Hinodes recognizes three types of integrations for JavaScript files. You can mou
Optional scripts are only included on the pages that require them. An example is the {{</* link leaflet >}}Leaflet{{< /link */>}} module, that renders an interactive map. Optional scripts are lazily loaded similarly to core scripts, unless specified otherwise.
{{< /accordion-item >}}
{{< /accordion >}}
{{% comment %}}<!-- markdownlint-enable MD037 -->{{% /comment %}}
<!-- markdownlint-enable MD037 -->

## Available script categories

Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/latest/advanced-settings/server-headers.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Hinode uses strict security policies to ensure the site is {{< link observatory
> [!TIP]
> The {{< link hugo_server >}}server header configuration used by Hugo{{< /link >}} is similar to the configuration supported by Netlify. We can therefore reuse the same template code to configure both environments. This simplifies development and testing, and ensures the local development environment and production environment are comparable.

Since {{< release version="v0.27.0" short="true" type="link" >}}, Hinode includes {{< link "hinode_csp" >}} a module to generate the server headers automatically{{< /link >}}. It uses a feature from Hugo that enables the definition of a {{< link "hugo_custom_output" >}}custom output format{{< /link >}}. The main Hinode repository defines two custom output formats. The first one generates the server headers for a local web server provided by Hugo. The second output format defines a similar configuration for the deployment to Netlify.
Since {{< release version="v0.27.0" short="true" link-type="link" >}}, Hinode includes {{< link "hinode_csp" >}} a module to generate the server headers automatically{{< /link >}}. It uses a feature from Hugo that enables the definition of a {{< link "hugo_custom_output" >}}custom output format{{< /link >}}. The main Hinode repository defines two custom output formats. The first one generates the server headers for a local web server provided by Hugo. The second output format defines a similar configuration for the deployment to Netlify.

Add the following configuration to your main configuration (usually `hugo.toml`). The setting `root = true` ensures the output files are placed in the root of the build folder. Otherwise, Hugo would create a separate output for each one of the defined site languages.

Expand Down
10 changes: 5 additions & 5 deletions content/en/docs/latest/advanced-settings/styles.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ Hinode uses Sass files to take advantage of variables, maps, and functions to ge
## Build pipeline

> [!NOTE]
> Hinode has added support for the Dart Sass transpiler in release {{< release version="v0.20.0" short="true" type="link" >}}. The default libsass transpiler has been {{< link hugo_sass >}}deprecated in favor of Dart Sass{{< /link >}}, but is still widely used. Hinode uses the libsass transpiler by default. Review the {{< link "docs/configuration/layout#extended-configuration" >}}build configuration{{< /link >}} on how to change the transpiler being used.
> Hinode has added support for the Dart Sass transpiler in release {{< release version="v0.20.0" short="true" link-type="link" >}}. The default libsass transpiler has been {{< link hugo_sass >}}deprecated in favor of Dart Sass{{< /link >}}, but is still widely used. Hinode uses the libsass transpiler by default. Review the {{< link "docs/configuration/layout#extended-configuration" >}}build configuration{{< /link >}} on how to change the transpiler being used.

Hinodes uses Hugo modules and mounted folders to create a flexible virtual file system that is automatically kept up to date. Review the [overview]({{% ref "overview" %}}) for a detailed explanation. The build pipeline of the stylesheet consists of six steps.

{{% comment %}}<!-- markdownlint-disable MD037 -->{{% /comment %}}
{{< nav type="tabs" id="tabs-1" >}}
<!-- markdownlint-disable MD037 -->
{{< nav tab-type="tabs" id="tabs-1" >}}
{{< nav-item header="libsass" show="true" >}}

1. **Initialize the Sass variables**
Expand Down Expand Up @@ -77,13 +77,13 @@ Hinodes uses Hugo modules and mounted folders to create a flexible virtual file

{{< /nav-item >}}
{{< /nav >}}
{{% comment %}}<!-- markdownlint-enable MD037 -->{{% /comment %}}
<!-- markdownlint-enable MD037 -->

## Example

The below Sass file defines a skeleton configuration for the main entrypoint. The full configuration is defined in `assets/scss/app.scss` (`libsass`) and `assets/scss/app-dart.scss` (`dartsass`) respectively.

{{< nav type="tabs" id="tabs-2" >}}
{{< nav tab-type="tabs" id="tabs-2" >}}
{{< nav-item header="libsass" show="true" >}}

```scss
Expand Down
Loading