diff --git a/documents/cv.log b/documents/cv.log new file mode 100644 index 0000000..dfb89a6 --- /dev/null +++ b/documents/cv.log @@ -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 to proceed, +or enter new name. (Default extension: sty) + +Enter file name: +! Emergency stop. + + +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! diff --git a/documents/cv.org b/documents/cv.org new file mode 100644 index 0000000..3c9cd3d --- /dev/null +++ b/documents/cv.org @@ -0,0 +1,37 @@ +--- +title: Curriculum Vitae +--- + +#+begin_export html +

Curriculum Vitae

- Go here for the pdf
+#+end_export + +* _About_ +- Amneesh Singh +- [[mailto:natto@weirdnatto.in][natto@weirdnatto.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 diff --git a/documents/cv.tex b/documents/cv.tex new file mode 100644 index 0000000..ebfcfd8 --- /dev/null +++ b/documents/cv.tex @@ -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} \ No newline at end of file diff --git a/flake.nix b/flake.nix index b437036..2848874 100644 --- a/flake.nix +++ b/flake.nix @@ -40,14 +40,23 @@ }; in rec { - devShell = with pkgs.haskellPackages; shellFor { + devShell = with pkgs; with haskellPackages; shellFor { packages = _: [ site ]; withHoogle = true; buildInputs = [ cabal-install + (texlive.combine { + inherit (texlive) + scheme-small + fontspec + enumitem + parskip + hyperref + standalone + titlesec; + }) haskell-language-server ghcid - site ]; }; packages = { diff --git a/fonts/Arvo-Bold.ttf b/fonts/Arvo-Bold.ttf new file mode 100644 index 0000000..36a6576 Binary files /dev/null and b/fonts/Arvo-Bold.ttf differ diff --git a/fonts/Arvo-BoldItalic.ttf b/fonts/Arvo-BoldItalic.ttf new file mode 100644 index 0000000..e53dd95 Binary files /dev/null and b/fonts/Arvo-BoldItalic.ttf differ diff --git a/fonts/Arvo-Italic.ttf b/fonts/Arvo-Italic.ttf new file mode 100644 index 0000000..480e1d1 Binary files /dev/null and b/fonts/Arvo-Italic.ttf differ diff --git a/fonts/Arvo-Regular.ttf b/fonts/Arvo-Regular.ttf new file mode 100644 index 0000000..55397fb Binary files /dev/null and b/fonts/Arvo-Regular.ttf differ diff --git a/fonts/Lato-Bold.ttf b/fonts/Lato-Bold.ttf new file mode 100644 index 0000000..49f63fb Binary files /dev/null and b/fonts/Lato-Bold.ttf differ diff --git a/fonts/Lato-BoldItalic.ttf b/fonts/Lato-BoldItalic.ttf new file mode 100644 index 0000000..fc7e8f7 Binary files /dev/null and b/fonts/Lato-BoldItalic.ttf differ diff --git a/fonts/Lato-Italic.ttf b/fonts/Lato-Italic.ttf new file mode 100644 index 0000000..5ac2ea2 Binary files /dev/null and b/fonts/Lato-Italic.ttf differ diff --git a/fonts/Lato-Regular.ttf b/fonts/Lato-Regular.ttf new file mode 100644 index 0000000..f33c87d Binary files /dev/null and b/fonts/Lato-Regular.ttf differ diff --git a/src/nattopages.cabal b/src/nattopages.cabal index 00df65e..2f5cff5 100644 --- a/src/nattopages.cabal +++ b/src/nattopages.cabal @@ -7,8 +7,10 @@ cabal-version: >= 1.10 executable site main-is: site.hs build-depends: base == 4.* + , filepath == 1.4.* , hakyll == 4.15.* , pandoc == 2.* + , process == 1.6.* , text == 1.* ghc-options: -threaded -rtsopts -with-rtsopts=-N default-language: Haskell2010 diff --git a/src/site.hs b/src/site.hs index f5d262b..0ad41df 100644 --- a/src/site.hs +++ b/src/site.hs @@ -6,14 +6,26 @@ import Data.Maybe (isJust) import Data.Text (Text) import qualified Data.Text as T 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) -------------------------------------------------------------------------------- main :: IO () 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 route idRoute @@ -27,6 +39,9 @@ main = hakyllWith config $ do route idRoute compile compressCssCompiler + match "*pdf" $ do + route idRoute + match individualPatterns $ do route $ setExtension "html" compile $ @@ -34,6 +49,18 @@ main = hakyllWith config $ do >>= loadAndApplyTemplate "templates/default.html" defaultCtx >>= 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") tagsRules tags $ \tag pattern -> do @@ -139,6 +166,39 @@ main = hakyllWith config $ do >>= loadAndApplyTemplate "templates/sitemap.xml" sitemapCtx 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 = @@ -189,7 +249,7 @@ defaultCtx = domainCtx :: Context String domainCtx = constField "domain" domain subdomains :: [Item String] - subdomains = map mkItem ["git", "nomad", "consul", "vault", "radio", "f", "ci"] + subdomains = map mkItem ["git", "nomad", "consul", "vault", "radio", "f"] where mkItem :: a -> Item a mkItem a = Item {itemIdentifier = "subdomain", itemBody = a} diff --git a/templates/cv.tex b/templates/cv.tex new file mode 100644 index 0000000..a61eb1b --- /dev/null +++ b/templates/cv.tex @@ -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}