aboutsummaryrefslogtreecommitdiff
path: root/src/theme
diff options
context:
space:
mode:
author安竹洋平 <61961825+yasutakeyohei@users.noreply.github.com>2024-01-27 01:22:54 +0900
committer安竹洋平 <61961825+yasutakeyohei@users.noreply.github.com>2024-01-27 01:22:54 +0900
commit65350c0839bf5cbbdd128d645018a0f5f07ac14f (patch)
tree11fbb7ef222526e9e3095ba3bc8652061eb5b168 /src/theme
parentcc128057af3c0805f0c5d26e6a915690d37e2187 (diff)
initial commit
Diffstat (limited to 'src/theme')
-rw-r--r--src/theme/Admonition/Icon/Danger.js11
-rw-r--r--src/theme/Admonition/Icon/Info.js11
-rw-r--r--src/theme/Admonition/Icon/Note.js11
-rw-r--r--src/theme/Admonition/Icon/Tip.js11
-rw-r--r--src/theme/Admonition/Icon/Warning.js11
-rw-r--r--src/theme/Admonition/Layout/index.js28
-rw-r--r--src/theme/Admonition/Layout/styles.module.css35
-rw-r--r--src/theme/Admonition/Type/Caution.js10
-rw-r--r--src/theme/Admonition/Type/Danger.js10
-rw-r--r--src/theme/Admonition/Type/Info.js10
-rw-r--r--src/theme/Admonition/Type/Note.js10
-rw-r--r--src/theme/Admonition/Type/Tip.js10
-rw-r--r--src/theme/Admonition/Type/Warning.js10
-rw-r--r--src/theme/Admonition/Types.js18
-rw-r--r--src/theme/Admonition/index.js8
15 files changed, 120 insertions, 84 deletions
diff --git a/src/theme/Admonition/Icon/Danger.js b/src/theme/Admonition/Icon/Danger.js
new file mode 100644
index 00000000..3ae0f005
--- /dev/null
+++ b/src/theme/Admonition/Icon/Danger.js
@@ -0,0 +1,11 @@
+import React from 'react';
+export default function AdmonitionIconDanger(props) {
+ return (
+ <svg viewBox="0 0 12 16" {...props}>
+ <path
+ fillRule="evenodd"
+ d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"
+ />
+ </svg>
+ );
+}
diff --git a/src/theme/Admonition/Icon/Info.js b/src/theme/Admonition/Icon/Info.js
new file mode 100644
index 00000000..6e843d2e
--- /dev/null
+++ b/src/theme/Admonition/Icon/Info.js
@@ -0,0 +1,11 @@
+import React from 'react';
+export default function AdmonitionIconInfo(props) {
+ return (
+ <svg viewBox="0 0 14 16" {...props}>
+ <path
+ fillRule="evenodd"
+ d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"
+ />
+ </svg>
+ );
+}
diff --git a/src/theme/Admonition/Icon/Note.js b/src/theme/Admonition/Icon/Note.js
new file mode 100644
index 00000000..e1cc0e4d
--- /dev/null
+++ b/src/theme/Admonition/Icon/Note.js
@@ -0,0 +1,11 @@
+import React from 'react';
+export default function AdmonitionIconNote(props) {
+ return (
+ <svg viewBox="0 0 14 16" {...props}>
+ <path
+ fillRule="evenodd"
+ d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"
+ />
+ </svg>
+ );
+}
diff --git a/src/theme/Admonition/Icon/Tip.js b/src/theme/Admonition/Icon/Tip.js
new file mode 100644
index 00000000..060d6c93
--- /dev/null
+++ b/src/theme/Admonition/Icon/Tip.js
@@ -0,0 +1,11 @@
+import React from 'react';
+export default function AdmonitionIconTip(props) {
+ return (
+ <svg viewBox="0 0 12 16" {...props}>
+ <path
+ fillRule="evenodd"
+ d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"
+ />
+ </svg>
+ );
+}
diff --git a/src/theme/Admonition/Icon/Warning.js b/src/theme/Admonition/Icon/Warning.js
new file mode 100644
index 00000000..3cea92d8
--- /dev/null
+++ b/src/theme/Admonition/Icon/Warning.js
@@ -0,0 +1,11 @@
+import React from 'react';
+export default function AdmonitionIconCaution(props) {
+ return (
+ <svg viewBox="0 0 16 16" {...props}>
+ <path
+ fillRule="evenodd"
+ d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"
+ />
+ </svg>
+ );
+}
diff --git a/src/theme/Admonition/Layout/index.js b/src/theme/Admonition/Layout/index.js
index 14a987b0..8d95599e 100644
--- a/src/theme/Admonition/Layout/index.js
+++ b/src/theme/Admonition/Layout/index.js
@@ -1,13 +1,7 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
-import { ThemeClassNames } from '@docusaurus/theme-common';
-import admonitionStyles from '@docusaurus/theme-classic/lib/theme/Admonition/Layout/styles.module.css';
+import {ThemeClassNames} from '@docusaurus/theme-common';
+import styles from './styles.module.css';
import headingStyles from '@docusaurus/theme-classic/lib/theme/Heading/styles.module.css';
function AdmonitionContainer({type, className, children}) {
@@ -16,33 +10,33 @@ function AdmonitionContainer({type, className, children}) {
className={clsx(
ThemeClassNames.common.admonition,
ThemeClassNames.common.admonitionType(type),
- admonitionStyles.admonition,
+ styles.admonition,
className,
- )}
- >
+ )}>
{children}
</div>
);
}
-function AdmonitionHeading({icon, id, title}) {
+function AdmonitionHeading({icon, title, id}) {
let depth = 0;
- let trimmedTitle = "";
+ let trimmedTitle = title;
// titleにHTML等が含まれている場合は文字列ではなく配列になる
if(typeof title === "string") {
// 文字列冒頭の#の数を数える(
depth = title.match ? (title.toString().match(/^#+/) || [''])[0].length : 0;
// #を省いたタイトルを得る
- trimmedTitle = depth > 0 ? title.replace(/^#+/, '').trim() : title;
+ trimmedTitle = depth > 0 ? title.replace(/^#+/, '').trim() : title;
} else if (typeof title[0] === "string") {
depth = title[0].match ? (title[0].match(/^#+/) || [''])[0].length : 0;
trimmedTitle = depth > 0 ? [title[0].replace(/^#+/, '').trim(), ...title.slice(1)] : title;
}
+
// スクロール位置調整のcss
const classNames = clsx("anchor", "title", headingStyles.anchorWithStickyNavbar);
// depthに応じて見出しタグをレンダー
return (
- <div className={admonitionStyles.admonitionHeading}>
- <span className={admonitionStyles.admonitionIcon}>{icon}</span>
+ <div className={styles.admonitionHeading}>
+ <span className={styles.admonitionIcon}>{icon}</span>
{(() => {
if (depth == 3) {
return(
@@ -93,7 +87,7 @@ function AdmonitionHeading({icon, id, title}) {
}
function AdmonitionContent({children}) {
return children ? (
- <div className={admonitionStyles.admonitionContent}>{children}</div>
+ <div className={styles.admonitionContent}>{children}</div>
) : null;
}
export default function AdmonitionLayout(props) {
diff --git a/src/theme/Admonition/Layout/styles.module.css b/src/theme/Admonition/Layout/styles.module.css
new file mode 100644
index 00000000..88df7e63
--- /dev/null
+++ b/src/theme/Admonition/Layout/styles.module.css
@@ -0,0 +1,35 @@
+.admonition {
+ margin-bottom: 1em;
+}
+
+.admonitionHeading {
+ font: var(--ifm-heading-font-weight) var(--ifm-h5-font-size) /
+ var(--ifm-heading-line-height) var(--ifm-heading-font-family);
+ text-transform: uppercase;
+}
+
+/* Heading alone without content (does not handle fragment content) */
+.admonitionHeading:not(:last-child) {
+ margin-bottom: 0.3rem;
+}
+
+.admonitionHeading code {
+ text-transform: none;
+}
+
+.admonitionIcon {
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 0.4em;
+}
+
+.admonitionIcon svg {
+ display: inline-block;
+ height: 1.6em;
+ width: 1.6em;
+ fill: var(--ifm-alert-foreground-color);
+}
+
+.admonitionContent > :last-child {
+ margin-bottom: 0;
+}
diff --git a/src/theme/Admonition/Type/Caution.js b/src/theme/Admonition/Type/Caution.js
index a7bc5440..7890ef7c 100644
--- a/src/theme/Admonition/Type/Caution.js
+++ b/src/theme/Admonition/Type/Caution.js
@@ -1,14 +1,8 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
-import AdmonitionLayout from '../Layout';
-import IconWarning from '@docusaurus/theme-classic/lib/theme/Admonition/Icon/Warning';
+import AdmonitionLayout from '@theme/Admonition/Layout';
+import IconWarning from '@theme/Admonition/Icon/Warning';
const infimaClassName = 'alert alert--warning';
const defaultProps = {
icon: <IconWarning />,
diff --git a/src/theme/Admonition/Type/Danger.js b/src/theme/Admonition/Type/Danger.js
index 39e37f69..7a8eb840 100644
--- a/src/theme/Admonition/Type/Danger.js
+++ b/src/theme/Admonition/Type/Danger.js
@@ -1,14 +1,8 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
-import AdmonitionLayout from '../Layout';
-import IconDanger from '@docusaurus/theme-classic/lib/theme/Admonition/Icon/Danger';
+import AdmonitionLayout from '@theme/Admonition/Layout';
+import IconDanger from '@theme/Admonition/Icon/Danger';
const infimaClassName = 'alert alert--danger';
const defaultProps = {
icon: <IconDanger />,
diff --git a/src/theme/Admonition/Type/Info.js b/src/theme/Admonition/Type/Info.js
index 44409a44..f0e9d2b6 100644
--- a/src/theme/Admonition/Type/Info.js
+++ b/src/theme/Admonition/Type/Info.js
@@ -1,14 +1,8 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
-import AdmonitionLayout from '../Layout';
-import IconInfo from '@docusaurus/theme-classic/lib/theme/Admonition/Icon/Info';
+import AdmonitionLayout from '@theme/Admonition/Layout';
+import IconInfo from '@theme/Admonition/Icon/Info';
const infimaClassName = 'alert alert--info';
const defaultProps = {
icon: <IconInfo />,
diff --git a/src/theme/Admonition/Type/Note.js b/src/theme/Admonition/Type/Note.js
index 01226d2f..5dfb6c00 100644
--- a/src/theme/Admonition/Type/Note.js
+++ b/src/theme/Admonition/Type/Note.js
@@ -1,14 +1,8 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
-import AdmonitionLayout from '../Layout';
-import IconNote from '@docusaurus/theme-classic/lib/theme/Admonition/Icon/Note';
+import AdmonitionLayout from '@theme/Admonition/Layout';
+import IconNote from '@theme/Admonition/Icon/Note';
const infimaClassName = 'alert alert--secondary';
const defaultProps = {
icon: <IconNote />,
diff --git a/src/theme/Admonition/Type/Tip.js b/src/theme/Admonition/Type/Tip.js
index bbe7de19..f31e4208 100644
--- a/src/theme/Admonition/Type/Tip.js
+++ b/src/theme/Admonition/Type/Tip.js
@@ -1,14 +1,8 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
-import AdmonitionLayout from '../Layout';
-import IconTip from '@docusaurus/theme-classic/lib/theme/Admonition/Icon/Tip';
+import AdmonitionLayout from '@theme/Admonition/Layout';
+import IconTip from '@theme/Admonition/Icon/Tip';
const infimaClassName = 'alert alert--success';
const defaultProps = {
icon: <IconTip />,
diff --git a/src/theme/Admonition/Type/Warning.js b/src/theme/Admonition/Type/Warning.js
index ac28ae39..b507d8d9 100644
--- a/src/theme/Admonition/Type/Warning.js
+++ b/src/theme/Admonition/Type/Warning.js
@@ -1,14 +1,8 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
-import AdmonitionLayout from '../Layout';
-import IconWarning from '@docusaurus/theme-classic/lib/theme/Admonition/Icon/Warning';
+import AdmonitionLayout from '@theme/Admonition/Layout';
+import IconWarning from '@theme/Admonition/Icon/Warning';
const infimaClassName = 'alert alert--warning';
const defaultProps = {
icon: <IconWarning />,
diff --git a/src/theme/Admonition/Types.js b/src/theme/Admonition/Types.js
index d5f1f089..8d3197c5 100644
--- a/src/theme/Admonition/Types.js
+++ b/src/theme/Admonition/Types.js
@@ -1,16 +1,10 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
-import AdmonitionTypeNote from './Type/Note';
-import AdmonitionTypeTip from './Type/Tip';
-import AdmonitionTypeInfo from './Type/Info';
-import AdmonitionTypeWarning from './Type/Warning';
-import AdmonitionTypeDanger from './Type/Danger';
-import AdmonitionTypeCaution from './Type/Caution';
+import AdmonitionTypeNote from '@theme/Admonition/Type/Note';
+import AdmonitionTypeTip from '@theme/Admonition/Type/Tip';
+import AdmonitionTypeInfo from '@theme/Admonition/Type/Info';
+import AdmonitionTypeWarning from '@theme/Admonition/Type/Warning';
+import AdmonitionTypeDanger from '@theme/Admonition/Type/Danger';
+import AdmonitionTypeCaution from '@theme/Admonition/Type/Caution';
const admonitionTypes = {
note: AdmonitionTypeNote,
tip: AdmonitionTypeTip,
diff --git a/src/theme/Admonition/index.js b/src/theme/Admonition/index.js
index c66baaea..a6ecab74 100644
--- a/src/theme/Admonition/index.js
+++ b/src/theme/Admonition/index.js
@@ -1,12 +1,6 @@
-/**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
import React from 'react';
import {processAdmonitionProps} from '@docusaurus/theme-common';
-import AdmonitionTypes from './Types';
+import AdmonitionTypes from '@theme/Admonition/Types';
function getAdmonitionTypeComponent(type) {
const component = AdmonitionTypes[type];
if (component) {