5 from pkg_resources
import require
6 require("docutils>0.3.9")
9 from docutils
import nodes
, utils
10 from docutils
.core
import publish_parts
11 from docutils
.parsers
.rst
import roles
13 TEMPLATE
= u
"""%(html_prolog)s
14 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
17 <link rel="stylesheet" href="../../../include/css/documentation.css" type="text/css" />
18 <script type="text/javascript" src="../../../packed/MochiKit/MochiKit.js"></script>
19 <script type="text/javascript" src="../../js/toc.js"></script>
27 name
= text
.split('(', 1)[0].split()[0]
29 if name
.startswith('MochiKit.'):
31 parts
= name
.split('.')
32 base
= parts
[1] + '.html'
33 if parts
[-1] in ("call", "apply"):
35 name
= '.'.join(parts
[2:])
38 def role_mochiref(role
, rawtext
, text
, lineno
, inliner
, options
=None, content
=[]):
41 base
, name
= mochi_name(text
)
44 ref
+= '#fn-' + name
.lower()
45 roles
.set_classes(options
)
46 options
.setdefault('classes', []).append('mochiref')
47 node
= nodes
.reference(
48 text
, utils
.unescape(text
), refuri
=ref
, **options
)
51 roles
.register_canonical_role('mochiref', role_mochiref
)
53 def role_mochidef(role
, rawtext
, text
, lineno
, inliner
, options
=None, content
=[]):
56 base
, name
= mochi_name(text
)
58 ref
= 'fn-' + utils
.unescape(name
.lower())
59 anchor
= nodes
.raw('', '\n<a name="%s"></a>\n' %
(ref
,), format
='html')
60 roles
.set_classes(options
)
61 options
.setdefault('classes', []).append('mochidef')
62 node
= nodes
.reference(
63 text
, utils
.unescape(text
), refuri
='#' + ref
, **options
)
64 return [anchor
, node
], []
66 roles
.register_canonical_role('mochidef', role_mochidef
)
71 basepath
= os
.path
.join('doc/rst', '')
72 destpath
= os
.path
.join('doc/html', '')
73 for root
, dirs
, files
in os
.walk(basepath
):
76 destroot
= destpath
+ root
[len(basepath
):]
77 if not os
.path
.exists(destroot
):
80 basefn
, ext
= os
.path
.splitext(fn
)
82 srcfn
= os
.path
.join(root
, fn
)
83 dest
= os
.path
.join(destroot
, basefn
+ '.html')
86 if os
.path
.getmtime(dest
) >= os
.path
.getmtime(srcfn
):
87 print srcfn
, "not changed"
92 parts
= publish_parts(
94 source
=file(srcfn
, 'rb').read().decode('utf8'),
95 destination_path
=dest
,
97 settings_overrides
=dict(
98 embed_stylesheet
=False,
99 stylesheet_path
='include/css/documentation.css',
102 parts
['html_head'] = parts
['html_head'] %
('utf-8',)
103 parts
['html_prolog'] = parts
['html_prolog'] %
('utf-8',)
104 doc
= (TEMPLATE % parts
).encode("utf8")
105 out
= file(dest
, 'wb')
109 if __name__
== '__main__':