TinyBlog

This is a super small library that reads a folder of markdown files and exposes them via an API.

Installation

  1. Install package
def deps do
[{:tiny_blog, "~> 0.1.0"}]
end

You may need to add the app to your applications list depending on the version of Elixir you're using.

  1. Create a priv/blog_posts folder in your application and add at least one markdown file (.md extension)
  2. Configure your app_name so TinyBlog can read your posts from a priv directory
config :tiny_blog, app_name: :name_of_your_app

Usage

Your blog posts should be formatted like this. It's pretty much like Jekyll front-matter if you're familiar with that project.

---
title: My Blog Post
another_field: Anything you want as long as it's valid yaml
---
Everything from here down will be markdown syntax
*Like lists and stuff*
- one
- two
- three

Now you can access your posts via API call to TinyBlog.posts which returns all posts in a list:

{:ok, [
%{"slug" => "my-blog-post", "title" => "My Blog Post", "html" => "markdown rendered html here", "another_field" => "..."},
%{"slug" => "my-blog-post-2", "title" => "My Blog Post-2", "html" => "markdown rendered html here", "another_field" => "..."}
]}

or you can pass the a slug which will match the name of the file without the extension:

case TinyBlog.posts("my-blog-post") do
{:ok, post} -> post
_ -> nil # could not be found
end