exhibition.main module

class exhibition.main.Config(data=None, parent=None)[source]

Bases: object

Configuration object that implements a dict-like interface

If a key cannot be found in this instance, the parent Config will be searched (and its parent, etc.)

Parameters:
  • data – Can be one of a string, a file-like object, a dict-like object, or None. The first two will be assumed as YAML
  • parent – Parent Config or None if this is the root configuration object
copy()[source]
classmethod from_path(path)[source]

Load YAML data from a file

get(key, default=None)[source]
items()[source]
keys()[source]
load(data)[source]

Load data into configutation object

Parameters:data

If a string or file-like object, data is parsed as if it were YAML data. If a dict-like object, data is added to the internal dictionary.

Otherwise an AssertionError exception is raised

update(*args, **kwargs)[source]
values()[source]
class exhibition.main.Node(path, parent, meta=None)[source]

Bases: object

A node represents a file or directory

Parameters:
  • path – A pathlib.Path that is either the content_path or a child of it.
  • parent – Either another Node or None
  • meta – A dict-like object that will be passed to a Config instance
add_child(child)[source]

Add a child to the current Node

If the child doesn’t already have its parent set to this Node, then an AssertionError is raised.

data

Extracts data from contents of file

For example, a YAML file

classmethod from_path(path, parent=None, meta=None)[source]

Given a pathlib.Path, create a Node from that path as well as any children

If the path is not a file or a dir, an AssertionError is raised

Parameters:
  • path – A pathlib.Path that is either the content_path or a child of it.
  • parent – Either another Node or None
  • meta – A dict-like object that will be passed to a Config instance
full_path

Full path of node when deployed

full_url

Get full URL for node, including trailing slash

get_content()[source]

Get the actual content of the Node

First calls process_meta() to find the end any front matter that might be present and then returns the rest of the file

If filter has been specified in meta, that filter will be used to further process the content.

marks

Marked sections from content

Calls get_content() to process content if that hasn’t been done already

meta

Configuration object

Automatically loads front-matter if applicable

process_meta()[source]

Finds and processes the YAML fonrt matter at the top of a file

If the file does not start with ---\n, then it’s assumed the file does not contain any meta YAML for us to process

render()[source]

Process node and either create the directory or write contents of file to deploy_path

siblings

Returns all children of the parent Node, except for itself

walk(include_self=False)[source]

Walk through Node tree

exhibition.main.gen(settings)[source]

Generate site

Deletes deploy_path first.

exhibition.main.serve(settings)[source]

Serves the generated site from deploy_path

Respects settings like base_url if present.