Stackedit/doc/developer-guide.md
2013-06-16 11:35:46 -07:00

2.2 KiB

Developer guide


Architecture

Architecture diagram

StackEdit uses RequireJS for asynchronous module definition (AMD).


core

The core module is responsible for:

  • creating the layout (using UI Layout)
  • creating the editor (using PageDown)
  • Loading/saving the settings
  • detecting the offline status

fileMgr

The fileMgr module is responsible for:

  • creating/deleting local files
  • switching from one file to another
  • setting/removing file's sync/publish location

synchronizer

The synchronizer module is responsible for:

  • creating a new local file from a sync location (import)
  • creating a new sync location from a local file (export)
  • running 2 ways synchronization (upload and download) for all sync locations

publisher

The publisher module is responsible for:

  • creating new publish locations
  • updating existing publish locations

publisher's providers

A provider module can be associated with the publisher module if it implements the following functions:

  • newPublishAttributes(): returns a new publishAttributes object in order to create a new publish location
  • publish(): performs publishing of one publish location

publishAttributes

A publishAttributes object is an object that describes a publish location. Attributes list differs from one provider to another except for the following attributes:

  • publishIndex: the unique index of the publish location
  • provider: the provider module that handles the publish location
  • format: the publishing format for the publish location. It can be:
    • markdown for Markdown format
    • html for HTML format
    • template for template format

provider

Written with StackEdit.