Quickstart
Important: If you are a Posty 1.x user, you can skip this and instead take a look at the Posty 1.x import docs.
To get started, create yourself an empty directory, cd into it, and then run
posty init to create a site skeleton.
mkdir my_site
cd my_site
posty init
Posty will create the skeleton and give you some basic information:
Posty initialized!
Directories:
- posts -> Put all of your blog posts here
- pages -> Put all of your static pages here
- templates -> jinja2 HTML templates go here
- media -> Static files go here; JS, CSS, images, etc.
There is also a config file at config.yml that you should adjust to your
liking, like setting the site title and such.
Below are some introductions to some of these things. Once you have everything
sorted and some pages and posts written, you just run the posty build
command. This will render your site and place all of the resulting files into
the build/ directory. The contents of that directory can then be uploaded
to your location of choice for hosting.
Config
You will want to adjust the config file config.yml to your liking,
especially setting the title, author, and base_url for the site.
The base_url is especially important and should be the URL at which your
site will eventually be hosted, for example: https://yourwebsite.com/blog/.
See Config File for more information about the config file options.
Content
Content is stored in two directories, posts and pages. Each file in
these directories are YAML metadata and a Markdown body, separated by a
---. A couple of examples have been provided for you by the posty init
command, but you should check out Post and Page Schema for information about what
these types of files should look like.
The CLI has some commands available to easily create new pages and posts. Here are some examples:
$ posty new page --name "About me"
$ cat pages/about-me.yaml
parent: None
title: About me
---
This is your new page. Write what you want here!
$ posty new post --name "A nifty blog post"
$ cat posts/2018-01-20_a-nifty-blog-post.yaml
date: 2018-01-20
tags:
- tag1
- tag2
title: A nifty blog post
---
This the the summary/first paragraph of your new post
---
This is the rest of the post.
Write what you want here
Templates
The templates/ directory is where you put all of your HTML templates. These
will be rendered by Jinja. See Templating for more information about
what these templates should look like.
Static files
The media/ directory is where you should put all of your static files, such
as JavaScript, CSS, images, etc. When you run posty build, it simply copies
this directory over to your build/ directory.
To help with accessing these files, there is a Jinja filter available in
templates called media_url. It will translate any path relative to the
media directory into a full absolute URL. It’s used like so:
<link rel="stylesheet" href="{{ 'css/index.css' | media_url }}" />