1
0
Fork 0
forked from github/pelican
Custom Pelican theme, colorway heavily inspired by rosepinetheme.com https://lugh.ch
  • CSS 68.5%
  • HTML 26.5%
  • JavaScript 5%
Find a file
2010-11-24 15:58:58 +01:00
bin Dont remove the output folder if it's the source one ;) 2010-11-20 00:54:33 +00:00
docs Logo switch 2010-10-29 02:54:45 +01:00
pelican Missing import in processors 2010-11-24 15:58:58 +01:00
samples Put the notmyidea theme by default. 2010-10-30 16:47:59 +01:00
tools Add a import script I've used to convert from a wordpress xml file. 2010-11-07 14:04:11 +00:00
.hgignore Little changes to the hgignore file. 2010-10-16 20:03:06 +01:00
.hgtags Added tag 2.5.0 for changeset 87745dfdd51b 2010-11-20 16:01:40 +00:00
LICENSE Add a MANIFEST.in file for the archive generation 2010-08-19 14:23:41 +02:00
MANIFEST.in Put the notmyidea theme by default. 2010-10-30 16:47:59 +01:00
README.rst Fix doc misspellings 2010-11-20 19:57:22 +00:00
setup.py Little fixes, add ideas too. 2010-11-20 16:01:17 +00:00
THANKS Update TODO. 2010-11-16 15:13:10 +00:00
TODO Change the output directory structure and a bit the templates structure as well. 2010-11-21 01:49:37 +00:00

Pelican
#######

Pelican is a simple weblog generator, writen in python.

* Write your weblog entries directly with your editor of choice (vim!) and
  directly in restructured text, or markdown.
* A simple cli-tool to (re)generate the weblog.
* Easy to interface with DVCSes and web hooks
* Completely static output, so easy to host anywhere !

Files metadata
--------------

Pelican tries to be smart enough to get the informations he needs from the
file system (for instance, about the category of your articles), but you need to
provide by hand some of those informations in your files.

You could provide the metadata in the restructured text files, using the
following syntax (give your file the `.rst` extension)::

    My super title
    ##############

    :date: 2010-10-03 10:20
    :tags: thats, awesome
    :category: yeah
    :author: Alexis Metaireau


You can also use a markdown syntax (with a file ending in `.md`)::

    Date: 2010-12-03
    Title: My super title

    Put you content here.

Note that none of those are mandatory: if the date is not specified, pelican will
rely on the mtime of your file, and the category can also be determined by the 
directory where the rst file is. For instance, the category of 
`python/foobar/myfoobar.rst` is `foobar`.

Features
--------

Pelican currently supports:

* blog articles
* comments, via an external service (disqus). Please notice that while 
  it's useful, it's an external service, and you'll not manage the 
  comments by yourself. It could potentially eat your data.
* theming support (themes are done using `jinja2 <http://jinjna.pocoo.org>`_)
* PDF generation of the articles/pages (optional).

Getting started — Generate your blog
-------------------------------------

You're ready? Let's go ! You can install pelican in a lot of different ways, 
the simpler one is via `pip <http://pip.openplans.org/>`_::

    $ pip install pelican

Then, you have just to launch pelican, like this::

    $ pelican /path/to/your/content/

And… that's all! You can see your weblog generated on the `content/` folder.

This one will just generate a simple output, with the default theme. It's not
really sexy, as it's a simple HTML output (without any style). 

You can create your own style if you want, have a look to the help to see all
the options you can use::

    $ pelican --help

Settings
--------

Pelican is configurable thanks a configuration file, that you can pass to
the command line::

    $ pelican -s path/to/your/settingsfile.py path

Here are the available settings. Please note that all the settings you put in 
this file will be passed to the templates as well.

=======================   =======================================================
Setting name              what it does ?
=======================   =======================================================
`SITEURL`                 base URL of your website.
`PATH`                    path to look at for input files.
`THEME`                   theme to use to product the output. can be the
                          complete static path to a theme folder, or chosen
                          between the list of default themes (see below)
`OUTPUT_PATH`             Where to output the generated files. Default to
                          "output"
`SITENAME`                Your site name,
`DISPLAY_PAGES_ON_MENU`   Display or not the pages on the menu of the template. 
                          Templates can follow or not this settings.
`PDF_PROCESSOR`           Put True if you want to have PDF versions of your
                          documents. You will need to install `rst2pdf`.
`DEFAULT_CATEGORY`        The default category to fallback on. `misc` by default.
`FALLBACK_ON_FS_DATE`     If True, pelican will use the file system dates infos
                          (mtime) if it can't get informations from the
                          metadata?
`MARKUP`                  A list of available markup languages you want to use.
                          moment, only available values are `rst` and `md`.
`STATIC_PATHS`            The static paths you want to copy under "static"
`FEED`                    relative url to output the feed. Default is
                          `feeds/all.atom.xml`
`CATEGORY_FEED`           Where to put the categories feeds. default is 
                          `feeds/%s.atom.xml`
`CSS_FILE`                To specify the CSS file you want to load, if it's not 
                          the default one ('main.css')
=======================   =======================================================

Themes
------

3 themes are available. You can specify them using the `-t` option:

* notmyidea
* simple (a synonym for "full text" :)
* martyalchin 

You can define your own theme too, and specify it's emplacement in the same
way (be sure to specify the full absolute path to it).

The `notmyidea` theme can make good use of the following settings. I recommend
to use them too in your themes.

=======================   =======================================================
Setting name              what it does ?
=======================   =======================================================
`GITHUB_URL`              Your github URL (if you have one), it will then
                          use it to create a github ribbon.
`DISQUS_SITENAME`         Pelican can handle disqus comments, specify the
                          sitename you've filled in on disqus
`LINKS`                   A list of tuples (Title, Url) for links to appear on
                          the header.
`SOCIAL`                  A list of tuples (Title, Url) to appear in the "social"
                          section. 
`GOOGLE_ANALYTICS`        'UA-XXXX-YYYY' to activate google analytics.
=======================   =======================================================

In addition, you can use the "wide" version of the `notmyidea` theme, by
adding that in your configuration::

    CSS_FILE = "wide.css"

Why the name "Pelican" ?
------------------------

Heh, you didn't noticed? "Pelican" is an anagram for "Calepin" ;)

Dependencies
------------

At this time, pelican is dependent of the following python packages:

* feedgenerator, to generate the ATOM feeds.
* jinja2, for templating support.
* pygments, to have syntactic colorization
* docutils and Markdown

If you're not using python 2.7, you will also need `argparse`.

All those dependencies will be processed automatically if you install pelican
using setuptools/distribute or pip.

Source code
-----------

You can access the source code via mercurial at http://hg.notmyidea.org/pelican/
or via git on http://github.com/ametaireau/pelican/

Feedback !
----------

If you want to see new features in Pelican, dont hesitate to tell me, to clone
the repository, etc. That's open source, dude!

Contact me at "alexis at notmyidea dot org" for any request/feedback !