ablog/README.rst

111 lines
3.6 KiB
ReStructuredText
Raw Normal View History

2014-05-08 22:23:52 -07:00
ABlog for Sphinx
================
2014-05-11 21:10:34 -07:00
2015-03-01 08:59:32 -08:00
ABlog is a Sphinx extension that converts any documentation or personal
website project into a full-fledged blog with:
2015-03-01 09:50:39 -08:00
* `Atom feeds`_
* `Archive pages`_
* `Blog sidebars`_
2015-03-01 08:59:32 -08:00
* `Disqus integration`_
* `Font-Awesome integration`_
Looking for an example? Take a look at `ABlog documentation <http://ablog.readthedocs.org>`_
2015-03-01 09:50:39 -08:00
where each manual and release is a blog post ;)
2015-03-01 08:59:32 -08:00
2015-03-01 09:50:39 -08:00
.. _Atom feeds: http://ablog.readthedocs.org/blog/atom.xml
.. _Archive pages: http://ablog.readthedocs.org/blog/
2015-03-01 08:59:32 -08:00
.. _Blog sidebars: http://ablog.readthedocs.org/manual/ablog-configuration-options/#sidebars
.. _Disqus integration: http://ablog.readthedocs.org/manual/ablog-configuration-options/#disqus-integration
.. _Font-Awesome integration: http://ablog.readthedocs.org/manual/ablog-configuration-options/#fa
2015-02-25 23:24:19 -08:00
Installation
------------
You can install ABlog using pip_::
pip install -U ablog
2015-03-01 09:50:39 -08:00
This will install required packages Sphinx_ and Werkzeug_ as well, respectively for
building your website and generating feeds.
2015-02-25 23:24:19 -08:00
2015-03-01 09:35:16 -08:00
If you don't already have a Sphinx project with a nice theme, you might want to
2015-03-01 09:50:39 -08:00
install Alabaster_ too to start with a good looking website::
2015-03-01 09:35:16 -08:00
pip install Alabaster
2015-02-25 23:24:19 -08:00
2015-03-01 09:01:20 -08:00
.. _pip: https://pip.pypa.io
.. _Sphinx: http://sphinx-doc.org/
.. _Werkzeug: http://werkzeug.pocoo.org/
2015-03-01 09:35:16 -08:00
.. _Alabaster: https://github.com/bitprophet/alabaster
2015-03-01 09:01:20 -08:00
2015-02-25 23:24:19 -08:00
Getting Started
---------------
2015-03-01 09:35:16 -08:00
If you are starting a new project, see `ABlog Quick Start`_ guide.
2015-02-25 23:24:19 -08:00
2015-03-01 09:50:39 -08:00
If you already have a project, enable blogging by editing ``conf.py`` as follows:
2015-02-25 23:24:19 -08:00
.. code-block:: python
2015-03-01 09:50:39 -08:00
# 1. Append ablog to list of extensions
2015-02-25 23:24:19 -08:00
extensions = [
'...',
'ablog'
]
2015-03-01 09:35:16 -08:00
2015-03-01 09:50:39 -08:00
# 2a. Append ABlog templates path to `templates_path`
2015-02-25 23:24:19 -08:00
import ablog
templates_path.append(ablog.get_html_templates_path())
2015-03-01 09:50:39 -08:00
# 2b. If `templates_path` is not defined before
2015-02-25 23:24:19 -08:00
templates_path = [ablog.get_html_templates_path()]
2015-03-01 09:35:16 -08:00
If you have also installed Alabaster_, see here_ how to configure it.
2015-02-25 23:24:19 -08:00
2015-03-01 09:35:16 -08:00
.. _ABlog Quick Start: http://ablog.readthedocs.org/manual/ablog-quick-start
.. templates_path: http://sphinx-doc.org/config.html#confval-templates_path
2015-03-01 09:50:39 -08:00
.. here_: https://github.com/bitprophet/alabaster#installation
2015-02-25 23:24:19 -08:00
How it works
------------
2015-03-01 09:35:16 -08:00
You can convert *any page* to a post with the ``post`` directive as follows:
2015-02-25 23:24:19 -08:00
.. code-block:: rst
.. post:: Apr 15, 2014
:tags: python, earth, love, peace
2015-03-01 09:35:16 -08:00
2015-03-01 09:45:02 -08:00
ABlog will catalog all ``.rst`` files (pages) indicated as posts as above,
whithout interfering with Sphinx's operations. Since any page from any folder
in your project can be posted, you do not need to change how you organize
content in separate folders.
2015-02-25 23:24:19 -08:00
2015-03-01 09:45:02 -08:00
When you are building HTML pages, posts will be included in archives and feeds
specified by ``:tag:``, ``:category:``, etc. options automatically.
In additon, you can include a list of posts anywhere in your project
simply using ``postlist`` directive:
2015-02-25 23:24:19 -08:00
.. code-block:: rst
2015-03-01 09:35:16 -08:00
.. postlist:: 5
:category: Manual
2015-03-01 09:45:02 -08:00
:reverse:
For ABlog documentation, this converts to a list of links to the oldest
five posts in Manual_ category:
2015-02-25 23:24:19 -08:00
2015-03-01 09:45:02 -08:00
* `Posting and Listing <http://ablog.readthedocs.org/manual/posting-and-listing/>`_
* `ABlog Configuration Options <http://ablog.readthedocs.org/manual/ablog-configuration-options/>`_
* `Cross-referencing Blog Pages <http://ablog.readthedocs.org/manual/cross-referencing-blog-pages/>`_
* `Post Excerpts and Images <http://ablog.readthedocs.org/manual/post-excerpts-and-images/>`_
2015-03-01 09:51:13 -08:00
* `Posting Sections <http://ablog.readthedocs.org/manual/posting-and-listing/#posting-sections>`_
2015-03-01 09:45:02 -08:00
2015-02-25 23:24:19 -08:00
2015-03-01 09:35:16 -08:00
.. _Manual: http://ablog.readthedocs.org/blog/category/manual/
2015-02-25 23:24:19 -08:00