From 29b42cc97e5a478981a3d8f44b9e2d13cae8d6ec Mon Sep 17 00:00:00 2001 From: James Cahill Date: Mon, 2 Oct 2023 10:05:08 +0100 Subject: [PATCH] Experiment with configuring gatsby-plugin-mdx --- gatsby-config.ts | 11 +++++++- package.json | 3 ++- pnpm-lock.yaml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/gatsby-config.ts b/gatsby-config.ts index 2f6b67f7..c18b5adc 100644 --- a/gatsby-config.ts +++ b/gatsby-config.ts @@ -2,6 +2,8 @@ import type { GatsbyConfig, PluginRef } from "gatsby"; import childProcess from "child_process"; +import remarkToc from "remark-toc"; + import ResolvePagesParams from "./src/types/gatsby-config/resolvePagesParams"; import Page from "./src/types/gatsby-config/page"; @@ -209,7 +211,14 @@ const config: GatsbyConfig = { `gatsby-plugin-sharp`, `gatsby-transformer-sharp`, // Needed for dynamic images `gatsby-plugin-no-sourcemaps`, - `gatsby-plugin-mdx`, + { + resolve: `gatsby-plugin-mdx`, + options: { + mdxOptions: { + remarkPlugins: [[remarkToc, { heading: "contents", maxDepth: 1 }]], + }, + }, + }, `gatsby-transformer-genetic-sequences`, // Custom plugin to parse gb, fasta files. `gatsby-plugin-pnpm`, // configure webpack for pnpm dependency resolution `gatsby-plugin-postcss`, // for TailwindCSS for nested menu on src/pages/visualiser.tsx diff --git a/package.json b/package.json index bb76cf55..41749eb8 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,8 @@ "gatsby-plugin-manifest": "^5.12.0", "gatsby-plugin-mdx": "^5.12.0", "gatsby-plugin-no-sourcemaps": "^5.12.0", - "gatsby-plugin-postcss": "^6.12.0", "gatsby-plugin-pnpm": "^1.2.10", + "gatsby-plugin-postcss": "^6.12.0", "gatsby-plugin-preact": "^7.12.0", "gatsby-plugin-remote-images": "^3.6.6", "gatsby-plugin-sharp": "^5.12.0", @@ -58,6 +58,7 @@ "gatsby-yaml-full-markdown": "^5.0.1", "postcss": "^8.4.31", "prettier": "^3.0.3", + "remark-toc": "^9.0.0", "tailwindcss": "^3.3.3", "typescript": "^5.2.2", "webpack-stats-plugin": "^1.1.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 933d1531..f9381b3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,6 +118,9 @@ devDependencies: prettier: specifier: ^3.0.3 version: 3.0.3 + remark-toc: + specifier: ^9.0.0 + version: 9.0.0 tailwindcss: specifier: ^3.3.3 version: 3.3.3 @@ -3092,6 +3095,12 @@ packages: '@types/unist': 2.0.6 dev: true + /@types/mdast@4.0.1: + resolution: {integrity: sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==} + dependencies: + '@types/unist': 2.0.6 + dev: true + /@types/mdx@2.0.5: resolution: {integrity: sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==} dev: true @@ -3188,10 +3197,18 @@ packages: source-map: 0.6.1 dev: true + /@types/ungap__structured-clone@0.3.0: + resolution: {integrity: sha512-eBWREUhVUGPze+bUW22AgUr05k8u+vETzuYdLYSvWqGTUe0KOf+zVnOB1qER5wMcw8V6D9Ar4DfJmVvD1yu0kQ==} + dev: true + /@types/unist@2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true + /@types/unist@3.0.0: + resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} + dev: true + /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: @@ -3342,6 +3359,10 @@ packages: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + /@vercel/webpack-asset-relocator-loader@1.7.3: resolution: {integrity: sha512-vizrI18v8Lcb1PmNNUBz7yxPxxXoOeuaVEjTG9MjvDrphjiSxFZrRJ5tIghk+qdLFRCXI5HBCshgobftbmrC5g==} dependencies: @@ -8351,6 +8372,12 @@ packages: '@types/mdast': 3.0.11 dev: true + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.1 + dev: true + /mdast-util-toc@6.1.1: resolution: {integrity: sha512-Er21728Kow8hehecK2GZtb7Ny3omcoPUVrmObiSUwmoRYVZaXLR751QROEFjR8W/vAQdHMLj49Lz20J55XaNpw==} dependencies: @@ -8363,6 +8390,18 @@ packages: unist-util-visit: 4.1.2 dev: true + /mdast-util-toc@7.0.0: + resolution: {integrity: sha512-C28UcSqjmnWuvgT8d97qpaItHKvySqVPAECUzqQ51xuMyNFFJwcFoKW77KoMjtXrclTidLQFDzLUmTmrshRweA==} + dependencies: + '@types/mdast': 4.0.1 + '@types/ungap__structured-clone': 0.3.0 + '@ungap/structured-clone': 1.2.0 + github-slugger: 2.0.0 + mdast-util-to-string: 4.0.0 + unist-util-is: 6.0.0 + unist-util-visit: 5.0.0 + dev: true + /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -10254,6 +10293,13 @@ packages: mdast-util-to-markdown: 0.6.5 dev: true + /remark-toc@9.0.0: + resolution: {integrity: sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==} + dependencies: + '@types/mdast': 4.0.1 + mdast-util-toc: 7.0.0 + dev: true + /remark-unwrap-images@3.0.1: resolution: {integrity: sha512-5VUY0n+J9lPTPfkct5S3/SbutryBjp8J/4mbgtlkDrOk3h8jde0hyqdYUJOoJKherZezS08tjd6i4+nnQ+wl5w==} dependencies: @@ -11412,6 +11458,12 @@ packages: '@types/unist': 2.0.6 dev: true + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.0 + dev: true + /unist-util-position-from-estree@1.1.2: resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} dependencies: @@ -11461,6 +11513,13 @@ packages: unist-util-is: 5.2.1 dev: true + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.0 + unist-util-is: 6.0.0 + dev: true + /unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} dependencies: @@ -11477,6 +11536,14 @@ packages: unist-util-visit-parents: 5.1.3 dev: true + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: true + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'}