pages - Allows you to include non-blog-entr...¶
Summary¶
Blogs don’t always consist solely of blog entries. Sometimes you want to add other content to your blog that’s not a blog entry. For example, an “about this blog” page or a page covering a list of your development projects.
This plugin allows you to have pages served by Pyblosxom that aren’t blog entries.
Additionally, this plugin allows you to have a non-blog-entry front page. This makes it easier to use Pyblosxom to run your entire website.
Install¶
This plugin comes with Pyblosxom. To install, do the following:
- add
Pyblosxom.plugins.pages
to theload_plugins
list in yourconfig.py
file. - configure the plugin using the configuration variables below
pagesdir
This is the directory that holds the pages files.
For example, if you wanted your pages in
/home/foo/blog/pages/
, then you would set it to:py["pagesdir"] = "/home/foo/blog/pages/"If you have
blogdir
defined in yourconfig.py
file which holds yourdatadir
andflavourdir
directories, then you could set it to:py["pagesdir"] = os.path.join(blogdir, "pages")
pages_trigger
(optional)
Defaults to
pages
.This is the url trigger that causes the pages plugin to look for pages.
py[“pages_trigger”] = “pages”
pages_frontpage
(optional)
Defaults to False.
If set to True, then pages will show the
frontpage
page for the front page.This requires you to have a
frontpage
file in your pages directory. The extension for this file works the same way as blog entries. So if your blog entries end in.txt
, then you would need afrontpage.txt
file.Example:
py["pages_frontpage"] = True
Usage¶
Pages looks for urls that start with the trigger pages_trigger
value as set in your config.py
file. For example, if your
pages_trigger
was pages
, then it would look for urls like
this:
/pages/blah
/pages/blah.html
and pulls up the file blah.txt
[1] which is located in the path
specified in the config file as pagesdir
.
If the file is not there, it kicks up a 404.
[1] | The file ending (the .txt part) can be any file ending
that’s valid for entries on your blog. For example, if you have
the textile entryparser installed, then .txtl is also a valid
file ending. |
Template¶
pages formats the page using the pages
template. So you need a
pages
template in the flavours that you want these pages to be
rendered in. I copy my story
template and remove some bits.
For example, if you’re using the html flavour and that is stored in
/home/foo/blog/flavours/html.flav/
, then you could copy the
story
file in that directory to pages
and that would become
your pages
template.
Python code blocks¶
pages handles evaluating python code blocks. Enclose python code in
<%
and %>
. The assumption is that only you can edit your
pages files, so there are no restrictions (security or otherwise).
For example:
<%
print "testing"
%>
<%
x = { "apple": 5, "banana": 6, "pear": 4 }
for mem in x.keys():
print "<li>%s - %s</li>" % (mem, x[mem])
%>
The request object is available in python code blocks. Reference it
by request
. Example:
<%
config = request.get_configuration()
print "your datadir is: %s" % config["datadir"]
%>
License¶
Plugin is distributed under license: MIT