Exemple #1
0
def main():
    AsyncIOMainLoop().install()

    doc = get_document()

    if not options.config.no_default_js:
        doc.add_jsfile(
            'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js')
        doc.add_jsfile('static/bootstrap.min.js')
    if not options.config.no_default_css:
        doc.add_cssfile('static/bootstrap.min.css')

    _user_static_dirs = set()
    for js in options.config.js_files:
        _user_static_dirs.add(path.dirname(js))
        doc.add_jsfile(js)
    for css in options.config.css_files:
        _user_static_dirs.add(path.dirname(css))
        doc.add_cssfile(css)

    # choices arg is better, but detecting error is not easy in livemark.vim
    if options.config.highlight_theme in STYLE_MAP:
        pygments_style = HtmlFormatter(
            style=options.config.highlight_theme).get_style_defs()
    else:
        pygments_style = HtmlFormatter('default').get_style_defs()
    doc.head.appendChild(Style(pygments_style))

    script = Script(parent=doc.body)
    script.innerHTML = '''
        function moveToElement(id) {
            var elm = document.getElementById(id)
            if (elm) {
                var x = window.scrollX
                var rect = elm.getBoundingClientRect()
                window.scrollTo(x, rect.top + window.scrollY)
                console.log(elm.textContent)
            }
        }
    '''
    mount_point = Div(parent=doc.body, class_='container')
    mount_point.appendChild(H2('LiveMark is running...'))
    app = get_app(doc)
    app.add_static_path('static', static_dir)
    for _d in _user_static_dirs:
        app.add_static_path(_d, _d)
    web_server = start_server(app, port=options.config.browser_port)

    loop = asyncio.get_event_loop()
    vim_server = Server(port=options.config.vim_port, loop=loop, doc=doc,
                        mount_point=mount_point)
    browser = webbrowser.get(options.config.browser)
    browser.open('http://localhost:{}'.format(options.config.browser_port))
    try:
        vim_server.start()
        loop.run_forever()
    except KeyboardInterrupt:
        vim_server.stop()
        web_server.stop()
Exemple #2
0
def main():
    AsyncIOMainLoop().install()

    doc = get_document()

    if not options.config.no_default_js:
        doc.add_jsfile(
            'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'
        )
        doc.add_jsfile('static/bootstrap.min.js')
    if not options.config.no_default_css:
        doc.add_cssfile('static/bootstrap.min.css')

    _user_static_dirs = set()
    for js in options.config.js_files:
        _user_static_dirs.add(path.dirname(js))
        doc.add_jsfile(js)
    for css in options.config.css_files:
        _user_static_dirs.add(path.dirname(css))
        doc.add_cssfile(css)

    # choices arg is better, but detecting error is not easy in livemark.vim
    if options.config.highlight_theme in STYLE_MAP:
        pygments_style = HtmlFormatter(
            style=options.config.highlight_theme).get_style_defs()
    else:
        pygments_style = HtmlFormatter('default').get_style_defs()
    doc.head.appendChild(Style(pygments_style))

    script = Script(parent=doc.body)
    script.innerHTML = '''
        function moveToElement(id) {
            var elm = document.getElementById(id)
            if (elm) {
                var x = window.scrollX
                var rect = elm.getBoundingClientRect()
                window.scrollTo(x, rect.top + window.scrollY)
                console.log(elm.textContent)
            }
        }
    '''
    mount_point = Div(parent=doc.body, class_='container')
    mount_point.appendChild(H2('LiveMark is running...'))
    app = get_app(doc)
    app.add_static_path('static', static_dir)
    for _d in _user_static_dirs:
        app.add_static_path(_d, _d)
    web_server = start_server(app, port=options.config.browser_port)

    loop = asyncio.get_event_loop()
    vim_server = Server(port=options.config.vim_port,
                        loop=loop,
                        doc=doc,
                        mount_point=mount_point)
    browser = webbrowser.get(options.config.browser)
    browser.open('http://localhost:{}'.format(options.config.browser_port))
    try:
        vim_server.start()
        loop.run_forever()
    except KeyboardInterrupt:
        vim_server.stop()
        web_server.stop()