#! /usr/bin/env python
#@+leo-ver=4-thin
#@+node:ekr.20051110105027.178:@thin tangle_done.py
#@@first
# Example tangle_done.py file.
# Leo catches all exceptions thrown here; there is no need for try:except blocks.
#@+others
#@+node:ekr.20051110105027.179:run
# Leo calls this routine if "Run tangle-done.py after Tangle" is checked in the Prefs panel.
def run (root_list):
print "tangle_done roots:"
for root in root_list:
print root
if 0: # Run code contributed by Paul Paterson.
convertRSTfilesToHTML(root_list)
#@nonl
#@-node:ekr.20051110105027.179:run
#@+node:ekr.20051110105027.180:convertRSTfilesToHTML
# Adapted from code by Paul Paterson.
def convertRSTfilesToHTML(root_list):
"""This routine creates .html files from all .rst files in root_list, the list of files that have just been tangled."""
for root in root_list:
base,fullname = g.os_path_split(root)
name,ext = g.os_path_splitext(fullname)
if ext == ".rst":
file = g.os_path_join(base,name+".html")
#@ << Convert root to corresponding .html file >>
#@+node:ekr.20051110105027.181:<< Convert root to corresponding .html file >>
# Leo will report the execption if docutils is not installed.
from docutils.core import Publisher
from docutils.io import FileInput,StringOutput,StringInput
# Read .rst file into s.
f = open(root,"r")
s = f.read()
f.close()
# Restucture s into output.
pub = Publisher()
pub.source = StringInput(pub.settings,source=s)
pub.destination = StringOutput(pub.settings,encoding="utf-8")
pub.set_reader('standalone',None,'restructuredtext')
pub.set_writer('html')
output = pub.publish()
# EKR: 3/7/03: convert output using the present encoding.
dict = g.scanDirectives(self.c,p=root)
encoding = dict.get("encoding",None)
if encoding == None:
encoding = g.app.config.default_derived_file_encoding
output = g.toEncodedString(output,encoding,reportErrors=True)
# Write the corresponding html file.
f = open(file,"w")
f.write(output)
f.close()
#@nonl
#@-node:ekr.20051110105027.181:<< Convert root to corresponding .html file >>
#@nl
#@-node:ekr.20051110105027.180:convertRSTfilesToHTML
#@-others
#@nonl
#@-node:ekr.20051110105027.178:@thin tangle_done.py
#@-leo
|