Mercurial > libervia-website
comparison tasks/task_generate_doc.py @ 0:09d66acc7c73
initial commit, website first draft:
- presentation page
- documentation (generated from backend and Libervia)
- social contract (HTML generated from sat repository)
- press/conferences (adapted from former website)
- association page (adpated from former website)
- news (a selected blog is displayed)
- fr i18n
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 26 May 2019 22:26:30 +0200 |
parents | |
children | 9ce41ef66dfa |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:09d66acc7c73 |
---|---|
1 #!/ur/bin/env python2 | |
2 | |
3 import os.path | |
4 from twisted.internet import defer | |
5 from sat.core.i18n import _ | |
6 from sat.core.log import getLogger | |
7 from sat.tools.common import regex | |
8 log = getLogger(__name__) | |
9 | |
10 WATCH_DIRS = [] | |
11 DOC_DIRS_DEFAULT = (u'doc', u'docs') | |
12 | |
13 | |
14 def prepare(self): | |
15 to_watch = set() | |
16 doc_path = self.getConfig("doc_path") | |
17 if doc_path is not None: | |
18 to_watch.add(doc_path) | |
19 sub_docs = self.getConfig("sub_docs_dict", value_type=u"path") | |
20 if sub_docs is not None: | |
21 for d in sub_docs.values(): | |
22 to_watch.add(d) | |
23 global WATCH_DIRS | |
24 WATCH_DIRS = list(to_watch) | |
25 | |
26 | |
27 @defer.inlineCallbacks | |
28 def start(self): | |
29 # root documentation | |
30 doc_path = self.getConfig("doc_path") | |
31 # sub docs will be generated before the root documentation | |
32 sub_docs = self.getConfig("sub_docs_dict", value_type=u"path") | |
33 | |
34 if doc_path is None: | |
35 # we check if there is documentation inside the site | |
36 for dirname in DOC_DIRS_DEFAULT: | |
37 path = os.path.join(self.site_path, dirname) | |
38 conf_file = os.path.join(path, 'conf.py') | |
39 if os.path.isdir(path) and os.path.exists(conf_file): | |
40 doc_path = path | |
41 break | |
42 | |
43 if doc_path is None and sub_docs is None: | |
44 log.info(u"No documentation found for {site_name}, skipping".format( | |
45 site_name = self.site_name)) | |
46 return | |
47 | |
48 sphinx = self.findCommand('sphinx-build2', 'sphinx-build') | |
49 | |
50 # we first generate the sub documentations | |
51 for name, sub_doc_path in sub_docs.iteritems(): | |
52 sub_dir = regex.pathEscape(name or u'') | |
53 build_path = os.path.join(self.build_path, u'doc', sub_dir) | |
54 yield self.runCommand(sphinx, sub_doc_path, build_path) | |
55 | |
56 # then the root one | |
57 if doc_path is not None: | |
58 build_path = os.path.join(self.build_path, u'doc') | |
59 yield self.runCommand(sphinx, doc_path, build_path) | |
60 | |
61 log.info(_(u"documentation has been generated")) |