al_folio_core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +12 -0
  3. data/LICENSE +20 -0
  4. data/README.md +28 -0
  5. data/_includes/audio 2.liquid +30 -0
  6. data/_includes/audio.liquid +30 -0
  7. data/_includes/bib_search 2.liquid +4 -0
  8. data/_includes/bib_search.liquid +4 -0
  9. data/_includes/calendar 2.liquid +25 -0
  10. data/_includes/calendar.liquid +25 -0
  11. data/_includes/citation 2.liquid +26 -0
  12. data/_includes/citation.liquid +26 -0
  13. data/_includes/course_schedule 2.liquid +71 -0
  14. data/_includes/course_schedule.liquid +71 -0
  15. data/_includes/courses 2.liquid +37 -0
  16. data/_includes/courses.liquid +37 -0
  17. data/_includes/disqus 2.liquid +13 -0
  18. data/_includes/disqus.liquid +13 -0
  19. data/_includes/figure 2.liquid +86 -0
  20. data/_includes/figure.liquid +86 -0
  21. data/_includes/footer 2.liquid +34 -0
  22. data/_includes/footer.liquid +34 -0
  23. data/_includes/giscus 2.liquid +25 -0
  24. data/_includes/giscus.liquid +25 -0
  25. data/_includes/head 2.liquid +147 -0
  26. data/_includes/head.liquid +147 -0
  27. data/_includes/header 2.liquid +149 -0
  28. data/_includes/header.liquid +149 -0
  29. data/_includes/latest_posts 2.liquid +48 -0
  30. data/_includes/latest_posts.liquid +48 -0
  31. data/_includes/metadata 2.liquid +247 -0
  32. data/_includes/metadata.liquid +247 -0
  33. data/_includes/news 2.liquid +34 -0
  34. data/_includes/news.liquid +34 -0
  35. data/_includes/newsletter 2.liquid +68 -0
  36. data/_includes/newsletter.liquid +68 -0
  37. data/_includes/pagination 2.liquid +21 -0
  38. data/_includes/pagination.liquid +21 -0
  39. data/_includes/plugins/al_analytics_scripts 2.liquid +4 -0
  40. data/_includes/plugins/al_analytics_scripts.liquid +4 -0
  41. data/_includes/plugins/al_charts_scripts 2.liquid +4 -0
  42. data/_includes/plugins/al_charts_scripts.liquid +4 -0
  43. data/_includes/plugins/al_comments 2.liquid +4 -0
  44. data/_includes/plugins/al_comments.liquid +4 -0
  45. data/_includes/plugins/al_cookie_scripts 2.liquid +4 -0
  46. data/_includes/plugins/al_cookie_scripts.liquid +4 -0
  47. data/_includes/plugins/al_cookie_styles 2.liquid +4 -0
  48. data/_includes/plugins/al_cookie_styles.liquid +4 -0
  49. data/_includes/plugins/al_img_tools_scripts 2.liquid +4 -0
  50. data/_includes/plugins/al_img_tools_scripts.liquid +4 -0
  51. data/_includes/plugins/al_img_tools_styles 2.liquid +4 -0
  52. data/_includes/plugins/al_img_tools_styles.liquid +4 -0
  53. data/_includes/plugins/al_math_scripts 2.liquid +4 -0
  54. data/_includes/plugins/al_math_scripts.liquid +4 -0
  55. data/_includes/plugins/al_math_styles 2.liquid +4 -0
  56. data/_includes/plugins/al_math_styles.liquid +4 -0
  57. data/_includes/plugins/al_newsletter_form_center 2.liquid +4 -0
  58. data/_includes/plugins/al_newsletter_form_center.liquid +4 -0
  59. data/_includes/plugins/al_newsletter_form_center_margin 2.liquid +1 -0
  60. data/_includes/plugins/al_newsletter_form_center_margin.liquid +1 -0
  61. data/_includes/plugins/al_newsletter_form_left 2.liquid +1 -0
  62. data/_includes/plugins/al_newsletter_form_left.liquid +1 -0
  63. data/_includes/plugins/al_newsletter_scripts 2.liquid +1 -0
  64. data/_includes/plugins/al_newsletter_scripts.liquid +1 -0
  65. data/_includes/plugins/al_search_assets 2.liquid +5 -0
  66. data/_includes/plugins/al_search_assets.liquid +5 -0
  67. data/_includes/projects 2.liquid +35 -0
  68. data/_includes/projects.liquid +35 -0
  69. data/_includes/projects_horizontal 2.liquid +34 -0
  70. data/_includes/projects_horizontal.liquid +34 -0
  71. data/_includes/related_posts 2.liquid +40 -0
  72. data/_includes/related_posts.liquid +40 -0
  73. data/_includes/repository/repo 2.liquid +47 -0
  74. data/_includes/repository/repo.liquid +47 -0
  75. data/_includes/repository/repo_trophies 2.liquid +42 -0
  76. data/_includes/repository/repo_trophies.liquid +42 -0
  77. data/_includes/repository/repo_user 2.liquid +34 -0
  78. data/_includes/repository/repo_user.liquid +34 -0
  79. data/_includes/scripts 2.liquid +123 -0
  80. data/_includes/scripts.liquid +123 -0
  81. data/_includes/selected_papers 2.liquid +3 -0
  82. data/_includes/selected_papers.liquid +3 -0
  83. data/_includes/video 2.liquid +97 -0
  84. data/_includes/video.liquid +97 -0
  85. data/_layouts/about 2.liquid +84 -0
  86. data/_layouts/about.liquid +84 -0
  87. data/_layouts/archive 2.liquid +38 -0
  88. data/_layouts/archive.liquid +38 -0
  89. data/_layouts/bib 2.liquid +395 -0
  90. data/_layouts/bib.liquid +395 -0
  91. data/_layouts/book-review 2.liquid +265 -0
  92. data/_layouts/book-review.liquid +265 -0
  93. data/_layouts/book-shelf 2.liquid +49 -0
  94. data/_layouts/book-shelf.liquid +49 -0
  95. data/_layouts/course 2.liquid +75 -0
  96. data/_layouts/course.liquid +75 -0
  97. data/_layouts/cv 2.liquid +18 -0
  98. data/_layouts/cv.liquid +18 -0
  99. data/_layouts/default 2.liquid +56 -0
  100. data/_layouts/default.liquid +56 -0
  101. data/_layouts/distill 2.liquid +21 -0
  102. data/_layouts/distill.liquid +21 -0
  103. data/_layouts/none 2.liquid +1 -0
  104. data/_layouts/none.liquid +1 -0
  105. data/_layouts/page 2.liquid +31 -0
  106. data/_layouts/page.liquid +31 -0
  107. data/_layouts/post 2.liquid +94 -0
  108. data/_layouts/post.liquid +94 -0
  109. data/_layouts/profiles 2.liquid +36 -0
  110. data/_layouts/profiles.liquid +36 -0
  111. data/_sass/_blog 2.scss +204 -0
  112. data/_sass/_blog.scss +204 -0
  113. data/_sass/_components 2.scss +261 -0
  114. data/_sass/_components.scss +261 -0
  115. data/_sass/_footer 2.scss +35 -0
  116. data/_sass/_footer.scss +35 -0
  117. data/_sass/_layout 2.scss +58 -0
  118. data/_sass/_layout.scss +58 -0
  119. data/_sass/_navbar 2.scss +190 -0
  120. data/_sass/_navbar.scss +190 -0
  121. data/_sass/_publications 2.scss +188 -0
  122. data/_sass/_publications.scss +188 -0
  123. data/_sass/_tabs 2.scss +48 -0
  124. data/_sass/_tabs.scss +48 -0
  125. data/_sass/_teachings 2.scss +77 -0
  126. data/_sass/_teachings.scss +77 -0
  127. data/_sass/_themes 2.scss +208 -0
  128. data/_sass/_themes.scss +208 -0
  129. data/_sass/_typograms 2.scss +132 -0
  130. data/_sass/_typograms.scss +132 -0
  131. data/_sass/_typography 2.scss +136 -0
  132. data/_sass/_typography.scss +136 -0
  133. data/_sass/_utilities 2.scss +607 -0
  134. data/_sass/_utilities.scss +607 -0
  135. data/_sass/_variables 2.scss +52 -0
  136. data/_sass/_variables.scss +52 -0
  137. data/_sass/font-awesome/_animated 2.scss +150 -0
  138. data/_sass/font-awesome/_animated.scss +150 -0
  139. data/_sass/font-awesome/_bordered 2.scss +24 -0
  140. data/_sass/font-awesome/_bordered.scss +24 -0
  141. data/_sass/font-awesome/_core 2.scss +29 -0
  142. data/_sass/font-awesome/_core.scss +29 -0
  143. data/_sass/font-awesome/_fa 2.scss +3 -0
  144. data/_sass/font-awesome/_fa.scss +3 -0
  145. data/_sass/font-awesome/_functions 2.scss +8 -0
  146. data/_sass/font-awesome/_functions.scss +8 -0
  147. data/_sass/font-awesome/_icons 2.scss +15 -0
  148. data/_sass/font-awesome/_icons.scss +15 -0
  149. data/_sass/font-awesome/_list 2.scss +19 -0
  150. data/_sass/font-awesome/_list.scss +19 -0
  151. data/_sass/font-awesome/_mixins 2.scss +28 -0
  152. data/_sass/font-awesome/_mixins.scss +28 -0
  153. data/_sass/font-awesome/_pulled 2.scss +15 -0
  154. data/_sass/font-awesome/_pulled.scss +15 -0
  155. data/_sass/font-awesome/_rotated-flipped 2.scss +32 -0
  156. data/_sass/font-awesome/_rotated-flipped.scss +32 -0
  157. data/_sass/font-awesome/_shims 2.scss +2193 -0
  158. data/_sass/font-awesome/_shims.scss +2193 -0
  159. data/_sass/font-awesome/_sizing 2.scss +18 -0
  160. data/_sass/font-awesome/_sizing.scss +18 -0
  161. data/_sass/font-awesome/_stacked 2.scss +33 -0
  162. data/_sass/font-awesome/_stacked.scss +33 -0
  163. data/_sass/font-awesome/_variables 2.scss +5130 -0
  164. data/_sass/font-awesome/_variables.scss +5130 -0
  165. data/_sass/font-awesome/_widths 2.scss +12 -0
  166. data/_sass/font-awesome/_widths.scss +12 -0
  167. data/_sass/font-awesome/brands 2.scss +45 -0
  168. data/_sass/font-awesome/brands.scss +45 -0
  169. data/_sass/font-awesome/fontawesome 2.scss +18 -0
  170. data/_sass/font-awesome/fontawesome.scss +18 -0
  171. data/_sass/font-awesome/regular 2.scss +51 -0
  172. data/_sass/font-awesome/regular.scss +51 -0
  173. data/_sass/font-awesome/solid 2.scss +51 -0
  174. data/_sass/font-awesome/solid.scss +51 -0
  175. data/_sass/font-awesome/v4-shims 2.scss +11 -0
  176. data/_sass/font-awesome/v4-shims.scss +11 -0
  177. data/_scripts/giscus-setup 2.js +48 -0
  178. data/_scripts/giscus-setup.js +48 -0
  179. data/assets/css/academicons.min 2.css +1 -0
  180. data/assets/css/academicons.min.css +1 -0
  181. data/assets/css/jekyll-pygments-themes-github 2.css +209 -0
  182. data/assets/css/jekyll-pygments-themes-github.css +209 -0
  183. data/assets/css/jekyll-pygments-themes-native 2.css +232 -0
  184. data/assets/css/jekyll-pygments-themes-native.css +232 -0
  185. data/assets/css/jupyter 2.css +383 -0
  186. data/assets/css/jupyter-grade3 2.css +3758 -0
  187. data/assets/css/jupyter-grade3.css +3758 -0
  188. data/assets/css/jupyter-monokai 2.css +3758 -0
  189. data/assets/css/jupyter-monokai.css +3758 -0
  190. data/assets/css/jupyter.css +383 -0
  191. data/assets/css/main 2.scss +37 -0
  192. data/assets/css/main.scss +37 -0
  193. data/assets/css/scholar-icons 2.css +386 -0
  194. data/assets/css/scholar-icons.css +386 -0
  195. data/assets/css/tailwind 2.css +2 -0
  196. data/assets/css/tailwind.css +2 -0
  197. data/assets/js/bibsearch 2.js +70 -0
  198. data/assets/js/bibsearch.js +70 -0
  199. data/assets/js/calendar-setup 2.js +16 -0
  200. data/assets/js/calendar-setup.js +16 -0
  201. data/assets/js/common 2.js +137 -0
  202. data/assets/js/common.js +137 -0
  203. data/assets/js/copy_code 2.js +56 -0
  204. data/assets/js/copy_code.js +56 -0
  205. data/assets/js/highlight-search-term 2.js +110 -0
  206. data/assets/js/highlight-search-term.js +110 -0
  207. data/assets/js/jupyter_new_tab 2.js +18 -0
  208. data/assets/js/jupyter_new_tab.js +18 -0
  209. data/assets/js/masonry 2.js +12 -0
  210. data/assets/js/masonry.js +12 -0
  211. data/assets/js/nav-toggle 2.js +102 -0
  212. data/assets/js/nav-toggle.js +102 -0
  213. data/assets/js/no_defer 2.js +31 -0
  214. data/assets/js/no_defer.js +31 -0
  215. data/assets/js/progress-bar 2.js +69 -0
  216. data/assets/js/progress-bar.js +69 -0
  217. data/assets/js/search/hotkeys-js/hotkeys.esm.min 2.js +18 -0
  218. data/assets/js/search/hotkeys-js/hotkeys.esm.min.js +18 -0
  219. data/assets/js/search/lit/decorators.min 2.js +7 -0
  220. data/assets/js/search/lit/decorators.min.js +7 -0
  221. data/assets/js/search/lit/directives/class-map.min.js +7 -0
  222. data/assets/js/search/lit/directives/join.min.js +7 -0
  223. data/assets/js/search/lit/directives/live.min.js +7 -0
  224. data/assets/js/search/lit/directives/ref.min.js +7 -0
  225. data/assets/js/search/lit/directives/repeat.min.js +7 -0
  226. data/assets/js/search/lit/directives/unsafe-html.min.js +7 -0
  227. data/assets/js/search/lit/index.min 2.js +7 -0
  228. data/assets/js/search/lit/index.min.js +7 -0
  229. data/assets/js/search/lit-element/lit-element.min 2.js +12 -0
  230. data/assets/js/search/lit-element/lit-element.min.js +12 -0
  231. data/assets/js/search/lit-html/directives/class-map.min.js +22 -0
  232. data/assets/js/search/lit-html/directives/join.min.js +12 -0
  233. data/assets/js/search/lit-html/directives/live.min.js +28 -0
  234. data/assets/js/search/lit-html/directives/ref.min.js +32 -0
  235. data/assets/js/search/lit-html/directives/repeat.min.js +27 -0
  236. data/assets/js/search/lit-html/directives/unsafe-html.min.js +22 -0
  237. data/assets/js/search/lit-html/is-server.min 2.js +12 -0
  238. data/assets/js/search/lit-html/is-server.min.js +12 -0
  239. data/assets/js/search/lit-html/lit-html.min 2.js +12 -0
  240. data/assets/js/search/lit-html/lit-html.min.js +12 -0
  241. data/assets/js/search/reactive-element/decorators/custom-element.min.js +12 -0
  242. data/assets/js/search/reactive-element/decorators/event-options.min.js +12 -0
  243. data/assets/js/search/reactive-element/decorators/property.min.js +22 -0
  244. data/assets/js/search/reactive-element/decorators/query-all.min.js +17 -0
  245. data/assets/js/search/reactive-element/decorators/query-assigned-elements.min.js +17 -0
  246. data/assets/js/search/reactive-element/decorators/query-assigned-nodes.min.js +17 -0
  247. data/assets/js/search/reactive-element/decorators/query-async.min.js +17 -0
  248. data/assets/js/search/reactive-element/decorators/query.min.js +17 -0
  249. data/assets/js/search/reactive-element/decorators/state.min.js +27 -0
  250. data/assets/js/search/reactive-element/reactive-element.min 2.js +17 -0
  251. data/assets/js/search/reactive-element/reactive-element.min.js +17 -0
  252. data/assets/js/tabs.min 2.js +5 -0
  253. data/assets/js/tabs.min.js +5 -0
  254. data/assets/js/theme 2.js +329 -0
  255. data/assets/js/theme.js +329 -0
  256. data/assets/js/tooltips-setup 2.js +116 -0
  257. data/assets/js/tooltips-setup.js +116 -0
  258. data/assets/js/typograms 2.js +1341 -0
  259. data/assets/js/typograms.js +1341 -0
  260. data/assets/js/vanilla-back-to-top.min 2.js +1 -0
  261. data/assets/js/vanilla-back-to-top.min.js +1 -0
  262. data/assets/tailwind/app 2.css +855 -0
  263. data/assets/tailwind/app.css +855 -0
  264. data/assets/tailwind/bootstrap-compat.input 2.css +54 -0
  265. data/assets/tailwind/bootstrap-compat.input.css +54 -0
  266. data/assets/tailwind/input 2.css +2 -0
  267. data/assets/tailwind/input.css +2 -0
  268. data/lib/al_folio_core/version.rb +5 -0
  269. data/lib/al_folio_core.rb +282 -0
  270. data/migrations/1.0.0_to_1.1.0 2.yml +26 -0
  271. data/migrations/1.0.0_to_1.1.0.yml +26 -0
  272. data/migrations/1.1.0_to_1.2.0 2.yml +17 -0
  273. data/migrations/1.1.0_to_1.2.0.yml +17 -0
  274. metadata +393 -0
@@ -0,0 +1,86 @@
1
+ {% assign img_path = include.path | remove: '.jpg' | remove: '.jpeg' | remove: '.png' | remove: '.tiff' | remove: '.gif' %}
2
+ {% assign parts = include.path | split: '.' %}
3
+ {% assign ext = parts.last %}
4
+
5
+ <figure
6
+ {% if include.slot %}
7
+ slot="{{ include.slot }}"
8
+ {% endif %}
9
+ >
10
+ <picture>
11
+ <!-- Auto scaling with imagemagick -->
12
+ <!--
13
+ See https://www.debugbear.com/blog/responsive-images#w-descriptors-and-the-sizes-attribute and
14
+ https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images for info on defining 'sizes' for responsive images
15
+ -->
16
+ {% if site.imagemagick.enabled %}
17
+ {% unless include.avoid_scaling %}
18
+ <source
19
+ class="responsive-img-srcset"
20
+ {% if ext == 'gif' or ext == 'jpeg' or ext == 'jpg' or ext == 'png' or ext == 'tiff' %}
21
+ srcset="{% for i in site.imagemagick.widths %}{{ img_path | relative_url }}-{{ i }}.webp {{ i }}w,{% endfor %}"
22
+ type="image/webp"
23
+ {% else %}
24
+ srcset="{{ include.path | relative_url }}"
25
+ {% endif %}
26
+ {% if include.sizes %}
27
+ sizes="{{ include.sizes }}"
28
+ {% else %}
29
+ sizes="95vw"
30
+ {% endif %}
31
+ >
32
+ {% endunless %}
33
+ {% endif %}
34
+ <img
35
+ src="{% if include.url %}{{ include.url }}{% elsif include.cache_bust %}{{ include.path | relative_url | bust_file_cache }}{% else %}{{ include.path | relative_url }}{% endif %}"
36
+ {% if include.class %}
37
+ class="{{ include.class }}"
38
+ {% endif %}
39
+ {% if include.width %}
40
+ width="{{ include.width }}"
41
+ {% else %}
42
+ width="100%"
43
+ {% endif %}
44
+ {% if include.height %}
45
+ height="{{ include.height }}"
46
+ {% else %}
47
+ height="auto"
48
+ {% endif %}
49
+ {% if include['min-width'] or include['min-height'] or include['max-width'] or include['max-height'] %}
50
+ style="
51
+ {% if include['min-width'] %}
52
+ min-width: {{ include.min-width }};
53
+ {% endif %}
54
+ {% if include['min-height'] %}
55
+ min-height: {{ include.min-height }};
56
+ {% endif %}
57
+ {% if include['max-width'] %}
58
+ max-width: {{ include.max-width }};
59
+ {% endif %}
60
+ {% if include['max-height'] %}
61
+ max-height: {{ include.max-height }};
62
+ {% endif %}
63
+ "
64
+ {% endif %}
65
+ {% if include.alt %}
66
+ alt="{{ include.alt }}"
67
+ {% endif %}
68
+ {% if include.title %}
69
+ title="{{ include.title }}"
70
+ {% endif %}
71
+ {% if include.zoomable %}
72
+ data-zoomable
73
+ {% endif %}
74
+ {% if include.loading %}
75
+ loading="{{ include.loading }}"
76
+ {% elsif site.lazy_loading_images %}
77
+ loading="lazy"
78
+ {% endif %}
79
+ onerror="this.onerror=null; $('.responsive-img-srcset').remove();"
80
+ >
81
+ </picture>
82
+
83
+ {% if include.caption %}
84
+ <figcaption class="caption">{{ include.caption }}</figcaption>
85
+ {% endif %}
86
+ </figure>
@@ -0,0 +1,34 @@
1
+ {% capture footer_contents %}
2
+ &copy; Copyright {{ site.time | date: '%Y' }}
3
+ {{ site.first_name }}
4
+ {{ site.middle_name }}
5
+ {{ site.last_name }}. {{ site.footer_text }}
6
+ {% if site.impressum_path %}
7
+ <a href="{{ site.url }}{{ site.baseurl }}{{ site.impressum_path }}">Impressum</a>.
8
+ {% endif %}
9
+ {% if site.last_updated %}
10
+ Last updated: {{ 'now' | date: '%B %d, %Y' }}.
11
+ {% endif %}
12
+ {% endcapture %}
13
+
14
+ {% if site.footer_fixed %}
15
+ <footer class="fixed-bottom" role="contentinfo">
16
+ <div class="container mt-0">
17
+ {{ footer_contents }}
18
+ </div>
19
+ </footer>
20
+ {% else %}
21
+ <footer class="sticky-bottom mt-5" role="contentinfo">
22
+ {% if site.newsletter.enabled %}
23
+ {% if site.plugins contains 'al_newsletter' %}
24
+ {% include plugins/al_newsletter_form_center.liquid %}
25
+ {% else %}
26
+ {% include newsletter.liquid %}
27
+ {% endif %}
28
+ {% endif %}
29
+
30
+ <div class="container">
31
+ {{ footer_contents }}
32
+ </div>
33
+ </footer>
34
+ {% endif %}
@@ -0,0 +1,34 @@
1
+ {% capture footer_contents %}
2
+ &copy; Copyright {{ site.time | date: '%Y' }}
3
+ {{ site.first_name }}
4
+ {{ site.middle_name }}
5
+ {{ site.last_name }}. {{ site.footer_text }}
6
+ {% if site.impressum_path %}
7
+ <a href="{{ site.url }}{{ site.baseurl }}{{ site.impressum_path }}">Impressum</a>.
8
+ {% endif %}
9
+ {% if site.last_updated %}
10
+ Last updated: {{ 'now' | date: '%B %d, %Y' }}.
11
+ {% endif %}
12
+ {% endcapture %}
13
+
14
+ {% if site.footer_fixed %}
15
+ <footer class="fixed-bottom" role="contentinfo">
16
+ <div class="container mt-0">
17
+ {{ footer_contents }}
18
+ </div>
19
+ </footer>
20
+ {% else %}
21
+ <footer class="sticky-bottom mt-5" role="contentinfo">
22
+ {% if site.newsletter.enabled %}
23
+ {% if site.plugins contains 'al_newsletter' %}
24
+ {% include plugins/al_newsletter_form_center.liquid %}
25
+ {% else %}
26
+ {% include newsletter.liquid %}
27
+ {% endif %}
28
+ {% endif %}
29
+
30
+ <div class="container">
31
+ {{ footer_contents }}
32
+ </div>
33
+ </footer>
34
+ {% endif %}
@@ -0,0 +1,25 @@
1
+ <div
2
+ id="giscus_thread"
3
+ {% if page.layout == 'post' %}
4
+ style="max-width: {{ site.max_width }}; margin: 0 auto;"
5
+ {% endif %}
6
+ >
7
+ {% if page.layout == 'post' %}
8
+ <br>
9
+ {% endif %}
10
+
11
+ {% if site.giscus.repo %}
12
+ <script defer src="{{ '/assets/js/giscus-setup.js' | relative_url }}"></script>
13
+ <noscript>
14
+ Please enable JavaScript to view the
15
+ <a href="http://giscus.app/?ref_noscript">comments powered by giscus.</a>
16
+ </noscript>
17
+ {% else %}
18
+ {% capture giscus_warning %}
19
+ > ##### giscus comments misconfigured
20
+ > Please follow instructions at [http://giscus.app](http://giscus.app) and update your giscus configuration.
21
+ {: .block-danger }
22
+ {% endcapture %}
23
+ {{ giscus_warning | markdownify }}
24
+ {% endif %}
25
+ </div>
@@ -0,0 +1,25 @@
1
+ <div
2
+ id="giscus_thread"
3
+ {% if page.layout == 'post' %}
4
+ style="max-width: {{ site.max_width }}; margin: 0 auto;"
5
+ {% endif %}
6
+ >
7
+ {% if page.layout == 'post' %}
8
+ <br>
9
+ {% endif %}
10
+
11
+ {% if site.giscus.repo %}
12
+ <script defer src="{{ '/assets/js/giscus-setup.js' | relative_url }}"></script>
13
+ <noscript>
14
+ Please enable JavaScript to view the
15
+ <a href="http://giscus.app/?ref_noscript">comments powered by giscus.</a>
16
+ </noscript>
17
+ {% else %}
18
+ {% capture giscus_warning %}
19
+ > ##### giscus comments misconfigured
20
+ > Please follow instructions at [http://giscus.app](http://giscus.app) and update your giscus configuration.
21
+ {: .block-danger }
22
+ {% endcapture %}
23
+ {{ giscus_warning | markdownify }}
24
+ {% endif %}
25
+ </div>
@@ -0,0 +1,147 @@
1
+ <!-- Metadata, OpenGraph and Schema.org -->
2
+ {% include metadata.liquid %}
3
+
4
+ <!-- Security: Content Security Policy -->
5
+ <!-- Permissive CSP suitable for academic websites. Allows external images, videos, and common embed services. -->
6
+ <!-- To customize for your needs, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
7
+ <meta
8
+ http-equiv="Content-Security-Policy"
9
+ content="default-src 'self'; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:; font-src 'self' data: https:; media-src 'self' https:; frame-src 'self' https:; connect-src 'self' https:;"
10
+ >
11
+ <style>
12
+ :root {
13
+ --max-content-width: {{ site.max_width | default: '930px' }};
14
+ }
15
+ </style>
16
+
17
+ <!-- Tailwind-first core styles -->
18
+ <link rel="stylesheet" href="{{ '/assets/css/tailwind.css' | relative_url | bust_file_cache }}">
19
+
20
+ {% if site.al_folio.compat.bootstrap.enabled %}
21
+ <!-- Optional Bootstrap compatibility layer -->
22
+ <link rel="stylesheet" href="{{ '/assets/css/bootstrap-compat.css' | relative_url | bust_file_cache }}">
23
+ {% endif %}
24
+
25
+ {% if page.pretty_table and site.al_folio.compat.bootstrap.enabled %}
26
+ <!-- Bootstrap Table -->
27
+ <link
28
+ defer
29
+ rel="stylesheet"
30
+ href="{{ site.third_party_libraries.bootstrap-table.url.css }}"
31
+ integrity="{{ site.third_party_libraries.bootstrap-table.integrity.css }}"
32
+ crossorigin="anonymous"
33
+ >
34
+ {% endif %}
35
+
36
+ <!-- Fonts & Icons -->
37
+ <link defer rel="stylesheet" href="{{ '/assets/css/academicons.min.css' | relative_url | bust_file_cache }}">
38
+ <link defer rel="stylesheet" href="{{ '/assets/css/scholar-icons.css' | relative_url | bust_file_cache }}">
39
+ <link
40
+ defer
41
+ rel="stylesheet"
42
+ type="text/css"
43
+ href="{{ site.third_party_libraries.google_fonts.url.fonts }}"
44
+ >
45
+
46
+ <!-- Code Syntax Highlighting -->
47
+ <link
48
+ defer
49
+ rel="stylesheet"
50
+ href="{{ '/assets/css/jekyll-pygments-themes-github.css' | relative_url | bust_file_cache }}"
51
+ media=""
52
+ id="highlight_theme_light"
53
+ >
54
+
55
+ <!-- Styles -->
56
+
57
+ {% if page.pseudocode %}
58
+ <!-- pseudocode -->
59
+ <link
60
+ defer
61
+ rel="stylesheet"
62
+ href="{{ site.third_party_libraries.pseudocode.url.css }}"
63
+ integrity="{{ site.third_party_libraries.pseudocode.integrity.css }}"
64
+ crossorigin="anonymous"
65
+ >
66
+ {% endif %}
67
+
68
+ {% if site.icon.size <= 4 %}
69
+ <link
70
+ rel="shortcut icon"
71
+ 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>"
72
+ >
73
+ {% elsif site.icon != blank %}
74
+ <link rel="shortcut icon" href="{{ site.icon | prepend: '/assets/img/' | relative_url | bust_file_cache}}">
75
+ {% endif %}
76
+ <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url | bust_css_cache }}">
77
+ {% if page.layout == 'cv' and site.plugins contains 'al_folio_cv' and site.al_folio.features.cv.enabled != false %}
78
+ <link rel="stylesheet" href="{{ '/assets/css/al-folio-cv.css' | relative_url | bust_file_cache }}">
79
+ {% endif %}
80
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
81
+
82
+ {% if site.enable_darkmode %}
83
+ <!-- Dark Mode -->
84
+ <script src="{{ '/assets/js/theme.js' | relative_url | bust_file_cache }}"></script>
85
+ <link
86
+ defer
87
+ rel="stylesheet"
88
+ href="{{ '/assets/css/jekyll-pygments-themes-native.css' | relative_url | bust_file_cache }}"
89
+ media="none"
90
+ id="highlight_theme_dark"
91
+ >
92
+ <script>
93
+ initTheme();
94
+ </script>
95
+ {% endif %}
96
+
97
+ {% if page.map %}
98
+ <!-- GeoJSON support via Leaflet -->
99
+ <link
100
+ defer
101
+ rel="stylesheet"
102
+ href="{{ site.third_party_libraries.leaflet.url.css }}"
103
+ integrity="{{ site.third_party_libraries.leaflet.integrity.css }}"
104
+ crossorigin="anonymous"
105
+ >
106
+ {% endif %}
107
+
108
+ {% if page.code_diff %}
109
+ <!-- diff2html -->
110
+ <link
111
+ defer
112
+ rel="stylesheet"
113
+ href="{{ site.third_party_libraries.highlightjs.url.css.light }}"
114
+ integrity="{{ site.third_party_libraries.highlightjs.integrity.css.light }}"
115
+ crossorigin="anonymous"
116
+ media="screen and (prefers-color-scheme: light)"
117
+ >
118
+ <link
119
+ defer
120
+ rel="stylesheet"
121
+ href="{{ site.third_party_libraries.highlightjs.url.css.dark }}"
122
+ integrity="{{ site.third_party_libraries.highlightjs.integrity.css.dark }}"
123
+ crossorigin="anonymous"
124
+ media="screen and (prefers-color-scheme: dark)"
125
+ >
126
+ <link
127
+ defer
128
+ rel="stylesheet"
129
+ href="{{ site.third_party_libraries.diff2html.url.css }}"
130
+ integrity="{{ site.third_party_libraries.diff2html.integrity.css }}"
131
+ crossorigin="anonymous"
132
+ >
133
+ {% endif %}
134
+
135
+ {% if site.plugins contains 'al_img_tools' %}
136
+ <!-- Image Features -->
137
+ {% include plugins/al_img_tools_styles.liquid %}
138
+ {% endif %}
139
+
140
+ {% if site.plugins contains 'al_math' %}
141
+ {% include plugins/al_math_styles.liquid %}
142
+ {% endif %}
143
+
144
+ {% if site.enable_cookie_consent and site.plugins contains 'al_cookie' %}
145
+ <!-- Cookie Consent -->
146
+ {% include plugins/al_cookie_styles.liquid %}
147
+ {% endif %}
@@ -0,0 +1,147 @@
1
+ <!-- Metadata, OpenGraph and Schema.org -->
2
+ {% include metadata.liquid %}
3
+
4
+ <!-- Security: Content Security Policy -->
5
+ <!-- Permissive CSP suitable for academic websites. Allows external images, videos, and common embed services. -->
6
+ <!-- To customize for your needs, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
7
+ <meta
8
+ http-equiv="Content-Security-Policy"
9
+ content="default-src 'self'; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:; font-src 'self' data: https:; media-src 'self' https:; frame-src 'self' https:; connect-src 'self' https:;"
10
+ >
11
+ <style>
12
+ :root {
13
+ --max-content-width: {{ site.max_width | default: '930px' }};
14
+ }
15
+ </style>
16
+
17
+ <!-- Tailwind-first core styles -->
18
+ <link rel="stylesheet" href="{{ '/assets/css/tailwind.css' | relative_url | bust_file_cache }}">
19
+
20
+ {% if site.al_folio.compat.bootstrap.enabled %}
21
+ <!-- Optional Bootstrap compatibility layer -->
22
+ <link rel="stylesheet" href="{{ '/assets/css/bootstrap-compat.css' | relative_url | bust_file_cache }}">
23
+ {% endif %}
24
+
25
+ {% if page.pretty_table and site.al_folio.compat.bootstrap.enabled %}
26
+ <!-- Bootstrap Table -->
27
+ <link
28
+ defer
29
+ rel="stylesheet"
30
+ href="{{ site.third_party_libraries.bootstrap-table.url.css }}"
31
+ integrity="{{ site.third_party_libraries.bootstrap-table.integrity.css }}"
32
+ crossorigin="anonymous"
33
+ >
34
+ {% endif %}
35
+
36
+ <!-- Fonts & Icons -->
37
+ <link defer rel="stylesheet" href="{{ '/assets/css/academicons.min.css' | relative_url | bust_file_cache }}">
38
+ <link defer rel="stylesheet" href="{{ '/assets/css/scholar-icons.css' | relative_url | bust_file_cache }}">
39
+ <link
40
+ defer
41
+ rel="stylesheet"
42
+ type="text/css"
43
+ href="{{ site.third_party_libraries.google_fonts.url.fonts }}"
44
+ >
45
+
46
+ <!-- Code Syntax Highlighting -->
47
+ <link
48
+ defer
49
+ rel="stylesheet"
50
+ href="{{ '/assets/css/jekyll-pygments-themes-github.css' | relative_url | bust_file_cache }}"
51
+ media=""
52
+ id="highlight_theme_light"
53
+ >
54
+
55
+ <!-- Styles -->
56
+
57
+ {% if page.pseudocode %}
58
+ <!-- pseudocode -->
59
+ <link
60
+ defer
61
+ rel="stylesheet"
62
+ href="{{ site.third_party_libraries.pseudocode.url.css }}"
63
+ integrity="{{ site.third_party_libraries.pseudocode.integrity.css }}"
64
+ crossorigin="anonymous"
65
+ >
66
+ {% endif %}
67
+
68
+ {% if site.icon.size <= 4 %}
69
+ <link
70
+ rel="shortcut icon"
71
+ 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>"
72
+ >
73
+ {% elsif site.icon != blank %}
74
+ <link rel="shortcut icon" href="{{ site.icon | prepend: '/assets/img/' | relative_url | bust_file_cache}}">
75
+ {% endif %}
76
+ <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url | bust_css_cache }}">
77
+ {% if page.layout == 'cv' and site.plugins contains 'al_folio_cv' and site.al_folio.features.cv.enabled != false %}
78
+ <link rel="stylesheet" href="{{ '/assets/css/al-folio-cv.css' | relative_url | bust_file_cache }}">
79
+ {% endif %}
80
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
81
+
82
+ {% if site.enable_darkmode %}
83
+ <!-- Dark Mode -->
84
+ <script src="{{ '/assets/js/theme.js' | relative_url | bust_file_cache }}"></script>
85
+ <link
86
+ defer
87
+ rel="stylesheet"
88
+ href="{{ '/assets/css/jekyll-pygments-themes-native.css' | relative_url | bust_file_cache }}"
89
+ media="none"
90
+ id="highlight_theme_dark"
91
+ >
92
+ <script>
93
+ initTheme();
94
+ </script>
95
+ {% endif %}
96
+
97
+ {% if page.map %}
98
+ <!-- GeoJSON support via Leaflet -->
99
+ <link
100
+ defer
101
+ rel="stylesheet"
102
+ href="{{ site.third_party_libraries.leaflet.url.css }}"
103
+ integrity="{{ site.third_party_libraries.leaflet.integrity.css }}"
104
+ crossorigin="anonymous"
105
+ >
106
+ {% endif %}
107
+
108
+ {% if page.code_diff %}
109
+ <!-- diff2html -->
110
+ <link
111
+ defer
112
+ rel="stylesheet"
113
+ href="{{ site.third_party_libraries.highlightjs.url.css.light }}"
114
+ integrity="{{ site.third_party_libraries.highlightjs.integrity.css.light }}"
115
+ crossorigin="anonymous"
116
+ media="screen and (prefers-color-scheme: light)"
117
+ >
118
+ <link
119
+ defer
120
+ rel="stylesheet"
121
+ href="{{ site.third_party_libraries.highlightjs.url.css.dark }}"
122
+ integrity="{{ site.third_party_libraries.highlightjs.integrity.css.dark }}"
123
+ crossorigin="anonymous"
124
+ media="screen and (prefers-color-scheme: dark)"
125
+ >
126
+ <link
127
+ defer
128
+ rel="stylesheet"
129
+ href="{{ site.third_party_libraries.diff2html.url.css }}"
130
+ integrity="{{ site.third_party_libraries.diff2html.integrity.css }}"
131
+ crossorigin="anonymous"
132
+ >
133
+ {% endif %}
134
+
135
+ {% if site.plugins contains 'al_img_tools' %}
136
+ <!-- Image Features -->
137
+ {% include plugins/al_img_tools_styles.liquid %}
138
+ {% endif %}
139
+
140
+ {% if site.plugins contains 'al_math' %}
141
+ {% include plugins/al_math_styles.liquid %}
142
+ {% endif %}
143
+
144
+ {% if site.enable_cookie_consent and site.plugins contains 'al_cookie' %}
145
+ <!-- Cookie Consent -->
146
+ {% include plugins/al_cookie_styles.liquid %}
147
+ {% endif %}
@@ -0,0 +1,149 @@
1
+ <header>
2
+ <!-- Nav Bar -->
3
+ <nav id="navbar" class="navbar navbar-light navbar-expand-sm {% if site.navbar_fixed %}fixed-top{% else %}sticky-top{% endif %}" role="navigation">
4
+ <div class="container">
5
+ {% if page.permalink != '/' %}
6
+ <a class="navbar-brand title font-weight-lighter" href="{{ site.baseurl }}/">
7
+ {% if site.title == 'blank' %}
8
+ {% if site.first_name %}
9
+ <span class="font-weight-bold">
10
+ {{- site.first_name -}}
11
+ </span>
12
+ {% endif %}
13
+ {% if site.middle_name %}
14
+ {{- site.middle_name -}}
15
+ {% endif %}
16
+ {% if site.last_name %}
17
+ {{- site.last_name -}}
18
+ {% endif %}
19
+ {% else %}
20
+ {{- site.title -}}
21
+ {% endif %}
22
+ </a>
23
+ {% elsif site.enable_navbar_social %}
24
+ <!-- Social Icons -->
25
+ <div class="navbar-brand social">{% social_links %}</div>
26
+ {% endif %}
27
+ <!-- Navbar Toggle -->
28
+ <button
29
+ class="navbar-toggler collapsed ml-auto"
30
+ type="button"
31
+ data-nav-toggle="navbarNav"
32
+ aria-controls="navbarNav"
33
+ aria-expanded="false"
34
+ aria-label="Toggle navigation"
35
+ >
36
+ <span class="sr-only">Toggle navigation</span>
37
+ <span class="icon-bar top-bar"></span>
38
+ <span class="icon-bar middle-bar"></span>
39
+ <span class="icon-bar bottom-bar"></span>
40
+ </button>
41
+
42
+ <div class="collapse navbar-collapse text-right" id="navbarNav">
43
+ <ul class="navbar-nav ml-auto flex-nowrap">
44
+ {% for page in site.pages %}
45
+ {% if page.permalink == '/' %} {% assign about_title = page.title %} {% endif %}
46
+ {% endfor %}
47
+
48
+ <!-- About -->
49
+ <li class="nav-item {% if page.permalink == '/' %}active{% endif %}">
50
+ <a class="nav-link" href="{{ '/' | relative_url }}">
51
+ {{- about_title }}
52
+ {% if page.permalink == '/' %}
53
+ <span class="sr-only">(current)</span>
54
+ {% endif %}
55
+ </a>
56
+ </li>
57
+
58
+ <!-- Other pages -->
59
+ {% assign sorted_pages = site.pages | sort: 'nav_order' %}
60
+ {% for p in sorted_pages %}
61
+ {% if p.nav and p.autogen == null %}
62
+ {% if p.dropdown %}
63
+ {% assign has_active_child = false %}
64
+ {% for child in p.children %}
65
+ {% if page.title == child.title %}
66
+ {% assign has_active_child = true %}
67
+ {% endif %}
68
+ {% endfor %}
69
+ <li class="nav-item dropdown {% if page.title == p.title or has_active_child %}active{% endif %}">
70
+ <a
71
+ class="nav-link dropdown-toggle"
72
+ href="#"
73
+ id="navbarDropdown"
74
+ role="button"
75
+ data-nav-dropdown-toggle="true"
76
+ aria-haspopup="true"
77
+ aria-expanded="false"
78
+ >
79
+ {{- p.title }}
80
+ {% if page.title == p.title or has_active_child %}
81
+ <span class="sr-only">(current)</span>
82
+ {% endif %}
83
+ </a>
84
+ <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
85
+ {% for child in p.children %}
86
+ {% if child.title == 'divider' %}
87
+ <div class="dropdown-divider"></div>
88
+ {% else %}
89
+ <a
90
+ class="dropdown-item {% if page.title == child.title %}active{% endif %}"
91
+ href="{% if child.permalink contains '://' %}{{ child.permalink }}{% else %}{{ child.permalink | relative_url }}{% endif %}"
92
+ >
93
+ {{- child.title -}}
94
+ </a>
95
+ {% endif %}
96
+ {% endfor %}
97
+ </div>
98
+ </li>
99
+ {% else %}
100
+ {% assign parent_link = p.permalink | remove: 'index.html' %}
101
+ <li class="nav-item {% if page.url contains parent_link %}active{% endif %}">
102
+ {%- if p.permalink contains '://' -%}
103
+ {%- assign url = p.permalink -%}
104
+ {%- elsif p.permalink contains '/blog/' -%}
105
+ {%- assign url = '/blog/' -%}
106
+ {%- else -%}
107
+ {%- assign url = p.url -%}
108
+ {%- endif %}
109
+ <a class="nav-link" href="{{ url | relative_url }}">
110
+ {{- p.title }}
111
+ {% if page.url contains p.url %}
112
+ <span class="sr-only">(current)</span>
113
+ {% endif %}
114
+ </a>
115
+ </li>
116
+ {% endif %}
117
+ {% endif %}
118
+ {% endfor %}
119
+ {% if site.search_enabled %}
120
+ <!-- Search -->
121
+ <li class="nav-item">
122
+ <button id="search-toggle" title="Search" onclick="openSearchModal()">
123
+ <span class="nav-link">ctrl k <i class="fa-solid fa-magnifying-glass"></i></span>
124
+ </button>
125
+ </li>
126
+ {% endif %}
127
+ {% if site.enable_darkmode %}
128
+ <!-- Toogle theme mode -->
129
+ <li class="toggle-container">
130
+ <button id="light-toggle" title="Change theme">
131
+ <i class="fa-half-sun-moon" id="light-toggle-system"></i>
132
+ <i class="fa-solid fa-moon" id="light-toggle-dark"></i>
133
+ <i class="fa-solid fa-sun" id="light-toggle-light"></i>
134
+ </button>
135
+ </li>
136
+ {% endif %}
137
+ </ul>
138
+ </div>
139
+ </div>
140
+ </nav>
141
+ {% if site.enable_progressbar %}
142
+ <!-- Scrolling Progress Bar -->
143
+ <progress id="progress" value="0">
144
+ <div class="progress-container">
145
+ <span class="progress-bar"></span>
146
+ </div>
147
+ </progress>
148
+ {% endif %}
149
+ </header>