Пример #1
0
 def decorated_func(ifo, start, end, *args, **kwargs):
     # set page init args
     initargs = {
         'title': '%s Hveto | %d-%d' % (ifo, start, end),
         'base': os.path.curdir,
     }
     for key in ['title', 'base']:
         if key in kwargs:
             initargs[key] = kwargs.pop(key)
     # find outdir
     outdir = kwargs.pop('outdir', initargs['base'])
     winners = kwargs.pop('winners', [])
     if not os.path.isdir(outdir):
         os.makedirs(outdir)
     # write about page
     try:
         config = kwargs.pop('config')
     except KeyError:
         about = None
     else:
         iargs = initargs.copy()
         aboutdir = os.path.join(outdir, 'about')
         if iargs['base'] == os.path.curdir:
             iargs['base'] = os.path.pardir
         about = write_about_page(ifo,
                                  start,
                                  end,
                                  config,
                                  outdir=aboutdir,
                                  **iargs)
         if os.path.basename(about) == 'index.html':
             about = about[:-10]
     # open page
     nav = navbar(ifo, start, winners)
     page = gwhtml.new_bootstrap_page(navbar=nav, **initargs)
     page.add(banner(ifo, start, end))
     # write content
     page.add(str(func(*args, **kwargs)))
     # close page with custom footer
     index = os.path.join(outdir, 'index.html')
     version = get_versions()['version']
     commit = get_versions()['full-revisionid']
     url = 'https://github.com/gwdetchar/hveto/tree/{}'.format(commit)
     link = markup.oneliner.a('View hveto-{} on GitHub'.format(version),
                              href=url,
                              target='_blank')
     report = 'https://github.com/gwdetchar/hveto/issues'
     issues = markup.oneliner.a('Report an issue',
                                href=report,
                                target='_blank')
     gwhtml.close_page(page, index, about=about, link=link, issues=issues)
     return index
Пример #2
0
 def decorated_func(ifo, start, end, *args, **kwargs):
     # set page init args
     initargs = {
         'title': '%s Hveto | %d-%d' % (ifo, start, end),
         'base': os.path.curdir,
     }
     for key in ['title', 'base']:
         if key in kwargs:
             initargs[key] = kwargs.pop(key)
     # find outdir
     outdir = kwargs.pop('outdir', initargs['base'])
     winners = kwargs.pop('winners', [])
     if not os.path.isdir(outdir):
         os.makedirs(outdir)
     # write about page
     try:
         config = kwargs.pop('config')
     except KeyError:
         about = None
     else:
         iargs = initargs.copy()
         aboutdir = os.path.join(outdir, 'about')
         if iargs['base'] == os.path.curdir:
             iargs['base'] = os.path.pardir
         about = write_about_page(ifo, start, end, config, outdir=aboutdir,
                                  **iargs)
         if os.path.basename(about) == 'index.html':
             about = about[:-10]
     # open page
     nav = navbar(ifo, start, winners)
     page = gwhtml.new_bootstrap_page(navbar=nav, **initargs)
     page.add(banner(ifo, start, end))
     # write content
     page.add(str(func(*args, **kwargs)))
     # close page with custom footer
     index = os.path.join(outdir, 'index.html')
     version = get_versions()['version']
     commit = get_versions()['full-revisionid']
     url = 'https://github.com/gwdetchar/hveto/tree/{}'.format(commit)
     link = markup.oneliner.a(
         'View hveto-{} on GitHub'.format(version), href=url,
         target='_blank')
     report = 'https://github.com/gwdetchar/hveto/issues'
     issues = markup.oneliner.a(
         'Report an issue', href=report, target='_blank')
     gwhtml.close_page(page, index, about=about, link=link, issues=issues)
     return index
Пример #3
0
    def write_html(self, maincontent, title=None, subtitle=None, tabs=list(),
                   ifo=None, ifomap=dict(), brand=None, base=None,
                   css=None, js=None, about=None, footer=None, issues=True,
                   **inargs):
        """Write the HTML page for this `Tab`.

        Parameters
        ----------
        maincontent : `str`, `~MarkupPy.markup.page`
            simple string content, or a structured `page` of markup to
            embed as the content of the #main div.

        title : `str`, optional, default: {parent.name}
            level 1 heading for this `Tab`.

        subtitle : `str`, optional, default: {self.name}
            level 2 heading for this `Tab`.

        tabs: `list`, optional
            list of top-level tabs (with children) to populate navbar

        ifo : `str`, optional
            prefix for this IFO.

        ifomap : `dict`, optional
            `dict` of (ifo, {base url}) pairs to map to summary pages for
            other IFOs.

        brand : `str`, `~MarkupPy.markup.page`, optional
            non-menu content for navigation bar

        css : `list`, optional
            list of resolvable URLs for CSS files. See `gwsumm.html.CSS` for
            the default list.

        js : `list`, optional
            list of resolvable URLs for javascript files. See
            `gwumm.html.JS` for the default list.

        about : `str`, optional
            href for the 'About' page

        footer : `str`, `~MarkupPy.markup.page`
            user-defined content for the footer (placed below everything else)

        issues : `bool` or `str`, default: `True`
            print link to github.com issue tracker for this package

        **inargs
            other keyword arguments to pass to the
            :meth:`~Tab.build_inner_html` method
        """
        # setup directories
        outdir = os.path.split(self.index)[0]
        if outdir and not os.path.isdir(outdir):
            os.makedirs(outdir)

        # get default style and scripts
        if css is None:
            css = list(html.get_css().values())
        if js is None:
            js = list(html.get_js().values())

        # find relative base path
        if base is None:
            n = len(self.index.split(os.path.sep)) - 1
            base = os.sep.join([os.pardir] * n)
        if not base.endswith('/'):
            base += '/'

        # set default title
        if title is None:
            title = self.shorttitle.replace('/', ' | ')

        # construct navigation
        if tabs:
            navbar = str(self.html_navbar(ifo=ifo, ifomap=ifomap,
                                          tabs=tabs, brand=brand))

        # initialize page
        self.page = gwhtml.new_bootstrap_page(
            title=title, base=base, css=css, script=js, navbar=navbar)

        # add banner
        self.page.add(str(self.html_banner(
            title=title.replace('|', ':'), subtitle=subtitle)))

        # add #main content
        self.page.add(str(self.html_content(maincontent)))

        # format custom footer
        version = get_versions()['version']
        commit = get_versions()['full-revisionid']
        url = 'https://github.com/gwpy/gwsumm/tree/{}'.format(commit)
        link = markup.oneliner.a(
            'View gwsumm-{} on GitHub'.format(version),
            href=url, target='_blank')
        issues = markup.oneliner.a(
            'Report an issue', href=issues, target='_blank')

        # close page and write
        gwhtml.close_page(self.page, self.index, about=about,
                          link=link, issues=issues, content=footer)
        return
Пример #4
0
    def write_html(self, maincontent, title=None, subtitle=None, tabs=list(),
                   ifo=None, ifomap=dict(), brand=None, base=None,
                   css=None, js=None, about=None, footer=None, issues=True,
                   **inargs):
        """Write the HTML page for this `Tab`.

        Parameters
        ----------
        maincontent : `str`, `~MarkupPy.markup.page`
            simple string content, or a structured `page` of markup to
            embed as the content of the #main div.

        title : `str`, optional, default: {parent.name}
            level 1 heading for this `Tab`.

        subtitle : `str`, optional, default: {self.name}
            level 2 heading for this `Tab`.

        tabs: `list`, optional
            list of top-level tabs (with children) to populate navbar

        ifo : `str`, optional
            prefix for this IFO.

        ifomap : `dict`, optional
            `dict` of (ifo, {base url}) pairs to map to summary pages for
            other IFOs.

        brand : `str`, `~MarkupPy.markup.page`, optional
            non-menu content for navigation bar

        css : `list`, optional
            list of resolvable URLs for CSS files. See `gwsumm.html.CSS` for
            the default list.

        js : `list`, optional
            list of resolvable URLs for javascript files. See
            `gwumm.html.JS` for the default list.

        about : `str`, optional
            href for the 'About' page

        footer : `str`, `~MarkupPy.markup.page`
            user-defined content for the footer (placed below everything else)

        issues : `bool` or `str`, default: `True`
            print link to github.com issue tracker for this package

        **inargs
            other keyword arguments to pass to the
            :meth:`~Tab.build_inner_html` method
        """
        # setup directories
        outdir = os.path.split(self.index)[0]
        if outdir and not os.path.isdir(outdir):
            os.makedirs(outdir)

        # get default style and scripts
        if css is None:
            css = list(html.get_css().values())
        if js is None:
            js = list(html.get_js().values())

        # find relative base path
        if base is None:
            n = len(self.index.split(os.path.sep)) - 1
            base = os.sep.join([os.pardir] * n)
        if not base.endswith('/'):
            base += '/'

        # set default title
        if title is None:
            title = self.shorttitle.replace('/', ' | ')

        # construct navigation
        if tabs:
            navbar = str(self.html_navbar(ifo=ifo, ifomap=ifomap,
                                          tabs=tabs, brand=brand))

        # initialize page
        self.page = gwhtml.new_bootstrap_page(
            title=title, base=base, path=self.path,
            css=css, script=js, navbar=navbar)

        # add banner
        self.page.add(str(self.html_banner(
            title=title.replace('|', ':'), subtitle=subtitle)))

        # add help button
        if self.notes is not None:
            self.page.add(str(html.dialog_box(self.notes, id_='help')))
            self.page.button(
                markup.oneliner.span('?'), title='Help',
                onclick="showDialog('help')", class_='btn-float',
                id_='help-btn')

        # add #main content
        self.page.add(str(self.html_content(maincontent)))

        # format custom footer
        version = get_versions()['version']
        commit = get_versions()['full-revisionid']
        url = 'https://github.com/gwpy/gwsumm/tree/{}'.format(commit)
        link = markup.oneliner.a(
            'View gwsumm-{} on GitHub'.format(version),
            href=url, target='_blank')
        issues = markup.oneliner.a(
            'Report an issue', href=issues, target='_blank')

        # close page and write
        gwhtml.close_page(self.page, self.index, about=about,
                          link=link, issues=issues, content=footer)
        return