Skip to content

Instantly share code, notes, and snippets.

@benweet
Created June 16, 2013 18:35
Show Gist options
  • Save benweet/5792951 to your computer and use it in GitHub Desktop.
Save benweet/5792951 to your computer and use it in GitHub Desktop.
StackEdit - Developer guide

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment