Skip to content

Commit

Permalink
Merge pull request #135 from WhiteMinds/feat/107_MarkdownTableSupport
Browse files Browse the repository at this point in the history
  • Loading branch information
Keith-CY authored May 17, 2023
2 parents dd93022 + a869d11 commit 32c4e24
Show file tree
Hide file tree
Showing 3 changed files with 238 additions and 4 deletions.
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@
"react-markdown": "^8.0.6",
"react-resize-detector": "^8.0.4",
"react-share": "4.4.1",
"rehype-raw": "^6.1.1",
"rehype-sanitize": "^5.0.1",
"remark": "14.0.2",
"remark-gfm": "^3.0.1",
"remark-html": "15.0.2",
"rxjs": "^7.8.0",
"sass": "^1.58.3",
Expand Down
5 changes: 5 additions & 0 deletions src/pages/knowledge-base/[slug].page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import Head from 'next/head'
import { TwitterShareButton, LinkedinShareButton, RedditShareButton, FacebookShareButton } from 'react-share'
import { useTranslation } from 'next-i18next'
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
import remarkGfm from 'remark-gfm'
import rehypeRaw from 'rehype-raw'
import rehypeSanitize from 'rehype-sanitize'
import ReactMarkdown from 'react-markdown'
import { HeadingProps } from 'react-markdown/lib/ast-to-react'
import { Page } from '../../components/Page'
Expand Down Expand Up @@ -107,6 +110,8 @@ const Post = ({ post, recents, categories }: Props) => {

<div>
<ReactMarkdown
remarkPlugins={[remarkGfm]}
rehypePlugins={[rehypeRaw, rehypeSanitize]}
components={{
h1: wrapHeadingWithTOCItem('h1'),
h2: wrapHeadingWithTOCItem('h2'),
Expand Down
234 changes: 230 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4029,6 +4029,13 @@ __metadata:
languageName: node
linkType: hard

"escape-string-regexp@npm:^5.0.0":
version: 5.0.0
resolution: "escape-string-regexp@npm:5.0.0"
checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e
languageName: node
linkType: hard

"eslint-config-next@npm:^13.2.1":
version: 13.3.4
resolution: "eslint-config-next@npm:13.3.4"
Expand Down Expand Up @@ -5118,7 +5125,7 @@ __metadata:
languageName: node
linkType: hard

"hast-util-raw@npm:^7.0.0":
"hast-util-raw@npm:^7.0.0, hast-util-raw@npm:^7.2.0":
version: 7.2.3
resolution: "hast-util-raw@npm:7.2.3"
dependencies:
Expand Down Expand Up @@ -6539,6 +6546,13 @@ __metadata:
languageName: node
linkType: hard

"markdown-table@npm:^3.0.0":
version: 3.0.3
resolution: "markdown-table@npm:3.0.3"
checksum: 8fcd3d9018311120fbb97115987f8b1665a603f3134c93fbecc5d1463380c8036f789e2a62c19432058829e594fff8db9ff81c88f83690b2f8ed6c074f8d9e10
languageName: node
linkType: hard

"mathml-tag-names@npm:^2.0.1, mathml-tag-names@npm:^2.1.3":
version: 2.1.3
resolution: "mathml-tag-names@npm:2.1.3"
Expand Down Expand Up @@ -6566,6 +6580,18 @@ __metadata:
languageName: node
linkType: hard

"mdast-util-find-and-replace@npm:^2.0.0":
version: 2.2.2
resolution: "mdast-util-find-and-replace@npm:2.2.2"
dependencies:
"@types/mdast": ^3.0.0
escape-string-regexp: ^5.0.0
unist-util-is: ^5.0.0
unist-util-visit-parents: ^5.0.0
checksum: b4ce463c43fe6e1c38a53a89703f755c84ab5437f49bff9a0ac751279733332ca11c85ed0262aa6c17481f77b555d26ca6d64e70d6814f5b8d12d34a3e53a60b
languageName: node
linkType: hard

"mdast-util-from-markdown@npm:^1.0.0":
version: 1.3.0
resolution: "mdast-util-from-markdown@npm:1.3.0"
Expand All @@ -6586,6 +6612,76 @@ __metadata:
languageName: node
linkType: hard

"mdast-util-gfm-autolink-literal@npm:^1.0.0":
version: 1.0.3
resolution: "mdast-util-gfm-autolink-literal@npm:1.0.3"
dependencies:
"@types/mdast": ^3.0.0
ccount: ^2.0.0
mdast-util-find-and-replace: ^2.0.0
micromark-util-character: ^1.0.0
checksum: 1748a8727cfc533bac0c287d6e72d571d165bfa77ae0418be4828177a3ec73c02c3f2ee534d87eb75cbaffa00c0866853bbcc60ae2255babb8210f7636ec2ce2
languageName: node
linkType: hard

"mdast-util-gfm-footnote@npm:^1.0.0":
version: 1.0.2
resolution: "mdast-util-gfm-footnote@npm:1.0.2"
dependencies:
"@types/mdast": ^3.0.0
mdast-util-to-markdown: ^1.3.0
micromark-util-normalize-identifier: ^1.0.0
checksum: 2d77505f9377ed7e14472ef5e6b8366c3fec2cf5f936bb36f9fbe5b97ccb7cce0464d9313c236fa86fb844206fd585db05707e4fcfb755e4fc1864194845f1f6
languageName: node
linkType: hard

"mdast-util-gfm-strikethrough@npm:^1.0.0":
version: 1.0.3
resolution: "mdast-util-gfm-strikethrough@npm:1.0.3"
dependencies:
"@types/mdast": ^3.0.0
mdast-util-to-markdown: ^1.3.0
checksum: 17003340ff1bba643ec4a59fd4370fc6a32885cab2d9750a508afa7225ea71449fb05acaef60faa89c6378b8bcfbd86a9d94b05f3c6651ff27a60e3ddefc2549
languageName: node
linkType: hard

"mdast-util-gfm-table@npm:^1.0.0":
version: 1.0.7
resolution: "mdast-util-gfm-table@npm:1.0.7"
dependencies:
"@types/mdast": ^3.0.0
markdown-table: ^3.0.0
mdast-util-from-markdown: ^1.0.0
mdast-util-to-markdown: ^1.3.0
checksum: 8b8c401bb4162e53f072a2dff8efbca880fd78d55af30601c791315ab6722cb2918176e8585792469a0c530cebb9df9b4e7fede75fdc4d83df2839e238836692
languageName: node
linkType: hard

"mdast-util-gfm-task-list-item@npm:^1.0.0":
version: 1.0.2
resolution: "mdast-util-gfm-task-list-item@npm:1.0.2"
dependencies:
"@types/mdast": ^3.0.0
mdast-util-to-markdown: ^1.3.0
checksum: c9b86037d6953b84f11fb2fc3aa23d5b8e14ca0dfcb0eb2fb289200e172bb9d5647bfceb4f86606dc6d935e8d58f6a458c04d3e55e87ff8513c7d4ade976200b
languageName: node
linkType: hard

"mdast-util-gfm@npm:^2.0.0":
version: 2.0.2
resolution: "mdast-util-gfm@npm:2.0.2"
dependencies:
mdast-util-from-markdown: ^1.0.0
mdast-util-gfm-autolink-literal: ^1.0.0
mdast-util-gfm-footnote: ^1.0.0
mdast-util-gfm-strikethrough: ^1.0.0
mdast-util-gfm-table: ^1.0.0
mdast-util-gfm-task-list-item: ^1.0.0
mdast-util-to-markdown: ^1.0.0
checksum: 7078cb985255208bcbce94a121906417d38353c6b1a9acbe56ee8888010d3500608b5d51c16b0999ac63ca58848fb13012d55f26930ff6c6f3450f053d56514e
languageName: node
linkType: hard

"mdast-util-phrasing@npm:^3.0.0":
version: 3.0.1
resolution: "mdast-util-phrasing@npm:3.0.1"
Expand All @@ -6612,7 +6708,7 @@ __metadata:
languageName: node
linkType: hard

"mdast-util-to-markdown@npm:^1.0.0":
"mdast-util-to-markdown@npm:^1.0.0, mdast-util-to-markdown@npm:^1.3.0":
version: 1.5.0
resolution: "mdast-util-to-markdown@npm:1.5.0"
dependencies:
Expand Down Expand Up @@ -6702,7 +6798,7 @@ __metadata:
languageName: node
linkType: hard

"micromark-core-commonmark@npm:^1.0.1":
"micromark-core-commonmark@npm:^1.0.0, micromark-core-commonmark@npm:^1.0.1":
version: 1.0.6
resolution: "micromark-core-commonmark@npm:1.0.6"
dependencies:
Expand All @@ -6726,6 +6822,99 @@ __metadata:
languageName: node
linkType: hard

"micromark-extension-gfm-autolink-literal@npm:^1.0.0":
version: 1.0.4
resolution: "micromark-extension-gfm-autolink-literal@npm:1.0.4"
dependencies:
micromark-util-character: ^1.0.0
micromark-util-sanitize-uri: ^1.0.0
micromark-util-symbol: ^1.0.0
micromark-util-types: ^1.0.0
checksum: ea66602cc8375bffb414a662f54d7868ed8ba38a7fe9fca6b2c5f6d9ac632f6ed29e88a58dbd45a580c5c629e50c13e9b864382b796d549a69c5f69ba1df51f9
languageName: node
linkType: hard

"micromark-extension-gfm-footnote@npm:^1.0.0":
version: 1.1.0
resolution: "micromark-extension-gfm-footnote@npm:1.1.0"
dependencies:
micromark-core-commonmark: ^1.0.0
micromark-factory-space: ^1.0.0
micromark-util-character: ^1.0.0
micromark-util-normalize-identifier: ^1.0.0
micromark-util-sanitize-uri: ^1.0.0
micromark-util-symbol: ^1.0.0
micromark-util-types: ^1.0.0
uvu: ^0.5.0
checksum: 7a5408625ef2cca5cc18e6591c2522a8a409f466a6fbc0ed938950aafe5fc9bf1eada65e1a4dd4e36ec3e7b24920de1f4b3e2c365d8f5cd2d6ccb1f8c2377c49
languageName: node
linkType: hard

"micromark-extension-gfm-strikethrough@npm:^1.0.0":
version: 1.0.5
resolution: "micromark-extension-gfm-strikethrough@npm:1.0.5"
dependencies:
micromark-util-chunked: ^1.0.0
micromark-util-classify-character: ^1.0.0
micromark-util-resolve-all: ^1.0.0
micromark-util-symbol: ^1.0.0
micromark-util-types: ^1.0.0
uvu: ^0.5.0
checksum: 548c0f257753d735c741533411957f04253da53db31e1f398dc5dc1de9f398c45586baad5223dce8f3b55f9433c255e6eb695fc3104256b8c332dd8737136882
languageName: node
linkType: hard

"micromark-extension-gfm-table@npm:^1.0.0":
version: 1.0.6
resolution: "micromark-extension-gfm-table@npm:1.0.6"
dependencies:
micromark-factory-space: ^1.0.0
micromark-util-character: ^1.0.0
micromark-util-symbol: ^1.0.0
micromark-util-types: ^1.0.0
uvu: ^0.5.0
checksum: 92a5c15314bc87c9630a0cb1bd0b0ba4493e13e1bc5d02d55fdd843b56bf6b229ced2c73e331dd98d90d721e0929f5cf16737d3dd1864d61e6d0b7748695349a
languageName: node
linkType: hard

"micromark-extension-gfm-tagfilter@npm:^1.0.0":
version: 1.0.2
resolution: "micromark-extension-gfm-tagfilter@npm:1.0.2"
dependencies:
micromark-util-types: ^1.0.0
checksum: 7d2441df51f890c86f8e7cf7d331a570b69c8105fa1c2fc5b737cb739502c16c8ee01cf35550a8a78f89497c5dfacc97cf82d55de6274e8320f3aec25e2b0dd2
languageName: node
linkType: hard

"micromark-extension-gfm-task-list-item@npm:^1.0.0":
version: 1.0.4
resolution: "micromark-extension-gfm-task-list-item@npm:1.0.4"
dependencies:
micromark-factory-space: ^1.0.0
micromark-util-character: ^1.0.0
micromark-util-symbol: ^1.0.0
micromark-util-types: ^1.0.0
uvu: ^0.5.0
checksum: 2575bb47b320f2479d3cc2492ba7cf79d6baa9cd0200c0ed120fd0e318e64e8ebab4a93a056a3781cb5107193f3b36ebd2d86a5928308bef45fc121291f97eb5
languageName: node
linkType: hard

"micromark-extension-gfm@npm:^2.0.0":
version: 2.0.2
resolution: "micromark-extension-gfm@npm:2.0.2"
dependencies:
micromark-extension-gfm-autolink-literal: ^1.0.0
micromark-extension-gfm-footnote: ^1.0.0
micromark-extension-gfm-strikethrough: ^1.0.0
micromark-extension-gfm-table: ^1.0.0
micromark-extension-gfm-tagfilter: ^1.0.0
micromark-extension-gfm-task-list-item: ^1.0.0
micromark-util-combine-extensions: ^1.0.0
micromark-util-types: ^1.0.0
checksum: b6462eea1f1d083da53261a4de6d389a4d95e8291c8f994aecdd79c03cfed0db1181733b1a9b3a8b4795e7baf8507ba7c056e968e866f2b551376ae7d36e1fb2
languageName: node
linkType: hard

"micromark-factory-destination@npm:^1.0.0":
version: 1.0.0
resolution: "micromark-factory-destination@npm:1.0.0"
Expand Down Expand Up @@ -7272,7 +7461,10 @@ __metadata:
react-markdown: ^8.0.6
react-resize-detector: ^8.0.4
react-share: 4.4.1
rehype-raw: ^6.1.1
rehype-sanitize: ^5.0.1
remark: 14.0.2
remark-gfm: ^3.0.1
remark-html: 15.0.2
rxjs: ^7.8.0
sass: ^1.58.3
Expand Down Expand Up @@ -8520,6 +8712,40 @@ __metadata:
languageName: node
linkType: hard

"rehype-raw@npm:^6.1.1":
version: 6.1.1
resolution: "rehype-raw@npm:6.1.1"
dependencies:
"@types/hast": ^2.0.0
hast-util-raw: ^7.2.0
unified: ^10.0.0
checksum: a1f9d309e609f49fb1f1e06e722705f4dd2e569653a89f756eaccb33b612cf1bb511216a81d10a619d11d047afc161e4b3cb99b957df05a8ba8fdbd5843f949a
languageName: node
linkType: hard

"rehype-sanitize@npm:^5.0.1":
version: 5.0.1
resolution: "rehype-sanitize@npm:5.0.1"
dependencies:
"@types/hast": ^2.0.0
hast-util-sanitize: ^4.0.0
unified: ^10.0.0
checksum: aa5f3627a767124d21c155b79bab8d5c2bc02e7b14164a5d22fe35b114f331d3bdb81afc150d1378d5cdb39107bd868b28814b1501a1954fdd1183b16dcdd5be
languageName: node
linkType: hard

"remark-gfm@npm:^3.0.1":
version: 3.0.1
resolution: "remark-gfm@npm:3.0.1"
dependencies:
"@types/mdast": ^3.0.0
mdast-util-gfm: ^2.0.0
micromark-extension-gfm: ^2.0.0
unified: ^10.0.0
checksum: 02254f74d67b3419c2c9cf62d799ec35f6c6cd74db25c001361751991552a7ce86049a972107bff8122d85d15ae4a8d1a0618f3bc01a7df837af021ae9b2a04e
languageName: node
linkType: hard

"remark-html@npm:15.0.2":
version: 15.0.2
resolution: "remark-html@npm:15.0.2"
Expand Down Expand Up @@ -10333,7 +10559,7 @@ __metadata:
languageName: node
linkType: hard

"unist-util-visit-parents@npm:^5.1.1":
"unist-util-visit-parents@npm:^5.0.0, unist-util-visit-parents@npm:^5.1.1":
version: 5.1.3
resolution: "unist-util-visit-parents@npm:5.1.3"
dependencies:
Expand Down

0 comments on commit 32c4e24

Please sign in to comment.