# Planet configuration file
#
# This illustrates some of Planet's fancier features with example.

# Every planet needs a [Planet] section
[Planet]
# name: Your planet's name
# link: Link to the main page
# owner_name: Your name
# owner_email: Your e-mail address
name = Planet WebKit
link = http://planet.webkit.org/
owner_name = Adam Roben
owner_email = aroben@apple.com

# cache_directory: Where cached feeds are stored
# new_feed_items: Number of items to take from new feeds
# log_level: One of DEBUG, INFO, WARNING, ERROR or CRITICAL
# feed_timeout: number of seconds to wait for any given feed
cache_directory = cache
new_feed_items = 2
log_level = DEBUG
feed_timeout = 20

# template_files: Space-separated list of output template files
template_files = templates/index.html.tmpl templates/atom.xml.tmpl templates/rss20.xml.tmpl templates/rss10.xml.tmpl templates/opml.xml.tmpl templates/foafroll.xml.tmpl

# The following provide defaults for each template:
# output_dir: Directory to place output files
# items_per_page: How many items to put on each page
# days_per_page: How many complete days of posts to put on each page
#                This is the absolute, hard limit (over the item limit)
# date_format: strftime format for the default 'date' template variable
# new_date_format: strftime format for the 'new_date' template variable
# encoding: output encoding for the file, Python 2.3+ users can use the
#           special "xml" value to output ASCII with XML character references
# locale: locale to use for (e.g.) strings in dates, default is taken from your
#         system. You can specify more locales separated by ':', planet will
#         use the first available one
output_dir = wwwroot
items_per_page = 60
days_per_page = 0
date_format = %B %d, %Y %I:%M %p
new_date_format = %B %d, %Y
encoding = utf-8
# locale = C


# To define a different value for a particular template you may create
# a section with the same name as the template file's filename (as given
# in template_files).

# Provide no more than 7 days articles on the front page
[templates/index.html.tmpl]
days_per_page = 14

# If non-zero, all feeds which have not been updated in the indicated
# number of days will be marked as inactive
activity_threshold = 0


# Options placed in the [DEFAULT] section provide defaults for the feed
# sections.  Placing a default here means you only need to override the
# special cases later.
[DEFAULT]
# Hackergotchi default size.
# If we want to put a face alongside a feed, and it's this size, we
# can omit these variables.
facewidth = 65
faceheight = 85


# Any other section defines a feed to subscribe to.  The section title
# (in the []s) is the URI of the feed itself.  A section can also be
# have any of the following options:
# 
# name: Name of the feed (defaults to the title found in the feed)
#
# Additionally any other option placed here will be available in
# the template (prefixed with channel_ for the Items loop).  We use
# this trick to make the faces work -- this isn't something Planet
# "natively" knows about.  Look at fancy-examples/index.html.tmpl
# for the flip-side of this.

[http://www.kdedevelopers.org/blog/105/feed]
name = Adam Treat
filter = webkit

[http://www.atoker.com/blog/category/webkit/feed/]
name = Alp Toker
nick = alp

[http://blog.kov.eti.br/wp-rss2.php?cat=16]
name = Gustavo Noronha
nick = kov

[http://zecke.blogspot.com/feeds/posts/full/-/WebKit]
name = Holger Freyther
nick = zecke

[http://blog.justinhaygood.com/category/webkit/feed/]
name = Justin Haygood
nick = jhaygood

[http://sideshowbarker.net/feed/]
name = Michael(tm) Smith
nick = MikeSmith
filter = webkit

[http://webkit.org/blog/feed/]
name = Surfin&rsquo; Safari

[http://labs.qt.nokia.com/blogs/feed/atom/?cat=9]
name = Qt Labs

[http://feeds.feedburner.com/liferc/webkit]
name = Jan Michael Alonzo
nick = janm
filter = webkit

[http://whtconstruct.blogspot.com/feeds/posts/default]
name = Brent Fulgham
nick = bfulgham
filter = webkit

[http://blog.squidy.info/category/webkit/feed/en/]
name = Pierre-Luc Beaudoin
nick = pierlux

[http://summerofjsc.blogspot.com/feeds/posts/default]
name = Cameron Zwarich

[http://hanblog.info/blog/feed/category/WebKit/atom]
name = Anthony Ricaud

[http://blog.chromium.org/feeds/posts/default?alt=rss]
name = The Chromium Blog
filter = webkit

[http://blogs.gnome.org/xan/category/webkit/feed/rss/]
name = Xan López
nick = xan

[http://webkit.sed.hu/rss.xml]
name = University of Szeged
