Please note that this project is currently under development.
Contributions are very welcome!
Harmonic is being developed with some goals:
Check out the full documentation in Harmonic's Wiki.
Harmonic is available on npm:
npm install harmonic -g
For more details, check out the full documentation: Installing
First thing you will need to do is to initialize a new Harmonic website.
It is as simple as:
harmonic init [PATH]
[PATH] is your website dir. The default path is the current dir.
Harmonic will prompt you asking for some data about your website:
Harmonic will then generate a config file, which is a simple JSON object.
Any time you want, you can configure your static website with the CLI
cd [PATH] harmonic config
Harmonic follows the same pattern as others static site generators that you may know.
You must write your posts in Markdown format.
cd your_awesome_website harmonic new_post "Hello World"
new_post, a markdown file will be generated in the
/src/posts/[lang] folder, ready for editing.
The markdown file have a header which defines the post metadata.
You can check all possible header values in the header page.
Everything after the header is the post content.
# Hello World This is my awesome post using [Harmonic](https://github.com/JSRocksHQ/harmonic). This is a list: - Item 1 - Item 2 - Item 3
The code above will be parsed to something like this:
<h1 id="hello-world">Hello World</h1> <p> This is my awesome post using <a href="https://github.com/JSRocksHQ/harmonic">Harmonic</a>. </p> <p>This is a list: </p> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul>
For more details, you can check the full documentation: Blogging.
cd your_awesome_website harmonic new_page "Hello World Page"
new_page, a markdown file will be generated in the
/src/pages/[lang] folder, ready for editing.
The build tool will generate the index page, posts, pages, categories, compile styles and ES2015+.
To run your static server:
You can specify a port, by default Harmonic will use the 9356 port:
harmonic run 9090
Harmonic will also watch all files in the
src directory and in the currently selected theme, triggering a new build and reloading the opened pages when changes are detected.
See the Contributing guide.