-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmarkdown-examples.html
59 lines (57 loc) · 36.6 KB
/
markdown-examples.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Markdown Extension Examples | SSN</title>
<meta name="description" content="Welcome to my personal blog, where I share my thoughts, experiences, and passions. Join me on this journey of exploration and discovery">
<meta name="generator" content="VitePress v1.2.3">
<link rel="preload stylesheet" href="/assets/style.DvwsvGG9.css" as="style">
<script type="module" src="/assets/app.CWKo70YW.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.pgMqRpUO.js">
<link rel="modulepreload" href="/assets/chunks/theme.2g0phJYx.js">
<link rel="modulepreload" href="/assets/markdown-examples.md.wz2e74Yb.lean.js">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar top" data-v-ae24b3ad data-v-ccf7ddec><div class="wrapper" data-v-ccf7ddec><div class="container" data-v-ccf7ddec><div class="title" data-v-ccf7ddec><div class="VPNavBarTitle" data-v-ccf7ddec data-v-ab179fa1><a class="title" href="/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/avatar.png" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>SSN</span><!--[--><!--]--></a></div></div><div class="content" data-v-ccf7ddec><div class="content-body" data-v-ccf7ddec><!--[--><!--]--><div class="VPNavBarSearch search" data-v-ccf7ddec><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>Java</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/algorithm/" data-v-43f1e123><!--[-->Data Structure and Algorithms<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/java-design-patterns/" data-v-43f1e123><!--[-->设计模式<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/concurrent/" data-v-43f1e123><!--[-->并发编程<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/springboot/" data-v-43f1e123><!--[-->SpringBoot<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/mysql/" data-v-43f1e123><!--[-->MySQL<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/kafka/" data-v-43f1e123><!--[-->Kafka<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/microservice/" data-v-43f1e123><!--[-->SpringCloud<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/redis/" data-v-43f1e123><!--[-->Redis<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>Python</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/python/core/" data-v-43f1e123><!--[-->Python 核心技术<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/python/fastapi/" data-v-43f1e123><!--[-->FastApi<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/ml/" data-v-43f1e123><!--[-->机器学习<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>云原生</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/cloud_native/docker/" data-v-43f1e123><!--[-->Docker<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link" href="/column/cloud_native/k8s/" data-v-43f1e123><!--[-->Kubernetes<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>About</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://github.com/chengdonglin" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Github<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://juejin.cn/user/1978776660482039" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->掘金<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://mp.weixin.qq.com/s/iK7_SX_A5Z8HgjdQ_hlkvw" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->公众号<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-ccf7ddec data-v-e6aabb21><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-e6aabb21 data-v-d1f28634 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-d1f28634></span><span class="vpi-moon moon" data-v-d1f28634></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/chengdonglin" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-ccf7ddec data-v-d0bd9dde data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-d0bd9dde><div class="item appearance" data-v-d0bd9dde><p class="label" data-v-d0bd9dde>Appearance</p><div class="appearance-action" data-v-d0bd9dde><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-d0bd9dde data-v-d1f28634 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-d1f28634></span><span class="vpi-moon moon" data-v-d1f28634></span><!--]--></span></span></button></div></div></div><div class="group" data-v-d0bd9dde><div class="item social-links" data-v-d0bd9dde><div class="VPSocialLinks social-links-list" data-v-d0bd9dde data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/chengdonglin" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-ccf7ddec data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-ccf7ddec><div class="divider-line" data-v-ccf7ddec></div></div></div><!----></header><div class="VPLocalNav empty fixed" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><!----><div class="VPContent" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>menu</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _markdown-examples" data-v-39a288b8><div><h1 id="markdown-extension-examples" tabindex="-1">Markdown Extension Examples <a class="header-anchor" href="#markdown-extension-examples" aria-label="Permalink to "Markdown Extension Examples""></a></h1><p>This page demonstrates some of the built-in markdown extensions provided by VitePress.</p><h2 id="syntax-highlighting" tabindex="-1">Syntax Highlighting <a class="header-anchor" href="#syntax-highlighting" aria-label="Permalink to "Syntax Highlighting""></a></h2><p>VitePress provides Syntax Highlighting powered by <a href="https://github.com/shikijs/shiki" target="_blank" rel="noreferrer">Shiki</a>, with additional features like line-highlighting:</p><p><strong>Input</strong></p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">```js{4}</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> () {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> msg: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Highlighted!'</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">```</span></span></code></pre></div><p><strong>Output</strong></p><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> data</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> () {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line highlighted"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> msg: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Highlighted!'</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><h2 id="custom-containers" tabindex="-1">Custom Containers <a class="header-anchor" href="#custom-containers" aria-label="Permalink to "Custom Containers""></a></h2><p><strong>Input</strong></p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::: info</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">This is an info box.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:::</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::: tip</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">This is a tip.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:::</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::: warning</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">This is a warning.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:::</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::: danger</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">This is a dangerous warning.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:::</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">::: details</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">This is a details block.</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:::</span></span></code></pre></div><p><strong>Output</strong></p><div class="info custom-block"><p class="custom-block-title">INFO</p><p>This is an info box.</p></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>This is a tip.</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>This is a warning.</p></div><div class="danger custom-block"><p class="custom-block-title">DANGER</p><p>This is a dangerous warning.</p></div><details class="details custom-block"><summary>Details</summary><p>This is a details block.</p></details><h2 id="more" tabindex="-1">More <a class="header-anchor" href="#more" aria-label="Permalink to "More""></a></h2><p>Check out the documentation for the <a href="https://vitepress.dev/guide/markdown" target="_blank" rel="noreferrer">full list of markdown extensions</a>.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-d4a0bba5><!--[--><!--]--><!----><!----></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024-present SSN</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"column_concurrent_index.md\":\"D_AdwHh4\",\"api-examples.md\":\"CD08oj63\",\"column_algorithm_index.md\":\"Bwrn4tUB\",\"column_algorithm_001_stack.md\":\"C4goss87\",\"column_algorithm_002_queue.md\":\"B6HyUG6v\",\"column_cloud_native_docker_gitlab.md\":\"SwjPjtWe\",\"column_cloud_native_docker_001_install_docker.md\":\"9dFS37Ic\",\"column_microservice_index.md\":\"jgysJQB8\",\"column_microservice_springcloudalibaba_001_service_register_nacos.md\":\"B9OFRK78\",\"column_llm_index.md\":\"BHJywkyc\",\"column_concurrent_005_thread_pool_executor.md\":\"CGZ0gEMS\",\"column_cloud_native_docker_003_backend_middleware_deploy.md\":\"BHgsUwSH\",\"column_cloud_native_index.md\":\"BseyQW0w\",\"column_kafka_index.md\":\"BGv2chZb\",\"column_cloud_native_docker_006_docker_kafka.md\":\"oAj6EBB3\",\"column_python_core_index.md\":\"DQii-347\",\"column_concurrent_003_juc_tool.md\":\"Brs6Itj5\",\"column_mysql_index.md\":\"CEztegHw\",\"column_redis_002_redis_high_performance_and_persistence.md\":\"B2-un-a-\",\"column_cloud_native_docker_002_docker_cmd.md\":\"C7SRHfQe\",\"column_cloud_native_docker_index.md\":\"C0aYsQgW\",\"column_redis_index.md\":\"BCkt0o7_\",\"column_kafka_001_kafka_install.md\":\"5aNCbXgZ\",\"column_java-design-patterns_010_proxy_pattern.md\":\"DvgLAXtw\",\"column_python_pytorch_001_pytorch_step.md\":\"oNVSctRx\",\"column_java-design-patterns_009_flyweight_pattern.md\":\"BYg8Dflg\",\"column_kafka_004_kafka_optimize.md\":\"DInZO-IS\",\"column_cloud_native_k8s_index.md\":\"D8tbJvvA\",\"column_springboot_008_springboot_transaction_error.md\":\"BCnVEQle\",\"column_microservice_springcloudalibaba_index.md\":\"LaGPx3cJ\",\"column_llm_003_milvus_start.md\":\"IzQfmF0l\",\"column_llm_003_gradio.md\":\"CSOiK6qY\",\"column_springboot_018_spring_boot_properties_source.md\":\"XMHWEDKz\",\"column_kafka_002_kafka_basic_operator.md\":\"BUTxnNTw\",\"column_java-design-patterns_001_project_init.md\":\"CUmP_hlb\",\"column_springboot_006_spring_transaction.md\":\"DwhL6Qkd\",\"column_concurrent_002_sync_exclusion.md\":\"BLLyhmpZ\",\"column_springboot_011_spring_plugin.md\":\"Do976AGQ\",\"column_springboot_31_spring_application_listener.md\":\"YZiGLcOi\",\"column_springboot_33_spring_boot_sse.md\":\"Bc6jIS9P\",\"column_springboot_21_spring_boot_executor.md\":\"ehQU-zcy\",\"index.md\":\"BBvq84JN\",\"column_springboot_014_spring_boot_all_url.md\":\"qfsDQPWI\",\"column_python_pytorch_index.md\":\"D1jtDfOx\",\"column_java-design-patterns_004_bridge_pattern.md\":\"ZegDnWyo\",\"column_springboot_017_spring_boot_condition.md\":\"Cy1ouY5p\",\"column_springboot_004_mybatis_plus_generator.md\":\"BMfvxD7D\",\"column_springboot_013_spring_boot_swagger.md\":\"0EKCzYxM\",\"column_java-design-patterns_002_adapter.md\":\"BH97Sf7a\",\"markdown-examples.md\":\"wz2e74Yb\",\"column_springboot_002_spring_boot_with_mybatis_plus.md\":\"D14-KPW7\",\"column_springboot_015_spring_boot_cost_time.md\":\"DyNnbsmH\",\"column_springboot_016_spring_boot_scanner_annotation.md\":\"hSOUmhtM\",\"column_java-design-patterns_007_memento_pattern.md\":\"6aqmkVzY\",\"column_ml_index.md\":\"bqUy6iG2\",\"column_java-design-patterns_011_pipeline_design.md\":\"5l6BTG-p\",\"column_springboot_003_spring_boot_with_redis.md\":\"CgbEK4h4\",\"column_java-design-patterns_008_interpreter_design_pattern.md\":\"DfHfY8xp\",\"column_python_core_decorator.md\":\"DvoHjeWE\",\"column_kafka_003_spring_boot_integration_kafka.md\":\"Zgs_IfTY\",\"column_cloud_native_k8s_001_env_init.md\":\"DCLMgxRe\",\"column_ml_001_knn.md\":\"C_fKR4UH\",\"column_springboot_20_spring_boot_spi.md\":\"Dv0sqd9A\",\"column_python_fastapi_001_custom_annotation.md\":\"922mFvGX\",\"column_springboot_009_springboot_custom_validation.md\":\"DPk6FUsA\",\"column_springboot_28_applicationcontextaware.md\":\"-7L9v-7C\",\"column_concurrent_004_thread_create_method.md\":\"DLQI2e4f\",\"column_java-design-patterns_005_template_pattern.md\":\"DrKbqqGk\",\"column_java-design-patterns_003_compose.md\":\"C6d3cOm2\",\"column_springboot_012_spring_boot_strategy.md\":\"DYkTXJVQ\",\"column_springboot_index.md\":\"BWrsGpSx\",\"column_cloud_native_docker_004_dockerfile.md\":\"Cj5cSsK8\",\"column_java-design-patterns_006_visitor_pattern.md\":\"BTZhd_C8\",\"column_springboot_30_beanpostprocessor_2.md\":\"CNpmo1p-\",\"column_llm_001_install_ollama.md\":\"DDZP4vyl\",\"column_springboot_25_spring_boot_command_runner.md\":\"CsPeD6w2\",\"column_springboot_010_springboot_properties.md\":\"-yi4l90l\",\"column_springboot_22_spring_boot_exception_thread.md\":\"Bmx9SHyT\",\"column_concurrent_001_thread_join.md\":\"B1063-mB\",\"column_java-design-patterns_index.md\":\"Dz-0q667\",\"column_redis_001_redis_why_fast.md\":\"DUTw5Cxa\",\"column_ml_002_naive_bayes.md\":\"Dy9upktg\",\"column_python_fastapi_index.md\":\"C4vFmEXb\",\"column_springboot_019_spring_factory_bean.md\":\"TmMoDZWc\",\"column_springboot_29_beanpostprocessor_1.md\":\"DJ1DAAuo\",\"column_cloud_native_docker_005_docker_compose_redis.md\":\"BcDlsaRa\",\"column_redis_003_redis_analysis.md\":\"BH0BQguK\",\"column_springboot_34_spring_boot_annotation_spel.md\":\"5QKt3sdu\",\"column_llm_002_lora_7b.md\":\"XE-OWA5H\",\"column_springboot_005_spring_boot_freemarker_html_to_pdf.md\":\"BVNXCj5D\",\"column_springboot_35_spring_boot_beanpostprocessor_redis.md\":\"sT_UTITt\",\"column_springboot_26_spring_fox_boot_starter.md\":\"DzEil2o3\",\"column_springboot_27_smartinitializingsingleton.md\":\"DiJawlrV\",\"column_springboot_001_spring_boot_test_example.md\":\"BPEgex-8\",\"column_springboot_24_spring_boot_starter_web.md\":\"Caiolu1J\",\"column_springboot_32_spring_boot_aop.md\":\"D5q1lBEO\",\"column_springboot_23_spring_boot_quartz.md\":\"V80n9SbX\",\"column_mysql_001_mysql_index.md\":\"Bcgv_02d\",\"column_springboot_007_springboot_mongodb.md\":\"jrsgHh8K\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"SSN\",\"description\":\"Welcome to my personal blog, where I share my thoughts, experiences, and passions. Join me on this journey of exploration and discovery\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/avatar.png\",\"nav\":[{\"text\":\"Java\",\"items\":[{\"text\":\"Data Structure and Algorithms\",\"link\":\"/column/algorithm/\"},{\"text\":\"设计模式\",\"link\":\"/column/java-design-patterns/\"},{\"text\":\"并发编程\",\"link\":\"/column/concurrent/\"},{\"text\":\"SpringBoot\",\"link\":\"/column/springboot/\"},{\"text\":\"MySQL\",\"link\":\"/column/mysql/\"},{\"text\":\"Kafka\",\"link\":\"/column/kafka/\"},{\"text\":\"SpringCloud\",\"link\":\"/column/microservice/\"},{\"text\":\"Redis\",\"link\":\"/column/redis/\"}]},{\"text\":\"Python\",\"items\":[{\"text\":\"Python 核心技术\",\"link\":\"/column/python/core/\"},{\"text\":\"FastApi\",\"link\":\"/column/python/fastapi/\"},{\"text\":\"机器学习\",\"link\":\"/column/ml/\"}]},{\"text\":\"云原生\",\"items\":[{\"text\":\"Docker\",\"link\":\"/column/cloud_native/docker/\"},{\"text\":\"Kubernetes\",\"link\":\"/column/cloud_native/k8s/\"}]},{\"text\":\"About\",\"items\":[{\"text\":\"Github\",\"link\":\"https://github.com/chengdonglin\"},{\"text\":\"掘金\",\"link\":\"https://juejin.cn/user/1978776660482039\"},{\"text\":\"公众号\",\"link\":\"https://mp.weixin.qq.com/s/iK7_SX_A5Z8HgjdQ_hlkvw\"}]}],\"sidebar\":{\"/column/algorithm/\":[{\"text\":\"Linear Structure\",\"items\":[{\"text\":\"Stack\",\"link\":\"/column/algorithm/001_stack\"},{\"text\":\"Queue\",\"link\":\"/column/algorithm/002_queue\"}]}],\"/column/springboot/\":[{\"text\":\"Index\",\"link\":\"/column/springboot/index.md\"},{\"text\":\"① SpringBoot Test 的使用\",\"link\":\"/column/springboot/001_spring_boot_test_example\"},{\"text\":\"② SpringBoot 整合 MyBatis-Plus\",\"link\":\"/column/springboot/002_spring_boot_with_mybatis_plus\"},{\"text\":\"③ SpringBoot 整合 Redis\",\"link\":\"/column/springboot/003_spring_boot_with_redis.md\"},{\"text\":\"④ Mybatis-Plus 代码生成器\",\"link\":\"/column/springboot/004_mybatis_plus_generator.md\"},{\"text\":\"⑤ SpringBoot 通过 Freemarker 把 Html 转为 Pdf\",\"link\":\"/column/springboot/005_spring_boot_freemarker_html_to_pdf.md\"},{\"text\":\"⑥ Spring 事务传播行为\",\"link\":\"/column/springboot/006_spring_transaction.md\"},{\"text\":\"⑦ Spring 事务失效场景分析\",\"link\":\"/column/springboot/008_springboot_transaction_error.md\"},{\"text\":\"⑧ SpringBoot 整合 MongoDB\",\"link\":\"/column/springboot/007_springboot_mongodb.md\"},{\"text\":\"⑨ SpringBoot 基于 valid 自定义验证注解\",\"link\":\"/column/springboot/009_springboot_custom_validation.md\"},{\"text\":\"⑩ SpringBoot 配置文件\",\"link\":\"/column/springboot/010_springboot_properties.md\"},{\"text\":\"11. 基于 Spring-Plugin 插件化开发\",\"link\":\"/column/springboot/011_spring_plugin.md\"},{\"text\":\"12. 基于 Spring Boot 优雅使用策略模式\",\"link\":\"/column/springboot/012_spring_boot_strategy.md\"},{\"text\":\"13. SpringBoot 整合 Swagger UI 3.0 生成接口文档\",\"link\":\"/column/springboot/013_spring_boot_swagger.md\"},{\"text\":\"14. SpringBoot 基于 CommandLineRunner 扩展点获取 web 项目所有 URL\",\"link\":\"/column/springboot/014_spring_boot_all_url.md\"},{\"text\":\"15. SpringBoot 基于 ServletRequestHandledEvent 完成接口耗时调用\",\"link\":\"/column/springboot/015_spring_boot_cost_time.md\"},{\"text\":\"16. SpringBoot 基于 ImportBeanDefinitionRegistrar 扩展点扫描自定义注解\",\"link\":\"/column/springboot/016_spring_boot_scanner_annotation.md\"},{\"text\":\"17. Spring Boot 扩展自定义 Condition 条件注解\",\"link\":\"/column/springboot/017_spring_boot_condition.md\"},{\"text\":\"18. Spring Boot 扩展自定义 PropertySource 解析 JSON 配置文件\",\"link\":\"/column/springboot/018_spring_boot_properties_source.md\"},{\"text\":\"19. Spring 基于 FactoryBean 简化 kafka 消息发送\",\"link\":\"/column/springboot/019_spring_factory_bean.md\"},{\"text\":\"20. 基于Spring Boot SPI 机制轻松扩展应用功能\",\"link\":\"/column/springboot/20_spring_boot_spi.md\"},{\"text\":\"21. Spring Boot 自定义异步线程池防止OOM\",\"link\":\"/column/springboot/21_spring_boot_executor.md\"},{\"text\":\"22. 优雅解决线程池内部异常以及拒绝策略\",\"link\":\"/column/springboot/22_spring_boot_exception_thread.md\"},{\"text\":\"23. 基于 Spring Boot SmartLifecycle 扩展点启动 quartz 定时任务\",\"link\":\"/column/springboot/23_spring_boot_quartz.md\"},{\"text\":\"24. Spring Boot Starter 设计:实现统一返回与异常处理\",\"link\":\"/column/springboot/24_spring_boot_starter_web.md\"},{\"text\":\"25. Spring Boot 基于 CommandLineRunner 扩展点应用加载缓存信息\",\"link\":\"/column/springboot/25_spring_boot_command_runner.md\"},{\"text\":\"26. 基于 springfox-boot-starter 二次封装接口文档 starter 组件\",\"link\":\"/column/springboot/26_spring_fox_boot_starter.md\"},{\"text\":\"27. Spring Boot 基于 SmartInitializingSingleton 扩展点的应用\",\"link\":\"/column/springboot/27_smartInitializingSingleton.md\"},{\"text\":\"28. Spring Boot 基于 ApplicationContextAware 扩展点的应用\",\"link\":\"/column/springboot/28_ApplicationContextAware.md\"},{\"text\":\"29. Spring Boot 基于 BeanPostProcessor 扩展点应用(一)\",\"link\":\"/column/springboot/29_BeanPostProcessor_1.md\"},{\"text\":\"30. Spring Boot 基于 BeanPostProcessor 结合动态代理的扩展应用(二)\",\"link\":\"/column/springboot/30_BeanPostProcessor_2.md\"},{\"text\":\"31. Spring Boot 基于 ApplicationListener 的扩展应用\",\"link\":\"/column/springboot/31_spring_application_listener.md\"},{\"text\":\"32. Spring Boot 基于 AOP 自定义注解实现通用功能\",\"link\":\"/column/springboot/32_spring_boot_aop.md\"},{\"text\":\"33. Spring Boot + SSE 打造实时消息推送\",\"link\":\"/column/springboot/33_spring_boot_sse.md\"},{\"text\":\"34. Spring Boot 自定义注解结合 Spel 表达式实现动态解析\",\"link\":\"/column/springboot/34_spring_boot_annotation_spel.md\"},{\"text\":\"35. Spring Boot 基于 BeanPostProcessor + Redis 完成属性动态配置\",\"link\":\"/column/springboot/35_spring_boot_beanpostprocessor_redis.md\"}],\"/column/microservice/\":[{\"text\":\"Spring Cloud Alibaba\",\"items\":[{\"text\":\"introduction\",\"link\":\"/column/microservice/springcloudalibaba/index.md\"},{\"text\":\"Spring Cloud Alibaba Nacos\",\"link\":\"/column/microservice/springcloudalibaba/001_service_register_nacos.md\"}]}],\"/column/kafka/\":[{\"text\":\"index\",\"link\":\"/column/kafka/index.md\"},{\"text\":\"docker-compose 安装kafka\",\"link\":\"/column/kafka/001_kafka_install.md\"},{\"text\":\"Kafka 基本操作\",\"link\":\"/column/kafka/002_kafka_basic_operator.md\"},{\"text\":\"Spring整合 Kafka\",\"link\":\"/column/kafka/003_spring_boot_integration_kafka.md\"},{\"text\":\"kafka 调优\",\"link\":\"/column/kafka/004_kafka_optimize.md\"}],\"/column/redis/\":[{\"text\":\"Index\",\"link\":\"/column/redis/index.md\"},{\"text\":\"Redis 为什么这么快?\",\"link\":\"/column/redis/001_redis_why_fast.md\"},{\"text\":\"Redis 持久化机制\",\"link\":\"/column/redis/002_redis_high_performance_and_persistence.md\"},{\"text\":\"缓存穿透、缓存失效、缓存雪崩场景分析\",\"link\":\"/column/redis/003_redis_analysis.md\"}],\"/column/python/fastapi/\":[{\"text\":\"首页导航\",\"link\":\"/column/python/fastapi/index.md\"},{\"text\":\"FastApi 中自定义装饰器\",\"link\":\"/column/python/fastapi/001_custom_annotation.md\"}],\"column/python/core/\":[{\"text\":\"首页导航\",\"link\":\"/column/python/core/index.md\"},{\"text\":\"深入理解Python装饰器\",\"link\":\"/column/python/core/decorator.md\"}],\"column/cloud_native/docker/\":[{\"text\":\"Docker\",\"items\":[{\"text\":\"首页导航\",\"link\":\"/column/cloud_native/docker/index.md\"},{\"text\":\"Linux docker 安装\",\"link\":\"/column/cloud_native/docker/001_install_docker.md\"},{\"text\":\"docker 常用命令\",\"link\":\"/column/cloud_native/docker/002_docker_cmd.md\"},{\"text\":\"深入理解Dockerfile\",\"link\":\"/column/cloud_native/docker/004_dockerfile.md\"},{\"text\":\"gitlab 安装\",\"link\":\"/column/cloud_native/docker/gitlab.md\"},{\"text\":\"后端开发常用的中间件部署\",\"link\":\"/column/cloud_native/docker/003_backend_middleware_deploy.md\"},{\"text\":\"docker-compose 部署 redis\",\"link\":\"/column/cloud_native/docker/005_docker_compose_redis.md\"},{\"text\":\"docker 部署 kafka 单机版本\",\"link\":\"/column/cloud_native/docker/006_docker_kafka.md\"}]}],\"column/cloud_native/k8s\":[{\"text\":\"首页导航\",\"link\":\"column/cloud_native/k8s/index.md\"},{\"text\":\"基于 minikube 初始化 K8s 环境\",\"link\":\"column/cloud_native/k8s/001_env_init.md\"}],\"column/mysql/\":[{\"text\":\"首页导航\",\"link\":\"/column/mysql/index.md\"},{\"text\":\"MySQL 索引最佳实践\",\"link\":\"/column/mysql/001_MySQL_index.md\"}],\"column/java-design-patterns\":[{\"text\":\"首页导航\",\"link\":\"/column/java-design-patterns/index.md\"},{\"text\":\"开篇:项目工程初始化\",\"link\":\"/column/java-design-patterns/001_project_init.md\"},{\"text\":\"适配器模式支持第三方登录\",\"link\":\"/column/java-design-patterns/002_adapter.md\"},{\"text\":\"组合模式构建商品类目\",\"link\":\"/column/java-design-patterns/003_compose.md\"},{\"text\":\"桥接模式实现不通维度短信发送\",\"link\":\"/column/java-design-patterns/004_bridge_pattern.md\"},{\"text\":\"工厂模式结合模板设计模式实现文件元数据解析\",\"link\":\"/column/java-design-patterns/005_template_pattern.md\"},{\"text\":\"访问者设计模式\",\"link\":\"/column/java-design-patterns/006_visitor_pattern.md\"},{\"text\":\"备忘录设计模式备份诊断模板\",\"link\":\"/column/java-design-patterns/007_memento_pattern.md\"},{\"text\":\"解释器设计模式在自定义告警规则的应用\",\"link\":\"/column/java-design-patterns/008_Interpreter_design_pattern.md\"},{\"text\":\"享元设计模式复用设备厂商对象\",\"link\":\"/column/java-design-patterns/009_flyweight_pattern.md\"},{\"text\":\"代理模式对服务进行扩展\",\"link\":\"/column/java-design-patterns/010_proxy_pattern.md\"},{\"text\":\"Pipeline 管道模式\",\"link\":\"/column/java-design-patterns/011_pipeline_design.md\"}],\"column/ml\":[{\"text\":\"首页导航\",\"link\":\"/column/ml/index.md\"},{\"text\":\"近邻算法进行丁香花预测\",\"link\":\"/column/ml/001_knn.md\"},{\"text\":\"基于朴素贝叶斯分析评论情感分析\",\"link\":\"/column/ml/002_naive_bayes.md\"}],\"column/LLM\":[{\"text\":\"首页导航\",\"link\":\"/column/LLM/index.md\"},{\"text\":\"Milvus 向量库初体验\",\"link\":\"/column/LLM/003_milvus_start.md\"},{\"text\":\"Docker 搭建 Ollama\",\"link\":\"/column/LLM/001_install_ollama.md\"},{\"text\":\"基于 lora 微调千问2 7b 模型\",\"link\":\"/column/LLM/002_lora_7b.md\"},{\"text\":\"基于 gradio 快速搭建机器学习模型界面\",\"link\":\"/column/LLM/003_gradio.md\"}],\"column/concurrent\":[{\"text\":\"首页导航\",\"link\":\"/column/concurrent/index.md\"},{\"text\":\"创建线程的方式\",\"link\":\"/column/concurrent/004_thread_create_method.md\"},{\"text\":\"线程协作\",\"link\":\"/column/concurrent/001_thread_join.md\"},{\"text\":\"同步互斥\",\"link\":\"/column/concurrent/002_sync_exclusion.md\"},{\"text\":\"JUC 线程通信工具\",\"link\":\"/column/concurrent/003_juc_tool.md\"},{\"text\":\"Java 线程池\",\"link\":\"/column/concurrent/005_thread_pool_executor.md\"}],\"column/python/pytorch\":[{\"text\":\"首页导航\",\"link\":\"/column/python/pytorch/index.md\"},{\"text\":\"pytorch 训练基本步骤\",\"link\":\"/column/python/pytorch/001_pytorch_step.md\"}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/chengdonglin\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024-present SSN\"},\"outline\":{\"level\":[2,6],\"label\":\"menu\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>