+ {{ .name | safeHTML }}: {{ .content | safeHTML }} +
+ +diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz
index aa3f0cd..ad21181 100644
Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ
diff --git a/data/webmentions-since.json b/data/webmentions-since.json
new file mode 100644
index 0000000..6ba0172
--- /dev/null
+++ b/data/webmentions-since.json
@@ -0,0 +1,3 @@
+{
+ "since": "2021-03-19T20:08:40.327Z"
+}
\ No newline at end of file
diff --git a/data/webmentions.json b/data/webmentions.json
new file mode 100644
index 0000000..388a0fe
--- /dev/null
+++ b/data/webmentions.json
@@ -0,0 +1,137 @@
+[
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "The insanity of collecting retro games",
+ "content": "Is a physical collection really worth it?",
+ "published": "2021-02-21",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/",
+ "source": "https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/",
+ "target": "https://jefklakscodex.com/articles/features/super-mario-64-aged-badly/",
+ "publishedFromNow": "a month ago",
+ "relativeTarget": "/articles/features/super-mario-64-aged-badly/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "The insanity of collecting retro games",
+ "content": "Is a physical collection really worth it?",
+ "published": "2021-02-21",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/",
+ "source": "https://brainbaking.com/post/2021/02/the-insanity-of-retro-game-collecting/",
+ "target": "https://jefklakscodex.com/articles/features/gaming-setup-2007-flashback/",
+ "publishedFromNow": "a month ago",
+ "relativeTarget": "/articles/features/gaming-setup-2007-flashback/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "Win98 Upgrade: GeForce 3 Ti200 vs Riva TNT2",
+ "content": "Get more out of that AGPx4 slot!",
+ "published": "2021-01-28",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/",
+ "source": "https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/",
+ "target": "https://jefklakscodex.com/articles/features/the-best-and-worst-retro-hack-and-slash-games/",
+ "publishedFromNow": "2 months ago",
+ "relativeTarget": "/articles/features/the-best-and-worst-retro-hack-and-slash-games/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "Win98 Upgrade: GeForce 3 Ti200 vs Riva TNT2",
+ "content": "Get more out of that AGPx4 slot!",
+ "published": "2021-01-28",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/",
+ "source": "https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/",
+ "target": "https://jefklakscodex.com/tags/wizardry8/",
+ "publishedFromNow": "2 months ago",
+ "relativeTarget": "/tags/wizardry8/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "Win98 Upgrade: GeForce 3 Ti200 vs Riva TNT2",
+ "content": "Get more out of that AGPx4 slot!",
+ "published": "2021-01-28",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/",
+ "source": "https://brainbaking.com/post/2021/01/win98-upgrade-geforce3/",
+ "target": "https://jefklakscodex.com/articles/reviews/dungeon-siege/",
+ "publishedFromNow": "2 months ago",
+ "relativeTarget": "/articles/reviews/dungeon-siege/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "The Internet Killed Secrets in Games",
+ "content": "What's the 'secret' of the secret cow level in Diablo II?",
+ "published": "2020-11-19",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/",
+ "source": "https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/",
+ "target": "https://jefklakscodex.com/articles/reviews/gobliins2/",
+ "publishedFromNow": "4 months ago",
+ "relativeTarget": "/articles/reviews/gobliins2/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "The Internet Killed Secrets in Games",
+ "content": "What's the 'secret' of the secret cow level in Diablo II?",
+ "published": "2020-11-19",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/",
+ "source": "https://brainbaking.com/post/2020/11/the-internet-killed-secrets-in-games/",
+ "target": "https://jefklakscodex.com/articles/reviews/sacred/",
+ "publishedFromNow": "4 months ago",
+ "relativeTarget": "/articles/reviews/sacred/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "Building an Athlon Windows 98 Retro PC",
+ "content": "Gaming from Quake to Quake III: Arena!",
+ "published": "2020-10-17",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2020/10/building-an-athlon-win98-retro-pc/",
+ "source": "https://brainbaking.com/post/2020/10/building-an-athlon-win98-retro-pc/",
+ "target": "https://jefklakscodex.com/tags/wizardry8/",
+ "publishedFromNow": "5 months ago",
+ "relativeTarget": "/tags/wizardry8/"
+ },
+ {
+ "author": {
+ "name": "Wouter Groeneveld",
+ "picture": "https://brainbaking.com/img/avatar.jpg"
+ },
+ "name": "A journey through the history of webdesign",
+ "content": "Using personal websites and the Internet Archive",
+ "published": "2020-10-04",
+ "type": "mention",
+ "url": "https://brainbaking.com/post/2020/10/a-personal-journey-through-the-history-of-webdesign/",
+ "source": "https://brainbaking.com/post/2020/10/a-personal-journey-through-the-history-of-webdesign/",
+ "target": "https://jefklakscodex.com/tags/baldurs-gate-2/",
+ "publishedFromNow": "6 months ago",
+ "relativeTarget": "/tags/baldurs-gate-2/"
+ }
+]
\ No newline at end of file
diff --git a/jamstack-init.js b/jamstack-init.js
index a09adeb..b3579bb 100644
--- a/jamstack-init.js
+++ b/jamstack-init.js
@@ -1,5 +1,5 @@
-const { howlongtobeat } = require('jam-my-stack');
+const { howlongtobeat, webmention } = require('jam-my-stack');
const fsp = require('fs').promises;
@@ -7,5 +7,15 @@ const fsp = require('fs').promises;
console.log("1. adding Howlongtobeat info...")
await howlongtobeat.howlong(`${__dirname}/content/articles`)
+ // 4. get webmentions
+ console.log("2. Fetching webmentions...")
+ const mentions = await webmention.getWebmentions("jefklakscodex.com")
+ const json = JSON.stringify(mentions, null, 4)
+ await fsp.writeFile(`${__dirname}/data/webmentions.json`, json, 'utf-8')
+
+ // 5. send webmentions
+ console.log("3. Sending webmentions...")
+ await webmention.send("jefklakscodex.com", `${__dirname}/data/webmentions-since.json`)
+
console.log("-- all done!")
})()
diff --git a/package.json b/package.json
index d02d2b7..24880a7 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,6 @@
},
"homepage": "https://jefklakscodex.com",
"dependencies": {
- "jam-my-stack": "^1.0.4"
+ "jam-my-stack": "^1.0.13"
}
}
diff --git a/themes/jefklak-creative-portfolio/assets/sass/_toot.sass b/themes/jefklak-creative-portfolio/assets/sass/_toot.sass
new file mode 100644
index 0000000..3d5a4ba
--- /dev/null
+++ b/themes/jefklak-creative-portfolio/assets/sass/_toot.sass
@@ -0,0 +1,40 @@
+
+.toot
+ background: scale-color($bglight, $lightness: +40%)
+ border: 1px solid #cccccc
+ padding: 0.5em
+ border-radius: 5px
+ box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px
+
+ &:hover
+ border-color: var(--accent)
+ box-shadow: rgba(100, 100, 111, 0.2) 5px 17px 29px 5px
+
+.notes
+ .u-photo
+ border-radius: 50%
+ margin-top: 0
+
+.u-comment .avatar
+ margin-top: -55px
+
+ img
+ width: 60px
+ height: 60px
+
+.tootlist
+
+ h1, h2, h3
+ text-align: left
+
+ h3
+ margin-left: 3rem
+
+ .toot
+ cursor: pointer
+ margin-bottom: 3rem !important
+ margin-top: 2rem !important
+
+ .meta
+ border-top: 1px solid #eeeeee
+ padding-top: 0.5rem
\ No newline at end of file
diff --git a/themes/jefklak-creative-portfolio/assets/sass/_variables.sass b/themes/jefklak-creative-portfolio/assets/sass/_variables.sass
index 42b9e03..2060c6a 100644
--- a/themes/jefklak-creative-portfolio/assets/sass/_variables.sass
+++ b/themes/jefklak-creative-portfolio/assets/sass/_variables.sass
@@ -1,3 +1,6 @@
+// can't mix both, but want to "lighten" this one dynamically
+$bglight: #f1f4dd
+
html
--accent: #a6a57c
--bglight: #f1f4dd
diff --git a/themes/jefklak-creative-portfolio/assets/sass/main.sass b/themes/jefklak-creative-portfolio/assets/sass/main.sass
index ed45d16..b6e833b 100644
--- a/themes/jefklak-creative-portfolio/assets/sass/main.sass
+++ b/themes/jefklak-creative-portfolio/assets/sass/main.sass
@@ -2,3 +2,4 @@
@import 'fonts'
@import 'codex'
@import 'sidebar'
+@import 'toot'
\ No newline at end of file
diff --git a/themes/jefklak-creative-portfolio/layouts/_default/rss.xml b/themes/jefklak-creative-portfolio/layouts/_default/rss.xml
index c05384f..2b6dcaf 100644
--- a/themes/jefklak-creative-portfolio/layouts/_default/rss.xml
+++ b/themes/jefklak-creative-portfolio/layouts/_default/rss.xml
@@ -1,3 +1,4 @@
+{{- $allowedRssSections := (slice "articles") -}}
{{- $baseurl := .Site.BaseURL -}}
{{- $pctx := . -}}
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
@@ -27,6 +28,7 @@
{{ printf "
+ {{ .name | safeHTML }}: {{ .content | safeHTML }} +
+ +