Skip to content

Commit

Permalink
- updates
Browse files Browse the repository at this point in the history
  • Loading branch information
saheelahmed2 committed Feb 17, 2024
1 parent 155697e commit dfe6853
Show file tree
Hide file tree
Showing 6 changed files with 232 additions and 125 deletions.
1 change: 1 addition & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodeLinker: node-modules
120 changes: 0 additions & 120 deletions gatsby-config.js

This file was deleted.

174 changes: 174 additions & 0 deletions gatsby-config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
import type { GatsbyConfig, PluginRef } from "gatsby"
import "dotenv/config"

const shouldAnalyseBundle = process.env.ANALYSE_BUNDLE

const config: GatsbyConfig = {
siteMetadata: {
// You can overwrite values here that are used for the SEO component
// You can also add new values here to query them like usual
// See all options: https://github.com/LekoArts/gatsby-themes/blob/main/themes/gatsby-theme-minimal-blog/gatsby-config.mjs
siteTitle: `Saheel Ahmed`,
siteTitleAlt: `Saheel Ahmed`,
siteHeadline: `Saheel Ahmed`,
siteUrl: `https://saheelahmed2.github.io`,
siteDescription: `Saheel Ahmed's Blog`,
// siteImage: `/banner.jpg`,
siteLanguage: `en`,
author: `@saheelahmed2`,
},
trailingSlash: `never`,
plugins: [
{
resolve: `@lekoarts/gatsby-theme-minimal-blog`,
// See the theme's README for all available options
options: {
// https://momentjs.com/docs/#/displaying/format/
formatString: "MMMM Do, YYYY",
mdx: false,
navigation: [
{
title: `Blog`,
slug: `/blog`,
},
{
title: `Projects`,
slug: `/projects`,
},
{
title: `About`,
slug: `/about`,
},
],
externalLinks: [
{
name: "GitHub",
url: "https://github.com/saheelBreezo",
},
{
name: `Twitter`,
url: `https://twitter.com/saheelahmed4`,
},
],
},
},
// MDX config
{
resolve: `gatsby-plugin-mdx`,
options: {
extensions: [`.mdx`, `.md`],
gatsbyRemarkPlugins: [
{
resolve: `gatsby-remark-images`,
options: {
maxWidth: 960,
quality: 90,
linkImagesToOriginal: false,
},
},
// Support linking to headers
"gatsby-remark-autolink-headers",
// Make iframes full width
"gatsby-remark-responsive-iframe",
],
},
},
{
resolve: `gatsby-plugin-sitemap`,
options: {
output: `/`,
},
},
{
resolve: `gatsby-plugin-feed`,
options: {
query: `
{
site {
siteMetadata {
title: siteTitle
description: siteDescription
siteUrl
site_url: siteUrl
}
}
}
`,
feeds: [
{
serialize: ({
query: { site, allPost },
}: {
query: {
allPost: IAllPost;
site: { siteMetadata: ISiteMetadata };
};
}) =>
allPost.nodes.map((post) => {
const url = site.siteMetadata.siteUrl + post.slug;
const content = `<p>${post.excerpt}</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="${url}">Keep reading</a>.</strong></div><br /> <br />`;

return {
title: post.title,
date: post.date,
excerpt: post.excerpt,
url,
guid: url,
custom_elements: [{ "content:encoded": content }],
};
}),
query: `{
allPost(sort: {date: DESC}) {
nodes {
title
date(formatString: "MMMM D, YYYY")
excerpt
slug
}
}
}`,
output: `rss.xml`,
title: `Saheel Ahmed's Blog`,
},
],
},
},
].filter(Boolean) as Array<PluginRef>,
};

export default config;

interface IPostTag {
name: string;
slug: string;
}

interface IPost {
slug: string;
title: string;
defer: boolean;
date: string;
excerpt: string;
contentFilePath: string;
html: string;
timeToRead: number;
wordCount: number;
tags: Array<IPostTag>;
banner: any;
description: string;
canonicalUrl: string;
}

interface IAllPost {
nodes: Array<IPost>;
}

interface ISiteMetadata {
siteTitle: string;
siteTitleAlt: string;
siteHeadline: string;
siteUrl: string;
siteDescription: string;
siteImage: string;
author: string;
}
30 changes: 25 additions & 5 deletions src/components/GithubLink.jsx → src/components/GithubLink.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
import React from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faGithub } from "@fortawesome/free-brands-svg-icons";
import { Styled } from "theme-ui";

// Language colors from:
// https://github.com/ozh/github-colors/blob/master/colors.json
const LANGUAGES = {
cython: {
color: "#fedf5b",
name: "Cython",
},
py: {
color: "#3572A5",
name: "Python",
},
python: {
color: "#3572A5",
name: "Python",
},
js: {
color: "#f1e05a",
name: "JavaScript",
},
ts: {
color: "#3178c6",
name: "TypeScript",
},
stata: {
color: "#1a5f91",
name: "Stata",
},
java: {
Expand All @@ -25,6 +37,14 @@ const LANGUAGES = {
color: "#89e051",
name: "Bash",
},
rust: {
color: "#dea584",
name: "Rust",
},
glsl: {
color: "#5686a5",
name: "GLSL",
},
};

export default function GithubLink(props) {
Expand All @@ -33,16 +53,16 @@ export default function GithubLink(props) {

return (
<span>
{languages.map(language => (
{languages.map((language) => (
<span>
<LanguageDot color={LANGUAGES[language].color} />{" "}
{LANGUAGES[language].name}{" "}
</span>
))}
{/* Styled.a gives the link the same styling as other links in the theme: https://theme-ui.com/api#styled */}
<Styled.a href={href} target="_blank" rel="noopener noreferrer">
<a href={href} target="_blank" rel="noopener noreferrer">
<FontAwesomeIcon icon={faGithub} /> {linkText}
</Styled.a>
</a>
</span>
);
}
Expand All @@ -56,4 +76,4 @@ function LanguageDot(props) {
</g>
</svg>
);
}
}
12 changes: 12 additions & 0 deletions src/pages/404.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import * as React from "react"
import type { PageProps } from "gatsby"
import Layout from "@lekoarts/gatsby-theme-minimal-blog/src/components/layout"

const NotFound = (_props: PageProps) => (
<Layout>
<h1>404 - Page Not Found</h1>
<p>Unfortunately we couldn't find what you were looking for :(</p>
</Layout>
)

export default NotFound
Loading

0 comments on commit dfe6853

Please sign in to comment.