diff --git a/docs/developers/contributing.md b/docs/developers/contributing.md index 72884fc585..3034b0c870 100644 --- a/docs/developers/contributing.md +++ b/docs/developers/contributing.md @@ -25,7 +25,7 @@ We encourage an early pull request approach, meaning pull requests are created a ## Contributing to the Geth website {#contributing-to-website} -The Geth website is hosted separately from Geth itself. The contribution guidelines are the same. Please for the Geth website GitHub repository and raise pull requests for the maintainers to review and merge. +The Geth website is hosted separately from Geth itself. The contribution guidelines are the same. Please check out the [website repository](https://github.com/ethereum/geth-website) and raise pull requests for the maintainers to review and merge. ## License {#license} diff --git a/docs/developers/geth-developer/code-review-guidelines.md b/docs/developers/geth-developer/code-review-guidelines.md index 91ad66c1d1..2fa8e1cb77 100644 --- a/docs/developers/geth-developer/code-review-guidelines.md +++ b/docs/developers/geth-developer/code-review-guidelines.md @@ -8,7 +8,6 @@ The only way to get code into Geth is to submit a pull request (PR). Those pull ## Terminology {#terminology} - The **author** of a pull request is the entity who wrote the diff and submitted it to GitHub. - - The **team** consists of people with commit rights on the go-ethereum repository. - The **reviewer** is the person assigned to review the diff. The reviewer must be a team member. - The **code owner** is the person responsible for the subsystem being modified by the PR. diff --git a/docs/fundamentals/command-line-options.md b/docs/fundamentals/command-line-options.md index c77bfd0fab..a110ddeee5 100644 --- a/docs/fundamentals/command-line-options.md +++ b/docs/fundamentals/command-line-options.md @@ -3,8 +3,7 @@ title: Command-line Options description: A list of commands for Geth --- -Geth is primarily controlled using the command line. Geth is started using the `geth` command. Geth is stopped by pressing `ctrl-c`. There are then many combinations of commands that configure precisely how geth will run. These commands are displayed below. The same information can be -obtained at any time from your Geth instance by running: +Geth is primarily controlled using the command line. Geth is started using the `geth` command. Geth is stopped by pressing `ctrl-c`. There are then many combinations of commands that configure precisely how geth will run. These commands are displayed below. The same information can be obtained at any time from your Geth instance by running: ```sh geth --help diff --git a/docs/fundamentals/peer-to-peer.md b/docs/fundamentals/peer-to-peer.md index 28c71225eb..ddfe0e52e2 100644 --- a/docs/fundamentals/peer-to-peer.md +++ b/docs/fundamentals/peer-to-peer.md @@ -3,7 +3,7 @@ title: Connecting To The Network description: Guide to connecting Geth to a peer-to-peer network --- -The default behaviour for Geth is to connect to Ethereum Mainnet. However, Geth can also connect to public testnets, [private networks](/docs/developers/geth-developer/private-network) and [local testnets](/docs/developers/geth-developer/dev-mode). For convenience, the two public testnets with long term support, Goerli and Sepolia, have their own command line flag. Geth can connect to these testnets simpyl by passing: +The default behaviour for Geth is to connect to Ethereum Mainnet. However, Geth can also connect to public testnets, [private networks](/docs/developers/geth-developer/private-network) and [local testnets](/docs/developers/geth-developer/dev-mode). For convenience, the two public testnets with long term support, Goerli and Sepolia, have their own command line flag. Geth can connect to these testnets simply by passing: - `--goerli`, Goerli proof-of-authority test network - `--sepolia` Sepolia proof-of-work test network diff --git a/docs/interacting-with-geth/rpc/ns-debug.md b/docs/interacting-with-geth/rpc/ns-debug.md index 1ab4376bc6..b1a07fb118 100644 --- a/docs/interacting-with-geth/rpc/ns-debug.md +++ b/docs/interacting-with-geth/rpc/ns-debug.md @@ -672,7 +672,7 @@ If set, the previous four arguments will be ignored. Valid values are described [here](https://golang.org/pkg/time/#ParseDuration). - `tracerConfig`: Config for the specified `tracer`. For example see callTracer's [config](/docs/developers/evm-tracing/built-in-tracers#config). -Geth comes with a bundle of [built-in tracers](/docs/developers/evm-tracing//built-in-tracers), each providing various data about a transaction. This method defaults to the [struct logger](/docs/developers/evm-tracing/built-in-tracers#structopcode-logger). The `tracer` field of the second parameter can be set to use any of the other tracers. Alternatively a [custom tracer](/docs/developers/evm-tracing/custom-tracer) can be implemented in either Go or Javascript. +Geth comes with a bundle of [built-in tracers](/docs/developers/evm-tracing/built-in-tracers), each providing various data about a transaction. This method defaults to the [struct logger](/docs/developers/evm-tracing/built-in-tracers#structopcode-logger). The `tracer` field of the second parameter can be set to use any of the other tracers. Alternatively a [custom tracer](/docs/developers/evm-tracing/custom-tracer) can be implemented in either Go or Javascript. #### Example diff --git a/docs/interacting-with-geth/rpc/ns-personal-deprecation.md b/docs/interacting-with-geth/rpc/ns-personal-deprecation.md index 4f2137ccd0..e06845290c 100644 --- a/docs/interacting-with-geth/rpc/ns-personal-deprecation.md +++ b/docs/interacting-with-geth/rpc/ns-personal-deprecation.md @@ -23,7 +23,7 @@ Unpair deletes a pairing between some specific types of smartcard wallet and Get InitializeWallet is for initializing some specific types of smartcard wallet at a provided URL. There is not yet a corresponding method in Clef. -## Methods with replacements: +## Methods with replacements ### personal_listAccounts diff --git a/docs/monitoring/metrics.md b/docs/monitoring/metrics.md index 87ce5aecbf..63db533a57 100644 --- a/docs/monitoring/metrics.md +++ b/docs/monitoring/metrics.md @@ -30,11 +30,11 @@ Timers are extensions of _meters_, the _duration_ of an event is collected along - Percentile 80: general performance (these should be optimised) - Percentile 95: worst case outliers (rare, just handle gracefully) -### Counters: {#counters} +### Counters {#counters} A counter is a single int64 value that can be incremented and decremented. The current value of the counter can be queried. -### Gauges: {#guages} +### Gauges {#guages} A gauge is a single int64 value. Its value can increment and decrement - as with a counter - but can also be set arbitrarily. diff --git a/docs/tools/puppeth.md b/docs/tools/puppeth.md index 6c91e6df9b..f70fa7214a 100644 --- a/docs/tools/puppeth.md +++ b/docs/tools/puppeth.md @@ -1,5 +1,5 @@ --- -title: puppeth +title: Puppeth description: introduction to the private-network boot-strapping tool, Puppeth --- diff --git a/next.config.js b/next.config.js index 403aed7493..1285e663dd 100644 --- a/next.config.js +++ b/next.config.js @@ -1,18 +1,12 @@ /** @type {import('next').NextConfig} */ +const { redirects: redirectsList } = require('./redirects'); -const withMDX = require('@next/mdx')({ - extension: /\.mdx?$/, - options: { - remarkPlugins: [], - rehypePlugins: [] - // If you use `MDXProvider`, uncomment the following line. - // providerImportSource: "@mdx-js/react", - } -}); - -module.exports = withMDX({ +module.exports = { reactStrictMode: true, swcMinify: true, // Append the default value with md extensions - pageExtensions: ['ts', 'tsx', 'md', 'mdx'] -}); + pageExtensions: ['ts', 'tsx', 'md'], + async redirects() { + return redirectsList; + } +}; diff --git a/package.json b/package.json index 976cb10777..3894ba391b 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,6 @@ "@docsearch/react": "3", "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", - "@mdx-js/loader": "^2.1.3", - "@mdx-js/react": "^2.1.3", - "@next/mdx": "^12.3.0", "algoliasearch": "^4.14.2", "chakra-ui-markdown-renderer": "^4.1.0", "fast-xml-parser": "^4.0.12", diff --git a/redirects.js b/redirects.js new file mode 100644 index 0000000000..83ecd6fbc2 --- /dev/null +++ b/redirects.js @@ -0,0 +1,246 @@ +const redirects = [ + { + source: '/docs/getting-started/dev-mode', + destination: '/docs/developers/geth-developer/dev-mode', + permanent: true + }, + { + source: '/docs/install-and-build/installing-geth', + destination: '/docs/getting-started/installing-geth', + permanent: true + }, + { + source: '/docs/install-and-build/backup-restore', + destination: '/docs/getting-started/backup-restore', + permanent: true + }, + { + source: '/docs/interface/command-line-options', + destination: '/docs/fundamentals/command-line-options', + permanent: true + }, + { + source: '/docs/interface/pruning', + destination: '/docs/fundamentals/pruning', + permanent: true + }, + { + source: '/docs/interface/consensus-clients', + destination: '/docs/getting-started/consensus-client', + permanent: true + }, + { + source: '/docs/interface/peer-to-peer', + destination: '/docs/fundamentals/peer-to-peer', + permanent: true + }, + { + source: '/docs/interface/les', + destination: '/docs/fundamentals/les', + permanent: true + }, + { + source: '/docs/interface/managing-your-accounts', + destination: '/docs/fundamentals/account-management', + permanent: true + }, + { + source: '/docs/interface/javascript-console', + destination: '/docs/interacting-with-geth/javascript-console', + permanent: true + }, + { + source: '/docs/interface/private-network', + destination: '/docs/developers/geth-developer/private-network', + permanent: true + }, + { + source: '/docs/interface/mining', + destination: '/docs/fundamentals/mining', + permanent: true + }, + { + source: '/docs/interface/metrics', + destination: '/docs/monitoring/metrics', + permanent: true + }, + { + source: '/docs/dapp/native', + destination: '/docs/developers/dapp-developer/native', + permanent: true + }, + { + source: '/docs/dapp/tracing', + destination: '/docs/developers/evm-tracing', + permanent: true + }, + { + source: '/docs/dapp/custom-tracer', + destination: '/docs/developers/evm-tracing/custom-tracer', + permanent: true + }, + { + source: '/docs/dapp/builtin-tracers', + destination: '/docs/developers/evm-tracing/built-in-tracers', + permanent: true + }, + { + source: '/docs/dapp/native-accounts', + destination: '/docs/developers/dapp-developer/native-accounts', + permanent: true + }, + { + source: '/docs/dapp/native-bindings', + destination: '/docs/developers/dapp-developer/native-bindings', + permanent: true + }, + { + source: '/docs/dapp/mobile', + destination: '/docs/developers/dapp-developer/mobile', + permanent: true + }, + { + source: '/docs/dapp/mobile-accounts', + destination: '/docs/developers/dapp-developer/mobile', + permanent: true + }, + { + source: '/docs/rpc/server', + destination: '/docs/interacting-with-geth/rpc', + permanent: true + }, + { + source: '/docs/rpc/pubsub', + destination: '/docs/interacting-with-geth/rpc/pubsub', + permanent: true + }, + { + source: '/docs/rpc/batch', + destination: '/docs/interacting-with-geth/batch', + permanent: true + }, + { + source: '/docs/rpc/graphql', + destination: '/docs/interacting-with-geth/rpc/graphql', + permanent: true + }, + { + source: '/docs/rpc/ns-admin', + destination: '/docs/interacting-with-geth/rpc/ns-admin', + permanent: true + }, + { + source: '/docs/rpc/ns-clique', + destination: '/docs/interacting-with-geth/rpc/ns-clique', + permanent: true + }, + { + source: '/docs/rpc/ns-debug', + destination: '/docs/interacting-with-geth/rpc/ns-debug', + permanent: true + }, + { + source: '/docs/rpc/ns-eth', + destination: '/docs/interacting-with-geth/rpc/ns-eth', + permanent: true + }, + { + source: '/docs/rpc/ns-les', + destination: '/docs/interacting-with-geth/rpc/ns-les', + permanent: true + }, + { + source: '/docs/rpc/ns-miner', + destination: '/docs/interacting-with-geth/rpc/ns-miner', + permanent: true + }, + { + source: '/docs/rpc/ns-net', + destination: '/docs/interacting-with-geth/rpc/ns-net', + permanent: true + }, + { + source: '/docs/rpc/ns-personal', + destination: '/docs/interacting-with-geth/rpc/ns-personal', + permanent: true + }, + { + source: '/docs/rpc/ns-txpool', + destination: '/docs/interacting-with-geth/rpc/ns-txpool', + permanent: true + }, + { + source: '/docs/rpc/objects', + destination: '/docs/interacting-with-geth/rpc/objects', + permanent: true + }, + { + source: '/docs/developers/dev-guide', + destination: '/docs/developers/geth-developer/dev-guide', + permanent: true + }, + { + source: '/docs/developers/code-review-guidelines', + destination: '/docs/developers/geth-developer/code-review-guidelines', + permanent: true + }, + { + source: '/docs/developers/issue-handling-workflow', + destination: '/docs/developers/geth-developer/issue-handling-workflow', + permanent: true + }, + { + source: '/docs/developers/dns-discovery-setup', + destination: '/docs/developers/geth-developer/dns-discovery-setup', + permanent: true + }, + { + source: '/docs/clef/introduction', + destination: '/docs/tools/clef/introduction', + permanent: true + }, + { + source: '/docs/clef/tutorial', + destination: '/docs/tools/clef/tutorial', + permanent: true + }, + { + source: '/docs/clef/cliquesigning', + destination: '/docs/tools/clef/clique-signing', + permanent: true + }, + { + source: '/docs/clef/rules', + destination: '/docs/tools/clef/rules', + permanent: true + }, + { + source: '/docs/clef/setup', + destination: '/docs/tools/clef/setup', + permanent: true + }, + { + source: '/docs/clef/apis', + destination: '/docs/tools/clef/apis', + permanent: true + }, + { + source: '/docs/clef/datatypes', + destination: '/docs/tools/clef/datatypes', + permanent: true + }, + { + source: '/docs/interface/sync-mode', + destination: '/docs/fundamentals/sync-modes', + permanent: true + }, + { + source: '/docs/interface/hardware', + destination: '/docs/getting-started/hardware-requirements', + permanent: true + } +]; + +module.exports = { + redirects +}; diff --git a/src/components/UI/ButtonLinkSecondary.tsx b/src/components/UI/ButtonLinkSecondary.tsx index 94ff6ff629..509cdc2c4f 100644 --- a/src/components/UI/ButtonLinkSecondary.tsx +++ b/src/components/UI/ButtonLinkSecondary.tsx @@ -9,14 +9,21 @@ interface Props extends LinkProps { export const ButtonLinkSecondary: React.FC = ({ href, children, ...restProps }) => { const isExternal: boolean = href.toString().startsWith('http'); + const variant = LinkTheme.variants['button-link-secondary']; return ( - - + {isExternal ? ( + {children} - + ) : ( + + + {children} + + + )} ); }; diff --git a/src/components/UI/DataTable.tsx b/src/components/UI/DataTable.tsx index 1aa5341ce9..9d51e45178 100644 --- a/src/components/UI/DataTable.tsx +++ b/src/components/UI/DataTable.tsx @@ -1,7 +1,26 @@ -import { Link, Table, Thead, Tr, Th, TableContainer, Text, Tbody, Td } from '@chakra-ui/react'; +import { + Link, + Table, + Thead, + Tr, + Th, + TableContainer, + Text, + Tbody, + Td, + Stack +} from '@chakra-ui/react'; import { FC } from 'react'; + +import { + getOS, + getParsedDate, + isDarwinPrimaryRelease, + isLinuxPrimaryRelease, + isMobilePrimaryRelease, + isWindowsPrimaryRelease +} from '../../utils'; import { OpenPGPSignaturesData, ReleaseData } from '../../types'; -import { getParsedDate } from '../../utils'; interface Props { columnHeaders: string[]; @@ -30,33 +49,56 @@ export const DataTable: FC = ({ columnHeaders, data }) => { pb={4} > - - - {columnHeaders.map((columnHeader, idx) => { - return ( - - ); - })} - - + {data.length > 0 && ( + + + {columnHeaders.map((columnHeader, idx) => { + return ( + + ); + })} + + + )} + {data.length === 0 && ( + + No builds found + + )} + {dataType === 'Releases' && data.map((r: ReleaseData, idx: number) => { + const url = r?.release?.url; + const os = getOS(url); + + const _isLinuxPrimaryRelease = isLinuxPrimaryRelease(r, os, data); + const _isDarwinPrimaryRelease = isDarwinPrimaryRelease(r, os, data); + const _isWindowsPrimaryRelease = isWindowsPrimaryRelease(r, os, data); + const _isMobilePrimaryRelease = isMobilePrimaryRelease(r, os, data); + + const isPrimaryRelease = + _isLinuxPrimaryRelease || + _isDarwinPrimaryRelease || + _isWindowsPrimaryRelease || + _isMobilePrimaryRelease; + return ( {Object.entries(r).map((item, idx) => { const objectItems = ['release', 'commit', 'signature']; diff --git a/src/components/UI/Header.tsx b/src/components/UI/Header.tsx index 6873e5eb70..f38b0d6759 100644 --- a/src/components/UI/Header.tsx +++ b/src/components/UI/Header.tsx @@ -20,22 +20,40 @@ export const Header: FC = () => { justifyContent='space-between' position='relative' > - - + go-ethereum - + + + skip to content + + + {/* HEADER BUTTONS */} @@ -59,6 +77,7 @@ export const Header: FC = () => { bg: 'primary', svg: { color: 'bg' } }} + aria-label={`Toggle ${isDark ? 'light' : 'dark'} mode`} > {isDark ? : } diff --git a/src/components/UI/HeaderButtons.tsx b/src/components/UI/HeaderButtons.tsx index 1c1d7f2cde..89f033dca4 100644 --- a/src/components/UI/HeaderButtons.tsx +++ b/src/components/UI/HeaderButtons.tsx @@ -25,7 +25,7 @@ export const HeaderButtons: FC = ({ close }) => { return ( {/* DOWNLOADS */} - + downloads @@ -34,7 +34,7 @@ export const HeaderButtons: FC = ({ close }) => { {/* DOCUMENTATION */} - + diff --git a/src/components/UI/docs/Breadcrumbs.tsx b/src/components/UI/docs/Breadcrumbs.tsx index e1b6f71304..f1fa912500 100644 --- a/src/components/UI/docs/Breadcrumbs.tsx +++ b/src/components/UI/docs/Breadcrumbs.tsx @@ -6,7 +6,7 @@ import { FC } from 'react'; export const Breadcrumbs: FC = () => { const router = useRouter(); - let pathSplit = router.asPath.split('/'); + let pathSplit = router.asPath.split('#')[0].split('/'); pathSplit = pathSplit.splice(1, pathSplit.length); return ( @@ -16,7 +16,11 @@ export const Breadcrumbs: FC = () => { {pathSplit.map((path: string, idx: number) => { return ( - + {path} diff --git a/src/components/UI/docs/DocsLinks.tsx b/src/components/UI/docs/DocsLinks.tsx index 14beb534ed..509236f7d9 100644 --- a/src/components/UI/docs/DocsLinks.tsx +++ b/src/components/UI/docs/DocsLinks.tsx @@ -9,8 +9,9 @@ import { Stack, Text } from '@chakra-ui/react'; -import { AddIcon, MinusIcon } from '@chakra-ui/icons'; +import { AddIcon, MinusIcon } from '../svgs/'; import NextLink from 'next/link'; +import { useRouter } from 'next/router'; import { LinksList } from './'; @@ -18,64 +19,86 @@ import { NavLink } from '../../../types'; interface Props { navLinks: NavLink[]; + toggleMobileAccordion: () => void; } -export const DocsLinks: FC = ({ navLinks }) => ( - - {navLinks.map(({ id, to, items }, idx) => { - return ( - - - {({ isExpanded }) => ( - <> - - = ({ navLinks, toggleMobileAccordion }) => { + const router = useRouter(); + const { slug } = router.query; + return ( + + {navLinks.map(({ id, to, items }, idx) => { + const split = to?.split('/'); + const isActive = slug && split && split[split.length - 1] === slug[slug.length - 1]; + return ( + + + {({ isExpanded }) => ( + <> + - {to ? ( - - - {id} - - - ) : ( - {id} - )} - + + {to ? ( + + + + {id} + + + + ) : ( + {id} + )} + + {items && ( + +
+ {isExpanded ? ( + + ) : ( + + )} +
+
+ )} +
{items && ( - -
- {isExpanded ? ( - - ) : ( - - )} -
-
+ + + )} - - {items && ( - - - - )} - - )} -
-
- ); - })} -
-); + + )} + + + ); + })} +
+ ); +}; diff --git a/src/components/UI/docs/DocsNav.tsx b/src/components/UI/docs/DocsNav.tsx index 3dcb661d4e..34874108c4 100644 --- a/src/components/UI/docs/DocsNav.tsx +++ b/src/components/UI/docs/DocsNav.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react'; +import { FC, useState } from 'react'; import { Accordion, AccordionButton, @@ -17,14 +17,24 @@ interface Props { } export const DocsNav: FC = ({ navLinks }) => { + const [isMobileAccordionOpen, setMobileAccordionState] = useState(false); + + const toggleMobileAccordion = () => { + setMobileAccordionState(prev => !prev); + }; + return ( - + - + - + = ({ navLinks }) => { color: 'bg' }} > - - Documentation - + Documentation - + diff --git a/src/components/UI/docs/DocumentNav.tsx b/src/components/UI/docs/DocumentNav.tsx index 25663a720b..66cbcfa1fd 100644 --- a/src/components/UI/docs/DocumentNav.tsx +++ b/src/components/UI/docs/DocumentNav.tsx @@ -1,5 +1,5 @@ import { FC } from 'react'; -import { Divider, Link, Stack, Text } from '@chakra-ui/react'; +import { Box, Divider, Link, Text } from '@chakra-ui/react'; import NextLink from 'next/link'; import { parseHeadingId } from '../../../utils/parseHeadingId'; @@ -13,25 +13,41 @@ export const DocumentNav: FC = ({ content }) => { const parsedHeadings = content .split('\n\n') .map(item => item.replace(/[\n\r]/g, '')) - .filter(item => item.startsWith('#')) + .filter(item => item.startsWith('##')) .map(item => parseHeadingId([item])) .filter(item => item); const activeHash = useActiveHash(parsedHeadings.map(heading => heading!.headingId)); - return ( - - - on this page - + return parsedHeadings.length ? ( + + on this page {parsedHeadings.map((heading, idx) => { return ( - - + + {heading?.title} @@ -39,6 +55,6 @@ export const DocumentNav: FC = ({ content }) => { ); })} - - ); + + ) : null; }; diff --git a/src/components/UI/docs/LinkList.tsx b/src/components/UI/docs/LinkList.tsx deleted file mode 100644 index d8c84c72d5..0000000000 --- a/src/components/UI/docs/LinkList.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { FC } from 'react'; -import { Link, Stack, Text } from '@chakra-ui/react'; -import NextLink from 'next/link'; - -import { NavLink } from '../../../types'; - -interface LinksListProps { - links: NavLink[]; -} - -export const LinksList: FC = ({ links }) => ( - - {links.map(({ id, to, items }) => { - return to ? ( - - - - - {id} - - - - {items && } - - ) : ( - - - {id} - - {items && } - - ); - })} - -); diff --git a/src/components/UI/docs/LinksList.tsx b/src/components/UI/docs/LinksList.tsx new file mode 100644 index 0000000000..72b9d15ea6 --- /dev/null +++ b/src/components/UI/docs/LinksList.tsx @@ -0,0 +1,62 @@ +import { FC } from 'react'; +import { Link, Stack, Text } from '@chakra-ui/react'; +import NextLink from 'next/link'; +import { useRouter } from 'next/router'; + +import { NavLink } from '../../../types'; + +interface LinksListProps { + links: NavLink[]; + toggleMobileAccordion: () => void; +} + +export const LinksList: FC = ({ links, toggleMobileAccordion }) => { + const router = useRouter(); + const { slug } = router.query; + return ( + + {links.map(({ id, to, items }) => { + const split = to?.split('/'); + const isActive = slug && split && split[split.length - 1] === slug[slug.length - 1]; + return to ? ( + + + + + {id} + + + + {items && } + + ) : ( + + + {id} + + {items && } + + ); + })} + + ); +}; diff --git a/src/components/UI/docs/MDComponents.tsx b/src/components/UI/docs/MDComponents.tsx index 09f8b2b71f..94612e36eb 100644 --- a/src/components/UI/docs/MDComponents.tsx +++ b/src/components/UI/docs/MDComponents.tsx @@ -15,7 +15,7 @@ import { Code, Note } from '.'; import { textStyles } from '../../../theme/foundations'; import { parseHeadingId } from '../../../utils/parseHeadingId'; -const { header1, header2, header3, header4 } = textStyles; +const { h1, h2, h3, h4 } = textStyles; const MDComponents = { // paragraphs @@ -28,80 +28,64 @@ const MDComponents = { }, // links a: ({ children, href }: any) => { - return ( - - - {children} - + const isExternal = href.startsWith('http') && !href.includes('geth.ethereum.org'); + + return isExternal ? ( + + {children} + + ) : ( + + {children} ); }, // headings h1: ({ children }: any) => { - const heading = parseHeadingId(children); + const { children: parsedChildren, headingId } = parseHeadingId(children); - return heading ? ( - - {heading.children} - - ) : ( - - {children} + return ( + + {parsedChildren} ); }, h2: ({ children }: any) => { - const heading = parseHeadingId(children); + const { children: parsedChildren, headingId } = parseHeadingId(children); - return heading ? ( + return ( - {heading.children} - - ) : ( - - {children} + {parsedChildren} ); }, h3: ({ children }: any) => { - const heading = parseHeadingId(children); - - return heading ? ( - - {heading.children} - - ) : ( - - {children} + const { children: parsedChildren, headingId } = parseHeadingId(children); + return ( + + {parsedChildren} ); }, h4: ({ children }: any) => { - const heading = parseHeadingId(children); + const { children: parsedChildren, headingId } = parseHeadingId(children); - return heading ? ( - - {heading.children} - - ) : ( - - {children} + return ( + + {parsedChildren} ); }, // tables table: ({ children }: any) => ( - +
- - {columnHeader} - -
+ + {columnHeader} + +
( - -
{children}
+ + {children} ), // code @@ -143,7 +127,7 @@ const MDComponents = { ); }, li: ({ children }: any) => { - return {children}; + return {children}; }, note: ({ children }: any) => { return {children}; diff --git a/src/components/UI/docs/index.ts b/src/components/UI/docs/index.ts index 9214774f4c..56eadcff2b 100644 --- a/src/components/UI/docs/index.ts +++ b/src/components/UI/docs/index.ts @@ -3,6 +3,6 @@ export * from './Code'; export * from './DocsLinks'; export * from './DocsNav'; export * from './DocumentNav'; -export * from './LinkList'; +export * from './LinksList'; export * from './Note'; export { default } from './MDComponents'; diff --git a/src/components/UI/downloads/DownloadsHero.tsx b/src/components/UI/downloads/DownloadsHero.tsx index 3792864f71..8a5caa07ef 100644 --- a/src/components/UI/downloads/DownloadsHero.tsx +++ b/src/components/UI/downloads/DownloadsHero.tsx @@ -80,12 +80,17 @@ export const DownloadsHero: FC = ({ {Object.keys(DOWNLOAD_HEADER_BUTTONS).map((key: string) => { const { name, buildURL, Svg, ariaLabel } = DOWNLOAD_HEADER_BUTTONS[key]; + return ( - - @@ -48,8 +48,8 @@ export const HomeHero: FC = () => { - - diff --git a/src/components/UI/homepage/QuickLinks.tsx b/src/components/UI/homepage/QuickLinks.tsx index 34307c5ff2..61e90988a6 100644 --- a/src/components/UI/homepage/QuickLinks.tsx +++ b/src/components/UI/homepage/QuickLinks.tsx @@ -28,7 +28,7 @@ export const QuickLinks: FC = () => {
- + { - + { - + diff --git a/src/components/UI/icons/GitHubIcon.tsx b/src/components/UI/icons/GitHubIcon.tsx index a7954f782a..f93c60a1a1 100644 --- a/src/components/UI/icons/GitHubIcon.tsx +++ b/src/components/UI/icons/GitHubIcon.tsx @@ -6,7 +6,7 @@ export const GitHubIcon = createIcon({ path: ( diff --git a/src/components/UI/icons/HamburgerIcon.tsx b/src/components/UI/icons/HamburgerIcon.tsx index 954b9f57c9..404f1f0c5c 100644 --- a/src/components/UI/icons/HamburgerIcon.tsx +++ b/src/components/UI/icons/HamburgerIcon.tsx @@ -4,11 +4,9 @@ export const HamburgerIcon = createIcon({ displayName: 'HamburgerIcon', viewBox: '0 0 22 14', path: ( - + diff --git a/src/components/UI/icons/LensIcon.tsx b/src/components/UI/icons/LensIcon.tsx index d13c13776d..f6ef12008c 100644 --- a/src/components/UI/icons/LensIcon.tsx +++ b/src/components/UI/icons/LensIcon.tsx @@ -4,9 +4,9 @@ export const LensIcon = createIcon({ displayName: 'LensIcon', viewBox: '0 0 17 18', path: ( - + diff --git a/src/components/UI/icons/LinuxPenguin.tsx b/src/components/UI/icons/LinuxPenguin.tsx index 377fb62376..26c85989fc 100644 --- a/src/components/UI/icons/LinuxPenguin.tsx +++ b/src/components/UI/icons/LinuxPenguin.tsx @@ -9,7 +9,7 @@ const Icon = createIcon({ path: ( diff --git a/src/components/UI/icons/MacosLogo.tsx b/src/components/UI/icons/MacosLogo.tsx index 622ad91f71..57d59091da 100644 --- a/src/components/UI/icons/MacosLogo.tsx +++ b/src/components/UI/icons/MacosLogo.tsx @@ -9,7 +9,7 @@ const Icon = createIcon({ path: ( diff --git a/src/components/UI/icons/MoonIcon.tsx b/src/components/UI/icons/MoonIcon.tsx index aa5db596a5..bdc27c9247 100644 --- a/src/components/UI/icons/MoonIcon.tsx +++ b/src/components/UI/icons/MoonIcon.tsx @@ -4,9 +4,9 @@ export const MoonIcon = createIcon({ displayName: 'MoonIcon', viewBox: '0 0 22 22', path: ( - + diff --git a/src/components/UI/icons/SourceBranch.tsx b/src/components/UI/icons/SourceBranch.tsx index e616360af1..ea73ad0b7a 100644 --- a/src/components/UI/icons/SourceBranch.tsx +++ b/src/components/UI/icons/SourceBranch.tsx @@ -9,7 +9,7 @@ const Icon = createIcon({ path: ( diff --git a/src/components/UI/icons/SunIcon.tsx b/src/components/UI/icons/SunIcon.tsx index 4a69f77fa5..bda950137d 100644 --- a/src/components/UI/icons/SunIcon.tsx +++ b/src/components/UI/icons/SunIcon.tsx @@ -4,29 +4,9 @@ export const SunIcon = createIcon({ displayName: 'SunIcon', viewBox: '0 0 44 44', path: ( - - - - - + - - - - diff --git a/src/components/UI/icons/TwitterIcon.tsx b/src/components/UI/icons/TwitterIcon.tsx index 61f6f73283..dfd5126416 100644 --- a/src/components/UI/icons/TwitterIcon.tsx +++ b/src/components/UI/icons/TwitterIcon.tsx @@ -6,7 +6,7 @@ export const TwitterIcon = createIcon({ path: ( diff --git a/src/components/UI/icons/WindowsLogo.tsx b/src/components/UI/icons/WindowsLogo.tsx index a447ebbffe..844528f775 100644 --- a/src/components/UI/icons/WindowsLogo.tsx +++ b/src/components/UI/icons/WindowsLogo.tsx @@ -9,7 +9,7 @@ const Icon = createIcon({ path: ( diff --git a/src/components/UI/svgs/AddIcon.tsx b/src/components/UI/svgs/AddIcon.tsx new file mode 100644 index 0000000000..6504dcda23 --- /dev/null +++ b/src/components/UI/svgs/AddIcon.tsx @@ -0,0 +1,21 @@ +import { IconProps } from '@chakra-ui/react'; +import { createIcon } from '@chakra-ui/icons'; + +const [w, h] = [24, 24]; + +const Icon = createIcon({ + displayName: 'AddIcon', + viewBox: `0 0 ${w} ${h}`, + path: ( + + + + + + + ) +}); + +export const AddIcon: React.FC = props => ( + +); diff --git a/src/components/UI/svgs/GlyphHome.tsx b/src/components/UI/svgs/GlyphHome.tsx index 4e25ad08b0..fc61324277 100644 --- a/src/components/UI/svgs/GlyphHome.tsx +++ b/src/components/UI/svgs/GlyphHome.tsx @@ -9,40 +9,8 @@ const Icon = createIcon({ path: ( - - - - - ) diff --git a/src/components/UI/svgs/GopherDownloads.tsx b/src/components/UI/svgs/GopherDownloads.tsx index df438c2dd9..33704b9ee7 100644 --- a/src/components/UI/svgs/GopherDownloads.tsx +++ b/src/components/UI/svgs/GopherDownloads.tsx @@ -9,2932 +9,347 @@ const Icon = createIcon({ path: ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + ) diff --git a/src/components/UI/svgs/GopherHomeFront.tsx b/src/components/UI/svgs/GopherHomeFront.tsx index c27023c3ce..7a5cf11b4f 100644 --- a/src/components/UI/svgs/GopherHomeFront.tsx +++ b/src/components/UI/svgs/GopherHomeFront.tsx @@ -9,2710 +9,318 @@ const Icon = createIcon({ path: ( + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) diff --git a/src/components/UI/svgs/GopherHomeLinks.tsx b/src/components/UI/svgs/GopherHomeLinks.tsx index abc8883c2d..325e660143 100644 --- a/src/components/UI/svgs/GopherHomeLinks.tsx +++ b/src/components/UI/svgs/GopherHomeLinks.tsx @@ -8,2496 +8,246 @@ const Icon = createIcon({ viewBox: `0 0 ${w} ${h}`, path: ( + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ) }); diff --git a/src/components/UI/svgs/GopherHomeNodes.tsx b/src/components/UI/svgs/GopherHomeNodes.tsx index f80517c2c7..303ca9f3f4 100644 --- a/src/components/UI/svgs/GopherHomeNodes.tsx +++ b/src/components/UI/svgs/GopherHomeNodes.tsx @@ -9,1780 +9,210 @@ const Icon = createIcon({ path: ( + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) diff --git a/src/components/UI/svgs/MinusIcon.tsx b/src/components/UI/svgs/MinusIcon.tsx new file mode 100644 index 0000000000..5a956d6b1f --- /dev/null +++ b/src/components/UI/svgs/MinusIcon.tsx @@ -0,0 +1,18 @@ +import { IconProps } from '@chakra-ui/react'; +import { createIcon } from '@chakra-ui/icons'; + +const [w, h] = [24, 24]; + +const Icon = createIcon({ + displayName: 'MinusIcon', + viewBox: `0 0 ${w} ${h}`, + path: ( + + + + ) +}); + +export const MinusIcon: React.FC = props => ( + +); diff --git a/src/components/UI/svgs/index.ts b/src/components/UI/svgs/index.ts index c1a85f7e2c..91312334c8 100644 --- a/src/components/UI/svgs/index.ts +++ b/src/components/UI/svgs/index.ts @@ -1,5 +1,7 @@ +export * from './AddIcon'; export * from './GlyphHome'; export * from './GopherDownloads'; export * from './GopherHomeFront'; export * from './GopherHomeLinks'; export * from './GopherHomeNodes'; +export * from './MinusIcon'; diff --git a/src/components/layouts/Footer.tsx b/src/components/layouts/Footer.tsx index 14db5fddfe..36e3f13229 100644 --- a/src/components/layouts/Footer.tsx +++ b/src/components/layouts/Footer.tsx @@ -12,6 +12,12 @@ import { import { DiscordIcon, GitHubIcon, TwitterIcon } from '../UI/icons'; +const hoverStyles = { + textDecoration: 'none', + bg: 'primary', + color: 'bg !important' +}; + export const Footer: FC = () => { return ( @@ -32,17 +38,12 @@ export const Footer: FC = () => {
- - + + DOWNLOADS @@ -51,20 +52,15 @@ export const Footer: FC = () => {
- - + + DOCUMENTATION @@ -81,49 +77,48 @@ export const Footer: FC = () => { lg: 'none' }} borderColor='primary !important' - _hover={{ - bg: 'primary' - }} - p={4} + _hover={hoverStyles} > - - - - - + + +
- - - - - + + +
-
- - - - - +
+ + +
diff --git a/src/components/layouts/MobileMenu.tsx b/src/components/layouts/MobileMenu.tsx index 4629b8d113..fdf132df2b 100644 --- a/src/components/layouts/MobileMenu.tsx +++ b/src/components/layouts/MobileMenu.tsx @@ -28,6 +28,7 @@ export const MobileMenu: React.FC = () => { color='primary' _hover={{ bg: 'primary', color: 'bg' }} onClick={onOpen} + aria-label='Open mobile menu' > diff --git a/src/constants.ts b/src/constants.ts index 3e282e0b85..58c0354042 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -20,7 +20,7 @@ export const GETH_DISCORD_URL = 'https://discord.com/invite/nthXNEv'; export const GO_URL = 'https://go.dev/'; // Downloads -export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 10; +export const DEFAULT_BUILD_AMOUNT_TO_SHOW = 12; export const DOWNLOAD_HEADER_BUTTONS: { [index: string]: { name: string; diff --git a/src/data/documentation-links.yaml b/src/data/documentation-links.yaml index 137b4574d2..f889d4cc6f 100644 --- a/src/data/documentation-links.yaml +++ b/src/data/documentation-links.yaml @@ -1,6 +1,7 @@ - id: Getting started - to: /docs/getting-started items: + - id: Introduction + to: /docs/getting-started - id: Hardware requirements to: /docs/getting-started/hardware-requirements - id: Installing Geth @@ -8,8 +9,9 @@ - id: Consensus clients to: /docs/getting-started/consensus-clients - id: Fundamentals - to: /docs/fundamentals items: + - id: Introduction + to: /docs/fundamentals - id: Node architecture to: /docs/fundamentals/node-architecture - id: Command-line options @@ -35,8 +37,9 @@ - id: Interacting with Geth items: - id: JSON-RPC Server - to: /docs/interacting-with-geth/rpc items: + - id: Introduction + to: /docs/interacting-with-geth/rpc - id: Batch requests to: /docs/interacting-with-geth/rpc/batch - id: GraphQL server @@ -70,8 +73,9 @@ - id: 'JavaScript Console 2: Contracts' to: /docs/interacting-with-geth/javascript-console-contracts - id: Developers - to: /docs/developers items: + - id: Introduction + to: /docs/developers - id: Dapp developers items: - id: Go API @@ -83,8 +87,9 @@ - id: Geth for Mobile to: /docs/developers/dapp-developer/mobile - id: EVM tracing - to: /docs/developers/evm-tracing items: + - id: Introduction + to: /docs/developers/evm-tracing - id: Basic traces to: /docs/developers/evm-tracing/basic-traces - id: Built-in tracers diff --git a/src/pages/[...slug].tsx b/src/pages/[...slug].tsx index d572cba6df..a8f00430eb 100644 --- a/src/pages/[...slug].tsx +++ b/src/pages/[...slug].tsx @@ -1,7 +1,7 @@ import fs from 'fs'; import matter from 'gray-matter'; import yaml from 'js-yaml'; -import { Flex, Stack, Heading, Text } from '@chakra-ui/react'; +import { Box, Grid, Stack, Heading, Text } from '@chakra-ui/react'; import ChakraUIRenderer from 'chakra-ui-markdown-renderer'; import ReactMarkdown from 'react-markdown'; import { useRouter } from 'next/router'; @@ -63,7 +63,7 @@ export const getStaticProps: GetStaticProps = async context => { content, navLinks, lastModified: getParsedDate(lastModified.mtime, { - month: 'numeric', + month: 'long', day: 'numeric', year: 'numeric' }) @@ -99,24 +99,34 @@ const DocPage: NextPage = ({ frontmatter, content, navLinks, lastModified
- + - + - + {frontmatter.title} - last edited {lastModified} + Last edited on {lastModified} - - + + = ({ frontmatter, content, navLinks, lastModified > {content} - + - + - + - +
); diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index d8370b29f1..d83e55da59 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,11 +1,8 @@ import { ChakraProvider } from '@chakra-ui/react'; import { AppProps } from 'next/app'; -import { MDXProvider } from '@mdx-js/react'; import { Layout } from '../components/layouts'; -import MDComponents from '../components/UI/docs'; - import 'focus-visible/dist/focus-visible'; import theme from '../theme'; @@ -15,11 +12,9 @@ import '../theme/search.css'; export default function App({ Component, pageProps }: AppProps) { return ( - - - - - + + + ); } diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx index 9a0ff9aa9e..a28c91b28b 100644 --- a/src/pages/_document.tsx +++ b/src/pages/_document.tsx @@ -2,7 +2,7 @@ import { Html, Head, Main, NextScript } from 'next/document'; export default function Document() { return ( - + {/* fonts are being loaded here to enable optimization (https://nextjs.org/docs/basic-features/font-optimization) */} {/* JetBrains Mono */} @@ -15,7 +15,7 @@ export default function Document() { {/* Inter */} diff --git a/src/pages/downloads.tsx b/src/pages/downloads.tsx index 7be72330b9..b77f2e6749 100644 --- a/src/pages/downloads.tsx +++ b/src/pages/downloads.tsx @@ -287,18 +287,18 @@ const DownloadsPage: NextPage = ({ data }) => { const [totalDevBuilds, setTotalDevBuilds] = useState(ALL_LINUX_DEV_BUILDS.length); const showMoreStableReleases = () => { - setAmountStableReleases(amountStableReleases + 10); + setAmountStableReleases(amountStableReleases + 12); }; const showMoreDevBuilds = () => { - setAmountDevBuilds(amountDevBuilds + 10); + setAmountDevBuilds(amountDevBuilds + 12); }; return ( <> -
+
= ({ data }) => { windowsData={ALL_WINDOWS_STABLE_RELEASES} iOSData={ALL_IOS_STABLE_RELEASES} androidData={ALL_ANDROID_STABLE_RELEASES} + totalReleasesNumber={totalStableReleases} amountOfReleasesToShow={amountStableReleases} setTotalReleases={setTotalStableReleases} /> - - - {totalStableReleases > 0 - ? `Showing ${Math.min( - amountStableReleases, - totalStableReleases - )} latest releases of - a total ${totalStableReleases} releases` - : `No releases`} - - - {totalStableReleases > amountStableReleases && ( = ({ data }) => { windowsData={ALL_WINDOWS_DEV_BUILDS} iOSData={ALL_IOS_DEV_BUILDS} androidData={ALL_ANDROID_DEV_BUILDS} + totalReleasesNumber={totalDevBuilds} amountOfReleasesToShow={amountDevBuilds} setTotalReleases={setTotalDevBuilds} /> - - - {totalDevBuilds > 0 - ? `Showing ${Math.min(amountDevBuilds, totalDevBuilds)} latest releases of - a total ${totalDevBuilds} releases` - : `No releases`} - - - {totalDevBuilds > amountDevBuilds && ( { <> -
+
@@ -44,7 +44,7 @@ const HomePage: NextPage = ({}) => { > Geth (go-ethereum) is a{' '} - + Go {' '} implementation of{' '} diff --git a/src/theme/components/Link.ts b/src/theme/components/Link.ts index ca8aaf93c1..0c09c4ecc7 100644 --- a/src/theme/components/Link.ts +++ b/src/theme/components/Link.ts @@ -15,13 +15,13 @@ export const Link = { light: { textDecoration: 'underline', color: 'primary', - _hover: { color: 'body', textDecorationColor: 'body' }, + _hover: { color: 'body', textDecorationColor: 'secondary' }, _focus: { color: 'primary', - boxShadow: '0 0 0 1px var(--chakra-colors-primary)', + boxShadow: '0 0 0 1px var(--chakra-colors-primary) !important', textDecoration: 'none' }, - _pressed: { + _active: { color: 'secondary', textDecorationColor: 'secondary' } diff --git a/src/theme/foundations/colors.ts b/src/theme/foundations/colors.ts index ed3fef3533..cf74a0e6ca 100644 --- a/src/theme/foundations/colors.ts +++ b/src/theme/foundations/colors.ts @@ -7,14 +7,14 @@ export const colors = { 400: '#1FD3B0', 500: '#2EBDA1', 600: '#11866f', - 700: '#08715C', - 800: '#25453f', - 900: '#02211B' + 700: '#25534A', + 800: '#173C35', + 900: '#01100D' }, gray: { 800: '#1d242c' }, yellow: { - 50: '#f0f2e2' + 50: '#FBFDEF' } }; diff --git a/src/theme/foundations/textStyles.ts b/src/theme/foundations/textStyles.ts index df2c9e9d70..e2e3b4e7f6 100644 --- a/src/theme/foundations/textStyles.ts +++ b/src/theme/foundations/textStyles.ts @@ -2,56 +2,41 @@ export const textStyles = { h1: { fontFamily: 'heading', fontWeight: 700, - fontSize: '2.75rem', + fontSize: { base: '2.175rem', md: '2.875rem' }, lineHeight: '3.375rem', letterSpacing: { base: '0.03rem', md: '0.04rem' }, color: 'body' }, h2: { - fontFamily: 'heading', - fontWeight: 400, - fontSize: { base: '1.5rem', md: '1.75rem' }, - lineHeight: 'normal', - letterSpacing: { base: '0.03rem', md: '0.04rem' }, - color: 'body' - }, - header1: { fontFamily: 'heading', fontWeight: 700, - fontSize: { base: '1.875rem', md: '2.125rem' }, - letterSpacing: { base: '0.03rem', md: '0.04rem' }, - lineHeight: 'normal', - color: 'body' - }, - header2: { - fontFamily: 'heading', fontSize: { base: '1.5rem', md: '1.75rem' }, - letterSpacing: { base: '0.03rem', md: '0.04rem' }, lineHeight: 'normal', + letterSpacing: { base: '0.03rem', md: '0.04rem' }, color: 'body' }, - header3: { + h3: { fontFamily: 'heading', fontSize: { base: '1.25rem', md: '1.375rem' }, letterSpacing: { base: '0.03rem', md: '0.04rem' }, lineHeight: 'normal', color: 'body' }, - header4: { + h4: { fontFamily: 'heading', fontSize: '1.125rem', letterSpacing: { base: '0.03rem', md: '0.04rem' }, lineHeight: 'normal', color: 'body' }, - header5: { + h5: { fontFamily: 'heading', fontSize: '1rem', letterSpacing: '0.02rem', lineHeight: 'normal', color: 'body' }, - header6: { + h6: { fontFamily: 'heading', fontSize: '0.875rem', letterSpacing: '0.02rem', @@ -77,7 +62,8 @@ export const textStyles = { fontFamily: 'heading', color: 'bg', fontWeight: 700, - textTransform: 'uppercase' + textTransform: 'uppercase', + _groupHover: { color: 'yellow.50' } }, 'home-section-link-label': { fontFamily: 'heading', @@ -124,20 +110,22 @@ export const textStyles = { fontFamily: 'heading', color: 'bg', fontSize: { base: 'md', lg: 'xl' }, - textTransform: 'uppercase' + textTransform: 'uppercase', + _groupHover: { color: 'yellow.50' } }, 'downloads-button-sublabel': { fontFamily: 'heading', color: 'bg', fontSize: { base: 'xs', lg: 'sm' }, - textTransform: 'uppercase' + textTransform: 'uppercase', + _groupHover: { color: 'yellow.50' } }, 'download-tab-label': { fontFamily: 'heading', fontWeight: 700, textTransform: 'uppercase', textAlign: 'center', - fontSize: 'sm' + fontSize: { base: 'xs', sm: 'sm' } }, 'docs-nav-dropdown': { fontFamily: 'heading', @@ -190,8 +178,7 @@ export const textStyles = { fontWeight: 400, fontSize: '13px', lineHeight: 5, - letterSpacing: '1%', - mb: 4 + letterSpacing: '1%' }, 'note-text': { fontFamily: 'body', diff --git a/src/theme/index.ts b/src/theme/index.ts index 4900f4df0e..0b2c3bfafe 100644 --- a/src/theme/index.ts +++ b/src/theme/index.ts @@ -27,7 +27,7 @@ const overrides = { textStyles, semanticTokens: { colors: { - primary: { _light: 'green.600', _dark: 'green.200' }, + primary: { _light: 'green.700', _dark: 'green.200' }, secondary: { _light: 'green.800', _dark: 'green.600' }, 'button-bg': { _light: 'green.50', _dark: 'green.900' }, body: { _light: 'gray.800', _dark: 'yellow.50' }, diff --git a/src/types.ts b/src/types.ts index 5104fe71fd..4a93eed9aa 100644 --- a/src/types.ts +++ b/src/types.ts @@ -50,3 +50,5 @@ export interface OpenPGPSignaturesData { }; fingerprint: string; } + +export type OS = 'linux' | 'darwin' | 'windows' | 'mobile'; diff --git a/src/utils/getKebabCaseFromName.ts b/src/utils/getKebabCaseFromName.ts new file mode 100644 index 0000000000..10ce621144 --- /dev/null +++ b/src/utils/getKebabCaseFromName.ts @@ -0,0 +1,7 @@ +export const getKebabCaseFromName = (name: string): string => + name + .replace(/[#]/g, '') + .trim() + .toLowerCase() + .replace(/ /g, '-') + .replace(/[^a-z0-9-]/g, ''); diff --git a/src/utils/getOS.ts b/src/utils/getOS.ts new file mode 100644 index 0000000000..b2a3c61a1d --- /dev/null +++ b/src/utils/getOS.ts @@ -0,0 +1,11 @@ +import { OS } from '../types'; + +// slice to get the last part of the url that includes the os +export const getOS = (url: string): OS => + url?.slice(46).includes('darwin') + ? 'darwin' + : url?.slice(46).includes('linux') + ? 'linux' + : url?.slice(46).includes('windows') + ? 'windows' + : 'mobile'; diff --git a/src/utils/index.ts b/src/utils/index.ts index dcc6c5caa4..f950ec7d46 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -2,8 +2,10 @@ export { compareReleasesFn } from './compareReleasesFn'; export { fetchLatestReleaseCommit } from './fetchLatestReleaseCommit'; export { fetchLatestReleaseVersionAndName } from './fetchLatestReleaseVersionAndName'; export { fetchXMLData } from './fetchXMLData'; -export { getLatestBinaryURL } from './getLatestBinaryURL'; export { getChecksum } from './getChecksum'; +export { getKebabCaseFromName } from './getKebabCaseFromName'; +export { getLatestBinaryURL } from './getLatestBinaryURL'; +export { getOS } from './getOS'; export { getParsedDate } from './getParsedDate'; export { getProgrammingLanguageName } from './getProgrammingLanguageName'; export { getReleaseArch } from './getReleaseArch'; @@ -15,4 +17,8 @@ export { getReleaseSize } from './getReleaseSize'; export { getReleaseURL } from './getReleaseURL'; export { getSignatureURL } from './getSignatureURL'; export { getSortedReleases } from './getSortedReleases'; +export { isDarwinPrimaryRelease } from './isDarwinPrimaryRelease'; +export { isLinuxPrimaryRelease } from './isLinuxPrimaryRelease'; +export { isMobilePrimaryRelease } from './isMobilePrimaryRelease'; +export { isWindowsPrimaryRelease } from './isWindowsPrimaryRelease'; export { mapReleasesData } from './mapReleasesData'; diff --git a/src/utils/isDarwinPrimaryRelease.ts b/src/utils/isDarwinPrimaryRelease.ts new file mode 100644 index 0000000000..1b4f0327e3 --- /dev/null +++ b/src/utils/isDarwinPrimaryRelease.ts @@ -0,0 +1,8 @@ +import { OS, ReleaseData } from '../types'; + +export const isDarwinPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) => + os === 'darwin' && + data + .slice(0, 2) // get latest build to filter on + .filter((e: ReleaseData) => e.arch === '64-bit') + .includes(r); diff --git a/src/utils/isLinuxPrimaryRelease.ts b/src/utils/isLinuxPrimaryRelease.ts new file mode 100644 index 0000000000..e2c9437e11 --- /dev/null +++ b/src/utils/isLinuxPrimaryRelease.ts @@ -0,0 +1,8 @@ +import { OS, ReleaseData } from '../types'; + +export const isLinuxPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) => + os === 'linux' && + data + .slice(0, 12) // get latest build to filter on + .filter((e: ReleaseData) => e.arch === '64-bit') + .includes(r); diff --git a/src/utils/isMobilePrimaryRelease.ts b/src/utils/isMobilePrimaryRelease.ts new file mode 100644 index 0000000000..fcbdcdc7dc --- /dev/null +++ b/src/utils/isMobilePrimaryRelease.ts @@ -0,0 +1,8 @@ +import { OS, ReleaseData } from '../types'; + +export const isMobilePrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) => + os === 'mobile' && + data + .filter((e: ReleaseData) => e.arch === 'all') + .slice(0, 1) // get latest build + .includes(r); diff --git a/src/utils/isWindowsPrimaryRelease.ts b/src/utils/isWindowsPrimaryRelease.ts new file mode 100644 index 0000000000..d197232838 --- /dev/null +++ b/src/utils/isWindowsPrimaryRelease.ts @@ -0,0 +1,8 @@ +import { OS, ReleaseData } from '../types'; + +export const isWindowsPrimaryRelease = (r: ReleaseData, os: OS, data: ReleaseData[]) => + os === 'windows' && + data + .slice(0, 6) // get latest build to filter on + .filter((e: ReleaseData) => e.kind === 'Installer' && e.arch === '64-bit') + .includes(r); diff --git a/src/utils/parseHeadingId.ts b/src/utils/parseHeadingId.ts index 75d56bf5de..1e0b93e0ec 100644 --- a/src/utils/parseHeadingId.ts +++ b/src/utils/parseHeadingId.ts @@ -1,18 +1,22 @@ -const check = '{#'; +import { getKebabCaseFromName } from './'; export const parseHeadingId = (children: string[]) => { - if (children[children.length - 1].includes(check)) { - const temp = children[children.length - 1].split(check); - const headingId = temp[temp.length - 1].split('}')[0]; - - children[children.length - 1] = temp[0]; - + const CHECK = '{#'; + const lastChild = children[children.length - 1]; + const split = lastChild.split(CHECK); + if (lastChild.includes(CHECK)) { + const headingId = split[split.length - 1].split('}')[0]; + const newChildren = [...children]; + newChildren[newChildren.length - 1] = split[0]; return { - children, - title: temp[0].replaceAll('#', ''), + children: newChildren, + title: split[0].replaceAll('#', ''), headingId }; } - - return null; + return { + children, + title: split[0].replaceAll('#', ''), + headingId: getKebabCaseFromName(split[0]) + }; }; diff --git a/url-list.csv b/url-list.csv index b58730f5ea..5ada9306bd 100644 --- a/url-list.csv +++ b/url-list.csv @@ -1,60 +1,57 @@ -OLD Geth website URLS,Equivalent NEW website URLs,Relative path to markdown file,Notes -https://geth.ethereum.org/,https://geth.ethereum.org,src/pages/homepage,will be react page -https://geth.ethereum.org/downloads/,https://geth.ethereum.org/downloads,src/pages/downloads,will be react page -https://geth.ethereum.org/docs/,https://geth.ethereum.org/docs,src/pages/docs/index.md,n/a -https://geth.ethereum.org/docs/getting-started,https://geth.ethereum.org/docs/getting_started/getting-started,src/pages/docs/getting_started/getting_started.md,n/a -https://geth.ethereum.org/docs/getting-started/geth-and-clef,https://geth.ethereum.org/docs/getting_started_with_clef,src/pages/docs/getting_started/getting-started-with-clef.md,n/a -https://geth.ethereum.org/docs/getting-started/dev-mode,https://geth.ethereum.org/docs/developers/geth-developers/dev-mode,src/pages/docs/developers/geth-developer/dev-mode.md,n/a -https://geth.ethereum.org/docs/install-and-build/installing-geth,https://geth.ethereum.org/docs/getting_started/install-geth,src/pages/docs/getting_started/backup-restore.md,n/a -https://geth.ethereum.org/docs/install-and-build/backup-restore,https://geth.ethereum.org/docs/getting_started/backup-restore,src/pages/docs/getting_started/installing-geth.md,n/a -https://geth.ethereum.org/docs/install-and-build/cross-compile,page removed,page removed,n/a -https://geth.ethereum.org/docs/interface/command-line-options,https://geth.ethereum.org/fundamentals/command-line-options,src/pages/docs/fundamentals/command-line-options.md,n/a -https://geth.ethereum.org/docs/interface/pruning,https://geth.ethereum.org/docs/fundamentals/pruning,src/pages/docs/fundamentals/pruning.md,n/a -https://geth.ethereum.org/docs/interface/merge,page removed,page removed,n/a -https://geth.ethereum.org/docs/interface/consensus-clients,https://geth.ethereum.org/docs/getting_started/consensus-client,src/pages/docs/getting_started/consensus-clients.md,n/a -https://geth.ethereum.org/docs/interface/peer-to-peer,https://geth.ethereum.org/docs/fundamentals/peer-to-peer,src/pages/docs/fundamentals/peer-to-peer.md,n/a -https://geth.ethereum.org/docs/interface/les,https://geth.ethereum.org/docs/fundamentals/les,src/pages/docs/fundamentals/les.md,n/a -https://geth.ethereum.org/docs/interface/managing-your-accounts,https://geth.ethereum.org/docs/fundamentals/account-management,src/pages/docs/fundamentals/account-management.md,n/a -https://geth.ethereum.org/docs/faq,https://geth.ethereum.org/docs/faq,src/pages/docs/faq.md,n/a -https://geth.ethereum.org/docs/interface/javascript-console,https://geth.ethereum.org/docs/interacting-with-geth/javascript-console,src/pages/docs/interacting-with-geth/javascript-console.md,n/a -https://geth.ethereum.org/docs/interface/private-network,https://geth.ethereum.org/docs/developers/geth-developer/private-network,src/pages/docs/developers/geth-developer/private-network.md,n/a -https://geth.ethereum.org/docs/interface/mining,page removed,page removed,n/a -https://geth.ethereum.org/docs/interface/metrics,https://geth.ethereum.org/docs/monitoring/metrics,src/pages/docs/monitoring/metrics.md,n/a -https://geth.ethereum.org/docs/dapp/native,https://geth.ethereum.org/docs/developers/dapp-developer/native,src/pages/docs/developers/dapp-developer/native.md,n/a -https://geth.ethereum.org/docs/dapp/tracing,https://geth.ethereum.org/docs/developers/dapp-developer/tracing,src/pages/docs/developers/dapp-developer/tracing.md,n/a -https://geth.ethereum.org/docs/dapp/custom-tracer,https://geth.ethereum.org/docs/developers/dapp-developer/custom-tracer,src/pages/docs/developers/dapp-developer/custom-tracer.md,n/a -https://geth.ethereum.org/docs/dapp/builtin-tracers,https://geth.ethereum.org/docs/developers/dapp-developer/built-in-tracer,src/pages/docs/developers/dapp-developer/built-in-tracers.md,n/a -https://geth.ethereum.org/docs/dapp/native-accounts,https://geth.ethereum.org/docs/developers/dapp-developer/native-accounts,src/pages/docs/developers/dapp-developer/native-accounts.md,n/a -https://geth.ethereum.org/docs/dapp/native-bindings,https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings,src/pages/docs/developers/dapp-developer/native-bindings.md,n/a -https://geth.ethereum.org/docs/dapp/mobile,https://geth.ethereum.org/docs/developers/dapp-developer/mobile,src/pages/docs/developers/dapp-developer/mobile.md,n/a -https://geth.ethereum.org/docs/dapp/mobile-accounts,page removed,page removed,n/a -https://geth.ethereum.org/docs/rpc/server,https://geth.ethereum.org/docs/interacting-with-geth/rpc/server,src/pages/docs/interacting-with-geth/rpc/server.md,n/a -https://geth.ethereum.org/docs/rpc/pubsub,https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub,src/pages/docs/interacting-with-geth/rpc/pubsub.md,n/a -https://geth.ethereum.org/docs/rpc/batch,https://geth.ethereum.org/docs//interacting-with-geth/rpc/batch,src/pages/docs/interacting-with-geth/rpc/batch.md,n/a -https://geth.ethereum.org/docs/rpc/graphql,https://geth.ethereum.org/docs/interacting_with_geth/rpc/graphql,src/pages/docs/interacting-with-geth/rpc/graphql.md,n/a -https://geth.ethereum.org/docs/rpc/ns-admin,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-admin,src/pages/docs/interacting-with-geth/rpc/ns-admin.md,n/a -https://geth.ethereum.org/docs/rpc/ns-clique,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-clique,src/pages/docs/interacting-with-geth/rpc/ns-clique.md,n/a -https://geth.ethereum.org/docs/rpc/ns-debug,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-debug,src/pages/docs/interacting-with-geth/rpc/ns-debug.md,n/a -https://geth.ethereum.org/docs/rpc/ns-eth,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-eth,src/pages/docs/interacting-with-geth/rpc/ns-eth.md,n/a -https://geth.ethereum.org/docs/rpc/ns-les,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-les,src/pages/docs/interacting-with-geth/rpc/ns-les.md,n/a -https://geth.ethereum.org/docs/rpc/ns-miner,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-miner,src/pages/docs/interacting-with-geth/rpc/ns-miner.md,n/a -https://geth.ethereum.org/docs/rpc/ns-net,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-net,src/pages/docs/interacting-with-geth/rpc/ns-net.md,n/a -https://geth.ethereum.org/docs/rpc/ns-personal,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-personal,src/pages/docs/interacting-with-geth/rpc/ns-personalmd,n/a -https://geth.ethereum.org/docs/rpc/ns-txpool,https://geth.ethereum.org/docs/interacting_with_geth/rpc/ns-txpool,src/pages/docs/interacting-with-geth/rpc/ns-txpool.md,n/a -https://geth.ethereum.org/docs/rpc/objects,https://geth.ethereum.org/docs/interacting_with_geth/rpc/objects,src/pages/docs/interacting-with-geth/rpc/objects.md,n/a -https://geth.ethereum.org/docs/developers/dev-guide,https://geth.ethereum.org/docs/developers/geth-developer/dev-guide,src/pages/docs/developers/geth-developer/devguide.md,n/a -https://geth.ethereum.org/docs/developers/code-review-guidelines,https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines,src/pages/docs/developers/geth-developer/code-review-guidelines.md,n/a -https://geth.ethereum.org/docs/developers/issue-handling-workflow,https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines,src/pages/docs/developers/geth-developer/issue-handling-workflow.md,n/a -https://geth.ethereum.org/docs/developers/dns-discovery-setup,https://geth.ethereum.org/doce/developers/geth-developer/dns-discovery-setup,src/pages/docs/developers/geth-developer/dns-discovery-workflow.md,n/a -https://geth.ethereum.org/docs/clef/introduction,https://geth.ethereum.org/docs/tools/clef/introduction,src/pages/docs/tools/clef/introduction.md,n/a -https://geth.ethereum.org/docs/clef/tutorial,https://geth.ethereum.org/docs/tools/clef/tutorial,src/pages/docs/tools/clef/tutorial.md,n/a -https://geth.ethereum.org/docs/clef/cliquesigning,https://geth.ethereum.org/docs/tools/clef/clique-signing,src/pages/docs/tools/clef/clique-signing.md,n/a -https://geth.ethereum.org/docs/clef/rules,https://geth.ethereum.org/docs/tools/clef/rules,src/pages/docs/tools/clef/rules.md,n/a -https://geth.ethereum.org/docs/clef/setup,https://geth.ethereum.org/docs/tools/clef/setup,src/pages/docs/tools/clef/setup.md,n/a -https://geth.ethereum.org/docs/clef/apis,https://geth.ethereum.org/docs/tools/clef/apis,src/pages/docs/tools/clef/apis.md,n/a -https://geth.ethereum.org/docs/clef/datatypes,https://geth.ethereum.org/docs/tools/clef/datatypes,src/pages/docs/tools/clef/datatypes.md,n/a -https://geth.ethereum.org/docs/interface/sync-modes,https://geth.ethereum.org/docs/interface/sync-modes,src/pages/docs/fundamentals/sync-modes.md,n/a -https://geth.ethereum.org/docs/interface/hardware,https://geth.ethereum.org/docs/interface/getting_started/hardware-requirements.md,, -https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,src/pages/docs/vulnerabilities/vulnerabilities.json,must be served at original URL -https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,src/pages/docs/vulnerabilities/vulnerabilities.json.minisig,must be served at original URL -https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.md,https://geth.ethereum.org/docs/developers/geth-developers/discloures,src/pages/docs/developers/geth-developers/disclosures,moved to /docs and renamed +OLD Geth website URLS,Equivalent NEW website URLs,,Notes +https://geth.ethereum.org/,https://geth.ethereum.org,,will be react page +https://geth.ethereum.org/downloads/,https://geth.ethereum.org/downloads,,will be react page +https://geth.ethereum.org/docs/,https://geth.ethereum.org/docs,,n/a +https://geth.ethereum.org/docs/getting-started,https://geth.ethereum.org/docs/getting-started/backup-restore,,n/a +https://geth.ethereum.org/docs/getting-started/dev-mode,https://geth.ethereum.org/docs/developers/geth-developer/dev-mode,,n/a +https://geth.ethereum.org/docs/install-and-build/installing-geth,https://geth.ethereum.org/docs/getting-started/install-geth,,n/a +https://geth.ethereum.org/docs/install-and-build/backup-restore,https://geth.ethereum.org/docs/getting-started/backup-restore,,n/a +https://geth.ethereum.org/docs/interface/command-line-options,https://geth.ethereum.org/docs/fundamentals/command-line-options,,n/a +https://geth.ethereum.org/docs/interface/pruning,https://geth.ethereum.org/docs/fundamentals/pruning,,n/a +https://geth.ethereum.org/docs/interface/consensus-clients,https://geth.ethereum.org/docs/getting-started/consensus-client,,n/a +https://geth.ethereum.org/docs/interface/peer-to-peer,https://geth.ethereum.org/docs/fundamentals/peer-to-peer,,n/a +https://geth.ethereum.org/docs/interface/les,https://geth.ethereum.org/docs/fundamentals/les,,n/a +https://geth.ethereum.org/docs/interface/managing-your-accounts,https://geth.ethereum.org/docs/fundamentals/account-management,,n/a +https://geth.ethereum.org/docs/faq,https://geth.ethereum.org/docs/faq,,n/a +https://geth.ethereum.org/docs/interface/javascript-console,https://geth.ethereum.org/docs/interacting-with-geth/javascript-console,,n/a +https://geth.ethereum.org/docs/interface/private-network,https://geth.ethereum.org/docs/developers/geth-developer/private-network,,n/a +https://geth.ethereum.org/docs/interface/mining,https://geth.ethereum.org/docs/fundamentals/mining,,n/a +https://geth.ethereum.org/docs/interface/metrics,https://geth.ethereum.org/docs/monitoring/metrics,,n/a +https://geth.ethereum.org/docs/dapp/native,https://geth.ethereum.org/docs/developers/dapp-developer/native,,n/a +https://geth.ethereum.org/docs/dapp/tracing,https://geth.ethereum.org/docs/developers/evm-tracing,,n/a +https://geth.ethereum.org/docs/dapp/custom-tracer,https://geth.ethereum.org/docs/developers/evm-tracing/custom-tracer,,n/a +https://geth.ethereum.org/docs/dapp/builtin-tracers,https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers,,n/a +https://geth.ethereum.org/docs/dapp/native-accounts,https://geth.ethereum.org/docs/docs/developers/dapp-developer/native-accounts,,n/a +https://geth.ethereum.org/docs/dapp/native-bindings,https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings,,n/a +https://geth.ethereum.org/docs/dapp/mobile,https://geth.ethereum.org/docs/developers/dapp-developer/mobile,,n/a +https://geth.ethereum.org/docs/dapp/mobile-accounts,https://geth.ethereum.org/docs/developers/dapp-developer/mobile,,n/a +https://geth.ethereum.org/docs/rpc/server,https://geth.ethereum.org/docs/interacting-with-geth/rpc,,n/a +https://geth.ethereum.org/docs/rpc/pubsub,https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub,,n/a +https://geth.ethereum.org/docs/rpc/batch,https://geth.ethereum.org/docs/interacting-with-geth/rpc/batch,,n/a +https://geth.ethereum.org/docs/rpc/graphql,https://geth.ethereum.org/docs/interacting-with-geth/rpc/graphql,,n/a +https://geth.ethereum.org/docs/rpc/ns-admin,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-admin,,n/a +https://geth.ethereum.org/docs/rpc/ns-clique,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-clique,,n/a +https://geth.ethereum.org/docs/rpc/ns-debug,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug,,n/a +https://geth.ethereum.org/docs/rpc/ns-eth,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth,,n/a +https://geth.ethereum.org/docs/rpc/ns-les,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-les,,n/a +https://geth.ethereum.org/docs/rpc/ns-miner,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-miner,,n/a +https://geth.ethereum.org/docs/rpc/ns-net,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-net,,n/a +https://geth.ethereum.org/docs/rpc/ns-personal,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal,,n/a +https://geth.ethereum.org/docs/rpc/ns-txpool,https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool,,n/a +https://geth.ethereum.org/docs/rpc/objects,https://geth.ethereum.org/docs/interacting-with-geth/rpc/objects,,n/a +https://geth.ethereum.org/docs/developers/dev-guide,https://geth.ethereum.org/docs/developers/geth-developer/dev-guide,,n/a +https://geth.ethereum.org/docs/developers/code-review-guidelines,https://geth.ethereum.org/docs/developers/geth-developer/code-review-guidelines,,n/a +https://geth.ethereum.org/docs/developers/issue-handling-workflow,https://geth.ethereum.org/docs/developers/geth-developer/issue-handling-workflow,,n/a +https://geth.ethereum.org/docs/developers/dns-discovery-setup,https://geth.ethereum.org/doce/developers/geth-developer/dns-discovery-setup,,n/a +https://geth.ethereum.org/docs/clef/introduction,https://geth.ethereum.org/docs/tools/clef/introduction,,n/a +https://geth.ethereum.org/docs/clef/tutorial,https://geth.ethereum.org/docs/tools/clef/tutorial,,n/a +https://geth.ethereum.org/docs/clef/cliquesigning,https://geth.ethereum.org/docs/tools/clef/clique-signing,,n/a +https://geth.ethereum.org/docs/clef/rules,https://geth.ethereum.org/docs/tools/clef/rules,,n/a +https://geth.ethereum.org/docs/clef/setup,https://geth.ethereum.org/docs/tools/clef/setup,,n/a +https://geth.ethereum.org/docs/clef/apis,https://geth.ethereum.org/docs/tools/clef/apis,,n/a +https://geth.ethereum.org/docs/clef/datatypes,https://geth.ethereum.org/docs/tools/clef/datatypes,,n/a +https://geth.ethereum.org/docs/interface/sync-modes,https://geth.ethereum.org/docs/fundamentals/sync-modes,,n/a +https://geth.ethereum.org/docs/interface/hardware,https://geth.ethereum.org/docs/getting-started/hardware-requirements,, +https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json,"Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org)",must be served at original URL +https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.json.minisig,"Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org)",must be served at original URL +https://github.com/ethereum/go-ethereum/tree/gh-pages/docs/_vulnerabilities/vulnerabilities.md,https://geth.ethereum.org/docs/developers/geth-developer/disclosures,"Cant add redirect since this is a external URL (GitHub, not geth.ethereum.org)",moved to /docs and renamed \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 1edabb273a..b2c04c2b63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1108,45 +1108,6 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@mdx-js/loader@^2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.1.3.tgz" - integrity sha512-7LtklcfzZC9aWWFREop0ivemhwcp/cke2tICHEhnDyGn+hTg7LIbWCfSos68kJv9w7Z47KYfNcg9/8zBD+8eXA== - dependencies: - "@mdx-js/mdx" "^2.0.0" - source-map "^0.7.0" - -"@mdx-js/mdx@^2.0.0": - version "2.1.3" - resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.1.3.tgz" - integrity sha512-ahbb47HJIJ4xnifaL06tDJiSyLEy1EhFAStO7RZIm3GTa7yGW3NGhZaj+GUCveFgl5oI54pY4BgiLmYm97y+zg== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/mdx" "^2.0.0" - estree-util-build-jsx "^2.0.0" - estree-util-is-identifier-name "^2.0.0" - estree-util-to-js "^1.1.0" - estree-walker "^3.0.0" - hast-util-to-estree "^2.0.0" - markdown-extensions "^1.0.0" - periscopic "^3.0.0" - remark-mdx "^2.0.0" - remark-parse "^10.0.0" - remark-rehype "^10.0.0" - unified "^10.0.0" - unist-util-position-from-estree "^1.0.0" - unist-util-stringify-position "^3.0.0" - unist-util-visit "^4.0.0" - vfile "^5.0.0" - -"@mdx-js/react@^2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-2.1.3.tgz" - integrity sha512-11n4lTvvRyxq3OYbWJwEYM+7q6PE0GxKbk0AwYIIQmrRkxDeljIsjDQkKOgdr/orgRRbYy5zi+iERdnwe01CHQ== - dependencies: - "@types/mdx" "^2.0.0" - "@types/react" ">=16" - "@motionone/animation@^10.13.1": version "10.14.0" resolved "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz" @@ -1212,11 +1173,6 @@ dependencies: glob "7.1.7" -"@next/mdx@^12.3.0": - version "12.3.0" - resolved "https://registry.npmjs.org/@next/mdx/-/mdx-12.3.0.tgz" - integrity sha512-XyzLhgsKa4lKb3dw8HFtj4MM0jilDStKtosFrkt8AX44zEwxPoJPaIvMCWNsRwq72YTzQLqh1gjepIe9zCKZwQ== - "@next/swc-android-arm-eabi@13.0.2": version "13.0.2" resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.0.2.tgz#66669b8aab5062f554b8e9905d855679aabf0342" @@ -1320,13 +1276,6 @@ dependencies: tslib "^2.4.0" -"@types/acorn@^4.0.0": - version "4.0.6" - resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - "@types/debug@^4.0.0": version "4.1.7" resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" @@ -1334,18 +1283,6 @@ dependencies: "@types/ms" "*" -"@types/estree-jsx@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz" - integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ== - dependencies: - "@types/estree" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - "@types/hast@^2.0.0": version "2.3.4" resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz" @@ -1387,11 +1324,6 @@ resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz" integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== -"@types/mdx@^2.0.0": - version "2.0.2" - resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.2.tgz" - integrity sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ== - "@types/ms@*": version "0.7.31" resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" @@ -1431,7 +1363,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@18.0.18", "@types/react@>=16": +"@types/react@*", "@types/react@18.0.18": version "18.0.18" resolved "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz" integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg== @@ -1504,12 +1436,12 @@ resolved "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.1.0.tgz" integrity sha512-PeaBcTmdZWcFf7n1aM+oiOdZc+sy14qi0emPIeUuGMTjbP0xLGrZu43kdpHnWSXy7/r4Ubp/vlg50MCV8+9Isg== -acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.0.0, acorn@^8.8.0: +acorn@^8.8.0: version "8.8.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== @@ -1631,11 +1563,6 @@ ast-types-flow@^0.0.7: resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== -astring@^1.8.0: - version "1.8.3" - resolved "https://registry.npmjs.org/astring/-/astring-1.8.3.tgz" - integrity sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A== - axe-core@^4.4.3: version "4.4.3" resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz" @@ -1727,21 +1654,11 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -character-entities-html4@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" - integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== - character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== -character-entities-legacy@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" - integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== - character-entities@^1.0.0: version "1.2.4" resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz" @@ -1757,11 +1674,6 @@ character-reference-invalid@^1.0.0: resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== -character-reference-invalid@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" - integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== - client-only@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz" @@ -2233,49 +2145,6 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-util-attach-comments@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.0.tgz" - integrity sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw== - dependencies: - "@types/estree" "^1.0.0" - -estree-util-build-jsx@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.0.tgz" - integrity sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ== - dependencies: - "@types/estree-jsx" "^1.0.0" - estree-util-is-identifier-name "^2.0.0" - estree-walker "^3.0.0" - -estree-util-is-identifier-name@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz" - integrity sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ== - -estree-util-to-js@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.1.0.tgz" - integrity sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A== - dependencies: - "@types/estree-jsx" "^1.0.0" - astring "^1.8.0" - source-map "^0.7.0" - -estree-util-visit@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.0.tgz" - integrity sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/unist" "^2.0.0" - -estree-walker@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.1.tgz" - integrity sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g== - esutils@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" @@ -2646,27 +2515,6 @@ hast-util-raw@^7.2.0: web-namespaces "^2.0.0" zwitch "^2.0.0" -hast-util-to-estree@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.1.0.tgz" - integrity sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g== - dependencies: - "@types/estree" "^1.0.0" - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^2.0.0" - "@types/unist" "^2.0.0" - comma-separated-tokens "^2.0.0" - estree-util-attach-comments "^2.0.0" - estree-util-is-identifier-name "^2.0.0" - hast-util-whitespace "^2.0.0" - mdast-util-mdx-expression "^1.0.0" - mdast-util-mdxjs-esm "^1.0.0" - property-information "^6.0.0" - space-separated-tokens "^2.0.0" - style-to-object "^0.3.0" - unist-util-position "^4.0.0" - zwitch "^2.0.0" - hast-util-to-parse5@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-7.0.0.tgz#a39808e69005d10afeed1866029a1fb137df3f7c" @@ -2785,11 +2633,6 @@ is-alphabetical@^1.0.0: resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== -is-alphabetical@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" - integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== - is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz" @@ -2798,14 +2641,6 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-alphanumerical@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" - integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== - dependencies: - is-alphabetical "^2.0.0" - is-decimal "^2.0.0" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -2855,11 +2690,6 @@ is-decimal@^1.0.0: resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-decimal@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" - integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== - is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" @@ -2882,11 +2712,6 @@ is-hexadecimal@^1.0.0: resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== -is-hexadecimal@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" - integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" @@ -2909,13 +2734,6 @@ is-plain-obj@^4.0.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== -is-reference@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-reference/-/is-reference-3.0.0.tgz" - integrity sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q== - dependencies: - "@types/estree" "*" - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" @@ -3086,11 +2904,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -markdown-extensions@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz" - integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== - markdown-table@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.2.tgz#9b59eb2c1b22fe71954a65ff512887065a7bb57c" @@ -3190,53 +3003,6 @@ mdast-util-gfm@^2.0.0: mdast-util-gfm-task-list-item "^1.0.0" mdast-util-to-markdown "^1.0.0" -mdast-util-mdx-expression@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.0.tgz" - integrity sha512-9kTO13HaL/ChfzVCIEfDRdp1m5hsvsm6+R8yr67mH+KS2ikzZ0ISGLPTbTswOFpLLlgVHO9id3cul4ajutCvCA== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^2.0.0" - "@types/mdast" "^3.0.0" - mdast-util-from-markdown "^1.0.0" - mdast-util-to-markdown "^1.0.0" - -mdast-util-mdx-jsx@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.0.tgz" - integrity sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^2.0.0" - "@types/mdast" "^3.0.0" - ccount "^2.0.0" - mdast-util-to-markdown "^1.3.0" - parse-entities "^4.0.0" - stringify-entities "^4.0.0" - unist-util-remove-position "^4.0.0" - unist-util-stringify-position "^3.0.0" - vfile-message "^3.0.0" - -mdast-util-mdx@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.0.tgz" - integrity sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw== - dependencies: - mdast-util-mdx-expression "^1.0.0" - mdast-util-mdx-jsx "^2.0.0" - mdast-util-mdxjs-esm "^1.0.0" - -mdast-util-mdxjs-esm@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.0.tgz" - integrity sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^2.0.0" - "@types/mdast" "^3.0.0" - mdast-util-from-markdown "^1.0.0" - mdast-util-to-markdown "^1.0.0" - mdast-util-to-hast@^12.1.0: version "12.2.1" resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz" @@ -3384,69 +3150,6 @@ micromark-extension-gfm@^2.0.0: micromark-util-combine-extensions "^1.0.0" micromark-util-types "^1.0.0" -micromark-extension-mdx-expression@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.3.tgz" - integrity sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA== - dependencies: - micromark-factory-mdx-expression "^1.0.0" - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-events-to-acorn "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - -micromark-extension-mdx-jsx@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.3.tgz" - integrity sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA== - dependencies: - "@types/acorn" "^4.0.0" - estree-util-is-identifier-name "^2.0.0" - micromark-factory-mdx-expression "^1.0.0" - 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" - vfile-message "^3.0.0" - -micromark-extension-mdx-md@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.0.tgz" - integrity sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw== - dependencies: - micromark-util-types "^1.0.0" - -micromark-extension-mdxjs-esm@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.3.tgz" - integrity sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A== - dependencies: - micromark-core-commonmark "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-events-to-acorn "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - unist-util-position-from-estree "^1.1.0" - uvu "^0.5.0" - vfile-message "^3.0.0" - -micromark-extension-mdxjs@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.0.tgz" - integrity sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ== - dependencies: - acorn "^8.0.0" - acorn-jsx "^5.0.0" - micromark-extension-mdx-expression "^1.0.0" - micromark-extension-mdx-jsx "^1.0.0" - micromark-extension-mdx-md "^1.0.0" - micromark-extension-mdxjs-esm "^1.0.0" - micromark-util-combine-extensions "^1.0.0" - micromark-util-types "^1.0.0" - micromark-factory-destination@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz" @@ -3466,20 +3169,6 @@ micromark-factory-label@^1.0.0: micromark-util-types "^1.0.0" uvu "^0.5.0" -micromark-factory-mdx-expression@^1.0.0: - version "1.0.6" - resolved "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.6.tgz" - integrity sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA== - dependencies: - micromark-factory-space "^1.0.0" - micromark-util-character "^1.0.0" - micromark-util-events-to-acorn "^1.0.0" - micromark-util-symbol "^1.0.0" - micromark-util-types "^1.0.0" - unist-util-position-from-estree "^1.0.0" - uvu "^0.5.0" - vfile-message "^3.0.0" - micromark-factory-space@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz" @@ -3563,19 +3252,6 @@ micromark-util-encode@^1.0.0: resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz" integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== -micromark-util-events-to-acorn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.0.tgz" - integrity sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw== - dependencies: - "@types/acorn" "^4.0.0" - "@types/estree" "^1.0.0" - estree-util-visit "^1.0.0" - micromark-util-types "^1.0.0" - uvu "^0.5.0" - vfile-location "^4.0.0" - vfile-message "^3.0.0" - micromark-util-html-tag-name@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz" @@ -3835,20 +3511,6 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" -parse-entities@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.0.tgz" - integrity sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ== - dependencies: - "@types/unist" "^2.0.0" - character-entities "^2.0.0" - character-entities-legacy "^3.0.0" - character-reference-invalid "^2.0.0" - decode-named-character-reference "^1.0.0" - is-alphanumerical "^2.0.0" - is-decimal "^2.0.0" - is-hexadecimal "^2.0.0" - parse-json@^5.0.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -3889,14 +3551,6 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -periscopic@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/periscopic/-/periscopic-3.0.4.tgz" - integrity sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg== - dependencies: - estree-walker "^3.0.0" - is-reference "^3.0.0" - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" @@ -4133,14 +3787,6 @@ remark-gfm@^3.0.1: micromark-extension-gfm "^2.0.0" unified "^10.0.0" -remark-mdx@^2.0.0: - version "2.1.3" - resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.1.3.tgz" - integrity sha512-3SmtXOy9+jIaVctL8Cs3VAQInjRLGOwNXfrBB9KCT+EpJpKD3PQiy0x8hUNGyjQmdyOs40BqgPU7kYtH9uoR6w== - dependencies: - mdast-util-mdx "^2.0.0" - micromark-extension-mdxjs "^1.0.0" - remark-parse@^10.0.0: version "10.0.1" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz" @@ -4277,11 +3923,6 @@ source-map@^0.5.7: resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.7.0: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - space-separated-tokens@^1.0.0: version "1.1.5" resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz" @@ -4329,14 +3970,6 @@ string.prototype.trimstart@^1.0.5: define-properties "^1.1.4" es-abstract "^1.19.5" -stringify-entities@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz" - integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== - dependencies: - character-entities-html4 "^2.0.0" - character-entities-legacy "^3.0.0" - strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -4536,13 +4169,6 @@ unist-util-is@^5.0.0: resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz" integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== -unist-util-position-from-estree@^1.0.0, unist-util-position-from-estree@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.1.tgz" - integrity sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-position@^4.0.0: version "4.0.3" resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz" @@ -4550,14 +4176,6 @@ unist-util-position@^4.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-remove-position@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz" - integrity sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ== - dependencies: - "@types/unist" "^2.0.0" - unist-util-visit "^4.0.0" - unist-util-stringify-position@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz"