| {% import "macros/replacements.html" as replacements %} |
| <!DOCTYPE html> |
| <html lang="en-US"> |
| <head> |
| {%- block head -%}{%- endblock head -%} |
| {%- set page = page | default(value = section | default(value = false)) -%} |
| <meta charset="utf-8" /> |
| <title>Graphite | {{ title | safe }}</title> |
| <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, minimum-scale=1" /> |
| {% if current_path -%} |
| <meta property="og:url" content="https://graphite.rs{{ current_path | safe }}" /> |
| {%- endif %} |
| {%- set meta_description = page.extra.meta_description | default(value = meta_description | default(value = false)) -%} |
| {% if meta_description %} |
| <meta name="description" content="{{ meta_description | safe }}" /> |
| <meta property="og:description" content="{{ meta_description | safe }}" /> |
| <meta name="twitter:description" content="{{ meta_description | safe }}" /> |
| {%- endif %} |
| <meta property="og:image" content="{{ meta_image | default(value = 'https://static.graphite.rs/logos/splash.png' | safe) | safe }}" /> |
| <meta name="twitter:image" content="{{ meta_image | default(value = 'https://static.graphite.rs/logos/splash.png' | safe) | safe }}" /> |
| <meta property="og:title" content="{{ meta_title | default(value = title | safe) | safe }}" /> |
| <meta name="twitter:title" content="{{ meta_title | default(value = title | safe) | safe }}" /> |
| <meta property="og:type" content="{% if meta_article_type %}article{% else %}website{% endif %}" /> |
| <meta property="og:site_name" content="Graphite" /> |
| <meta name="twitter:site" content="@GraphiteEditor" /> |
| <meta name="twitter:card" content="summary_large_image" /> |
| {% block rss -%} |
| <link rel="alternate" type="application/rss+xml" title="RSS" href="{{ get_url(path = 'blog/rss.xml', trailing_slash = false) | safe }}" /> |
| {%- endblock %} |
|
|
| {#- ======================================================================== -#} |
| |
| {#- ON EVERY PAGE OF THE SITE: CSS AND JS TO LOAD EITHER AS A LINK OR INLINE -#} |
| {#- ======================================================================== -#} |
| {%- set global_linked_js = [] -%} |
| {%- set global_linked_css = [] -%} |
| {%- set global_js = ["/js/text-justification.js", "/js/navbar.js"] -%} |
| {%- set global_css = ["/base.css", "/fonts/common.css"] -%} |
| {%- set fonts_loaded = load_data(path="static/fonts/common.css", format="plain", required=false) -%} |
| {%- if not fonts_loaded -%} |
| {{ throw(message="------------------------------------------------------------> FONTS ARE NOT INSTALLED! Before running Zola, execute `npm run install-fonts` from the `/website` directory.") }} |
| {%- endif -%} |
|
|
| {#- RETRIEVE FROM TEMPLATES AND PAGES: CSS AND JS TO LOAD EITHER AS A LINK OR INLINE -#} |
| {#- ================================================================================ -#} |
| {%- set linked_css = page.extra.linked_css | default(value = []) | concat(with = linked_css | default(value = [])) -%} |
| {%- set linked_js = page.extra.linked_js | default(value = []) | concat(with = linked_js | default(value = [])) -%} |
| {%- set css = page.extra.css | default(value = []) | concat(with = css | default(value = [])) -%} |
| {%- set js = page.extra.js | default(value = []) | concat(with = js | default(value = [])) -%} |
|
|
| {#- COMBINE THE GLOBAL AND TEMPLATE/PAGE RESOURCE LISTS -#} |
| {#- =================================================== -#} |
| {%- set linked_css_list = linked_css | concat(with = global_linked_css) -%} |
| {%- set linked_js_list = linked_js | concat(with = global_linked_js) -%} |
| {%- set css_list = css | concat(with = global_css) -%} |
| {%- set js_list = js | concat(with = global_js) -%} |
|
|
| {#- CONDITIONALLY MAKE ONLY PROD BUILDS ACTUALLY INLINE THE CSS AND JS FOR CLEANLINESS -#} |
| {#- ================================================================================== -#} |
| {%- if get_env(name = "MODE", default = "dev") != "prod" -%} |
| {%- set linked_css_list = linked_css_list | concat(with = css_list) -%} |
| {%- set linked_js_list = linked_js_list | concat(with = js_list) -%} |
| {%- set css_list = [] -%} |
| {%- set js_list = [] -%} |
| {%- endif -%} |
| |
| {#- INSERT CSS LINKS -#} |
| {#- ================ -#} |
| {%- for path in linked_css_list %} |
| <link rel="stylesheet" href="{{ path | safe }}" /> |
| {%- endfor %} |
|
|
| {#- INSERT JS LINKS -#} |
| {#- =============== -#} |
| {%- for path in linked_js_list %} |
| <script src="{{ path | safe }}"></script> |
| {%- endfor %} |
|
|
| {#- INSERT INLINE CSS CODE -#} |
| {#- ====================== -#} |
| {%- if css_list | length > 0 %} |
| {{ "<" ~ "style>" | safe }} |
| {% for path in css_list -%} |
| {{ load_data(path = path) | safe }} |
| {% endfor -%} |
| {{ "</" ~ "style>" | safe }} |
| {%- endif %} |
|
|
| {#- INSERT INLINE JS CODE -#} |
| {#- ===================== -#} |
| {%- for path in js_list %} |
| {{ "<" ~ "script>" | safe }} |
| {{ load_data(path = path) | safe }} |
| {{ "</" ~ "script>" | safe }} |
| {%- endfor %} |
|
|
| {{- get_env(name = "INDEX_HTML_HEAD_INCLUSION", default = "") | safe }} |
| </head> |
| <body> |
| <div class="page"> |
| <header> |
| <nav> |
| <div class="row"> |
| <div class="left"> |
| <a href="/"> |
| <img src="https://static.graphite.rs/logos/graphite-logo-solid.svg" alt="Graphite Logo" /> |
| </a> |
| </div> |
| <div class="right"> |
| <a href="/learn">Learn</a> |
| <a href="/features">Features</a> |
| <a href="/about">About</a> |
| <a href="/blog">Blog</a> |
| <a href="/volunteer">Volunteer</a> |
| <a href="/donate" class="heart">Donate</a> |
| <a href="https://editor.graphite.rs" class="button arrow">Launch</a> |
| </div> |
| </div> |
| </nav> |
| <svg class="ripple" xmlns="http://www.w3.org/2000/svg"> |
| <path d="M 0,15 l 10000,0" /> |
| </svg> |
| <hr /> |
| </header> |
| <main> |
| {%- filter replace(from = "", to = replacements::blog_posts(count = 2)) -%} |
| {%- filter replace(from = "", to = replacements::text_balancer()) -%} |
| {%- block content -%}{%- endblock -%} |
| {%- endfilter -%} |
| {%- endfilter -%} |
| </main> |
| <footer> |
| <hr /> |
| <nav> |
| <a href="https://github.com/GraphiteEditor/Graphite" class="link not-uppercase">GitHub</a> |
| <a href="/license" class="link not-uppercase">License</a> |
| <a href="/logo" class="link not-uppercase">Logo</a> |
| <a href="/press" class="link not-uppercase">Press</a> |
| <a href="/contact" class="link not-uppercase">Contact</a> |
| </nav> |
| <span>Copyright © {{ now() | date(format = "%Y") }} Graphite Labs, LLC (an open source organization)</span> |
| </footer> |
| </div> |
| </body> |
| </html> |
|
|