Пример #1
0
    def run(self, edit):
        view = self.view
        try:
            html_content = RendererManager.render_view_to_string(view)
            setting = Setting.instance()
            target_folder = setting.export_options['target_folder']

            if target_folder is not None:
                fullpath = self.view.file_name() or ''
                timestamp_format = setting.export_options['timestamp_format']

                if (not os.path.exists(fullpath) and target_folder == ".") or \
                not os.path.isdir(target_folder):
                    target_folder = None
                elif target_folder == '.':
                    fn_base, _ = os.path.splitext(fullpath)
                    html_fn = '%s%s.html' % (
                        fn_base,
                        time.strftime(timestamp_format, time.localtime()))
                elif not os.path.exists(fullpath):
                    html_fn = os.path.join(target_folder, 'Untitled%s.html' % \
                        time.strftime(timestamp_format, time.localtime()))
                else:
                    fn_base = os.path.basename(fullpath)
                    html_fn = os.path.join(target_folder, '%s%s.html' % \
                        (fn_base, time.strftime(timestamp_format, time.localtime())))

            if target_folder is None:
                with tempfile.NamedTemporaryFile(delete=False,
                                                 suffix='.html') as f:
                    html_fn = f.name

            with codecs.open(html_fn, 'w', encoding='utf-8') as html_file:
                html_file.write(html_content)

            # Copy contents to clipboard
            if setting.export_options['copy_to_clipboard']:
                sublime.set_clipboard(html_content)
                sublime.status_message('Exported result copied to clipboard')
            # Open output file if necessary
            if setting.export_options['open_after_exporting']:
                log.info('Launching web browser for %s', html_fn)
                launching_web_browser_for_url(html_fn)

        except NotImplementedError:
            pass
        except:
            log.exception("Error while exporting")
Пример #2
0
    def run(self, edit):
        view = self.view
        try:
            html_content = RendererManager.render_view_to_string(view)
            setting = Setting.instance()
            target_folder = setting.export_options['target_folder']

            if target_folder is not None:
                fullpath = self.view.file_name() or ''
                timestamp_format = setting.export_options['timestamp_format']

                if (not os.path.exists(fullpath) and target_folder == ".") or \
                not os.path.isdir(target_folder):
                    target_folder = None
                elif target_folder == '.':
                    fn_base, _ = os.path.splitext(fullpath)
                    html_fn = '%s%s.html' % (fn_base, time.strftime(timestamp_format,
                        time.localtime()))
                elif not os.path.exists(fullpath):
                    html_fn = os.path.join(target_folder, 'Untitled%s.html' % \
                        time.strftime(timestamp_format, time.localtime()))
                else:
                    fn_base = os.path.basename(fullpath)
                    html_fn = os.path.join(target_folder, '%s%s.html' % \
                        (fn_base, time.strftime(timestamp_format, time.localtime())))

            if target_folder is None:
                with tempfile.NamedTemporaryFile(delete=False, suffix='.html') as f:
                    html_fn = f.name

            with codecs.open(html_fn, 'w', encoding='utf-8') as html_file:
                html_file.write(html_content)

            # Copy contents to clipboard
            if setting.export_options['copy_to_clipboard']:
                sublime.set_clipboard(html_content)
                sublime.status_message('Exported result copied to clipboard')
            # Open output file if necessary
            if setting.export_options['open_after_exporting']:
                log.info('Launching web browser for %s', html_fn)
                launching_web_browser_for_url(html_fn)

        except NotImplementedError:
            pass
        except:
            log.exception("Error while exporting")