|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import type ; |
|
|
import scanner ; |
|
|
import generators ; |
|
|
import os ; |
|
|
import common ; |
|
|
import toolset ; |
|
|
import path ; |
|
|
import feature : feature ; |
|
|
import property ; |
|
|
|
|
|
.initialized = ; |
|
|
|
|
|
type.register ReST : rst ; |
|
|
|
|
|
class rst-scanner : common-scanner |
|
|
{ |
|
|
rule __init__ ( paths * ) |
|
|
{ |
|
|
common-scanner.__init__ . $(paths) ; |
|
|
} |
|
|
|
|
|
rule pattern ( ) |
|
|
{ |
|
|
return "^[ ]*\\.\\.[ ]+include::[ ]+([^ |
|
|
]+)" |
|
|
"^[ ]*\\.\\.[ ]+image::[ ]+([^ |
|
|
]+)" |
|
|
"^[ ]*\\.\\.[ ]+figure::[ ]+([^ |
|
|
]+)" |
|
|
; |
|
|
} |
|
|
} |
|
|
|
|
|
scanner.register rst-scanner : include ; |
|
|
type.set-scanner ReST : rst-scanner ; |
|
|
|
|
|
generators.register-standard docutils.html : ReST : HTML ; |
|
|
|
|
|
rule init ( docutils-dir ? : tools-dir ? ) |
|
|
{ |
|
|
docutils-dir ?= [ modules.peek : DOCUTILS_DIR ] ; |
|
|
tools-dir ?= $(docutils-dir)/tools ; |
|
|
|
|
|
if ! $(.initialized) |
|
|
{ |
|
|
.initialized = true ; |
|
|
.docutils-dir = $(docutils-dir) ; |
|
|
.tools-dir = $(tools-dir:R="") ; |
|
|
|
|
|
.setup = [ |
|
|
common.prepend-path-variable-command PYTHONPATH |
|
|
: $(.docutils-dir) $(.docutils-dir)/extras ] ; |
|
|
RST2XXX = [ common.find-tool rst2html ] ; |
|
|
} |
|
|
} |
|
|
|
|
|
rule html ( target : source : properties * ) |
|
|
{ |
|
|
if ! [ on $(target) return $(RST2XXX) ] |
|
|
{ |
|
|
local python-cmd = [ property.select <python.interpreter> : $(properties) ] ; |
|
|
RST2XXX on $(target) = $(python-cmd:G=:E="python") $(.tools-dir)/rst2html.py ; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
feature docutils : : free ; |
|
|
feature docutils-html : : free ; |
|
|
feature docutils-cmd : : free ; |
|
|
toolset.flags docutils COMMON-FLAGS : <docutils> ; |
|
|
toolset.flags docutils HTML-FLAGS : <docutils-html> ; |
|
|
toolset.flags docutils RST2XXX : <docutils-cmd> ; |
|
|
|
|
|
actions html |
|
|
{ |
|
|
$(.setup) |
|
|
"$(RST2XXX)" $(COMMON-FLAGS) $(HTML-FLAGS) $(>) $(<) |
|
|
} |
|
|
|
|
|
|