def generate_image_pages(dir, name, alt, output, conf=None): r = RstCloth() if conf is None: conf = get_conf() image = '/'.join([dir, name]) alt = alt b = name for img_output in output: if img_output['type'] == 'print': r.directive('only', 'latex', wrap=False, block=b) html = False else: html = True r.directive('only', 'not latex', wrap=False, block=b) img_output['width'] = str(img_output['width']) + 'px' r.newline() if 'tag' in img_output: tag = '-' + img_output['tag'] + '.png' else: tag = '.png' options = [('alt', alt), ('align', 'center'), ('figwidth', img_output['width'])] if 'scale' in img_output: options.append(('scale', img_output['scale'])) if html is False: r.directive(name='figure', arg='/images/{0}{1}'.format(name, tag), fields=options, indent=3, content=alt, block=b) elif html is True: img_tags = ['<div class="figure align-center" style="max-width:{5};">', '<img src="{0}/{1}/_images/{2}{3}" alt="{4}">', '</img>', '<p class="caption">{4}</p></div>' ] img_str = ''.join(img_tags) r.directive(name='raw', arg='html', content=img_str.format(conf.project.url, conf.git.branches.current, name, tag, alt, img_output['width']), indent=3, block=b) r.newline(block=b) r.write(image + '.rst') print('[image]: generated include file {0}.rst'.format(image))
def render_step_file(input_fn, output_fn=None): steps = Steps(input_fn) r = RstCloth() r.directive('only', 'not latex') r.newline() web_output = WebStepsOutput(steps) web_output.render() r.content(web_output.rst.get_block(), indent=3, wrap=False) r.directive('only', 'latex') r.newline() print_output = PrintStepsOutput(steps) print_output.render() r.content(print_output.rst.get_block(), indent=3, wrap=False) if output_fn is None: output_fn = os.path.splitext(input_fn)[0] + '.rst' r.write(output_fn) print('[steps]: rendered step include at ' + output_fn)
def generate_image_pages(dir, name, alt, output): r = RstCloth() image = '/'.join([dir, name]) alt = alt b = name for img_output in output: if img_output['type'] == 'print': r.directive('only', 'latex', wrap=False, block=b) else: r.directive('only', 'not latex', wrap=False, block=b) r.newline() if 'tag' in img_output: tag = '-' + img_output['tag'] + '.png' else: tag = '.png' options = [('alt', alt), ('align', 'center'), ('figwidth', img_output['width'])] if 'scale' in img_output: options.append(('scale', img_output['scale'])) r.directive(name='figure', arg='/images/{0}{1}'.format(name, tag), fields=options, indent=3, content=alt, block=b) r.newline(block=b) r.write(image + '.rst') print('[image]: generated include file {0}.rst'.format(image))
def generate_hash_file(fn): r = RstCloth() if os.path.exists(fn): with open(fn, 'r') as f: existing = f.read() else: existing = [] commit = utils.get_commit() r.directive('|commit| replace', '``{0}``'.format(commit)) try: if r.get_block('_all')[0] == existing[:-1]: print('[build]: no new commit(s), not updating {0} ({1})'.format(fn, commit)) return True except TypeError: print('[ERROR] [build]: problem generating {0}, continuing'.format(fn)) with file(fn, 'a'): os.utime(fn, times) else: r.write(fn) print('[build]: regenerated {0} with new commit hash: {1}'.format(fn, commit))