跳至主要內容
版本: 3.5.2

文件

有時候,您會想要直接從 Markdown 檔案連結到檔案(例如 docx 檔案、圖片...),且將檔案與使用該檔案的 Markdown 檔案並置,會更加方便。

想像有以下檔案結構

# Your doc
/website/docs/myFeature.mdx

# Some assets you want to use
/website/docs/assets/docusaurus-asset-example-banner.png
/website/docs/assets/docusaurus-asset-example.docx

影象

您可以用三種不同的方式顯示影象:Markdown 語法、CJS require 或 ES 匯入語法。

使用簡單的 Markdown 語法顯示影像

![Example banner](./assets/docusaurus-asset-example-banner.png)

以上所有事項都可顯示圖像

https://127.0.0.1:3000

My image alternative text

備註

如果您使用 @docusaurus/plugin-ideal-image,您需要使用專用的圖像元件(請參閱說明文件)。

檔案

可以藉由在 videoa 錨點連結等等中使用 require 載入方式連結至既有資產,然後使用所回傳的 URL。

# My Markdown page

<a target="\_blank" href={require('./assets/docusaurus-asset-example.docx').default}> Download this docx </a>

or

[Download this docx using Markdown](./assets/docusaurus-asset-example.docx)
Markdown 連結始終是檔案路徑

如果您使用 Markdown 圖像或連結語法,所有資產路徑都將由 Docusaurus 解析成檔案路徑,並自動轉換成 require() 呼叫。您無需在 Markdown 中使用 require(),除非您使用需要自行處理的 JSX 語法。

內嵌 SVG

Docusaurus 開箱即支援內嵌 SVG。

import DocusaurusSvg from './docusaurus.svg';

<DocusaurusSvg />;
https://127.0.0.1:3000

如果您想藉由 CSS 更改 SVG 圖像的某一部分,這項功能可能會有用。例如,您可以根據目前的佈景主題更改 SVG 的其中一色。

import DocusaurusSvg from './docusaurus.svg';

<DocusaurusSvg className="themedDocusaurus" />;
[data-theme='light'] .themedDocusaurus [fill='#FFFF50'] {
fill: greenyellow;
}

[data-theme='dark'] .themedDocusaurus [fill='#FFFF50'] {
fill: seagreen;
}
https://127.0.0.1:3000

主題化圖片

Docusaurus 支援的主題化圖片:ThemedImage 元件(包含在佈景主題中)讓您能根據目前的佈景主題切換圖片來源。

import useBaseUrl from '@docusaurus/useBaseUrl';
import ThemedImage from '@theme/ThemedImage';

<ThemedImage
alt="Docusaurus themed image"
sources={{
light: useBaseUrl('/img/docusaurus_light.svg'),
dark: useBaseUrl('/img/docusaurus_dark.svg'),
}}
/>;
https://127.0.0.1:3000
Docusaurus themed imageDocusaurus themed image

GitHub 風格的主題化圖片

GitHub 使用它自己的 影像佈景主題方法包含路徑片段,您可以輕鬆自行實作。

若要使用路徑片段切換圖片的可見性(對於 GitHub 來說,分別為 #gh-dark-mode-only#gh-light-mode-only),請將下列程式碼新增至您的自訂 CSS(如果您不希望與 GitHub 連結,您也可以使用自己的字尾)

src/css/custom.css
[data-theme='light'] img[src$='#gh-dark-mode-only'],
[data-theme='dark'] img[src$='#gh-light-mode-only'] {
display: none;
}
![Docusaurus themed image](/img/docusaurus_keytar.svg#gh-light-mode-only)![Docusaurus themed image](/img/docusaurus_speed.svg#gh-dark-mode-only)
https://127.0.0.1:3000

Docusaurus themed imageDocusaurus themed image

靜態資產

假如 Markdown 連結或影像有絕對路徑,路徑會被當作檔案路徑,並從靜態目錄解析。例如,假如您已設定靜態目錄,內容為 ['public', 'static'],那麼對於下列影像

my-doc.md
![An image from the static](/img/docusaurus.png)

Docusaurus 會嘗試在 static/img/docusaurus.pngpublic/img/docusaurus.png 尋找它。然後連結會轉換成 require() 呼叫,而不是維持為 URL。這在兩個方面是有利的情況

  1. 您不用擔心基礎網址,這在 Docusaurus 提供資產時將會處理;
  2. 影像會進入 Webpack 的建置流程,並且其名稱會附加雜湊,這會讓瀏覽器積極快取影像,並提升您網站的效能。

假如您打算撰寫 URL,您可以使用 pathname:// 協定來停用自動資產連結。

![banner](pathname:///img/docusaurus-asset-example-banner.png)

這個連結將會產生為 <img src="/img/docusaurus-asset-example-banner.png" alt="banner" />,沒有任何處理或檔案存在檢查。