Calculate the similarity between posts by tf-idf and Cosine similarity.
Installation
npm i --save gatsby-remark-related-posts
Example projects
Usage
plugins: [
`gatsby-remark-related-posts`,
];
or
plugins: [
{
resolve: 'gatsby-remark-related-posts',
options: {
doc_lang: 'en',
target_node: 'MarkdownRemark',
getMarkdown: (node) => node.rawMarkdownBody,
each_bow_size: 30,
},
},
];
option | type | description |
---|
doc_lang | "en" | "ja" (default: "en") | ISO 639-1 language code of your post. |
target_node | "MarkdownRemark" | "Mdx" | "StrapiArticle" (default: "MarkdownRemark") | Gatsby node name to calculate similarity. |
getMarkdown | Function: (node) => string (default: (node) => node.rawMarkdownBody) | Function to get Markdown text from Gatsby node. |
each_bow_size | number (default: 30) | Adjust the size of the Bow vector. If you encounter problems during build, set it to a small value. |
Querying Example
`
{
relatedMarkdownRemarks(parent: {id: {eq: $markdownRemarksId}}) {
posts {
frontmatter {
title
}
fields {
slug
}
}
}
}
`;
{
"data": {
"relatedMarkdownRemarks": {
"posts": [
{
"frontmatter": {
"title": "English language"
},
"fields": {
"slug": "/11/"
}
},
{
"frontmatter": {
"title": "Japanese language"
},
"fields": {
"slug": "/12/"
}
},
{
"frontmatter": {
"title": "Spanish language"
},
"fields": {
"slug": "/13/"
}
},
]
}
},
}
posts
is array of MarkdownRemark
ordered by related to $markdownRemarksId
.
Licence
MIT