~samhh/samhh.com

ref: 9308fd818fa00d0e281ae60d3f723cb1928cfa80 samhh.com/gatsby-config.ts -rw-r--r-- 2.7 KiB
9308fd81 — Sam A. Horvath-Hunt Add Unsplash job 1 year, 3 months ago
                                                                                
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
export const siteMetadata = {
  siteUrl: "https://www.samhh.com",
  title: "Sam A. Horvath-Hunt's blog",
  description:
    "Sam A. Horvath-Hunt's personal blog. Mostly about code and tech.",
}

type SerializeData = {
  query: {
    site: {
      siteMetadata: {
        siteUrl: string
      }
    }
    allMarkdownRemark: {
      edges: {
        node: {
          excerpt: string
          html: string
          frontmatter: {
            slug: string
            title: string
            date: string
          }
        }
      }[]
    }
  }
}

type FeedPostMeta = {
  title: string
  description: string
  date: string
  url: string
  guid: string
  custom_elements: Record<string, unknown>[]
}

export const plugins = [
  "gatsby-plugin-sitemap",
  "gatsby-plugin-robots-txt",
  {
    resolve: "gatsby-plugin-feed",
    options: {
      query: `
        {
          site {
            siteMetadata {
              title
              description
              siteUrl
              site_url: siteUrl
            }
          }
        }
      `,
      feeds: [
        {
          serialize: ({
            query: {
              site,
              allMarkdownRemark: { edges },
            },
          }: SerializeData): FeedPostMeta[] =>
            edges.map(({ node }) => ({
              title: node.frontmatter.title,
              description: node.excerpt,
              date: node.frontmatter.date,
              url: site.siteMetadata.siteUrl + "/blog/" + node.frontmatter.slug,
              guid: node.frontmatter.slug,
              custom_elements: [{ "content:encoded": node.html }],
            })),
          query: `
          {
            allMarkdownRemark(
              sort: { order: DESC, fields: [frontmatter___date, frontmatter___title] },
            ) {
              edges {
                node {
                  excerpt
                  html
                  frontmatter {
                    slug
                    title
                    date
                  }
                }
              }
            }
          }
        `,
          output: "/rss.xml",
          title: "Sam A. Horvath-Hunt's blog",
        },
      ],
    },
  },
  "gatsby-plugin-react-helmet",
  "gatsby-plugin-typescript",
  {
    resolve: "gatsby-plugin-alias-imports",
    options: {
      alias: {
        "~": "src",
      },
    },
  },
  {
    resolve: "gatsby-source-filesystem",
    options: {
      path: `${__dirname}/data/writings/published/`,
      name: "markdown-pages",
    },
  },
  {
    resolve: "gatsby-transformer-remark",
    options: {
      plugins: [
        "gatsby-remark-autolink-headers",
        "gatsby-remark-prismjs",
        "gatsby-remark-smartypants",
      ],
    },
  },
  "gatsby-plugin-no-javascript",
]