Skip to content

Commit 04a550b

Browse files
committed
optimise for google rich results
1 parent db59f11 commit 04a550b

10 files changed

Lines changed: 247 additions & 0 deletions

blog/ai-agency-security-perspective.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,30 @@
1919
<meta name="twitter:description" content="We're not 6 months from AGI; we're 6 months from confronting the security implications of AI systems with real-world agency." /><meta name="twitter:image" content="./images/robotfail.jpg" />
2020
<link rel="icon" type="image/png" href="./favicon.png" />
2121
<link rel="stylesheet" href="./theme/css/style.css" />
22+
<script type="application/ld+json">
23+
{
24+
"@context": "https://schema.org",
25+
"@type": "BlogPosting",
26+
"headline": "The Coming Wave of AI Agency: A Security Perspective",
27+
"url": "./ai-agency-security-perspective.html",
28+
"datePublished": "2025-03-23",
29+
"author": {
30+
"@type": "Person",
31+
"name": "Jim Gumbley",
32+
"url": "https://www.jimgumbley.com"
33+
},
34+
"publisher": {
35+
"@type": "Person",
36+
"name": "Jim Gumbley",
37+
"url": "https://www.jimgumbley.com"
38+
},
39+
"image": "./images/robotfail.jpg", "description": "We're not 6 months from AGI; we're 6 months from confronting the security implications of AI systems with real-world agency.",
40+
"mainEntityOfPage": {
41+
"@type": "WebPage",
42+
"@id": "./ai-agency-security-perspective.html"
43+
}
44+
}
45+
</script>
2246
</head>
2347
<body>
2448
<header>

blog/great-time-pen-tester.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,30 @@
1919
<meta name="twitter:description" content="Exploring how penetration testing has evolved alongside modern software development practices, and why AI-assisted red teaming might be the future of security validation." /><meta name="twitter:image" content="./images/960px-Wall_Street_by_Paul_Strand,_1915.jpeg" />
2020
<link rel="icon" type="image/png" href="./favicon.png" />
2121
<link rel="stylesheet" href="./theme/css/style.css" />
22+
<script type="application/ld+json">
23+
{
24+
"@context": "https://schema.org",
25+
"@type": "BlogPosting",
26+
"headline": "It's a Great Time to be a Pen Tester",
27+
"url": "./great-time-pen-tester.html",
28+
"datePublished": "2025-06-07",
29+
"author": {
30+
"@type": "Person",
31+
"name": "Jim Gumbley",
32+
"url": "https://www.jimgumbley.com"
33+
},
34+
"publisher": {
35+
"@type": "Person",
36+
"name": "Jim Gumbley",
37+
"url": "https://www.jimgumbley.com"
38+
},
39+
"image": "./images/960px-Wall_Street_by_Paul_Strand,_1915.jpeg", "description": "Exploring how penetration testing has evolved alongside modern software development practices, and why AI-assisted red teaming might be the future of security validation.",
40+
"mainEntityOfPage": {
41+
"@type": "WebPage",
42+
"@id": "./great-time-pen-tester.html"
43+
}
44+
}
45+
</script>
2246
</head>
2347
<body>
2448
<header>

blog/index.html

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,47 @@
1717
<meta name="twitter:description" content="Jim Gumbley's technology blog covering security, AI, and software development" />
1818
<link rel="icon" type="image/png" href="./favicon.png" />
1919
<link rel="stylesheet" href="./theme/css/style.css" />
20+
<script type="application/ld+json">
21+
{
22+
"@context": "https://schema.org",
23+
"@type": "Blog",
24+
"name": "fragmented sentences",
25+
"description": "Jim Gumbley's technology blog covering security, AI, and software development",
26+
"url": "./",
27+
"author": {
28+
"@type": "Person",
29+
"name": "Jim Gumbley",
30+
"url": "https://www.jimgumbley.com"
31+
},
32+
"blogPost": [
33+
{
34+
"@type": "BlogPosting",
35+
"headline": "Why I Left Spotify in 2025",
36+
"url": "./why-i-left-spotify-2025.html",
37+
"datePublished": "2025-06-15",
38+
"image": "./images/Talking_Heads_Remain_In_Light_(1980_Sire_publicity_photo)_(5-4_cropped).jpg" }, {
39+
"@type": "BlogPosting",
40+
"headline": "It's a Great Time to be a Pen Tester",
41+
"url": "./great-time-pen-tester.html",
42+
"datePublished": "2025-06-07",
43+
"image": "./images/960px-Wall_Street_by_Paul_Strand,_1915.jpeg" }, {
44+
"@type": "BlogPosting",
45+
"headline": "The Coming Wave of AI Agency: A Security Perspective",
46+
"url": "./ai-agency-security-perspective.html",
47+
"datePublished": "2025-03-23",
48+
"image": "./images/robotfail.jpg" }, {
49+
"@type": "BlogPosting",
50+
"headline": "Something changed in the Tech Industry",
51+
"url": "./something-changed-tech-industry.html",
52+
"datePublished": "2024-09-09",
53+
"image": "./images/legos.webp" }, {
54+
"@type": "BlogPosting",
55+
"headline": "Resident Evil in Virtual Reality is actually terrifying",
56+
"url": "./resident-evil-vr-terrifying.html",
57+
"datePublished": "2017-03-05",
58+
"image": "./images/virtuality.webp" } ]
59+
}
60+
</script>
2061
</head>
2162
<body>
2263
<header>

blog/resident-evil-vr-terrifying.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,30 @@
1919
<meta name="twitter:description" content="Experiencing Resident Evil in VR brings horror gaming to a whole new level of terror." /><meta name="twitter:image" content="./images/virtuality.webp" />
2020
<link rel="icon" type="image/png" href="./favicon.png" />
2121
<link rel="stylesheet" href="./theme/css/style.css" />
22+
<script type="application/ld+json">
23+
{
24+
"@context": "https://schema.org",
25+
"@type": "BlogPosting",
26+
"headline": "Resident Evil in Virtual Reality is actually terrifying",
27+
"url": "./resident-evil-vr-terrifying.html",
28+
"datePublished": "2017-03-05",
29+
"author": {
30+
"@type": "Person",
31+
"name": "Jim Gumbley",
32+
"url": "https://www.jimgumbley.com"
33+
},
34+
"publisher": {
35+
"@type": "Person",
36+
"name": "Jim Gumbley",
37+
"url": "https://www.jimgumbley.com"
38+
},
39+
"image": "./images/virtuality.webp", "description": "Experiencing Resident Evil in VR brings horror gaming to a whole new level of terror.",
40+
"mainEntityOfPage": {
41+
"@type": "WebPage",
42+
"@id": "./resident-evil-vr-terrifying.html"
43+
}
44+
}
45+
</script>
2246
</head>
2347
<body>
2448
<header>

blog/something-changed-tech-industry.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,30 @@
1919
<meta name="twitter:description" content="The tech industry has shifted from custom builds to piecing together existing components - it's all just plugging Legos now." /><meta name="twitter:image" content="./images/legos.webp" />
2020
<link rel="icon" type="image/png" href="./favicon.png" />
2121
<link rel="stylesheet" href="./theme/css/style.css" />
22+
<script type="application/ld+json">
23+
{
24+
"@context": "https://schema.org",
25+
"@type": "BlogPosting",
26+
"headline": "Something changed in the Tech Industry",
27+
"url": "./something-changed-tech-industry.html",
28+
"datePublished": "2024-09-09",
29+
"author": {
30+
"@type": "Person",
31+
"name": "Jim Gumbley",
32+
"url": "https://www.jimgumbley.com"
33+
},
34+
"publisher": {
35+
"@type": "Person",
36+
"name": "Jim Gumbley",
37+
"url": "https://www.jimgumbley.com"
38+
},
39+
"image": "./images/legos.webp", "description": "The tech industry has shifted from custom builds to piecing together existing components - it's all just plugging Legos now.",
40+
"mainEntityOfPage": {
41+
"@type": "WebPage",
42+
"@id": "./something-changed-tech-industry.html"
43+
}
44+
}
45+
</script>
2246
</head>
2347
<body>
2448
<header>

blog/why-i-left-spotify-2025.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,30 @@
1919
<meta name="twitter:description" content="After fourteen years as a loyal Spotify customer, I finally cancelled my subscription. Here's why the platform's algorithmic direction no longer matches my simple, self-curated listening style." /><meta name="twitter:image" content="./images/Talking_Heads_Remain_In_Light_(1980_Sire_publicity_photo)_(5-4_cropped).jpg" />
2020
<link rel="icon" type="image/png" href="./favicon.png" />
2121
<link rel="stylesheet" href="./theme/css/style.css" />
22+
<script type="application/ld+json">
23+
{
24+
"@context": "https://schema.org",
25+
"@type": "BlogPosting",
26+
"headline": "Why I Left Spotify in 2025",
27+
"url": "./why-i-left-spotify-2025.html",
28+
"datePublished": "2025-06-15",
29+
"author": {
30+
"@type": "Person",
31+
"name": "Jim Gumbley",
32+
"url": "https://www.jimgumbley.com"
33+
},
34+
"publisher": {
35+
"@type": "Person",
36+
"name": "Jim Gumbley",
37+
"url": "https://www.jimgumbley.com"
38+
},
39+
"image": "./images/Talking_Heads_Remain_In_Light_(1980_Sire_publicity_photo)_(5-4_cropped).jpg", "description": "After fourteen years as a loyal Spotify customer, I finally cancelled my subscription. Here's why the platform's algorithmic direction no longer matches my simple, self-curated listening style.",
40+
"mainEntityOfPage": {
41+
"@type": "WebPage",
42+
"@id": "./why-i-left-spotify-2025.html"
43+
}
44+
}
45+
</script>
2246
</head>
2347
<body>
2448
<header>

blogsrc/themes/minimal/templates/article.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,35 @@
1515
{% if article.image %}{% block twitter_image %}<meta name="twitter:image" content="{{ SITEURL }}/{{ article.image }}" />{% endblock %}{% endif %}
1616
{% if article.image %}<meta name="twitter:card" content="summary_large_image" />{% endif %}
1717

18+
{% block structured_data %}
19+
<script type="application/ld+json">
20+
{
21+
"@context": "https://schema.org",
22+
"@type": "BlogPosting",
23+
"headline": "{{ article.title }}",
24+
"url": "{{ SITEURL }}/{{ article.url }}",
25+
"datePublished": "{{ article.date.strftime('%Y-%m-%d') }}",
26+
{% if article.modified %}"dateModified": "{{ article.modified.strftime('%Y-%m-%d') }}",{% endif %}
27+
"author": {
28+
"@type": "Person",
29+
"name": "Jim Gumbley",
30+
"url": "https://www.jimgumbley.com"
31+
},
32+
"publisher": {
33+
"@type": "Person",
34+
"name": "Jim Gumbley",
35+
"url": "https://www.jimgumbley.com"
36+
},
37+
{% if article.image %}"image": "{{ SITEURL }}/{{ article.image }}",{% endif %}
38+
"description": "{% if article.summary %}{{ article.summary|striptags }}{% else %}{{ article.content|striptags|truncate(160) }}{% endif %}",
39+
"mainEntityOfPage": {
40+
"@type": "WebPage",
41+
"@id": "{{ SITEURL }}/{{ article.url }}"
42+
}
43+
}
44+
</script>
45+
{% endblock structured_data %}
46+
1847
{% block content %}
1948
<article>
2049
<h1>{{ article.title }}</h1>

blogsrc/themes/minimal/templates/base.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
<link rel="icon" type="image/png" href="{{ SITEURL }}/favicon.png" />
2323
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/style.css" />
24+
{% block structured_data %}{% endblock structured_data %}
2425
</head>
2526
<body>
2627
<header>

blogsrc/themes/minimal/templates/index.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
{% extends "base.html" %}
22

3+
{% block structured_data %}
4+
<script type="application/ld+json">
5+
{
6+
"@context": "https://schema.org",
7+
"@type": "Blog",
8+
"name": "{{ SITENAME }}",
9+
"description": "Jim Gumbley's technology blog covering security, AI, and software development",
10+
"url": "{{ SITEURL }}/",
11+
"author": {
12+
"@type": "Person",
13+
"name": "Jim Gumbley",
14+
"url": "https://www.jimgumbley.com"
15+
},
16+
"blogPost": [
17+
{% for article in articles_page.object_list %}
18+
{
19+
"@type": "BlogPosting",
20+
"headline": "{{ article.title }}",
21+
"url": "{{ SITEURL }}/{{ article.url }}",
22+
"datePublished": "{{ article.date.strftime('%Y-%m-%d') }}"{% if article.image %},
23+
"image": "{{ SITEURL }}/{{ article.image }}"{% endif %}
24+
}{% if not loop.last %},{% endif %}
25+
{% endfor %}
26+
]
27+
}
28+
</script>
29+
{% endblock structured_data %}
30+
331
{% block content %}
432
{% for article in articles_page.object_list %}
533
<article>

index.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,34 @@
1414
<meta name="twitter:card" content="summary">
1515
<link rel="icon" type="image/png" href="favicon.png">
1616
<link href="web_ss.css" rel="stylesheet" type="text/css">
17+
<script type="application/ld+json">
18+
{
19+
"@context": "https://schema.org",
20+
"@type": "Person",
21+
"name": "Jim Gumbley",
22+
"alternateName": "James Gumbley",
23+
"url": "https://www.jimgumbley.com",
24+
"image": "https://www.jimgumbley.com/pics/15156894995_e92ee874d9_z.jpg",
25+
"jobTitle": "Software Engineer",
26+
"worksFor": {
27+
"@type": "Organization",
28+
"name": "ThoughtWorks",
29+
"url": "https://www.thoughtworks.com"
30+
},
31+
"sameAs": [
32+
"https://web-cdn.bsky.app/profile/jimgumbley.com",
33+
"https://github.com/jgumbley",
34+
"https://www.flickr.com/photos/jimgumbley/",
35+
"https://en.wikipedia.org/wiki/User:Leonig_Mig",
36+
"https://www.linkedin.com/in/jimgumbley"
37+
],
38+
"owns": {
39+
"@type": "Blog",
40+
"name": "fragmented sentences",
41+
"url": "https://www.jimgumbley.com/blog/"
42+
}
43+
}
44+
</script>
1745
<script src="pics.js"></script>
1846
</head>
1947
<body>

0 commit comments

Comments
 (0)