{-# LANGUAGE LambdaCase #-}
module Main where
import Control.Monad.Reader
import Data.List
import System.Environment
import TeX
basicInfo :: Resume
basicInfo = paragraph
[ pure "\\basicInfo{"
, pure $ "\\email{[email protected]}" ++ period
-- , cn $ "\\phone{(+86) 000-0000-0000}" ++ period
, pure $ "\\github[iriszero48]{https://github.com/iriszero48}" ++ period
, pure $ "\\homepage[iriszero.top]{https://iriszero.top}"
, pure "}"
] where period = "\\textperiodcentered\\"
education :: Resume
education = section "教育经历" "Education"
[ datedSection (date "2017" "09" ~~ date "2021" "06") $ paragraph
[ en "\\textbf{Swan college of Central South University of Forestry and Technology}"
, cn "\\textbf{中南林业科技大学涉外学院}"
]
, en $ "Major: Computer Science and Technology (Undergraduate)"
, cn $ "专业:计算机科学与技术(本科)"
]
sourcebrella :: Resume
sourcebrella = paragraph
[ paragraph [ cn "\\textbf{国赛}" ]
, itemize
[ cn "\\item 2018年7月,第十一届全国大学生信息安全竞赛创新能力实践赛全国三等奖;"
, cn "\\item 2019年5月,第十届蓝桥杯全国软件和信息技术专业人才大赛全国总决赛Java软件开发大学B组优秀奖;"
, cn "\\item 2019年6月,第十二届全国大学生信息安全竞赛创新实践能力赛华中赛区二等奖;"
]
, paragraph [ cn "\\textbf{省赛}" ]
, itemize
[ cn "\\item 2018年4月,第九届蓝桥杯全国软件和信息技术专业人才大赛湖南赛区Java软件开发大学B组三等奖;"
, cn "\\item 2018年12月,湖南省第二届网络安全技能竞赛三等奖;"
, cn "\\item 2019年3月,第十届蓝桥杯全国软件和信息技术专业人才大赛湖南赛区Java软件开发大学B组一等奖;"
, cn "\\item 2019年6月,湖南省首届高校白帽子邀请赛二等奖;"
, cn "\\item 2019年12月,湖南省第三届CRH杂交水稻杯机器人创客大赛一等奖。"
]
, paragraph [ cn "\\textbf{校赛}" ]
, itemize
[ cn "\\item 2018年7月,中南林业科技大学涉外学院第一届大学生信息安全竞赛二等奖;"
, cn "\\item 2018年10月,中南林业科技大学涉外学院第一届程序设计大赛三等奖;"
, cn "\\item 2018年12月,中南林业科技大学涉外学院第二届程序设计大赛三等奖;"
, cn "\\item 2019年6月,中南林业科技大学涉外学院第三届程序设计大赛二等奖;"
, cn "\\item 2019年6月,中南林业科技大学涉外学院第二届大学生信息安全竞赛 二等奖;"
, cn "\\item 2019年12月,中南林业科技大学涉外学院第四届程序设计大赛二等奖;"
]
, paragraph [ cn "\\textbf{其他}" ]
, itemize
[ cn "\\item 2019年11月,第二届湖湘杯网络安全技能大赛“逆向”出题人"
]
]
httpAutoIndexServer :: Resume
httpAutoIndexServer = paragraph
[ github "iriszero48/HttpAutoIndexServer" `datedSection` bold "Http Auto Index Server"
, cn "Windows/Linux C++ 多线程 自动索引文件HTTP服务器"
, en "Auto Index HTTP Server"
, itemize
[ cn "\\item V1.x 使用C++11"
, en "\\item V1.x uses C++11"
, cn "\\item V2.x 使用C++17,EPOLL/IOCP"
, en "\\item V2.x uses C++17, EPOLL/IOCP"
, cn "\\item 使用vs/cmake管理工程"
, en "\\item Uses vs/cmake"
]
]
conwaysGameOfLife :: Resume
conwaysGameOfLife = paragraph
[ github "iriszero48/Conway-s-Game-of-Life" `datedSection` bold "Conway's Game of Life"
, cn $ "C++ WindowsGDI 康威生命游戏"
, en $ "C++ WindowsGDI Conway's Game of Life"
]
devTools :: Resume
devTools = paragraph
[ itemTeX "开发工具" "Development Tool"
, cn $ "常用" ++ intercalate "、 " tools
] where
tools = ["Visual Studio", "JetBrains", "GitHub", "nano", "vim", "Sublime text"]
skills :: Resume
skills = section "技能" "Skills" . pure $ itemize
[ itemTeX "编程语言" "Program Language"
, cn "能快速学习一门新语言,"
, cn $ "熟悉 " ++ lang
, en "\\textbf{multilingual},"
, en $ "experienced in " ++ lang
, itemTeX "并发网络模型" "Network Model"
, cn $ "能用C++使用常用的网络模型 " ++ modle
, itemTeX "操作系统" "Operating System"
, cn $ "熟悉 " ++ system ++ ",有编译安装amd64/armhf的Linux经验"
, devTools
] where
lang = "C\\# C C++ F\\# Java HTML CSS JavaScript Python Bash"
modle = "EPOLL IOCP Select ASIO"
system = "Windows Ubuntu Debian Kali Gentoo"
resume :: Resume
resume = paragraph
[ pure "% !TEX program = xelatex"
, pure "% This file is generated, don't manually edit!"
-- head
, paragraph
[ pure "\\documentclass{resume}"
, cn "\\usepackage{lastpage}"
, cn "\\usepackage{fancyhdr}"
-- disable extra space before next section
, pure "\\usepackage{linespacing_fix}"
, cn "\\usepackage[fallback]{xeCJK}"
]
-- \setmainfont[]{SimSun}
-- \setCJKfallbackfamilyfont{rm}{HAN NOM B}
-- \setCJKmainfont{Source Han Serif SC Regular}
-- \renewcommand{\thepage}{\Chinese{page}}
-- begin document
, pure "\\begin{document}"
, cn "\\renewcommand\\headrulewidth{0pt}"
-- dare?
, tex "name" "废物" "garbage"
, basicInfo
, education
, section "个人经历" "Personal Experience"
[ sourcebrella
]
, section "个人项目" "Personal Projects"
[ noSimple $ httpAutoIndexServer
, noSimple $ conwaysGameOfLife
]
, skills
, section "其他" "Miscellaneous"
[ itemize
[ cn "\\item 喜欢音乐,常用FL Studio编曲"
, cn "\\item 常用CINEMA 4D建模"
, cn "\\item 常用FFmpeg、 Adobe、 Vapour Synth处理媒体"
, cn "\\item 喜欢设计、 制作电路"
]
]
-- end document
, pure "\\end{document}"
]
main :: IO ()
main = getArgs >>= \case
["cn"] -> f Chinese
["en"] -> f English
["elab"] -> f Elaborated
_ -> putStrLn $ unlines
[ "Usage: <program> MODE"
, "MODE can be cn, en or elab"
]
where f = putStrLn . runReader resume
% !TEX program = xelatex
% This file is generated, don't manually edit!
\documentclass{resume}
\usepackage{lastpage}
\usepackage{fancyhdr}
\usepackage{linespacing_fix}
\usepackage[fallback]{xeCJK}
\begin{document}
\renewcommand\headrulewidth{0pt}
\name{废物}
\basicInfo{
\email{[email protected]}\textperiodcentered\
\github[iriszero48]{https://github.com/iriszero48}\textperiodcentered\
\homepage[iriszero.top]{https://iriszero.top}
}
\section{教育经历}
\datedsubsection{\textbf{中南林业科技大学涉外学院}}{2017.09 -- 2021.06}
专业:计算机科学与技术(本科)
\section{个人经历}
\textbf{国赛}
\begin{itemize}[parsep=0.25ex]
\item 2018年7月,第十一届全国大学生信息安全竞赛创新能力实践赛全国三等奖;
\item 2019年5月,第十届蓝桥杯全国软件和信息技术专业人才大赛全国总决赛Java软件开发大学B组优秀奖;
\item 2019年6月,第十二届全国大学生信息安全竞赛创新实践能力赛华中赛区二等奖;
\end{itemize}
\textbf{省赛}
\begin{itemize}[parsep=0.25ex]
\item 2018年4月,第九届蓝桥杯全国软件和信息技术专业人才大赛湖南赛区Java软件开发大学B组三等奖;
\item 2018年12月,湖南省第二届网络安全技能竞赛三等奖;
\item 2019年3月,第十届蓝桥杯全国软件和信息技术专业人才大赛湖南赛区Java软件开发大学B组一等奖;
\item 2019年6月,湖南省首届高校白帽子邀请赛二等奖;
\item 2019年12月,湖南省第三届CRH杂交水稻杯机器人创客大赛一等奖。
\end{itemize}
\textbf{校赛}
\begin{itemize}[parsep=0.25ex]
\item 2018年7月,中南林业科技大学涉外学院第一届大学生信息安全竞赛二等奖;
\item 2018年10月,中南林业科技大学涉外学院第一届程序设计大赛三等奖;
\item 2018年12月,中南林业科技大学涉外学院第二届程序设计大赛三等奖;
\item 2019年6月,中南林业科技大学涉外学院第三届程序设计大赛二等奖;
\item 2019年6月,中南林业科技大学涉外学院第二届大学生信息安全竞赛 二等奖;
\item 2019年12月,中南林业科技大学涉外学院第四届程序设计大赛二等奖;
\end{itemize}
\textbf{其他}
\begin{itemize}[parsep=0.25ex]
\item 2019年11月,第二届湖湘杯网络安全技能大赛“逆向”出题人
\end{itemize}
\section{个人项目}
\datedsubsection{\textbf{Http Auto Index Server}}{\url{https://github.com/iriszero48/HttpAutoIndexServer}}
Windows/Linux C++ 多线程 自动索引文件HTTP服务器
\begin{itemize}[parsep=0.25ex]
\item V1.x 使用C++11
\item V2.x 使用C++17,EPOLL/IOCP
\item 使用vs/cmake管理工程
\end{itemize}
\datedsubsection{\textbf{Conway's Game of Life}}{\url{https://github.com/iriszero48/Conway-s-Game-of-Life}}
C++ WindowsGDI 康威生命游戏
\section{技能}
\begin{itemize}[parsep=0.25ex]
\item
\textbf{编程语言}:
能快速学习一门新语言,
熟悉 C\# C C++ F\# Java HTML CSS JavaScript Python Bash
\item
\textbf{并发网络模型}:
能用C++使用常用的网络模型 EPOLL IOCP Select ASIO
\item
\textbf{操作系统}:
熟悉 Windows Ubuntu Debian Kali Gentoo,有编译安装amd64/armhf的Linux经验
\item
\textbf{开发工具}:
常用Visual Studio、 JetBrains、 GitHub、 nano、 vim、 Sublime text
\end{itemize}
\section{其他}
\begin{itemize}[parsep=0.25ex]
\item 喜欢音乐,常用FL Studio编曲
\item 常用CINEMA 4D建模
\item 常用FFmpeg、 Adobe、 Vapour Synth处理媒体
\item 喜欢设计、 制作电路
\end{itemize}
\end{document}