mirror of
https://github.com/DefectingCat/DefectingCat.github.io
synced 2025-07-16 01:01:38 +00:00
Add mdx image component
* update markdown styles
This commit is contained in:
26
components/mdx/Image.tsx
Normal file
26
components/mdx/Image.tsx
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import cn from 'classnames';
|
||||||
|
import NextImage from 'next/image';
|
||||||
|
import { DetailedHTMLProps, ImgHTMLAttributes } from 'react';
|
||||||
|
|
||||||
|
interface Props
|
||||||
|
extends DetailedHTMLProps<
|
||||||
|
ImgHTMLAttributes<HTMLImageElement>,
|
||||||
|
HTMLImageElement
|
||||||
|
> {}
|
||||||
|
|
||||||
|
const Image = ({ src, alt }: Props) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<NextImage
|
||||||
|
src={src ?? ''}
|
||||||
|
alt={alt}
|
||||||
|
layout="responsive"
|
||||||
|
width="100%"
|
||||||
|
height="100%"
|
||||||
|
/>
|
||||||
|
<span className="block text-center text-gray-400">{alt}</span>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Image;
|
@ -7,9 +7,11 @@ import 'styles/prism-one-dark.css';
|
|||||||
import 'styles/rua.css';
|
import 'styles/rua.css';
|
||||||
import { MDXProvider } from '@mdx-js/react';
|
import { MDXProvider } from '@mdx-js/react';
|
||||||
import Anchor from 'components/mdx/Anchor';
|
import Anchor from 'components/mdx/Anchor';
|
||||||
|
import Image from 'components/mdx/Image';
|
||||||
|
|
||||||
const components = {
|
const components = {
|
||||||
a: Anchor,
|
a: Anchor,
|
||||||
|
img: Image,
|
||||||
};
|
};
|
||||||
|
|
||||||
function MyApp({ Component, pageProps }: AppPropsWithLayout) {
|
function MyApp({ Component, pageProps }: AppPropsWithLayout) {
|
||||||
|
@ -176,57 +176,20 @@ Autoconverted link https://github.com/nodeca/pica (enable linkify to see)
|
|||||||
|
|
||||||
## Images
|
## Images
|
||||||
|
|
||||||

|
With a reference later in the document defining the URL location:
|
||||||

|
|
||||||
|
|
||||||
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
|

|
||||||
|
|
||||||
The killer feature of `markdown-it` is very effective support of
|
With a reference later in the document defining the URL location:
|
||||||
[syntax plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin).
|
|
||||||
|
|
||||||
### [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:
|
With a reference later in the document defining the URL location:
|
||||||
>
|
|
||||||
> Shortcuts (emoticons): :-) :-( 8-) ;)
|
|
||||||
|
|
||||||
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)
|
> test
|
||||||
|
|
||||||
- 19^th^
|
|
||||||
- H~2~O
|
|
||||||
|
|
||||||
### [\<ins>](https://github.com/markdown-it/markdown-it-ins)
|
|
||||||
|
|
||||||
++Inserted text++
|
|
||||||
|
|
||||||
### [\<mark>](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)
|
|
||||||
|
BIN
public/images/p/second-post/minion.png
Normal file
BIN
public/images/p/second-post/minion.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
184
styles/rua.css
184
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 {
|
#article {
|
||||||
@apply text-lg leading-10;
|
@apply text-lg leading-10;
|
||||||
}
|
}
|
||||||
@ -87,20 +176,99 @@ h6:hover::before {
|
|||||||
@apply border-t-0;
|
@apply border-t-0;
|
||||||
}
|
}
|
||||||
#article table tr {
|
#article table tr {
|
||||||
background-color: #ffffff;
|
background-color: var(--color-canvas-default);
|
||||||
border-top: 1px solid hsla(210, 18%, 87%, 1);
|
border-top: 1px solid var(--color-border-muted);
|
||||||
}
|
}
|
||||||
#article table tr:nth-child(2n) {
|
#article table tr:nth-child(2n) {
|
||||||
background-color: #f6f8fa;
|
background-color: var(--color-canvas-subtle);
|
||||||
}
|
}
|
||||||
#article table img {
|
#article table img {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark #article table tr:nth-child(2n) {
|
#article blockquote {
|
||||||
background-color: #161b22;
|
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;
|
#article kbd {
|
||||||
border-top: 1px solid #21262d;
|
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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user