Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ixjlyons/pelican-ghp

The source for my Github Pages website generated with Pelican
https://github.com/ixjlyons/pelican-ghp

Last synced: 27 days ago
JSON representation

The source for my Github Pages website generated with Pelican

Awesome Lists containing this project

README

        

===========
pelican-ghp
===========

This is the source for my `personal website`_, generated with Pelican_.

Setup
=====

Clone the repository::

$ git clone [email protected]:ixjlyons/pelican-ghp.git
$ cd pelican-ghp

Now create a virtual environment and install the dependencies, which right now
just includes Pelican_ (and its dependencies).

Exact versions are specified in ``requirements.txt``, so the following should
set up an environment and generate the site correctly::

$ python -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install -r requirements.txt

Build
=====

The Makefile generated by pelican-quickstart_ is included here, with some
modifications. It provides a ``devserver`` target which sets up processes for
automatically regenerating the site when files in ``content/`` change and
serving the ``output/`` directory on localhost.

I prefer the more manual approach with no "background" processes that I would
probably forget about. Generate the site manually::

(.venv) $ make html

Then set up a terminal to serve the site locally::

(.venv) $ make serve

Point the browser of choice to ``locahost:8000`` to see the result (note: the
port can be changed -- see the ``Makefile``). Now, when changing content, issue
another ``make html`` and reload the site in the browser.

We'll Do it Live!
=================

Once the site is built, I use ``rsync`` to push it to a Linode::

(.venv) $ make rsync

.. _personal website: https://ixjlyons.com
.. _Pelican: http://blog.getpelican.com/
.. _pelican-quickstart: http://docs.getpelican.com/en/3.6.3/quickstart.html#create-a-project