NAME
Statocles::Store::File - A store made up of plain files
VERSION
version 0.050
DESCRIPTION
This store reads/writes files from the filesystem.
Frontmatter Document Format
Documents are formatted with a YAML document on top, and Markdown content on the bottom, like so:
---
title: This is a title
author: preaction
---
# This is the markdown content
This is a paragraph
ATTRIBUTES
path
The path to the directory containing the documents.
documents
All the documents currently read by this store.
METHODS
clear()
Clear the cached documents in this Store.
read_documents()
Read the directory path
and create the document objects inside.
read_document( path )
Read a single document in Markdown with optional YAML frontmatter.
parse_frontmatter( $from, $content )
Parse a document with YAML frontmatter. $from is a string identifying where the content comes from (a path or other identifier). $content is the content to parse for frontmatter.
write_document( $path, $doc )
Write a document to the store. Returns the full path to the newly-updated document.
The document is written in Frontmatter format.
read_file( $path )
Read the file from the given path
.
has_file( $path )
Returns true if a file exists with the given path
.
NOTE: This should not be used to check for directories, as not all stores have directories.
find_files()
Returns an iterator that, when called, produces a single path suitable to be passed to read_file.
open_file( $path )
Open the file with the given path. Returns a filehandle.
The filehandle opened is using raw bytes, not UTF-8 characters.
write_file( $path, $content )
Write the given content
to the given path
. This is mostly used to write out page objects.
content
may be a simple string or a filehandle. If given a string, will write the string using UTF-8 characters. If given a filehandle, will write out the raw bytes read from it with no special encoding.
AUTHOR
Doug Bell <preaction@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Doug Bell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.