diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..db0666f Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md index d6afe58..d77d16d 100644 --- a/README.md +++ b/README.md @@ -1,72 +1,44 @@ -
-

Hello there ! Hi

-

- I'm Lucàs, a passionate developer from - France Image Icon - Rodez, France. -

-
-
-

I code with

- DataGrip - FileZilla - GitHub - Handlebars.js - IntelliJIdea - JetBrains - Jinja - Json - Markdown - PhpStorm - PyCharm - Symfony - Git - Pug - HTML5 - Figma - GitLab - Composer - diagrams.net - Linux - JavaScript - GNU Bash - Android - Android Studio - Bulma - MariaDB - Java - SQLite - Visual Studio Code - CSS3 - MySQL - Windows - Python - C - PostgreSQL - PHP - Insomnia - Bootstrap - Angular -
-
-

Where to find me

- - GitHub - - - LinkedIn - - - FreeCodeCamp - -
+# Hi, I'm Lucàs! 👋 -
+## 🚀 About Me +I'm a passionate developer from 🇫🇷 **Albi, France**. -
- Profile Views - FreeCodeCamp Points - Made with love -
\ No newline at end of file +## 🔗 Links +[![portfolio](https://img.shields.io/badge/my_portfolio-000?style=for-the-badge&logo=ko-fi&logoColor=white)](https://lucasvbr.github.io/Portfolio) +[![linkedin](https://img.shields.io/badge/linkedin-0e76a8?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/lucasvbr) +[![freecodecamp](https://img.shields.io/badge/freecodecamp-0a0a23?style=for-the-badge&logo=freecodecamp&logoColor=white)](https://www.freecodecamp.org/LucasVbr) + + +## 🛠 Skills +![Angular](https://img.shields.io/static/v1?label=&message=Angular&color=%23df204a&logo=angular&logoColor=white) +![Symfony](https://img.shields.io/static/v1?label=&message=Symfony&color=%23df2020&logo=symfony&logoColor=white) +![Git](https://img.shields.io/static/v1?label=&message=Git&color=%23df3e20&logo=git&logoColor=white) +![HTML5](https://img.shields.io/static/v1?label=&message=HTML5&color=%23df4920&logo=html5&logoColor=white) +![Figma](https://img.shields.io/static/v1?label=&message=Figma&color=%23df4b20&logo=figma&logoColor=white) +![JavaScript](https://img.shields.io/static/v1?label=&message=JavaScript&color=%23dfca20&logo=javascript&logoColor=white) +![Bash](https://img.shields.io/static/v1?label=&message=GNU+Bash&color=%235bdf20&logo=gnubash&logoColor=white) +![Android](https://img.shields.io/static/v1?label=&message=Android&color=%2320df75&logo=android&logoColor=white) +![Bulma](https://img.shields.io/static/v1?label=&message=Bulma&color=%2320dfc3&logo=bulma&logoColor=white) +![MariaDB](https://img.shields.io/static/v1?label=&message=MariaDB&color=%2320b3df&logo=mariadb&logoColor=white) +![Java](https://img.shields.io/static/v1?label=&message=Java&color=%2320b2df&logo=java&logoColor=white) +![SQLite](https://img.shields.io/static/v1?label=&message=SQLite&color=%2320a2df&logo=sqlite&logoColor=white) +![CSS3](https://img.shields.io/static/v1?label=&message=CSS3&color=%23208edf&logo=css3&logoColor=white) +![MySQL](https://img.shields.io/static/v1?label=&message=MySQL&color=%23208ddf&logo=mysql&logoColor=white) +![Python](https://img.shields.io/static/v1?label=&message=Python&color=%232088df&logo=python&logoColor=white) +![C](https://img.shields.io/static/v1?label=&message=C&color=%23207adf&logo=c&logoColor=white) +![PostgreSQL](https://img.shields.io/static/v1?label=&message=PostgreSQL&color=%232050df&logo=postgresql&logoColor=white) +![PHP](https://img.shields.io/static/v1?label=&message=PHP&color=%23202cdf&logo=php&logoColor=white) +![Bootstrap](https://img.shields.io/static/v1?label=&message=Bootstrap&color=%236d20df&logo=bootstrap&logoColor=white) + + +--- + +
+ +![Profile views](https://komarev.com/ghpvc/?username=lucasvbr&label=Profile%20views&color=0e75b6&style=flat) +![FreeCodeCamp Points](https://img.shields.io/freecodecamp/points/lucasvbr?label=FreeCodeCamp%20points) +![Made with love](https://img.shields.io/badge/-made%20with%20%E2%9D%A4%EF%B8%8F-red) + +
\ No newline at end of file diff --git a/compile.sh b/compile.sh new file mode 100644 index 0000000..2c5e4c4 --- /dev/null +++ b/compile.sh @@ -0,0 +1 @@ +deno run --allow-write --allow-read src/core.ts \ No newline at end of file diff --git a/img/Hi.gif b/img/Hi.gif deleted file mode 100644 index 721db8d..0000000 Binary files a/img/Hi.gif and /dev/null differ diff --git a/model/data.json b/model/data.json new file mode 100644 index 0000000..91abd4b --- /dev/null +++ b/model/data.json @@ -0,0 +1,119 @@ +{ + "name": "Lucàs", + "about": "I'm a passionate developer from 🇫🇷 **Albi, France**.", + "links": [ + { + "href": "https://lucasvbr.github.io/Portfolio", + "img": { + "src": "https://img.shields.io/badge/my_portfolio-000?style=for-the-badge&logo=ko-fi&logoColor=white", + "alt": "portfolio" + } + }, + { + "href": "https://www.linkedin.com/in/lucasvbr", + "img": { + "src": "https://img.shields.io/badge/linkedin-0e76a8?style=for-the-badge&logo=linkedin&logoColor=white", + "alt": "linkedin" + } + }, + { + "href": "https://www.freecodecamp.org/LucasVbr", + "img": { + "src": "https://img.shields.io/badge/freecodecamp-0a0a23?style=for-the-badge&logo=freecodecamp&logoColor=white", + "alt": "freecodecamp" + } + } + ], + "skills": [ + { + "src": "https://img.shields.io/static/v1?label=&message=Angular&color=%23df204a&logo=angular&logoColor=white", + "alt": "Angular" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Symfony&color=%23df2020&logo=symfony&logoColor=white", + "alt": "Symfony" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Git&color=%23df3e20&logo=git&logoColor=white", + "alt": "Git" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=HTML5&color=%23df4920&logo=html5&logoColor=white", + "alt": "HTML5" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Figma&color=%23df4b20&logo=figma&logoColor=white", + "alt": "Figma" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=JavaScript&color=%23dfca20&logo=javascript&logoColor=white", + "alt": "JavaScript" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=GNU+Bash&color=%235bdf20&logo=gnubash&logoColor=white", + "alt": "Bash" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Android&color=%2320df75&logo=android&logoColor=white", + "alt": "Android" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Bulma&color=%2320dfc3&logo=bulma&logoColor=white", + "alt": "Bulma" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=MariaDB&color=%2320b3df&logo=mariadb&logoColor=white", + "alt": "MariaDB" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Java&color=%2320b2df&logo=java&logoColor=white", + "alt": "Java" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=SQLite&color=%2320a2df&logo=sqlite&logoColor=white", + "alt": "SQLite" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=CSS3&color=%23208edf&logo=css3&logoColor=white", + "alt": "CSS3" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=MySQL&color=%23208ddf&logo=mysql&logoColor=white", + "alt": "MySQL" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Python&color=%232088df&logo=python&logoColor=white", + "alt": "Python" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=C&color=%23207adf&logo=c&logoColor=white", + "alt": "C" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=PostgreSQL&color=%232050df&logo=postgresql&logoColor=white", + "alt": "PostgreSQL" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=PHP&color=%23202cdf&logo=php&logoColor=white", + "alt": "PHP" + }, + { + "src": "https://img.shields.io/static/v1?label=&message=Bootstrap&color=%236d20df&logo=bootstrap&logoColor=white", + "alt": "Bootstrap" + } + ], + "badges": [ + { + "src": "https://komarev.com/ghpvc/?username=lucasvbr&label=Profile%20views&color=0e75b6&style=flat", + "alt": "Profile views" + }, + { + "src": "https://img.shields.io/freecodecamp/points/lucasvbr?label=FreeCodeCamp%20points", + "alt": "FreeCodeCamp Points" + }, + { + "src": "https://img.shields.io/badge/-made%20with%20%E2%9D%A4%EF%B8%8F-red", + "alt": "Made with love" + } + ] +} \ No newline at end of file diff --git a/model/macro.njk b/model/macro.njk new file mode 100644 index 0000000..63a3944 --- /dev/null +++ b/model/macro.njk @@ -0,0 +1,8 @@ +{% macro a(src, alt) -%} + [{{ alt }}]({{ src }}) +{%- endmacro %} + +{% macro img(src, alt) -%} + !{{ a(src, alt) }} +{%- endmacro %} + diff --git a/model/template.njk b/model/template.njk new file mode 100644 index 0000000..3368c4f --- /dev/null +++ b/model/template.njk @@ -0,0 +1,25 @@ +{% from "model/macro.njk" import a, img with context %} + +# Hi, I'm {{ name }}! 👋 + +## 🚀 About Me +{{ about }} + +## 🔗 Links +{% for link in links -%} + {{ a(link.href, img(link.img.src, link.img.alt)) }} +{% endfor %} + +## 🛠 Skills +{% for skill in skills -%} + {{ img(skill.src, skill.alt) }} +{% endfor %} + +--- + +
+ +{% for badge in badges -%} + {{ img(badge.src, badge.alt) }} +{% endfor %} +
\ No newline at end of file diff --git a/src/config.json b/src/config.json new file mode 100644 index 0000000..8de3499 --- /dev/null +++ b/src/config.json @@ -0,0 +1,5 @@ +{ + "template": "model/template.njk", + "data": "model/data.json", + "output": "README.md" +} \ No newline at end of file diff --git a/src/core.ts b/src/core.ts new file mode 100644 index 0000000..fc54c19 --- /dev/null +++ b/src/core.ts @@ -0,0 +1,9 @@ +import denjucks from "https://deno.land/x/denjucks/mod.js"; + +let { template, data, output } = JSON.parse(await Deno.readTextFile("src/config.json")); + +template = await Deno.readTextFile(template); +data = JSON.parse(await Deno.readTextFile(data)); + +const result = denjucks.renderString(template, data); +await Deno.writeTextFile(output, result); \ No newline at end of file