@dytsou/resume-converter 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,273 @@
1
+ %-------------------------
2
+ % Author : Tsou, Dong-You
3
+ %-------------------------
4
+
5
+
6
+
7
+ %------------PACKAGES----------------
8
+ \documentclass[a4paper,10.5pt]{article}
9
+
10
+ \usepackage{verbatim} % reimplements the "verbatim" and "verbatim*" environments
11
+
12
+ \usepackage{titlesec} % provides an interface to sectioning commands i.e. custom elements
13
+
14
+ \usepackage{color} % provides both foreground and background color management
15
+
16
+ \usepackage{enumitem} % provides control over enumerate, itemize and description
17
+
18
+ \usepackage{fancyhdr} % provides extensive facilities for constructing headers, footers and also controlling their use
19
+
20
+ \usepackage{tabularx} % defines an environment tabularx, extension of "tabular" with an extra designator x, paragraph like column whose width automatically expands to fill the width of the environment
21
+
22
+ \usepackage{latexsym} % provides mathematical symbols
23
+
24
+ \usepackage{marvosym} % provides martin vogel's symbol font which contains various symbols
25
+
26
+ \usepackage[empty]{fullpage} % sets margins to one inch and removes headers, footers etc..
27
+
28
+ \usepackage[hidelinks]{hyperref} % removes color and shadow of hyperlinks
29
+
30
+ \usepackage{fontawesome5}
31
+
32
+ \usepackage[normalem]{ulem} % provides "\ul" (uline) command which will break at line breaks
33
+
34
+ \usepackage[english]{babel} % provides culturally determined typographical rules for wide range of languages
35
+ %-----------------------------------------
36
+
37
+ \input glyphtounicode % converts glyph names to unicode
38
+ \pdfgentounicode=1 % ensures pdfs generated are ats readable
39
+
40
+ %----------FONT OPTIONS-------------------
41
+ \usepackage[default]{sourcesanspro} % uses the font source sans pro
42
+ \urlstyle{same} % changes url font from default urlfont to font being used by the document
43
+ %-----------------------------------------
44
+
45
+
46
+ %----------MARGIN OPTIONS-----------------
47
+ \pagestyle{fancy} % set page style to one configured by fancyhdr
48
+ \fancyhf{} % clear all header and footer fields
49
+
50
+ \renewcommand{\headrulewidth}{0in} % sets thickness of linerule under header to zero
51
+ \renewcommand{\footrulewidth}{0in} % sets thickness of linerule over footer to zero
52
+
53
+ \setlength{\tabcolsep}{0in} % sets thickness of column separator in tables to zero
54
+
55
+ % origin of the document is one inch from the top and from and the left
56
+ % oddsidemargin and evensidemargin both refer to the left margin
57
+ % right margin is indirectly set using oddsidemargin
58
+ \addtolength{\oddsidemargin}{-0.7in}
59
+ \addtolength{\topmargin}{-0.5in}
60
+
61
+ \addtolength{\textwidth}{1in} % sets width of text area in the page to 1.3 inch
62
+ \addtolength{\textheight}{2in} % sets height of text area in the page to 0.5 inch
63
+
64
+ \raggedbottom{} % makes all pages the height of current page, no extra vertical space added
65
+ \raggedright{} % makes all pages the width of current page, no extra horizontal space added
66
+ %------------------------------------------
67
+
68
+
69
+ %--------SECTIONING COMMANDS---------
70
+ % \titleformat{<command>}
71
+ % [<shape>]{<format>}{<label>}{<sep>}
72
+ % {<before-code>}[<after-code>]
73
+
74
+ % command is the sectioning command to be redefined
75
+ % shape is the style of the font; scshape stands for small caps style
76
+ % format is the format to be applied to whole title- label and text; absent here
77
+ % label defines the label
78
+ % sep is the horizontal separation between label and title body
79
+ % before-code is the code to be executed before
80
+ % after-code is the code to be executed after
81
+
82
+ \titleformat{\section}
83
+ {\scshape\large}{}
84
+ {0em}{\color{blue}}[\color{black}\titlerule\vspace{-2pt}]
85
+ %-------------------------------------
86
+
87
+
88
+ %--------REDEFINITIONS----------------
89
+ % redefines the style of the bullet point
90
+ \renewcommand\labelitemii{$\vcenter{\hbox{\tiny$\bullet$}}$}
91
+
92
+ % redefines the underline depth to 1pt
93
+ \renewcommand{\ULdepth}{1pt}
94
+ %-------------------------------------
95
+
96
+
97
+ %--------CUSTOM COMMANDS--------------
98
+ %\vspace{} defines a vertical space of given size, modifying this in custom commands can help stretch or shrink resume to remove or add content
99
+
100
+ % resumeItem renders a bullet point
101
+ \newcommand{\resumeItem}[1]{
102
+ \item\small{#1}
103
+ }
104
+
105
+ % commands to start and end itemization of resumeItem, rightmargin set to 0.11in to avoid the overflow of resumetItem beyond whatever resumeItemHeading is being used
106
+ \newcommand{\resumeItemListStart}{\begin{itemize}[rightmargin=0.1in]}
107
+ \newcommand{\resumeItemListEnd}{\end{itemize}}
108
+
109
+ % resumeSectionType renders a bolded type to be used under a section, used as skill type here, middle element is used to keep ":"s in the same vertical line
110
+ \newcommand{\resumeSectionType}[3]{
111
+ \item\begin{tabular*}{0.95\textwidth}[t]{
112
+ p{0.23\linewidth}p{0.01\linewidth}p{0.74\linewidth}
113
+ }
114
+ \textbf{#1} & #2 & #3
115
+ \end{tabular*}\vspace{-3pt}
116
+ }
117
+
118
+ % resumeTrioHeading renders three elements in three columns with second element being italicized and first element bolded, can be used for projects with three elements
119
+ \newcommand{\resumeTrioHeading}[3]{%
120
+ \item\small{%
121
+ \makebox[\linewidth]{%
122
+ \makebox[0.33\linewidth][l]{\textbf{#1} }%
123
+ \makebox[0.34\linewidth][c]{\textit{#2} }%
124
+ \makebox[0.33\linewidth][r]{#3 }%
125
+ }%
126
+ }%
127
+ }
128
+
129
+
130
+ % resumeQuadHeading renders four elements in a two columns with the second row being italicized and first element of first row bolded, can be used for experience and projects with four elements
131
+ \newcommand{\resumeQuadHeading}[4]{
132
+ \item
133
+ \begin{tabular*}{0.96\textwidth}[t]{l@{\extracolsep{\fill}}r}
134
+ \textbf{#1} & #2 \\
135
+ \textit{\small#3} & \textit{\small #4} \\
136
+ \end{tabular*}
137
+ }
138
+
139
+ % resumeQuadHeadingDetails renders three elements in a two columns with the second row being italicized and first element of first row bolded, can be used for experience and projects.
140
+ \newcommand{\resumeQuadHeadingDetails}[3]{%
141
+ \item
142
+ \begin{tabular*}{0.96\textwidth}[t]{l@{\extracolsep{\fill}}r}
143
+ \textbf{#1} & #2 \\
144
+ \textit{\small #3} & \\
145
+ \end{tabular*}
146
+ }
147
+
148
+ % resumeQuadHeadingChild renders the second row of resumeQuadHeading, can be used for experience if different roles in the same company need to added
149
+ \newcommand{\resumeQuadHeadingChild}[2]{
150
+ \item
151
+ \begin{tabular*}{0.96\textwidth}[t]{l@{\extracolsep{\fill}}r}
152
+ \textbf{\small#1} & {\small#2} \\
153
+ \end{tabular*}
154
+ }
155
+
156
+ % commands to start and end itemization of resumeQuadHeading, lefmargin for left indent of 0.15in for resumeItems
157
+ \newcommand{\resumeHeadingListStart}{
158
+ \begin{itemize}[leftmargin=0.15in, label={}]
159
+ }
160
+ \newcommand{\resumeHeadingListEnd}{\end{itemize}}
161
+ %-------------------------------------------
162
+
163
+
164
+ %__________________RESUME____________________
165
+ % You can rearrange sections in any order you may prefer
166
+ \begin{document}
167
+
168
+ %-----------CONTACT DETAILS------------------
169
+ % Make sure all the details are correct, you can add more links in the first row of second column if needed
170
+
171
+ \begin{tabularx}{\textwidth}{>{\centering\arraybackslash}X >{\centering\arraybackslash}X}
172
+ \textbf{\Huge Tsou, Dong-You} \\[10pt]
173
+ \href{https://www.linkedin.com/in/dytsou/}{\faLinkedin~ \uline{linkedin.com/in/dytsou}}
174
+ \hspace{8pt}
175
+ \href{https://github.com/dytsou/}{\faGithub~ \uline{github.com/dytsou}}
176
+ \hspace{8pt}
177
+ \href{mailto:contact@dy.tsou.me}{\faEnvelope~ \uline{contact@dy.tsou.me}}
178
+ \hspace{8pt}
179
+ \faMobile~ +886-971-618-820 \\
180
+ \end{tabularx}
181
+
182
+
183
+ %--------------------------------------------
184
+
185
+ %-----------EDUCATION-------------------------
186
+ % Mention your CGPA, if its good, in the first row of second column
187
+
188
+ \section{Education}
189
+ \resumeHeadingListStart{}
190
+ \resumeQuadHeading{National Yang Ming Chiao Tung University}{Hsinchu, Taiwan}
191
+ {Bachelor of Science in Computer Science}{Sept. 2022 -- Jun. 2026}
192
+ \resumeHeadingListEnd{}
193
+ %---------------------------------------------
194
+
195
+ %--------------SKILLS------------------------
196
+ % Add or remove resumeSectionTypes according to your needs
197
+
198
+ \section{Technical Skills}
199
+ \resumeHeadingListStart{}
200
+ \resumeSectionType{Languages}{}{ Python, C++, Go, HTML, CSS, JavaScript, Dart, PHP, Verilog, LabVIEW}
201
+ \resumeSectionType{Frameworks \& Libraries}{}{React.js, Node.js, Flutter, Flask, FastAPI, OpenGL}
202
+ \resumeSectionType{Tools \& Technologies}{}{Git, PostgreSQL, Arduino, Docker, Linux, API Development, RESTful Services}
203
+ \resumeSectionType{Specialized Skills}{}{Web Development: Full-stack development with React frontend and backend APIs}
204
+ \resumeSectionType{}{}{Game Development: OpenGL-based 3D graphics and LabVIEW multiplayer systems}
205
+ % \resumeSectionType{}{}{Bot Development: LINE bot applications with Python}
206
+ \resumeSectionType{}{}{Computer Vision: Real-time 3D object classification in ground (AV) and aerial (UAV) scenarios}
207
+ \resumeHeadingListEnd{}
208
+ %--------------------------------------------
209
+
210
+ % -----------LABORATORY EXPERIENCES-----------------------
211
+
212
+ \section{Laboratory Experiences}
213
+ \resumeHeadingListStart{}
214
+ \resumeQuadHeadingDetails{\href{https://sqlab.web.nycu.edu.tw}{Software Quality Lab}}{Sept. 2025 -- Present}
215
+ {The Influence of AI-Generated Testing on Developer Productivity}
216
+ \resumeItemListStart{}
217
+ \resumeItem{Integrated \textbf{AI-assisted test generation into development workflows} to achieve measurable gains in efficiency and coverage.}
218
+ \resumeItem{\textbf{Researched the impact of AI-generated testing} on developer productivity and software quality, with a focus on quantitative results.}
219
+ \resumeItemListEnd{}
220
+
221
+ \resumeQuadHeadingDetails{\href{http://acm.cs.nycu.edu.tw/}{Applied Computing and Multimedia Lab}}{Sept. 2024 -- Aug. 2025}
222
+ {Video-based 3D Object Detection with Vision Foundation Models}
223
+ \resumeItemListStart{}
224
+ \resumeItem{Built a \textbf{monocular video 3D detector with \href{https://ai.meta.com/sam2/}{SAM 2}} for temporally consistent segmentation and depth-aware boxes}
225
+ \resumeItem{Applied \textbf{LoRA} and \textbf{BEVDepth-style depth-context fusion} for efficient training and temporal box refinement}
226
+ \resumeItemListEnd{}
227
+ \resumeHeadingListEnd{}
228
+ % ---------------------------------------------
229
+
230
+ %-----------PROJECTS--------------------------
231
+
232
+
233
+ \section{Projects}
234
+ \resumeHeadingListStart{}
235
+
236
+ \resumeTrioHeading{SDC Core System}{Go, RESTful API, Docker, PostgerSQL}{\href{https://github.com/NYCU-SDC/core-system-backend}{\uline{Source Code}}}
237
+ \resumeItemListStart{}
238
+ \resumeItem{Designed and implemented a robust backend infrastructure for NYCU Software Development Club, facilitating cross-unit operations and continuous service availability}
239
+ \resumeItem{Designed modular \textbf{RESTful APIs} and robust authentication, with \textbf{over 500 code commits}}
240
+ \resumeItem{Streamlined CI/CD pipeline using \textbf{Docker}, reducing deployment time}
241
+ \resumeItem{Integrated PostgreSQL databases and multi-environment configs for scalable, maintainable infrastructure}
242
+ \resumeItemListEnd{}
243
+
244
+ \resumeTrioHeading{CAIender}{React.js, Vite, GraphQL, DynamoDB, LLM}{\href{https://github.com/orgs/MCHackathon2025/repositories}{\uline{Source Code}}}
245
+ \resumeItemListStart{}
246
+ \resumeItem{Independently designed and developed a prototype for an AI calendar platform based on \textbf{React} architecture}
247
+ \resumeItem{Integrated \textbf{GraphQL} and \textbf{DynamoDB}, leveraging LLM to enable \textbf{context-aware recommendations and AI scheduling}}
248
+ \resumeItem{Implemented Google Map redirection and GPS-based location search to improve user activity discovery}
249
+ \resumeItem{Adopted Vite for build optimization, resulting in faster frontend compilation and enhanced modular scalability}
250
+ \resumeItemListEnd{}
251
+
252
+ \resumeHeadingListEnd{}
253
+ %--------------------------------------------
254
+
255
+ %----------------Extracurricular Experiences----------------------
256
+
257
+ \section{Extracurricular Experiences}
258
+ \resumeHeadingListStart{}
259
+ \resumeQuadHeadingDetails{\href{https://sdc.nycu.club}{NYCU Software Development Club}}{Oct. 2023 -- Present}
260
+ {Vice President}
261
+ \resumeItemListStart{}
262
+ \resumeItem{Coordinated 18 programs across two semesters, \textbf{supporting a community of 163 members from 42 academic departments} and enhancing event quality.}
263
+ \resumeItem{\textbf{Developed and maintained SDC \href{https://github.com/NYCU-SDC/core-system-backend}{Core System} for program and event management}, support of member tracking, team matching, form workflows and data analytics to streamline operations and improve user experience.}
264
+ \resumeItemListEnd{}
265
+ \resumeQuadHeadingDetails{\href{https://sitcon.org/2025/}{SITCON, Students' Information Technology Conference}}{Oct. 2024 -- Mar. 2025}
266
+ {Agenda Committee}
267
+ \resumeItemListStart{}
268
+ \resumeItem{Organizing 28 sessions and coordinating over 2,180 minutes of student rehearsals for \textbf{1,400+ participants at Taiwan’s leading student tech conference}.}
269
+ \resumeItemListEnd{}
270
+ \resumeHeadingListEnd{}
271
+ %--------------------------------------------
272
+
273
+ \end{document}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@dytsou/resume-converter",
3
+ "version": "2.0.2",
4
+ "type": "module",
5
+ "dependencies": {
6
+ "@unified-latex/unified-latex-to-hast": "^1.8.3",
7
+ "@unified-latex/unified-latex-util-parse": "^1.8.3",
8
+ "hast-util-to-html": "^9.0.5",
9
+ "mathjax-full": "^3.2.2",
10
+ "react": "^19.2.0",
11
+ "react-dom": "^19.2.0",
12
+ "rehype-stringify": "^10.0.1",
13
+ "unified": "^11.0.5"
14
+ },
15
+ "devDependencies": {
16
+ "@eslint/js": "^9.39.1",
17
+ "@types/react": "^19.2.6",
18
+ "@types/react-dom": "^19.2.3",
19
+ "@vitejs/plugin-react": "^5.1.1",
20
+ "eslint": "^9.39.1",
21
+ "eslint-plugin-react-hooks": "^7.0.1",
22
+ "eslint-plugin-react-refresh": "^0.4.11",
23
+ "globals": "^16.5.0",
24
+ "typescript": "^5.5.3",
25
+ "typescript-eslint": "^8.47.0",
26
+ "vite": "^7.2.4"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "scripts": {
32
+ "dev": "vite",
33
+ "build": "pnpm run convert && vite build",
34
+ "convert": "node scripts/convert-latex.mjs",
35
+ "lint": "eslint .",
36
+ "preview": "vite preview",
37
+ "typecheck": "tsc --noEmit -p tsconfig.app.json"
38
+ }
39
+ }