From 28198ad4dc7ffd5456d696cfe350590f54d7e453 Mon Sep 17 00:00:00 2001 From: Olivier Philippon Date: Sun, 14 Jan 2024 12:08:16 +0000 Subject: [PATCH] =?UTF-8?q?The=20one=20with=20Dark=20Mode=20=F0=9F=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also, time to replace our old Raphaël icons with Tailwind Labs' "Heroicons" --> https://github.com/tailwindlabs/heroicons#readme --- .pre-commit-config.yaml | 4 ++ README.md | 4 ++ myresume/assets-src/img/icons/bio.svg | 6 +++ myresume/assets-src/img/icons/education.svg | 6 +++ myresume/assets-src/img/icons/hobbies.svg | 6 +++ .../assets-src/img/icons/job-experience.svg | 4 ++ myresume/assets-src/img/icons/languages.svg | 6 +++ myresume/assets-src/img/icons/open-source.svg | 5 ++ myresume/assets-src/img/icons/projects.svg | 4 ++ myresume/assets-src/img/icons/skills.svg | 5 ++ myresume/assets-src/img/icons/teaching.svg | 6 +++ myresume/assets-src/img/icons/theme-dark.svg | 6 +++ myresume/assets-src/img/icons/theme-light.svg | 6 +++ myresume/assets-src/img/icons/tmp.svg | 1 + myresume/data/en/i18n.toml | 5 +- myresume/data/fr/i18n.toml | 3 +- myresume/settings.py | 1 + .../img/icons/header-icons/chat.svg | 13 ----- .../img/icons/header-icons/fave.svg | 14 ------ .../img/icons/header-icons/github.svg | 13 ----- .../img/icons/header-icons/lab-red.png | Bin 1044 -> 0 bytes .../img/icons/header-icons/ruler.svg | 13 ----- .../img/icons/header-icons/teaching.png | Bin 1693 -> 0 bytes .../img/icons/header-icons/tool-red.png | Bin 1765 -> 0 bytes .../img/icons/header-icons/user.svg | 13 ----- .../img/icons/header-icons/video-red.svg | 13 ----- .../staticfiles/img/icons/techs/django.png | Bin 2000 -> 1786 bytes myresume/staticfiles/img/me.jpg | Bin 0 -> 19978 bytes myresume/templates/myresume/about.html | 7 ++- myresume/templates/myresume/about/bio.html | 6 +-- .../templates/myresume/about/education.html | 2 +- .../templates/myresume/about/hobbies.html | 2 +- .../templates/myresume/about/languages.html | 2 +- .../templates/myresume/about/open_source.html | 2 +- .../templates/myresume/about/teaching.html | 2 +- myresume/templates/myresume/layout.html | 6 ++- myresume/templates/myresume/main.html | 9 ++-- .../myresume/main/job_experience.html | 2 +- .../templates/myresume/main/main_skills.html | 2 +- .../templates/myresume/main/projects.html | 2 +- .../main/tags/main_section_title.html | 8 +++ .../myresume/main/tags/main_tech.html | 1 + .../myresume/pdf_and_language_toolbar.html | 15 ++++-- .../myresume/pdf_and_language_toolbar.js.html | 22 +++++++++ myresume/templatetags/myresume_tags.py | 46 +++++++++++++----- pyproject.toml | 2 +- tailwind.config.js | 2 + 47 files changed, 180 insertions(+), 117 deletions(-) create mode 100644 myresume/assets-src/img/icons/bio.svg create mode 100644 myresume/assets-src/img/icons/education.svg create mode 100644 myresume/assets-src/img/icons/hobbies.svg create mode 100644 myresume/assets-src/img/icons/job-experience.svg create mode 100644 myresume/assets-src/img/icons/languages.svg create mode 100644 myresume/assets-src/img/icons/open-source.svg create mode 100644 myresume/assets-src/img/icons/projects.svg create mode 100644 myresume/assets-src/img/icons/skills.svg create mode 100644 myresume/assets-src/img/icons/teaching.svg create mode 100644 myresume/assets-src/img/icons/theme-dark.svg create mode 100644 myresume/assets-src/img/icons/theme-light.svg create mode 100644 myresume/assets-src/img/icons/tmp.svg delete mode 100644 myresume/staticfiles/img/icons/header-icons/chat.svg delete mode 100644 myresume/staticfiles/img/icons/header-icons/fave.svg delete mode 100644 myresume/staticfiles/img/icons/header-icons/github.svg delete mode 100644 myresume/staticfiles/img/icons/header-icons/lab-red.png delete mode 100644 myresume/staticfiles/img/icons/header-icons/ruler.svg delete mode 100644 myresume/staticfiles/img/icons/header-icons/teaching.png delete mode 100644 myresume/staticfiles/img/icons/header-icons/tool-red.png delete mode 100644 myresume/staticfiles/img/icons/header-icons/user.svg delete mode 100644 myresume/staticfiles/img/icons/header-icons/video-red.svg create mode 100644 myresume/staticfiles/img/me.jpg create mode 100644 myresume/templates/myresume/main/tags/main_section_title.html create mode 100644 myresume/templates/myresume/pdf_and_language_toolbar.js.html diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 48ba334..6a8ee4f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,18 +5,22 @@ repos: - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace + - repo: https://github.com/psf/black rev: 23.12.1 hooks: - id: black + - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.1.9 hooks: # Linter-only; we're still using Black for code formatting atm. - id: ruff args: [ --fix ] + - repo: https://github.com/djlint/djLint rev: v1.34.1 hooks: - id: djlint-reformat-django - id: djlint-django + args: [ --ignore=H019 ] diff --git a/README.md b/README.md index a4f3fb9..5eaae6b 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,16 @@ What could be more pleasant than totally over-engineering your online resume when you're a Web Developer in 2024? 😄 +## History of the various versions + Here is the history of this traditionally over-engineered CV project: - [The very first version](https://github.com/olivierphi/my-resume/tree/v1) was using Node.js, CoffeeScript, Vagrant and gulp (2013! ⌛). - The second version, in 2016, was written in [goold ol' PHP](https://github.com/olivierphi/my-resume/tree/php-version). - The third one, in 2017, was built [with isomorphic React](https://github.com/olivierphi/my-resume/tree/react-version) as I was in the process of getting up to speed with React. - After that I wanted to give Vue.js a shot, so in 2018 I wrote [an isomorphic Vue.js version](https://github.com/olivierphi/my-resume/tree/vue-version). I wasn't a huge fan of Vue.js in the end, but I still kept that version running for a few years. +## Django logo The current version + Well, for this 5th flavour I opted for... a [Django](https://www.djangoproject.com/)-based setup! So, in order to generate only 2 HTML pages and 2 PDF files, I had the pleasure to use all these wonderful technologies: ✨ diff --git a/myresume/assets-src/img/icons/bio.svg b/myresume/assets-src/img/icons/bio.svg new file mode 100644 index 0000000..afb2544 --- /dev/null +++ b/myresume/assets-src/img/icons/bio.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/education.svg b/myresume/assets-src/img/icons/education.svg new file mode 100644 index 0000000..3f7855f --- /dev/null +++ b/myresume/assets-src/img/icons/education.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/hobbies.svg b/myresume/assets-src/img/icons/hobbies.svg new file mode 100644 index 0000000..baa0b20 --- /dev/null +++ b/myresume/assets-src/img/icons/hobbies.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/job-experience.svg b/myresume/assets-src/img/icons/job-experience.svg new file mode 100644 index 0000000..42b9c75 --- /dev/null +++ b/myresume/assets-src/img/icons/job-experience.svg @@ -0,0 +1,4 @@ + + + + diff --git a/myresume/assets-src/img/icons/languages.svg b/myresume/assets-src/img/icons/languages.svg new file mode 100644 index 0000000..18f7893 --- /dev/null +++ b/myresume/assets-src/img/icons/languages.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/open-source.svg b/myresume/assets-src/img/icons/open-source.svg new file mode 100644 index 0000000..fe67138 --- /dev/null +++ b/myresume/assets-src/img/icons/open-source.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/myresume/assets-src/img/icons/projects.svg b/myresume/assets-src/img/icons/projects.svg new file mode 100644 index 0000000..9e52a7d --- /dev/null +++ b/myresume/assets-src/img/icons/projects.svg @@ -0,0 +1,4 @@ + + + + diff --git a/myresume/assets-src/img/icons/skills.svg b/myresume/assets-src/img/icons/skills.svg new file mode 100644 index 0000000..525c668 --- /dev/null +++ b/myresume/assets-src/img/icons/skills.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/myresume/assets-src/img/icons/teaching.svg b/myresume/assets-src/img/icons/teaching.svg new file mode 100644 index 0000000..ec28eca --- /dev/null +++ b/myresume/assets-src/img/icons/teaching.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/theme-dark.svg b/myresume/assets-src/img/icons/theme-dark.svg new file mode 100644 index 0000000..7babdea --- /dev/null +++ b/myresume/assets-src/img/icons/theme-dark.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/theme-light.svg b/myresume/assets-src/img/icons/theme-light.svg new file mode 100644 index 0000000..fe63f00 --- /dev/null +++ b/myresume/assets-src/img/icons/theme-light.svg @@ -0,0 +1,6 @@ + + + + diff --git a/myresume/assets-src/img/icons/tmp.svg b/myresume/assets-src/img/icons/tmp.svg new file mode 100644 index 0000000..f127938 --- /dev/null +++ b/myresume/assets-src/img/icons/tmp.svg @@ -0,0 +1 @@ + diff --git a/myresume/data/en/i18n.toml b/myresume/data/en/i18n.toml index fa9408b..7d9d852 100644 --- a/myresume/data/en/i18n.toml +++ b/myresume/data/en/i18n.toml @@ -1,6 +1,7 @@ [top_links] pdf_download = "Download in PDF format" language = "language:" +theme = "switch to theme:" [open_source_projects] title = "Open Source projects" @@ -24,9 +25,9 @@ title = "Hobbies" content = "Running, bouldering" [teaching] -title = "Web development Trainer" +title = "Web development Teacher" content = """ -HTML/CSS, JavaScript and Flash trainer for +HTML/CSS, JavaScript and Flash teacher for Digital Campus """ diff --git a/myresume/data/fr/i18n.toml b/myresume/data/fr/i18n.toml index ee09427..eae2de4 100644 --- a/myresume/data/fr/i18n.toml +++ b/myresume/data/fr/i18n.toml @@ -1,6 +1,7 @@ [top_links] pdf_download = "Télécharger au format PDF" -language = "language:" +language = "langue :" +theme = "passer au thème :" [open_source_projects] title = "Projets Open Source" diff --git a/myresume/settings.py b/myresume/settings.py index 7a0214c..6afe58f 100644 --- a/myresume/settings.py +++ b/myresume/settings.py @@ -103,3 +103,4 @@ # Used for links to HTML & PDF files in the top right links: ROOT_PATH = env.get("ROOT_PATH", "/") +DEBUG_LAYOUT = bool(env.get("DEBUG_LAYOUT", "")) diff --git a/myresume/staticfiles/img/icons/header-icons/chat.svg b/myresume/staticfiles/img/icons/header-icons/chat.svg deleted file mode 100644 index 3d06645..0000000 --- a/myresume/staticfiles/img/icons/header-icons/chat.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Created with Raphaël 2.1.0 - - - - - diff --git a/myresume/staticfiles/img/icons/header-icons/fave.svg b/myresume/staticfiles/img/icons/header-icons/fave.svg deleted file mode 100644 index c5add02..0000000 --- a/myresume/staticfiles/img/icons/header-icons/fave.svg +++ /dev/null @@ -1,14 +0,0 @@ - - Created with Raphaël 2.1.0 - - - - - diff --git a/myresume/staticfiles/img/icons/header-icons/github.svg b/myresume/staticfiles/img/icons/header-icons/github.svg deleted file mode 100644 index 4e8a1f9..0000000 --- a/myresume/staticfiles/img/icons/header-icons/github.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Created with Raphaël 2.1.0 - - - - - diff --git a/myresume/staticfiles/img/icons/header-icons/lab-red.png b/myresume/staticfiles/img/icons/header-icons/lab-red.png deleted file mode 100644 index a20e61a4aedc5d1d57227c68f8bfc6cd3fcb07ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1044 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1|;v~rRV`Ewj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sGs7?`elx;Tbp+)qNL# z=AN4~v-sZUJ^at-{k~_NU?9Q6)_jn`;R@r6chkx;J#Q^kyt~Wq@Fm>``A0Ua)y-y5 zFu(ryUMG`?7+(ZKcJ{8)T{m{I&N=hu&Bf!h8BU+Rbo0iAwQo*+ex~P8^=pCrf?dC! za{SpT%)4A+`nvn|pT0{kRjbwrHdM^9ZCJBr^RbDW(yFc3@-A4Y_(?7y&#%<()Om;B!VYC- z`x$EXb-RB4`R%^!vCAz*%!{`(JStRY65u%DH*1bh>As%%GbY3pZWOs@Y`p4o!Nq?n zMn41=Y%&UDFtDGWvnQ81B*aCDft!2R*KGad6!)i3mRQyOmyB6@C~9}(9YzkeV6htM z1$$z)zfrc`#j0Y*yk*N0t9z1c8M#;2-gcec7<7)M`BO_^@Z?WNTpMmhmG9I0t9OfM z%QS|nYJIV#%iX8{TWk}e|09V_!M;A9FQN47ov#l{8|KPB*K`P+IK_DO>{Xuw_c7OB zV{UO0*IUB>{I+ZRN0WtT4y@E{*kbbX>(|(@J4eDB3Vu}7lxi4%cwFA_ENy2d3)6Jb z>%H46e$oUP2Pjg2m2yTc5oDeXd*j{x`-g+pFhJ@BYsAuJM%n`Xha}zS@{ysADj&U8}QD zZ|iGK?IllhUcH%e*iPh;bj-2+*?#f|PIdj|P!Q|h*S2|2ya_mkCH(NWWH@(v^)f-; zM{9v8UA4qDq9i4;B-JXpC>2OC7#SEE=^7g78XAWf8CaQGSeY1W8yHv_7_7{BcLYU4 zZhlH;S|x4`Hw?onfEuhoHWZhoTO}nHr|Om#Wiq5?=A>Hb>+6>#rWYmVmFQ>Yrt4=W z=jRpcXQU>kq!tzH=OiZS7Nw@>0kttrej@=iMH^;HN@{U(QD#9&W_})nGuX)~3gww4 k845v(1sRElSLY}g=^5%7WID*01GO=Dy85}Sb4q9e03J-jRR910 diff --git a/myresume/staticfiles/img/icons/header-icons/ruler.svg b/myresume/staticfiles/img/icons/header-icons/ruler.svg deleted file mode 100644 index 22f7203..0000000 --- a/myresume/staticfiles/img/icons/header-icons/ruler.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Created with Raphaël 2.1.0 - - - - - diff --git a/myresume/staticfiles/img/icons/header-icons/teaching.png b/myresume/staticfiles/img/icons/header-icons/teaching.png deleted file mode 100644 index bb708fab0af18009b90e050ab1f640e766692cff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1693 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 diff --git a/myresume/staticfiles/img/icons/header-icons/user.svg b/myresume/staticfiles/img/icons/header-icons/user.svg deleted file mode 100644 index 2441851..0000000 --- a/myresume/staticfiles/img/icons/header-icons/user.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Created with Raphaël 2.1.0 - - - - - diff --git a/myresume/staticfiles/img/icons/header-icons/video-red.svg b/myresume/staticfiles/img/icons/header-icons/video-red.svg deleted file mode 100644 index 90ec32b..0000000 --- a/myresume/staticfiles/img/icons/header-icons/video-red.svg +++ /dev/null @@ -1,13 +0,0 @@ - - Created with Raphaël 2.1.0 - - - - - diff --git a/myresume/staticfiles/img/icons/techs/django.png b/myresume/staticfiles/img/icons/techs/django.png index 275581ed28268000133a699162e2c60552cedd09..622ff9d8b7c8de9583ac261698da3936467a1d64 100644 GIT binary patch delta 1781 zcmVDXv`TG_L@UuEids}e#edkc&BEz9=PmQzu*giD zg`1r4m^bt8_uYH$ch0%@2?92Y#WE29yxJeNPoV$jzzK{rH4%7?&6c0qF+tOG|J&Xj>ypgpDwI zBUTN8_yw6TPJbW8UvM|jCmEAKtOSFu10gyH zgqSI!;q|!02);-5Oj2~8`y`QWC&0d$6a(wFeGEkvhkv24^dJSi@*#gl_b?0K>!usmS?edGZ~MBNz_C*&8B}*qH*}#<+g)0u5LmToy>h?D*u&SC zoBrk*@P7aTVNg}ucLw%+Q*0%$StMXI8o^{T@%5E!SBDRQ)shRDRW5Y3*<)O2FakQx zWnL{<4cBir!}&`WpuXWRxYE=JKb))*XTZ)r9VXzL7SGzP)_D5sl@Ni8xTaqMB$@Pm z{=JPkio+oS1Y%N39BQ|YL3!cA^+}nA_u@c^41a)Q)jtnNATT`%<3Nn4|5Jk{n*t+o zcAQSYR~lssIzh9O;LQ)#LFv&7I8}EVE?#bchQ=#U^ZOZSZM(;ydwY8|1n74YlBYt> z(p)GxT8YwH0{f1X!okXN*tT~U&#Kc1$U$Z_j#NIXNK5M-1>|6Dutn_BI6x04jXzj< zgnv7{Kd1h zI9!b2L)kX$+};m?CI&t^)xPw4NT~!ZQX0M7HE*eanRtZNer(%_h*8RQs3v9txaha< z-=#c5{w-y)lTu@c4BRdPRuVc`oWC6IwzVn%tqa@C$sD;@f63gwvO^MqP=6?@DC3UW0W3?f^gzD zt4hi4coIMJ!e{%x&`xofWX`-Bqx(U?seQvy_qd zGQ=;)5Mu)_TyK3O?`MW{RDXY{nK^1y7*TZ=VCNR2LnWoSx2XqT1VcA*(z;uPu7JE;JoU%KuCPxx1g!@4%))Nhlml?3UaH%k&R)6ySw>Wdb4((7o zjewknL}t%|A}m8mPStsoQ3{CvU~GxbPG?ti`{r(c1ftMw4wRR|gGcR(>&V&cJq&)C zxY#Lw@|g31J}!hKD@6K32C+_mu2ixEcb^K4S8fjz_65qRcfS zD-9ODk%yWe#+9CsdInTd6^?79<%DK zhusMnF^AtlcZT+~e%QQfptpI|z-%!aP!zK0I&op9$G_}B7@zpoiYLEr^YBr-UXAsC X%IJ#BMlu&*00000NkvXXu0mjfQ_NR) delta 1997 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 TjB!@RUnH}2>}hJjYJdOP7)g}h literal 0 HcmV?d00001 diff --git a/myresume/templates/myresume/about.html b/myresume/templates/myresume/about.html index d58bae9..cbd03fc 100644 --- a/myresume/templates/myresume/about.html +++ b/myresume/templates/myresume/about.html @@ -1,7 +1,10 @@ +{% load myresume_tags %} +{% load static %}