Better SEO, OpenGraph, schema.org and clean generated code (#481)
This commit is contained in:
parent
7f532552e4
commit
b950fc3fdb
2
Gemfile
2
Gemfile
@ -15,4 +15,6 @@ group :jekyll_plugins do
|
||||
gem 'jemoji'
|
||||
gem 'unicode_utils'
|
||||
gem 'webrick'
|
||||
gem 'htmlcompressor'
|
||||
gem 'htmlbeautifier'
|
||||
end
|
||||
|
30
_config.yml
30
_config.yml
@ -13,6 +13,7 @@ footer_text: >
|
||||
Powered by <a href="http://jekyllrb.com/" target="_blank">Jekyll</a> with <a href="https://github.com/alshedivat/al-folio">al-folio</a> theme.
|
||||
Hosted by <a href="https://pages.github.com/" target="_blank">GitHub Pages</a>.
|
||||
Photos from <a href="https://unsplash.com" target="_blank">Unsplash</a>.
|
||||
keywords: jekyll, jekyll-theme, academic-website, portfolio-website # add your own keywords or leave empty
|
||||
|
||||
lang: en # the language of your site (for example: en, fr, cn, ru, etc.)
|
||||
icon: 🔥 # the emoji used as the favicon
|
||||
@ -40,10 +41,11 @@ max_width: 800px
|
||||
# TODO: add layout settings (single page vs. multi-page)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Open Graph
|
||||
# Open Graph & Schema.org
|
||||
# -----------------------------------------------------------------------------
|
||||
# Display links to the page with a preview object on social media.
|
||||
serve_og_meta: false # Include Open Graph meta tags in the HTML head
|
||||
serve_schema_org: false # Include Schema.org in the HTML head
|
||||
og_image: # The site-wide (default for all links) Open Graph preview image
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@ -72,8 +74,10 @@ rss_icon: true
|
||||
contact_note: >
|
||||
You can even add a little note about which of these is the best way to reach you.
|
||||
|
||||
google_analytics: UA-XXXXXXXXX # out your google-analytics code
|
||||
panelbear_analytics: XXXXXXXXX # panelbear analytics site ID
|
||||
google_analytics: # your google-analytics ID (format: UA-XXXXXXXXX)
|
||||
google_site_verification: # your google-site-verification ID (Google Search Console)
|
||||
bing_site_verification: # out your bing-site-verification ID (Bing Webmaster)
|
||||
panelbear_analytics: # panelbear analytics site ID (format: XXXXXXXXX)
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Blog
|
||||
@ -158,10 +162,26 @@ defaults:
|
||||
path: "assets/**/*.*"
|
||||
values:
|
||||
sitemap: false
|
||||
|
||||
# Extras
|
||||
github: [metadata]
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Jekyll optimization
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# HTML remove comments (<!-- .... -->)
|
||||
remove_HTML_comments: false
|
||||
|
||||
# HTML beautifier (_plugins/beautify.rb) / https://github.com/threedaymonk/htmlbeautifier
|
||||
beautify: false # This function has conflict with the code snippets, they can be displayed incorrectly
|
||||
|
||||
# HTML minify (_plugins/minify.rb) Thanks to: https://www.ffbit.com/blog/2021/03/17/html-minification-in-jekyll.html
|
||||
minify: false
|
||||
|
||||
# CSS/SASS minify
|
||||
sass:
|
||||
style: compressed
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Jekyll Archives
|
||||
# -----------------------------------------------------------------------------
|
||||
@ -242,6 +262,8 @@ jekyll-diagrams:
|
||||
|
||||
enable_google_analytics: false # enables google analytics
|
||||
enable_panelbear_analytics: false # enables panelbear analytics
|
||||
enable_google_verification: false # enables google site verification
|
||||
enable_bing_verification: false # enables bing site verification
|
||||
enable_mansory: true # enables automatic project cards arangement
|
||||
enable_math: true # enables math typesetting (uses MathJax)
|
||||
enable_tooltips: false # enables automatic tooltip links generated
|
||||
|
@ -1,17 +1,16 @@
|
||||
{% assign path = include.path | remove: ".jpg" | remove: ".jpeg" | remove: ".png" | remove: ".tiff" %}
|
||||
{%- assign path = include.path | remove: ".jpg" | remove: ".jpeg" | remove: ".png" | remove: ".tiff" -%}
|
||||
|
||||
<figure>
|
||||
|
||||
<picture>
|
||||
{% for i in site.imagemagick.widths %}
|
||||
<source media="(max-width: {{ i }}px)" srcset="{{ path | relative_url }}-{{ i }}.webp">
|
||||
{% endfor %}
|
||||
{% for i in site.imagemagick.widths -%}
|
||||
<source media="(max-width: {{ i }}px)" srcset="{{ path | relative_url }}-{{ i }}.webp" />
|
||||
{% endfor -%}
|
||||
|
||||
<!-- Fallback to the original file -->
|
||||
<img {% if include.class %}class="{{ include.class }}"{% endif %} src="{{ include.path | relative_url }}" {% if include.alt %}alt="{{ alt }}"{% endif %} {% if include.title %}title="{{ title }}"{% endif %} {% if include.zoomable %}data-zoomable{% endif %} />
|
||||
|
||||
</picture>
|
||||
|
||||
{% if include.caption %}<figcaption class="caption">{{ include.caption }}</figcaption>{% endif %}
|
||||
{%- if include.caption -%}<figcaption class="caption">{{ include.caption }}</figcaption>{%- endif %}
|
||||
|
||||
</figure>
|
||||
|
@ -1,27 +1,25 @@
|
||||
{% if site.footer_fixed %}
|
||||
<footer class="fixed-bottom">
|
||||
<div class="container mt-0">
|
||||
© Copyright {{ site.time | date: '%Y' }} {{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}.
|
||||
{{ site.footer_text }}
|
||||
{% if site.impressum_path %}
|
||||
<a href="{{ site.url }}{{ site.baseurl }}{{ site.impressum_path }}">Impressum</a>.
|
||||
{% endif %}
|
||||
{% if site.last_updated %}
|
||||
Last updated: {{ "now" | date: '%B %d, %Y' }}.
|
||||
{% endif %}
|
||||
</div>
|
||||
</footer>
|
||||
{% else %}
|
||||
<footer class="sticky-bottom mt-5">
|
||||
<div class="container">
|
||||
© Copyright {{ site.time | date: '%Y' }} {{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}.
|
||||
{{ site.footer_text }}
|
||||
{% if site.impressum_path %}
|
||||
<a href="{{ site.url }}{{ site.baseurl }}{{ site.impressum_path }}">Impressum</a>.
|
||||
{% endif %}
|
||||
{% if site.last_updated %}
|
||||
Last updated: {{ "now" | date: '%B %d, %Y' }}.
|
||||
{% endif %}
|
||||
</div>
|
||||
</footer>
|
||||
{% endif %}
|
||||
{% if site.footer_fixed %}
|
||||
<footer class="fixed-bottom">
|
||||
<div class="container mt-0">
|
||||
© Copyright {{ site.time | date: '%Y' }} {{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}. {{ site.footer_text }}
|
||||
{%- if site.impressum_path -%}
|
||||
<a href="{{ site.url }}{{ site.baseurl }}{{ site.impressum_path }}">Impressum</a>.
|
||||
{%- endif -%}
|
||||
{%- if site.last_updated -%}
|
||||
Last updated: {{ "now" | date: '%B %d, %Y' }}.
|
||||
{%- endif %}
|
||||
</div>
|
||||
</footer>
|
||||
{%- else -%}
|
||||
<footer class="sticky-bottom mt-5">
|
||||
<div class="container">
|
||||
© Copyright {{ site.time | date: '%Y' }} {{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}. {{ site.footer_text }}
|
||||
{%- if site.impressum_path -%}
|
||||
<a href="{{ site.url }}{{ site.baseurl }}{{ site.impressum_path }}">Impressum</a>.
|
||||
{%- endif -%}
|
||||
{%- if site.last_updated -%}
|
||||
Last updated: {{ "now" | date: '%B %d, %Y' }}.
|
||||
{%- endif %}
|
||||
</div>
|
||||
</footer>
|
||||
{%- endif %}
|
@ -1,50 +1,29 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<!-- Metadata, OpenGraph and Schema.org -->
|
||||
{% include metadata.html %}
|
||||
|
||||
<title>
|
||||
{% if site.title == "blank" %}
|
||||
{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}
|
||||
{% else %}
|
||||
{{ site.title }}
|
||||
{% endif %}
|
||||
{% if page.title != "blank" and page.url != "/" %}
|
||||
| {{ page.title }}
|
||||
{% endif %}
|
||||
</title>
|
||||
<meta name="description" content="{{ site.description }}">
|
||||
<!-- Bootstrap & MDB -->
|
||||
<link href="https://stackpath.bootstrapcdn.com/bootstrap/{{ site.bootstrap.version }}/css/bootstrap.min.css" rel="stylesheet" integrity="{{ site.bootstrap.integrity.css }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/{{ site.mdb.version }}/css/mdb.min.css" integrity="{{ site.mdb.integrity.css }}" crossorigin="anonymous" />
|
||||
|
||||
<!-- Open Graph -->
|
||||
{% if site.serve_og_meta %}
|
||||
<meta property="og:site_name" content="{{ site.description }}" />
|
||||
<meta property="og:type" content="object" />
|
||||
<meta property="og:title" content="{{ site.name }}" />
|
||||
<meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url }}" />
|
||||
<meta property="og:description" content="{{ page.title }}" />
|
||||
<meta property="og:image" content="{%- if page.og_image -%}{{ page.og_image }}{%- else -%}{{ site.og_image }}{%- endif -%}" />
|
||||
{% endif %}
|
||||
<!-- Fonts & Icons -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/{{ site.fontawesome.version }}/css/all.min.css" integrity="{{ site.fontawesome.integrity }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/{{ site.academicons.version }}/css/academicons.min.css" integrity="{{ site.academicons.integrity }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:100,300,400,500,700|Material+Icons">
|
||||
|
||||
<!-- Bootstrap & MDB -->
|
||||
<link href="https://stackpath.bootstrapcdn.com/bootstrap/{{ site.bootstrap.version }}/css/bootstrap.min.css" rel="stylesheet" integrity="{{ site.bootstrap.integrity.css }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/{{ site.mdb.version }}/css/mdb.min.css" integrity="{{ site.mdb.integrity.css }}" crossorigin="anonymous" />
|
||||
<!-- Code Syntax Highlighting -->
|
||||
<link rel="stylesheet" href="https://gitcdn.link/repo/jwarby/jekyll-pygments-themes/master/{{ site.highlight_theme }}.css" />
|
||||
|
||||
<!-- Fonts & Icons -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/{{ site.fontawesome.version }}/css/all.min.css" integrity="{{ site.fontawesome.integrity }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/{{ site.academicons.version }}/css/academicons.min.css" integrity="{{ site.academicons.integrity }}" crossorigin="anonymous">
|
||||
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:100,300,400,500,700|Material+Icons">
|
||||
<!-- Styles -->
|
||||
{% if site.icon != empty -%}
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ site.icon }}</text></svg>">
|
||||
{%- endif %}
|
||||
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
|
||||
<link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
|
||||
|
||||
<!-- Code Syntax Highlighting -->
|
||||
<link rel="stylesheet" href="https://gitcdn.link/repo/jwarby/jekyll-pygments-themes/master/{{ site.highlight_theme }}.css" />
|
||||
{%- if site.enable_darkmode %}
|
||||
|
||||
<!-- Styles -->
|
||||
{% if site.icon != empty %}
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ site.icon }}</text></svg>">
|
||||
{% endif %}
|
||||
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
|
||||
<link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
|
||||
|
||||
{% if site.enable_darkmode %}
|
||||
<!-- Dark Mode -->
|
||||
<script src="{{ '/assets/js/theme.js' | relative_url }}"></script>
|
||||
<script src="{{ '/assets/js/dark_mode.js' | relative_url }}"></script>
|
||||
{% endif %}
|
||||
<!-- Dark Mode -->
|
||||
<script src="{{ '/assets/js/theme.js' | relative_url }}"></script>
|
||||
<script src="{{ '/assets/js/dark_mode.js' | relative_url }}"></script>
|
||||
{%- endif -%}
|
||||
|
@ -1,92 +1,93 @@
|
||||
<header>
|
||||
|
||||
<!-- Nav Bar -->
|
||||
<nav id="navbar" class="navbar navbar-light navbar-expand-sm {% if site.navbar_fixed %}fixed-top{% else %}sticky-top{% endif %}">
|
||||
<div class="container">
|
||||
{% if page.title != "about" %}
|
||||
<a class="navbar-brand title font-weight-lighter" href="{{ site.baseurl | prepend: site.url }}/">
|
||||
{% if site.title == "blank" %}<span class="font-weight-bold">{{ site.first_name }}</span> {{ site.middle_name }} {{ site.last_name }}{% else %}{{ site.title }}{% endif %}
|
||||
</a>
|
||||
{% elsif site.enable_navbar_social %}
|
||||
<!-- Social Icons -->
|
||||
<div class="navbar-brand social">
|
||||
{% include social.html %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<!-- Navbar Toggle -->
|
||||
<button class="navbar-toggler collapsed ml-auto" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar top-bar"></span>
|
||||
<span class="icon-bar middle-bar"></span>
|
||||
<span class="icon-bar bottom-bar"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse text-right" id="navbarNav">
|
||||
<ul class="navbar-nav ml-auto flex-nowrap">
|
||||
<!-- About -->
|
||||
<li class="nav-item {% if page.title == 'about' %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ '/' | relative_url }}">
|
||||
about
|
||||
{% if page.title == "about" %}
|
||||
<span class="sr-only">(current)</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% if site.blog_name %}
|
||||
<!-- Blog -->
|
||||
<li class="nav-item {% if page.url contains 'blog' %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ '/blog/' | relative_url }}">
|
||||
blog
|
||||
{% if page.title == "blog" %}
|
||||
<span class="sr-only">(current)</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
<header>
|
||||
|
||||
<!-- Nav Bar -->
|
||||
<nav id="navbar" class="navbar navbar-light navbar-expand-sm {% if site.navbar_fixed %}fixed-top{% else %}sticky-top{% endif %}">
|
||||
<div class="container">
|
||||
{% if page.title != "about" -%}
|
||||
<a class="navbar-brand title font-weight-lighter" href="{{ site.baseurl | prepend: site.url }}/">
|
||||
{%- if site.title == "blank" -%}<span class="font-weight-bold">{{ site.first_name }}</span> {{ site.middle_name }} {{ site.last_name }}{%- else -%}{{ site.title }}{%- endif -%}
|
||||
</a>
|
||||
{%- elsif site.enable_navbar_social -%}
|
||||
<!-- Social Icons -->
|
||||
<div class="navbar-brand social">
|
||||
{% include social.html %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<!-- Other pages -->
|
||||
{% assign sorted_pages = site.pages | sort: "title" %}
|
||||
{% for p in sorted_pages %}
|
||||
{% if p.nav and p.autogen == nil %}
|
||||
{% if p.dropdown %}
|
||||
<li class="nav-item dropdown {% if page.title == p.title %}active{% endif %}">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{{ p.title }}
|
||||
{% if page.title == p.title %}
|
||||
<span class="sr-only">(current)</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
|
||||
{% for child in p.children %}
|
||||
{% if child.title == 'divider' %}
|
||||
<div class="dropdown-divider"></div>
|
||||
{% else %}
|
||||
<a class="dropdown-item" href="{{ child.permalink | relative_url }}">{{ child.title }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="nav-item {% if page.title == p.title %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ p.url | relative_url }}">
|
||||
{{ p.title }}
|
||||
{% if page.title == p.title %}
|
||||
<span class="sr-only">(current)</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if site.enable_darkmode %}
|
||||
<div class = "toggle-container">
|
||||
<a id = "light-toggle">
|
||||
<!-- Navbar Toggle -->
|
||||
<button class="navbar-toggler collapsed ml-auto" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar top-bar"></span>
|
||||
<span class="icon-bar middle-bar"></span>
|
||||
<span class="icon-bar bottom-bar"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse text-right" id="navbarNav">
|
||||
<ul class="navbar-nav ml-auto flex-nowrap">
|
||||
|
||||
<!-- About -->
|
||||
<li class="nav-item {% if page.title == 'about' %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ '/' | relative_url }}">about
|
||||
{%- if page.title == "about" -%}
|
||||
<span class="sr-only">(current)</span>
|
||||
{%- endif -%}
|
||||
</a>
|
||||
</li>
|
||||
{% if site.blog_name %}
|
||||
<!-- Blog -->
|
||||
<li class="nav-item {% if page.url contains 'blog' %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ '/blog/' | relative_url }}">blog
|
||||
{%- if page.title == "blog" -%}
|
||||
<span class="sr-only">(current)</span>
|
||||
{%- endif -%}
|
||||
</a>
|
||||
</li>
|
||||
{%- endif %}
|
||||
|
||||
<!-- Other pages -->
|
||||
{%- assign sorted_pages = site.pages | sort: "title" -%}
|
||||
{%- for p in sorted_pages -%}
|
||||
{%- if p.nav and p.autogen == nil -%}
|
||||
{%- if p.dropdown %}
|
||||
<li class="nav-item dropdown {% if page.title == p.title %}active{% endif %}">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ p.title }}
|
||||
{%- if page.title == p.title -%}
|
||||
<span class="sr-only">(current)</span>
|
||||
{%- endif -%}
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
|
||||
{%- for child in p.children -%}
|
||||
{%- if child.title == 'divider' %}
|
||||
<div class="dropdown-divider"></div>
|
||||
{%- else %}
|
||||
<a class="dropdown-item" href="{{ child.permalink | relative_url }}">{{ child.title }}</a>
|
||||
{%- endif -%}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</li>
|
||||
{%- else %}
|
||||
<li class="nav-item {% if page.title == p.title %}active{% endif %}">
|
||||
<a class="nav-link" href="{{ p.url | relative_url }}">{{ p.title }}
|
||||
{%- if page.title == p.title -%}
|
||||
<span class="sr-only">(current)</span>
|
||||
{%- endif -%}
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{% endfor -%}
|
||||
{%- if site.enable_darkmode %}
|
||||
|
||||
<!-- Toogle theme mode -->
|
||||
<div class = "toggle-container">
|
||||
<a id = "light-toggle">
|
||||
<i class="fas fa-moon"></i>
|
||||
<i class="fas fa-sun"></i>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
</a>
|
||||
</div>
|
||||
{%- endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
154
_includes/metadata.html
Normal file
154
_includes/metadata.html
Normal file
@ -0,0 +1,154 @@
|
||||
{% if site.enable_google_verification or site.enable_bing_verification %}
|
||||
<!-- Website verification -->
|
||||
{% if site.enable_google_verification -%}
|
||||
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
||||
{%- endif -%}
|
||||
{% if site.enable_bing_verification -%}
|
||||
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}" />
|
||||
{%- endif -%}
|
||||
{%- endif %}
|
||||
|
||||
<!-- Standard metadata -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>
|
||||
{%- if site.title == "blank" -%}
|
||||
{%- capture title -%}{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}{%- endcapture -%}
|
||||
{%- else -%}
|
||||
{%- capture title -%}{{ site.title }}{%- endcapture -%}
|
||||
{%- endif -%}
|
||||
{%- if page.title != "blank" and page.url != "/" -%}
|
||||
{{ title }} | {{ page.title }}
|
||||
{%- else -%}
|
||||
{{ title }}
|
||||
{%- endif -%}
|
||||
</title>
|
||||
<meta name="author" content="{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}" />
|
||||
<meta name="description" content="{%- if page.description -%}{{ page.description }}{%- else -%}{{ site.description }}{%- endif -%}" />
|
||||
{%- if page.keywords or site.keywords %}
|
||||
<meta name="keywords" content="{%- if page.keywords -%}{{ page.keywords }}{%- else -%}{{ site.keywords }}{%- endif -%}" />
|
||||
{%- endif %}
|
||||
|
||||
{%- if site.serve_og_meta %}
|
||||
|
||||
<!-- OpenGraph -->
|
||||
<meta property="og:site_name" content="{{ site.title }}" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="{%- if page.title -%}{{ site.title }} | {{ page.title }}{%- else -%}{{ site.title }}{%- endif -%}" />
|
||||
<meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url | remove_first: 'index.html' }}" />
|
||||
<meta property="og:description" content="{%- if page.description -%}{{ page.description }}{%- else -%}{{ site.description }}{%- endif -%}" />
|
||||
{% if page.og_image or site.og_image -%}
|
||||
<meta property="og:image" content="{%- if page.og_image -%}{{ page.og_image }}{%- else -%}{{ site.og_image }}{%- endif -%}" />
|
||||
{%- endif %}
|
||||
<meta property="og:locale" content="{{ site.lang }}" />
|
||||
|
||||
<!-- Twitter card -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="{%- if page.title -%}{{ page.title }}{%- else -%}{{ site.title }}{%- endif -%}" />
|
||||
<meta name="twitter:description" content="{%- if page.description -%}{{ page.description }}{%- else -%}{{ site.description }}{%- endif -%}" />
|
||||
{% if page.og_image or site.og_image -%}
|
||||
<meta name="twitter:image" content="{%- if page.og_image -%}{{ page.og_image }}{%- else -%}{{ site.og_image }}{%- endif -%}" />
|
||||
{%- endif %}
|
||||
{% if site.twitter_username -%}
|
||||
<meta name="twitter:site" content="@{{ site.twitter_username }}" />
|
||||
<meta name="twitter:creator" content="@{{ site.twitter_username }}" />
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{%- if site.serve_schema_org %}
|
||||
|
||||
<!-- Schema.org -->
|
||||
{%- comment -%} Social links generator for "sameAs schema" {%- endcomment %}
|
||||
{% assign sameaslinks = "" | split: "," %}
|
||||
{%- if site.orcid_id -%}
|
||||
{%- capture link -%}https://orcid.org/{{ site.orcid_id }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.scholar_userid -%}
|
||||
{%- capture link -%}https://scholar.google.com/citations?user={{ site.scholar_userid }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.publons_id -%}
|
||||
{%- capture link -%}https://publons.com/a/{{ site.publons_id }}/{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.research_gate_profile -%}
|
||||
{%- capture link -%}https://www.researchgate.net/profile/{{site.research_gate_profile}}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.github_username -%}
|
||||
{%- capture link -%}https://github.com/{{ site.github_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.linkedin_username -%}
|
||||
{%- capture link -%}https://www.linkedin.com/in/{{ site.linkedin_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.twitter_username -%}
|
||||
{%- capture link -%}https://twitter.com/{{ site.twitter_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.medium_username -%}
|
||||
{%- capture link -%}https://medium.com/@{{ site.medium_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.quora_username -%}
|
||||
{%- capture link -%}https://www.quora.com/profile/{{ site.quora_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.blogger_url -%}
|
||||
{%- capture link -%}{{ site.blogger_url }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.work_url -%}
|
||||
{%- capture link -%}{{ site.work_url }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.wikidata_id -%}
|
||||
{%- capture link -%}https://www.wikidata.org/wiki/{{ site.wikidata_id }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.strava_userid -%}
|
||||
{%- capture link -%}https://www.strava.com/athletes/{{ site.strava_userid }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.keybase_username -%}
|
||||
{%- capture link -%}https://keybase.io/{{ site.keybase_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.gitlab_username -%}
|
||||
{%- capture link -%}https://gitlab.com/{{ site.gitlab_username }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.dblp_url -%}
|
||||
{%- capture link -%}{{ site.dblp_url }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if site.stackoverflow_id -%}
|
||||
{%- capture link -%}https://stackoverflow.com/users/{{ site.stackoverflow_id }}{%- endcapture -%}
|
||||
{%- assign sameaslinks = sameaslinks | push: link -%}
|
||||
{%- endif -%}
|
||||
{%- if sameaslinks != blank -%}
|
||||
{%- assign sameaslinks = sameaslinks | split: "" -%}
|
||||
{%- endif -%}
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"author":
|
||||
{
|
||||
"@type": "Person",
|
||||
"name": "{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}"
|
||||
},
|
||||
"url": "{{ page.url | prepend: site.baseurl | prepend: site.url }}",
|
||||
"@type": "WebSite",
|
||||
"description": "{%- if page.description -%}{{ page.description }}{%- else if site.description -%}{{ site.description }}{%- endif -%}",
|
||||
"headline": "{%- if page.title -%}{{ page.title }}{%- else -%}{{ site.title }}{%- endif -%}",
|
||||
{% if sameaslinks != blank -%}
|
||||
"sameAs": {{ sameaslinks }},
|
||||
{%- endif %}
|
||||
"name": "{{ site.first_name }} {{ site.middle_name }} {{ site.last_name }}",
|
||||
"@context": "https://schema.org"
|
||||
}
|
||||
</script>
|
||||
{%- endif %}
|
@ -1,24 +1,25 @@
|
||||
<div class="news">
|
||||
<h2>news</h2>
|
||||
{% if site.news %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-borderless">
|
||||
{% assign news = site.news | reverse %}
|
||||
{% for item in news limit: site.news_limit %}
|
||||
<tr>
|
||||
<th scope="row">{{ item.date | date: "%b %-d, %Y" }}</th>
|
||||
<td>
|
||||
{% if item.inline %}
|
||||
{{ item.content | remove: '<p>' | remove: '</p>' | emojify }}
|
||||
{% else %}
|
||||
<a class="news-title" href="{{ item.url | relative_url }}">{{ item.title }}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>No news so far...</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="news">
|
||||
<h2>news</h2>
|
||||
{% if site.news -%}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-borderless">
|
||||
{%- assign news = site.news | reverse -%}
|
||||
{% for item in news limit: site.news_limit %}
|
||||
<tr>
|
||||
<th scope="row">{{ item.date | date: "%b %-d, %Y" }}</th>
|
||||
<td>
|
||||
{% if item.inline -%}
|
||||
{{ item.content | remove: '<p>' | remove: '</p>' | emojify }}
|
||||
{%- else -%}
|
||||
<a class="news-title" href="{{ item.url | relative_url }}">{{ item.title }}</a>
|
||||
{%- endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{%- endfor %}
|
||||
</table>
|
||||
</div>
|
||||
{%- else -%}
|
||||
<p>No news so far...</p>
|
||||
{%- endif %}
|
||||
</div>
|
||||
|
@ -1,17 +1,17 @@
|
||||
{% if paginator.total_pages > 1 %}
|
||||
{%- if paginator.total_pages > 1 -%}
|
||||
<nav aria-label="Blog page naviation">
|
||||
<ul class="pagination pagination-lg justify-content-center">
|
||||
<li class="page-item {% unless paginator.previous_page %}disabled{% endunless %}">
|
||||
<a class="page-link" href="{{ paginator.previous_page_path | relative_url }}" tabindex="-1" aria-disabled="{{ paginator.previous_page }}">Newer</a>
|
||||
</li>
|
||||
{% if paginator.page_trail %}
|
||||
{% for trail in paginator.page_trail %}
|
||||
{%- if paginator.page_trail -%}
|
||||
{% for trail in paginator.page_trail -%}
|
||||
<li class="page-item {% if page.url == trail.path %}active{% endif %}"><a class="page-link" href="{{ trail.path | relative_url }}" title="{{trail.title}}">{{ trail.num }}</a></li>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor -%}
|
||||
{%- endif -%}
|
||||
<li class="page-item {% unless paginator.next_page %}disabled{% endunless %}">
|
||||
<a class="page-link" href="{{ paginator.next_page_path | relative_url }}">Older</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
|
@ -1,34 +1,36 @@
|
||||
<div class="grid-item">
|
||||
{% if project.redirect %}
|
||||
<a href="{{ project.redirect }}">
|
||||
{% else %}
|
||||
<a href="{{ project.url | relative_url }}">
|
||||
{% endif %}
|
||||
<div class="card hoverable">
|
||||
{% if project.img %}
|
||||
{% include figure.html
|
||||
path=project.img
|
||||
alt="project thumbnail" %}
|
||||
{% endif %}
|
||||
<div class="card-body">
|
||||
<h2 class="card-title text-lowercase">{{ project.title }}</h2>
|
||||
<p class="card-text">{{ project.description }}</p>
|
||||
<div class="row ml-1 mr-1 p-0">
|
||||
{% if project.github %}
|
||||
<div class="github-icon">
|
||||
<div class="icon" data-toggle="tooltip" title="Code Repository">
|
||||
<a href="{{ project.github }}"><i class="fab fa-github gh-icon"></i></a>
|
||||
|
||||
<!-- _includes/projects.html -->
|
||||
<div class="grid-item">
|
||||
{% if project.redirect -%}
|
||||
<a href="{{ project.redirect }}">
|
||||
{%- else -%}
|
||||
<a href="{{ project.url | relative_url }}">
|
||||
{%- endif %}
|
||||
<div class="card hoverable">
|
||||
{%- if project.img %}
|
||||
{%- include figure.html
|
||||
path=project.img
|
||||
alt="project thumbnail" -%}
|
||||
{%- endif %}
|
||||
<div class="card-body">
|
||||
<h2 class="card-title text-lowercase">{{ project.title }}</h2>
|
||||
<p class="card-text">{{ project.description }}</p>
|
||||
<div class="row ml-1 mr-1 p-0">
|
||||
{%- if project.github -%}
|
||||
<div class="github-icon">
|
||||
<div class="icon" data-toggle="tooltip" title="Code Repository">
|
||||
<a href="{{ project.github }}"><i class="fab fa-github gh-icon"></i></a>
|
||||
</div>
|
||||
{%- if project.github_stars -%}
|
||||
<span class="stars" data-toggle="tooltip" title="GitHub Stars">
|
||||
<i class="fas fa-star"></i>
|
||||
<span id="{{ project.github_stars }}-stars"></span>
|
||||
</span>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{% if project.github_stars %}
|
||||
<span class="stars" data-toggle="tooltip" title="GitHub Stars">
|
||||
<i class="fas fa-star"></i>
|
||||
<span id="{{ project.github_stars }}-stars"></span>
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
@ -1,12 +1,12 @@
|
||||
<div class="card-item col">
|
||||
{% if project.redirect %}
|
||||
{%- if project.redirect -%}
|
||||
<a href="{{ project.redirect }}">
|
||||
{% else %}
|
||||
{%- else -%}
|
||||
<a href="{{ project.url | relative_url }}">
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
<div class="card hoverable">
|
||||
<div class="row g-0">
|
||||
{% if project.img %}
|
||||
{%- if project.img -%}
|
||||
<div class="card-img col-md-6">
|
||||
{% responsive_image_block %}
|
||||
path: {{ project.img }}
|
||||
@ -14,26 +14,26 @@
|
||||
{% endresponsive_image_block %}
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{% else %}
|
||||
{%- else -%}
|
||||
<div class="col-md-12">
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
<div class="card-body">
|
||||
<h3 class="card-title text-lowercase">{{ project.title }}</h3>
|
||||
<p class="card-text">{{ project.description }}</p>
|
||||
<div class="row ml-1 mr-1 p-0">
|
||||
{% if project.github %}
|
||||
{%- if project.github -%}
|
||||
<div class="github-icon">
|
||||
<div class="icon" data-toggle="tooltip" title="Code Repository">
|
||||
<a href="{{ project.github }}"><i class="fab fa-github gh-icon"></i></a>
|
||||
</div>
|
||||
{% if project.github_stars %}
|
||||
{%- if project.github_stars -%}
|
||||
<span class="stars" data-toggle="tooltip" title="GitHub Stars">
|
||||
<i class="fas fa-star"></i>
|
||||
<span id="{{ project.github_stars }}-stars"></span>
|
||||
</span>
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,21 +1,18 @@
|
||||
{% if site.enable_google_analytics %}
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', '{{ site.google_analytics }}');
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if site.enable_panelbear_analytics %}
|
||||
<!-- Panelbear Analytics - We respect your privacy -->
|
||||
<script async src="https://cdn.panelbear.com/analytics.js?site={{site.panelbear_analytics}}"></script>
|
||||
<script>
|
||||
{%- if site.enable_google_analytics -%}
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag() { dataLayer.push(arguments); }
|
||||
gtag('js', new Date());
|
||||
gtag('config', '{{ site.google_analytics }}');
|
||||
</script>
|
||||
{%- endif -%}
|
||||
{%- if site.enable_panelbear_analytics -%}
|
||||
<!-- Panelbear Analytics - We respect your privacy -->
|
||||
<script async src="https://cdn.panelbear.com/analytics.js?site={{site.panelbear_analytics}}"></script>
|
||||
<script>
|
||||
window.panelbear = window.panelbear || function() { (window.panelbear.q = window.panelbear.q || []).push(arguments); };
|
||||
panelbear('config', { site: '{{site.panelbear_analytics}}' });
|
||||
</script>
|
||||
{% endif %}
|
||||
</script>
|
||||
{%- endif -%}
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Bootsrap & MDB scripts -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/{{ site.popper.version }}/umd/popper.min.js" integrity="{{ site.popper.integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/{{ site.bootstrap.version }}/js/bootstrap.min.js" integrity="{{ site.bootstrap.integrity.js }}" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/{{ site.mdb.version }}/js/mdb.min.js" integrity="{{ site.mdb.integrity.js }}" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/{{ site.popper.version }}/umd/popper.min.js" integrity="{{ site.popper.integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/{{ site.bootstrap.version }}/js/bootstrap.min.js" integrity="{{ site.bootstrap.integrity.js }}" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/{{ site.mdb.version }}/js/mdb.min.js" integrity="{{ site.mdb.integrity.js }}" crossorigin="anonymous"></script>
|
||||
|
@ -1,2 +1,2 @@
|
||||
<!-- jQuery -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/{{ site.jquery.version }}/jquery.min.js" integrity="{{ site.jquery.integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/{{ site.jquery.version }}/jquery.min.js" integrity="{{ site.jquery.integrity }}" crossorigin="anonymous"></script>
|
||||
|
@ -1,6 +1,6 @@
|
||||
{% if site.enable_mansory %}
|
||||
<!-- Mansory & imagesLoaded -->
|
||||
<script defer src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
|
||||
<script defer src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
|
||||
<script defer src="{{ '/assets/js/mansory.js' | relative_url }}" type="text/javascript"></script>
|
||||
{% endif %}
|
||||
{%- if site.enable_mansory -%}
|
||||
<!-- Mansory & imagesLoaded -->
|
||||
<script defer src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
|
||||
<script defer src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
|
||||
<script defer src="{{ '/assets/js/mansory.js' | relative_url }}" type="text/javascript"></script>
|
||||
{%- endif -%}
|
||||
|
@ -1,12 +1,12 @@
|
||||
{% if site.enable_math %}
|
||||
<!-- MathJax -->
|
||||
<script type="text/javascript">
|
||||
window.MathJax = {
|
||||
tex: {
|
||||
tags: 'ams'
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script defer type="text/javascript" id="MathJax-script" src="https://cdn.jsdelivr.net/npm/mathjax@{{ site.mathjax.version }}/es5/tex-mml-chtml.js"></script>
|
||||
<script defer src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||
{% endif %}
|
||||
{%- if site.enable_math -%}
|
||||
<!-- MathJax -->
|
||||
<script type="text/javascript">
|
||||
window.MathJax = {
|
||||
tex: {
|
||||
tags: 'ams'
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script defer type="text/javascript" id="MathJax-script" src="https://cdn.jsdelivr.net/npm/mathjax@{{ site.mathjax.version }}/es5/tex-mml-chtml.js"></script>
|
||||
<script defer src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||
{%- endif %}
|
||||
|
@ -1,15 +1,14 @@
|
||||
{% if site.enable_tooltips %}
|
||||
<!-- Enable Tooltips -->
|
||||
<script type="text/javascript">
|
||||
$(function () {$('[data-toggle="tooltip"]').tooltip()})
|
||||
</script>
|
||||
{% endif %}
|
||||
<!-- Enable Tooltips -->
|
||||
<script type="text/javascript">
|
||||
$(function () {$('[data-toggle="tooltip"]').tooltip()})
|
||||
</script>
|
||||
{%- endif %}
|
||||
{%- if site.enable_medium_zoom %}
|
||||
<!-- Medium Zoom JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/medium-zoom@{{ site.medium_zoom.version }}/dist/medium-zoom.min.js" integrity="{{ site.medium_zoom.integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="{{ '/assets/js/zoom.js' | relative_url }}"></script>
|
||||
{%- endif -%}
|
||||
|
||||
{% if site.enable_medium_zoom %}
|
||||
<!-- Medium Zoom JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/medium-zoom@{{ site.medium_zoom.version }}/dist/medium-zoom.min.js" integrity="{{ site.medium_zoom.integrity }}" crossorigin="anonymous"></script>
|
||||
<script src="{{ '/assets/js/zoom.js' | relative_url }}"></script>
|
||||
{% endif %}
|
||||
|
||||
<!-- Load Common JS -->
|
||||
<script src="{{ '/assets/js/common.js' | relative_url }}"></script>
|
||||
<!-- Load Common JS -->
|
||||
<script src="{{ '/assets/js/common.js' | relative_url }}"></script>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<div class="publications">
|
||||
<h2>selected publications</h2>
|
||||
{% bibliography -f papers -q @*[selected=true]* %}
|
||||
</div>
|
||||
|
||||
<div class="publications">
|
||||
<h2>selected publications</h2>
|
||||
{% bibliography -f papers -q @*[selected=true]* %}
|
||||
</div>
|
||||
|
@ -1,20 +1,57 @@
|
||||
{% if site.email %}<a href="mailto:{{ site.email | encode_email }}" title="email"><i class="fas fa-envelope"></i></a>{% endif %}
|
||||
{% if site.orcid_id %}<a href="https://orcid.org/{{ site.orcid_id }}" title="ORCID"><i class="ai ai-orcid"></i></a>{% endif %}
|
||||
{% if site.scholar_userid %}<a href="https://scholar.google.com/citations?user={{ site.scholar_userid }}" title="Google Scholar"><i class="ai ai-google-scholar"></i></a>{% endif %}
|
||||
{% if site.publons_id %}<a href="https://publons.com/a/{{ site.publons_id }}/" title="Publons"><i class="ai ai-publons"></i></a>{% endif %}
|
||||
{% if site.research_gate_profile %}<a href="https://www.researchgate.net/profile/{{site.research_gate_profile}}/" title="ResearchGate"><i class="ai ai-researchgate"></i></a>{% endif %}
|
||||
{% if site.github_username %}<a href="https://github.com/{{ site.github_username }}" title="GitHub"><i class="fab fa-github"></i></a>{% endif %}
|
||||
{% if site.linkedin_username %}<a href="https://www.linkedin.com/in/{{ site.linkedin_username }}" title="LinkedIn"><i class="fab fa-linkedin"></i></a>{% endif %}
|
||||
{% if site.twitter_username %}<a href="https://twitter.com/{{ site.twitter_username }}" title="Twitter"><i class="fab fa-twitter"></i></a>{% endif %}
|
||||
{% if site.medium_username %}<a href="https://medium.com/@{{ site.medium_username }}" title="Medium"><i class="fab fa-medium"></i></a>{% endif %}
|
||||
{% if site.quora_username %}<a href="https://www.quora.com/profile/{{ site.quora_username }}" title="Quora"><i class="fab fa-quora"></i></a>{% endif %}
|
||||
{% if site.blogger_url %}<a href="{{ site.blogger_url }}" title="Blogger"><i class="fab fa-blogger-b"></i></a>{% endif %}
|
||||
{% if site.work_url %}<a href="{{ site.work_url }}" title="Work"><i class="fas fa-briefcase"></i></a>{% endif %}
|
||||
{% if site.wikidata_id %}<a href="https://www.wikidata.org/wiki/{{ site.wikidata_id }}" title="Wikidata"><i class="fas fa-barcode"></i></a>{% endif %}
|
||||
{% if site.strava_userid %}<a href="https://www.strava.com/athletes/{{ site.strava_userid }}" title="Strava"><i class="fab fa-strava"></i></a>{% endif %}
|
||||
{% if site.keybase_username %}<a href="https://keybase.io/{{ site.keybase_username }}" title="Keybase"><i class="fab fa-keybase"></i></a>{% endif %}
|
||||
{% if site.gitlab_username %}<a href="https://gitlab.com/{{ site.gitlab_username }}" title="GitLab"><i class="fab fa-gitlab"></i></a>{% endif %}
|
||||
{% if site.dblp_url %}<a href="{{ site.dblp_url }}" title="DBLP"><i class="ai ai-dblp"></i></a>{% endif %}
|
||||
{% if site.stackoverflow_id %}<a href="https://stackoverflow.com/users/{{ site.stackoverflow_id }}" title="Stackoverflow"><i class="fab fa-stack-overflow"></i></a>{% endif %}
|
||||
|
||||
{% if site.rss_icon %}<a href="{{ site.baseurl | prepend: site.url }}/feed.xml" title="RSS Feed"><i class="fas fa-rss-square"></i></a>{% endif %}
|
||||
{%- if site.email -%}
|
||||
<a href="mailto:{{ site.email | encode_email }}" title="email"><i class="fas fa-envelope"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.orcid_id -%}
|
||||
<a href="https://orcid.org/{{ site.orcid_id }}" title="ORCID"><i class="ai ai-orcid"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.scholar_userid -%}
|
||||
<a href="https://scholar.google.com/citations?user={{ site.scholar_userid }}" title="Google Scholar"><i class="ai ai-google-scholar"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.publons_id -%}
|
||||
<a href="https://publons.com/a/{{ site.publons_id }}/" title="Publons"><i class="ai ai-publons"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.research_gate_profile -%}
|
||||
<a href="https://www.researchgate.net/profile/{{site.research_gate_profile}}/" title="ResearchGate"><i class="ai ai-researchgate"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.github_username -%}
|
||||
<a href="https://github.com/{{ site.github_username }}" title="GitHub"><i class="fab fa-github"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.linkedin_username -%}
|
||||
<a href="https://www.linkedin.com/in/{{ site.linkedin_username }}" title="LinkedIn"><i class="fab fa-linkedin"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.twitter_username -%}
|
||||
<a href="https://twitter.com/{{ site.twitter_username }}" title="Twitter"><i class="fab fa-twitter"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.medium_username -%}
|
||||
<a href="https://medium.com/@{{ site.medium_username }}" title="Medium"><i class="fab fa-medium"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.quora_username -%}
|
||||
<a href="https://www.quora.com/profile/{{ site.quora_username }}" title="Quora"><i class="fab fa-quora"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.blogger_url -%}
|
||||
<a href="{{ site.blogger_url }}" title="Blogger"><i class="fab fa-blogger-b"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.work_url -%}
|
||||
<a href="{{ site.work_url }}" title="Work"><i class="fas fa-briefcase"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.wikidata_id -%}
|
||||
<a href="https://www.wikidata.org/wiki/{{ site.wikidata_id }}" title="Wikidata"><i class="fas fa-barcode"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.strava_userid -%}
|
||||
<a href="https://www.strava.com/athletes/{{ site.strava_userid }}" title="Strava"><i class="fab fa-strava"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.keybase_username -%}
|
||||
<a href="https://keybase.io/{{ site.keybase_username }}" title="Keybase"><i class="fab fa-keybase"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.gitlab_username -%}
|
||||
<a href="https://gitlab.com/{{ site.gitlab_username }}" title="GitLab"><i class="fab fa-gitlab"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.dblp_url -%}
|
||||
<a href="{{ site.dblp_url }}" title="DBLP"><i class="ai ai-dblp"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.stackoverflow_id -%}
|
||||
<a href="https://stackoverflow.com/users/{{ site.stackoverflow_id }}" title="Stackoverflow"><i class="fab fa-stack-overflow"></i></a>
|
||||
{% endif %}
|
||||
{%- if site.rss_icon -%}
|
||||
<a href="{{ site.baseurl | prepend: site.url }}/feed.xml" title="RSS Feed"><i class="fas fa-rss-square"></i></a>
|
||||
{% endif %}
|
@ -2,52 +2,57 @@
|
||||
layout: default
|
||||
---
|
||||
|
||||
<div class="post">
|
||||
<!-- about.html -->
|
||||
<div class="post">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">
|
||||
{% if site.title == "blank" -%}<span class="font-weight-bold">{{ site.first_name }}</span> {{ site.middle_name }} {{ site.last_name }}{%- else -%}{{ site.title }}{%- endif %}
|
||||
</h1>
|
||||
<p class="desc">{{ page.subtitle }}</p>
|
||||
</header>
|
||||
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">
|
||||
{% if site.title == "blank" %}<span class="font-weight-bold">{{ site.first_name }}</span> {{ site.middle_name }} {{ site.last_name }}{% else %}{{ site.title }}{% endif %}
|
||||
</h1>
|
||||
<p class="desc">{{ page.description }}</p>
|
||||
</header>
|
||||
<article>
|
||||
{% if page.profile -%}
|
||||
<div class="profile float-{%- if page.profile.align == 'left' -%}left{%- else -%}right{%- endif -%}">
|
||||
{%- if page.profile.image %}
|
||||
{%- assign profile_image_path = page.profile.image | prepend: 'assets/img/' -%}
|
||||
{% include figure.html
|
||||
path=profile_image_path
|
||||
class="img-fluid z-dept-1 rounded" -%}
|
||||
{% endif -%}
|
||||
{%- if page.profile.address %}
|
||||
<div class="address">
|
||||
{{ page.profile.address }}
|
||||
</div>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
<article>
|
||||
{% if page.profile %}
|
||||
<div class="profile float-{% if page.profile.align == 'left' %}left{% else %}right{% endif %}">
|
||||
{% if page.profile.image %}
|
||||
{% assign profile_image_path = page.profile.image | prepend: 'assets/img/' %}
|
||||
{% include figure.html
|
||||
path=profile_image_path
|
||||
class="img-fluid z-dept-1 rounded"%}
|
||||
{% endif %}
|
||||
{% if page.profile.address %}
|
||||
<div class="address">
|
||||
{{ page.profile.address }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="clearfix">
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
<div class="clearfix">
|
||||
{{ content }}
|
||||
</div>
|
||||
{% if page.news -%}
|
||||
<!-- News -->
|
||||
{%- include news.html %}
|
||||
{%- endif %}
|
||||
{% if page.selected_papers -%}
|
||||
<!-- Selected papers -->
|
||||
{%- include selected_papers.html %}
|
||||
{%- endif %}
|
||||
{%- if page.social %}
|
||||
<!-- Social -->
|
||||
<div class="social">
|
||||
<div class="contact-icons">
|
||||
{% include social.html %}
|
||||
</div>
|
||||
|
||||
{% if page.news %}
|
||||
{% include news.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.selected_papers %}
|
||||
{% include selected_papers.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if page.social %}
|
||||
<div class="social">
|
||||
<div class="contact-icons">
|
||||
{% include social.html %}
|
||||
</div>
|
||||
<div class="contact-note">{{ site.contact_note }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</article>
|
||||
<div class="contact-note">
|
||||
{{ site.contact_note }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{%- endif %}
|
||||
</article>
|
||||
|
||||
</div>
|
||||
|
@ -1,151 +1,158 @@
|
||||
---
|
||||
---
|
||||
<!-- _layouts/bib.html -->
|
||||
<div class="row">
|
||||
<div class="col-sm-2 abbr">
|
||||
{%- if entry.abbr -%}
|
||||
{%- if site.data.venues[entry.abbr] -%}
|
||||
<abbr class="badge"><a href="{{site.data.venues[entry.abbr].url}}">{{entry.abbr}}</a></abbr>
|
||||
{%- else -%}
|
||||
<abbr class="badge">{{entry.abbr}}</abbr>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2 abbr">
|
||||
{% if entry.abbr %}
|
||||
{% if site.data.venues[entry.abbr] %}
|
||||
<abbr class="badge"><a href="{{site.data.venues[entry.abbr].url}}">{{entry.abbr}}</a></abbr>
|
||||
{% else %}
|
||||
<abbr class="badge">{{entry.abbr}}</abbr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- Entry bib key -->
|
||||
<div id="{{entry.key}}" class="col-sm-8">
|
||||
{% if entry.type == "thesis" -%}
|
||||
{{reference}}
|
||||
{%- else %}
|
||||
<!-- Title -->
|
||||
<div class="title">{{entry.title}}</div>
|
||||
<!-- Author -->
|
||||
<div class="author">
|
||||
{%- for author in entry.author_array -%}
|
||||
{%- assign author_is_self = false -%}
|
||||
{%- if author.last == site.scholar.last_name%}
|
||||
{%- if site.scholar.first_name contains author.first -%}
|
||||
{%- assign author_is_self = true -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- assign coauthor_url = nil -%}
|
||||
{%- if site.data.coauthors[author.last] -%}
|
||||
{%- for coauthor in site.data.coauthors[author.last] -%}
|
||||
{%- if coauthor.firstname contains author.first -%}
|
||||
{%- assign coauthor_url = coauthor.url -%}
|
||||
{%- break -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if forloop.length == 1 -%}
|
||||
{%- if author_is_self %}
|
||||
<em>{{author.last}}, {{author.first}}</em>
|
||||
{%- else -%}
|
||||
{{author.last}}, {{author.first}}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{%- unless forloop.last -%}
|
||||
{% if author_is_self %}
|
||||
<em>{{author.last}}, {{author.first}}</em>,
|
||||
{%- else -%}
|
||||
{% if coauthor_url -%}
|
||||
<a href="{{coauthor_url}}">{{author.last}}, {{author.first}}</a>,
|
||||
{%- else -%}
|
||||
{{author.last}}, {{author.first}},
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{% if author_is_self -%}
|
||||
and <em>{{author.last}}, {{author.first}}</em>
|
||||
{% else -%}
|
||||
{%- if coauthor_url -%}
|
||||
and <a href="{{coauthor_url}}">{{author.last}}, {{author.first}}</a>
|
||||
{% else -%}
|
||||
and {{author.last}}, {{author.first}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endunless -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
</div>
|
||||
|
||||
<div id="{{entry.key}}" class="col-sm-8">
|
||||
{% if entry.type == "thesis" %}
|
||||
{{reference}}
|
||||
{% else %}
|
||||
<div class="title">{{entry.title}}</div>
|
||||
<div class="author">
|
||||
{% for author in entry.author_array %}
|
||||
{% assign author_is_self = false %}
|
||||
{% if author.last == site.scholar.last_name%}
|
||||
{% if site.scholar.first_name contains author.first%}
|
||||
{% assign author_is_self = true %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% assign coauthor_url = nil %}
|
||||
{% if site.data.coauthors[author.last] %}
|
||||
{% for coauthor in site.data.coauthors[author.last] %}
|
||||
{% if coauthor.firstname contains author.first %}
|
||||
{% assign coauthor_url = coauthor.url %}
|
||||
{% break %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if forloop.length == 1 %}
|
||||
{% if author_is_self %}
|
||||
<em>{{author.last}}, {{author.first}}</em>
|
||||
{% else %}
|
||||
{{author.last}}, {{author.first}}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% unless forloop.last %}
|
||||
{% if author_is_self %}
|
||||
<em>{{author.last}}, {{author.first}}</em>,
|
||||
{% else %}
|
||||
{% if coauthor_url %}
|
||||
<a href="{{coauthor_url}}">{{author.last}}, {{author.first}}</a>,
|
||||
{% else %}
|
||||
{{author.last}}, {{author.first}},
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if author_is_self %}
|
||||
and <em>{{author.last}}, {{author.first}}</em>
|
||||
{% else %}
|
||||
{% if coauthor_url %}
|
||||
and <a href="{{coauthor_url}}">{{author.last}}, {{author.first}}</a>
|
||||
{% else %}
|
||||
and {{author.last}}, {{author.first}}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<!-- Journal/Book title and date -->
|
||||
{% if entry.type == "article" -%}
|
||||
{%- capture entrytype -%}<em>{{entry.journal}}</em>{%- endcapture -%}
|
||||
{%- elsif entry.type == "inproceedings" -%}
|
||||
{%- capture entrytype -%}<em>In {{entry.booktitle}}</em> {%- endcapture -%}
|
||||
{%- endif -%}
|
||||
{%- if entry.month -%}
|
||||
{%- capture entrymonth -%}{{ " " }}{{ entry.month | capitalize }}{%- endcapture -%}
|
||||
{%- endif -%}
|
||||
{%- if entry.year -%}
|
||||
{%- capture entryyear -%}{{ " " }}{{entry.year}}{%- endcapture -%}
|
||||
{%- endif -%}
|
||||
{%- capture periodical -%}{{ entrytype }}{{ entrymonth }}{{ entryyear }}{%- endcapture -%}
|
||||
<div class="periodical">
|
||||
{{ periodical | strip }}
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
<!-- Links/Buttons -->
|
||||
<div class="links">
|
||||
{%- if entry.abstract %}
|
||||
<a class="abstract btn btn-sm z-depth-0" role="button">Abs</a>
|
||||
{%- endif %}
|
||||
{%- if entry.arxiv %}
|
||||
<a href="http://arxiv.org/abs/{{ entry.arxiv }}" class="btn btn-sm z-depth-0" role="button">arXiv</a>
|
||||
{%- endif %}
|
||||
{%- if entry.bibtex_show %}
|
||||
<a class="bibtex btn btn-sm z-depth-0" role="button">Bib</a>
|
||||
{%- endif %}
|
||||
{%- if entry.html %}
|
||||
<a href="{{ entry.html }}" class="btn btn-sm z-depth-0" role="button">HTML</a>
|
||||
{%- endif %}
|
||||
{%- if entry.pdf %}
|
||||
{% if entry.pdf contains '://' -%}
|
||||
<a href="{{ entry.pdf }}" class="btn btn-sm z-depth-0" role="button">PDF</a>
|
||||
{%- else -%}
|
||||
<a href="{{ entry.pdf | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">PDF</a>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- if entry.supp %}
|
||||
{% if entry.supp contains '://' -%}
|
||||
<a href="{{ entry.supp }}" class="btn btn-sm z-depth-0" role="button">Supp</a>
|
||||
{%- else -%}
|
||||
<a href="{{ entry.supp | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">Supp</a>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- if entry.blog %}
|
||||
<a href="{{ entry.blog }}" class="btn btn-sm z-depth-0" role="button">Blog</a>
|
||||
{%- endif %}
|
||||
{%- if entry.code %}
|
||||
<a href="{{ entry.code }}" class="btn btn-sm z-depth-0" role="button">Code</a>
|
||||
{%- endif %}
|
||||
{%- if entry.poster %}
|
||||
{% if entry.poster contains '://' -%}
|
||||
<a href="{{ entry.poster }}" class="btn btn-sm z-depth-0" role="button">Poster</a>
|
||||
{%- else -%}
|
||||
<a href="{{ entry.poster | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">Poster</a>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- if entry.slides %}
|
||||
{% if entry.slides contains '://' -%}
|
||||
<a href="{{ entry.slides }}" class="btn btn-sm z-depth-0" role="button">Slides</a>
|
||||
{%- else -%}
|
||||
<a href="{{ entry.slides | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">Slides</a>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- if entry.website %}
|
||||
<a href="{{ entry.website }}" class="btn btn-sm z-depth-0" role="button">Website</a>
|
||||
{%- endif %}
|
||||
</div>
|
||||
|
||||
{% if entry.abstract -%}
|
||||
<!-- Hidden abstract block -->
|
||||
<div class="abstract hidden">
|
||||
<p>{{ entry.abstract }}</p>
|
||||
</div>
|
||||
{%- endif -%}
|
||||
|
||||
{% if entry.bibtex_show -%}
|
||||
<!-- Hidden bibtex block -->
|
||||
<div class="bibtex hidden">
|
||||
{% highlight bibtex %}{{ entry.bibtex }}{% endhighlight %}
|
||||
</div>
|
||||
{%- endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="periodical">
|
||||
{% if entry.type == "article" %}
|
||||
<em>{{entry.journal}}</em>
|
||||
{% elsif entry.type == "inproceedings" %}
|
||||
<em>In {{entry.booktitle}}</em>
|
||||
{% endif %}
|
||||
{% if entry.month %}
|
||||
{{entry.month | capitalize}}
|
||||
{% endif %}
|
||||
{% if entry.year %}
|
||||
{{entry.year}}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="links">
|
||||
{% if entry.abstract %}
|
||||
<a class="abstract btn btn-sm z-depth-0" role="button">Abs</a>
|
||||
{% endif %}
|
||||
{% if entry.arxiv %}
|
||||
<a href="http://arxiv.org/abs/{{ entry.arxiv }}" class="btn btn-sm z-depth-0" role="button">arXiv</a>
|
||||
{% endif %}
|
||||
{% if entry.bibtex_show %}
|
||||
<a class="bibtex btn btn-sm z-depth-0" role="button">Bib</a>
|
||||
{% endif %}
|
||||
{% if entry.html %}
|
||||
<a href="{{ entry.html }}" class="btn btn-sm z-depth-0" role="button">HTML</a>
|
||||
{% endif %}
|
||||
{% if entry.pdf %}
|
||||
{% if entry.pdf contains '://' %}
|
||||
<a href="{{ entry.pdf }}" class="btn btn-sm z-depth-0" role="button">PDF</a>
|
||||
{% else %}
|
||||
<a href="{{ entry.pdf | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">PDF</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if entry.supp %}
|
||||
{% if entry.supp contains '://' %}
|
||||
<a href="{{ entry.supp }}" class="btn btn-sm z-depth-0" role="button">Supp</a>
|
||||
{% else %}
|
||||
<a href="{{ entry.supp | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">Supp</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if entry.blog %}
|
||||
<a href="{{ entry.blog }}" class="btn btn-sm z-depth-0" role="button">Blog</a>
|
||||
{% endif %}
|
||||
{% if entry.code %}
|
||||
<a href="{{ entry.code }}" class="btn btn-sm z-depth-0" role="button">Code</a>
|
||||
{% endif %}
|
||||
{% if entry.poster %}
|
||||
{% if entry.poster contains '://' %}
|
||||
<a href="{{ entry.poster }}" class="btn btn-sm z-depth-0" role="button">Poster</a>
|
||||
{% else %}
|
||||
<a href="{{ entry.poster | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">Poster</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if entry.slides %}
|
||||
{% if entry.slides contains '://' %}
|
||||
<a href="{{ entry.slides }}" class="btn btn-sm z-depth-0" role="button">Slides</a>
|
||||
{% else %}
|
||||
<a href="{{ entry.slides | prepend: '/assets/pdf/' | relative_url }}" class="btn btn-sm z-depth-0" role="button">Slides</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if entry.website %}
|
||||
<a href="{{ entry.website }}" class="btn btn-sm z-depth-0" role="button">Website</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Hidden abstract block -->
|
||||
{% if entry.abstract %}
|
||||
<div class="abstract hidden">
|
||||
<p>{{ entry.abstract }}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Hidden bibtex block -->
|
||||
{% if entry.bibtex_show %}
|
||||
<div class="bibtex hidden">
|
||||
{% highlight bibtex %}{{ entry.bibtex }}{% endhighlight %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,27 +1,30 @@
|
||||
---
|
||||
layout: parse
|
||||
---
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ site.lang }}">
|
||||
|
||||
<!-- Head -->
|
||||
<head>
|
||||
{% if page.redirect %}<meta http-equiv="refresh" content="3; url={{ site.baseurl | prepend: site.url }}/" />{% endif %}
|
||||
{% include head.html %}
|
||||
{%- if page.redirect -%}
|
||||
<meta http-equiv="refresh" content="3; url={{ site.baseurl | prepend: site.url }}/" />
|
||||
{%- endif -%}
|
||||
{% include head.html %}
|
||||
</head>
|
||||
|
||||
<body class="{% if site.navbar_fixed %}fixed-top-nav{% endif %} {% unless site.footer_fixed %}sticky-bottom-footer{% endunless %}">
|
||||
<!-- Body -->
|
||||
<body class="{%- if site.navbar_fixed -%}fixed-top-nav{%- endif -%} {% unless site.footer_fixed %}sticky-bottom-footer{% endunless %}">
|
||||
|
||||
<!-- Header -->
|
||||
|
||||
{% include header.html %}
|
||||
{%- include header.html %}
|
||||
|
||||
<!-- Content -->
|
||||
|
||||
<div class="container mt-5">
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
|
||||
{% include footer.html %}
|
||||
|
||||
{%- include footer.html %}
|
||||
</body>
|
||||
|
||||
{% include scripts/jquery.html %}
|
||||
@ -30,5 +33,4 @@
|
||||
{% include scripts/misc.html %}
|
||||
{% include scripts/mathjax.html %}
|
||||
{% include scripts/analytics.html %}
|
||||
|
||||
</html>
|
||||
|
@ -1,16 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- _layouts/distill.html -->
|
||||
<html>
|
||||
<head>
|
||||
{% include head.html %}
|
||||
{%- include head.html %}
|
||||
|
||||
{% include scripts/mathjax.html %}
|
||||
<!-- Distill js -->
|
||||
<script src="{{ '/assets/js/distillpub/template.v2.js' | relative_url }}"></script>
|
||||
<script src="{{ '/assets/js/distillpub/transforms.v2.js' | relative_url }}"></script>
|
||||
<script src="{{ '/assets/js/distillpub/overrides.js' | relative_url }}"></script>
|
||||
{% if page._styles %}
|
||||
<!-- Page/Post style -->
|
||||
<style type="text/css">
|
||||
{{ page._styles }}
|
||||
</style>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
</head>
|
||||
|
||||
<d-front-matter>
|
||||
@ -19,7 +23,7 @@
|
||||
"description": "{{ page.description }}",
|
||||
"published": "{{ page.date | date: '%B %-d, %Y' }}",
|
||||
"authors": [
|
||||
{% for author in page.authors %}
|
||||
{% for author in page.authors -%}
|
||||
{
|
||||
"author": "{{ author.name }}",
|
||||
"authorURL": "{{ author.url }}",
|
||||
@ -49,14 +53,12 @@
|
||||
}</script>
|
||||
</d-front-matter>
|
||||
|
||||
<body class="{% if site.navbar_fixed %}fixed-top-nav{% endif %} {% unless site.footer_fixed %}sticky-bottom-footer{% endunless %}">
|
||||
<body class="{%- if site.navbar_fixed -%}fixed-top-nav{%- endif -%} {%- unless site.footer_fixed -%}sticky-bottom-footer{%- endunless -%}">
|
||||
|
||||
<!-- Header -->
|
||||
|
||||
{% include header.html %}
|
||||
{%- include header.html %}
|
||||
|
||||
<!-- Content -->
|
||||
|
||||
<div class="post distill">
|
||||
|
||||
<d-title>
|
||||
@ -67,23 +69,23 @@
|
||||
<d-byline></d-byline>
|
||||
|
||||
<d-article>
|
||||
{% if page.toc %}
|
||||
{% if page.toc -%}
|
||||
<d-contents>
|
||||
<nav class="l-text figcaption">
|
||||
<h3>Contents</h3>
|
||||
{% for section in page.toc %}
|
||||
{% for section in page.toc -%}
|
||||
<div><a href="#{{ section.name | downcase | replace: ' ','-' }}">{{ section.name }}</a></div>
|
||||
{% if section.subsections %}
|
||||
{% if section.subsections -%}
|
||||
<ul>
|
||||
{% for subsection in section.subsections %}
|
||||
{% for subsection in section.subsections -%}
|
||||
<li><a href="#{{ subsection.name | downcase | replace: ' ','-' }}">{{ subsection.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
</nav>
|
||||
</d-contents>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
|
||||
{{ content }}
|
||||
</d-article>
|
||||
@ -96,8 +98,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
|
||||
{% include footer.html %}
|
||||
{%- include footer.html %}
|
||||
|
||||
</body>
|
||||
|
||||
|
@ -1,15 +1,16 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="post">
|
||||
<!-- page.html -->
|
||||
<div class="post">
|
||||
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ page.title }}</h1>
|
||||
<p class="post-description">{{ page.description }}</p>
|
||||
</header>
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ page.title }}</h1>
|
||||
<p class="post-description">{{ page.description }}</p>
|
||||
</header>
|
||||
|
||||
<article>
|
||||
{{ content }}
|
||||
</article>
|
||||
<article>
|
||||
{{ content }}
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
30
_layouts/parse.html
Normal file
30
_layouts/parse.html
Normal file
@ -0,0 +1,30 @@
|
||||
{%- if site.remove_HTML_comments -%}
|
||||
{%- assign _comments = "<!-- -->" | split: " " -%}
|
||||
{%- capture _comment_befores -%}{{ content }}{%- endcapture -%}
|
||||
{%- assign _comment_befores = _comment_befores | split: _comments.first -%}
|
||||
{%- for _comment_before in _comment_befores -%}
|
||||
{%- if forloop.first -%}
|
||||
{%- continue -%}
|
||||
{%- endif -%}
|
||||
{%- capture _comment_outside -%}
|
||||
{%- if _carry -%}
|
||||
{{ _comments.first }}
|
||||
{%- endif -%}
|
||||
{{ _comment_before }}
|
||||
{%- endcapture -%}
|
||||
{%- capture _comment -%}
|
||||
{%- unless _carry -%}
|
||||
{{ _comments.first }}
|
||||
{%- endunless -%}
|
||||
{{ _comment_outside | split: _comments.last | first }}
|
||||
{%- if _comment_outside contains _comments.last -%}
|
||||
{{ _comments.last }}
|
||||
{%- assign _carry = false -%}
|
||||
{%- else -%}
|
||||
{%- assign _carry = true -%}
|
||||
{%- endif -%}
|
||||
{%- endcapture -%}
|
||||
{%- assign content = content | remove_first: _comment -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{ content | beautify | minify }}
|
@ -1,12 +1,13 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% assign year = page.date | date: "%Y" %}
|
||||
{% assign tags = page.tags | join: "" %}
|
||||
{% assign categories = page.categories | join: "" %}
|
||||
<!-- _layouts/post.html -->
|
||||
{%- assign year = page.date | date: "%Y" -%}
|
||||
{%- assign tags = page.tags | join: "" -%}
|
||||
{%- assign categories = page.categories | join: "" -%}
|
||||
|
||||
{% if page._styles %}
|
||||
<!-- Page/Post style -->
|
||||
<style type="text/css">
|
||||
{{ page._styles }}
|
||||
</style>
|
||||
@ -16,23 +17,23 @@ layout: default
|
||||
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ page.title }}</h1>
|
||||
<p class="post-meta">{{ page.date | date: "%B %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
|
||||
<p class="post-meta">{{ page.date | date: "%B %-d, %Y" }}{%- if page.author -%} • {{ page.author }}{%- endif -%}{%- if page.meta -%} • {{ page.meta }}{%- endif -%}</p>
|
||||
<p class="post-tags">
|
||||
<a href="{{ year | prepend: '/blog/' | prepend: site.baseurl}}"> <i class="fas fa-calendar fa-sm"></i> {{ year }} </a>
|
||||
{% if tags != "" %}
|
||||
{%- if tags != "" %}
|
||||
·
|
||||
{% for tag in page.tags %}
|
||||
{% for tag in page.tags -%}
|
||||
<a href="{{ tag | prepend: '/blog/tag/' | prepend: site.baseurl}}">
|
||||
<i class="fas fa-hashtag fa-sm"></i> {{ tag }}</a>
|
||||
{% endfor %}
|
||||
{% endfor -%}
|
||||
{% endif %}
|
||||
|
||||
{% if categories != "" %}
|
||||
{%- if categories != "" %}
|
||||
·
|
||||
{% for category in page.categories %}
|
||||
{% for category in page.categories -%}
|
||||
<a href="{{ category | prepend: '/blog/category/' | prepend: site.baseurl}}">
|
||||
<i class="fas fa-tag fa-sm"></i> {{ category }}</a>
|
||||
{% endfor %}
|
||||
{% endfor -%}
|
||||
{% endif %}
|
||||
|
||||
</p>
|
||||
@ -42,7 +43,7 @@ layout: default
|
||||
{{ content }}
|
||||
</article>
|
||||
|
||||
{% if site.disqus_shortname and page.comments %}
|
||||
{%- if site.disqus_shortname and page.comments -%}
|
||||
<div id="disqus_thread"></div>
|
||||
<script type="text/javascript">
|
||||
var disqus_shortname = '{{ site.disqus_shortname }}';
|
||||
@ -55,6 +56,6 @@ layout: default
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
|
||||
</div>
|
||||
|
@ -2,7 +2,7 @@
|
||||
layout: about
|
||||
title: about
|
||||
permalink: /
|
||||
description: <a href="#">Affiliations</a>. Address. Contacts. Moto. Etc.
|
||||
subtitle: <a href='#'>Affiliations</a>. Address. Contacts. Moto. Etc.
|
||||
|
||||
profile:
|
||||
align: right
|
||||
|
@ -7,51 +7,51 @@ nav: true
|
||||
display_categories: [work, fun]
|
||||
horizontal: false
|
||||
---
|
||||
|
||||
<!-- pages/projects.md -->
|
||||
<div class="projects">
|
||||
{% if site.enable_project_categories and page.display_categories %}
|
||||
{%- if site.enable_project_categories and page.display_categories %}
|
||||
<!-- Display categorized projects -->
|
||||
{% for category in page.display_categories %}
|
||||
<h2 class="category">{{ category }}</h2>
|
||||
{% assign categorized_projects = site.projects | where: "category", category %}
|
||||
{% assign sorted_projects = categorized_projects | sort: "importance" %}
|
||||
<!-- Generate cards for each project -->
|
||||
{% if page.horizontal %}
|
||||
<div class="container">
|
||||
<div class="row row-cols-2">
|
||||
{% for project in sorted_projects %}
|
||||
{% include projects_horizontal.html %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="grid">
|
||||
{% for project in sorted_projects %}
|
||||
{% include projects.html %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% else %}
|
||||
<!-- Display projects without categories -->
|
||||
{% assign sorted_projects = site.projects | sort: "importance" %}
|
||||
<!-- Generate cards for each project -->
|
||||
{% if page.horizontal %}
|
||||
<div class="container">
|
||||
<div class="row row-cols-2">
|
||||
{% for project in sorted_projects %}
|
||||
{% include projects_horizontal.html %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="grid">
|
||||
{% for project in sorted_projects %}
|
||||
{% include projects.html %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{%- for category in page.display_categories %}
|
||||
<h2 class="category">{{ category }}</h2>
|
||||
{%- assign categorized_projects = site.projects | where: "category", category -%}
|
||||
{%- assign sorted_projects = categorized_projects | sort: "importance" %}
|
||||
<!-- Generate cards for each project -->
|
||||
{% if page.horizontal -%}
|
||||
<div class="container">
|
||||
<div class="row row-cols-2">
|
||||
{%- for project in sorted_projects -%}
|
||||
{% include projects_horizontal.html %}
|
||||
{%- endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{%- else -%}
|
||||
<div class="grid">
|
||||
{%- for project in sorted_projects -%}
|
||||
{% include projects.html %}
|
||||
{%- endfor %}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{% endfor %}
|
||||
|
||||
{%- else -%}
|
||||
<!-- Display projects without categories -->
|
||||
{%- assign sorted_projects = site.projects | sort: "importance" -%}
|
||||
<!-- Generate cards for each project -->
|
||||
{% if page.horizontal -%}
|
||||
<div class="container">
|
||||
<div class="row row-cols-2">
|
||||
{%- for project in sorted_projects -%}
|
||||
{% include projects_horizontal.html %}
|
||||
{%- endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{%- else -%}
|
||||
<div class="grid">
|
||||
{%- for project in sorted_projects -%}
|
||||
{% include projects.html %}
|
||||
{%- endfor %}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
</div>
|
||||
|
@ -6,10 +6,10 @@ description: publications by categories in reversed chronological order. generat
|
||||
years: [1956, 1950, 1935, 1905]
|
||||
nav: true
|
||||
---
|
||||
|
||||
<!-- _pages/publications.md -->
|
||||
<div class="publications">
|
||||
|
||||
{% for y in page.years %}
|
||||
{%- for y in page.years %}
|
||||
<h2 class="year">{{y}}</h2>
|
||||
{% bibliography -f papers -q @*[year={{y}}]* %}
|
||||
{% endfor %}
|
||||
|
27
_plugins/beautify.rb
Normal file
27
_plugins/beautify.rb
Normal file
@ -0,0 +1,27 @@
|
||||
require 'htmlbeautifier'
|
||||
|
||||
module Jekyll
|
||||
module StripHTML
|
||||
def beautify(content)
|
||||
if beautify_enabled?
|
||||
content = HtmlBeautifier.beautify(content)
|
||||
else
|
||||
content
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def beautify_enabled?
|
||||
config = @context.registers[:site].config
|
||||
true?(config['beautify'])
|
||||
end
|
||||
|
||||
def true?(obj)
|
||||
obj.to_s.downcase == 'true'
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_filter(Jekyll::StripHTML)
|
28
_plugins/minify.rb
Normal file
28
_plugins/minify.rb
Normal file
@ -0,0 +1,28 @@
|
||||
# Source: https://www.ffbit.com/blog/2021/03/17/html-minification-in-jekyll.html
|
||||
require 'htmlcompressor'
|
||||
|
||||
module Jekyll
|
||||
module MinifyFilter
|
||||
def minify(content)
|
||||
if minify_enabled?
|
||||
compressor = HtmlCompressor::Compressor.new
|
||||
compressor.compress content
|
||||
else
|
||||
content
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def minify_enabled?
|
||||
config = @context.registers[:site].config
|
||||
true?(config['minify'])
|
||||
end
|
||||
|
||||
def true?(obj)
|
||||
obj.to_s.downcase == 'true'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_filter(Jekyll::MinifyFilter)
|
Loading…
Reference in New Issue
Block a user