Skip to content

polybuildr/petroglyph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Petroglyph

Build Status

Petroglyph is a Python-based static blog generator. (Tested on 2.7.6).

Installation

Petroglyph is now a pip package! You can install petroglyph by simply doing:

$ sudo pip install petroglyph

If you don't have pip, first install pip using your package manager.

$ sudo apt-get install python-pip #Ubuntu, etc.
$ sudo yum install python-pip #Fedora, etc.

If installing from pip doesn't work for you, please file an issue and then use the old installation instructions below instead.

Old installation procedure

To install, first install mistune, pyyaml and docutils.

$ pip install mistune pyyaml docutils

If you don't have pip, first install pip using your package manager.

$ sudo apt-get install python-pip #Ubuntu, etc.
$ sudo yum install python-pip #Fedora, etc.

If pip fails to install pyyaml (check for the line Successfully installed pyyaml in the output), then you can use your package manager to install pyyaml.

$ sudo apt-get install python-yaml #Ubuntu, etc.
$ sudo yum install PyYAML #Fedora, etc.

Next, install petroglyph. Petroglyph is currently not available as a pip package, so you'll have to install it manually.

You can download a stable release from GitHub or clone from master.

There is a script named petroglyph in the folder, this is the script you will use to set up your blog. Consider putting this in your PATH for ease of use.

On Linux, if using bash, you can add a line to your .bashrc to do this.

$ echo 'export PATH="/path/to/petroglyph:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

Depending on your setup, this could be a different file, such as ~/.profile or ~/.bash_profile.

Setting up a blog

  1. Create a new directory for your blog.
$ mkdir awesomeblog
  1. Inside this new directory, run petroglyph init and fill in the details.

The default theme is monoblue. There used to be other skins, but they're no longer there. Hopefully, I'll add them in the future. Until then, you can always edit the CSS yourself amd make a custom skin!

$ cd awesomeblog
$ petroglyph init
Copying skin 'monoblue'...
Creating posts directory...
Configuring settings...
Blog title: Awesome Blog
Blog author: John Doe
Blog description: The awesome blog!
Saved configuration in config.yaml.
Petroglyph initialized.

At any point if you want to replace your skin or change the configuration, run petroglyph init again.

  1. Write a new post in the /posts directory with a .md extension. (reStructuredText is also supported, give the file an .rst extension.) Each post's filename will be used as the post's slug when the blog is generated. Markdown support is provided using Mistune. Include post metadata by writing posts as follows:
---
title: The Post's Title
tags: some-tag, another-tag
---
Hello, world! **Bold**, _italics_ and `code`.

This part will be before the 'Read more'.

<!--more-->This part will come after the read more.

A post title is required.

Petroglyph uses the last modified time of a file when deciding the post publish date. If you'd like to use a custom date, add it to the metadata in the YYYY-MM-DD format.

date: 2015-06-07
  1. Dry run petroglyph to see if everything works fine.
$ petroglyph --dry-run
Found 1 post.
1 new post.
  1. Run petroglyph!
$ petroglyph
Found 1 post.
1 new post.
Generated 1 new post.
Done.

If you ever want to regenerate all your pages (because of a theme change, for example), run petroglyph --regenerate.

  1. Your blog is ready to be served in the blog/ directory.