Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 1.75 KB

index.md

File metadata and controls

56 lines (44 loc) · 1.75 KB

apparat/resource

Purpose of this module:

  • Provide an abstract low-level interface for basic file operations
    • Creating
    • Reading
    • Writing / Updating
    • Deleting
    • Copying (= Reading + Writing with a different name)
    • Moving / Renaming
  • Provide an easy-to-use interface for multipart files (e.g. files with YAML front matter)
    • Support for arbitrary content models
      • Parsing
      • Serialisation
    • File part operations
      • Creating
      • Reading
      • Writing / Updating
      • Deleting (?)
      • Copying (?)
  • Reading from / writing to different sources
    • In-Memory
    • File system
    • Standard input / output (?)
    • FTP (?)
    • Remote storage (?)
  • Implementing several file types and structures (see below)
    • Possibly special behaviour based on file type

File types planned to be supported

  • Text
  • Markdown (CommonMark)
  • YAML
  • JSON
  • YFM-Markdown (Markdown with YAML front matter)
  • JFM-Markdown (Markdown with JSON front matter)

Each file consists of one or more file parts. The content model of a file is described in terms of

  • content parts (containing true file content like text or image data) and / or
  • part aggregates (each consisting of one or more subparts).

A part aggregage may either be a

  • part sequence (a predefined sequence of subparts of particular types) or a
  • part choice (one of several allowed subpart types)

and may be repeated more than once.

Documentation

I recommend reading the project documentation on Read the Docs.

Documentation Status