Tips #### Here are some tips about Pelican that you might find useful. Publishing to GitHub ==================== `GitHub Pages `_ offer an easy and convenient way to publish Pelican sites. There are `two types of GitHub Pages `_: *Project Pages* and *User Pages*. Pelican sites can be published as both Project Pages and User Pages. Project Pages ------------- To publish a Pelican site as Project Pages you need to *push* the content of the ``output`` dir generated by Pelican to a repository's ``gh-pages`` branch on GitHub. The excellent `ghp-import `_, which can be installed with ``easy_install`` or ``pip``, makes this process really easy. For example, if the sources of your Pelican site are contained in a GitHub repository, and if you want to publish your Pelican site as Project Pages of this repository, you can then use the following:: $ pelican content -o output -s pelicanconf.py $ ghp-import output $ git push origin gh-pages The ``ghp-import output`` command updates the local ``gh-pages`` branch with the content of the ``output`` directory (creating the branch if it doesn't already exist). The ``git push origin gh-pages`` command updates the remote ``gh-pages`` branch, effectively publishing the Pelican site. .. note:: The ``github`` target of the Makefile created by the ``pelican-quickstart`` command publishes the Pelican site as Project Pages as described above. User Pages ---------- To publish a Pelican site as User Pages you need to *push* the content of the ``output`` dir generated by Pelican to the ``master`` branch of your ``.github.com`` repository on GitHub. Again, you can take advantage of ``ghp-import``:: $ pelican content -o output pelicanconf.py $ ghp-import output $ git push git@github.com:elemoine/elemoine.github.com.git gh-pages:master The ``git push`` command pushes the local ``gh-pages`` branch (freshly updated by the ``ghp-import`` command) to the ``elemoine.github.com`` repository's ``master`` branch on GitHub. .. note:: To publish your Pelican site as User Pages feel free to adjust the the ``github`` target of the Makefile. Extra Tips ---------- Tip #1: To automatically update your Pelican site on each commit you can create a post-commit hook. For example, you can add the following to ``.git/hooks/post-commit``:: pelican pelican content -o output pelicanconf.py && ghp-import output && git push origin gh-pages Tip #2: To use a `custom domain `_ with GitHub Pages you need to have a ``CNAME`` file at the root of your pages. For that you will add ``CNAME`` file to your ``content``, dir and use the ``FILES_TO_COPY`` setting variable to tell Pelican to copy that file to the ``output`` dir. For example:: FILES_TO_COPY = (('extra/CNAME', 'CNAME'),)