Mercurial > hg > bitsyblog
annotate bitsyblog/utils.py @ 133:ce478807848e default tip
py3
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Mon, 28 Dec 2020 21:18:19 +0000 |
parents | 73434c2db108 |
children |
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 |
79
4df927b0d847
fix unicode error in titles (i hope)
Jeff Hammel <jhammel@mozilla.com>
parents:
75
diff
changeset
|
7 import docutils |
4df927b0d847
fix unicode error in titles (i hope)
Jeff Hammel <jhammel@mozilla.com>
parents:
75
diff
changeset
|
8 import docutils.core |
4df927b0d847
fix unicode error in titles (i hope)
Jeff Hammel <jhammel@mozilla.com>
parents:
75
diff
changeset
|
9 |
4df927b0d847
fix unicode error in titles (i hope)
Jeff Hammel <jhammel@mozilla.com>
parents:
75
diff
changeset
|
10 from docutils.utils import SystemMessage |
4df927b0d847
fix unicode error in titles (i hope)
Jeff Hammel <jhammel@mozilla.com>
parents:
75
diff
changeset
|
11 |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
12 # 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
|
13 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
|
14 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
|
15 |
113 | 16 |
75
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
17 def ReST2html(string): |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
18 """renders a string with restructured text""" |
84
e5a23f5ea14e
make cooked bodies depend on file mtime
Jeff Hammel <jhammel@mozilla.com>
parents:
79
diff
changeset
|
19 |
75
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
20 settings = { 'report_level': 5 } |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
21 string = string.strip() |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
22 try: |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
23 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
|
24 writer_name='html', |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
25 settings_overrides=settings) |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
26 body = parts['body'] |
113 | 27 except (SystemMessage, UnicodeError) as e: |
75
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
28 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
|
29 body = '<br/>\n'.join(lines) |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
30 return body |
6b8ccf6ec819
move restructured text string rendering to its own method
Jeff Hammel <jhammel@mozilla.com>
parents:
45
diff
changeset
|
31 |
113 | 32 |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
33 def validate_css(css): |
114
73434c2db108
soft-deprecate validate_css method
Jeff Hammel <k0scist@gmail.com>
parents:
113
diff
changeset
|
34 # DEPRECATED! Just return `True` for now |
73434c2db108
soft-deprecate validate_css method
Jeff Hammel <k0scist@gmail.com>
parents:
113
diff
changeset
|
35 return True |
73434c2db108
soft-deprecate validate_css method
Jeff Hammel <k0scist@gmail.com>
parents:
113
diff
changeset
|
36 |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
37 |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
38 def date(datestamp): |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
39 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
|
40 retval = [] |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
41 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
|
42 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
|
43 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
|
44 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
|
45 |
45 | 46 def datestamp(date=None): |
84
e5a23f5ea14e
make cooked bodies depend on file mtime
Jeff Hammel <jhammel@mozilla.com>
parents:
79
diff
changeset
|
47 if isinstance(date, float): |
e5a23f5ea14e
make cooked bodies depend on file mtime
Jeff Hammel <jhammel@mozilla.com>
parents:
79
diff
changeset
|
48 date = datetime.datetime.fromtimestamp(date) |
45 | 49 if date is None: |
50 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
|
51 return date.strftime(timestamp) |