forked from nyancrimew/maia.crimew.gay
start implementing related posts system
This commit is contained in:
parent
f0d68c06fe
commit
f1b1848d88
6 changed files with 139 additions and 3 deletions
29
.eleventy.js
29
.eleventy.js
|
@ -3,6 +3,7 @@ const pluginRss = require('@11ty/eleventy-plugin-rss');
|
|||
const timeToRead = require('eleventy-plugin-time-to-read');
|
||||
const safeLinks = require('@sardine/eleventy-plugin-external-links');
|
||||
const eleventySass = require("@11tyrocks/eleventy-plugin-sass-lightningcss");
|
||||
const related = require("eleventy-plugin-related");
|
||||
|
||||
module.exports = function (eleventyConfig) {
|
||||
const parseDate = (str) => {
|
||||
|
@ -45,11 +46,35 @@ module.exports = function (eleventyConfig) {
|
|||
|
||||
eleventyConfig.addFilter('urlescape', str => {
|
||||
return str.split('/').map(part => encodeURI(part)).join('/')
|
||||
})
|
||||
});
|
||||
|
||||
// this appears to potentially be dependent on rendering order
|
||||
eleventyConfig.addFilter("related", function(obj) {
|
||||
const post = this.ctx;
|
||||
const posts = this.ctx.collections.posts.map(post => post.data);
|
||||
|
||||
const tagScore = (a, b) => {
|
||||
const total = a.tags.length + b.tags.length;
|
||||
const intersection = a.tags.filter(tag => b.tags.includes(tag)).length;
|
||||
return (intersection * 2) / total;
|
||||
}
|
||||
|
||||
const results = related.related({
|
||||
serializer: (doc) => [doc.title, doc.description],
|
||||
weights: [10, 10],
|
||||
})(post, posts).map(result => {
|
||||
return {
|
||||
relative: result.relative + tagScore(post, result.document),
|
||||
document: result.document
|
||||
}
|
||||
});
|
||||
|
||||
return results.filter(result => result.relative > 0.0).slice(0,3);
|
||||
});
|
||||
|
||||
eleventyConfig.addCollection('posts', collection => {
|
||||
return collection.getFilteredByGlob('src/posts/*.md').reverse()
|
||||
})
|
||||
});
|
||||
|
||||
return {
|
||||
templateFormats: ["njk", "md", "html"],
|
||||
|
|
108
package-lock.json
generated
108
package-lock.json
generated
|
@ -13,6 +13,7 @@
|
|||
"@11ty/eleventy-plugin-syntaxhighlight": "^4.0.0",
|
||||
"@11tyrocks/eleventy-plugin-sass-lightningcss": "^1.0.3",
|
||||
"@sardine/eleventy-plugin-external-links": "^1.4.0",
|
||||
"eleventy-plugin-related": "^1.0.6",
|
||||
"eleventy-plugin-time-to-read": "^1.3.0"
|
||||
}
|
||||
},
|
||||
|
@ -424,6 +425,15 @@
|
|||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/afinn-165": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/afinn-165/-/afinn-165-1.0.4.tgz",
|
||||
"integrity": "sha512-7+Wlx3BImrK0HiG6y3lU4xX7SpBPSSu8T9iguPMlaueRFxjbYwAQrp9lqZUuFikqKbd/en8lVREILvP2J80uJA==",
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/wooorm"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
|
@ -455,6 +465,17 @@
|
|||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/apparatus": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/apparatus/-/apparatus-0.0.10.tgz",
|
||||
"integrity": "sha512-KLy/ugo33KZA7nugtQ7O0E1c8kQ52N3IvD/XgIh4w/Nr28ypfkwDfA67F1ev4N1m5D+BOk1+b2dEJDfpj/VvZg==",
|
||||
"dependencies": {
|
||||
"sylvester": ">= 0.0.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.2.6"
|
||||
}
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||
|
@ -910,6 +931,24 @@
|
|||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.401.tgz",
|
||||
"integrity": "sha512-AswqHsYyEbfSn0x87n31Na/xttUqEAg7NUjpiyxC20MaWKLyadOYHMzyLdF78N1iw+FK8/2KHLpZxRdyRILgtA=="
|
||||
},
|
||||
"node_modules/eleventy-plugin-related": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/eleventy-plugin-related/-/eleventy-plugin-related-1.0.6.tgz",
|
||||
"integrity": "sha512-Kg4OrXO8eGZkVA5zdhKKYVjnSEFy7CZIsiJGsGJ6ciC0G8cRxk5oIWxMnMVk5i2k99qN2gsEnA5p18zAr2AenA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/jpoehnelt"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/jpoehnelt"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"related-documents": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/eleventy-plugin-time-to-read": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eleventy-plugin-time-to-read/-/eleventy-plugin-time-to-read-1.3.0.tgz",
|
||||
|
@ -1733,6 +1772,11 @@
|
|||
"resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz",
|
||||
"integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g=="
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"node_modules/lodash.deburr": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz",
|
||||
|
@ -1947,6 +1991,22 @@
|
|||
"mustache": "bin/mustache"
|
||||
}
|
||||
},
|
||||
"node_modules/natural": {
|
||||
"version": "5.2.4",
|
||||
"resolved": "https://registry.npmjs.org/natural/-/natural-5.2.4.tgz",
|
||||
"integrity": "sha512-hstvCeNO63go8GMwZIO/wrmcj2oh0Wom2aN7QFF+1I7EJX/NoyM3jWKDbEoCkkQ7CCqqCn0+QdP9Bj2jkD731A==",
|
||||
"dependencies": {
|
||||
"afinn-165": "^1.0.2",
|
||||
"apparatus": "^0.0.10",
|
||||
"safe-stable-stringify": "^2.2.0",
|
||||
"sylvester": "^0.0.12",
|
||||
"underscore": "^1.9.1",
|
||||
"wordnet-db": "^3.1.11"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.4.10"
|
||||
}
|
||||
},
|
||||
"node_modules/neo-async": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
|
||||
|
@ -2418,6 +2478,25 @@
|
|||
"slash": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/related-documents": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/related-documents/-/related-documents-1.0.8.tgz",
|
||||
"integrity": "sha512-NIbJulmApiKxJRSVkXil/TOSYEnnHOmOrG2JtkClva/w+0CV/KqHSlPREyLijayBaT0XNY3htgVc1ubks6VpCw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/jpoehnelt"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/jpoehnelt"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"lodash": "^4.17.21",
|
||||
"natural": "^5.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve": {
|
||||
"version": "1.22.2",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
|
||||
|
@ -2476,6 +2555,14 @@
|
|||
"queue-microtask": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/safe-stable-stringify": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
|
||||
"integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.62.1",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz",
|
||||
|
@ -2628,6 +2715,14 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/sylvester": {
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/sylvester/-/sylvester-0.0.12.tgz",
|
||||
"integrity": "sha512-SzRP5LQ6Ts2G5NyAa/jg16s8e3R7rfdFjizy1zeoecYWw+nGL+YA1xZvW/+iJmidBGSdLkuvdwTYEyJEb+EiUw==",
|
||||
"engines": {
|
||||
"node": ">=0.2.6"
|
||||
}
|
||||
},
|
||||
"node_modules/to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
|
@ -2674,6 +2769,11 @@
|
|||
"resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz",
|
||||
"integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA=="
|
||||
},
|
||||
"node_modules/underscore": {
|
||||
"version": "1.13.6",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
|
||||
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
|
||||
},
|
||||
"node_modules/unpipe": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
|
@ -2747,6 +2847,14 @@
|
|||
"node": ">= 10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wordnet-db": {
|
||||
"version": "3.1.14",
|
||||
"resolved": "https://registry.npmjs.org/wordnet-db/-/wordnet-db-3.1.14.tgz",
|
||||
"integrity": "sha512-zVyFsvE+mq9MCmwXUWHIcpfbrHHClZWZiVOzKSxNJruIcFn2RbY55zkhiAMMxM8zCVSmtNiViq8FsAZSFpMYag==",
|
||||
"engines": {
|
||||
"node": ">=0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
"@11ty/eleventy-plugin-syntaxhighlight": "^4.0.0",
|
||||
"@11tyrocks/eleventy-plugin-sass-lightningcss": "^1.0.3",
|
||||
"@sardine/eleventy-plugin-external-links": "^1.4.0",
|
||||
"eleventy-plugin-related": "^1.0.6",
|
||||
"eleventy-plugin-time-to-read": "^1.3.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ date: 2023-01-19
|
|||
changed_date: 2023-01-22
|
||||
description: "and grab the TSA nofly list along the way"
|
||||
tags:
|
||||
- leak
|
||||
- security
|
||||
- infosec
|
||||
- jenkins
|
||||
|
|
|
@ -7,7 +7,7 @@ tags:
|
|||
- infosec
|
||||
- malware
|
||||
- reverse engineering
|
||||
- php
|
||||
- analysis
|
||||
feature_image: /img/posts/nebita-malware/cover.jpg
|
||||
feature_alt: "a glitchy edited screenshot of the nebita.com home page"
|
||||
---
|
||||
|
|
|
@ -3,6 +3,7 @@ title: "infosec company owned completely by 4chan user"
|
|||
date: 2023-05-10
|
||||
description: "risk visualize deez nuts"
|
||||
tags:
|
||||
- leak
|
||||
- security
|
||||
- infosec
|
||||
- jenkins
|
||||
|
|
Loading…
Reference in a new issue