This commit is contained in:
mozzie 2023-11-07 13:04:43 +08:00
parent 5ada1f536e
commit 82b12fa092
46 changed files with 592 additions and 596 deletions

File diff suppressed because one or more lines are too long

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>
@ -294,7 +294,7 @@
<p><a target="_blank" rel="noopener" href="https://baidu.com/">https://baidu.com</a></p> <p><a target="_blank" rel="noopener" href="https://baidu.com/">https://baidu.com</a></p>
<p><a target="_blank" rel="noopener" href="http://www.this-anchor-link.com/">锚点链接</a> </p> <p><a target="_blank" rel="noopener" href="http://www.this-anchor-link.com/">锚点链接</a> </p>
<p><a href="mailto:test.test@gmail.com">mailto:test.test@gmail.com</a></p> <p><a href="mailto:test.test@gmail.com">mailto:test.test@gmail.com</a></p>
<p>GFM a-tail link <a target="_blank" rel="noopener" href="https://my.oschina.net/u/3691274">@pandao</a> 邮箱地址自动链接 <a href="mailto:&#116;&#x65;&#x73;&#x74;&#46;&#116;&#101;&#115;&#x74;&#x40;&#103;&#109;&#97;&#x69;&#108;&#46;&#x63;&#111;&#109;">&#116;&#x65;&#x73;&#x74;&#46;&#116;&#101;&#115;&#x74;&#x40;&#103;&#109;&#97;&#x69;&#108;&#46;&#x63;&#111;&#109;</a> <a href="mailto:&#x77;&#119;&#119;&#64;&#118;&#x69;&#x70;&#x2e;&#x71;&#x71;&#x2e;&#x63;&#111;&#109;">&#x77;&#119;&#119;&#64;&#118;&#x69;&#x70;&#x2e;&#x71;&#x71;&#x2e;&#x63;&#111;&#109;</a></p> <p>GFM a-tail link <a target="_blank" rel="noopener" href="https://my.oschina.net/u/3691274">@pandao</a> 邮箱地址自动链接 <a href="mailto:&#x74;&#101;&#115;&#x74;&#46;&#x74;&#101;&#115;&#116;&#x40;&#x67;&#x6d;&#x61;&#105;&#x6c;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#101;&#115;&#x74;&#46;&#x74;&#101;&#115;&#116;&#x40;&#x67;&#x6d;&#x61;&#105;&#x6c;&#x2e;&#x63;&#x6f;&#x6d;</a> <a href="mailto:&#x77;&#119;&#119;&#64;&#x76;&#105;&#112;&#46;&#x71;&#113;&#46;&#99;&#111;&#109;">&#x77;&#119;&#119;&#64;&#x76;&#105;&#112;&#46;&#x71;&#113;&#46;&#99;&#111;&#109;</a></p>
<blockquote> <blockquote>
<p>@pandao</p> <p>@pandao</p>
</blockquote> </blockquote>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/css/dba23209.css Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>
@ -220,7 +220,7 @@
</aside> </aside>
<main> <main>
<link rel="stylesheet" href="/css/3fa188f4.css"> <link rel="stylesheet" href="/css/0e7433f2.css">

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>
@ -220,7 +220,7 @@
</aside> </aside>
<main> <main>
<link rel="stylesheet" href="/css/3fa188f4.css"> <link rel="stylesheet" href="/css/0e7433f2.css">

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>
@ -220,377 +220,375 @@
</aside> </aside>
<main> <main>
<link rel="stylesheet" href="/css/f1709cba.css"> <link rel="stylesheet" href="/css/dba23209.css">
<div class="resume"> <div class="resume scrollbar-obtrusive">
<div class="container"> <aside>
<aside> <div class="base">
<div class="base"> <figure>
<figure> <img src="/img/avatar.png" />
<img src="/img/avatar.png" /> </figure>
</figure> <h3>Hi! Mozzie</h3>
<h3>Hi! Mozzie</h3> <div class="badge">
<div class="badge"> <span>Full Stack</span>
<span>Full Stack</span> </div>
</div> <div class="seperation"></div>
<div class="seperation"></div> <ul>
<ul> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="5" width="18" height="14" rx="2"></rect>
<rect x="3" y="5" width="18" height="14" rx="2"></rect> <path d="M3 7l9 6l9-6"></path>
<path d="M3 7l9 6l9-6"></path> </g>
</g> </svg>
</svg> </span>
</span> <div>
<div> <p>email</p>
<p>email</p> <h4>himozzie@gmail.com</h4>
<h4>himozzie@gmail.com</h4> </div>
</div> </li>
</li> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg>
</svg> </span>
</span> <div>
<div> <p>phone</p>
<p>phone</p> <h4>+86 180-xxxx-xxx</h4>
<h4>+86 180-xxxx-xxx</h4> </div>
</div> </li>
</li> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="5" width="16" height="16" rx="2"></rect>
<rect x="4" y="5" width="16" height="16" rx="2"></rect> <path d="M16 3v4"></path>
<path d="M16 3v4"></path> <path d="M8 3v4"></path>
<path d="M8 3v4"></path> <path d="M4 11h16"></path>
<path d="M4 11h16"></path> <path d="M11 15h1"></path>
<path d="M11 15h1"></path> <path d="M12 15v3"></path>
<path d="M12 15v3"></path> </g>
</g> </svg>
</svg> </span>
</span> <div>
<div> <p>BIRTHDAY</p>
<p>BIRTHDAY</p> <h4>Jan 21, 1994</h4>
<h4>Jan 21, 1994</h4> </div>
</div> </li>
</li> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M21 3l-6.5 18a.55.55 0 0 1-1 0L10 14l-7-3.5a.55.55 0 0 1 0-1L21 3" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M21 3l-6.5 18a.55.55 0 0 1-1 0L10 14l-7-3.5a.55.55 0 0 1 0-1L21 3" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg>
</svg> </span>
</span> <div>
<div> <p>LOCATION</p>
<p>LOCATION</p> <h4>Nanjing, China</h4>
<h4>Nanjing, China</h4> </div>
</div> </li>
</li> </ul>
<div class="social">
<a target="_blank" rel="noopener" href="https://github.com/17px" class="tip" data-tip="github">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg>
</a>
</div>
</div>
</aside>
<main>
<h2><span>Resume</span></h2>
<!-- introduction -->
<div class="about-me">
<p>熟练掌握Vue和React全家桶包括状态管理和组件库如ElementPlus 和 AntDesign。在前端工程化方面有 Webpack 和 Vite 的配置经验。具备 SpringBoot、Egg、Koa2 和 Midway 的项目经验,并在微服务架构下使用 Nestjs。熟悉Linux基础命令和Nginx、Docker的使用。</p>
<p>在3D图形和医疗前端方面具有 three.js 和 Vtk.js 的实践经验</p>
</div>
<h4>Skill</h4>
<ul class="skill">
<li>熟悉常见的数据结构和算法,熟悉设计模式</li>
<li>熟悉前端基础 HTML5、CSS3、JS、ES6+、TypeScript 语法</li>
<li>熟悉 Vue2、Vue3 全家桶,熟悉 ElementPlus、NaiveUI熟悉 Vue 原理</li>
<li>熟悉 React 技术栈,熟悉 Hooks 语法,熟悉 AntDesign熟悉 React 原理</li>
<li>熟悉微信小程序开发,熟悉 Taro 框架的使用</li>
<li>熟悉 Webpack、Vite 常见配置,以及性能优化配置</li>
<li>熟悉 Node具备后端开发能力SpringBoot、Egg、Koa2、Midway 单体应用项目经验Nestjs 微服务应用项目经验</li>
<li>有 Monorepo 工程化经验,具备单体前后端分离应用 DevOps 能力</li>
<li>熟悉 three.js、了解 Vtk.js具备医疗 3D 前端、图形学相关的开发经验</li>
<li>掌握 Linux 基本命令,了解 Nginx、Docker 基本使用</li>
</ul>
<!-- edutcation -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M22 9L12 5L2 9l10 4l10-4v6"></path>
<path d="M6 10.6V16a6 3 0 0 0 12 0v-5.4"></path>
</g>
</svg>
</span>
<h4>Educational</h4>
</li>
<li class="item">
<p class="name">南京信息工程大学滨江学院 / 本科</p>
<div class="period">2012-2016</div>
</li>
</ul>
<!-- experience -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M8 9l5 5v7H8v-4m0 4H3v-7l5-5m1 1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v17h-8"></path>
<path d="M13 7v.01"></path>
<path d="M17 7v.01"></path>
<path d="M17 11v.01"></path>
<path d="M17 15v.01"></path>
</g>
</svg>
</span>
<h4>Work Experience</h4>
</li>
<li class="item">
<p class="name">拓微摹心数据科技(南京)有限公司 · 全栈</p>
<div class="period">2021.09 ~ 至今</div>
</li>
<li class="item">
<p class="name">南京寻鹿网络科技有限公司 · 前端</p>
<div class="period">2016.09 ~ 2019.06</div>
</li>
</ul>
<!-- Project experience -->
<ul class="project">
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M7 8l-4 4l4 4"></path>
<path d="M17 8l4 4l-4 4"></path>
<path d="M14 4l-4 16"></path>
</g>
</svg>
</span>
<h4>Project</h4>
</li>
<li class="item">
<p class="name">
<label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label>CVPilot算法、标注数据中台
</p>
<div class="desc">具备高精度数据标注、强大的数据管理、算法集成、多级用户权限、标注流程协作、算法模型版本、训练测试、API接口和数据可视化等功能全面支持公司内部医疗影像分析和诊断</div>
<ul class="list">
<li>使用 Pnpm workspace 实现 Monorepo 多个代码仓库管理,支持多个框架并存,可共享公共组件库和能力</li>
<li>自行使用 rollup 沉淀了部分可复用基础模块UI 组件库、对象存储、邮件、短信、企业微信机器人通知</li>
<li>使用 Nest.js 开发,基于事件驱动架构,重构后端服务体系</li>
<li>基于 rbac 设计了认证中心,解决业务应用中用户统一授权、鉴权的问题</li>
<li>使用 orthanc 搭建 Pacs 影像、并且基于标注、业务流程设计了影像上层的标签系统</li>
<li>使用 pdf.js 实现 3Mensio、FluoroCT 医疗报告关键字段的自动解析Cover了 80%+ 的字段</li>
<li>设计了前后端一体开发的领域驱动设计DDD项目架构并成功实践</li>
</ul> </ul>
<div class="social"> </li>
<li class="item">
<a target="_blank" rel="noopener" href="https://github.com/17px" class="tip" data-tip="github"> <p class="name">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
</a>
</div>
</div>
</aside>
<main class="scrollbar-obtrusive">
<h2><span>Resume</span></h2>
<!-- introduction -->
<div class="about-me">
<p>熟练掌握Vue和React全家桶包括状态管理和组件库如ElementPlus 和 AntDesign。在前端工程化方面有 Webpack 和 Vite 的配置经验。具备 SpringBoot、Egg、Koa2 和 Midway 的项目经验,并在微服务架构下使用 Nestjs。熟悉Linux基础命令和Nginx、Docker的使用。</p>
<p>在3D图形和医疗前端方面具有 three.js 和 Vtk.js 的实践经验</p>
</div>
<h4>Skill</h4>
<ul class="skill">
<li>熟悉常见的数据结构和算法,熟悉设计模式</li>
<li>熟悉前端基础 HTML5、CSS3、JS、ES6+、TypeScript 语法</li>
<li>熟悉 Vue2、Vue3 全家桶,熟悉 ElementPlus、NaiveUI熟悉 Vue 原理</li>
<li>熟悉 React 技术栈,熟悉 Hooks 语法,熟悉 AntDesign熟悉 React 原理</li>
<li>熟悉微信小程序开发,熟悉 Taro 框架的使用</li>
<li>熟悉 Webpack、Vite 常见配置,以及性能优化配置</li>
<li>熟悉 Node具备后端开发能力SpringBoot、Egg、Koa2、Midway 单体应用项目经验Nestjs 微服务应用项目经验</li>
<li>有 Monorepo 工程化经验,具备单体前后端分离应用 DevOps 能力</li>
<li>熟悉 three.js、了解 Vtk.js具备医疗 3D 前端、图形学相关的开发经验</li>
<li>掌握 Linux 基本命令,了解 Nginx、Docker 基本使用</li>
</ul>
<!-- edutcation -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M22 9L12 5L2 9l10 4l10-4v6"></path> <path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M6 10.6V16a6 3 0 0 0 12 0v-5.4"></path> <path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g> </g>
</svg> </svg>
</span> </label>TAVR手术辅助决策系统 Tavigator™
<h4>Educational</h4> </p>
</li> <div class="desc">系统实现了对CT影像主动脉根部解剖结构的全自动化、全流程手术规划测量为瓣膜选型、术中并发症风险预测</div>
<li class="item"> <ul class="list">
<p class="name">南京信息工程大学滨江学院 / 本科</p> <li>基于容器,解决算法输出 stl 模型增加血管壁厚等后处理需求</li>
<div class="period">2012-2016</div>
<li>在 OHIF 基础上重新规划项目结构工程化相关优化构建速度提升8倍</li>
<li>对 orthanc 配置进行了优化,使用 postgreSQL 存储影像数据</li>
<li>实践了 threejs 替换了 vtk.js 的默认三维渲染引擎,节省了某些场景下 Vtk.js占用内存过大的问题</li>
<li>使用了 chrome的 snapshot、调用栈优化页面内存 3GB+,使用 Indexdb 与 Webworker 对 Dicom 读片速度优化了3倍以上</li>
<li>使用 webworker、请求队列实现了在 http1.1 环境下,提升用户上传 Dicom影像 74% 上传效率。同时针对不同大小、类型的文件,设计了不同的 Hash 切片方案,提升了文件完整性验证速度提升</li>
<li>使用了 Http3 和 nginx-quic使用 Brotli 替换 gzip实现了静载资源传输速度提升 17% - 25%</li>
</li> </ul>
</ul> </li>
<!-- experience -->
<ul> <li class="item">
<li class="title"> <p class="name">
<span class="girdle-box"> <label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M8 9l5 5v7H8v-4m0 4H3v-7l5-5m1 1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v17h-8"></path> <path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M13 7v.01"></path> <path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M17 7v.01"></path> <path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M17 11v.01"></path> <path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
<path d="M17 15v.01"></path>
</g> </g>
</svg> </svg>
</span> </label>Bolt 组件库、文档设计系统
<h4>Work Experience</h4> </p>
</li> <div class="desc">前端基建Bolt 用于构建快速组件库、文档。你可以在开发react组件库的同时, 无缝地编写组件文档, 实时热更新</div>
<ul class="list">
<li class="item">
<p class="name">拓微摹心数据科技(南京)有限公司 · 全栈</p> <li>React 组件的 Props 解析,自动生成组件的 API 表格</li>
<div class="period">2021.09 ~ 至今</div>
</li> <li>组件的开发阶段,实施更新,所见即所得</li>
<li class="item"> <li>依赖 vite 插件机制200+ 以上组件,开发阶段秒级热更新</li>
<p class="name">南京寻鹿网络科技有限公司 · 前端</p>
<div class="period">2016.09 ~ 2019.06</div> <li>智能生成组件说明文档,构建产物分离组件库、文档静态站,支持全局、局部引入</li>
</li>
</ul>
</ul> </li>
<!-- Project experience -->
<ul class="project"> <li class="item">
<li class="title"> <p class="name">
<span class="girdle-box"> <label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M7 8l-4 4l4 4"></path> <path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M17 8l4 4l-4 4"></path> <path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M14 4l-4 16"></path> <path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g> </g>
</svg> </svg>
</span> </label>瓣侣 - 微信小程序
<h4>Project</h4> </p>
</li> <div class="desc">一款支持医生、病人查看算法分割后数字孪生心脏模型的小程序</div>
<ul class="list">
<li class="item">
<p class="name">
<label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label>CVPilot算法、标注数据中台
</p>
<div class="desc">具备高精度数据标注、强大的数据管理、算法集成、多级用户权限、标注流程协作、算法模型版本、训练测试、API接口和数据可视化等功能全面支持公司内部医疗影像分析和诊断</div>
<ul class="list">
<li>使用 Pnpm workspace 实现 Monorepo 多个代码仓库管理,支持多个框架并存,可共享公共组件库和能力</li>
<li>自行使用 rollup 沉淀了部分可复用基础模块UI 组件库、对象存储、邮件、短信、企业微信机器人通知</li>
<li>使用 Nest.js 开发,基于事件驱动架构,重构后端服务体系</li>
<li>基于 rbac 设计了认证中心,解决业务应用中用户统一授权、鉴权的问题</li>
<li>使用 orthanc 搭建 Pacs 影像、并且基于标注、业务流程设计了影像上层的标签系统</li>
<li>使用 pdf.js 实现 3Mensio、FluoroCT 医疗报告关键字段的自动解析Cover了 80%+ 的字段</li>
<li>设计了前后端一体开发的领域驱动设计DDD项目架构并成功实践</li>
</ul>
</li>
<li class="item">
<p class="name">
<label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label>TAVR手术辅助决策系统 Tavigator™
</p>
<div class="desc">系统实现了对CT影像主动脉根部解剖结构的全自动化、全流程手术规划测量为瓣膜选型、术中并发症风险预测</div>
<ul class="list">
<li>基于容器,解决算法输出 stl 模型增加血管壁厚等后处理需求</li>
<li>在 OHIF 基础上重新规划项目结构工程化相关优化构建速度提升8倍</li>
<li>对 orthanc 配置进行了优化,使用 postgreSQL 存储影像数据</li>
<li>实践了 threejs 替换了 vtk.js 的默认三维渲染引擎,节省了某些场景下 Vtk.js占用内存过大的问题</li>
<li>使用了 chrome的 snapshot、调用栈优化页面内存 3GB+,使用 Indexdb 与 Webworker 对 Dicom 读片速度优化了3倍以上</li>
<li>使用 webworker、请求队列实现了在 http1.1 环境下,提升用户上传 Dicom影像 74% 上传效率。同时针对不同大小、类型的文件,设计了不同的 Hash 切片方案,提升了文件完整性验证速度提升</li>
<li>使用了 Http3 和 nginx-quic使用 Brotli 替换 gzip实现了静载资源传输速度提升 17% - 25%</li>
</ul>
</li>
<li class="item">
<p class="name">
<label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label>Bolt 组件库、文档设计系统
</p>
<div class="desc">前端基建Bolt 用于构建快速组件库、文档。你可以在开发react组件库的同时, 无缝地编写组件文档, 实时热更新</div>
<ul class="list">
<li>React 组件的 Props 解析,自动生成组件的 API 表格</li>
<li>组件的开发阶段,实施更新,所见即所得</li>
<li>依赖 vite 插件机制200+ 以上组件,开发阶段秒级热更新</li>
<li>智能生成组件说明文档,构建产物分离组件库、文档静态站,支持全局、局部引入</li>
</ul>
</li>
<li class="item">
<p class="name">
<label class="tip left" data-tip="Project Name"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label>瓣侣 - 微信小程序
</p>
<div class="desc">一款支持医生、病人查看算法分割后数字孪生心脏模型的小程序</div>
<ul class="list">
<li>使用 taro 对小程序端实现3d模型展示进行了技术选型移植了STLloader 到 three-platformize 中,解决了 stl 模型加载的问题</li>
<li>解决小程序内存占用过大,导致部分机型崩溃的问题</li>
<li>使用包围盒对多个分割模型组合及位置修正、空间测量计算,实现瓣环样条绘制、空间拾取高亮等功能</li>
</ul>
</li>
</ul>
<h2 class="portfolio-title"><span>Portfolio</span></h2>
<!-- portfolio -->
<div class="portfolio">
<div class="magic-cards">
<a target="_blank" rel="noopener" href="https://www.tavi.fit" class="card"> <li>使用 taro 对小程序端实现3d模型展示进行了技术选型移植了STLloader 到 three-platformize 中,解决了 stl 模型加载的问题</li>
<div class="card-content">
<div class="card-image"> <li>解决小程序内存占用过大,导致部分机型崩溃的问题</li>
<h2><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><path d="M21 10h-4V6h-2v4h-4v2h4v4h2v-4h4v-2z" fill="currentColor"></path><path d="M28 10h-2V4a2.002 2.002 0 0 0-2-2H8a2.002 2.002 0 0 0-2 2v6H4a2.002 2.002 0 0 0-2 2v18h28V12a2.002 2.002 0 0 0-2-2zM14 28v-6h4v6zm6 0v-7a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v7H4V12h4V4h16v8h4v16z" fill="currentColor"></path></svg></h2>
</div> <li>使用包围盒对多个分割模型组合及位置修正、空间测量计算,实现瓣环样条绘制、空间拾取高亮等功能</li>
<div class="card-info-wrapper">
<div class="card-info">
<div class="card-info-title"> </ul>
<h3 class="ellipsis">CVPilot (原Tavigator)</h3> </li>
<h4 class="ellipsis">TAVR手术辅助决策系统</h4>
</div>
</ul>
<h2 class="portfolio-title"><span>Portfolio</span></h2>
<!-- portfolio -->
<div class="portfolio">
<div class="magic-cards">
<a target="_blank" rel="noopener" href="https://www.tavi.fit" class="card">
<div class="card-content">
<div class="card-image">
<h2><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><path d="M21 10h-4V6h-2v4h-4v2h4v4h2v-4h4v-2z" fill="currentColor"></path><path d="M28 10h-2V4a2.002 2.002 0 0 0-2-2H8a2.002 2.002 0 0 0-2 2v6H4a2.002 2.002 0 0 0-2 2v18h28V12a2.002 2.002 0 0 0-2-2zM14 28v-6h4v6zm6 0v-7a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v7H4V12h4V4h16v8h4v16z" fill="currentColor"></path></svg></h2>
</div>
<div class="card-info-wrapper">
<div class="card-info">
<div class="card-info-title">
<h3 class="ellipsis">CVPilot (原Tavigator)</h3>
<h4 class="ellipsis">TAVR手术辅助决策系统</h4>
</div> </div>
</div> </div>
</div> </div>
</a> </div>
</a>
<a target="_blank" rel="noopener" href="https://amo.mozzie.cn/" class="card">
<div class="card-content"> <a target="_blank" rel="noopener" href="https://amo.mozzie.cn/" class="card">
<div class="card-image"> <div class="card-content">
<h2><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6.357 9C3.72 9.68 2 10.845 2 12.175C2 14.282 6.405 16 11.85 16c.74 0 1.26-.039 1.95-.097"></path><path d="M9.837 15.9c-.413-.596-.806-1.133-1.18-1.8c-2.751-4.9-3.488-9.77-1.63-10.873c1.15-.697 3.047.253 4.974 2.254"></path><path d="M6.429 15.387c-.702 2.688-.56 4.716.56 5.395c1.783 1.08 5.387-1.958 8.043-6.804c.36-.67.683-1.329.968-1.978"></path><path d="M12 18.52c1.928 2 3.817 2.95 4.978 2.253c1.85-1.102 1.121-5.972-1.633-10.873c-.384-.677-.777-1.204-1.18-1.8"></path><path d="M17.66 15c2.612-.687 4.34-1.85 4.34-3.176C22 9.714 17.592 8 12.155 8c-.747 0-1.266.029-1.955.087"></path><path d="M8 12c.285-.66.607-1.308.968-1.978c2.647-4.844 6.253-7.89 8.046-6.801c1.11.679 1.262 2.706.56 5.393"></path><path d="M12.26 12.015h-.01c-.01.13-.12.24-.26.24a.263.263 0 0 1-.25-.26c0-.14.11-.25.24-.25h-.01c.13-.01.25.11.25.24"></path></g></svg></h2> <div class="card-image">
</div> <h2><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6.357 9C3.72 9.68 2 10.845 2 12.175C2 14.282 6.405 16 11.85 16c.74 0 1.26-.039 1.95-.097"></path><path d="M9.837 15.9c-.413-.596-.806-1.133-1.18-1.8c-2.751-4.9-3.488-9.77-1.63-10.873c1.15-.697 3.047.253 4.974 2.254"></path><path d="M6.429 15.387c-.702 2.688-.56 4.716.56 5.395c1.783 1.08 5.387-1.958 8.043-6.804c.36-.67.683-1.329.968-1.978"></path><path d="M12 18.52c1.928 2 3.817 2.95 4.978 2.253c1.85-1.102 1.121-5.972-1.633-10.873c-.384-.677-.777-1.204-1.18-1.8"></path><path d="M17.66 15c2.612-.687 4.34-1.85 4.34-3.176C22 9.714 17.592 8 12.155 8c-.747 0-1.266.029-1.955.087"></path><path d="M8 12c.285-.66.607-1.308.968-1.978c2.647-4.844 6.253-7.89 8.046-6.801c1.11.679 1.262 2.706.56 5.393"></path><path d="M12.26 12.015h-.01c-.01.13-.12.24-.26.24a.263.263 0 0 1-.25-.26c0-.14.11-.25.24-.25h-.01c.13-.01.25.11.25.24"></path></g></svg></h2>
<div class="card-info-wrapper"> </div>
<div class="card-info"> <div class="card-info-wrapper">
<div class="card-info-title"> <div class="card-info">
<h3 class="ellipsis">Bolt Design</h3> <div class="card-info-title">
<h4 class="ellipsis">基于 Vite 开发的 React 组件、文档一体化系统</h4> <h3 class="ellipsis">Bolt Design</h3>
</div> <h4 class="ellipsis">基于 Vite 开发的 React 组件、文档一体化系统</h4>
</div> </div>
</div> </div>
</div> </div>
</a> </div>
</a>
<a target="_blank" rel="noopener" href="https://github.com/17px/hexo-theme-cosy" class="card">
<div class="card-content"> <a target="_blank" rel="noopener" href="https://github.com/17px/hexo-theme-cosy" class="card">
<div class="card-image"> <div class="card-content">
<h2><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></h2> <div class="card-image">
</div> <h2><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"><path d="M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></h2>
<div class="card-info-wrapper"> </div>
<div class="card-info"> <div class="card-info-wrapper">
<div class="card-info-title"> <div class="card-info">
<h3 class="ellipsis">hexo-theme-cosy</h3> <div class="card-info-title">
<h4 class="ellipsis">Minimalist, pursuing the ultimate loading speed for a Hexo theme</h4> <h3 class="ellipsis">hexo-theme-cosy</h3>
</div> <h4 class="ellipsis">Minimalist, pursuing the ultimate loading speed for a Hexo theme</h4>
</div> </div>
</div> </div>
</div> </div>
</a> </div>
</a>
</div>
</div> </div>
</main> </div>
</div> </main>
</div> </div>

View File

@ -18,7 +18,7 @@
<link rel="stylesheet" href="/css/26c34ce6.css"> <link rel="stylesheet" href="/css/4d4ea9c6.css">
<meta name="generator" content="Hexo 6.3.0"></head> <meta name="generator" content="Hexo 6.3.0"></head>

View File

@ -1,4 +1,4 @@
<%- css("/css/3fa188f4.css")%> <%- css("/css/0e7433f2.css")%>
<% layout='layout' %> <% layout='layout' %>

View File

@ -19,7 +19,7 @@
<% } %> <% } %>
<% } %> <% } %>
<%- css("/css/26c34ce6.css")%> <%- css("/css/4d4ea9c6.css")%>
</head> </head>
<body id="app"> <body id="app">

View File

@ -1,216 +1,214 @@
<%- css("/css/f1709cba.css")%> <%- css("/css/dba23209.css")%>
<div class="resume"> <div class="resume scrollbar-obtrusive">
<div class="container"> <aside>
<aside> <div class="base">
<div class="base"> <figure>
<figure> <img src="<%- page.avatar %>" />
<img src="<%- page.avatar %>" /> </figure>
</figure> <h3><%- page.name %></h3>
<h3><%- page.name %></h3> <div class="badge">
<div class="badge"> <span><%- page.role %></span>
<span><%- page.role %></span> </div>
</div> <div class="seperation"></div>
<div class="seperation"></div> <ul>
<ul> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="5" width="18" height="14" rx="2"></rect>
<rect x="3" y="5" width="18" height="14" rx="2"></rect> <path d="M3 7l9 6l9-6"></path>
<path d="M3 7l9 6l9-6"></path> </g>
</g> </svg>
</svg> </span>
</span> <div>
<div> <p>email</p>
<p>email</p> <h4><%- page.email %></h4>
<h4><%- page.email %></h4> </div>
</div> </li>
</li> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg>
</svg> </span>
</span> <div>
<div> <p>phone</p>
<p>phone</p> <h4><%- page.phone %></h4>
<h4><%- page.phone %></h4> </div>
</div> </li>
</li> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="5" width="16" height="16" rx="2"></rect>
<rect x="4" y="5" width="16" height="16" rx="2"></rect> <path d="M16 3v4"></path>
<path d="M16 3v4"></path> <path d="M8 3v4"></path>
<path d="M8 3v4"></path> <path d="M4 11h16"></path>
<path d="M4 11h16"></path> <path d="M11 15h1"></path>
<path d="M11 15h1"></path> <path d="M12 15v3"></path>
<path d="M12 15v3"></path> </g>
</g> </svg>
</svg> </span>
</span> <div>
<div> <p>BIRTHDAY</p>
<p>BIRTHDAY</p> <h4><%- page.birth %></h4>
<h4><%- page.birth %></h4> </div>
</div> </li>
</li> <li>
<li> <span class="icon girdle-box">
<span class="icon girdle-box"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M21 3l-6.5 18a.55.55 0 0 1-1 0L10 14l-7-3.5a.55.55 0 0 1 0-1L21 3" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M21 3l-6.5 18a.55.55 0 0 1-1 0L10 14l-7-3.5a.55.55 0 0 1 0-1L21 3" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg>
</svg> </span>
</span> <div>
<div> <p>LOCATION</p>
<p>LOCATION</p> <h4><%- page.location %></h4>
<h4><%- page.location %></h4> </div>
</div> </li>
</li> </ul>
<div class="social">
<% if (page.social) { %>
<% page.social.forEach(function(item) { %>
<a href="<%= item.link %>" class="tip" data-tip="<%= item.name %>">
<%- item.icon %>
</a>
<% }) %>
<% } %>
</div>
</div>
</aside>
<main>
<h2><span><%- __('text-resume') %></span></h2>
<!-- introduction -->
<div class="about-me">
<% if (page.about) { %>
<% page.about.forEach(function(text) { %>
<p><%- text %></p>
<% }) %>
<% } %>
</div>
<h4><%- __('text-skill') %></h4>
<ul class="skill">
<% if (page.skill) { %>
<% page.skill.forEach(function(text) { %>
<li><%- text %></li>
<% }) %>
<% } %>
</ul>
<!-- edutcation -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M22 9L12 5L2 9l10 4l10-4v6"></path>
<path d="M6 10.6V16a6 3 0 0 0 12 0v-5.4"></path>
</g>
</svg>
</span>
<h4><%- __('text-education') %></h4>
</li>
<li class="item">
<% if (page.education) { %>
<% page.education.forEach(function(item) { %>
<p class="name"><%- item.school %></p>
<div class="period"><%- item.time %></div>
<% }) %>
<% } %>
</li>
</ul>
<!-- experience -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M8 9l5 5v7H8v-4m0 4H3v-7l5-5m1 1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v17h-8"></path>
<path d="M13 7v.01"></path>
<path d="M17 7v.01"></path>
<path d="M17 11v.01"></path>
<path d="M17 15v.01"></path>
</g>
</svg>
</span>
<h4><%- __('text-workExp') %></h4>
</li>
<% if (page.workExp) { %>
<% page.workExp.forEach(function(item) { %>
<li class="item">
<p class="name"><%- item.inc %></p>
<div class="period"><%- item.time %></div>
</li>
<% }) %>
<% } %>
</ul>
<!-- Project experience -->
<ul class="project">
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M7 8l-4 4l4 4"></path>
<path d="M17 8l4 4l-4 4"></path>
<path d="M14 4l-4 16"></path>
</g>
</svg>
</span>
<h4><%- __('text-project') %></h4>
</li>
<% if (page.projectExp) { %>
<% page.projectExp.forEach(function(item) { %>
<li class="item">
<p class="name">
<label class="tip left" data-tip="<%- __('text-project-name') %>"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label><%- item.name %>
</p>
<div class="desc"><%- item.desc %></div>
<ul class="list">
<% if (item.list) { %>
<% item.list.forEach(function(detail) { %>
<li><%- detail %></li>
<% }) %>
<% } %>
</ul> </ul>
<div class="social"> </li>
<% if (page.social) { %> <% }) %>
<% page.social.forEach(function(item) { %> <% } %>
<a href="<%= item.link %>" class="tip" data-tip="<%= item.name %>"> </ul>
<%- item.icon %> <h2 class="portfolio-title"><span><%- __('text-portfolio') %></span></h2>
</a> <!-- portfolio -->
<% }) %> <div class="portfolio">
<% } %> <div class="magic-cards">
</div> <% if (page.portfolio) { %>
</div> <% page.portfolio.forEach(function(item) { %>
</aside> <a href="<%= item.link %>" class="card">
<main class="scrollbar-obtrusive"> <div class="card-content">
<h2><span><%- __('text-resume') %></span></h2> <div class="card-image">
<!-- introduction --> <h2><%- item.iconSVG %></h2>
<div class="about-me"> </div>
<% if (page.about) { %> <div class="card-info-wrapper">
<% page.about.forEach(function(text) { %> <div class="card-info">
<p><%- text %></p> <div class="card-info-title">
<% }) %> <h3 class="ellipsis"><%= item.name %></h3>
<% } %> <h4 class="ellipsis"><%= item.desc %></h4>
</div>
<h4><%- __('text-skill') %></h4>
<ul class="skill">
<% if (page.skill) { %>
<% page.skill.forEach(function(text) { %>
<li><%- text %></li>
<% }) %>
<% } %>
</ul>
<!-- edutcation -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M22 9L12 5L2 9l10 4l10-4v6"></path>
<path d="M6 10.6V16a6 3 0 0 0 12 0v-5.4"></path>
</g>
</svg>
</span>
<h4><%- __('text-education') %></h4>
</li>
<li class="item">
<% if (page.education) { %>
<% page.education.forEach(function(item) { %>
<p class="name"><%- item.school %></p>
<div class="period"><%- item.time %></div>
<% }) %>
<% } %>
</li>
</ul>
<!-- experience -->
<ul>
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M8 9l5 5v7H8v-4m0 4H3v-7l5-5m1 1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v17h-8"></path>
<path d="M13 7v.01"></path>
<path d="M17 7v.01"></path>
<path d="M17 11v.01"></path>
<path d="M17 15v.01"></path>
</g>
</svg>
</span>
<h4><%- __('text-workExp') %></h4>
</li>
<% if (page.workExp) { %>
<% page.workExp.forEach(function(item) { %>
<li class="item">
<p class="name"><%- item.inc %></p>
<div class="period"><%- item.time %></div>
</li>
<% }) %>
<% } %>
</ul>
<!-- Project experience -->
<ul class="project">
<li class="title">
<span class="girdle-box">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M7 8l-4 4l4 4"></path>
<path d="M17 8l4 4l-4 4"></path>
<path d="M14 4l-4 16"></path>
</g>
</svg>
</span>
<h4><%- __('text-project') %></h4>
</li>
<% if (page.projectExp) { %>
<% page.projectExp.forEach(function(item) { %>
<li class="item">
<p class="name">
<label class="tip left" data-tip="<%- __('text-project-name') %>"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24">
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 15H5.5a2.5 2.5 0 1 1 0-5H6"></path>
<path d="M15 12v6.5a2.5 2.5 0 1 1-5 0V18"></path>
<path d="M12 9h6.5a2.5 2.5 0 1 1 0 5H18"></path>
<path d="M9 12V5.5a2.5 2.5 0 0 1 5 0V6"></path>
</g>
</svg>
</label><%- item.name %>
</p>
<div class="desc"><%- item.desc %></div>
<ul class="list">
<% if (item.list) { %>
<% item.list.forEach(function(detail) { %>
<li><%- detail %></li>
<% }) %>
<% } %>
</ul>
</li>
<% }) %>
<% } %>
</ul>
<h2 class="portfolio-title"><span><%- __('text-portfolio') %></span></h2>
<!-- portfolio -->
<div class="portfolio">
<div class="magic-cards">
<% if (page.portfolio) { %>
<% page.portfolio.forEach(function(item) { %>
<a href="<%= item.link %>" class="card">
<div class="card-content">
<div class="card-image">
<h2><%- item.iconSVG %></h2>
</div>
<div class="card-info-wrapper">
<div class="card-info">
<div class="card-info-title">
<h3 class="ellipsis"><%= item.name %></h3>
<h4 class="ellipsis"><%= item.desc %></h4>
</div>
</div> </div>
</div> </div>
</div> </div>
</a> </div>
<% }) %> </a>
<% } %> <% }) %>
</div> <% } %>
</div> </div>
</main> </div>
</div> </main>
</div> </div>
<%- js("/js/9f1cd854.js")%> <%- js("/js/9f1cd854.js")%>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long