# Introduction

Get started with Hinode, a clean documentation and blog theme for your Hugo site based on Bootstrap 5.

Hinode is a clean documentation and blog theme for [Hugo](https://gohugo.io) - an open-source static site generator. Based on the [Bootstrap](https://getbootstrap.com) framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch](https://github.com/nextapps-de/flexsearch) to enable full text search across your site. Finally, the theme provides optional support for [Node Package Manager](https://www.npmjs.com) (npm) to automate the build process and to keep track of dependencies. More information is available on the [about](credits "about") page.

## Prerequisites

Dart Sass requirement

Hinode {{< release version="v2.0.0" short="true" link-type="link" >}} requires [Dart Sass](https://sass-lang.com/dart-sass/) to correctly transpile the various stylesheets. This is triggered by the upgrade to Font Awesome v7, which is no longer compatible with the old LibSass library. Several libraries, most notably [Bootstrap](https://getbootstrap.com), are still being [migrated to Dart Sass](https://github.com/twbs/bootstrap/issues/40962#issuecomment-3730409408). You can silence deprecation warnings adjacent to Hinode's transpiler settings:

  ```toml
  [params.main.build]
    transpiler = "dartsass"
    silenceDeprecations = true
  ```

Hinode is a [Hugo theme that uses modules](https://gohugo.io/hugo-modules/) to install and maintain various components. It can be installed using either Hugo or npm. If you would like to take advantage of automation, the npm approach is recommended. Hinode requires the following software to be installed on your local machine:

| Software                                               | Hugo              | npm               | Remarks                                            |
|--------------------------------------------------------|-------------------|-------------------|----------------------------------------------------|
| [Go binary](https://go.dev/dl/)     | 
 | 
 | Required for Hugo modules, including Hinode itself |
| [Hugo (extended)](https://gohugo.io/installation) | 
 |                   | Embedded as npm binary                             |
| [Dart Sass](https://gohugo.io/hugo-pipes/transpile-sass-to-css/#installing-in-a-development-environment)           | 
 | 
 | Required since Hinode v2                           |
| [Node.js](https://nodejs.org)                |                   | 
 | The installation package includes npm              |
| [Git](https://git-scm.com)              | recommended       | 
 | Recommended for version control                    |

## Installation

The next steps describe how to initialize a new Hinode site using either Hugo or npm.

> [!CAUTION]
> In general, it is **not recommended** to fork the Hinode repository. Unlike the versioned releases, the repository `HEAD` is not guaranteed to be stable. Unless contributing to the development of Hinode, you are encouraged to use one of the installation options described below.

Windows installation notes

The installation for Windows requires PowerShell v7. Download it from the Microsoft Store as needed. Check your current version with the command `$PSVersionTable`.

  ### Hugo

1. **Create a new site**

    {{< command >}}
    hugo new site my-hinode-site && cd my-hinode-site
    {{< /command >}}

2. **Initialize the module system**

    {{< command >}}
    hugo mod init example.com/my-hinode-site
    echo "[[module.imports]]" >> hugo.toml
    echo "path = 'github.com/gethinode/hinode'" >> hugo.toml
    {{< /command >}}

3. **Start a development server**

    {{< command >}}
    hugo server
    {{< /command >}}

  ### npm

1. **Create a new repository**

    Go to [https://github.com/gethinode/template.git](https://github.com/gethinode/template.git) and login to GitHub as needed. Next, click the green button `Use this template {{< fas caret-down >}}` to initialize a new repository based on the Hinode template.

    **Alternatively**, you can use the [GitHub cli](https://cli.github.com) to initialize the repository from the command line. Replace `--private` with `--public` if you wish to create a public repository instead.

    {{< command >}}
    gh repo create my-hinode-site --private --template="{{< param "links.repository_template" >}}"
    {{< /command >}}

2. **Configure a local site**

    Assuming your repository is `owner/my-hinode-site`, use the `git` command to clone the repository to your local machine.

    {{< command >}}
    git clone https://github.com/owner/my-hinode-site && cd my-hinode-site
    {{< /command >}}

    Now install the npm packages and hugo modules.

    {{< command >}}
    npm install && npm run mod:update
    {{< /command >}}

3. **Start the development server**

    {{< command >}}
    npm run start
    {{< /command >}}

## Next Steps

Visit the tutorial to [create your first site with Hinode](/tutorials/creating-first-site-hinode/), or explore the [Markdown fundamentals](/docs/content/markdown-fundamentals/) to review the content formatting options.
