Exemplo n.º 1
0
def google_fonts(font_names, standalone=False):
    GOOGLE_API_KEY = "AIzaSyCXe6WAu7i4CYL9ee-RFNZirObwT4zJyqI"
    url = "https://www.googleapis.com/webfonts/v1/webfonts"
    https_proxy = os.environ.get("https_proxy")
    if https_proxy is not None:
        proxy_support = urllib2.ProxyHandler({"https": https_proxy})
        opener = urllib2.build_opener(proxy_support)
        urllib2.install_opener(opener)
    info = json.loads(urllib2.urlopen(url + "?key=" + GOOGLE_API_KEY).read())
    if standalone:
        css = ""
        css_template = \
"""
@font-face {{
  font-family: {name!r};
  font-style: {style};
  font-weight: {weight}; 
  src: url({file!r});
 }}
"""
        for font_name in font_names:
            for font_info in info["items"]:
                if font_info["family"] == font_name:
                    variants = font_info["variants"]
                    files = font_info["files"]
                    for variant in variants:
                        subinfo("downloading {0}".format(font_name + " " +
                                                         variant))
                        ttf_bytes = urllib.urlopen(files[variant]).read()
                        ttf_path = Path("fonts") / (font_name + " " + variant +
                                                    ".ttf")
                        ttf_file = (ARTDOC / ttf_path).open("wb")
                        ttf_file.write(ttf_bytes)
                        ttf_file.close()
                        style = "normal" if "italic" not in variant else "italic"
                        weight = re.match("[0-9]*", variant).group() or "400"
                        css += css_template.format(name=font_name,
                                                   style=style,
                                                   weight=weight,
                                                   file=str(
                                                       Path("..") / ttf_path))
                    break
        (ARTDOC / "css" / "fonts.css").open("wb").write(css)
        return [HTML.link(rel="stylesheet", href=".artdoc/css/fonts.css")]
    else:
        families = []
        for font_name in font_names:
            for font_info in info["items"]:
                if font_info["family"] == font_name:
                    family = font_name.replace(" ", "+") + ":"
                    variants = font_info["variants"]
                    family += ",".join(variants)
                    families.append(family)
                    break
        family = "|".join(families) + "&subset=latin,latin-ext"
        url = "http://fonts.googleapis.com/css?family=" + family
        return [HTML.link(rel="stylesheet", href=url)]
Exemplo n.º 2
0
def google_fonts(font_names, standalone=False):
    GOOGLE_API_KEY = "AIzaSyCXe6WAu7i4CYL9ee-RFNZirObwT4zJyqI"
    url = "https://www.googleapis.com/webfonts/v1/webfonts"
    https_proxy = os.environ.get("https_proxy")
    if https_proxy is not None:   
        proxy_support = urllib2.ProxyHandler({"https": https_proxy})
        opener = urllib2.build_opener(proxy_support)
        urllib2.install_opener(opener)
    info = json.loads(urllib2.urlopen(url + "?key=" + GOOGLE_API_KEY).read())
    if standalone:
        css = ""
        css_template = \
"""
@font-face {{
  font-family: {name!r};
  font-style: {style};
  font-weight: {weight}; 
  src: url({file!r});
 }}
"""
        for font_name in font_names:
            for font_info in info["items"]:
                if font_info["family"] == font_name:
                    variants = font_info["variants"]
                    files = font_info["files"]
                    for variant in variants:
                        subinfo("downloading {0}".format(font_name + " " + variant))
                        ttf_bytes = urllib.urlopen(files[variant]).read()
                        ttf_path = Path("fonts") / (font_name + " " + variant + ".ttf")
                        ttf_file = (ARTDOC / ttf_path).open("wb")
                        ttf_file.write(ttf_bytes)
                        ttf_file.close()
                        style = "normal" if "italic" not in variant else "italic"
                        weight = re.match("[0-9]*", variant).group() or "400"
                        css += css_template.format(name=font_name,  
                                                   style=style,
                                                   weight=weight,
                                                   file=str(Path("..") / ttf_path))
                    break
        (ARTDOC / "css" / "fonts.css").open("wb").write(css)
        return [HTML.link(rel="stylesheet", href=".artdoc/css/fonts.css")]
    else:
        families = []
        for font_name in font_names:
            for font_info in info["items"]:
                if font_info["family"] == font_name:
                    family = font_name.replace(" ", "+") + ":"
                    variants = font_info["variants"]
                    family += ",".join(variants)
                    families.append(family)
                    break
        family = "|".join(families) + "&subset=latin,latin-ext"
        url = "http://fonts.googleapis.com/css?family=" + family
        return [HTML.link(rel="stylesheet", href=url)]
Exemplo n.º 3
0
def font_awesome(url="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css", 
                 standalone_url="http://fortawesome.github.io/Font-Awesome/assets/font-awesome-4.3.0.zip",
                 standalone=False):
    if standalone:
        zip_file = tempfile.NamedTemporaryFile(suffix=".zip", delete=False)
        zip_file.write(urllib.urlopen(standalone_url).read())
        zip_filename = zip_file.name
        zip_file.close()
        zipfile.ZipFile(zip_filename).extractall(str(ARTDOC))
        os.remove(zip_filename)
        return [HTML.link(rel="stylesheet", href=".artdoc/font-awesome-4.3.0/css/font-awesome.min.css")]
    else:
        return [HTML.link(rel="stylesheet", href=url)]
Exemplo n.º 4
0
def font_awesome(
        url="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css",
        standalone_url="http://fortawesome.github.io/Font-Awesome/assets/font-awesome-4.3.0.zip",
        standalone=False):
    if standalone:
        zip_file = tempfile.NamedTemporaryFile(suffix=".zip", delete=False)
        zip_file.write(urllib.urlopen(standalone_url).read())
        zip_filename = zip_file.name
        zip_file.close()
        zipfile.ZipFile(zip_filename).extractall(str(ARTDOC))
        os.remove(zip_filename)
        return [
            HTML.link(
                rel="stylesheet",
                href=".artdoc/font-awesome-4.3.0/css/font-awesome.min.css")
        ]
    else:
        return [HTML.link(rel="stylesheet", href=url)]
Exemplo n.º 5
0
Arquivo: html.py Projeto: chfoo/wuff
 def _build_html_stylesheets(self):
     for url in self.stylesheets:
         self.elements.head.append(
             E.link(rel='stylesheet', type='text/css', href=url))
Exemplo n.º 6
0
Arquivo: html.py Projeto: chfoo/wuff
    def _build_html_head_links(self):
        '''Builds the link elements.'''
        head = self.elements.head

        for key, value in self.links.items():
            head.append(E.link(rel=key, href=value))
Exemplo n.º 7
0
def artdoc():
    return [
      HTML.link(rel="stylesheet", href=".artdoc/css/style.css"),
      HTML.script(src=".artdoc/js/main.js")
    ]
Exemplo n.º 8
0
def artdoc():
    return [
        HTML.link(rel="stylesheet", href=".artdoc/css/style.css"),
        HTML.script(src=".artdoc/js/main.js")
    ]