Customization ============= If you want to customize your weblog, take a look at the ``templates/`` directory inside your weblog. There are two different templates, ``post.html`` and ``index.html``. In the ``pure-blog`` theme both these templates extend the ``base.html`` template. The templates are written in `Jinja2 `_. As the name suggests, the ``post.html`` template is used to generate the HTML for individual posts. It defines 5 "blocks": meta Metadata added to HTML head title The title of the page css Custom CSS used by the post javascript Custom Javascript used by the post content The actual HTML content of the post You probably only need to change the last one. The ``index.html`` template is used to generate the index page, as well as the paginated archives and tags pages, ie, any page that shows a list of posts. It defines the following blocks: meta Metadata addade to the HTML head title The title of the page navigation Elements used to paginate the archives and the tags content The actual HTML content of the posts In the ``pure-blog`` theme the template shows only the summary of each post, and it shows the number of posts defined in the ``nefelibata.yaml`` file. Post types ========== You can also create mini-templates for different post types. Let's say you often review books, so you want to make a template for your reviews. Start by adding it to your ``nefelibata.yaml`` file: .. code-block:: yaml templates: book: - title - author - genre - stars Now, when create a new post and specify the type to be book: .. code-block:: bash $ nb new -t book "An amazing book" When you add the post, it will have extra headers on it: .. code-block:: email subject: An amazing book summary: keywords: type: book book-title: book-author: book-genre: book-stars: Go on and write your post, adding the new metadata. To format the post, you now need to create the template ``templates/$theme/posts/book.html``. Here's an example: .. code-block:: html
Title
{{ post.parsed['book-title'] }}
Author
{{ post.parsed['book-author'] }}
Genre
{{ post.parsed['book-genre'] }}
Rating
{{ post.parsed['book-stars'] }}
{{ post.html }} When the post is built, it will contain the rendered HTML snippet above.