forked from mirrors/thatmattlove-hyperglass
97 lines
4.2 KiB
Python
97 lines
4.2 KiB
Python
from flask import render_template
|
|
import vars
|
|
import jinja2
|
|
import subprocess
|
|
import codecs
|
|
from markdown2 import Markdown
|
|
import sass
|
|
|
|
file_loader = jinja2.FileSystemLoader(".")
|
|
env = jinja2.Environment(loader=file_loader)
|
|
|
|
# Converts templates/footer.md from Markdown to HTML
|
|
md = Markdown()
|
|
footer_file = env.get_template("templates/footer.md")
|
|
footer_jinja = footer_file.render(title=vars.brand.title())
|
|
footer = footer_jinja
|
|
|
|
# Functions for rendering Jinja2 templates & importing variables
|
|
|
|
|
|
class html:
|
|
def renderTemplate(t):
|
|
if t == "index":
|
|
template = env.get_template("templates/index.html")
|
|
elif t == "429":
|
|
template = env.get_template("templates/429.html")
|
|
elif t == "415":
|
|
template = env.get_template("templates/415.html")
|
|
elif t == "test":
|
|
template = env.get_template("templates/429.html")
|
|
return template.render(
|
|
site_title=vars.brand.site_title(),
|
|
primary_asn=vars.gen.primary_asn(),
|
|
google_analytics=vars.gen.google_analytics(),
|
|
enable_recaptcha=vars.gen.enable_recaptcha(),
|
|
enable_bgp_route=vars.gen.enable_bgp_route(),
|
|
enable_bgp_community=vars.gen.enable_bgp_community(),
|
|
enable_bgp_aspath=vars.gen.enable_bgp_aspath(),
|
|
enable_ping=vars.gen.enable_ping(),
|
|
enable_traceroute=vars.gen.enable_traceroute(),
|
|
title=vars.brand.title(),
|
|
subtitle=vars.brand.subtitle(),
|
|
title_mode=vars.brand.title_mode(),
|
|
color_hero=vars.brand.color_hero(),
|
|
enable_credit=vars.brand.enable_credit(),
|
|
enable_footer=vars.brand.enable_footer(),
|
|
footer_content=md.convert(footer),
|
|
logo_path=vars.brand.logo_path(),
|
|
logo_width=vars.brand.logo_width(),
|
|
placeholder_prefix=vars.brand.placeholder_prefix(),
|
|
show_peeringdb=vars.brand.show_peeringdb(),
|
|
text_results=vars.brand.text_results(),
|
|
text_location=vars.brand.text_location(),
|
|
text_cache=vars.brand.text_cache(),
|
|
text_415_title=vars.brand.text_415_title(),
|
|
text_415_subtitle=vars.brand.text_415_subtitle(),
|
|
text_415_button=vars.brand.text_415_button(),
|
|
text_help_bgp_route=vars.brand.text_help_bgp_route(),
|
|
text_help_bgp_community=vars.brand.text_help_bgp_community(),
|
|
text_help_bgp_aspath=vars.brand.text_help_bgp_aspath(),
|
|
text_help_ping=vars.brand.text_help_ping(),
|
|
text_help_traceroute=vars.brand.text_help_traceroute(),
|
|
message_rate_limit_query=vars.gen.message_rate_limit_query(),
|
|
text_limiter_title=vars.brand.text_limiter_title(),
|
|
text_limiter_subtitle=vars.brand.text_limiter_subtitle(),
|
|
cache_timeout=vars.gen.cache_timeout(),
|
|
)
|
|
|
|
|
|
class css:
|
|
def renderTemplate():
|
|
try:
|
|
template = env.get_template("templates/hyperglass.scss")
|
|
rendered_output = template.render(
|
|
color_btn_submit=vars.brand.color_btn_submit(),
|
|
color_progressbar=vars.brand.color_progressbar(),
|
|
color_tag_loctitle=vars.brand.color_tag_loctitle(),
|
|
color_tag_cmdtitle=vars.brand.color_tag_cmdtitle(),
|
|
color_tag_cmd=vars.brand.color_tag_cmd(),
|
|
color_tag_loc=vars.brand.color_tag_loc(),
|
|
color_hero=vars.brand.color_hero(),
|
|
primary_font_url=vars.brand.primary_font_url(),
|
|
primary_font_name=vars.brand.primary_font_name(),
|
|
mono_font_url=vars.brand.mono_font_url(),
|
|
mono_font_name=vars.brand.mono_font_name(),
|
|
)
|
|
with open("static/sass/hyperglass.scss", "w") as scss_output:
|
|
scss_output.write(rendered_output)
|
|
except:
|
|
raise TypeError("Error rendering Jinja2 template.")
|
|
try:
|
|
generated_sass = sass.compile(filename="static/sass/hyperglass.scss")
|
|
with open("static/css/hyperglass.css", "w") as css_output:
|
|
css_output.write(generated_sass)
|
|
print("\n", "* Sass templates rendered to CSS files.", "\n")
|
|
except:
|
|
raise TypeError("Error rendering Sass template.")
|