UNPKG

architekt

Version:

A Dead Simple Static Site Generator Powered by Handlebars

105 lines (70 loc) 3.62 kB
# Architekt Architekt is a dead-simple static site generator powered by Handlebars. It lets you dynamically run code to build page templates into static pages for you to use as documentation sites, static landing pages, etc. Architekt is heavily inspired by Ruby on Rail's [ActionView](https://guides.rubyonrails.org/layouts_and_rendering.html) ## Installation Install Architekt globally from NPM ```sh npm install -g architekt ``` ### Getting Started Start by creating a new project ```sh ark init MyProject # run ark gen -h for more options cd MyProject ``` This will create a project skeleton for you to get started with. In the project root, you'll notice the following folders and directories: - `build/` - Directory where the static pages will be put after rendering - `src/` - Contains source code for pages - `architekt.json` - Configuration file You can change where Architekt looks for resources, puts static pages, etc. in the `architekt.json` config file. Now, navigate into the `src/` directory and take a look at the folders that exist there. Each folder represents a resource that can be used to build your site. #### Views Views contains handlebars templates that will be rendered into web pages. Every template must follow the `<page-name>.html.hbs` naming convention. The resulting web page will be named `<page-name>.html`. #### Controllers Controllers contain the logic/data that will be plugged into each view. Controllers may be JSON or JavaScript files and must follow the naming convention `<page-name>.[js,json]`. When a JavaScript file is used, the `module.exports` object will be plugged into the page template. Files that start with an underscore will be ignored. #### Stylesheets Architect renders [SASS](https://sass-lang.com/) stylesheets for you. All stylesheets must end in `.scss` or `.sass`, according to SASS conventions. Stylesheets must be in the `stylesheets/` subdirectory within your assets directory. Partial stylesheets must start with an underscore, such as `_stylesheet.scss`. Partials are not outputted as css stylesheets, but may be imported into other stylesheets. The `@import` statement resolves stylesheets within the `stylesheets/` directory or in `node_modules`. #### Partials Partials simply contain [handlebars partials](https://handlebarsjs.com/partials.html), and must follow the naming convention `_<partial-name>.html.hbs`. When using a partial in your pages, omit the leading underscore from the name. Partials *must* have a leading underscore in their name, otherwise they will be ignored! #### Layouts Layouts are simply advanced partials and are powered by [handlebars-layouts](https://www.npmjs.com/package/handlebars-layouts). They follow the naming convention `<layout-name>.html.hbs`. For more information on how to use layouts, see the handlebars-layouts README. #### Helpers Helpers are JavaScript files that export Handlebars helper functions. The name of the file does not matter, as long as it ends in `.js`. You may export more that one helper function per file. ### Rendering Your Site Once you have written your templates, render the source code into a static site by running ```sh ark render # See ark render -h for command options ``` ### Features TODO The following are features we are planning on adding to Architekt: - Allowing subdirectories in resource/views/controllers directories - Assets resource directory support - SASS language compilation on `ark render` ### Authors - [Donald Isaac](https://www.opensourceryumd.com) ### License Copyright (c) 2019 Open Sourcery. Licensed under the MIT license.