API Reference Still v0.8.0

Modules

Keeps track of collections.

Compiles the site.

Used to store the contents read from files to avoid going to the disk until necessary.

Saves an error occurring within a file's compilation and allows them to be retrieved for a prettified display.

Responsible for wrapping a portion of markup in a pre-defined development layout and compiling the output. Should only be used in a dev environment.

An incremental node represents a file that is processed individually.

Keeps track of which input file generates each output file. It's used to identify which file needs to be compiled when there's a request from the browser.

Supervisor that maps files (based on their name) to PIDs of Still.Compiler.Incremental.Node.

Copies a file from the input path to the output directory without changing it.

Set of helper functions to be included in a file that runs through an Elixir preprocessor.

Implements an arbitrary content tag with the given content.

Renders an anchor HTML tag.

Generates a link HTML tag to the target CSS file.

Generates a script HTML tag to the target JS file.

Renders the given content as safe HTML, escaping any tags.

Truncates the content to a given maximum.

Converts a relative path to an absolute path.

Traverses the input directory.

Loads data files and makes the data available in templates. Any file in the data_ folder will be loaded using the file's name as a key. For instance, a file in data/site.json_ with the contents

Handles image transformation.

Parses an HTML Still.SourceFile and replaces HTML img with responsive images. Images that have the attributes "srcset" or "no-responsive-image" are ignored.

Generates a set of images to ensure they are responsive.

Defines functions to be used by the several preprocessors as well as the behaviour they should have.

Still.Preprocessor that reads the content of the input file and sets it to the :content field of Still.SourceFile.

Still.Preprocessor that renders the layout of a given file and wraps it around the content of that same file.

Minifies a CSS file. This is a very basic minifier that simply removes whitespaces.

Parses the file's frontmatter and adds they key/value pairs to the corresponding Still.SourceFile's :metadata field.

Preprocessor for JavaScript files that simply bypasses the file's contents.

Transforms markdown into HTML using Earmark.

Sets the output path of a file. If the key :permalink is present in the metadata, it is used as the output path. If not, the output path is set using the :input_file and :extension keys.

Paginates a Still.SourceFile if the key :pagination is present. The :pagination must be a hash containing the following keys

Defines the basic attributes of a markup renderer.

Filters out files that are not the one being requested.

Writes the Still.SourceFile :content field to the :output_file field, creating any necessary directories and including the development layout if needed.

Creates a hash based on the content of the file and generates a fingerprint to replace the output file.

Implements a profiler that keeps track of the time each file takes to render.

The SourceFile retains all information regarding a file being compiled in the system. It's conceptually similar to the conn variable in a Phoenix app. The idea is that different subsystems transform this struct and pass it to the next.

Collection of utility functions.

Collection of utility functions specific for extending the behaviour of map structures.

File system watcher that triggers compilation for new files, recompilation for changed files and kills and Still.Compiler.Incremental.Node for removed files. Should only be used in the dev environment.

Acts as a proxy between browser connections and file subscriptions. Whenever a relevant file changes, the browser connections are sent a reload message. Should only run in the dev environment.

Handles automatic code reloading.

Prettifies compilation errors to be displayed in the browser. Should only run in the dev environment.

Mix Tasks

Compiles your site into an output folder, which is _site by default.

Starts the development server. Your website will be available in http://localhost:3000.