Metadata-Version: 1.0
Name: pyblog
Version: 0.5.2
Summary: Dirt-simple static blog general
Home-page: http://github.com/cesarparent/pyblog
Author: Cesar Parent
Author-email: cesar@cesarparent.com
License: MIT
Description: PyBlog
        ======
        
        A jinja-based, extremely basic python static blog generator
        
        Installation
        ------------
        
        The simplest way to install PyBlog is through one of the Python package 
        managers, `pip` and `easy_install`:
        
        ````bash
        $ [sudo] pip install pyblog
        $ [sudo] easy_install pyblog
        ````
        
        Alternatively, you can download or clone this repository, and install the tool
        manually:
        
        ````bash
        $ git clone https://github.com/cesarparent/pyblog.git
        $ python setup.py install
        ````
        
        Creating a Blog
        ---------------
        
        The first step in setting up a PyBlog blog is to create the directory structure.
        You can do this by calling `pyblog-init`:
        
        ````bash
        $ mkdir new-blog && cd new-blog
        $ pyblog new .
        
        # or...
        
        $ pyblog new new-blog && cd new-blog
        ````
        
        The tool will create the following directory structure, along with the PyBlog
        configuration file:
        
        ````text
        |_  _pages/
        |_  _posts/
        |_  _static/
        |_  _templates/
        |_  config.txt
        ````
        
         * `_pages` contains any file that you'd like PyBlog to process and potentially
           run through templates. It will keep the same filename and be placed at the
           root of the generated blog (for example, the index & about pages, or an RSS
           feed).
           
         * `_posts` contains your posts. They should be `.txt` files, and can contain
           any kind of content (at the moment, the only content filter available to
           templates is `markdown`).
           
         * `_static` contains any file you want to be copied without any tampering to
           the output directory (images, CSS and the likes)
           
         * `_templates` contains your Jinja2 template files. Any file present in the
           directory is available for posts and pages to use.
        
        Once the blog is set up and you've written some post, the blog is generated by
        calling:
        
        ````bash
        $ pyblog build [-s /source] [-d /destination] ...
        ````
            
        If you want PyBlog to re-generate your blog every time a file changes in the
        source directory, you can add the `--watch` flag. You can also spawn a local
        development server with:
        
        ````bash
        $ pyblog serve [-s /source] [-d /destination] [-H host] [-P port]
        ````
        
        By default, your blog is available at `http://localhost:4000`. When running the
        development server, `--watch` is enabled.
        
        Writing Posts
        -------------
        
        Posts are simple, static plain-text files with a HTTP headers-based metadata
        section:
        
        ````text
        title: Some great post
        date: 2016-09-07 14:00:00
        template: post.html
        
        Hey! This is a post written for the PyBlog demo.
        ````
        
        `title` and `template` are required. Title is used to generate the post's final
        URL/filename, and template indicates which template file should be used for
        rendering. If `date` is not specified, the file's last-modified date is used.
        
        Writing Pages
        -------------
        
        Pages follow exactly the same model. If the `template` field is omitted, the
        contents of the file will just be output "as is". If a page has no metadata
        section, it will be rendered without a template. Pages can contain any Jinja2
        template code.
        
        Template Objects
        ----------------
        
        Every template gets passed a `blog` object on rendering, which contains the
        following fields:
        
        | field          | description                                              |
        |:---------------|:---------------------------------------------------------|
        | `name`         | The blog's name, as specified in `config.txt`            |
        | `tagline`      | The blog's tagline, as specified in `config.txt`         |
        | `root_url`     | The blog's root url, as specified in `config.txt`        |
        | `get_posts()`  | The blog's posts, in reverse-chronological order         |
        | `get_pages()`  | The blog's pages, in reverse-chronological order         |
        
        When rendering a post or a page, a `post` object is also available:
        
        | field          | description                                              |
        |:---------------|:---------------------------------------------------------|
        | `title`        | The post's title                                         |
        | `slug`         | For post's, a url-safe title, for pages the filename     |
        | `url`          | The post's url relative to the blog's root               |
        | `date`         | The post's publication date                              |
        | `content`      | The post's content                                       |
        
Platform: UNKNOWN
