- 新增 soe/index.html、soe/resume.css(复制主简历及其样式,样式独立维护) - nginx.conf 注册 /soe/ 路由 - Dockerfile 增加 COPY soe/ Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@ COPY img/ /usr/share/nginx/html/img/
|
||||
COPY resume/ /usr/share/nginx/html/resume/
|
||||
COPY resume.txt /usr/share/nginx/html/resume.txt
|
||||
COPY other/ /usr/share/nginx/html/other/
|
||||
COPY soe/ /usr/share/nginx/html/soe/
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 80
|
||||
|
||||
@@ -20,6 +20,12 @@ server {
|
||||
try_files $uri $uri/ /resume/index.html;
|
||||
}
|
||||
|
||||
# 央国企简历
|
||||
location /soe/ {
|
||||
alias /usr/share/nginx/html/soe/;
|
||||
try_files $uri $uri/ /soe/index.html;
|
||||
}
|
||||
|
||||
# 其他简历导航页
|
||||
location /other/ {
|
||||
alias /usr/share/nginx/html/other/;
|
||||
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>何朝晖 - 简历</title>
|
||||
<link rel="stylesheet" href="resume.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="page">
|
||||
<!-- Header -->
|
||||
<div class="header">
|
||||
<div class="name">何朝晖</div>
|
||||
<div class="contact-info">
|
||||
<div class="contact-line">
|
||||
<div class="contact-item">
|
||||
<svg class="svg-icon" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
|
||||
15671623703
|
||||
</div>
|
||||
<div class="contact-item">
|
||||
<svg class="svg-icon" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
|
||||
hezhaohui0807@163.com
|
||||
</div>
|
||||
<div class="contact-item">
|
||||
<svg class="svg-icon" viewBox="0 0 24 24"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"/></svg>
|
||||
<span style="color: #4478DF;">①</span> 全栈开发 <span style="color: #4478DF; margin-left: 8px;">②</span> 后端开发 <span style="color: #4478DF; margin-left: 8px;">③</span> 基础架构开发
|
||||
</div>
|
||||
<div class="contact-item">
|
||||
<svg class="svg-icon" viewBox="0 0 24 24"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>
|
||||
<span class="proj-tag" style="margin-right: 4px;">Go</span>
|
||||
<span class="proj-tag" style="margin-right: 4px;">Java</span>
|
||||
<span class="proj-tag" style="margin-right: 4px;">Vue</span>
|
||||
<span class="proj-tag">React</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="website-line">
|
||||
线上简历:<a href="http://47.121.181.112:8080/resume" target="_blank" title="在线简历" style="color: #4478DF; text-decoration: none;">http://47.121.181.112:8080/resume</a>
|
||||
<span style="margin-left: 12px;">代码仓库:</span><a href="http://47.121.181.112:3000/wonder" target="_blank" title="代码仓库" style="color: #4478DF; text-decoration: none;">http://47.121.181.112:3000/wonder</a>
|
||||
<span style="margin-left: 12px;">CSDN:</span><a href="https://blog.csdn.net/cheer2333" target="_blank" title="CSDN博客" style="color: #4478DF; text-decoration: none;">链接</a>
|
||||
<span style="margin-left: 12px;">文档站:</span><a href="http://47.121.181.112:20000/" target="_blank" title="文档站" style="color: #4478DF; text-decoration: none;">链接</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 教育经历 -->
|
||||
<div class="section">
|
||||
<div class="section-title">教育经历</div>
|
||||
<div class="edu-header">
|
||||
<div>
|
||||
<span class="edu-school">武汉科技大学</span><span class="edu-badge">省部共建</span>
|
||||
<span class="edu-major">计算机科学与技术 【国家级一流专业 | ESI 0.495%】</span>
|
||||
<span class="edu-degree">本科</span>
|
||||
</div>
|
||||
<div class="edu-date">2023-09 ~ 2027-06</div>
|
||||
</div>
|
||||
<ul class="edu-items">
|
||||
<li>2026-03 ~ 2026-05 <img src="../img/kingsoft.svg" class="company-logo" alt="金山办公"> 金山办公 WPS 菁英工程师训练营</li>
|
||||
<li>2024-05 ~ 2026-05 <img src="../img/linghang.svg" class="company-logo" alt="领航工作室"> 武汉科技大学领航工作室</li>
|
||||
<li>2025-01 ~ 2025-03 <img src="../img/bytedance.svg" class="company-logo" alt="字节跳动"> 字节跳动 MarsCode 青训营</li>
|
||||
<li>2026-06 ~ 2026-07 <img src="../img/neusoft.svg" class="company-logo small" alt="东软集团"> 东软集团生产实习</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 荣誉奖项 -->
|
||||
<div class="section">
|
||||
<div class="section-title">荣誉奖项</div>
|
||||
<div class="honor-section">
|
||||
<div class="honor-left">
|
||||
<div class="honor-item">
|
||||
<div class="honor-content">
|
||||
<img src="../img/kingsoft.svg" class="company-logo" alt="金山办公">
|
||||
<span class="honor-name">"金山杯"华中地区高校第十八届程序设计邀请赛</span>
|
||||
<span class="honor-badge">三等奖</span>
|
||||
</div>
|
||||
<a href="http://47.121.181.112:40027/i/2026/05/28/6a17ca366d125.jpg" class="cert-link" target="_blank">证书</a>
|
||||
</div>
|
||||
<div class="honor-item">
|
||||
<div class="honor-content">
|
||||
<img src="../img/icpc.svg" class="company-logo icpc" alt="ICPC">
|
||||
<span class="honor-name">国际大学生程序设计竞赛(ICPC)湖北省赛</span>
|
||||
<span class="honor-badge">优秀奖</span>
|
||||
</div>
|
||||
<a href="http://47.121.181.112:40027/i/2026/05/28/6a17ca3666920.png" class="cert-link" target="_blank">证书</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="honor-right">
|
||||
<div class="honor-item">
|
||||
<div class="honor-content">
|
||||
<img src="../img/qiniu.svg" class="company-logo qiniu" alt="七牛云">
|
||||
<span class="honor-name">七牛云 XEngineer 开源实训项目</span>
|
||||
<span class="honor-badge">三等奖</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="honor-item">
|
||||
<div class="honor-content">
|
||||
<img src="../img/lark.svg" class="company-logo" alt="飞书" style="height: 20px;">
|
||||
<span class="honor-name">WaytoAGI 飞书全球黑客松(武汉站)</span>
|
||||
<span class="honor-badge">创意奖</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 实习经历 -->
|
||||
<div class="section">
|
||||
<div class="section-title">实习经历</div>
|
||||
<div class="exp-header">
|
||||
<div class="exp-company"><img src="../img/qiniu.svg" class="company-logo qiniu" alt="七牛云"> 七牛云 | 上海七牛信息技术有限公司</div>
|
||||
<span class="exp-position">产品研发部-基础架构部 全栈开发</span>
|
||||
<a href="http://47.121.181.112:40027/i/2026/08/06/6a745822150dd.jpg" class="cert-link" target="_blank">实习证明</a>
|
||||
<div class="exp-date">2026-07 ~ 2026-08</div>
|
||||
</div>
|
||||
<ul class="exp-items">
|
||||
<li>构建基础架构平台,完善服务注册链路,集成网络探测、数据源自动注册、监控指标采集与日志接入,实现基础服务可观测。</li>
|
||||
<li>构建多协议单点认证网关,从零实现 SAML 2.0 SP 加密断言解密 + OAuth2/OIDC Provider + JWT Claims 与 Redis 吊销。</li>
|
||||
<li>设计 PostgreSQL HA 集群方案,基于 Patroni+etcd+HAProxy+Keepalived 实现 VIP 漂移、读写分离与 pgBackRest 冗余。</li>
|
||||
<li>实现 Ansible MySQL 全生命周期自动化(11 个 Playbook),覆盖原子二进制安装、GTID 复制校验与 MHA 故障转移回调。</li>
|
||||
</ul>
|
||||
|
||||
<div class="exp-header" style="margin-top: 10px;">
|
||||
<div class="exp-company"><img src="../img/hust.svg" class="company-logo hust" alt="华中科技大学"> 国家网络安全人才与创新基地 | 武汉金银湖实验室</div>
|
||||
<span class="exp-position">平台技术部 后端开发</span>
|
||||
<a href="http://47.121.181.112:40027/i/2026/05/28/6a17cb367128b.jpg" class="cert-link" target="_blank">实习证明</a>
|
||||
<div class="exp-date">2025-11 ~ 2026-03</div>
|
||||
</div>
|
||||
<ul class="exp-items">
|
||||
<li>参与设计面向国家关键单位的网络安全 SaaS 平台,完善租户多维度隔离、用户混合权限模型、API 流式计费等模块。</li>
|
||||
<li>完善构建组件漏洞知识图谱,基于金银湖安全大模型及供应链上游信息,统一评估组件安全风险,接入态势感知安全中心。</li>
|
||||
<li>设计高性能 API 计费网关,支持按月固定/按调用量双模式,Redis HINCRBY 实时计数 + MongoDB 聚合账单,幂等写入。</li>
|
||||
<li>实现 Redis 滑动窗口分布式限流中间件,MULTI 事务保证原子性,Header 注入 X-RateLimit,Redis 异常时降级保障可用性。</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 项目经历 -->
|
||||
<div class="section">
|
||||
<div class="section-title">项目经历</div>
|
||||
<div class="proj-header">
|
||||
<div class="proj-title-line">
|
||||
<span class="proj-name">Gen2D 游戏素材生成工具</span>
|
||||
<span class="proj-role">全栈开发 【七牛云 XEngineer 开源项目 - 🥉三等奖】</span>
|
||||
</div>
|
||||
<div class="proj-date">2026-05 ~ 2026-06</div>
|
||||
</div>
|
||||
<div class="proj-link-line">
|
||||
<div class="proj-tags">
|
||||
<span class="proj-tag">Go(Gin)</span>
|
||||
<span class="proj-tag">Eino Agent Graph</span>
|
||||
<span class="proj-tag">GORM</span>
|
||||
<span class="proj-tag">OSS</span>
|
||||
<span class="proj-tag">React</span>
|
||||
<span class="proj-tag">Zustand</span>
|
||||
</div>
|
||||
<a href="https://gitee.com/hezhaohui123/gen2d" class="proj-link" target="_blank">https://gitee.com/hezhaohui123/gen2d</a>
|
||||
</div>
|
||||
<div class="proj-intro">
|
||||
<span class="proj-desc">AI 2D 游戏素材生成平台,用户输入文本提示词,自动生成风格一致的 Sprite、背景、UI 元素与动画帧流。
|
||||
<br>支持用户提供世界观文本、参考图片、标签映射以及反馈信息,输出具备一致性的可用素材。
|
||||
</span>
|
||||
</div>
|
||||
<div class="proj-work-title">主要工作:</div>
|
||||
<ol class="proj-work-items">
|
||||
<li>构建基于有向无环图的工作流,引入 critic 自省机制实现反馈增强,基于 ReAct 架构实现轮级思考,并支持 Agent 间通信。</li>
|
||||
<li>在分布式限流方案的选择上,对比计数器、漏桶、窗口等多种限流机制,选用 go-redis 实现分布式的令牌桶算法限流。</li>
|
||||
<li>为增强系统可观测性,基于 Gin 中间件以及自定义的任务协程池暴露指标,使用 Prometheus 收集,接入 Grafana 面板。</li>
|
||||
<li>在不同部署方案(单机与多机)部署上,支持基于 RabbitMQ 的共享任务队列,支持基于内存的自定义单机任务队列。</li>
|
||||
<li>对于用户偏好的多样性,支持基于渐进式披露的 skill 配置,用户反馈的动态注入,世界观文本 RAG 召回,实现上下文增强。</li>
|
||||
</ol>
|
||||
|
||||
<div class="proj-header" style="margin-top: 12px;">
|
||||
<div class="proj-title-line">
|
||||
<span class="proj-name">ThumbUP 高并发点赞系统</span>
|
||||
<span class="proj-role">后端开发 【哔哩哔哩技术团队《B站千亿级点赞系统服务架构设计》文章复现】</span>
|
||||
</div>
|
||||
<div class="proj-date">2025-10 ~ 2025-11</div>
|
||||
</div>
|
||||
<div class="proj-link-line">
|
||||
<div class="proj-tags">
|
||||
<span class="proj-tag">Spring Boot 3</span>
|
||||
<span class="proj-tag">Redis</span>
|
||||
<span class="proj-tag">Caffeine</span>
|
||||
<span class="proj-tag">HeavyKeeper</span>
|
||||
<span class="proj-tag">MyBatis-Plus</span>
|
||||
</div>
|
||||
<a href="http://47.121.181.112:3000/wonder/thumb-up" class="proj-link" target="_blank">http://47.121.181.112:3000/wonder/thumb-up</a>
|
||||
</div>
|
||||
<div class="proj-intro">
|
||||
<span class="proj-desc">中台化的高并发点赞系统,支撑多业务场景的点赞交互与数据查询。
|
||||
<br>应对亿级数据规模与万级QPS高并发流量,提供高可用、可扩展的基础服务。</span>
|
||||
</div>
|
||||
<div class="proj-work-title">主要工作:</div>
|
||||
<ol class="proj-work-items">
|
||||
<li>为避免缓存穿透,构建布隆过滤器与空值短缓存双重机制;为避免缓存击穿,将热点数据加互斥锁,确保单线程回源重建。</li>
|
||||
<li>基于 Caffeine + Redis 构建二级缓存,热点 Key 提升至本地缓存,避免冷数据污染,降低 Redis 访问压力。</li>
|
||||
<li>Lua 脚本保证点赞原子性,10 秒时间片分桶暂存增量,定时任务批量落库,补偿任务每日兜底,保障最终一致性。</li>
|
||||
<li>对比CMS算法,采用HeavyKeeper实现Top-K探测,利用指数衰减淘汰冷Key,解决高频更新准确率问题,适配流量变化。</li>
|
||||
<li>单机场景利用字符串常量池特性,以业务前缀+用户ID为锁对象;多机场景基于 Redis 实现分布式锁,保障多实例数据一致。</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<!-- 专业技能 -->
|
||||
<div class="section">
|
||||
<div class="section-title">专业技能</div>
|
||||
<ul class="skill-items">
|
||||
<li>熟悉 Go/Java 的常用数据结构、中间件、并发模型、垃圾回收机制。能够使用 pprof、JFR 等工具进行性能排查。</li>
|
||||
<li>熟悉分布式微服务架构,理解服务注册与发现、负载均衡、限流熔断、配置中心、幂等控制、分布式锁及分布式事务。</li>
|
||||
<li>熟悉数据库系统,理解MySQL事务隔离、B+树索引优化及 MVCC 机制,理解 Redis 混合持久化策略、集群、哨兵机制。</li>
|
||||
<li>熟悉缓存技术,理解多级缓存的设计,以及高并发场景下的缓存策略,如旁路缓存、读/写穿透、异步写回。</li>
|
||||
<li>熟悉消息队列,理解主流中间件选型、路由、持久化原理、事务、死信队列机制、推拉结合模式、集群化部署。</li>
|
||||
<li>熟悉多集群环境下的持续集成部署,理解 K8s 下的应用发布、弹性扩缩容、灰度发布、健康检查及可观测体系建设。</li>
|
||||
<li>探索 AI 前沿工程实践,理解 Context Engineer 与 Harness Engineer,理解智能体架构、权限治理、可插拔配置等。</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+406
@@ -0,0 +1,406 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Microsoft YaHei", Arial, sans-serif;
|
||||
background: #ffffff;
|
||||
color: #222222;
|
||||
line-height: 1.4;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.page {
|
||||
width: 794px;
|
||||
min-height: 1123px;
|
||||
margin: 0 auto;
|
||||
padding: 12px 22px;
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
.header {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 28px;
|
||||
font-weight: 800;
|
||||
color: #222222;
|
||||
margin-bottom: 3px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.contact-info {
|
||||
font-size: 12px;
|
||||
color: #222;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.contact-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18px;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.contact-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.position-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.website-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
/* Section */
|
||||
.section {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #4478DF;
|
||||
padding: 3px 10px;
|
||||
border-left: 3px solid #4478DF;
|
||||
background-color: #EEF3FF;
|
||||
margin-bottom: 4px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Education */
|
||||
.edu-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.edu-school {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.edu-badge {
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
color: #4478DF;
|
||||
border: 1px solid #4478DF;
|
||||
border-radius: 4px;
|
||||
padding: 1px 5px;
|
||||
margin-left: 6px;
|
||||
vertical-align: middle;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.edu-major {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.edu-degree {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.edu-date {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.edu-items {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 2px 20px;
|
||||
margin-left: 12px;
|
||||
font-size: 13px;
|
||||
color: #252525;
|
||||
line-height: 1.45;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.edu-items li {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* Honors */
|
||||
.honor-section {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.honor-left {
|
||||
width: 55%;
|
||||
border-right: 1px dashed #ccc;
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.honor-right {
|
||||
width: 45%;
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.honor-item {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 2px;
|
||||
font-size: 13px;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.honor-content {
|
||||
color: #222;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.honor-right .honor-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.honor-right .honor-name {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.honor-name {
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.honor-badge {
|
||||
display: inline-block;
|
||||
min-width: 52px;
|
||||
text-align: right;
|
||||
margin-left: 4px;
|
||||
font-size: 12px;
|
||||
color: #888;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cert-link {
|
||||
color: #4478DF;
|
||||
text-decoration: none;
|
||||
margin-left: 8px;
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.honor-item .cert-link {
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.honor-date {
|
||||
color: #888;
|
||||
white-space: nowrap;
|
||||
margin-left: 4px;
|
||||
min-width: 56px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* Experience */
|
||||
.exp-header {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.exp-company {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.exp-date {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
white-space: nowrap;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
.exp-position {
|
||||
font-size: 12px;
|
||||
color: #888;
|
||||
flex: 1;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.exp-items {
|
||||
margin-left: 12px;
|
||||
font-size: 13px;
|
||||
color: #252525;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.exp-items li {
|
||||
list-style-type: disc;
|
||||
margin-left: 6px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
/* Project */
|
||||
.proj-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.proj-title-line {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.proj-name {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.proj-role {
|
||||
font-size: 12px;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.proj-date {
|
||||
font-size: 13px;
|
||||
color: #888;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.proj-link-line {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 12px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.proj-tags {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.proj-tag {
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
color: #4478DF;
|
||||
border: 1px solid #4478DF;
|
||||
border-radius: 3px;
|
||||
padding: 0px 4px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.proj-link {
|
||||
color: #4478DF;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.proj-intro {
|
||||
font-size: 13px;
|
||||
color: #252525;
|
||||
line-height: 1.45;
|
||||
margin-bottom: 3px;
|
||||
border: 1px dashed #b0b0b0;
|
||||
border-radius: 4px;
|
||||
padding: 4px 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.proj-desc {
|
||||
color: #656464;
|
||||
display: block;
|
||||
text-indent: 24px;
|
||||
}
|
||||
|
||||
.proj-work-title {
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.proj-work-items {
|
||||
margin-left: 12px;
|
||||
font-size: 13px;
|
||||
color: #252525;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.proj-work-items li {
|
||||
list-style-type: decimal;
|
||||
margin-left: 12px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
/* Skills */
|
||||
.skill-items {
|
||||
margin-left: 12px;
|
||||
font-size: 13px;
|
||||
color: #252525;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.skill-items li {
|
||||
list-style-type: disc;
|
||||
margin-left: 6px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
/* SVG Icons */
|
||||
.svg-icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
fill: #4478DF;
|
||||
vertical-align: middle;
|
||||
margin-right: 5px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* Company Logo */
|
||||
.company-logo {
|
||||
height: 16px;
|
||||
vertical-align: middle;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.company-logo.small {
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.company-logo.icpc {
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.company-logo.hust {
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.company-logo.qiniu {
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
/* Print styles - force background colors to display */
|
||||
@media print {
|
||||
* {
|
||||
-webkit-print-color-adjust: exact !important;
|
||||
print-color-adjust: exact !important;
|
||||
color-adjust: exact !important;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user