Compare commits
2 Commits
662c601891
...
ae48b4cc6a
| Author | SHA1 | Date | |
|---|---|---|---|
| ae48b4cc6a | |||
| fabc096e4e |
@@ -9,6 +9,8 @@ I like a lot of things, but the thing I like the most is sleeping.
|
|||||||
|
|
||||||
I dislike particularly nothing.
|
I dislike particularly nothing.
|
||||||
|
|
||||||
|
#+HTML: <p>Here is my <a href="/documents/cv.html">CV</a>.
|
||||||
|
|
||||||
* Socials
|
* Socials
|
||||||
- [[https://twitter.com/natto1784][Twitter]]
|
- [[https://twitter.com/natto1784][Twitter]]
|
||||||
- [[https://github.com/natto1784][GitHub]]
|
- [[https://github.com/natto1784][GitHub]]
|
||||||
|
|||||||
19
contact.org
19
contact.org
@@ -2,13 +2,18 @@
|
|||||||
title: Contact
|
title: Contact
|
||||||
---
|
---
|
||||||
|
|
||||||
- Email :: [[mailto:natto@weirdnatto.in][natto at weirdnatto dot com]]
|
* Email
|
||||||
:: [[mailto:singh.amneesh1784@gmail.com][singh dot amneesh1784 at gmail dot com]]
|
- [[mailto:natto@weirdnatto.in][natto at weirdnatto dot com]]
|
||||||
:: [[mailto:natto1784@protonmail.com][natto1784 at protonmail dot com]]
|
- [[mailto:singh.amneesh1784@gmail.com][singh dot amneesh1784 at gmail dot com]]
|
||||||
- IRC Nicks :: natto
|
- [[mailto:natto1784@protonmail.com][natto1784 at protonmail dot com]]
|
||||||
:: natto17
|
|
||||||
- LinkedIn :: [[https://www.linkedin.com/in/natto1784/][natto1784]]
|
* IRC Nicks
|
||||||
- Discord :: AlpaViraam#0735
|
Though, I'll probably be AFK
|
||||||
|
- natto
|
||||||
|
- natto17
|
||||||
|
|
||||||
|
* Discord
|
||||||
|
AlpaViraam#0735
|
||||||
|
|
||||||
** Public PGP
|
** Public PGP
|
||||||
#+begin_src
|
#+begin_src
|
||||||
|
|||||||
112
documents/cv.log
Normal file
112
documents/cv.log
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/NixOS.org) (preloaded format=pdflatex 1980.1.1) 7 JAN 2023 08:05
|
||||||
|
entering extended mode
|
||||||
|
\write18 enabled.
|
||||||
|
%&-line parsing enabled.
|
||||||
|
**cv.tex
|
||||||
|
(.//cv.tex
|
||||||
|
LaTeX2e <2021-11-15> patch level 1
|
||||||
|
L3 programming layer <2022-02-24>
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/base/article.cls
|
||||||
|
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
|
||||||
|
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/base/size11.clo
|
||||||
|
File: size11.clo 2021/10/04 v1.4n Standard LaTeX file (size option)
|
||||||
|
)
|
||||||
|
\c@part=\count185
|
||||||
|
\c@section=\count186
|
||||||
|
\c@subsection=\count187
|
||||||
|
\c@subsubsection=\count188
|
||||||
|
\c@paragraph=\count189
|
||||||
|
\c@subparagraph=\count190
|
||||||
|
\c@figure=\count191
|
||||||
|
\c@table=\count192
|
||||||
|
\abovecaptionskip=\skip47
|
||||||
|
\belowcaptionskip=\skip48
|
||||||
|
\bibindent=\dimen138
|
||||||
|
)
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/base/inputenc.sty
|
||||||
|
Package: inputenc 2021/02/14 v1.3d Input encoding file
|
||||||
|
\inpenc@prehook=\toks16
|
||||||
|
\inpenc@posthook=\toks17
|
||||||
|
)
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/base/fontenc.sty
|
||||||
|
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
|
||||||
|
)
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/graphics/graphicx.sty
|
||||||
|
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
|
||||||
|
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/graphics/keyval.sty
|
||||||
|
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
||||||
|
\KV@toks@=\toks18
|
||||||
|
)
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/graphics/graphics.sty
|
||||||
|
Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)
|
||||||
|
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/graphics/trig.sty
|
||||||
|
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
|
||||||
|
)
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/graphics-cfg/graphics.cfg
|
||||||
|
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||||
|
)
|
||||||
|
Package graphics Info: Driver file: pdftex.def on input line 107.
|
||||||
|
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/graphics-def/pdftex.def
|
||||||
|
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
|
||||||
|
))
|
||||||
|
\Gin@req@height=\dimen139
|
||||||
|
\Gin@req@width=\dimen140
|
||||||
|
)
|
||||||
|
(/nix/store/wzm599kl7nhv7cpz31yzq8f1g32mb10m-texlive-combined-2021/share/texmf/
|
||||||
|
tex/latex/tools/longtable.sty
|
||||||
|
Package: longtable 2021-09-01 v4.17 Multi-page Table package (DPC)
|
||||||
|
\LTleft=\skip49
|
||||||
|
\LTright=\skip50
|
||||||
|
\LTpre=\skip51
|
||||||
|
\LTpost=\skip52
|
||||||
|
\LTchunksize=\count193
|
||||||
|
\LTcapwidth=\dimen141
|
||||||
|
\LT@head=\box50
|
||||||
|
\LT@firsthead=\box51
|
||||||
|
\LT@foot=\box52
|
||||||
|
\LT@lastfoot=\box53
|
||||||
|
\LT@gbox=\box54
|
||||||
|
\LT@cols=\count194
|
||||||
|
\LT@rows=\count195
|
||||||
|
\c@LT@tables=\count196
|
||||||
|
\c@LT@chunks=\count197
|
||||||
|
\LT@p@ftn=\toks19
|
||||||
|
)
|
||||||
|
|
||||||
|
! LaTeX Error: File `wrapfig.sty' not found.
|
||||||
|
|
||||||
|
Type X to quit or <RETURN> to proceed,
|
||||||
|
or enter new name. (Default extension: sty)
|
||||||
|
|
||||||
|
Enter file name:
|
||||||
|
! Emergency stop.
|
||||||
|
<read *>
|
||||||
|
|
||||||
|
l.9 \usepackage
|
||||||
|
{rotating}^^M
|
||||||
|
*** (cannot \read from terminal in nonstop modes)
|
||||||
|
|
||||||
|
|
||||||
|
Here is how much of TeX's memory you used:
|
||||||
|
1055 strings out of 479729
|
||||||
|
15595 string characters out of 5873173
|
||||||
|
297947 words of memory out of 5000000
|
||||||
|
19111 multiletter control sequences out of 15000+600000
|
||||||
|
470328 words of font info for 30 fonts, out of 8000000 for 9000
|
||||||
|
319 hyphenation exceptions out of 8191
|
||||||
|
55i,0n,62p,201b,38s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||||
|
! ==> Fatal error occurred, no output PDF file produced!
|
||||||
35
documents/cv.org
Normal file
35
documents/cv.org
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
title: Curriculum Vitae
|
||||||
|
---
|
||||||
|
|
||||||
|
#+HTML: <h1>Curriculum Vitae</h1>Go <a href="/documents/cv.pdf">here</a> for the pdf.<hr>
|
||||||
|
|
||||||
|
* _About_
|
||||||
|
- Amneesh Singh
|
||||||
|
- [[mailto:natto@weirdnatto.in][natto at weirdnatto dot in]]
|
||||||
|
- [[https://weirdnatto.in][weirdnatto.in]]
|
||||||
|
|
||||||
|
Hello, I am Amneesh Singh, I also go by =natto1784= online. I live in Delhi, India; and do random stuff. I am more of a "system-administrator" type of guy by nature, but when it comes to programming, I want to do it all low-level; unless it relates to my hobby.
|
||||||
|
|
||||||
|
* _Education_
|
||||||
|
- B.Tech, Information Technology, Maharaja Agrasen Institute of Technology *(2021 - Current)*
|
||||||
|
- AISSCE (Grade 12), PCM, CBSE, *(2018-2020), 96%*
|
||||||
|
- AISSE (Grade 10), CBSE, *(2016-2018), 90.2%*
|
||||||
|
|
||||||
|
* _Student Programs, Scholarships, Examinations_
|
||||||
|
- *Google Summer of Code 2022*: I participated as a contributor in [[https://summerofcode.withgoogle.com/archive/2022][Google Summer of Code 2022]] at [[https://libvirt.org][libvirt]] and got paid a stipend for it by Google. The project involved adding the new introspectable statistics provided by QEMU and adding them under the libvirt statistics API.
|
||||||
|
- *NOC: Foundations of Cryptography, IIIT Bangalore, NPTEL - May 2022*
|
||||||
|
- *NOC: Computer Architecture, IIT Delhi, NPTEL - May 2022*
|
||||||
|
|
||||||
|
* _Skills_
|
||||||
|
** Programming Languages
|
||||||
|
- *Experienced*: C/C++, Rust, Python, Javascript, CSS, HTML
|
||||||
|
- *Familiar*: Haskell, PHP, Java, Lua, x86-Assembly, ARM-Assembly
|
||||||
|
|
||||||
|
** Tools
|
||||||
|
- *Experienced*: GNU/Linux, POSIX Shells, Git, Nix/NixOS, GNU Make, ffmpeg, OpenSSH, vi/vim, GNU Emacs, Docker, Hashicorp Nomad, Hashicorp Vault, nginx, Concourse CI
|
||||||
|
- *Familiar*: TeX, Pandoc, GitHub Actions, ZFS, Oracle Cloud Infrastructure, Terraform, Hashicorp Consul, Portage, yarn/npm, Web Frameworks (Rocket, NodeJS, Svelte, ReactJS)
|
||||||
|
|
||||||
|
** Soft Skills (lists sorted by proficiency)
|
||||||
|
- *Languages*: Hindi, Punjabi, English, Japanese (can read a little, cannot converse)
|
||||||
|
- *Hobbies*: Home server/lab, Writing, Philosophy, Music theory, Geopolitics
|
||||||
168
documents/cv.tex
Normal file
168
documents/cv.tex
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
% Created 2023-01-07 Sat 08:05
|
||||||
|
% Intended LaTeX compiler: pdflatex
|
||||||
|
\documentclass[11pt]{article}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{longtable}
|
||||||
|
\usepackage{wrapfig}
|
||||||
|
\usepackage{rotating}
|
||||||
|
\usepackage[normalem]{ulem}
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{capt-of}
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\usepackage{minted}
|
||||||
|
\date{\today}
|
||||||
|
\title{}
|
||||||
|
\hypersetup{
|
||||||
|
pdfauthor={},
|
||||||
|
pdftitle={},
|
||||||
|
pdfkeywords={},
|
||||||
|
pdfsubject={},
|
||||||
|
pdfcreator={Emacs 28.2 (Org mode 9.6)},
|
||||||
|
pdflang={English}}
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
---
|
||||||
|
title: Curriculum Vitae
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
\section{Amneesh Singh}
|
||||||
|
\label{sec:org98303c7}
|
||||||
|
|
||||||
|
\begin{table}[htbp]
|
||||||
|
\caption{\label{tab:orga79be85}foo}
|
||||||
|
\begin{tabular}{rr}
|
||||||
|
Numero Progr. & Iva\\[0pt]
|
||||||
|
\hline
|
||||||
|
313 & 57.2\\[0pt]
|
||||||
|
314 & 13.81\\[0pt]
|
||||||
|
315 & 1.59\\[0pt]
|
||||||
|
316 & 1.98\\[0pt]
|
||||||
|
317 & 3.83\\[0pt]
|
||||||
|
318 & 2.29\\[0pt]
|
||||||
|
319 & 1.68\\[0pt]
|
||||||
|
320 & 1.86\\[0pt]
|
||||||
|
321 & 1.73\\[0pt]
|
||||||
|
322 & 0.36\\[0pt]
|
||||||
|
323 & 0.76\\[0pt]
|
||||||
|
324 & 1.98\\[0pt]
|
||||||
|
325 & 0.79\\[0pt]
|
||||||
|
326 & 2.7\\[0pt]
|
||||||
|
327 & 15.4\\[0pt]
|
||||||
|
328 & 1.17\\[0pt]
|
||||||
|
329 & 2.18\\[0pt]
|
||||||
|
330 & 2.61\\[0pt]
|
||||||
|
331 & 0.67\\[0pt]
|
||||||
|
332 & 0.94\\[0pt]
|
||||||
|
333 & 1.44\\[0pt]
|
||||||
|
334 & 10.25\\[0pt]
|
||||||
|
335 & 0.45\\[0pt]
|
||||||
|
336 & 1.2\\[0pt]
|
||||||
|
337 & 0.79\\[0pt]
|
||||||
|
338 & 1.97\\[0pt]
|
||||||
|
339 & 1.39\\[0pt]
|
||||||
|
340 & 1.98\\[0pt]
|
||||||
|
341 & 2.24\\[0pt]
|
||||||
|
342 & 3.26\\[0pt]
|
||||||
|
343 & 0.41\\[0pt]
|
||||||
|
344 & 0.36\\[0pt]
|
||||||
|
345 & 2.34\\[0pt]
|
||||||
|
346 & 0.76\\[0pt]
|
||||||
|
347 & 0.27\\[0pt]
|
||||||
|
348 & 0.41\\[0pt]
|
||||||
|
349 & 1.59\\[0pt]
|
||||||
|
350 & 0.54\\[0pt]
|
||||||
|
351 & 0.81\\[0pt]
|
||||||
|
352 & 0.41\\[0pt]
|
||||||
|
353 & 1.12\\[0pt]
|
||||||
|
354 & 9.63\\[0pt]
|
||||||
|
355 & 1.26\\[0pt]
|
||||||
|
356 & 3.09\\[0pt]
|
||||||
|
357 & 5.05\\[0pt]
|
||||||
|
358 & 2.24\\[0pt]
|
||||||
|
359 & 10.92\\[0pt]
|
||||||
|
360 & 1.98\\[0pt]
|
||||||
|
361 & 9.92\\[0pt]
|
||||||
|
362 & 0.41\\[0pt]
|
||||||
|
363 & 2.34\\[0pt]
|
||||||
|
364 & 1.98\\[0pt]
|
||||||
|
365 & 4.81\\[0pt]
|
||||||
|
366 & 0.49\\[0pt]
|
||||||
|
367 & 1.98\\[0pt]
|
||||||
|
368 & 1.26\\[0pt]
|
||||||
|
369 & 1.8\\[0pt]
|
||||||
|
370 & 4.83\\[0pt]
|
||||||
|
371 & 8.56\\[0pt]
|
||||||
|
372 & 2.34\\[0pt]
|
||||||
|
373 & 1.8\\[0pt]
|
||||||
|
374 & 4.37\\[0pt]
|
||||||
|
375 & 1.98\\[0pt]
|
||||||
|
376 & 2.92\\[0pt]
|
||||||
|
377 & 1.98\\[0pt]
|
||||||
|
378 & 10.3\\[0pt]
|
||||||
|
379 & 10.46\\[0pt]
|
||||||
|
380 & 2.25\\[0pt]
|
||||||
|
381 & 1.03\\[0pt]
|
||||||
|
382 & 2.22\\[0pt]
|
||||||
|
383 & 0.85\\[0pt]
|
||||||
|
384 & 1.24\\[0pt]
|
||||||
|
385 & 2.7\\[0pt]
|
||||||
|
386 & 1.03\\[0pt]
|
||||||
|
387 & 1.98\\[0pt]
|
||||||
|
388 & 1.97\\[0pt]
|
||||||
|
389 & 1.03\\[0pt]
|
||||||
|
390 & 3.19\\[0pt]
|
||||||
|
391 & 45.03\\[0pt]
|
||||||
|
392 & 1.98\\[0pt]
|
||||||
|
393 & 3.25\\[0pt]
|
||||||
|
394 & 1.97\\[0pt]
|
||||||
|
395 & 2.56\\[0pt]
|
||||||
|
396 & 1.98\\[0pt]
|
||||||
|
397 & 3.23\\[0pt]
|
||||||
|
398 & 0.97\\[0pt]
|
||||||
|
399 & 7.21\\[0pt]
|
||||||
|
400 & 1.98\\[0pt]
|
||||||
|
401 & 1.98\\[0pt]
|
||||||
|
402 & 0.79\\[0pt]
|
||||||
|
403 & 2.16\\[0pt]
|
||||||
|
404 & 4.59\\[0pt]
|
||||||
|
405 & 1.98\\[0pt]
|
||||||
|
406 & 1.98\\[0pt]
|
||||||
|
407 & 1.98\\[0pt]
|
||||||
|
408 & 1.42\\[0pt]
|
||||||
|
409 & 1.62\\[0pt]
|
||||||
|
410 & 22.36\\[0pt]
|
||||||
|
411 & 1.98\\[0pt]
|
||||||
|
412 & 2.78\\[0pt]
|
||||||
|
413 & 0.42\\[0pt]
|
||||||
|
414 & 8.41\\[0pt]
|
||||||
|
415 & 1.98\\[0pt]
|
||||||
|
416 & 5.06\\[0pt]
|
||||||
|
417 & 1.98\\[0pt]
|
||||||
|
418 & 2.19\\[0pt]
|
||||||
|
419 & 50.49\\[0pt]
|
||||||
|
420 & 9.03\\[0pt]
|
||||||
|
421 & 14.13\\[0pt]
|
||||||
|
422 & 8.11\\[0pt]
|
||||||
|
423 & 2.25\\[0pt]
|
||||||
|
424 & 2.89\\[0pt]
|
||||||
|
425 & 17.67\\[0pt]
|
||||||
|
426 & 2.92\\[0pt]
|
||||||
|
427 & 2.43\\[0pt]
|
||||||
|
428 & 8.3\\[0pt]
|
||||||
|
429 & 2.86\\[0pt]
|
||||||
|
430 & 205.19\\[0pt]
|
||||||
|
431 & 72.13\\[0pt]
|
||||||
|
432 & 86.56\\[0pt]
|
||||||
|
433 & 244.54\\[0pt]
|
||||||
|
434 & 39.85\\[0pt]
|
||||||
|
435 & 89.8\\[0pt]
|
||||||
|
\hline
|
||||||
|
& Totale 1262.68\\[0pt]
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
\end{document}
|
||||||
13
flake.nix
13
flake.nix
@@ -40,14 +40,23 @@
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
devShell = with pkgs.haskellPackages; shellFor {
|
devShell = with pkgs; with haskellPackages; shellFor {
|
||||||
packages = _: [ site ];
|
packages = _: [ site ];
|
||||||
withHoogle = true;
|
withHoogle = true;
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
cabal-install
|
cabal-install
|
||||||
|
(texlive.combine {
|
||||||
|
inherit (texlive)
|
||||||
|
scheme-small
|
||||||
|
fontspec
|
||||||
|
enumitem
|
||||||
|
parskip
|
||||||
|
hyperref
|
||||||
|
standalone
|
||||||
|
titlesec;
|
||||||
|
})
|
||||||
haskell-language-server
|
haskell-language-server
|
||||||
ghcid
|
ghcid
|
||||||
site
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
packages = {
|
packages = {
|
||||||
|
|||||||
BIN
fonts/Arvo-Bold.ttf
Normal file
BIN
fonts/Arvo-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/Arvo-BoldItalic.ttf
Normal file
BIN
fonts/Arvo-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Arvo-Italic.ttf
Normal file
BIN
fonts/Arvo-Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/Arvo-Regular.ttf
Normal file
BIN
fonts/Arvo-Regular.ttf
Normal file
Binary file not shown.
BIN
fonts/Lato-Bold.ttf
Normal file
BIN
fonts/Lato-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/Lato-BoldItalic.ttf
Normal file
BIN
fonts/Lato-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/Lato-Italic.ttf
Normal file
BIN
fonts/Lato-Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/Lato-Regular.ttf
Normal file
BIN
fonts/Lato-Regular.ttf
Normal file
Binary file not shown.
@@ -7,8 +7,10 @@ cabal-version: >= 1.10
|
|||||||
executable site
|
executable site
|
||||||
main-is: site.hs
|
main-is: site.hs
|
||||||
build-depends: base == 4.*
|
build-depends: base == 4.*
|
||||||
|
, filepath == 1.4.*
|
||||||
, hakyll == 4.15.*
|
, hakyll == 4.15.*
|
||||||
, pandoc == 2.*
|
, pandoc == 2.*
|
||||||
|
, process == 1.6.*
|
||||||
, text == 1.*
|
, text == 1.*
|
||||||
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
ghc-options: -threaded -rtsopts -with-rtsopts=-N
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
|
|||||||
66
src/site.hs
66
src/site.hs
@@ -6,14 +6,26 @@ import Data.Maybe (isJust)
|
|||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import Hakyll
|
import Hakyll
|
||||||
import Text.Pandoc (WriterOptions (writerHighlightStyle, writerNumberSections, writerTOCDepth, writerTableOfContents, writerTemplate))
|
import System.FilePath (replaceDirectory, replaceExtension, takeDirectory)
|
||||||
|
import qualified System.Process as Process
|
||||||
|
import Text.Pandoc
|
||||||
|
( WriterOptions
|
||||||
|
( writerHighlightStyle,
|
||||||
|
writerNumberSections,
|
||||||
|
writerTOCDepth,
|
||||||
|
writerTableOfContents,
|
||||||
|
writerTemplate
|
||||||
|
),
|
||||||
|
)
|
||||||
|
import qualified Text.Pandoc as Pandoc
|
||||||
import Text.Pandoc.Templates (Template, compileTemplate)
|
import Text.Pandoc.Templates (Template, compileTemplate)
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = hakyllWith config $ do
|
main = hakyllWith config $ do
|
||||||
let individualPatterns = fromList ["about.org", "contact.org", "links.org"]
|
let individualPatterns = fromList ["about.org", "contact.org", "links.org", "documents/cv.org"]
|
||||||
|
let copyPatterns = fromList ["images/**", "fonts/*", "documents/*"]
|
||||||
|
|
||||||
match "images/**" $ do
|
match "images/**" $ do
|
||||||
route idRoute
|
route idRoute
|
||||||
@@ -27,6 +39,9 @@ main = hakyllWith config $ do
|
|||||||
route idRoute
|
route idRoute
|
||||||
compile compressCssCompiler
|
compile compressCssCompiler
|
||||||
|
|
||||||
|
match "*pdf" $ do
|
||||||
|
route idRoute
|
||||||
|
|
||||||
match individualPatterns $ do
|
match individualPatterns $ do
|
||||||
route $ setExtension "html"
|
route $ setExtension "html"
|
||||||
compile $
|
compile $
|
||||||
@@ -34,6 +49,18 @@ main = hakyllWith config $ do
|
|||||||
>>= loadAndApplyTemplate "templates/default.html" defaultCtx
|
>>= loadAndApplyTemplate "templates/default.html" defaultCtx
|
||||||
>>= relativizeUrls
|
>>= relativizeUrls
|
||||||
|
|
||||||
|
-- kindly stolen from https://github.com/jaspervdj/jaspervdj/blob/b2a9a34cd2195c6e216b922e152c42266dded99d/src/Main.hs#L163-L169
|
||||||
|
-- also see helper functions writeXetex and xelatex
|
||||||
|
match "documents/cv.org" $
|
||||||
|
version "pdf" $ do
|
||||||
|
route $ setExtension "pdf"
|
||||||
|
compile $
|
||||||
|
getResourceBody
|
||||||
|
>>= readPandoc
|
||||||
|
>>= writeXeTex
|
||||||
|
>>= loadAndApplyTemplate "templates/cv.tex" defaultCtx
|
||||||
|
>>= xelatex
|
||||||
|
|
||||||
tags <- buildTags "posts/*" (fromCapture "archive/tags/*.html")
|
tags <- buildTags "posts/*" (fromCapture "archive/tags/*.html")
|
||||||
|
|
||||||
tagsRules tags $ \tag pattern -> do
|
tagsRules tags $ \tag pattern -> do
|
||||||
@@ -139,6 +166,39 @@ main = hakyllWith config $ do
|
|||||||
>>= loadAndApplyTemplate "templates/sitemap.xml" sitemapCtx
|
>>= loadAndApplyTemplate "templates/sitemap.xml" sitemapCtx
|
||||||
|
|
||||||
match "templates/*" $ compile templateBodyCompiler
|
match "templates/*" $ compile templateBodyCompiler
|
||||||
|
where
|
||||||
|
-- https://github.com/jaspervdj/jaspervdj/blob/b2a9a34cd2195c6e216b922e152c42266dded99d/src/Main.hs#L214-L218
|
||||||
|
writeXeTex :: Item Pandoc.Pandoc -> Compiler (Item String)
|
||||||
|
writeXeTex = traverse $ \pandoc ->
|
||||||
|
case Pandoc.runPure (Pandoc.writeLaTeX Pandoc.def pandoc) of
|
||||||
|
Left err -> fail $ show err
|
||||||
|
Right x -> return (T.unpack x)
|
||||||
|
|
||||||
|
-- https://github.com/jaspervdj/jaspervdj/blob/b2a9a34cd2195c6e216b922e152c42266dded99d/src/Main.hs#L280-L292
|
||||||
|
-- but even more hacky
|
||||||
|
xelatex :: Item String -> Compiler (Item TmpFile)
|
||||||
|
xelatex item = do
|
||||||
|
TmpFile texPath <- newTmpFile "xelatex.tex"
|
||||||
|
let tmpDir = takeDirectory texPath
|
||||||
|
pdfPath = replaceExtension texPath "pdf"
|
||||||
|
|
||||||
|
unsafeCompiler $ do
|
||||||
|
writeFile texPath $ itemBody item
|
||||||
|
let x = itemBody item
|
||||||
|
_ <-
|
||||||
|
Process.system $
|
||||||
|
unwords
|
||||||
|
[ "xelatex",
|
||||||
|
"-halt-on-error",
|
||||||
|
"-output-directory",
|
||||||
|
tmpDir,
|
||||||
|
texPath,
|
||||||
|
">/dev/null",
|
||||||
|
"2>&1"
|
||||||
|
]
|
||||||
|
return ()
|
||||||
|
|
||||||
|
makeItem $ TmpFile pdfPath
|
||||||
|
|
||||||
rssFeedConfiguration :: FeedConfiguration
|
rssFeedConfiguration :: FeedConfiguration
|
||||||
rssFeedConfiguration =
|
rssFeedConfiguration =
|
||||||
@@ -189,7 +249,7 @@ defaultCtx =
|
|||||||
domainCtx :: Context String
|
domainCtx :: Context String
|
||||||
domainCtx = constField "domain" domain
|
domainCtx = constField "domain" domain
|
||||||
subdomains :: [Item String]
|
subdomains :: [Item String]
|
||||||
subdomains = map mkItem ["git", "nomad", "consul", "vault", "radio", "f", "ci"]
|
subdomains = map mkItem ["git", "nomad", "consul", "vault", "radio", "f"]
|
||||||
where
|
where
|
||||||
mkItem :: a -> Item a
|
mkItem :: a -> Item a
|
||||||
mkItem a = Item {itemIdentifier = "subdomain", itemBody = a}
|
mkItem a = Item {itemIdentifier = "subdomain", itemBody = a}
|
||||||
|
|||||||
41
templates/cv.tex
Normal file
41
templates/cv.tex
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
\documentclass[a4paper, 11pt]{article}
|
||||||
|
|
||||||
|
\usepackage[margin=0.5in]{geometry}
|
||||||
|
\usepackage[colorlinks=true]{hyperref}
|
||||||
|
\usepackage{longtable}
|
||||||
|
\usepackage{booktabs}
|
||||||
|
|
||||||
|
\usepackage{fontspec}
|
||||||
|
\setmainfont[
|
||||||
|
Path = fonts/,
|
||||||
|
Extension = .ttf,
|
||||||
|
UprightFont = *-Regular,
|
||||||
|
ItalicFont = *-Italic,
|
||||||
|
BoldFont = *-Bold,
|
||||||
|
BoldItalicFont = *-BoldItalic
|
||||||
|
]{Arvo}
|
||||||
|
|
||||||
|
\setsansfont[
|
||||||
|
Path = fonts/,
|
||||||
|
Extension = .ttf,
|
||||||
|
UprightFont = *-Regular,
|
||||||
|
ItalicFont = *-Italic,
|
||||||
|
BoldFont = *-Bold,
|
||||||
|
BoldItalicFont = *-BoldItalic
|
||||||
|
]{Lato}
|
||||||
|
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\setlist[itemize]{leftmargin=*}
|
||||||
|
\renewcommand{\labelitemi}{$$\sim$$}
|
||||||
|
|
||||||
|
\usepackage{parskip}
|
||||||
|
\setlength{\parindent}{0em}
|
||||||
|
\setlength{\parskip}{0.5em}
|
||||||
|
\setcounter{secnumdepth}{-1}
|
||||||
|
|
||||||
|
\def\tightlist{}
|
||||||
|
\usepackage{ulem}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
$body$
|
||||||
|
\end{document}
|
||||||
Reference in New Issue
Block a user