Skip to content

added MD file for Nodoku static site generator #1013

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
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
120 changes: 120 additions & 0 deletions src/site/generators/nodoku.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
title: nodoku
repo: /nodoku/nodoku-core
homepage: https://nodoku.io
language:
- JavaScript
- TypeScript
- Node.js
- NextJS
- Tailwind CSS
license:
- MIT, see Nodoku license for details
templates:
- Yaml
- Markdown
description: 'A powerful static site generator, where the Markdown file content is visually presented according to the configuration, given as a Yaml file. Based on NextJS, React and TailwindCSS. Excellent for a landing page, blog, portfolio or any static part of a website'
twitter: nodoku_site_md
startertemplaterepo: https://github.com/nodoku/nodoku-starter-template
---

- Nodoku Home page: https://nodoku.io
- Nodoku Starter Template Github repo: https://github.com/nodoku/nodoku-starter-template
- Nodoku Demo Web site Github repo: https://github.com/epanikas/nodoku-demo-page
- Nodoku Core Github repo: https://github.com/nodoku/nodoku-core

<br>

Nodoku is a static site generator, where the content is provided as MD (Markdown) files, and the visual representation is controlled via Yaml files - called skin.

Nodoku promotes the content-first approach, when the content creation process is not being distracted by the considerations related to the visual representation and design.

Instead, the content is created first as an MD file, demarcated by the special markers into content blocks, and then each block is rendered using the configuration provided in a Yaml file called skin.

Here is an example:

- Markdown file content:
```markdown
```yaml
nd-block:
attributes:
id: product-1
``

# Title of my awesome product
## Subtitle of my awesome product

Description of my product.
And another line of description.

![my-awesome-product](./images/my-awesome-product.png)
```
- Yaml file, controlling the representation of the given piece of content

```yaml
rows:
- row:
components:
- mambaui/hero-left-text:
selector:
attributes:
id: product-1

```

- And here is the result

![my-awesome-product-nodoku-sampl-image](https://raw.githubusercontent.com/nodoku/nodoku-starter-template/refs/heads/main/my-awesome-product-nodoku-sample.png)


## Pluggable set of components

Visual components in Nodoku are supplied via pluggable packages, as a standard package.json dependencies.

For example, components based on Mamba UI set of widgets are added as a dependency:

```json
{
"dependencies": {
...
"nodoku-mambaui": "^0.3",
...
}
}
```

Each set of components ships with its own Yaml configuration schema, as well as Tailwind CSS configuration.

Learn more about Nodoku visual components:
- [Based on Flowbite UI set](https://github.com/nodoku/nodoku-flowbite)
- [Based on MambaUI UI set](https://github.com/nodoku/nodoku-mambaui)

## Easy static content localization

Nodoku allows for easy static content localization (making the content available on different languages) thanks to the way it parses the Markdown file.

Nodoku converts the static content from the Markdown file in stream of content blocks, each having its own unique translation key.

Thanks to these automatically generated translation keys a translation backend of your choice can be plugged in to provide the text translation.

Learn more about Nodoku localization capabilities:
https://github.com/nodoku/nodoku-i18n

## Use of text icons

Nodoku provides a way to denote an icon directly in the Markdown file, as follows:

```md
{icon:nd-react-icons/fa6:FaFacebook} Facebook
{icon:nd-react-icons/fa6:FaInstagram} Instagram
```

Learn more about icon usage in Nodoku:
https://github.com/nodoku/nodoku-icons

## Bootstrap Nodoku project in minutes

For your convenience we have a Nodoku sample project, suitable for forking and deploying in Netlify:

- [Nodoku starter template](https://github.com/nodoku/nodoku-starter-template)
- [Deploy in Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/nodoku/nodoku-starter-template)