aboutsummaryrefslogtreecommitdiff
path: root/templates/macros/head.html
diff options
context:
space:
mode:
Diffstat (limited to 'templates/macros/head.html')
-rw-r--r--templates/macros/head.html198
1 files changed, 198 insertions, 0 deletions
diff --git a/templates/macros/head.html b/templates/macros/head.html
new file mode 100644
index 0000000..bea8f66
--- /dev/null
+++ b/templates/macros/head.html
@@ -0,0 +1,198 @@
+{%- macro stylesheet() %}
+ <link rel="stylesheet" href="{{ get_url(path=config.extra.stylesheet, trailing_slash=false, cachebust=true) | safe }}">
+{%- endmacro %}
+
+
+{%- macro resource() %}
+{%- if config.extra.fonts_load and config.extra.fonts %}{%- for i in config.extra.fonts %}
+ {%- if i.url is matching("^http[s]?://") %}
+ <link rel="preload" as="style" href="{{ i.url | safe }}">
+ {%- else %}
+ <link rel="preload" as="font" href="{{ get_url(path=i.url, trailing_slash=false, cachebust=true) }}">
+ {%- endif %}
+{%- endfor %}{%- endif %}
+
+{%- if config.build_search_index %}
+ <script defer type="text/javascript" src="{{ get_url(path=config.extra.js_search_index, trailing_slash=false, cachebust=true) | safe }}"></script>
+ <script defer type="text/javascript" src="{{ get_url(path=config.extra.js_search, trailing_slash=false, cachebust=true) | safe }}"></script>
+{%- endif %}
+
+{%- if config.generate_feed %}
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="{{ get_url(path=config.extra.rss_atom_feed, trailing_slash=false) }}">
+{%- endif %}
+
+{%- endmacro %}
+
+
+{%- macro favicons() %}
+ {%- if config.extra.favicon_theme_color %}
+ <meta name="theme-color" content="{{ config.extra.favicon_theme_color }}">
+ {%- endif %}
+
+ {%- if config.extra.favicon_ms_color %}
+ <meta name="msapplication-TileColor" content="{{ config.extra.favicon_ms_color }}">
+ {%- endif %}
+
+ {%- if config.extra.favicon_webmanifest %}
+ <link rel="manifest" href="{{ get_url(path=config.extra.favicon_webmanifest, trailing_slash=false) | safe }}">
+ {%- endif %}
+
+ {%- if config.extra.favicon_mask and config.extra.favicon_mask_color %}
+ <link rel="mask-icon" href="{{ get_url(path=config.extra.favicon_mask, trailing_slash=false) | safe }}" color="{{ config.extra.favicon_mask_color }}">
+ {%- endif %}
+
+ {%- if config.extra.favicon180 %}
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ get_url(path=config.extra.favicon180, trailing_slash=false) | safe }}" />
+ {%- endif %}
+
+ {%- if config.extra.favicon32 %}
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ get_url(path=config.extra.favicon32, trailing_slash=false) | safe }}" />
+ {%- endif %}
+
+ {%- if config.extra.favicon16 %}
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ get_url(path=config.extra.favicon16, trailing_slash=false) | safe }}" />
+ {%- endif %}
+{%- endmacro %}
+
+
+{#- type: website or article, generally setting article for blog articles -#}
+{#- page_images: using for the blog single template page -#}
+{#- page_section: the blog single template page have to pass the parameter -#}
+{#- is_404: using for the 404.html template -#}
+{%- macro seo( title="",title_addition="",description="",type="website",is_home=false,is_404=false,is_page=false,page_images="",page_section="",created_time="2021-05-01T08:08:00+08:00", updated_time="2021-05-01T08:08:08+08:00" ) %}
+{%- if is_404 -%}
+ <meta name="robots" content="noindex, follow">
+{%- else -%}
+ <meta name="robots" content="index, follow">
+ <meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
+ <meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
+{%- endif -%}
+
+{%- if current_url %}
+ {%- set page_url = current_url %}
+{%- else %}
+ {%- set page_url = get_url(path="404.html", trailing_slash=true) %}
+{%- endif %}
+ <title>{{ title ~ title_addition }}</title>
+
+{%- if config.extra.author %}
+ <meta name="author" content="{{ config.extra.author }}">
+{%- endif %}
+{%- if config.extra.facebook_publisher %}
+ <meta property="article:publisher" content="https://www.facebook.com/{{ config.extra.facebook_publisher }}">
+{%- endif %}
+ <meta name="copyright" content="{{ title }}">
+{%- if config.extra.facebook_author %}
+ <meta property="article:author" content="https://www.facebook.com/{{ config.extra.facebook_author }}">
+{%- endif %}
+{%- if page.description %}
+ <meta name="description" content="{{ page.description }}" />
+{%- else %}
+ <meta name="description" content="{{ config.description }}" />
+{%- endif %}
+ <link rel="canonical" href="{{ page_url | safe }}">
+{%- if page.extra.keywords %}
+ <meta name="keywords" content="{{ page.extra.keywords }}, {{ config.extra.keywords }}">
+{%- else %}
+ <meta name="keywords" content="{{ config.extra.keywords }}">
+{%- endif %}
+
+{#- Extra SEO START #}
+{%- if config.extra.seo | default(value=true) %}
+{%- if not is_404 %}
+
+{%- if config.extra.google %}
+ <meta name="google-site-verification" content="{{ config.extra.google | safe }}">
+{%- endif %}
+
+{%- if config.extra.bing %}
+ <meta name="msvalidate.01" content="{{ config.extra.bing | safe}}">
+{%- endif %}
+ <meta property="og:url" content="{{ page_url | safe }}">
+ <meta name="twitter:url" content="{{ page_url | safe }}">
+
+{%- if page.description %}
+ <meta property="og:description" content="{{ page.description }}">
+ <meta name="twitter:description" content="{{ page.description }}">
+{%- else %}
+ <meta property="og:description" content="{{ config.description }}">
+ <meta name="twitter:description" content="{{ config.description}}">
+{%- endif %}
+
+{%- if page.title %}
+ <meta property="og:title" content="{{ page.title }} | {{ title }}">
+ <meta name="twitter:title" content="{{ page.title }} | {{ title }}">
+{%- else %}
+ <meta property="og:title" content="{{ title }}">
+ <meta name="twitter:title" content="{{ title }}">
+{%- endif %}
+
+
+{#- SEO MEDIA START #}
+{%- if page.extra.thumbnail %}
+ <meta name="twitter:card" content="summary_large_image">
+ <meta name="twitter:image" content="{{ get_url(path=page.path ~ page.extra.thumbnail, trailing_slash=false) }}">
+ <meta property="og:image" content="{{ get_url(path=page.path ~ page.extra.thumbnail, trailing_slash=false) }}">
+
+{%- elif page.extra.static_thumbnail %}
+ <meta name="twitter:card" content="summary_large_image">
+ {%- if page.extra.static_thumbnail is matching("^http[s]?://") %}
+ <meta name="twitter:image" content="{{ page.extra.static_thumbnail }}">
+ <meta property="og:image" content="{{ page.extra.static_thumbnail }}">
+ {%- else %}
+ <meta name="twitter:image" content="{{ get_url(path=page.extra.static_thumbnail, trailing_slash=false) }}">
+ <meta property="og:image" content="{{ get_url(path=page.extra.static_thumbnail, trailing_slash=false) }}">
+ {%- endif %}
+
+{%- elif config.extra.banner %}
+ <meta name="twitter:card" content="summary_large_image">
+ <meta name="twitter:image" content="{{ get_url(path=config.extra.banner, trailing_slash=false) }}">
+ <meta property="og:image" content="{{ get_url(path=config.extra.banner, trailing_slash=false) }}">
+
+{%- else %}
+ <meta name="twitter:card" content="summary">
+
+{%- endif %}
+
+{%- if config.extra.open.audio %}
+ <meta property="og:audio" content="{{ config.extra.open.audio }}">
+{%- endif %}
+
+{%- if config.extra.open.locale %}
+ <meta property="og:locale" content="{{ config.extra.open.locale }}">
+{%- endif %}
+
+{%- if config.extra.open.videos %}
+ {%- for video in config.extra.open.videos %}
+ <meta property="og:video" content="{{ get_url(path=video) }}">
+ {%- endfor %}
+{%- endif %}
+
+{#- SEO MEDIA END #}
+ <meta property="og:site_name" content="{{ title }}">
+ <meta property="og:locale" content="en_US">
+ <meta property="og:type" content="website">
+ <meta property="og:updated_time" content="{{ now() }}">
+
+{%- if config.extra.social.twitter %}
+ <meta name="twitter:site" content="@{{ config.extra.twitter }}">
+ <meta name="twitter:creator" content="@{{ config.extra.twitter }}">
+{%- endif %}
+
+
+
+{%- endif %}
+{%- endif %}
+{#- Extra SEO END #}
+{%- endmacro %}
+
+{%- macro math() %}
+ {%- if config.extra.katex_enabled %}
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css" integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
+ <script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js" integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx" crossorigin="anonymous"></script>
+ <script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/mathtex-script-type.min.js" integrity="sha384-jiBVvJ8NGGj5n7kJaiWwWp9AjC+Yh8rhZY3GtAX8yU28azcLgoRo4oukO87g7zDT" crossorigin="anonymous"></script>
+ {%- if config.extra.katex_auto_render %}
+ <script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
+ {%- endif %}
+ {%- endif %}
+{%- endmacro %}