<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Aoyuki</title><description>Demo Site</description><link>https://localhost:4321/</link><item><title>Aoyuki Config Reference</title><link>https://localhost:4321/posts/d57d7999/</link><guid isPermaLink="true">https://localhost:4321/posts/d57d7999/</guid><description>This post showcases how to configure Aoyuki.</description><pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate><content:encoded>The config is a YAML file located at `./aoyuki.config.ts` and is used to configure the behaviour of Aoyuki. See the [Front Matter Reference](./1fe28798) for how to configure a blog post.

&lt;br /&gt;

# Aoyuki Config Reference

## Title &lt;string\&gt; &lt;required&gt;

The title is a string that represents the title of the site. It is required.

## SubTitle &lt;string\&gt; &lt;required&gt;

The subtitle is a string that represents the subtitle of the site. It is required.

## Brand Title &lt;string\&gt; &lt;required&gt;

The brand title is a string that represents the brand title of the site. It is required.

## Description &lt;string\&gt; &lt;required&gt;

The description is a string that represents the description of the site. It is required.

## Site &lt;string\&gt; &lt;required&gt;

The site is a string that represents the site of the site. It is required.

## Locale &lt;string\&gt; &lt;required&gt;

The locale is a string that represents the locale of the site. It is required.

## NavLinks &lt;array&lt;object\&gt;\&gt; &lt;required&gt;

The navlinks are an array of objects that represents the navigation links of the site. It is required.

## Username &lt;string\&gt; &lt;required&gt;

The username is a string that represents the username of the site&apos;s author, see it in the side bar. It is required.

## Sign &lt;string\&gt; &lt;required&gt;

The sign is a string that represents the sign/bio of the site&apos;s author, see it in the side bar. It is required.

## Avatar URL &lt;string\&gt; &lt;required&gt;

The avatar URL is a string that represents the avatar URL of the site&apos;s author, see it in the side bar. It is required.

## Social Links &lt;array&lt;object\&gt;\&gt; &lt;required&gt;

The social links are an array of objects that represents the social links of the site&apos;s author, see it in the side bar. It is required.

## Max Sidebar Category Chip &lt;number\&gt; &lt;required&gt;

The max sidebar category chip is a number that represents the max sidebar category chip of the site. It is required.

## Max Sidebar Tag Chip &lt;number\&gt; &lt;required&gt;

The max sidebar tag chip is a number that represents the max sidebar tag chip of the site. It is required.

## Max Footer Category Chip &lt;number\&gt; &lt;required&gt;

The max footer category chip is a number that represents the max footer category chip of the site. It is required.

## Max Footer Tag Chip &lt;number\&gt; &lt;required&gt;

The max footer tag chip is a number that represents the max footer tag chip of the site. It is required.

## Tab Title Format &lt;string\&gt; &lt;required&gt;

The tab title format is a string that represents the tab title format of the site. It is required.

## Tab Title Format Fallback &lt;string\&gt; &lt;required&gt;

The tab title format fallback is a string that represents the tab title format fallback of the site. It is required.

## Banners &lt;array&lt;object\&gt;\&gt; &lt;required&gt;

The banners are an array of objects that represents the banners of the site. It is required.

## Slug Mode &lt;string: &apos;RAW&apos; | &apos;HASH&apos;\&gt; &lt;required&gt;

The slug mode is a string that represents the slug mode of the site. It is required.

## License &lt;object\&gt; &lt;required&gt;

The license is an object that represents the license of the site. It is required.

## Banner Style &lt;string: &apos;loop&apos; | &apos;static&apos; | &apos;hidden&apos;\&gt; &lt;required&gt;

The banner style is a string that represents the banner style of the site. It is required.</content:encoded><language>en-us</language></item><item><title>Include Videos in Posts</title><link>https://localhost:4321/posts/0cab1c96/</link><guid isPermaLink="true">https://localhost:4321/posts/0cab1c96/</guid><description>This post demonstrates how to include embedded videos in a blog post.</description><pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate><content:encoded>Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.

```yaml
---
title: Include Videos in Posts
published: 2025-12-11
// ...
---

&lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
```
## YouTube

&lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;

## Bilibili

&lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1fK4y1s7Qf&amp;p=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;

## Odysee

&lt;div style=&quot;left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;&quot;&gt;&lt;iframe src=&quot;https://odysee.com/%24/embed/%40edisonlee55%3A7%2Fsc-88-pro-%E7%A8%B2%E8%91%89%E6%9B%87%E3%80%8E%E3%83%A9%E3%82%B0%E3%83%88%E3%83%AC%E3%82%A4%E3%83%B3%3A9&quot; style=&quot;top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;&quot; allowfullscreen scrolling=&quot;no&quot; allow=&quot;encrypted-media *;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content:encoded><language>en-us</language></item><item><title>Front Matter Reference</title><link>https://localhost:4321/posts/1fe28798/</link><guid isPermaLink="true">https://localhost:4321/posts/1fe28798/</guid><description>This post showcases how to use front matter in a blog post.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate><content:encoded>The front matter is a YAML block at the beginning of a blog post&apos;s markdown file. It contains metadata about the post, such as the title, description, cover image, tags, category, etc.

This post showcases the basic reference of how to use the front matter correctly and what values are expected and possible. The full front matter config can be found at `src/content.config.ts`.

&lt;br /&gt;

# Example Front Matter

```yaml
---
title: Front Matter Reference
published: 2026-01-13
description: This post showcases how to use front matter in a blog post.
cover: &apos;/assets/images/banners/98431621_p0_master1200.jpg&apos;
coverCredit: {text: &quot;Magic Power City - Gilsun&quot;, url: &apos;https://www.pixiv.net/en/artworks/98431621&apos;}
tags: [Example, Reference, Front Matter]
hex: &apos;#32a852&apos;
category: Examples
draft: false

licenseName: &quot;MIT License&quot;
author: &quot;wlft&quot;
sourceLink: &quot;https://github.com/wlft/aoyuki&quot;
licenseUrl: &quot;https://github.com/wlft/aoyuki/blob/main/LICENSE&quot;
---
```

&lt;br /&gt;

# Reference

## Title &lt;string\&gt; &lt;required&gt;

The title is a string that represents the title of the post. It is required.

```yaml
title: Front Matter Reference
```

## Published &lt;string: yyyy-mm-dd || yyyy-mm-ddThh:mm:ss.sssZ\&gt; &lt;required&gt;

The published date is a string that represents the date the post was published. It is required.

```yaml
published: 2026-01-13
```

Or, to include hours, minutes, and seconds:

```yaml
published: 2026-01-13T07:04:20.000Z
```

## Description &lt;string\&gt;

The description is a string that represents the description of the post. It is optional.

```yaml
description: This post showcases how to use front matter in a blog post.
```

## Cover &lt;string\&gt;

The cover is a string that represents the cover image of the post. It is optional.

```yaml
cover: &apos;/assets/images/banners/98431621_p0_master1200.jpg&apos;
```

## Cover Credit &lt;object\&gt;

The cover credit is an object that represents the credit of the cover image. It is optional.

```yaml
coverCredit: {text: &quot;Magic Power City - Gilsun&quot;, url: &apos;https://www.pixiv.net/en/artworks/98431621&apos;}
```

## Tags &lt;array&lt;string\&gt;\&gt;

The tags are an array of strings that represents the tags of the post. It is optional.

```yaml
tags: [Example, Reference, Front Matter]
```

## Hex &lt;string: hex-color\&gt;

The hex is a string that represents the hex color of the post. It is optional.

```yaml
hex: &apos;#32a852&apos;
```

## Category &lt;string\&gt;

The category is a string that represents the category of the post. It is optional.

```yaml
category: Examples
```

## Draft &lt;boolean\&gt;

The draft is a boolean that represents whether the post is a draft. It is optional.

```yaml
draft: false
```

## License Name &lt;string\&gt;

The license name is a string that represents the license name of the post. It is optional.

```yaml
licenseName: &quot;Unlicensed&quot;
```

## Author &lt;string\&gt;

The author is a string that represents the author of the post. It is optional.

```yaml
author: emn178
```

## Source Link &lt;string\&gt;

The source link is a string that represents the source link of the post. It is optional.

```yaml
sourceLink: &quot;https://github.com/wlft/aoyuki&quot;
```

## License URL &lt;string\&gt;

The license URL is a string that represents the license URL of the post. It is optional.

```yaml
licenseUrl: &quot;https://github.com/wlft/aoyuki&quot;
```</content:encoded><language>en-us</language></item><item><title>Markdown Example</title><link>https://localhost:4321/posts/bc18f706/</link><guid isPermaLink="true">https://localhost:4321/posts/bc18f706/</guid><description>A simple example of a Markdown blog post.</description><pubDate>Sun, 01 Oct 2023 00:00:00 GMT</pubDate><content:encoded># An h1 header

Paragraphs are separated by a blank line.

2nd paragraph. _Italic_, **bold**, and `monospace`. Itemized lists
look like:

- this one
- that one
- the other one

Note that --- not considering the asterisk --- the actual text
content starts at 4-columns in.

&gt; Block quotes are
&gt; written like so.
&gt;
&gt; They can span multiple paragraphs,
&gt; if you like.

Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., &quot;it&apos;s all
in chapters 12--14&quot;). Three dots ... will be converted to an ellipsis.
Unicode is supported. ☺

## An h2 header

Here&apos;s a numbered list:

1. first item
2. second item
3. third item

Note again how the actual text starts at 4 columns in (4 characters
from the left side). Here&apos;s a code sample:

    # Let me re-iterate ...
    for i in 1 .. 10 { do-something(i) }

As you probably guessed, indented 4 spaces. By the way, instead of
indenting the block, you can use delimited blocks, if you like:

```
define foobar() {
    print &quot;Welcome to flavor country!&quot;;
}
```

(which makes copying &amp; pasting easier). You can optionally mark the
delimited block for Pandoc to syntax highlight it:

```python
import time
# Quick, count to ten!
for i in range(10):
    # (but not *too* quick)
    time.sleep(0.5)
    print i
```

### An h3 header

Now a nested list:

1.  First, get these ingredients:

    - carrots
    - celery
    - lentils

2.  Boil some water.

3.  Dump everything in the pot and follow
    this algorithm:

        find wooden spoon
        uncover pot
        stir
        cover pot
        balance wooden spoon precariously on pot handle
        wait 10 minutes
        goto first step (or shut off burner when done)

    Do not bump wooden spoon or it will fall.

Notice again how text always lines up on 4-space indents (including
that last line which continues item 3 above).

Here&apos;s a link to [a website](http://foo.bar), to a [local
doc](local-doc.html), and to a [section heading in the current
doc](#an-h2-header). Here&apos;s a footnote [^1].

[^1]: Footnote text goes here.

Tables can look like this:

size material color

---

9 leather brown
10 hemp canvas natural
11 glass transparent

Table: Shoes, their sizes, and what they&apos;re made of

(The above is the caption for the table.) Pandoc also supports
multi-line tables:

---

keyword text

---

red Sunsets, apples, and
other red or reddish
things.

green Leaves, grass, frogs
and other things it&apos;s
not easy being.

---

A horizontal rule follows.

---

Here&apos;s a definition list:

apples
: Good for making applesauce.
oranges
: Citrus!
tomatoes
: There&apos;s no &quot;e&quot; in tomatoe.

Again, text is indented 4 spaces. (Put a blank line between each
term/definition pair to spread things out more.)

Here&apos;s a &quot;line block&quot;:

| Line one
| Line too
| Line tree

and images can be specified like so:

[//]: # &apos;![example image](./demo-banner.png &quot;An exemplary image&quot;)&apos;

Inline math equations go in like so: $\omega = d\phi / dt$. Display
math should get its own line and be put in in double-dollarsigns:

$$I = \int \rho R^{2} dV$$

And note that you can backslash-escape any punctuation characters
which you wish to be displayed literally, ex.: \`foo\`, \*bar\*, etc.</content:encoded><language>en-us</language></item><item><title>Markdown Tutorial</title><link>https://localhost:4321/posts/4e92433e/</link><guid isPermaLink="true">https://localhost:4321/posts/4e92433e/</guid><description>A simple example of a Markdown blog post.</description><pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate><content:encoded># Markdown Tutorial

A markdown example shows how to write a markdown file. This document integrates core syntax and extensions (GMF).

- [Block Elements](#block-elements)
  - [Paragraphs and Line Breaks](#paragraphs-and-line-breaks)
  - [Headers](#headers)
  - [Blockquotes](#blockquotes)
  - [Lists](#lists)
  - [Code Blocks](#code-blocks)
  - [Horizontal Rules](#horizontal-rules)
  - [Table](#table)
- [Span Elements](#span-elements)
  - [Links](#links)
  - [Emphasis](#emphasis)
  - [Code](#code)
  - [Images](#images)
  - [Strikethrough](#strikethrough)
- [Miscellaneous](#miscellaneous)
  - [Automatic Links](#automatic-links)
  - [Backslash Escapes](#backslash-escapes)
- [Inline HTML](#inline-html)

## Block Elements

### Paragraphs and Line Breaks

#### Paragraphs

HTML Tag: `&lt;p&gt;`

One or more blank lines. (A blank line is a line containing nothing but **spaces** or **tabs** is considered blank.)

Code:

    This will be
    inline.

    This is second paragraph.

Preview:

---

This will be
inline.

This is second paragraph.

---

#### Line Breaks

HTML Tag: `&lt;br /&gt;`

End a line with **two or more spaces**.

Code:

    This will be not
    inline.

Preview:

---

This will be not  
inline.

---

### Headers

Markdown supports two styles of headers, Setext and atx.

#### Setext

HTML Tags: `&lt;h1&gt;`, `&lt;h2&gt;`

“Underlined” using **equal signs (=)** as `&lt;h1&gt;` and **dashes (-)** as `&lt;h2&gt;` in any number.

Code:

    This is an H1
    =============
    This is an H2
    -------------

Preview:

---

# This is an H1

## This is an H2

---

#### atx

HTML Tags: `&lt;h1&gt;`, `&lt;h2&gt;`, `&lt;h3&gt;`, `&lt;h4&gt;`, `&lt;h5&gt;`, `&lt;h6&gt;`

Uses 1-6 **hash characters (#)** at the start of the line, corresponding to `&lt;h1&gt;` - `&lt;h6&gt;`.

Code:

    # This is an H1
    ## This is an H2
    ###### This is an H6

Preview:

---

# This is an H1

## This is an H2

###### This is an H6

---

Optionally, you may “close” atx-style headers. The closing hashes **don’t need to match** the number of hashes used to open the header.

Code:

    # This is an H1 #
    ## This is an H2 ##
    ### This is an H3 ######

Preview:

---

# This is an H1

## This is an H2

### This is an H3

---

### Blockquotes

HTML Tag: `&lt;blockquote&gt;`

Markdown uses email-style **&gt;** characters for blockquoting. It looks best if you hard wrap the text and put a &gt; before every line.

Code:

    &gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
    &gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
    &gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    &gt;
    &gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
    &gt; id sem consectetuer libero luctus adipiscing.

Preview:

---

&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
&gt;
&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
&gt; id sem consectetuer libero luctus adipiscing.

---

Markdown allows you to be lazy and only put the &gt; before the first line of a hard-wrapped paragraph.

Code:

    &gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.

    &gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
    id sem consectetuer libero luctus adipiscing.

Preview:

---

&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.

&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
&gt; id sem consectetuer libero luctus adipiscing.

---

Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by adding additional levels of &gt;.

Code:

    &gt; This is the first level of quoting.
    &gt;
    &gt; &gt; This is nested blockquote.
    &gt;
    &gt; Back to the first level.

Preview:

---

&gt; This is the first level of quoting.
&gt;
&gt; &gt; This is nested blockquote.
&gt;
&gt; Back to the first level.

---

Blockquotes can contain other Markdown elements, including headers, lists, and code blocks.

Code:

    &gt; ## This is a header.
    &gt;
    &gt; 1.   This is the first list item.
    &gt; 2.   This is the second list item.
    &gt;
    &gt; Here&apos;s some example code:
    &gt;
    &gt;     return shell_exec(&quot;echo $input | $markdown_script&quot;);

Preview:

---

&gt; ## This is a header.
&gt;
&gt; 1.  This is the first list item.
&gt; 2.  This is the second list item.
&gt;
&gt; Here&apos;s some example code:
&gt;
&gt;     return shell_exec(&quot;echo $input | $markdown_script&quot;);

---

### Lists

Markdown supports ordered (numbered) and unordered (bulleted) lists.

#### Unordered

HTML Tag: `&lt;ul&gt;`

Unordered lists use **asterisks (\*)**, **pluses (+)**, and **hyphens (-)**.

Code:

    *   Red
    *   Green
    *   Blue

Preview:

---

- Red
- Green
- Blue

---

is equivalent to:

Code:

    +   Red
    +   Green
    +   Blue

and:

Code:

    -   Red
    -   Green
    -   Blue

#### Ordered

HTML Tag: `&lt;ol&gt;`

Ordered lists use numbers followed by periods:

Code:

    1.  Bird
    2.  McHale
    3.  Parish

Preview:

---

1.  Bird
2.  McHale
3.  Parish

---

It’s possible to trigger an ordered list by accident, by writing something like this:

Code:

    1986. What a great season.

Preview:

---

1986. What a great season.

---

You can **backslash-escape (\\)** the period:

Code:

    1986\. What a great season.

Preview:

---

1986\. What a great season.

---

#### Indented

##### Blockquote

To put a blockquote within a list item, the blockquote’s &gt; delimiters need to be indented:

Code:

    *   A list item with a blockquote:

        &gt; This is a blockquote
        &gt; inside a list item.

Preview:

---

- A list item with a blockquote:

  &gt; This is a blockquote
  &gt; inside a list item.

---

##### Code Block

To put a code block within a list item, the code block needs to be indented twice — **8 spaces** or **two tabs**:

Code:

    *   A list item with a code block:

            &lt;code goes here&gt;

Preview:

---

- A list item with a code block:

      &lt;code goes here&gt;

---

##### Nested List

Code:

    * A
      * A1
      * A2
    * B
    * C

Preview:

---

- A
  - A1
  - A2
- B
- C

---

### Code Blocks

HTML Tag: `&lt;pre&gt;`

Indent every line of the block by at least **4 spaces** or **1 tab**.

Code:

    This is a normal paragraph:

        This is a code block.

Preview:

---

This is a normal paragraph:

    This is a code block.

---

A code block continues until it reaches a line that is not indented (or the end of the article).

Within a code block, **_ampersands (&amp;)_** and angle **brackets (&lt; and &gt;)** are automatically converted into HTML entities.

Code:

        &lt;div class=&quot;footer&quot;&gt;
            &amp;copy; 2004 Foo Corporation
        &lt;/div&gt;

Preview:

---

    &lt;div class=&quot;footer&quot;&gt;
        &amp;copy; 2004 Foo Corporation
    &lt;/div&gt;

---

Following sections Fenced Code Blocks and Syntax Highlighting are extensions, you can use the other way to write the code block.

#### Fenced Code Blocks

Just wrap your code in ` ``` ` (as shown below) and you won&apos;t need to indent it by four spaces.

Code:

    Here&apos;s an example:

    ```
    function test() {
      console.log(&quot;notice the blank line before this function?&quot;);
    }
    ```

Preview:

---

Here&apos;s an example:

```
function test() {
  console.log(&quot;notice the blank line before this function?&quot;);
}
```

---

#### Syntax Highlighting

In your fenced block, add an optional language identifier and we&apos;ll run it through syntax highlighting ([Support Languages](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml)).

Code:

    ```ruby
    require &apos;redcarpet&apos;
    markdown = Redcarpet.new(&quot;Hello World!&quot;)
    puts markdown.to_html
    ```

Preview:

---

```ruby
require &apos;redcarpet&apos;
markdown = Redcarpet.new(&quot;Hello World!&quot;)
puts markdown.to_html
```

---

### Horizontal Rules

HTML Tag: `&lt;hr /&gt;`
Places **three or more hyphens (-), asterisks (\*), or underscores (\_)** on a line by themselves. You may use spaces between the hyphens or asterisks.

Code:

    * * *
    ***
    *****
    - - -
    ---------------------------------------
    ___

Preview:

---

---

---

---

---

---

---

---

### Table

HTML Tag: `&lt;table&gt;`

It&apos;s an extension.

Separates column by **pipe (|)** and header by **dashes (-)**, and uses **colon (:)** for alignment.

The outer **pipes (|)** and alignment are optional. There are **3 delimiters** each cell at least for separating header.

Code:

```
| Left | Center | Right |
|:-----|:------:|------:|
|aaa   |bbb     |ccc    |
|ddd   |eee     |fff    |

 A | B
---|---
123|456


A |B
--|--
12|45
```

Preview:

---

| Left | Center | Right |
| :--- | :----: | ----: |
| aaa  |  bbb   |   ccc |
| ddd  |  eee   |   fff |

| A   | B   |
| --- | --- |
| 123 | 456 |

| A   | B   |
| --- | --- |
| 12  | 45  |

---

## Span Elements

### Links

HTML Tag: `&lt;a&gt;`

Markdown supports two style of links: inline and reference.

#### Inline

Inline link format like this: `[Link Text](URL &quot;Title&quot;)`

Title is optional.

Code:

    This is [an example](http://example.com/ &quot;Title&quot;) inline link.

    [This link](http://example.net/) has no title attribute.

Preview:

---

This is [an example](http://example.com/ &quot;Title&quot;) inline link.

[This link](http://example.net/) has no title attribute.

---

If you’re referring to a local resource on the same server, you can use relative paths:

Code:

    See my [About](/about/) page for details.

Preview:

---

See my [About](/about/) page for details.

---

#### Reference

You could predefine link references. Format like this: `[id]: URL &quot;Title&quot;`

Title is also optional. And the you refer the link, format like this: `[Link Text][id]`

Code:

    [id]: http://example.com/  &quot;Optional Title Here&quot;
    This is [an example][id] reference-style link.

Preview:

---

[id]: http://example.com/ &quot;Optional Title Here&quot;

This is [an example][id] reference-style link.

---

That is:

- Square brackets containing the link identifier (**not case sensitive**, optionally indented from the left margin using up to three spaces);
- followed by a colon;
- followed by one or more spaces (or tabs);
- followed by the URL for the link;
- The link URL may, optionally, be surrounded by angle brackets.
- optionally followed by a title attribute for the link, enclosed in double or single quotes, or enclosed in parentheses.

The following three link definitions are equivalent:

Code:

    [foo]: http://example.com/  &quot;Optional Title Here&quot;
    [foo]: http://example.com/  &apos;Optional Title Here&apos;
    [foo]: http://example.com/  (Optional Title Here)
    [foo]: &lt;http://example.com/&gt;  &quot;Optional Title Here&quot;

Uses an empty set of square brackets, the link text itself is used as the name.

Code:

    [Google]: http://google.com/
    [Google][]

Preview:

---

[Google]: http://google.com/

[Google][]

---

### Emphasis

HTML Tags: `&lt;em&gt;`, `&lt;strong&gt;`

Markdown treats **asterisks (\*)** and **underscores (\_)** as indicators of emphasis. **One delimiter** will be `&lt;em&gt;`; \*_double delimiters_ will be `&lt;strong&gt;`.

Code:

    *single asterisks*

    _single underscores_

    **double asterisks**

    __double underscores__

Preview:

---

_single asterisks_

_single underscores_

**double asterisks**

**double underscores**

---

But if you surround an \* or \_ with spaces, it’ll be treated as a literal asterisk or underscore.

You can backslash escape it:

Code:

    \*this text is surrounded by literal asterisks\*

Preview:

---

\*this text is surrounded by literal asterisks\*

---

### Code

HTML Tag: `&lt;code&gt;`

Wraps it with **backtick quotes (`)**.

Code:

    Use the `printf()` function.

Preview:

---

Use the `printf()` function.

---

To include a literal backtick character within a code span, you can use **multiple backticks** as the opening and closing delimiters:

Code:

    ``There is a literal backtick (`) here.``

Preview:

---

``There is a literal backtick (`) here.``

---

The backtick delimiters surrounding a code span may include spaces — one after the opening, one before the closing. This allows you to place literal backtick characters at the beginning or end of a code span:

Code:

    A single backtick in a code span: `` ` ``

    A backtick-delimited string in a code span: `` `foo` ``

Preview:

---

A single backtick in a code span: `` ` ``

A backtick-delimited string in a code span: `` `foo` ``

---

### Images

HTML Tag: `&lt;img /&gt;`

Markdown uses an image syntax that is intended to resemble the syntax for links, allowing for two styles: inline and reference.

#### Inline

Inline image syntax looks like this: `![Alt text](URL &quot;Title&quot;)`

Title is optional.

Code:

    ![Alt text](/path/to/img.jpg)

    ![Alt text](/path/to/img.jpg &quot;Optional title&quot;)

Preview:

---

![Alt text](https://s2.loli.net/2024/08/20/5fszgXeOxmL3Wdv.webp)

![Alt text](https://s2.loli.net/2024/08/20/5fszgXeOxmL3Wdv.webp &quot;Optional title&quot;)

---

That is:

- An exclamation mark: !;
- followed by a set of square brackets, containing the alt attribute text for the image;
- followed by a set of parentheses, containing the URL or path to the image, and an optional title attribute enclosed in double or single quotes.

#### Reference

Reference-style image syntax looks like this: `![Alt text][id]`

Code:

    [img id]: url/to/image  &quot;Optional title attribute&quot;
    ![Alt text][img id]

Preview:

---

[img id]: url/to/image &quot;Optional title attribute&quot;

![Alt text][img id]

---

### Strikethrough

HTML Tag: `&lt;del&gt;`

It&apos;s an extension.

GFM adds syntax to strikethrough text.

Code:

```
~~Mistaken text.~~
```

Preview:

---

~~Mistaken text.~~

---

## Miscellaneous

### Automatic Links

Markdown supports a shortcut style for creating “automatic” links for URLs and email addresses: simply surround the URL or email address with angle brackets.

Code:

    &lt;http://example.com/&gt;

    &lt;address@example.com&gt;

Preview:

---

&lt;http://example.com/&gt;

&lt;address@example.com&gt;

---

GFM will autolink standard URLs.

Code:

```
https://github.com/emn178/markdown
```

Preview:

---

https://github.com/emn178/markdown

---

### Backslash Escapes

Markdown allows you to use backslash escapes to generate literal characters which would otherwise have special meaning in Markdown’s formatting syntax.

Code:

    \*literal asterisks\*

Preview:

---

\*literal asterisks\*

---

Markdown provides backslash escapes for the following characters:

Code:

    \   backslash
    `   backtick
    *   asterisk
    _   underscore
    {}  curly braces
    []  square brackets
    ()  parentheses
    #   hash mark
    +   plus sign
    -   minus sign (hyphen)
    .   dot
    !   exclamation mark

## Inline HTML

For any markup that is not covered by Markdown’s syntax, you simply use HTML itself. There’s no need to preface it or delimit it to indicate that you’re switching from Markdown to HTML; you just use the tags.

Code:

    This is a regular paragraph.

    &lt;table&gt;
        &lt;tr&gt;
            &lt;td&gt;Foo&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;

    This is another regular paragraph.

Preview:

---

This is a regular paragraph.

&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;Foo&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

This is another regular paragraph.

---

Note that Markdown formatting syntax is **not processed within block-level HTML tags**.

Unlike block-level HTML tags, Markdown syntax is **processed within span-level tags**.

Code:

    &lt;span&gt;**Work**&lt;/span&gt;

    &lt;div&gt;
        **No Work**
    &lt;/div&gt;

Preview:

---

&lt;span&gt;**Work**&lt;/span&gt;

&lt;div&gt;
  **No Work**
&lt;/div&gt;
***</content:encoded><language>en-us</language></item></channel></rss>