diff --git a/scripts/asciidoc2html.py b/scripts/asciidoc2html.py new file mode 100644 index 000000000..9fc5c78fe --- /dev/null +++ b/scripts/asciidoc2html.py @@ -0,0 +1,73 @@ +#!/usr/bin/python3 +# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et: + +# Copyright 2014 Florian Bruhin (The Compiler) + +# This file is part of qutebrowser. +# +# qutebrowser is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# qutebrowser is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with qutebrowser. If not, see . + +"""Generate the html documentation based on the asciidoc files.""" + +import os +import subprocess +import glob + +import colorama as col + + +def call_asciidoc(src, dst): + """Call asciidoc for the given files. + + Args: + src: The source .asciidoc file. + dst: The destination .html file, or None to auto-guess. + """ + print("{}Calling asciidoc for {}...{}".format( + col.Fore.CYAN, os.path.basename(src), col.Fore.RESET)) + if os.name == 'nt': + # FIXME this is highly specific to my machine + args = [r'C:\Python27\python', r'J:\bin\asciidoc-8.6.9\asciidoc.py'] + else: + args = ['asciidoc'] + if dst is not None: + args += ['--out-file', dst] + args.append(src) + try: + subprocess.check_call(args) + except subprocess.CalledProcessError as e: + print(''.join([col.Fore.RED, str(e), col.Fore.RESET])) + sys.exit(1) + + +def main(): + asciidoc_files = [ + ('doc/qutebrowser.1.asciidoc', None), + ('README.asciidoc', None), + ('doc/FAQ.asciidoc', 'qutebrowser/html/doc/FAQ.html'), + ] + try: + os.mkdir('qutebrowser/html/doc') + except FileExistsError: + pass + for src in glob.glob('doc/help/*.asciidoc'): + name, _ext = os.path.splitext(os.path.basename(src)) + dst = 'qutebrowser/html/doc/{}.html'.format(name) + asciidoc_files.append((src, dst)) + for src, dst in asciidoc_files: + call_asciidoc(src, dst) + + +if __name__ == '__main__': + main() diff --git a/scripts/generate_doc.py b/scripts/generate_doc.py index f247f7071..8d32b136c 100755 --- a/scripts/generate_doc.py +++ b/scripts/generate_doc.py @@ -22,7 +22,6 @@ import os import sys -import glob import html import shutil import os.path @@ -38,6 +37,7 @@ sys.path.insert(0, os.getcwd()) # We import qutebrowser.app so all @cmdutils-register decorators are run. import qutebrowser.app +from scripts import asciidoc2html from qutebrowser import qutebrowser from qutebrowser.commands import cmdutils from qutebrowser.config import configdata @@ -395,30 +395,6 @@ def regenerate_manpage(filename): _format_block(filename, 'options', options) -def call_asciidoc(src, dst): - """Call asciidoc for the given files. - - Args: - src: The source .asciidoc file. - dst: The destination .html file, or None to auto-guess. - """ - print("{}Calling asciidoc for {}...{}".format( - col.Fore.CYAN, os.path.basename(src), col.Fore.RESET)) - if os.name == 'nt': - # FIXME this is highly specific to my machine - args = [r'C:\Python27\python', r'J:\bin\asciidoc-8.6.9\asciidoc.py'] - else: - args = ['asciidoc'] - if dst is not None: - args += ['--out-file', dst] - args.append(src) - try: - subprocess.check_call(args) - except subprocess.CalledProcessError as e: - print(''.join([col.Fore.RED, str(e), col.Fore.RESET])) - sys.exit(1) - - def main(): """Regenerate all documentation.""" print("{}Generating asciidoc files...{}".format( @@ -427,21 +403,9 @@ def main(): generate_settings('doc/help/settings.asciidoc') generate_commands('doc/help/commands.asciidoc') regenerate_authors('README.asciidoc') - asciidoc_files = [ - ('doc/qutebrowser.1.asciidoc', None), - ('README.asciidoc', None), - ('doc/FAQ.asciidoc', 'qutebrowser/html/doc/FAQ.html'), - ] - try: - os.mkdir('qutebrowser/html/doc') - except FileExistsError: - pass - for src in glob.glob('doc/help/*.asciidoc'): - name, _ext = os.path.splitext(os.path.basename(src)) - dst = 'qutebrowser/html/doc/{}.html'.format(name) - asciidoc_files.append((src, dst)) - for src, dst in asciidoc_files: - call_asciidoc(src, dst) + if '--html' in sys.argv: + asciidoc2html.main() + if __name__ == '__main__': main()