Skip to content

Commit a7b140e

Browse files
Refactor relative image URL handling
1 parent 44b6c6f commit a7b140e

File tree

5 files changed

+41
-18
lines changed

5 files changed

+41
-18
lines changed

_includes/convert_img_urls.html

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{% if include.slug != nil and include.categories != nil %}
2+
{% capture img_dir %}/img/content/{% if include.categories[0] %}{{ include.categories[0] }}/{% endif %}{{ include.slug }}{% endcapture %}
3+
{% else %}
4+
{% capture img_dir %}/img/content/{% if page.categories[0] %}{{ page.categories[0] }}/{% endif %}{{ page.slug }}{% endcapture %}
5+
{% endif %}
6+
{% assign pieces = include.content | split: '<img src="' %}
7+
{% for piece in pieces %}
8+
{% if forloop.first == true %}
9+
{{ piece }}
10+
{% else %}
11+
{% if piece contains '" alt="' %}
12+
{% assign url = piece | split: '" alt="' | first %}
13+
{% assign alt = piece | split: '" alt="' | shift | join: '" alt="' | split: '"' | first %}
14+
{% assign rest = piece | split: '" alt="' | shift | join: '" alt="' | split: '"' | shift | join: '"' %}
15+
{% assign url_http_test = url | split: 'http://' | first %}
16+
{% assign url_https_test = url | split: 'https://' | first %}
17+
{% assign url_root_test = url | split: '/' | first %}
18+
{% if url_http_test == "" or url_https_test == "" or url_root_test == "" %}
19+
<img src="{{ url }}" alt="{{ alt }}"{{ rest }}
20+
{% else %}
21+
<img src="{{ img_dir }}/{{ url }}" alt="{{ alt }}"{{ rest }}
22+
{% endif %}
23+
{% else %}
24+
{% assign url = piece | split: '"' | first %}
25+
{% assign rest = piece | split: '"' | shift | join: '"' %}
26+
{% assign url_http_test = url | split: 'http://' | first %}
27+
{% assign url_https_test = url | split: 'https://' | first %}
28+
{% assign url_root_test = url | split: '/' | first %}
29+
{% if url_http_test == "" or url_https_test == "" or url_root_test == "" %}
30+
<img src="{{ url }}"{{ rest }}
31+
{% else %}
32+
<img src="{{ img_dir }}/{{ url }}"{{ rest }}
33+
{% endif %}
34+
{% endif %}
35+
{% endif %}
36+
{% endfor %}

_includes/project_posts.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
{% for project_post in project_posts %}
44
<h1><a href="{{ project_post.url }}">{{ project_post.title }}</a></h1>
55
<time>{{ project_post.date | date: "%F" }}</time>
6-
{{ project_post.content }}
6+
{% include convert_img_urls.html slug=project_post.slug categories=project_post.categories content=project_post.content %}
77
{% endfor %}

_layouts/page.html

+2-15
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,8 @@
55
{% include meta.html %}
66
</head>
77
<body>
8-
{% assign slug = page.title | slugify %}
9-
{% if page.categories[0] %}
10-
{% capture img_dir %}/img/content/{{ page.categories[0] }}/{{ slug }}{% endcapture %}
11-
{% else %}
12-
{% capture img_dir %}/img/content/{{ slug }}{% endcapture %}
13-
{% endif %}
14-
{% capture bg_path %}{{ img_dir }}/bg.jpg{% endcapture %}
158
{% if page.bg %}
9+
{% capture img_dir %}/img/content{% if page.categories[0] %}/{{ page.categories[0] }}/{% endif %}{% if page.slug %}/{{ page.slug }}{% endif %}{% endcapture %}
1610
<style type="text/css">
1711
header {
1812
background-image: url({{ img_dir }}/{{ page.bg }}) !important
@@ -29,14 +23,7 @@ <h1><a href="/">{{ site.name }}</a></h1>
2923
</header>
3024
<main>
3125
<h1>{{ page.title }}</h1>
32-
{% assign pieces = content | split: '<img src="' %}
33-
{% for piece in pieces %}
34-
{% if forloop.first == true %}
35-
{{ piece }}
36-
{% else %}
37-
<img src="{{img_dir}}/{{piece}}
38-
{%- endif -%}
39-
{%- endfor -%}
26+
{% include convert_img_urls.html content=content %}
4027
</main>
4128
<footer>&copy; Ian Glen - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA</a> unless specified</footer>
4229
<link href="https://fonts.googleapis.com/css2?family=Mulish&display=swap" rel="stylesheet">

_layouts/post.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
layout: page
33
---
44
<time>{{ page.date | date: "%F" }}</time>
5-
{{ content }}
5+
{% include convert_img_urls.html content=content %}

projects.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Projects
3-
bg: bg.jpg
3+
bg: projects/bg.jpg
44
---
55

66
{% capture sorted_projects %}

0 commit comments

Comments
 (0)