Mercurial > hg > bitsyblog
annotate bitsyblog/utils.py @ 75:6b8ccf6ec819
move restructured text string rendering to its own method
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 24 Sep 2010 19:01:07 -0700 |
parents | c228832db770 |
children | 4df927b0d847 |
rev | line source |
---|---|
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
1 """utlity functions for bitsyblog""" |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
2 |
75
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
3 import cgi |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
4 import datetime |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
5 import os |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
6 import urllib |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
7 import urllib2 |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
8 |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
9 # format to uniquely label blog posts |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
10 timeformat = ( 'YYYY', 'MM', 'DD', 'HH', 'MM', 'SS' ) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
11 timestamp = '%Y%m%d%H%M%S' # strftime representation |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
12 |
75
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
13 def ReST2html(string): |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
14 """renders a string with restructured text""" |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
15 |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
16 settings = { 'report_level': 5 } |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
17 string = string.strip() |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
18 try: |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
19 |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
20 parts = docutils.core.publish_parts(string, |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
21 writer_name='html', |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
22 settings_overrides=settings) |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
23 body = parts['body'] |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
24 except (SystemMessage, UnicodeError), e: |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
25 lines = [ cgi.escape(i.strip()) for i in string.split('\n') ] |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
26 body = '<br/>\n'.join(lines) |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
27 return body |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
28 |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
29 def validate_css(css): |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
30 """use a webservice to determine if the argument is valid css""" |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
31 url = 'http://jigsaw.w3.org/css-validator/validator?text=%s' |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
32 url = url % urllib.quote_plus(css) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
33 foo = urllib2.urlopen(url) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
34 text = foo.read() |
5
794dac65c9b6
comment about how brittle the CSS validation is
k0s <k0scist@gmail.com>
parents:
0
diff
changeset
|
35 return not 'We found the following errors' in text # XXX hacky |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
36 |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
37 def date(datestamp): |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
38 datestamp = os.path.split(datestamp)[-1] |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
39 retval = [] |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
40 for i in timeformat: |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
41 retval.append(int(datestamp[:len(i)])) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
42 datestamp = datestamp[len(i):] |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
43 return datetime.datetime(*retval) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
44 |
45 | 45 def datestamp(date=None): |
46 if date is None: | |
47 date = datetime.datetime.now() | |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
48 return date.strftime(timestamp) |