forked from ethereumclassic/ethereumclassic.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rss-feeds.js
95 lines (93 loc) · 2.17 KB
/
rss-feeds.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// TODO languages
const feeds = [
{
output: '/rss.xml',
title: 'Ethereum Classic News',
description: 'All Blog Articles and News Links from EthereumClassic.org',
query: `
type: { in: ["collection", "markdown"] }
parentDirectory: { in: ["blog", "news"] }
`
},
{
output: '/rss-blog.xml',
title: 'Ethereum Classic Blog',
description: 'All Blog Articles from EthereumClassic.org',
query: `
type: { in: ["markdown"] }
parentDirectory: { in: ["blog"] }
`
},
{
output: '/rss-links.xml',
title: 'Ethereum Classic Links',
description: 'All News Links from EthereumClassic.org',
query: `
type: { in: ["collection"] }
parentDirectory: { in: ["news"] }
`
}
];
module.exports = ({ siteUrl, image }) => ({
query: `
{
site {
siteMetadata {
siteUrl
}
}
}
`,
feeds: feeds.map(({ title, description, query, output }) => ({
output,
title,
description,
language: 'en',
image_url: `${siteUrl}/${image}`,
site_url: siteUrl,
generator: 'https://github.com/ethereumclassic/ethereumclassic.github.io',
serialize: ({ query: { site, items } }) => {
return items.nodes.map(({ data, excerpt, relativeDirectory }) => {
return {
title: data.title,
date: data.date,
author: [data.author, data.source].filter(i => i).join(', '),
categories: data.tags,
description: excerpt,
url: data.link || `${site.siteMetadata.siteUrl}/${relativeDirectory}`
};
});
},
query: `
{
items: allYamlI18N(
filter: {
locale: { eq: "en" }
${query}
}
sort: { fields: data___date, order: DESC }
limit: 30
) {
nodes {
id
relativeDirectory
type
data {
link
tags
title
author
source
date
}
parent {
... on Mdx {
excerpt(pruneLength: 200)
}
}
}
}
}
`
}))
});