mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-08-02 01:39:32 -04:00
Initial commit
This commit is contained in:
3
templates/macros/date.html
Normal file
3
templates/macros/date.html
Normal file
@ -0,0 +1,3 @@
|
||||
{% macro now_year() %}
|
||||
{{ now() | date(format="%Y") }}
|
||||
{% endmacro %}
|
97
templates/macros/head.html
Normal file
97
templates/macros/head.html
Normal file
@ -0,0 +1,97 @@
|
||||
{% import "macros/title.html" as title_macros -%}
|
||||
|
||||
{% macro head(config) %}
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
|
||||
<meta name="robots" content="noodp"/>
|
||||
|
||||
<link rel="stylesheet" href="{{ get_url(path="style.css", trailing_slash=false) | safe }}">
|
||||
|
||||
{%- if config.extra.accent_color %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="color/" ~ config.extra.accent_color ~ ".css", trailing_slash=false) | safe }}">
|
||||
{% else %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="color/blue.css", trailing_slash=false) | safe }}">
|
||||
{% endif -%}
|
||||
|
||||
{%- if config.extra.background_color %}
|
||||
{%- if config.extra.accent_color and config.extra.background_color != config.extra.accent_color %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="color/background_" ~ config.extra.background_color ~ ".css", trailing_slash=false) | safe }}">
|
||||
{% endif -%}
|
||||
{% endif -%}
|
||||
|
||||
{%- if config.extra.use_full_hack_font == "exo2" %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="font-exo2.css", trailing_slash=false) | safe }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path="font-hack.css", trailing_slash=false) | safe }}">
|
||||
{%- elif config.extra.use_full_hack_font %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="font-hack.css", trailing_slash=false) | safe }}">
|
||||
{% else %}
|
||||
<link rel="stylesheet" href="{{ get_url(path="font-hack-subset.css", trailing_slash=false) | safe }}">
|
||||
{% endif -%}
|
||||
|
||||
{% endmacro head %}
|
||||
|
||||
|
||||
{# Extra Meta tags for OpenGraph and Twitter cards #}
|
||||
{% macro open_graph(config) %}
|
||||
{%- if page %}
|
||||
{%- set permalink = page.permalink %}
|
||||
{%- set title = title_macros::title(page_title=page.title, main_title=config.title) %}
|
||||
{%- set description = page.description %}
|
||||
{%- set type = "article" %}
|
||||
{%- if page.extra and page.extra.og_image %}
|
||||
{%- if page.colocated_path %}
|
||||
{%- set og_image = page.path ~ page.extra.og_image %}
|
||||
{%- else %}
|
||||
{%- set og_image = page.extra.og_image %}
|
||||
{% endif %}
|
||||
{%- elif config.extra.default_og_image %}
|
||||
{%- set og_image = config.extra.default_og_image %}
|
||||
{%- endif %}
|
||||
{%- elif section %}
|
||||
{%- set permalink = section.permalink %}
|
||||
{%- set title = title_macros::title(page_title=section.title, main_title=config.title) %}
|
||||
{%- set description = section.description | default(value=config.description) %}
|
||||
{%- set type = "website" %}
|
||||
{%- if section.extra and section.extra.og_image %}
|
||||
{%- set og_image = section.extra.og_image %}
|
||||
{%- elif config.extra.default_og_image %}
|
||||
{%- set og_image = config.extra.default_og_image %}
|
||||
{%- endif %}
|
||||
{%- else %}
|
||||
{# For 404 and taxonomy pages #}
|
||||
{%- if taxonomy %}
|
||||
{% if term %}
|
||||
{%- set permalink = term.permalink %}
|
||||
{%- set title = title_macros::title(page_title=term.name, main_title=config.title) %}
|
||||
{%- set description = "All posts tagged " ~ term.name %}
|
||||
{% else %}
|
||||
{%- set permalink = config.base_url ~ "/" ~ taxonomy.slug %}
|
||||
{%- set title = title_macros::title(page_title=taxonomy.name, main_title=config.title) %}
|
||||
{%- set description = "All " ~ taxonomy.name %}
|
||||
{% endif %}
|
||||
{%- else %}
|
||||
{%- set permalink = config.base_url %}
|
||||
{%- set title = title_macros::title(page_title="404", main_title=config.title) %}
|
||||
{%- set description = "Page not found" %}
|
||||
{%- endif %}
|
||||
{%- set type = "website" %}
|
||||
{%- if config.extra.default_og_image %}
|
||||
{%- set og_image = config.extra.default_og_image %}
|
||||
{%- endif %}
|
||||
{%- endif -%}{# #}
|
||||
<meta name="description" content="{{ description | safe }}">
|
||||
|
||||
<meta property="og:description" content="{{ description | safe }}">
|
||||
<meta property="og:title" content="{{ title | safe }}">
|
||||
<meta property="og:type" content="{{ type }}">
|
||||
<meta property="og:url" content="{{ permalink | safe }}">
|
||||
{% if og_image %}
|
||||
<meta property="og:image" content="{{ get_url(path=og_image) }}">
|
||||
<meta name="twitter:image" content="{{ get_url(path=og_image) }}">
|
||||
{% endif %}
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:description" content="{{ description | safe }}">
|
||||
<meta name="twitter:title" content="{{ title | safe }}">
|
||||
<meta property="twitter:domain" content="{{ config.base_url | replace(from="https://", to="") }}">
|
||||
<meta property="twitter:url" content="{{ permalink | safe }}">
|
||||
{% endmacro open_graph %}
|
52
templates/macros/menu.html
Normal file
52
templates/macros/menu.html
Normal file
@ -0,0 +1,52 @@
|
||||
{% macro menu(config, current_path) %}
|
||||
{%- set current_item = false -%}
|
||||
{%- if config.extra.menu_items %}
|
||||
{%- set menu_items = config.extra.menu_items -%}
|
||||
|
||||
{%- for item in menu_items %}
|
||||
{%- set abs_item_url = item.url | replace(from="$BASE_URL", to=config.base_url) -%}
|
||||
{%- set is_current = current_url == abs_item_url ~ "/"
|
||||
or current_url is starting_with(abs_item_url)
|
||||
-%}
|
||||
{%- set is_base = abs_item_url == config.base_url
|
||||
or abs_item_url == config.base_url ~ "/"
|
||||
-%}
|
||||
|
||||
{%- if is_base %}
|
||||
{%- set_global base_item = item -%}
|
||||
{% endif -%}
|
||||
|
||||
{%- if is_current and not is_base %}
|
||||
{%- set_global current_item = item -%}
|
||||
{% endif -%}
|
||||
{% endfor -%}
|
||||
|
||||
{%- if not current_item and base_item %}
|
||||
{# Did not match any menu URLs -- assume it's a blog post #}
|
||||
{%- set current_item = base_item -%}
|
||||
{% endif -%}
|
||||
|
||||
{{ menu_macros::menu_for(config=config, current_item=current_item) }}
|
||||
{% endif -%}
|
||||
{% endmacro menu %}
|
||||
|
||||
{% macro menu_for(config, current_item) %}
|
||||
{%- if config.extra.menu_items %}
|
||||
{%- set menu_items = config.extra.menu_items -%}
|
||||
|
||||
<nav class="menu">
|
||||
<ul class="menu__inner">
|
||||
{%- for item in menu_items %}
|
||||
<li {%- if current_item and current_item == item %} class="active" {%- endif %}>
|
||||
{%- if item.newtab -%}
|
||||
<a href="{{ item.url | replace(from="$BASE_URL", to=config.base_url) | safe }}" target="_blank" rel="noopener noreferrer">{{ item.name | safe }}</a>
|
||||
{%- else -%}
|
||||
<a href="{{ item.url | replace(from="$BASE_URL", to=config.base_url) | safe }}">{{ item.name | safe }}</a>
|
||||
{%- endif -%}
|
||||
</li>
|
||||
{% endfor -%}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif -%}
|
||||
{% endmacro menu %}
|
||||
|
108
templates/macros/post.html
Normal file
108
templates/macros/post.html
Normal file
@ -0,0 +1,108 @@
|
||||
{% macro content(page, summary, show_only_description) %}
|
||||
{%- if show_only_description %}
|
||||
<div class="post-content">
|
||||
{{ page.description | safe }}
|
||||
</div>
|
||||
{% elif summary and page.summary %}
|
||||
<div class="post-content">
|
||||
{{ page.summary | safe }}
|
||||
</div>
|
||||
<div>
|
||||
<!-- ︎ -- force text style - some devices render this as emoji -->
|
||||
<a class="read-more button" href="{{ page.permalink | safe }}">
|
||||
<span class="button__text">Read more</span>
|
||||
<span class="button__icon">↩︎</span>
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
{#- full content -#}
|
||||
<div class="post-content">
|
||||
{{ page.content | safe }}
|
||||
</div>
|
||||
{%- endif %}
|
||||
{% endmacro content %}
|
||||
|
||||
|
||||
{% macro date(page) %}
|
||||
<span class="post-date">
|
||||
{%- if page.date %}
|
||||
{{ page.date | date(format="%Y-%m-%d") }}
|
||||
{% endif -%}
|
||||
</span>
|
||||
{% endmacro post_date %}
|
||||
|
||||
|
||||
{% macro earlier_later(page) %}
|
||||
{%- if config.extra.enable_post_view_navigation and page.lower or page.higher %}
|
||||
<div class="pagination">
|
||||
<div class="pagination__title">
|
||||
<span class="pagination__title-h">{{ config.extra.post_view_navigation_prompt }}</span>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="pagination__buttons">
|
||||
{%- if page.higher %}
|
||||
<span class="button previous">
|
||||
<a href="{{ page.higher.permalink | safe }}">
|
||||
<span class="button__icon">←</span>
|
||||
<span class="button__text">{{ page.higher.title }}</span>
|
||||
</a>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if page.lower %}
|
||||
<span class="button next">
|
||||
<a href="{{ page.lower.permalink | safe }}">
|
||||
<span class="button__text">{{ page.lower.title }}</span>
|
||||
<span class="button__icon">→</span>
|
||||
</a>
|
||||
</span>
|
||||
{% endif -%}
|
||||
</div>
|
||||
</div>
|
||||
{% endif -%}
|
||||
{% endmacro earlier_later %}
|
||||
|
||||
|
||||
{% macro header(page) %}
|
||||
<h1 class="post-title"><a href="{{ page.permalink | safe }}">{{ page.title }}</a></h1>
|
||||
<div class="post-meta-inline">
|
||||
{{ post_macros::date(page=page) }}
|
||||
</div>
|
||||
|
||||
{{ post_macros::tags(page=page) }}
|
||||
{% endmacro header %}
|
||||
|
||||
|
||||
{% macro list_posts(pages) %}
|
||||
<ul>
|
||||
{%- for page in pages %}
|
||||
{%- if page.draft %}
|
||||
{% continue %}
|
||||
{% endif -%}
|
||||
<li class="post-list">
|
||||
<a href="{{ page.permalink | safe }}">
|
||||
<span class="post-date">{{ page.date }}</span>
|
||||
:: <span class="post-list-title">{{ page.title }}</span></a>
|
||||
{{ post_macros::tags(page=page, short=true) }}
|
||||
</li>
|
||||
{% endfor -%}
|
||||
</ul>
|
||||
{% endmacro list_posts %}
|
||||
|
||||
|
||||
{% macro tags(page, short=false) %}
|
||||
{%- if page.taxonomies and page.taxonomies.tags %}
|
||||
<span class="post-tags-inline">
|
||||
{%- if short %}
|
||||
::
|
||||
{%- set sep = "," -%}
|
||||
{% else %}
|
||||
:: tags:
|
||||
{%- set sep = " " -%}
|
||||
{% endif -%}
|
||||
{%- for tag in page.taxonomies.tags | sort | unique(case_sensitive=false) %}
|
||||
<a class="post-tag" href="{{ get_taxonomy_url(kind='tags', name=tag) | safe }}">#{{ tag }}</a>
|
||||
{%- if not loop.last %}{{ sep | safe }}{% endif -%}
|
||||
{% endfor -%}
|
||||
</span>
|
||||
{% endif -%}
|
||||
{% endmacro tags %}
|
17
templates/macros/title.html
Normal file
17
templates/macros/title.html
Normal file
@ -0,0 +1,17 @@
|
||||
{% macro title(page_title, main_title) %}
|
||||
{%- if config.extra.page_titles and config.extra.page_titles == "combined" -%}
|
||||
{%- if page_title -%}
|
||||
{{ page_title }} | {{ main_title }}
|
||||
{%- else -%}
|
||||
{{ main_title }}
|
||||
{%- endif -%}
|
||||
{%- elif config.extra.page_titles and config.extra.page_titles == "page_only" -%}
|
||||
{%- if page_title -%}
|
||||
{{ page_title }}
|
||||
{%- else -%}
|
||||
{{ main_title }}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{{ main_title }}
|
||||
{%- endif -%}
|
||||
{% endmacro title %}
|
Reference in New Issue
Block a user