exhibition.node module

class exhibition.node.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.

property cache_bust
property 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. Children are loaded in Unicode codepoint order - this order is preserved in Node.children if you’re unsure what that means.

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

property full_path

Full path of node when deployed

property 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 frontmatter 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.

get_from_path(path)[source]

Given a relative or absolute path, return the Node that represents that path.

Parameters

path – A str or pathlib.Path

property index_file
property marks

Marked sections from content

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

property meta

Configuration object

Automatically loads frontmatter 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

property siblings

Returns all children of the parent Node, except for itself

property strip_exts
walk(include_self=False)[source]

Walk through Node tree