diff --git a/.eslintrc.js b/.eslintrc.js index 6575278..ddf7b71 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,37 +1,36 @@ module.exports = { - parser: `@typescript-eslint/parser`, - extends: [ - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - "prettier/@typescript-eslint", + parser: "@typescript-eslint/parser", + extends: ["plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"], + plugins: ["@typescript-eslint", "prettier"], + parserOptions: { + ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features + sourceType: "module", // Allows for the use of imports + }, + env: { + browser: true, + node: true, + }, + rules: { + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-non-null-assertion": "off", + quotes: "off", + "@typescript-eslint/quotes": [ + 1, + "double", + { + avoidEscape: true, + }, ], - plugins: ["@typescript-eslint", "prettier"], - parserOptions: { - ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features - sourceType: "module", // Allows for the use of imports - }, - env: { - browser: true, - node: true, - }, - rules: { - quotes: "off", - "@typescript-eslint/quotes": [ - 2, - "backtick", - { - avoidEscape: true, - }, - ], - indent: ["error", 2, { SwitchCase: 1 }], - "prettier/prettier": [ - "error", - { - trailingComma: "es5", - semi: false, - singleQuote: false, - printWidth: 120, - }, - ], - }, - } \ No newline at end of file + indent: ["error", 2, { SwitchCase: 1 }], + "prettier/prettier": [ + "error", + { + arrowParens: "avoid", + trailingComma: "es5", + semi: false, + singleQuote: false, + printWidth: 120, + }, + ], + }, +} diff --git a/.prettierrc b/.prettierrc index 33d2cfa..4cbc8a4 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,7 @@ { "arrowParens": "avoid", - "semi": false + "trailingComma": "es5", + "semi": false, + "singleQuote": false, + "printWidth": 120 } diff --git a/frontmatter.json b/frontmatter.json new file mode 100644 index 0000000..561c5b4 --- /dev/null +++ b/frontmatter.json @@ -0,0 +1,3 @@ +{ + "$schema": "https://frontmatter.codes/frontmatter.schema.json" +} \ No newline at end of file diff --git a/gatsby-browser.js b/gatsby-browser.js index 4932814..ecbce39 100644 --- a/gatsby-browser.js +++ b/gatsby-browser.js @@ -3,4 +3,4 @@ * * See: https://www.gatsbyjs.com/docs/browser-apis/ */ -import './src/styles/global.css' +import "./src/styles/global.css" diff --git a/gatsby-config.js b/gatsby-config.js index ccd3c90..6003b09 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -1,47 +1,48 @@ module.exports = { siteMetadata: { - title: `Hello Tham`, + title: "Hello Tham", author: { - name: `Hello Tham`, - url: `https://hellotham.com`, - summary: `a boutique management and strategy consulting company`, + name: "Hello Tham", + url: "https://hellotham.com", + summary: "a boutique management and strategy consulting company", }, - description: `Hello Tham is a boutique management consulting firm. We deliver consulting services to clients around the world. We specialise in Business and IT strategies, operating models, strategic roadmaps, enterprise architecture, analytics and business process design. We also assist our clients in implementing our recommendations, models and strategies.`, - siteUrl: `https://hellotham.com/`, + description: + "Hello Tham is a boutique management consulting firm. We deliver consulting services to clients around the world. We specialise in Business and IT strategies, operating models, strategic roadmaps, enterprise architecture, analytics and business process design. We also assist our clients in implementing our recommendations, models and strategies.", + siteUrl: "https://hellotham.com/", social: { - facebook: `https://www.facebook.com/HelloThamCom`, - instagram: `https://www.instagram.com/HelloThamCom/`, - twitter: `https://twitter.com/HelloThamCom`, - linkedin: `https://www.linkedin.com/company/17950469`, - github: `https://github.com/hellotham`, + facebook: "https://www.facebook.com/HelloThamCom", + instagram: "https://www.instagram.com/HelloThamCom/", + twitter: "https://twitter.com/HelloThamCom", + linkedin: "https://www.linkedin.com/company/17950469", + github: "https://github.com/hellotham", }, }, plugins: [ - `gatsby-plugin-svgr-svgo`, - `gatsby-plugin-postcss`, - `gatsby-plugin-react-helmet`, - `gatsby-plugin-mdx-source-name`, - `gatsby-plugin-image`, + "gatsby-plugin-svgr-svgo", + "gatsby-plugin-postcss", + "gatsby-plugin-react-helmet", + "gatsby-plugin-mdx-source-name", + "gatsby-plugin-image", { - resolve: `gatsby-source-filesystem`, + resolve: "gatsby-source-filesystem", options: { - name: `images`, + name: "images", path: `${__dirname}/src/images`, }, }, - `gatsby-transformer-sharp`, - `gatsby-plugin-sharp`, + "gatsby-transformer-sharp", + "gatsby-plugin-sharp", { - resolve: `gatsby-source-filesystem`, + resolve: "gatsby-source-filesystem", options: { - name: `pages`, + name: "pages", path: `${__dirname}/src/pages/`, }, }, { - resolve: `gatsby-source-filesystem`, + resolve: "gatsby-source-filesystem", options: { - name: `posts`, + name: "posts", path: `${__dirname}/src/posts/`, }, }, @@ -49,8 +50,8 @@ module.exports = { resolve: "gatsby-plugin-page-creator", options: { path: `${__dirname}/src/pages/`, - ignore: [ "__generated__/*" ], - } + ignore: ["__generated__/*"], + }, }, { resolve: "gatsby-plugin-page-creator", @@ -59,42 +60,40 @@ module.exports = { }, }, { - resolve: `gatsby-plugin-mdx`, + resolve: "gatsby-plugin-mdx", options: { // defaultLayouts: { // posts: require.resolve("./src/templates/mdx-template.tsx"), // default: require.resolve("./src/templates/mdx-template.tsx"), // }, - extensions: [`.mdx`, `.md`], + extensions: [".mdx", ".md"], gatsbyRemarkPlugins: [ { - resolve: `gatsby-remark-images`, + resolve: "gatsby-remark-images", options: { maxWidth: 2048, linkImagesToOriginal: false, }, }, - { resolve: `gatsby-remark-copy-linked-files` }, - { resolve: `gatsby-remark-smartypants` }, - ], - remarkPlugins: [ - { resolve: `remark-slug` }, - { resolve: `@mapbox/rehype-prism` }, + { resolve: "gatsby-remark-copy-linked-files" }, + { resolve: "gatsby-remark-smartypants" }, ], + remarkPlugins: [{ resolve: "remark-slug" }, { resolve: "@mapbox/rehype-prism" }], }, }, { - resolve: `gatsby-plugin-manifest`, + resolve: "gatsby-plugin-manifest", options: { - name: `Hello Tham`, - short_name: `HelloTham`, - start_url: `/`, - background_color: `#ffffff`, - theme_color: `#660099`, - display: `minimal-ui`, - icon: `src/images/logo.png`, // This path is relative to the root of the site. + name: "Hello Tham", + short_name: "HelloTham", + start_url: "/", + background_color: "#ffffff", + theme_color: "#660099", + display: "minimal-ui", + icon: "src/images/logo.png", // This path is relative to the root of the site. }, }, + "gatsby-plugin-robots-txt", // this (optional) plugin enables Progressive Web App + Offline functionality // To learn more, visit: https://gatsby.dev/offline // `gatsby-plugin-offline`, diff --git a/gatsby-node.js b/gatsby-node.js index e201d58..0520ec7 100644 --- a/gatsby-node.js +++ b/gatsby-node.js @@ -5,17 +5,18 @@ */ // const fs = require(`fs`) -const path = require(`path`) +// eslint-disable-next-line @typescript-eslint/no-var-requires +const path = require("path") exports.onCreateWebpackConfig = ({ actions }) => { actions.setWebpackConfig({ resolve: { alias: { - "@": path.resolve(__dirname, "src") - } - } - }); -}; + "@": path.resolve(__dirname, "src"), + }, + }, + }) +} // exports.createSchemaCustomization = ({ actions }) => { // const { createTypes } = actions @@ -28,4 +29,4 @@ exports.onCreateWebpackConfig = ({ actions }) => { // image: File @fileByRelativePath // } // `) -// } \ No newline at end of file +// } diff --git a/package.json b/package.json index 963d5d7..a791fc4 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "gatsby-plugin-offline": "^4.14.0", "gatsby-plugin-page-creator": "^3.14.0", "gatsby-plugin-react-helmet": "^4.14.0", + "gatsby-plugin-robots-txt": "^1.6.10", "gatsby-plugin-sharp": "^3.14.0", "gatsby-plugin-svgr-svgo": "^1.2.2", "gatsby-remark-copy-linked-files": "^4.11.0", diff --git a/src/components/PostHero.tsx b/src/components/PostHero.tsx index 48c9fc8..96be224 100644 --- a/src/components/PostHero.tsx +++ b/src/components/PostHero.tsx @@ -11,18 +11,8 @@ interface PostHeroProps { tags?: string[] } -const PostHero = ({ - title, - description, - author, - date, - image, - tags, -}: PostHeroProps) => ( -
© {new Date().getFullYear()} Hello Tham Pty Ltd - + @HelloThamCom
- + Privacy Policy
diff --git a/src/components/header.tsx b/src/components/header.tsx index 9ab1551..580e27e 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -1,24 +1,23 @@ import * as React from "react" -import { Fragment } from 'react' -import { Disclosure, Menu, Transition } from '@headlessui/react' -import { BellIcon, MenuIcon, XIcon } from '@heroicons/react/outline' +import { Disclosure } from "@headlessui/react" +import { MenuIcon, XIcon } from "@heroicons/react/outline" -import Logo from '../images/logo.svg' -import HelloTham from '../images/hellotham.svg' +import Logo from "@/svg/logo.svg" +import HelloTham from "@/svg/hellotham.svg" const navigation = [ - { name: 'Home', href: '/', current: true }, - { name: 'About', href: '/pages/about', current: false }, - { name: 'Services', href: '/pages/services', current: false }, - { name: 'Consultants', href: '/pages/consultants', current: false }, - { name: 'Partners', href: '/pages/partners', current: false }, - { name: 'Achievements', href: '/pages/work', current: false }, - { name: 'Blog', href: '/blog', current: false }, + { name: "Home", href: "/", current: true }, + { name: "About", href: "/pages/about", current: false }, + { name: "Services", href: "/pages/services", current: false }, + { name: "Consultants", href: "/pages/consultants", current: false }, + { name: "Partners", href: "/pages/partners", current: false }, + { name: "Achievements", href: "/pages/work", current: false }, + { name: "Blog", href: "/blog", current: false }, ] function classNames(...classes: string[]) { - return classes.filter(Boolean).join(' ') + return classes.filter(Boolean).join(" ") } export default function Header() { @@ -41,28 +40,22 @@ export default function Header() {- This means that you can create and write .ts/.tsx files for your - pages, components etc. Please note that the gatsby-*.js files - (like gatsby-node.js) currently don't support TypeScript yet. + This means that you can create and write .ts/.tsx files for your pages, components etc. Please note that + the gatsby-*.js files (like gatsby-node.js) currently don't support TypeScript yet.
- For type checking you'll want to install typescript via npm and - run tsc --init to create a tsconfig file. + For type checking you'll want to install typescript via npm and run tsc --init to create a{" "} + tsconfig file.
- You're currently on the page "{path}" which was built on{" "} - {data.site.buildTime}. + You're currently on the page "{path}" which was built on {data.site.buildTime}.
To learn more, head over to our{" "} - - documentation about TypeScript - - . + documentation about TypeScript.
Go back to the homepage diff --git a/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect/index.md b/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect.mdx similarity index 97% rename from src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect/index.md rename to src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect.mdx index 694c616..fa39980 100644 --- a/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect/index.md +++ b/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect.mdx @@ -2,7 +2,7 @@ title: Six Signs of a Failing Enterprise Architect author: Chris Tham date: 2016-02-14T22:00:00.000Z -image: ./sixsigns.jpg +image: ../images/sixsigns.jpg description: How many of these signs have you experienced? tags: - Enterprise Architecture diff --git a/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect/sixsigns.jpg b/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect/sixsigns.jpg deleted file mode 100644 index f373cec..0000000 Binary files a/src/posts/2016-02-15-six-signs-of-a-failing-enterprise-architect/sixsigns.jpg and /dev/null differ diff --git a/src/images/Unix_history-simple.svg b/src/svg/Unix_history-simple.svg similarity index 100% rename from src/images/Unix_history-simple.svg rename to src/svg/Unix_history-simple.svg diff --git a/src/images/email.svg b/src/svg/email.svg similarity index 100% rename from src/images/email.svg rename to src/svg/email.svg diff --git a/src/images/facebook.svg b/src/svg/facebook.svg similarity index 100% rename from src/images/facebook.svg rename to src/svg/facebook.svg diff --git a/src/images/favicon.ico b/src/svg/favicon.ico similarity index 100% rename from src/images/favicon.ico rename to src/svg/favicon.ico diff --git a/src/images/hellotham logo.svg b/src/svg/hellotham logo.svg similarity index 100% rename from src/images/hellotham logo.svg rename to src/svg/hellotham logo.svg diff --git a/src/images/hellotham.svg b/src/svg/hellotham.svg similarity index 100% rename from src/images/hellotham.svg rename to src/svg/hellotham.svg diff --git a/src/images/instagram.svg b/src/svg/instagram.svg similarity index 100% rename from src/images/instagram.svg rename to src/svg/instagram.svg diff --git a/src/images/linkedin.svg b/src/svg/linkedin.svg similarity index 100% rename from src/images/linkedin.svg rename to src/svg/linkedin.svg diff --git a/src/images/logo-square.svg b/src/svg/logo-square.svg similarity index 100% rename from src/images/logo-square.svg rename to src/svg/logo-square.svg diff --git a/src/images/logo-title.svg b/src/svg/logo-title.svg similarity index 100% rename from src/images/logo-title.svg rename to src/svg/logo-title.svg diff --git a/src/images/logo.svg b/src/svg/logo.svg similarity index 100% rename from src/images/logo.svg rename to src/svg/logo.svg diff --git a/src/images/phone.svg b/src/svg/phone.svg similarity index 100% rename from src/images/phone.svg rename to src/svg/phone.svg diff --git a/src/images/safari-pinned-tab.svg b/src/svg/safari-pinned-tab.svg similarity index 100% rename from src/images/safari-pinned-tab.svg rename to src/svg/safari-pinned-tab.svg diff --git a/src/images/sydney.svg b/src/svg/sydney.svg similarity index 100% rename from src/images/sydney.svg rename to src/svg/sydney.svg diff --git a/src/images/twitter.svg b/src/svg/twitter.svg similarity index 100% rename from src/images/twitter.svg rename to src/svg/twitter.svg diff --git a/src/images/undraw_All_the_data_re_hh4w.svg b/src/svg/undraw_All_the_data_re_hh4w.svg similarity index 100% rename from src/images/undraw_All_the_data_re_hh4w.svg rename to src/svg/undraw_All_the_data_re_hh4w.svg diff --git a/src/images/undraw_In_progress_re_m1l6.svg b/src/svg/undraw_In_progress_re_m1l6.svg similarity index 100% rename from src/images/undraw_In_progress_re_m1l6.svg rename to src/svg/undraw_In_progress_re_m1l6.svg diff --git a/src/images/undraw_Logic_re_nyb4.svg b/src/svg/undraw_Logic_re_nyb4.svg similarity index 100% rename from src/images/undraw_Logic_re_nyb4.svg rename to src/svg/undraw_Logic_re_nyb4.svg diff --git a/src/images/undraw_Modern_professional_re_3b6l.svg b/src/svg/undraw_Modern_professional_re_3b6l.svg similarity index 100% rename from src/images/undraw_Modern_professional_re_3b6l.svg rename to src/svg/undraw_Modern_professional_re_3b6l.svg diff --git a/src/images/undraw_Portfolio_re_qwm5.svg b/src/svg/undraw_Portfolio_re_qwm5.svg similarity index 100% rename from src/images/undraw_Portfolio_re_qwm5.svg rename to src/svg/undraw_Portfolio_re_qwm5.svg diff --git a/src/images/undraw_Team_page_re_cffb.svg b/src/svg/undraw_Team_page_re_cffb.svg similarity index 100% rename from src/images/undraw_Team_page_re_cffb.svg rename to src/svg/undraw_Team_page_re_cffb.svg diff --git a/src/images/undraw_design_components_9vy6-2.svg b/src/svg/undraw_design_components_9vy6-2.svg similarity index 100% rename from src/images/undraw_design_components_9vy6-2.svg rename to src/svg/undraw_design_components_9vy6-2.svg diff --git a/src/images/undraw_design_inspiration_fmjm.svg b/src/svg/undraw_design_inspiration_fmjm.svg similarity index 100% rename from src/images/undraw_design_inspiration_fmjm.svg rename to src/svg/undraw_design_inspiration_fmjm.svg diff --git a/src/images/undraw_destinations_fpv7.svg b/src/svg/undraw_destinations_fpv7.svg similarity index 100% rename from src/images/undraw_destinations_fpv7.svg rename to src/svg/undraw_destinations_fpv7.svg diff --git a/src/images/undraw_features_overview_jg7a.svg b/src/svg/undraw_features_overview_jg7a.svg similarity index 100% rename from src/images/undraw_features_overview_jg7a.svg rename to src/svg/undraw_features_overview_jg7a.svg diff --git a/src/images/undraw_ideas_flow_cy7b.svg b/src/svg/undraw_ideas_flow_cy7b.svg similarity index 100% rename from src/images/undraw_ideas_flow_cy7b.svg rename to src/svg/undraw_ideas_flow_cy7b.svg diff --git a/src/images/undraw_informed_decision_p2lh.svg b/src/svg/undraw_informed_decision_p2lh.svg similarity index 100% rename from src/images/undraw_informed_decision_p2lh.svg rename to src/svg/undraw_informed_decision_p2lh.svg diff --git a/src/images/undraw_navigator_a479.svg b/src/svg/undraw_navigator_a479.svg similarity index 100% rename from src/images/undraw_navigator_a479.svg rename to src/svg/undraw_navigator_a479.svg diff --git a/src/images/undraw_our_solution_htvp.svg b/src/svg/undraw_our_solution_htvp.svg similarity index 100% rename from src/images/undraw_our_solution_htvp.svg rename to src/svg/undraw_our_solution_htvp.svg diff --git a/src/images/undraw_right_places_h9n3.svg b/src/svg/undraw_right_places_h9n3.svg similarity index 100% rename from src/images/undraw_right_places_h9n3.svg rename to src/svg/undraw_right_places_h9n3.svg diff --git a/src/images/undraw_through_the_park_lxnl.svg b/src/svg/undraw_through_the_park_lxnl.svg similarity index 100% rename from src/images/undraw_through_the_park_lxnl.svg rename to src/svg/undraw_through_the_park_lxnl.svg diff --git a/src/templates/mdx-template.tsx b/src/templates/mdx-template.tsx index b4ed785..8cc0cc8 100644 --- a/src/templates/mdx-template.tsx +++ b/src/templates/mdx-template.tsx @@ -34,7 +34,7 @@ const MDXTemplate = ({ pageContext, children }: LayoutProps) => {