Resume

{-# 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}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注