diff --git a/components/mdx/Image.tsx b/components/mdx/Image.tsx new file mode 100644 index 0000000..74e21d9 --- /dev/null +++ b/components/mdx/Image.tsx @@ -0,0 +1,26 @@ +import cn from 'classnames'; +import NextImage from 'next/image'; +import { DetailedHTMLProps, ImgHTMLAttributes } from 'react'; + +interface Props + extends DetailedHTMLProps< + ImgHTMLAttributes, + HTMLImageElement + > {} + +const Image = ({ src, alt }: Props) => { + return ( + <> + + {alt} + + ); +}; + +export default Image; diff --git a/pages/_app.tsx b/pages/_app.tsx index 02f2265..7a656a3 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -7,9 +7,11 @@ import 'styles/prism-one-dark.css'; import 'styles/rua.css'; import { MDXProvider } from '@mdx-js/react'; import Anchor from 'components/mdx/Anchor'; +import Image from 'components/mdx/Image'; const components = { a: Anchor, + img: Image, }; function MyApp({ Component, pageProps }: AppPropsWithLayout) { diff --git a/pages/p/second-post.mdx b/pages/p/second-post.mdx index e91c187..a29d61b 100644 --- a/pages/p/second-post.mdx +++ b/pages/p/second-post.mdx @@ -176,57 +176,20 @@ Autoconverted link https://github.com/nodeca/pica (enable linkify to see) ## Images -![Minion](https://octodex.github.com/images/minion.png) -![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg 'The Stormtroopocat') - -Like links, Images also have a footnote style syntax - -![Alt text][id] +With a reference later in the document defining the URL location: With a reference later in the document defining the URL location: -[id]: https://octodex.github.com/images/dojocat.jpg 'The Dojocat' +With a reference later in the document defining the URL location: -## Plugins +![Minion](/images/p/second-post/minion.png) -The killer feature of `markdown-it` is very effective support of -[syntax plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin). +With a reference later in the document defining the URL location: -### [Emojies](https://github.com/markdown-it/markdown-it-emoji) +With a reference later in the document defining the URL location: -> Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum: -> -> Shortcuts (emoticons): :-) :-( 8-) ;) +With a reference later in the document defining the URL location: -see [how to change output](https://github.com/markdown-it/markdown-it-emoji#change-output) with twemoji. +## Other -### [Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup) - -- 19^th^ -- H~2~O - -### [\](https://github.com/markdown-it/markdown-it-ins) - -++Inserted text++ - -### [\](https://github.com/markdown-it/markdown-it-mark) - -==Marked text== - -### [Footnotes](https://github.com/markdown-it/markdown-it-footnote) - -Footnote 1 link[^first]. - -Footnote 2 link[^second]. - -Inline footnote^[Text of inline footnote] definition. - -Duplicated footnote reference[^second]. - -[^first]: Footnote **can have markup** - - and multiple paragraphs. - -[^second]: Footnote text. - -### [Definition lists](https://github.com/markdown-it/markdown-it-deflist) +> test diff --git a/public/images/p/second-post/minion.png b/public/images/p/second-post/minion.png new file mode 100644 index 0000000..1ba8cd3 Binary files /dev/null and b/public/images/p/second-post/minion.png differ diff --git a/styles/rua.css b/styles/rua.css index 79faa45..fd80822 100644 --- a/styles/rua.css +++ b/styles/rua.css @@ -1,3 +1,92 @@ +#article { + --color-prettylights-syntax-comment: #6e7781; + --color-prettylights-syntax-constant: #0550ae; + --color-prettylights-syntax-entity: #8250df; + --color-prettylights-syntax-storage-modifier-import: #24292f; + --color-prettylights-syntax-entity-tag: #116329; + --color-prettylights-syntax-keyword: #cf222e; + --color-prettylights-syntax-string: #0a3069; + --color-prettylights-syntax-variable: #953800; + --color-prettylights-syntax-brackethighlighter-unmatched: #82071e; + --color-prettylights-syntax-invalid-illegal-text: #f6f8fa; + --color-prettylights-syntax-invalid-illegal-bg: #82071e; + --color-prettylights-syntax-carriage-return-text: #f6f8fa; + --color-prettylights-syntax-carriage-return-bg: #cf222e; + --color-prettylights-syntax-string-regexp: #116329; + --color-prettylights-syntax-markup-list: #3b2300; + --color-prettylights-syntax-markup-heading: #0550ae; + --color-prettylights-syntax-markup-italic: #24292f; + --color-prettylights-syntax-markup-bold: #24292f; + --color-prettylights-syntax-markup-deleted-text: #82071e; + --color-prettylights-syntax-markup-deleted-bg: #ffebe9; + --color-prettylights-syntax-markup-inserted-text: #116329; + --color-prettylights-syntax-markup-inserted-bg: #dafbe1; + --color-prettylights-syntax-markup-changed-text: #953800; + --color-prettylights-syntax-markup-changed-bg: #ffd8b5; + --color-prettylights-syntax-markup-ignored-text: #eaeef2; + --color-prettylights-syntax-markup-ignored-bg: #0550ae; + --color-prettylights-syntax-meta-diff-range: #8250df; + --color-prettylights-syntax-brackethighlighter-angle: #57606a; + --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f; + --color-prettylights-syntax-constant-other-reference-link: #0a3069; + --color-fg-default: #24292f; + --color-fg-muted: #57606a; + --color-fg-subtle: #6e7781; + --color-canvas-default: #ffffff; + --color-canvas-subtle: #f6f8fa; + --color-border-default: #d0d7de; + --color-border-muted: hsla(210, 18%, 87%, 1); + --color-neutral-muted: rgba(175, 184, 193, 0.2); + --color-accent-fg: #0969da; + --color-accent-emphasis: #0969da; + --color-attention-subtle: #fff8c5; + --color-danger-fg: #cf222e; +} +.dark #article { + --color-prettylights-syntax-comment: #8b949e; + --color-prettylights-syntax-constant: #79c0ff; + --color-prettylights-syntax-entity: #d2a8ff; + --color-prettylights-syntax-storage-modifier-import: #c9d1d9; + --color-prettylights-syntax-entity-tag: #7ee787; + --color-prettylights-syntax-keyword: #ff7b72; + --color-prettylights-syntax-string: #a5d6ff; + --color-prettylights-syntax-variable: #ffa657; + --color-prettylights-syntax-brackethighlighter-unmatched: #f85149; + --color-prettylights-syntax-invalid-illegal-text: #f0f6fc; + --color-prettylights-syntax-invalid-illegal-bg: #8e1519; + --color-prettylights-syntax-carriage-return-text: #f0f6fc; + --color-prettylights-syntax-carriage-return-bg: #b62324; + --color-prettylights-syntax-string-regexp: #7ee787; + --color-prettylights-syntax-markup-list: #f2cc60; + --color-prettylights-syntax-markup-heading: #1f6feb; + --color-prettylights-syntax-markup-italic: #c9d1d9; + --color-prettylights-syntax-markup-bold: #c9d1d9; + --color-prettylights-syntax-markup-deleted-text: #ffdcd7; + --color-prettylights-syntax-markup-deleted-bg: #67060c; + --color-prettylights-syntax-markup-inserted-text: #aff5b4; + --color-prettylights-syntax-markup-inserted-bg: #033a16; + --color-prettylights-syntax-markup-changed-text: #ffdfb6; + --color-prettylights-syntax-markup-changed-bg: #5a1e02; + --color-prettylights-syntax-markup-ignored-text: #c9d1d9; + --color-prettylights-syntax-markup-ignored-bg: #1158c7; + --color-prettylights-syntax-meta-diff-range: #d2a8ff; + --color-prettylights-syntax-brackethighlighter-angle: #8b949e; + --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58; + --color-prettylights-syntax-constant-other-reference-link: #a5d6ff; + --color-fg-default: #c9d1d9; + --color-fg-muted: #8b949e; + --color-fg-subtle: #484f58; + --color-canvas-default: #0d1117; + --color-canvas-subtle: #161b22; + --color-border-default: #30363d; + --color-border-muted: #21262d; + --color-neutral-muted: rgba(110, 118, 129, 0.4); + --color-accent-fg: #58a6ff; + --color-accent-emphasis: #1f6feb; + --color-attention-subtle: rgba(187, 128, 9, 0.15); + --color-danger-fg: #f85149; +} + #article { @apply text-lg leading-10; } @@ -87,20 +176,99 @@ h6:hover::before { @apply border-t-0; } #article table tr { - background-color: #ffffff; - border-top: 1px solid hsla(210, 18%, 87%, 1); + background-color: var(--color-canvas-default); + border-top: 1px solid var(--color-border-muted); } #article table tr:nth-child(2n) { - background-color: #f6f8fa; + background-color: var(--color-canvas-subtle); } #article table img { background-color: transparent; } -.dark #article table tr:nth-child(2n) { - background-color: #161b22; +#article blockquote { + margin: 0; + padding: 0 1em; + color: var(--color-fg-muted); + border-left: 0.25em solid var(--color-border-default); } -.dark #article table tr { - background-color: #0d1117; - border-top: 1px solid #21262d; + +#article kbd { + display: inline-block; + padding: 3px 5px; + font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, + Liberation Mono, monospace; + line-height: 10px; + color: var(--color-fg-default); + vertical-align: middle; + background-color: var(--color-canvas-subtle); + border: solid 1px var(--color-neutral-muted); + border-bottom-color: var(--color-neutral-muted); + border-radius: 6px; + box-shadow: inset 0 -1px 0 var(--color-neutral-muted); +} + +#article hr { + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid var(--color-border-muted); + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: var(--color-border-default); + border: 0; +} +#article hr::before { + display: table; + content: ''; +} +#article hr::after { + display: table; + clear: both; + content: ''; +} + +#article code, +#article tt { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: var(--color-neutral-muted); + border-radius: 6px; +} +#article pre > code { + padding: 0; + margin: 0; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +#article code, +#article kbd, +#article pre, +#article samp { + font-family: monospace, monospace; + font-size: 1em; +} + +#article mark { + background-color: var(--color-attention-subtle); + color: var(--color-text-primary); +} + +#article sub, +#article sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +#article sub { + bottom: -0.25em; +} +#article sup { + top: -0.5em; }