示例#1
0
def main():
    parser = argparse.ArgumentParser(description="""A tool to generate a
    static blog, with restructured text input files.""")

    parser.add_argument(dest='path',
                        nargs='?',
                        help='Path where to find the content files')
    parser.add_argument(
        '-t',
        '--theme-path',
        dest='theme',
        help='Path where to find the theme templates. If not specified, it'
        'will use the default one included with pelican.')
    parser.add_argument(
        '-o',
        '--output',
        dest='output',
        help='Where to output the generated files. If not specified, a directory'
        ' will be created, named "output" in the current path.')
    parser.add_argument(
        '-m',
        '--markup',
        default=None,
        dest='markup',
        help='the list of markup language to use (rst or md). Please indicate '
        'them separated by commas')
    parser.add_argument(
        '-s',
        '--settings',
        dest='settings',
        default='',
        help='the settings of the application. Default to False.')
    parser.add_argument('-d',
                        '--delete-output-directory',
                        dest='delete_outputdir',
                        action='store_true',
                        help='Delete the output directory.')
    parser.add_argument('-v',
                        '--verbose',
                        action='store_const',
                        const=log.INFO,
                        dest='verbosity',
                        help='Show all messages')
    parser.add_argument('-q',
                        '--quiet',
                        action='store_const',
                        const=log.CRITICAL,
                        dest='verbosity',
                        help='Show only critical errors')
    parser.add_argument('-D',
                        '--debug',
                        action='store_const',
                        const=log.DEBUG,
                        dest='verbosity',
                        help='Show all message, including debug messages')
    parser.add_argument('--version',
                        action='version',
                        version=__version__,
                        help='Print the pelican version and exit')
    parser.add_argument(
        '-r',
        '--autoreload',
        dest='autoreload',
        action='store_true',
        help="Relaunch pelican each time a modification occurs on the content"
        "files")
    args = parser.parse_args()

    log.init(args.verbosity)
    # Split the markup languages only if some have been given. Otherwise, populate
    # the variable with None.
    markup = [a.strip().lower()
              for a in args.markup.split(',')] if args.markup else None

    settings = read_settings(args.settings)

    cls = settings.get('PELICAN_CLASS')
    if isinstance(cls, basestring):
        module, cls_name = cls.rsplit('.', 1)
        module = __import__(module)
        cls = getattr(module, cls_name)

    try:
        pelican = cls(settings, args.path, args.theme, args.output, markup,
                      args.delete_outputdir)
        if args.autoreload:
            while True:
                try:
                    # Check source dir for changed files ending with the given
                    # extension in the settings. In the theme dir is no such
                    # restriction; all files are recursively checked if they
                    # have changed, no matter what extension the filenames
                    # have.
                    if files_changed(pelican.path, pelican.markup) or \
                            files_changed(pelican.theme, ['']):
                        pelican.run()
                    time.sleep(.5)  # sleep to avoid cpu load
                except KeyboardInterrupt:
                    break
        else:
            pelican.run()
    except Exception, e:
        log.critical(unicode(e))

        if (args.verbosity == log.DEBUG):
            raise
        else:
            sys.exit(getattr(e, 'exitcode', 1))
示例#2
0
def main():
    parser = argparse.ArgumentParser(description="""A tool to generate a
    static blog, with restructured text input files.""")

    parser.add_argument(dest='path', nargs='?',
        help='Path where to find the content files')
    parser.add_argument('-t', '--theme-path', dest='theme',
        help='Path where to find the theme templates. If not specified, it'
             'will use the default one included with pelican.')
    parser.add_argument('-o', '--output', dest='output',
        help='Where to output the generated files. If not specified, a directory'
             ' will be created, named "output" in the current path.')
    parser.add_argument('-m', '--markup', default=None, dest='markup',
        help='the list of markup language to use (rst or md). Please indicate '
             'them separated by commas')
    parser.add_argument('-s', '--settings', dest='settings', default='',
        help='the settings of the application. Default to False.')
    parser.add_argument('-d', '--delete-output-directory', dest='delete_outputdir',
        action='store_true', help='Delete the output directory.')
    parser.add_argument('-v', '--verbose', action='store_const', const=log.INFO, dest='verbosity',
            help='Show all messages')
    parser.add_argument('-q', '--quiet', action='store_const', const=log.CRITICAL, dest='verbosity',
            help='Show only critical errors')
    parser.add_argument('-D', '--debug', action='store_const', const=log.DEBUG, dest='verbosity',
            help='Show all message, including debug messages')
    parser.add_argument('--version', action='version', version=__version__,
            help='Print the pelican version and exit')
    parser.add_argument('-r', '--autoreload', dest='autoreload', action='store_true',
            help="Relaunch pelican each time a modification occurs on the content"
                 "files")
    args = parser.parse_args()

    log.init(args.verbosity)
    # Split the markup languages only if some have been given. Otherwise, populate
    # the variable with None.
    markup = [a.strip().lower() for a in args.markup.split(',')] if args.markup else None

    settings = read_settings(args.settings)

    cls = settings.get('PELICAN_CLASS')
    if isinstance(cls, basestring):
        module, cls_name = cls.rsplit('.', 1)
        module = __import__(module)
        cls = getattr(module, cls_name)

    try:
        pelican = cls(settings, args.path, args.theme, args.output, markup,
                args.delete_outputdir)
        if args.autoreload:
            while True:
                try:
                    # Check source dir for changed files ending with the given
                    # extension in the settings. In the theme dir is no such
                    # restriction; all files are recursively checked if they
                    # have changed, no matter what extension the filenames
                    # have.
                    if files_changed(pelican.path, pelican.markup) or \
                            files_changed(pelican.theme, ['']):
                        pelican.run()
                    time.sleep(.5)  # sleep to avoid cpu load
                except KeyboardInterrupt:
                    break
        else:
            pelican.run()
    except Exception, e:
        log.critical(unicode(e))

        if (args.verbosity == log.DEBUG):
            raise
        else:
            sys.exit(getattr(e, 'exitcode', 1))
示例#3
0
def main():
    parser = argparse.ArgumentParser(description="""A tool to generate a
    static blog, with restructured text input files.""")

    parser.add_argument(dest='path',
                        nargs='?',
                        help='Path where to find the content files')
    parser.add_argument(
        '-t',
        '--theme-path',
        dest='theme',
        help='Path where to find the theme templates. If not specified, it'
        'will use the default one included with pelican.')
    parser.add_argument(
        '-o',
        '--output',
        dest='output',
        help='Where to output the generated files. If not specified, a directory'
        ' will be created, named "output" in the current path.')
    parser.add_argument(
        '-m',
        '--markup',
        default=None,
        dest='markup',
        help='the list of markup language to use (rst or md). Please indicate '
        'them separated by commas')
    parser.add_argument(
        '-s',
        '--settings',
        dest='settings',
        help='the settings of the application. Default to None.')
    parser.add_argument(
        '-k',
        '--keep-output-directory',
        dest='keep',
        action='store_true',
        help='Keep the output directory and just update all the generated files.'
        'Default is to delete the output directory.')
    parser.add_argument('-v',
                        '--verbose',
                        action='store_const',
                        const=log.INFO,
                        dest='verbosity',
                        help='Show all messages')
    parser.add_argument('-q',
                        '--quiet',
                        action='store_const',
                        const=log.CRITICAL,
                        dest='verbosity',
                        help='Show only critical errors')
    parser.add_argument('-D',
                        '--debug',
                        action='store_const',
                        const=log.DEBUG,
                        dest='verbosity',
                        help='Show all message, including debug messages')
    parser.add_argument('--version',
                        action='version',
                        version=VERSION,
                        help='Print the pelican version and exit')
    parser.add_argument(
        '-r',
        '--autoreload',
        dest='autoreload',
        action='store_true',
        help="Relaunch pelican each time a modification occurs on the content"
        "files")
    args = parser.parse_args()

    log.init(args.verbosity)
    # Split the markup languages only if some have been given. Otherwise, populate
    # the variable with None.
    markup = [a.strip().lower()
              for a in args.markup.split(',')] if args.markup else None

    if args.settings is None:
        settings = {}
    settings = read_settings(args.settings)

    cls = settings.get('PELICAN_CLASS')
    if isinstance(cls, basestring):
        module, cls_name = cls.rsplit('.', 1)
        module = __import__(module)
        cls = getattr(module, cls_name)

    try:
        pelican = cls(settings, args.path, args.theme, args.output, markup,
                      args.keep)
        if args.autoreload:
            while True:
                try:
                    if files_changed(pelican.path, pelican.markup):
                        pelican.run()
                except KeyboardInterrupt:
                    break
        else:
            pelican.run()
    except Exception, e:
        log.critical(str(e))
示例#4
0
文件: __init__.py 项目: kmike/pelican
def main():
    parser = argparse.ArgumentParser(
        description="""A tool to generate a
    static blog, with restructured text input files."""
    )

    parser.add_argument(dest="path", nargs="?", help="Path where to find the content files")
    parser.add_argument(
        "-t",
        "--theme-path",
        dest="theme",
        help="Path where to find the theme templates. If not specified, it"
        "will use the default one included with pelican.",
    )
    parser.add_argument(
        "-o",
        "--output",
        dest="output",
        help="Where to output the generated files. If not specified, a directory"
        ' will be created, named "output" in the current path.',
    )
    parser.add_argument(
        "-m",
        "--markup",
        default=None,
        dest="markup",
        help="the list of markup language to use (rst or md). Please indicate " "them separated by commas",
    )
    parser.add_argument("-s", "--settings", dest="settings", help="the settings of the application. Default to False.")
    parser.add_argument(
        "-d",
        "--delete-output-directory",
        dest="delete_outputdir",
        action="store_true",
        help="Delete the output directory.",
    )
    parser.add_argument(
        "-v", "--verbose", action="store_const", const=log.INFO, dest="verbosity", help="Show all messages"
    )
    parser.add_argument(
        "-q", "--quiet", action="store_const", const=log.CRITICAL, dest="verbosity", help="Show only critical errors"
    )
    parser.add_argument(
        "-D",
        "--debug",
        action="store_const",
        const=log.DEBUG,
        dest="verbosity",
        help="Show all message, including debug messages",
    )
    parser.add_argument("--version", action="version", version=VERSION, help="Print the pelican version and exit")
    parser.add_argument(
        "-r",
        "--autoreload",
        dest="autoreload",
        action="store_true",
        help="Relaunch pelican each time a modification occurs on the content" "files",
    )
    args = parser.parse_args()

    log.init(args.verbosity)
    # Split the markup languages only if some have been given. Otherwise, populate
    # the variable with None.
    markup = [a.strip().lower() for a in args.markup.split(",")] if args.markup else None

    if args.settings is None:
        settings = {}
    settings = read_settings(args.settings)

    cls = settings.get("PELICAN_CLASS")
    if isinstance(cls, basestring):
        module, cls_name = cls.rsplit(".", 1)
        module = __import__(module)
        cls = getattr(module, cls_name)

    try:
        pelican = cls(settings, args.path, args.theme, args.output, markup, args.delete_outputdir)
        if args.autoreload:
            while True:
                try:
                    if files_changed(pelican.path, pelican.markup):
                        pelican.run()
                    time.sleep(0.5)  # sleep to avoid cpu load
                except KeyboardInterrupt:
                    break
        else:
            pelican.run()
    except Exception, e:
        log.critical(str(e))
示例#5
0
def main():
    parser = argparse.ArgumentParser(description="""A tool to generate a
    static blog, with restructured text input files.""")

    parser.add_argument(dest='path', nargs='?',
        help='Path where to find the content files')
    parser.add_argument('-t', '--theme-path', dest='theme',
        help='Path where to find the theme templates. If not specified, it'
             'will use the default one included with pelican.')
    parser.add_argument('-o', '--output', dest='output',
        help='Where to output the generated files. If not specified, a directory'
             ' will be created, named "output" in the current path.')
    parser.add_argument('-m', '--markup', default=None, dest='markup',
        help='the list of markup language to use (rst or md). Please indicate '
             'them separated by commas')
    parser.add_argument('-s', '--settings', dest='settings',
        help='the settings of the application. Default to None.')
    parser.add_argument('-k', '--keep-output-directory', dest='keep',
            action='store_true',
        help='Keep the output directory and just update all the generated files.'
             'Default is to delete the output directory.')
    parser.add_argument('-v', '--verbose', action='store_const', const=log.INFO, dest='verbosity',
            help='Show all messages')
    parser.add_argument('-q', '--quiet', action='store_const', const=log.CRITICAL, dest='verbosity',
            help='Show only critical errors')
    parser.add_argument('-D', '--debug', action='store_const', const=log.DEBUG, dest='verbosity',
            help='Show all message, including debug messages')
    parser.add_argument('--version', action='version', version=VERSION,
            help='Print the pelican version and exit')
    parser.add_argument('-r', '--autoreload', dest='autoreload', action='store_true',
            help="Relaunch pelican each time a modification occurs on the content"
                 "files")
    args = parser.parse_args()

    log.init(args.verbosity)
    # Split the markup languages only if some have been given. Otherwise, populate
    # the variable with None.
    markup = [a.strip().lower() for a in args.markup.split(',')] if args.markup else None

    if args.settings is None:
        settings = {}
    settings = read_settings(args.settings)

    cls = settings.get('PELICAN_CLASS')
    if isinstance(cls, basestring):
        module, cls_name = cls.rsplit('.', 1)
        module = __import__(module)
        cls = getattr(module, cls_name)

    try:
        pelican = cls(settings, args.path, args.theme, args.output, markup, args.keep)
        if args.autoreload:
            while True:
                try:
                    if files_changed(pelican.path, pelican.markup):
                        pelican.run()
                except KeyboardInterrupt:
                    break
        else:
            pelican.run()
    except Exception, e:
        log.critical(str(e))