<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>编程拾录</title><description>技术分享站</description><link>https://fuwari.vercel.app/</link><language>zh_CN</language><item><title>Ubuntu配置sshd防止境外IP登陆</title><link>https://fuwari.vercel.app/posts/linux/ubuntu%E9%85%8D%E7%BD%AEsshd%E9%98%B2%E6%AD%A2%E5%A2%83%E5%A4%96ip%E7%99%BB%E9%99%86/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/linux/ubuntu%E9%85%8D%E7%BD%AEsshd%E9%98%B2%E6%AD%A2%E5%A2%83%E5%A4%96ip%E7%99%BB%E9%99%86/</guid><pubDate>Thu, 17 Sep 2026 22:55:22 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;之所以写这篇文章是因为服务器被境外IP扫描登录，虽然没有攻破，看着海量的错误日志也心烦，所以做了一个防止境外IP登陆的防护方案，这里分享出来给需要的人。
文章中的内容来自于AI生成，实际测试可以使用，不过资源有限没有经过完整性测试（全球IP测试）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;查看 SSH 当前监听端口&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo ss -lntp | grep sshd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;找到&lt;code&gt;0.0.0.0:&lt;/code&gt;和&lt;code&gt;[::]:&lt;/code&gt;后面的数字，就是sshd监听的端口号了，留着备用，这里假设端口号是&lt;code&gt;22222&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;修改&lt;code&gt;/etc/nftables.conf&lt;/code&gt;文件&lt;/h2&gt;
&lt;p&gt;默认的&lt;code&gt;/etc/nftables.conf&lt;/code&gt;一般是&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority filter;
    }

    chain forward {
        type filter hook forward priority filter;
    }

    chain output {
        type filter hook output priority filter;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中&lt;code&gt;flush ruleset&lt;/code&gt;这条指令会清空所有规则。&lt;/p&gt;
&lt;p&gt;如果服务器使用了docker，会导致把docker的规则清理掉，docker不能正常使用(如果已经影响了可以重启docker服务)&lt;/p&gt;
&lt;p&gt;默认的&lt;code&gt;table inet filter&lt;/code&gt;也没有用，建议直接改成以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/usr/sbin/nft -f

include &quot;/etc/nftables.d/*.nft&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;创建&lt;code&gt;/etc/nftables.d/ssh-geo.nft&lt;/code&gt;&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 如果没有/etc/nftables.d/目录使用以下命令创建，如果存在可以跳过
sudo mkdir -p /etc/nftables.d/sets/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最终的文件架构如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/etc/nftables.d/
├── ssh-geo.nft
└── sets/
    ├── cn4.nft
    └── cn6.nft
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;/etc/nftables.d/ssh-geo.nft&lt;/code&gt;内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;destroy table inet ssh_geo
table inet ssh_geo {
    include &quot;/etc/nftables.d/sets/cn4.nft&quot;
    include &quot;/etc/nftables.d/sets/cn6.nft&quot;

    chain input {
        type filter hook input priority -10; policy accept;
        
        # 22222需要替换为真实的sshd端口号
        tcp dport 22222 ip saddr @cn4 accept
        tcp dport 22222 ip6 saddr @cn6 accept
        tcp dport 22222 drop
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;动态生成&lt;code&gt;cn4.nft&lt;/code&gt;、&lt;code&gt;cn6.nft&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;使用脚本执行
“&lt;strong&gt;下载 → 校验 CIDR → 生成临时 nft 文件 → &lt;code&gt;nft -c&lt;/code&gt; 检查 → 原子替换 → 重载 ssh_geo&lt;/strong&gt;”的流程。
这样即使网络返回 HTML 错误页、下载中断或数据格式异常，也不会把正在工作的 SSH 白名单破坏掉。&lt;/p&gt;
&lt;p&gt;IPdeny 目前确实提供中国大陆聚合后的 IPv4 和 IPv6 CIDR 文件，并持续更新：IPv4 为 &lt;code&gt;cn-aggregated.zone&lt;/code&gt;，IPv6 也有对应 aggregated 文件。(&lt;a href=&quot;https://ipdeny.com/ipblocks/data/aggregated/?utm_source=chatgpt.com&quot;&gt;IPdeny&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;自动更新脚本&lt;/h2&gt;
&lt;p&gt;创建：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /usr/local/sbin/update-cn-nft.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash

set -Eeuo pipefail

CN4_URL=&quot;https://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone&quot;
CN6_URL=&quot;https://www.ipdeny.com/ipv6/ipaddresses/aggregated/cn-aggregated.zone&quot;

TARGET_DIR=&quot;/etc/nftables.d/sets&quot;
CN4_TARGET=&quot;${TARGET_DIR}/cn4.nft&quot;
CN6_TARGET=&quot;${TARGET_DIR}/cn6.nft&quot;

SSH_GEO_CONFIG=&quot;/etc/nftables.d/ssh-geo.nft&quot;

TMP_DIR=&quot;$(mktemp -d)&quot;

cleanup()
{
    rm -rf &quot;${TMP_DIR}&quot;
}

trap cleanup EXIT

log()
{
    printf &apos;[%s] %s\n&apos; &quot;$(date &apos;+%F %T&apos;)&quot; &quot;$*&quot;
}

fail()
{
    printf &apos;[%s] ERROR: %s\n&apos; &quot;$(date &apos;+%F %T&apos;)&quot; &quot;$*&quot; &amp;gt;&amp;amp;2
    exit 1
}

if [[ &quot;${EUID}&quot; -ne 0 ]]; then
    fail &quot;必须使用 root 权限运行&quot;
fi

for cmd in curl python3 nft install; do
    if ! command -v &quot;${cmd}&quot; &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then
        fail &quot;缺少命令: ${cmd}&quot;
    fi
done

mkdir -p &quot;${TARGET_DIR}&quot;

CN4_RAW=&quot;${TMP_DIR}/cn4.zone&quot;
CN6_RAW=&quot;${TMP_DIR}/cn6.zone&quot;

CN4_NEW=&quot;${TMP_DIR}/cn4.nft&quot;
CN6_NEW=&quot;${TMP_DIR}/cn6.nft&quot;


download()
{
    local url=&quot;$1&quot;
    local output=&quot;$2&quot;

    log &quot;下载 ${url}&quot;

    curl \
        --fail \
        --silent \
        --show-error \
        --location \
        --retry 3 \
        --retry-delay 2 \
        --connect-timeout 10 \
        --max-time 120 \
        --output &quot;${output}&quot; \
        &quot;${url}&quot;

    if [[ ! -s &quot;${output}&quot; ]]; then
        fail &quot;下载结果为空: ${url}&quot;
    fi

    # 防止 CRLF 干扰后面的处理
    sed -i &apos;s/\r$//&apos; &quot;${output}&quot;
}


validate_cidr_file()
{
    local family=&quot;$1&quot;
    local file=&quot;$2&quot;

    python3 - &quot;${family}&quot; &quot;${file}&quot; &amp;lt;&amp;lt;&apos;PY&apos;
import ipaddress
import sys

family = int(sys.argv[1])
path = sys.argv[2]

count = 0

with open(path, &quot;r&quot;, encoding=&quot;utf-8&quot;) as f:
    for line_no, line in enumerate(f, 1):
        value = line.strip()

        if not value or value.startswith(&quot;#&quot;):
            continue

        try:
            network = ipaddress.ip_network(value, strict=True)
        except ValueError as ex:
            print(
                f&quot;无效 CIDR: {path}:{line_no}: {value}: {ex}&quot;,
                file=sys.stderr,
            )
            sys.exit(1)

        if network.version != family:
            print(
                f&quot;IP 版本错误: {path}:{line_no}: {value}&quot;,
                file=sys.stderr,
            )
            sys.exit(1)

        count += 1

if count &amp;lt; 10:
    print(
        f&quot;CIDR 数量异常，仅发现 {count} 条: {path}&quot;,
        file=sys.stderr,
    )
    sys.exit(1)

print(count)
PY
}


generate_set()
{
    local set_name=&quot;$1&quot;
    local address_type=&quot;$2&quot;
    local source=&quot;$3&quot;
    local output=&quot;$4&quot;

    {
        echo &quot;set ${set_name} {&quot;
        echo &quot;    type ${address_type}&quot;
        echo &quot;    flags interval&quot;
        echo &quot;    auto-merge&quot;
        echo
        echo &quot;    elements = {&quot;

        awk &apos;
            NF &amp;amp;&amp;amp; $1 !~ /^#/ {
                if (count &amp;gt; 0) {
                    printf &quot;,\n&quot;
                }

                printf &quot;        %s&quot;, $1
                count++
            }

            END {
                if (count &amp;gt; 0) {
                    printf &quot;\n&quot;
                }
            }
        &apos; &quot;${source}&quot;

        echo &quot;    }&quot;
        echo &quot;}&quot;
    } &amp;gt; &quot;${output}&quot;
}


log &quot;开始更新中国大陆 IPv4 / IPv6 CIDR&quot;

download &quot;${CN4_URL}&quot; &quot;${CN4_RAW}&quot;
download &quot;${CN6_URL}&quot; &quot;${CN6_RAW}&quot;

log &quot;校验 IPv4 CIDR&quot;
CN4_COUNT=&quot;$(validate_cidr_file 4 &quot;${CN4_RAW}&quot;)&quot;

log &quot;校验 IPv6 CIDR&quot;
CN6_COUNT=&quot;$(validate_cidr_file 6 &quot;${CN6_RAW}&quot;)&quot;

log &quot;IPv4: ${CN4_COUNT} 条&quot;
log &quot;IPv6: ${CN6_COUNT} 条&quot;

generate_set &quot;cn4&quot; &quot;ipv4_addr&quot; &quot;${CN4_RAW}&quot; &quot;${CN4_NEW}&quot;
generate_set &quot;cn6&quot; &quot;ipv6_addr&quot; &quot;${CN6_RAW}&quot; &quot;${CN6_NEW}&quot;


#
# 先对生成出来的两个 set 进行独立 nftables 语法检查。
# 此处只执行 -c，不会改变实际防火墙。
#

CHECK_TABLE=&quot;cn_geo_check_$$&quot;
CHECK_FILE=&quot;${TMP_DIR}/check.nft&quot;

cat &amp;gt; &quot;${CHECK_FILE}&quot; &amp;lt;&amp;lt;EOF
table inet ${CHECK_TABLE} {
    include &quot;${CN4_NEW}&quot;
    include &quot;${CN6_NEW}&quot;
}
EOF

log &quot;检查生成的 nftables set&quot;

if ! nft -c -f &quot;${CHECK_FILE}&quot;; then
    fail &quot;新 CIDR 文件无法通过 nftables 语法检查&quot;
fi


#
# 如果内容完全没有变化，则无需重载。
#

UNCHANGED=true

if [[ ! -f &quot;${CN4_TARGET}&quot; ]] || ! cmp -s &quot;${CN4_NEW}&quot; &quot;${CN4_TARGET}&quot;; then
    UNCHANGED=false
fi

if [[ ! -f &quot;${CN6_TARGET}&quot; ]] || ! cmp -s &quot;${CN6_NEW}&quot; &quot;${CN6_TARGET}&quot;; then
    UNCHANGED=false
fi

if [[ &quot;${UNCHANGED}&quot; == &quot;true&quot; ]]; then
    log &quot;CIDR 列表没有变化，无需更新&quot;
    exit 0
fi


#
# 备份当前配置，以便后续加载失败时恢复文件。
#

if [[ -f &quot;${CN4_TARGET}&quot; ]]; then
    cp -a &quot;${CN4_TARGET}&quot; &quot;${TMP_DIR}/cn4.old.nft&quot;
fi

if [[ -f &quot;${CN6_TARGET}&quot; ]]; then
    cp -a &quot;${CN6_TARGET}&quot; &quot;${TMP_DIR}/cn6.old.nft&quot;
fi


#
# 使用 install + 临时文件，避免直接覆盖过程中产生半截文件。
#

install -m 0644 &quot;${CN4_NEW}&quot; &quot;${CN4_TARGET}.new&quot;
install -m 0644 &quot;${CN6_NEW}&quot; &quot;${CN6_TARGET}.new&quot;

mv -f &quot;${CN4_TARGET}.new&quot; &quot;${CN4_TARGET}&quot;
mv -f &quot;${CN6_TARGET}.new&quot; &quot;${CN6_TARGET}&quot;


#
# 此时再检查真正的 ssh_geo 配置。
# nft -c 不会改变当前运行规则。
#

log &quot;检查 ssh_geo 完整配置&quot;

if ! nft -c -f &quot;${SSH_GEO_CONFIG}&quot;; then
    log &quot;完整配置检查失败，恢复旧 CIDR 文件&quot;

    if [[ -f &quot;${TMP_DIR}/cn4.old.nft&quot; ]]; then
        cp -a &quot;${TMP_DIR}/cn4.old.nft&quot; &quot;${CN4_TARGET}&quot;
    fi

    if [[ -f &quot;${TMP_DIR}/cn6.old.nft&quot; ]]; then
        cp -a &quot;${TMP_DIR}/cn6.old.nft&quot; &quot;${CN6_TARGET}&quot;
    fi

    fail &quot;ssh_geo 配置验证失败，没有修改运行中的防火墙&quot;
fi


#
# 只重新加载 ssh_geo，而不是整个 /etc/nftables.conf。
#
# 你的 ssh-geo.nft 前面应包含：
#
#   destroy table inet ssh_geo
#
# 因此这里会原子地重建自己的 table，
# 不会碰 Docker 的 nftables/iptables-nft 规则。
#

log &quot;应用新的 ssh_geo 规则&quot;

if ! nft -f &quot;${SSH_GEO_CONFIG}&quot;; then
    log &quot;加载失败，恢复旧 CIDR 文件&quot;

    if [[ -f &quot;${TMP_DIR}/cn4.old.nft&quot; ]]; then
        cp -a &quot;${TMP_DIR}/cn4.old.nft&quot; &quot;${CN4_TARGET}&quot;
    fi

    if [[ -f &quot;${TMP_DIR}/cn6.old.nft&quot; ]]; then
        cp -a &quot;${TMP_DIR}/cn6.old.nft&quot; &quot;${CN6_TARGET}&quot;
    fi

    fail &quot;nftables 加载失败；运行中的旧规则没有被事务修改&quot;
fi

log &quot;更新完成&quot;
log &quot;IPv4: ${CN4_COUNT} 条&quot;
log &quot;IPv6: ${CN6_COUNT} 条&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo chmod 755 /usr/local/sbin/update-cn-nft.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;第一次先手工运行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo /usr/local/sbin/update-cn-nft.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;正常应该看到类似：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[2026-09-17 22:40:01] 开始更新中国大陆 IPv4 / IPv6 CIDR
[2026-09-17 22:40:01] 下载 ...
[2026-09-17 22:40:02] 校验 IPv4 CIDR
[2026-09-17 22:40:02] 校验 IPv6 CIDR
[2026-09-17 22:40:02] IPv4: xxxx 条
[2026-09-17 22:40:02] IPv6: xxxx 条
[2026-09-17 22:40:03] 检查生成的 nftables set
[2026-09-17 22:40:03] 检查 ssh_geo 完整配置
[2026-09-17 22:40:03] 应用新的 ssh_geo 规则
[2026-09-17 22:40:03] 更新完成
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;生成的文件就如下格式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set cn4 {
    type ipv4_addr
    flags interval
    auto-merge

    elements = {
        1.0.1.0/24,
        1.0.2.0/23,
        1.0.8.0/21
        ...
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以及：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set cn6 {
    type ipv6_addr
    flags interval
    auto-merge

    elements = {
        2001:250::/32,
        ...
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;脚本只执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nft -f /etc/nftables.d/ssh-geo.nft
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不会执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nft -f /etc/nftables.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更不会执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;flush ruleset
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;验证&lt;code&gt;ssh_geo&lt;/code&gt;结果&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo nft list table inet ssh_geo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;应该会列出类似以下结果&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;table inet ssh_geo {
    set cn4 {
        type ipv4_addr
        flags interval
        auto-merge

        elements = {
            1.0.1.0/24,
            1.0.2.0/23,
            1.0.8.0/21
            ...
        }
    }
    
    set cn6 {
        type ipv6_addr
        flags interval
        auto-merge

        elements = {
            2001:250::/32,
            ...
        }
    }

    chain input {
        type filter hook input priority -10; policy accept;
        
        # 22222需要替换为真实的sshd端口号
        tcp dport 22222 ip saddr @cn4 accept
        tcp dport 22222 ip6 saddr @cn6 accept
        tcp dport 22222 drop
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以不会主动动到 Docker 动态创建的防火墙规则。&lt;/p&gt;
&lt;h2&gt;做成每日自动更新&lt;/h2&gt;
&lt;p&gt;既然 IPdeny 的数据本身持续更新，比较适合每天更新一次。当前目录显示 IPv4 和 IPv6 中国大陆 aggregated 数据都有近期每日更新时间。(&lt;a href=&quot;https://ipdeny.com/ipblocks/data/aggregated/?utm_source=chatgpt.com&quot;&gt;IPdeny&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;创建：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/systemd/system/update-cn-nft.service
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Update China CIDR nftables sets
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/update-cn-nft.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;再创建：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/systemd/system/update-cn-nft.timer
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Daily China CIDR nftables update

[Timer]
OnCalendar=*-*-* 04:30:00
RandomizedDelaySec=30m
Persistent=true

[Install]
WantedBy=timers.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启用：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload

sudo systemctl enable --now update-cn-nft.timer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl list-timers update-cn-nft.timer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;手动测试 service：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl start update-cn-nft.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看执行日志：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo journalctl -u update-cn-nft.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里还有一个我建议你在正式长期运行前补上的安全措施：&lt;strong&gt;至少准备一个不依赖 GeoIP 的“救援 SSH 来源”&lt;/strong&gt;，比如固定办公 IP、VPN/Tailscale 网段或云厂商控制台。国家 IP 数据库并不是绝对准确的，一旦你的正常公网 IP 被数据源暂时归错区域，&lt;code&gt;cn4/cn6&lt;/code&gt; 自动更新后，新 SSH 连接就可能被拒绝。&lt;/p&gt;
&lt;p&gt;如果真的发生了这种情况也不用着急，可以到云服务控制台上使用VNC登录，然后把自己的IP加入白名单中。&lt;/p&gt;
</content:encoded></item><item><title>Vue 组件示例</title><link>https://fuwari.vercel.app/posts/index/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/index/</guid><description>Vue 组件示例</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;示例&lt;/h1&gt;
&lt;p&gt;下面是在文章中嵌入的 Vue 组件：&lt;/p&gt;
&lt;p&gt;&amp;lt;Counter /&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Markdown Extended Features</title><link>https://fuwari.vercel.app/posts/markdown-extended/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/markdown-extended/</guid><description>Read more about Markdown features in Fuwari</description><pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;GitHub Repository Cards&lt;/h2&gt;
&lt;p&gt;You can add dynamic cards that link to GitHub repositories, on page load, the repository information is pulled from the GitHub API.&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;Fabrizz/MMM-OnSpotify&quot;}&lt;/p&gt;
&lt;p&gt;Create a GitHub repository card with the code &lt;code&gt;::github{repo=&quot;&amp;lt;owner&amp;gt;/&amp;lt;repo&amp;gt;&quot;}&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;::github{repo=&quot;saicaca/fuwari&quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Admonitions&lt;/h2&gt;
&lt;p&gt;Following types of admonitions are supported: &lt;code&gt;note&lt;/code&gt; &lt;code&gt;tip&lt;/code&gt; &lt;code&gt;important&lt;/code&gt; &lt;code&gt;warning&lt;/code&gt; &lt;code&gt;caution&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;:::note
Highlights information that users should take into account, even when skimming.
:::&lt;/p&gt;
&lt;p&gt;:::tip
Optional information to help a user be more successful.
:::&lt;/p&gt;
&lt;p&gt;:::important
Crucial information necessary for users to succeed.
:::&lt;/p&gt;
&lt;p&gt;:::warning
Critical content demanding immediate user attention due to potential risks.
:::&lt;/p&gt;
&lt;p&gt;:::caution
Negative potential consequences of an action.
:::&lt;/p&gt;
&lt;h3&gt;Basic Syntax&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;:::note
Highlights information that users should take into account, even when skimming.
:::

:::tip
Optional information to help a user be more successful.
:::
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Custom Titles&lt;/h3&gt;
&lt;p&gt;The title of the admonition can be customized.&lt;/p&gt;
&lt;p&gt;:::note[MY CUSTOM TITLE]
This is a note with a custom title.
:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::note[MY CUSTOM TITLE]
This is a note with a custom title.
:::
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;GitHub Syntax&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;[!TIP]
&lt;a href=&quot;https://github.com/orgs/community/discussions/16925&quot;&gt;The GitHub syntax&lt;/a&gt; is also supported.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; [!NOTE]
&amp;gt; The GitHub syntax is also supported.

&amp;gt; [!TIP]
&amp;gt; The GitHub syntax is also supported.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Spoiler&lt;/h3&gt;
&lt;p&gt;You can add spoilers to your text. The text also supports &lt;strong&gt;Markdown&lt;/strong&gt; syntax.&lt;/p&gt;
&lt;p&gt;The content :spoiler[is hidden &lt;strong&gt;ayyy&lt;/strong&gt;]!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;The content :spoiler[is hidden **ayyy**]!

&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Expressive Code Example</title><link>https://fuwari.vercel.app/posts/expressive-code/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/expressive-code/</guid><description>How code blocks look in Markdown using Expressive Code.</description><pubDate>Wed, 10 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Here, we&apos;ll explore how code blocks look using &lt;a href=&quot;https://expressive-code.com/&quot;&gt;Expressive Code&lt;/a&gt;. The provided examples are based on the official documentation, which you can refer to for further details.&lt;/p&gt;
&lt;h2&gt;Expressive Code&lt;/h2&gt;
&lt;h3&gt;Syntax Highlighting&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/syntax-highlighting/&quot;&gt;Syntax Highlighting&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Regular syntax highlighting&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;This code is syntax highlighted!&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Rendering ANSI escape sequences&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;ANSI colors:
- Regular: [31mRed[0m [32mGreen[0m [33mYellow[0m [34mBlue[0m [35mMagenta[0m [36mCyan[0m
- Bold:    [1;31mRed[0m [1;32mGreen[0m [1;33mYellow[0m [1;34mBlue[0m [1;35mMagenta[0m [1;36mCyan[0m
- Dimmed:  [2;31mRed[0m [2;32mGreen[0m [2;33mYellow[0m [2;34mBlue[0m [2;35mMagenta[0m [2;36mCyan[0m

256 colors (showing colors 160-177):
[38;5;160m160 [38;5;161m161 [38;5;162m162 [38;5;163m163 [38;5;164m164 [38;5;165m165[0m
[38;5;166m166 [38;5;167m167 [38;5;168m168 [38;5;169m169 [38;5;170m170 [38;5;171m171[0m
[38;5;172m172 [38;5;173m173 [38;5;174m174 [38;5;175m175 [38;5;176m176 [38;5;177m177[0m

Full RGB colors:
[38;2;34;139;34mForestGreen - RGB(34, 139, 34)[0m

Text formatting: [1mBold[0m [2mDimmed[0m [3mItalic[0m [4mUnderline[0m
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Editor &amp;amp; Terminal Frames&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/frames/&quot;&gt;Editor &amp;amp; Terminal Frames&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Code editor frames&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;Title attribute example&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!-- src/content/index.html --&amp;gt;
&amp;lt;div&amp;gt;File name comment example&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Terminal frames&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;This terminal frame has no title&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;Write-Output &quot;This one has a title!&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Overriding frame types&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;Look ma, no frame!&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;# Without overriding, this would be a terminal frame
function Watch-Tail { Get-Content -Tail 20 -Wait $args }
New-Alias tail Watch-Tail
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Text &amp;amp; Line Markers&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/text-markers/&quot;&gt;Text &amp;amp; Line Markers&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Marking full lines &amp;amp; line ranges&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Line 1 - targeted by line number
// Line 2
// Line 3
// Line 4 - targeted by line number
// Line 5
// Line 6
// Line 7 - targeted by range &quot;7-8&quot;
// Line 8 - targeted by range &quot;7-8&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Selecting line marker types (mark, ins, del)&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;function demo() {
  console.log(&apos;this line is marked as deleted&apos;)
  // This line and the next one are marked as inserted
  console.log(&apos;this is the second inserted line&apos;)

  return &apos;this line uses the neutral default marker type&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adding labels to line markers&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// labeled-line-markers.jsx
&amp;lt;button
  role=&quot;button&quot;
  {...props}
  value={value}
  className={buttonClassName}
  disabled={disabled}
  active={active}
&amp;gt;
  {children &amp;amp;&amp;amp;
    !active &amp;amp;&amp;amp;
    (typeof children === &apos;string&apos; ? &amp;lt;span&amp;gt;{children}&amp;lt;/span&amp;gt; : children)}
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Adding long labels on their own lines&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// labeled-line-markers.jsx
&amp;lt;button
  role=&quot;button&quot;
  {...props}

  value={value}
  className={buttonClassName}

  disabled={disabled}
  active={active}
&amp;gt;

  {children &amp;amp;&amp;amp;
    !active &amp;amp;&amp;amp;
    (typeof children === &apos;string&apos; ? &amp;lt;span&amp;gt;{children}&amp;lt;/span&amp;gt; : children)}
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Using diff-like syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;+this line will be marked as inserted
-this line will be marked as deleted
this is a regular line
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+this is an actual diff file
-all contents will remain unmodified
 no whitespace will be removed either
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Combining syntax highlighting with diff-like syntax&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;  function thisIsJavaScript() {
    // This entire block gets highlighted as JavaScript,
    // and we can still add diff markers to it!
-   console.log(&apos;Old code to be removed&apos;)
+   console.log(&apos;New and shiny code!&apos;)
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Marking individual text inside lines&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;function demo() {
  // Mark any given text inside lines
  return &apos;Multiple matches of the given text are supported&apos;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Regular expressions&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;The words yes and yep will be marked.&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Escaping forward slashes&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;Test&quot; &amp;gt; /home/test.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Selecting inline marker types (mark, ins, del)&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;function demo() {
  console.log(&apos;These are inserted and deleted marker types&apos;);
  // The return statement uses the default marker type
  return true;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Word Wrap&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/key-features/word-wrap/&quot;&gt;Word Wrap&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Configuring word wrap per block&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Example with wrap
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;// Example with wrap=false
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Configuring indentation of wrapped lines&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;// Example with preserveIndent (enabled by default)
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;// Example with preserveIndent=false
function getLongString() {
  return &apos;This is a very long string that will most probably not fit into the available space unless the container is extremely wide&apos;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Collapsible Sections&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/plugins/collapsible-sections/&quot;&gt;Collapsible Sections&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// All this boilerplate setup code will be collapsed
import { someBoilerplateEngine } from &apos;@example/some-boilerplate&apos;
import { evenMoreBoilerplate } from &apos;@example/even-more-boilerplate&apos;

const engine = someBoilerplateEngine(evenMoreBoilerplate())

// This part of the code will be visible by default
engine.doSomething(1, 2, 3, calcFn)

function calcFn() {
  // You can have multiple collapsed sections
  const a = 1
  const b = 2
  const c = a + b

  // This will remain visible
  console.log(`Calculation result: ${a} + ${b} = ${c}`)
  return c
}

// All this code until the end of the block will be collapsed again
engine.closeConnection()
engine.freeMemory()
engine.shutdown({ reason: &apos;End of example boilerplate code&apos; })
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Line Numbers&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://expressive-code.com/plugins/line-numbers/&quot;&gt;Line Numbers&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Displaying line numbers per block&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;// This code block will show line numbers
console.log(&apos;Greetings from line 2!&apos;)
console.log(&apos;I am on line 3&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;pre&gt;&lt;code&gt;// Line numbers are disabled for this block
console.log(&apos;Hello?&apos;)
console.log(&apos;Sorry, do you know what line I am on?&apos;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Changing the starting line number&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;console.log(&apos;Greetings from line 5!&apos;)
console.log(&apos;I am on line 6&apos;)
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>微信小程序自定义tabBar</title><link>https://fuwari.vercel.app/posts/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E8%87%AA%E5%AE%9A%E4%B9%89-tabbar/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E8%87%AA%E5%AE%9A%E4%B9%89-tabbar/</guid><pubDate>Sat, 06 Apr 2024 23:36:22 GMT</pubDate><content:encoded>&lt;h2&gt;参考文档&lt;/h2&gt;
&lt;p&gt;::: tip
&lt;a href=&quot;https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html&quot;&gt;官网介绍&lt;/a&gt;&lt;br /&gt;
:::&lt;/p&gt;
&lt;h2&gt;存在的问题&lt;/h2&gt;
&lt;p&gt;切换时&lt;code&gt;tabBar&lt;/code&gt;闪烁，经过测试发现每个页面所使用的&lt;code&gt;tabBar&lt;/code&gt;是独立实例，要避免闪烁需要修改示例代码，原始示例代码如下&lt;/p&gt;
&lt;h2&gt;官网提供的示例代码-摘录&lt;/h2&gt;
&lt;p&gt;::: tip
完整版：&lt;a href=&quot;https://developers.weixin.qq.com/s/ouJiKgm67cHk&quot;&gt;在开发者工具中预览效果&lt;/a&gt;
:::&lt;/p&gt;
&lt;h3&gt;&lt;code&gt;custom-tab-bar/index.js&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Component({
  data: {
    selected: 0,
    color: &quot;#7A7E83&quot;,
    selectedColor: &quot;#3cc51f&quot;,
    list: [{
      pagePath: &quot;/index/index&quot;,
      iconPath: &quot;/image/icon_component.png&quot;,
      selectedIconPath: &quot;/image/icon_component_HL.png&quot;,
      text: &quot;组件&quot;
    }, {
      pagePath: &quot;/index/index2&quot;,
      iconPath: &quot;/image/icon_API.png&quot;,
      selectedIconPath: &quot;/image/icon_API_HL.png&quot;,
      text: &quot;接口&quot;
    }]
  },
  attached() {
  },
  methods: {
    switchTab(e) {
      const data = e.currentTarget.dataset
      const url = data.path
      this.setData({
        selected: data.index
      })
    }
  }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;code&gt;index/index.js&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === &apos;function&apos; &amp;amp;&amp;amp;
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 0
        })
      }
    }
  }
})
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;优化方案&lt;/h2&gt;
&lt;p&gt;既然每个页面都是&lt;code&gt;tabBar&lt;/code&gt;独立实例，那么就不需要重复去修改&lt;code&gt;selected&lt;/code&gt;这个变量，修改这个变量会触发重新渲染&lt;code&gt;tabBar&lt;/code&gt;，也是造成闪烁的原因，修改方案&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在&lt;code&gt;custom-tab-bar/index.js&lt;/code&gt;的&lt;code&gt;switchTab&lt;/code&gt;方法中移除以下代码&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;this.setData({
    selected: data.index
})
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;在&lt;code&gt;index/index.js&lt;/code&gt;中改为以下代码&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;Component({
    pageLifetimes: {
        show() {
            if (typeof this.getTabBar === &apos;function&apos; &amp;amp;&amp;amp;
                this.getTabBar()) {
                this.getTabBar().setData({
                    selected: 0
                })
            }
        }
    },
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实际就是让&lt;code&gt;selected&lt;/code&gt;这个变量在&lt;code&gt;tabBar&lt;/code&gt;中只设置一次，这样可以做只有第一次点击某个&lt;code&gt;tabBar&lt;/code&gt;图标时闪烁一次，再次切换不再闪烁，当然如果想要一次闪烁都没有的情况下自定义&lt;code&gt;tabBar&lt;/code&gt;那只能使用单页了。&lt;/p&gt;
</content:encoded></item><item><title>Simple Guides for Fuwari</title><link>https://fuwari.vercel.app/posts/guide/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/guide/</guid><description>How to use this blog template.</description><pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Cover image source: &lt;a href=&quot;https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/208fc754-890d-4adb-9753-2c963332675d/width=2048/01651-1456859105-(colour_1.5),girl,_Blue,yellow,green,cyan,purple,red,pink,_best,8k,UHD,masterpiece,male%20focus,%201boy,gloves,%20ponytail,%20long%20hair,.jpeg&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This blog template is built with &lt;a href=&quot;https://astro.build/&quot;&gt;Astro&lt;/a&gt;. For the things that are not mentioned in this guide, you may find the answers in the &lt;a href=&quot;https://docs.astro.build/&quot;&gt;Astro Docs&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Front-matter of Posts&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;---
title: My First Blog Post
published: 2023-09-09
description: This is the first post of my new Astro blog.
image: ./cover.jpg
tags: [Foo, Bar]
category: Front-end
draft: false
---
&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attribute&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The title of the post.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;published&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The date the post was published.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A short description of the post. Displayed on index page.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;image&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The cover image path of the post.&amp;lt;br/&amp;gt;1. Start with &lt;code&gt;http://&lt;/code&gt; or &lt;code&gt;https://&lt;/code&gt;: Use web image&amp;lt;br/&amp;gt;2. Start with &lt;code&gt;/&lt;/code&gt;: For image in &lt;code&gt;public&lt;/code&gt; dir&amp;lt;br/&amp;gt;3. With none of the prefixes: Relative to the markdown file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The tags of the post.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;category&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The category of the post.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;draft&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;If this post is still a draft, which won&apos;t be displayed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Where to Place the Post Files&lt;/h2&gt;
&lt;p&gt;Your post files should be placed in &lt;code&gt;src/content/posts/&lt;/code&gt; directory. You can also create sub-directories to better organize your posts and assets.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/content/posts/
├── post-1.md
└── post-2/
    ├── cover.png
    └── index.md
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Markdown Example</title><link>https://fuwari.vercel.app/posts/markdown/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/markdown/</guid><description>A simple example of a Markdown blog post.</description><pubDate>Sun, 01 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;An h1 header&lt;/h1&gt;
&lt;p&gt;Paragraphs are separated by a blank line.&lt;/p&gt;
&lt;p&gt;2nd paragraph. &lt;em&gt;Italic&lt;/em&gt;, &lt;strong&gt;bold&lt;/strong&gt;, and &lt;code&gt;monospace&lt;/code&gt;. Itemized lists
look like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;this one&lt;/li&gt;
&lt;li&gt;that one&lt;/li&gt;
&lt;li&gt;the other one&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that --- not considering the asterisk --- the actual text
content starts at 4-columns in.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Block quotes are
written like so.&lt;/p&gt;
&lt;p&gt;They can span multiple paragraphs,
if you like.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;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. ☺&lt;/p&gt;
&lt;h2&gt;An h2 header&lt;/h2&gt;
&lt;p&gt;Here&apos;s a numbered list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;first item&lt;/li&gt;
&lt;li&gt;second item&lt;/li&gt;
&lt;li&gt;third item&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note again how the actual text starts at 4 columns in (4 characters
from the left side). Here&apos;s a code sample:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Let me re-iterate ...
for i in 1 .. 10 { do-something(i) }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As you probably guessed, indented 4 spaces. By the way, instead of
indenting the block, you can use delimited blocks, if you like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;define foobar() {
    print &quot;Welcome to flavor country!&quot;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(which makes copying &amp;amp; pasting easier). You can optionally mark the
delimited block for Pandoc to syntax highlight it:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import time
# Quick, count to ten!
for i in range(10):
    # (but not *too* quick)
    time.sleep(0.5)
    print i
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;An h3 header&lt;/h3&gt;
&lt;p&gt;Now a nested list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;First, get these ingredients:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;carrots&lt;/li&gt;
&lt;li&gt;celery&lt;/li&gt;
&lt;li&gt;lentils&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Boil some water.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dump everything in the pot and follow
this algorithm:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; 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)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Do not bump wooden spoon or it will fall.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Notice again how text always lines up on 4-space indents (including
that last line which continues item 3 above).&lt;/p&gt;
&lt;p&gt;Here&apos;s a link to &lt;a href=&quot;http://foo.bar&quot;&gt;a website&lt;/a&gt;, to a &lt;a href=&quot;local-doc.html&quot;&gt;local
doc&lt;/a&gt;, and to a &lt;a href=&quot;#an-h2-header&quot;&gt;section heading in the current
doc&lt;/a&gt;. Here&apos;s a footnote [^1].&lt;/p&gt;
&lt;p&gt;[^1]: Footnote text goes here.&lt;/p&gt;
&lt;p&gt;Tables can look like this:&lt;/p&gt;
&lt;p&gt;size material color&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;9 leather brown
10 hemp canvas natural
11 glass transparent&lt;/p&gt;
&lt;p&gt;Table: Shoes, their sizes, and what they&apos;re made of&lt;/p&gt;
&lt;p&gt;(The above is the caption for the table.) Pandoc also supports
multi-line tables:&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;keyword text&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;red Sunsets, apples, and
other red or reddish
things.&lt;/p&gt;
&lt;p&gt;green Leaves, grass, frogs
and other things it&apos;s
not easy being.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;A horizontal rule follows.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Here&apos;s a definition list:&lt;/p&gt;
&lt;p&gt;apples
: Good for making applesauce.
oranges
: Citrus!
tomatoes
: There&apos;s no &quot;e&quot; in tomatoe.&lt;/p&gt;
&lt;p&gt;Again, text is indented 4 spaces. (Put a blank line between each
term/definition pair to spread things out more.)&lt;/p&gt;
&lt;p&gt;Here&apos;s a &quot;line block&quot;:&lt;/p&gt;
&lt;p&gt;| Line one
| Line too
| Line tree&lt;/p&gt;
&lt;p&gt;and images can be specified like so:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../assets/images/demo-banner.png&quot; alt=&quot;example image&quot; title=&quot;An exemplary image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;$$I = \int \rho R^{2} dV$$&lt;/p&gt;
&lt;p&gt;$$
\begin{equation*}
\pi
=3.1415926535
;8979323846;2643383279;5028841971;6939937510;5820974944
;5923078164;0628620899;8628034825;3421170679;\ldots
\end{equation*}
$$&lt;/p&gt;
&lt;p&gt;And note that you can backslash-escape any punctuation characters
which you wish to be displayed literally, ex.: `foo`, *bar*, etc.&lt;/p&gt;
</content:encoded></item><item><title>Include Video in the Posts</title><link>https://fuwari.vercel.app/posts/video/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/video/</guid><description>This post demonstrates how to include embedded video in a blog post.</description><pubDate>Tue, 01 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Include Video in the Post
published: 2023-10-19
// ...
---

&amp;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&amp;gt;&amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;YouTube&lt;/h2&gt;
&lt;p&gt;&amp;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&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;Bilibili&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1fK4y1s7Qf&amp;amp;p=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>astro使用教程</title><link>https://fuwari.vercel.app/posts/astro%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</link><guid isPermaLink="true">https://fuwari.vercel.app/posts/astro%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</guid><pubDate>Tue, 14 Feb 2023 14:36:22 GMT</pubDate><content:encoded>&lt;h2&gt;博客插件&lt;/h2&gt;
&lt;p&gt;:::tip
&lt;a href=&quot;https://theme-hope.vuejs.press/zh/guide/interface/icon.html#%E6%B5%8F%E8%A7%88%E5%9B%BE%E6%A0%87&quot;&gt;图标官方文档&lt;/a&gt;
&lt;a href=&quot;https://fontawesome.com/search?o=r&amp;amp;m=free&quot;&gt;浏览更多图标&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/css/style-249f0882.css&quot; type=&quot;text/css&quot;&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;//at.alicdn.com/t/c/font_2410206_5vb9zlyghj.css&quot; type=&quot;text/css&quot;&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;//unpkg.com/element-plus/dist/index.css&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;details class=&quot;hint-container details&quot;&amp;gt;&amp;lt;summary&amp;gt;iconfont 关键词精选图标&amp;lt;/summary&amp;gt;&amp;lt;div class=&quot;icon-display-wrapper&quot;&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-ability&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;ability&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-actions&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;actions&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-activity&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;activity&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-add&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;add&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-advance&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;advance&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-ajax&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;ajax&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-alias&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;alias&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-align&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;align&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-android&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;android&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-angular&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;angular&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-animation&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;animation&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-anonymous&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;anonymous&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-any&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;any&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-Apache&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;Apache&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-api&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;api&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-app&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;app&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-array&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;array&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-arrow&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;arrow&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-article&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;article&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-ask&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;ask&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-async&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;async&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-asynchronous&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;asynchronous&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-at&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;at&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-autumn&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;autumn&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-back-stage&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;back-stage&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-bit&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;bit&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-bitbucket&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;bitbucket&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-blog&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;blog&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-boolean&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;boolean&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-box&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;box&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-branch&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;branch&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-build&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;build&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-c&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;c&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-cache&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;cache&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-calculate&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;calculate&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-call&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;call&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-card&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;card&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-categoryselected&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;categoryselected&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-centos&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;centos&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-change&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;change&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-check&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;check&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-chrome&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;chrome&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-ci&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;ci&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-class&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;class&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-code&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;code&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-command&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;command&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-comment&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;comment&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-community&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;community&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-compare&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;compare&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-computer&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;computer&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-condition&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;condition&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-config&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;config&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-context&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;context&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-contrast&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;contrast&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-copy&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;copy&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-copyright&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;copyright&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-create&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;create&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-creative&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;creative&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-css&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;css&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-customize&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;customize&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-cycle&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;cycle&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-dart&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;dart&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-date&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;date&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-debug&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;debug&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-decorate&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;decorate&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-define&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;define&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-delete&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;delete&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-diagram&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;diagram&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-direction&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;direction&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-discover&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;discover&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-edit&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;edit&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-editor&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;editor&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-emmet&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;emmet&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-emoji&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;emoji&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-enable&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;enable&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-engine&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;engine&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-enum&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;enum&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-es6&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;es6&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-exercise&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;exercise&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-expansion&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;expansion&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-extend&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;extend&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-eye&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;eye&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-file&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;file&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-filter&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;filter&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-flex&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;flex&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-float&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;float&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-flow&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;flow&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-flower&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;flower&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-folder&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;folder&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-footer&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;footer&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-form&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;form&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-format&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;format&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-frame&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;frame&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-free&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;free&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-fullscreen&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;fullscreen&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-function&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;function&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-generic&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;generic&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-geometry&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;geometry&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-git&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-gitee&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;gitee&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-github&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;github&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-gitlab&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;gitlab&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-grid&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;grid&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-group&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;group&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-guide&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;guide&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-heading&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;heading&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-home&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;home&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-hot&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;hot&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-html&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;html&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-http&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;http&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-info&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;info&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-input&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;input&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-install&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;install&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-interact&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;interact&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-IO&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;IO&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-java&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;java&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-javascript&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;javascript&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-jQuery&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;jQuery&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-json&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;json&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-keyboard&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;keyboard&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-language&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;language&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-launch&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;launch&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-layout&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;layout&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-leaf&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;leaf&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-license&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;license&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-light&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;light&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-like&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;like&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-line&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;line&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-link&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;link&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-linter&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;linter&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-linux&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;linux&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-list&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;list&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-load&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;load&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-locate&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;locate&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-lock&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;lock&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-loop&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;loop&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-map&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;map&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-mark&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;mark&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-markdown&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;markdown&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-material&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;material&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-merge&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;merge&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-mesh&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;mesh&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-mini-app&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;mini-app&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-mobile&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;mobile&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-module&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;module&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-more&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;more&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-mount&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;mount&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-mysql&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;mysql&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-navbar&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;navbar&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-navigate&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;navigate&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-navigation&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;navigation&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-network&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;network&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-news&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;news&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-nginx&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;nginx&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-nodeJS&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;nodeJS&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-note&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;note&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-notice&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;notice&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-npm&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;npm&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-null&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;null&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-number&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;number&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-object&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;object&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-operate&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;operate&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-OS&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;OS&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-others&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;others&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-overflow&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;overflow&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-page&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;page&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-palette&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;palette&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-people&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;people&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-php&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;php&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-physics&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;physics&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-pic&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;pic&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-play&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;play&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-plugin&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;plugin&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-preview&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;preview&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-process&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;process&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-profile&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;profile&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-proposal&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;proposal&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-proxy&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;proxy&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-python&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;python&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-question&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;question&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-quote&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;quote&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-rank&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;rank&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-react&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;react&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-read&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;read&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-refresh&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;refresh&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-regexp&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;regexp&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-relation&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;relation&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-remote&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;remote&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-repair&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;repair&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-repo&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;repo&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-resize&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;resize&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-restrict&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;restrict&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-result&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;result&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-return&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;return&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-router&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;router&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-rss&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;rss&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-safari&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;safari&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-safe&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;safe&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-script&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;script&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-search&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;search&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-select&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;select&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-selection&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;selection&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-semantic&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;semantic&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-set&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;set&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-setting&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;setting&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-share&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;share&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-shell&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;shell&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-sidebar&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;sidebar&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-sitemap&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;sitemap&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-slides&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;slides&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-snow&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;snow&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-software&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;software&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-sort&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;sort&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-speed&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;speed&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-stack&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;stack&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-state&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;state&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-storage&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;storage&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-string&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;string&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-strong&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;strong&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-structure&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;structure&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-study&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;study&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-style&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;style&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-subscript&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;subscript&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-superscript&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;superscript&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-support&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;support&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-svg&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;svg&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-symbol&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;symbol&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-tab&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;tab&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-table&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;table&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-tag&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;tag&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-template&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;template&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-tex&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;tex&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-time&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;time&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-timer&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;timer&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-token&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;token&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-tool&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;tool&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-tree&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;tree&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-type&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;type&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-typescript&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;typescript&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-ubuntu&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;ubuntu&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-underscore&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;underscore&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-update&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;update&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-valine&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;valine&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-variable&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;variable&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-view&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;view&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-vscode&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;vscode&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-vssue&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;vssue&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-vue&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;vue&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-waline&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;waline&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-warn&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;warn&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-wechat&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;wechat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-window&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;window&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-windows&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;windows&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-workingDirectory&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;workingDirectory&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-wrap&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;wrap&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-write&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;write&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;icon&quot;&amp;gt;&amp;lt;div class=&quot;iconfont icon-yaml&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;text&quot;&amp;gt;yaml&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/details&amp;gt;&lt;/p&gt;
&lt;p&gt;:::tip
双向绑定案例
:::&lt;/p&gt;
&lt;p&gt;&amp;lt;BidirectionalBinding content=&quot;Hello World!&quot;&amp;gt;&amp;lt;/BidirectionalBinding&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;script lang=&quot;ts&quot; setup&amp;gt;
import { onMounted, getCurrentInstance } from &apos;vue&apos;;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const app = getCurrentInstance().appContext;
const provides = app.provides;

onMounted(() =&amp;gt; {
    const copyToClipboard = provides.copyToClipboardProvider(document);
    const icons = document.querySelectorAll(&apos;div.icon&apos;);
    const clickEvent = function(event) {
            const content = this.querySelector(&apos;.text&apos;).innerText;
            copyToClipboard(content);
    };
    icons.forEach(icon =&amp;gt; icon.onclick = clickEvent);
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;:::tip
&lt;a href=&quot;https://theme-hope.vuejs.press/zh/config/frontmatter/info.html&quot;&gt;Frontmatter配置&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;:::tip
&lt;a href=&quot;https://v2.vuepress.vuejs.org/zh/guide/markdown.html&quot;&gt;内置 Markdown 拓展&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;:::tip
&lt;a href=&quot;https://theme-hope.vuejs.press/zh/guide/markdown/intro.html&quot;&gt;启用 Markdown 增强&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;:::tip
&lt;a href=&quot;https://plugin-md-enhance.vuejs.press/zh/guide/&quot;&gt;Markdown 增强插件&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;:::tip
各种插件：图标、徽章、视频、代码演示等
&lt;a href=&quot;https://plugin-components.vuejs.press/zh/guide/fonticon.html&quot;&gt;图标插件&lt;/a&gt;
:::&lt;/p&gt;
&lt;p&gt;:::tip
选项卡
:::&lt;/p&gt;
&lt;p&gt;:::tabs#fruit&lt;/p&gt;
&lt;p&gt;@tab apple#apple&lt;/p&gt;
&lt;p&gt;Apple&lt;/p&gt;
&lt;p&gt;@tab banana#banana&lt;/p&gt;
&lt;p&gt;&amp;lt;span style=&quot;color: red;&quot; &amp;gt;Banana&amp;lt;/span&amp;gt;&lt;/p&gt;
&lt;p&gt;:::&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// 选项卡
::: tabs#fruit

@tab apple#apple

Apple

@tab banana#banana

&amp;lt;span style=&quot;color: red;&quot; &amp;gt;Banana&amp;lt;/span&amp;gt;

:::
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item></channel></rss>