CINXE.COM

关于 | liruifengv

<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="canonical" href="https://liruifengv.com/about/"><meta name="generator" content="Astro v5.0.2"><!-- General Meta Tags --><title>关于 | liruifengv</title><meta name="title" content="关于 | liruifengv"><meta name="description" content="liruifengv 的个人网站。分享技术、生活、读书、随笔等。李瑞丰的个人博客。"><meta name="author" content="liruifengv"><link rel="sitemap" href="/sitemap-index.xml"><!-- Open Graph / Facebook --><meta property="og:title" content="关于 | liruifengv"><meta property="og:description" content="liruifengv 的个人网站。分享技术、生活、读书、随笔等。李瑞丰的个人博客。"><meta property="og:url" content="https://liruifengv.com/about/"><meta property="og:image" content="https://liruifengv.com/og.png"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://liruifengv.com/about/"><meta property="twitter:title" content="关于 | liruifengv"><meta property="twitter:description" content="liruifengv 的个人网站。分享技术、生活、读书、随笔等。李瑞丰的个人博客。"><meta property="twitter:image" content="https://liruifengv.com/og.png"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><style type="text/css">@font-face {font-family:Public Sans;font-style:normal;font-weight:400;src:url(/cf-fonts/v/public-sans/5.0.16/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Public Sans;font-style:normal;font-weight:400;src:url(/cf-fonts/v/public-sans/5.0.16/latin-ext/wght/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Public Sans;font-style:normal;font-weight:400;src:url(/cf-fonts/v/public-sans/5.0.16/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:Public Sans;font-style:normal;font-weight:700;src:url(/cf-fonts/v/public-sans/5.0.16/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:Public Sans;font-style:normal;font-weight:700;src:url(/cf-fonts/v/public-sans/5.0.16/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Public Sans;font-style:normal;font-weight:700;src:url(/cf-fonts/v/public-sans/5.0.16/latin-ext/wght/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Public Sans;font-style:italic;font-weight:400;src:url(/cf-fonts/v/public-sans/5.0.16/latin/wght/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Public Sans;font-style:italic;font-weight:400;src:url(/cf-fonts/v/public-sans/5.0.16/latin-ext/wght/italic.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Public Sans;font-style:italic;font-weight:400;src:url(/cf-fonts/v/public-sans/5.0.16/vietnamese/wght/italic.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:500;src:url(/cf-fonts/v/rubik/5.0.18/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:500;src:url(/cf-fonts/v/rubik/5.0.18/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:500;src:url(/cf-fonts/v/rubik/5.0.18/arabic/wght/normal.woff2);unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:500;src:url(/cf-fonts/v/rubik/5.0.18/hebrew/wght/normal.woff2);unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:500;src:url(/cf-fonts/v/rubik/5.0.18/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:500;src:url(/cf-fonts/v/rubik/5.0.18/latin-ext/wght/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:600;src:url(/cf-fonts/v/rubik/5.0.18/latin-ext/wght/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:600;src:url(/cf-fonts/v/rubik/5.0.18/arabic/wght/normal.woff2);unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:600;src:url(/cf-fonts/v/rubik/5.0.18/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:600;src:url(/cf-fonts/v/rubik/5.0.18/hebrew/wght/normal.woff2);unicode-range:U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:600;src:url(/cf-fonts/v/rubik/5.0.18/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Rubik;font-style:normal;font-weight:600;src:url(/cf-fonts/v/rubik/5.0.18/cyrillic/wght/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}</style><script src="/toggle-theme.js"></script><!-- Google tag (gtag.js) --><script async src="https://www.googletagmanager.com/gtag/js?id=G-LH9N740HBE"></script><script type="module">window.dataLayer=window.dataLayer||[];function a(){window.dataLayer.push(arguments)}a("js",new Date);a("config","G-LH9N740HBE");</script><link rel="stylesheet" href="/_astro/about.BaOpPmvv.css"> <link rel="stylesheet" href="/_astro/about.r1VhreVz.css"> <style>svg:where(.astro-patnjmll){vertical-align:middle;width:var(--size, 1em);height:var(--size, 1em)} </style></head> <body> <div class="stack min-h-screen"> <nav class="astro-dmqpwcec"> <div class="menu-header astro-dmqpwcec"> <a href="/" class="site-title astro-dmqpwcec"> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="url(#icon-gradient-y15negpi)" fill="url(#icon-gradient-y15negpi)" style="--size:1.6em" class="astro-patnjmll"> <g class="astro-patnjmll"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m80 96 40 32-40 32m56 0h40"/><rect width="192" height="160" x="32" y="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97" rx="8.5"/></g> <linearGradient id="icon-gradient-y15negpi" x1="23" x2="235" y1="43" y2="202" gradientUnits="userSpaceOnUse" class="astro-patnjmll"> <stop stop-color="var(--gradient-stop-1)" class="astro-patnjmll"></stop> <stop offset=".5" stop-color="var(--gradient-stop-2)" class="astro-patnjmll"></stop> <stop offset="1" stop-color="var(--gradient-stop-3)" class="astro-patnjmll"></stop> </linearGradient> </svg> liruifengv </a> <menu-button class="astro-dmqpwcec"> <template class="astro-dmqpwcec"> <button class="menu-button astro-dmqpwcec" aria-expanded="false"> <span class="sr-only astro-dmqpwcec">Menu</span> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M40 128h176M40 64h176M40 192h176"/></g> </svg> </button> </template> </menu-button> </div> <noscript> <ul class="nav-items astro-dmqpwcec"> <li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/"> 首页 </a> </li><li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/posts/"> 文章 </a> </li><li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/tags/"> 标签 </a> </li><li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/projects/"> 项目 </a> </li><li class="astro-dmqpwcec"> <a aria-current="true" class="link active astro-dmqpwcec" href="/about/"> 关于 </a> </li> </ul> </noscript> <noscript> <div class="menu-footer astro-dmqpwcec"> <div class="socials astro-dmqpwcec"> <a href="https://twitter.com/liruifengv" class="social astro-dmqpwcec"> <span class="sr-only astro-dmqpwcec">Twitter</span> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 88c0-22 18.5-40.3 40.5-40a40 40 0 0 1 36.2 24H240l-32.3 32.3A127.9 127.9 0 0 1 80 224c-32 0-40-12-40-12s32-12 48-36c0 0-64-32-48-120 0 0 40 40 88 48Z"/></g> </svg> </a><a href="https://github.com/liruifengv" class="social astro-dmqpwcec"> <span class="sr-only astro-dmqpwcec">GitHub</span> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><g stroke-linecap="round" stroke-linejoin="round"><path fill="none" stroke-width="14.7" d="M55.7 167.2c13.9 1 21.3 13.1 22.2 14.6 4.2 7.2 10.4 9.6 18.3 7.1l1.1-3.4a60.3 60.3 0 0 1-25.8-11.9c-12-10.1-18-25.6-18-46.3"/><path fill="none" stroke-width="16" d="M61.4 205.1a24.5 24.5 0 0 1-3-6.1c-3.2-7.9-7.1-10.6-7.8-11.1l-1-.6c-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.7 46.7 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4 0 42.6-25.8 54.7-43.6 58.7 1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3"/><path fill="none" stroke-width="16" d="M160.9 185.7c1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3A98.6 98.6 0 1 0 61.4 205c-1.4-2.1-11.3-17.5-11.8-17.8-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.4 46.4 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4.1 42.6-25.8 54.7-43.6 58.6z"/><path fill="none" stroke-width="18.7" d="m170.1 203.3 17.3-12 17.2-18.7 9.5-26.6v-27.9l-9.5-27.5" /><path fill="none" stroke-width="22.7" d="m92.1 57.3 23.3-4.6 18.7-1.4 29.3 5.4m-110 32.6-8 16-4 21.4.6 20.3 3.4 13" /><path fill="none" stroke-width="13.3" d="M28.8 133a100 100 0 0 0 66.9 94.4v-8.7c-22.4 1.8-33-11.5-35.6-19.8-3.4-8.6-7.8-11.4-8.5-11.8"/></g></g> </svg> </a> </div> </div> </noscript> <div id="menu-content" hidden class="astro-dmqpwcec"> <ul class="nav-items astro-dmqpwcec"> <li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/"> 首页 </a> </li><li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/posts/"> 文章 </a> </li><li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/tags/"> 标签 </a> </li><li class="astro-dmqpwcec"> <a aria-current="false" class="link astro-dmqpwcec" href="/projects/"> 项目 </a> </li><li class="astro-dmqpwcec"> <a aria-current="true" class="link active astro-dmqpwcec" href="/about/"> 关于 </a> </li> </ul> <div class="menu-footer astro-dmqpwcec"> <div class="socials astro-dmqpwcec"> <a href="https://twitter.com/liruifengv" class="social astro-dmqpwcec"> <span class="sr-only astro-dmqpwcec">Twitter</span> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 88c0-22 18.5-40.3 40.5-40a40 40 0 0 1 36.2 24H240l-32.3 32.3A127.9 127.9 0 0 1 80 224c-32 0-40-12-40-12s32-12 48-36c0 0-64-32-48-120 0 0 40 40 88 48Z"/></g> </svg> </a><a href="https://github.com/liruifengv" class="social astro-dmqpwcec"> <span class="sr-only astro-dmqpwcec">GitHub</span> <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><g stroke-linecap="round" stroke-linejoin="round"><path fill="none" stroke-width="14.7" d="M55.7 167.2c13.9 1 21.3 13.1 22.2 14.6 4.2 7.2 10.4 9.6 18.3 7.1l1.1-3.4a60.3 60.3 0 0 1-25.8-11.9c-12-10.1-18-25.6-18-46.3"/><path fill="none" stroke-width="16" d="M61.4 205.1a24.5 24.5 0 0 1-3-6.1c-3.2-7.9-7.1-10.6-7.8-11.1l-1-.6c-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.7 46.7 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4 0 42.6-25.8 54.7-43.6 58.7 1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3"/><path fill="none" stroke-width="16" d="M160.9 185.7c1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3A98.6 98.6 0 1 0 61.4 205c-1.4-2.1-11.3-17.5-11.8-17.8-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.4 46.4 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4.1 42.6-25.8 54.7-43.6 58.6z"/><path fill="none" stroke-width="18.7" d="m170.1 203.3 17.3-12 17.2-18.7 9.5-26.6v-27.9l-9.5-27.5" /><path fill="none" stroke-width="22.7" d="m92.1 57.3 23.3-4.6 18.7-1.4 29.3 5.4m-110 32.6-8 16-4 21.4.6 20.3 3.4 13" /><path fill="none" stroke-width="13.3" d="M28.8 133a100 100 0 0 0 66.9 94.4v-8.7c-22.4 1.8-33-11.5-35.6-19.8-3.4-8.6-7.8-11.4-8.5-11.8"/></g></g> </svg> </a> </div> <div class="theme-toggle astro-dmqpwcec"> <theme-toggle class="astro-x3pjskd3"> <button class="astro-x3pjskd3"> <span class="sr-only astro-x3pjskd3">Dark theme</span> <span class="icon light astro-x3pjskd3"><svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 36V16M63 63 49 49m-13 79H16m47 65-14 14m79 13v20m65-47 14 14m13-79h20m-47-65 14-14"/></g> </svg> </span> <span class="icon dark astro-x3pjskd3"><svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 256 256" aria-hidden="true" stroke="currentcolor" fill="currentcolor" class="astro-patnjmll"> <g class="astro-patnjmll"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 112V64m24 24h-48m-24-64v32m16-16h-32m65 113A92 92 0 0 1 103 39h0a92 92 0 1 0 114 114Z"/></g> </svg> </span> </button> </theme-toggle> <script type="module">class n extends HTMLElement{constructor(){super();const t=this.querySelector("button"),s=e=>{document.documentElement.classList[e?"add":"remove"]("theme-dark"),t.setAttribute("aria-pressed",String(e)),document.documentElement.setAttribute("data-theme",e?"dark":"light"),localStorage.setItem("theme",e?"dark":"light")};t.addEventListener("click",()=>s(!this.isDark())),s(this.isDark())}isDark(){return document.documentElement.classList.contains("theme-dark")}}customElements.define("theme-toggle",n);</script> </div> </div> </div> </nav> <script type="module">class i extends HTMLElement{constructor(){super(),this.appendChild(this.querySelector("template").content.cloneNode(!0));const n=this.querySelector("button"),t=document.getElementById("menu-content");t.hidden=!0,t.classList.add("menu-content");const d=e=>{n.setAttribute("aria-expanded",e?"true":"false"),t.hidden=!e};n.addEventListener("click",()=>d(t.hidden));const s=e=>{d(e.matches),n.hidden=e.matches},c=window.matchMedia("(min-width: 50em)");s(c),c.addEventListener("change",s)}}customElements.define("menu-button",i);</script> <div class="stack gap-20"> <main class="wrapper stack gap-8 w-full"> <section id="about" class="mx-auto max-w-3xl prose-base dark:prose-invert prose-img:rounded-xl prose-li:list-disc mb-28 prose-a:underline prose-a:underline-offset-2 "> <h1 class="text-2xl tracking-wider sm:text-3xl text-center">关于我/关于本站</h1> <h2 id="我是-liruifengv">我是 liruifengv</h2> <p>我是一名前端开发工程师,目前专注 Web 开发,热爱开源,喜欢折腾,喜欢分享。现在居住工作在中国天津。</p> <p>这两年,开始着重参与一些开源项目,同时也在写技术文章。</p> <ul> <li><a href="https://github.com/denoland/deno/issues?q=author%3Aliruifengv">Deno</a> 参与了一些代码贡献。希望前端生态越来越好。</li> <li><a href="https://github.com/withastro">Astro</a> Maintainer,中文文档的维护翻译。</li> <li>如果你在使用 Astro 的过程中,有任何问题,或者中文文档有任何疑问,欢迎联系我。</li> <li>正在写 Astro 专栏文章。</li> <li>学习 Rust 从入门到放弃三次,计划写一系列 Rust 实战的文章,目前烂尾。</li> <li>AI 新人,在学习 AI 中。</li> </ul> <h3 id="我的技术栈有">我的技术栈有</h3> <ul> <li>语言:HTML、CSS、JavaScript(Node、Deno)、Rust、Go</li> <li>前端:Astro、Vue、React、Next.js</li> <li>后端:Actix(Rust)、Express(Node)、Fiber(go)</li> <li>客户端跨平台:Electron</li> </ul> <h3 id="关于本站">关于本站</h3> <p>本站是我的个人主站,主要是我的文章的发布,包括但不限于技术类、读后感、生活琐事等。</p> <p>本网站使用如下技术构建:</p> <ul> <li><a href="https://astro.build/">Astro</a></li> <li><a href="https://tailwindcss.com/">TailwindCSS</a></li> <li><a href="https://react.dev">React</a></li> </ul> <h3 id="我的其他主页">我的其他主页</h3> <ul> <li><a href="https://github.com/liruifengv">GitHub</a></li> <li><a href="https://twitter.com/liruifengv">Twitter / X</a></li> <li><a href="https://www.zhihu.com/people/liruifengv">知乎</a></li> <li><a href="https://juejin.cn/user/237150239994471">掘金</a></li> <li>微信公众号: SayHub</li> </ul> <p><img src="https://bucket.liruifengv.com/qrcode.png" alt="My WeChat QRCode"></p> <h3 id="联系方式">联系方式</h3> <p>如果你有任何问题,开源、前端、Rust、编程学习、职场等等,或者单纯想交个朋友,可以通过以下方式联系我:</p> <ul> <li>微信:liruifengv2333</li> <li>邮箱:<a href="/cdn-cgi/l/email-protection#9ef2f7ecebf7f8fbf0f9afaeacaadef9f3fff7f2b0fdf1f3"><span class="__cf_email__" data-cfemail="1874716a6d717e7d767f29282a2c587f75797174367b7775">[email&#160;protected]</span></a></li> </ul> <h3 id="很高兴见到你欢迎来玩">很高兴见到你,欢迎来玩~</h3> </section> </main> </div> <footer class="astro-sz7xmlte"> <div class="group astro-sz7xmlte"> <p class="flex gap-2 items-center justify-center astro-sz7xmlte"> <a href="https://astro.build" class="astro-sz7xmlte"><img src="https://astro.badg.es/v2/built-with-astro/tiny.svg" alt="Built with Astro" width="120" height="20" class="astro-sz7xmlte"></a> </p> <p class="astro-sz7xmlte">&copy; 2025 liruifengv</p> </div> <p class="socials astro-sz7xmlte"> <a href="https://twitter.com/liruifengv" class="astro-sz7xmlte"> Twitter</a> <a href="https://github.com/liruifengv" class="astro-sz7xmlte"> GitHub</a> <a href="/cdn-cgi/l/email-protection#0965607b7c606f6c676e38393b3d496e64686065276a6664" class="astro-sz7xmlte"> Email</a> <a href="https://liruifengv.com/rss.xml" class="astro-sz7xmlte"> RSS</a> <a href="/year" class="astro-sz7xmlte"> Archive</a> </p> </footer> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10