]> git.llucax.com Git - software/blitiri.git/blobdiff - config.py.sample
Fix 80 chars column limit
[software/blitiri.git] / config.py.sample
index 512e1a43aab8d84dc398ff1212a0b35fca5bd73f..79efac760ff447441ff848ada21ef30b62a7b790 100644 (file)
@@ -1,3 +1,4 @@
+#coding: utf8
 
 # This is the sample configuration file for a blitiri blog engine.
 # If you omit a variable, the default will be used.
 # Directory where entries are stored
 data_path = "/tmp/blog/data"
 
+# Are comments allowed? (if False, comments_path option is not used)
+enable_comments = False
+
+# Directory where comments are stored (must be writeable by the web server)
+comments_path = "/tmp/blog/comments"
+
 # Path where templates are stored. Use an empty string for the built-in
 # default templates. If they're not found, the built-in ones will be used.
 templates_path = "/tmp/blog/templates"
 
+# Path where the cache is stored (must be writeable by the web server)
+cache_path = "/tmp/blog/cache"
+
 # URL to the blog, including the name. Can be a full URL or just the path.
 blog_url = "/blog/blitiri.cgi"
 
@@ -29,4 +39,47 @@ author = "Hartmut Kegan"
 # Article encoding
 encoding = "utf8"
 
+# You can customize the captcha engine by providing a Captcha class with this
+# interface:
+# Constructor:
+#      Captcha(article) -> constructor, takes an article[1] as argument
+# Attributes:
+#      puzzle -> a string with the puzzle the user must solve to prove he is
+#                not a bot (can be raw HTML)
+#      help -> a string with extra instructions, shown only when the user
+#              failed to solve the puzzle
+# Methods:
+#      validate(form_data) -> based on the form data[2],  returns True if
+#                             the user has solved the puzzle uccessfully
+#                             (False otherwise).
+#
+# Note you must ensure that the puzzle attribute and validate() method can
+# "communicate" because they are executed in different requests. You can pass a
+# cookie or just calculate the answer based on the article's data, for example.
+#
+# Example: a captcha class to completely disable the captcha feature
+# class Captcha (object):
+#      def __init__(self, article):
+#              self.puzzle = ''
+#              self.help = ''
+#      def validate(form_data):
+#              return True
+# Remove the captcha input field from the form template, and that's it!
+#
+# [1] article is an object with all the article's information:
+#      path -> string
+#      created -> datetime
+#      updated -> datetime
+#      uuid -> string (unique ID)
+#      title -> string
+#      author -> string
+#      tags -> list of strings
+#      raw_contents -> string in rst format
+#      comments -> list of Comment objects (not too relevant here)
+# [2] form_data is an object with the form fields (all strings):
+#      author, author_error
+#      link, link_error
+#      catpcha, captcha_error
+#      body, body_error
+#      action, method