1.2.1 • Published 8 years ago

yaml-blog v1.2.1

Weekly downloads
5
License
MIT
Repository
-
Last release
8 years ago

yaml-blog

this is a small module that tries to be a blog engine.

it reads from the file system and uses yaml, markdown and promises

API

the module is composed by three classes:

  • FileRepository
  • PostRepository
  • Blog

this is the schema of classes

  • Blog
    • PostRepository @post
      • FileRepository @fs

the three classes are created with dependency injection and defaults. they share the same configuration object.

the post object is the yaml-front-matter result. The post.body is HTML

Blog

Constructor

blog = new Blog
    path: <string>,<required>
    post_per_page: <int>,<default:5>
    post: <class>,<default:PostRepository>
    fs: <class>,<default:FileRepository>

Methods

  • .getTags(): returns a list of tag

    blog.getTags() ->

    blog.getTags().then (tags) -> ...

  • .getPosts(o): returns different object based on the query

    blog.getPosts from: , to: #slices the list title: #gets a post by title slug: #gets a post by slug page: #pages the collection based on the value from the constructor : #gets all posts

    blog.getPosts() ->

    blog.getPosts().then (posts) -> ...

  • .getTree(): return a tree of the posts divided by year and month

    blog.getTree() ->

    blog.getTree().then (tree) -> tree<year:string> #the posts from the year tree #the posts from the month tree<index:int> #a post object ...

  • .save(post): saves the post through the @fs object

    blog.save(post) ->

    blog.save(post).then () -> ...

PostRepository

the PostRepository instance is accessible via the .post property of Blog

Constructor

postRep = new PostRepository
    fs: <class>, <default:FileRepository>
    path: <string>

Methods

  • .parse(data = null): parses in or out the data

    postRep.parse() -> promise

    postRep.parse().then (posts) -> ... #array with the posts

    postRep.parse(post).then -> ... #saves the post in the filesystem

  • .delete(post): deletes the post

    postRep.delete(post) ->

    postRep.delete(post).then () -> ...

FileRepository

the FileRepository instance is accessible via the .fs property of PostRepository

Constructor

fileRep = new FileRepository(path <string>)

Methods

  • .getAllPath(dir = @dir): gets all the directory recursively. the optional argument is the path given from the constructor

    fileRep.getAllPath() ->

    fileRep.getAllPath().then (paths) -> ...

  • .pathify(dir, file): unites the dir and the filename

    fileRep.pathify(dir , file ) ->

  • .read(file): reads the file

    fileRep.read(file).then (content) -> ...

  • .write(file, data): writes the file on the filesystem

    fileRep.write(file , data ) -> promise

    fileRep.write(file, data).then () -> ...

  • .delete(file): deletes the file

    fileRep.delete(file ) ->

    fileRep.delete(file).then () -> ...