mirror of
https://github.com/LucasVbr/LucasVbr.git
synced 2026-05-16 09:05:34 +00:00
Deno is better ✨
This commit is contained in:
-10
@@ -1,10 +0,0 @@
|
||||
.idea/*
|
||||
.idea/**/*
|
||||
|
||||
venv/*
|
||||
venv/**/*
|
||||
|
||||
**/.DS_Store
|
||||
|
||||
build/
|
||||
node_modules/
|
||||
Generated
-5
@@ -1,5 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DenoSettings">
|
||||
<option name="useDeno" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="ASK" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+242
@@ -0,0 +1,242 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="b25cc8d3-396f-4036-b751-5d061242b2fc" name="Changes" comment="Add ts-node and some skills">
|
||||
<change afterPath="$PROJECT_DIR$/components/ImageComponent.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/components/LinkComponent.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/config.yaml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/main.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/models/BadgeModel.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/models/BannerModel.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/models/ConfigModel.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/models/LinkModel.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Banner.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Context.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Link.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/Skill.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/url_builder/BadgeUrlBuilder.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/url_builder/BannerUrlBuilder.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/url_builder/UrlBuilder.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/views/template.njk" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/core/FooterBadge.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/core/Link.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/core/Log.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/core/Skill.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/data/footerBadges.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/data/links.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/data/skills.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/index.ts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tsconfig.json" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/views/README.njk" beforeDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="DarkyenusTimeTracker">
|
||||
<option name="totalTimeSeconds" value="26120" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="JavaScript File" />
|
||||
<option value="TypeScript File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
||||
<map>
|
||||
<entry key="$PROJECT_DIR$" value="main" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
<component name="ProjectId" id="2D5NGsoG3YaWSwKstpEFyHAQuqo" />
|
||||
<component name="ProjectLevelVcsManager">
|
||||
<ConfirmationsSetting value="2" id="Add" />
|
||||
</component>
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"ASKED_MARK_IGNORED_FILES_AS_EXCLUDED": "true",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"WebServerToolWindowFactoryState": "false",
|
||||
"git-widget-placeholder": "dev",
|
||||
"javascript.nodejs.core.library.configured.version": "19.6.0",
|
||||
"javascript.nodejs.core.library.typings.version": "18.16.3",
|
||||
"last_directory_selection": "/Users/lucas/Documents/GitHub/LucasVbr/model",
|
||||
"last_opened_file_path": "/Users/lucas/Documents/GitHub/LucasVbr/models",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "preferences.pluginManager",
|
||||
"ts.external.directory.path": "/Users/lucas/Library/Application Support/JetBrains/Toolbox/apps/WebStorm/ch-0/231.8770.64/WebStorm.app/Contents/plugins/javascript-impl/jsLanguageServicesImpl/external",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/models" />
|
||||
<recent name="$PROJECT_DIR$/src" />
|
||||
<recent name="$PROJECT_DIR$/components" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/src/url" />
|
||||
<recent name="$PROJECT_DIR$/src" />
|
||||
<recent name="$PROJECT_DIR$/views" />
|
||||
<recent name="$PROJECT_DIR$" />
|
||||
<recent name="$PROJECT_DIR$/src/core" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="npm.start">
|
||||
<configuration name="Run Compilation" type="ShConfigurationType">
|
||||
<option name="SCRIPT_TEXT" value="" />
|
||||
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
|
||||
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/temp/compile.sh" />
|
||||
<option name="SCRIPT_OPTIONS" value="" />
|
||||
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
|
||||
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
|
||||
<option name="INTERPRETER_PATH" value="/bin/zsh" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="EXECUTE_IN_TERMINAL" value="true" />
|
||||
<option name="EXECUTE_SCRIPT_FILE" value="true" />
|
||||
<envs />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="start" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
||||
<package-json value="$PROJECT_DIR$/package.json" />
|
||||
<command value="run" />
|
||||
<scripts>
|
||||
<script value="start" />
|
||||
</scripts>
|
||||
<node-interpreter value="project" />
|
||||
<envs />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="npm.start" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="b25cc8d3-396f-4036-b751-5d061242b2fc" name="Changes" comment="" />
|
||||
<created>1659984892827</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1659984892827</updated>
|
||||
<workItem from="1659984894171" duration="261000" />
|
||||
<workItem from="1659985596930" duration="100000" />
|
||||
<workItem from="1659985743639" duration="4987000" />
|
||||
<workItem from="1660046704138" duration="11000" />
|
||||
<workItem from="1660055839996" duration="3500000" />
|
||||
<workItem from="1660157016877" duration="8032000" />
|
||||
<workItem from="1660657893814" duration="1890000" />
|
||||
<workItem from="1667236638691" duration="677000" />
|
||||
<workItem from="1671566677749" duration="55000" />
|
||||
<workItem from="1671566739098" duration="118000" />
|
||||
<workItem from="1671566863673" duration="788000" />
|
||||
<workItem from="1671567668770" duration="6242000" />
|
||||
<workItem from="1671618913806" duration="12806000" />
|
||||
<workItem from="1671633249894" duration="307000" />
|
||||
<workItem from="1672338960868" duration="1000" />
|
||||
<workItem from="1672346041833" duration="3016000" />
|
||||
<workItem from="1673549750127" duration="1582000" />
|
||||
<workItem from="1673603557469" duration="10000" />
|
||||
<workItem from="1682800101629" duration="27322000" />
|
||||
<workItem from="1683016877648" duration="634000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="Add OpenClassRooms link">
|
||||
<created>1660658552230</created>
|
||||
<option name="number" value="00001" />
|
||||
<option name="presentableId" value="LOCAL-00001" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1660658552230</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00002" summary="Add Exercism link">
|
||||
<created>1667236825428</created>
|
||||
<option name="number" value="00002" />
|
||||
<option name="presentableId" value="LOCAL-00002" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1667236825428</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00003" summary="Switch to Node.JS stack">
|
||||
<created>1671633149559</created>
|
||||
<option name="number" value="00003" />
|
||||
<option name="presentableId" value="LOCAL-00003" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671633149559</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00004" summary="Add package.json and typescript configuration files">
|
||||
<created>1671633329692</created>
|
||||
<option name="number" value="00004" />
|
||||
<option name="presentableId" value="LOCAL-00004" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1671633329692</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00005" summary="Add ts-node and some skills">
|
||||
<created>1672348440794</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1672348440794</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00006" summary="Add ts-node and some skills">
|
||||
<created>1672348457528</created>
|
||||
<option name="number" value="00006" />
|
||||
<option name="presentableId" value="LOCAL-00006" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1672348457528</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="7" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="Add OpenClassRooms link" />
|
||||
<MESSAGE value="Add Exercism link" />
|
||||
<MESSAGE value="Switch to Node.JS stack" />
|
||||
<MESSAGE value="Add package.json and typescript configuration files" />
|
||||
<MESSAGE value="Add ts-node and some skills" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="Add ts-node and some skills" />
|
||||
</component>
|
||||
<component name="XSLT-Support.FileAssociations.UIState">
|
||||
<expand />
|
||||
<select />
|
||||
</component>
|
||||
</project>
|
||||
@@ -1,45 +1,45 @@
|
||||

|
||||

|
||||
|
||||
## 🚀 About Me
|
||||
I'm a passionate developer from 🇫🇷 **Albi, France**.
|
||||
I'm a passionate developer from 🇫🇷 **Albi, France**.
|
||||
|
||||
## 🔗 Links
|
||||
[](https://lucasvbr.github.io/links/?portfolio)
|
||||
[](https://www.linkedin.com/in/lucasvbr)
|
||||
[](https://www.freecodecamp.org/LucasVbr)
|
||||
[](https://openclassrooms.com/fr/members/97j9zltv6225)
|
||||
[](https://exercism.org/profiles/LucasVbr)
|
||||
[](https://lucasvbr.github.io/links/?portfolio)
|
||||
[](https://www.linkedin.com/in/lucasvbr)
|
||||
[](https://www.freecodecamp.org/LucasVbr)
|
||||
[](https://openclassrooms.com/fr/members/97j9zltv6225)
|
||||
[](https://exercism.org/profiles/LucasVbr)
|
||||
|
||||
|
||||
## 🛠 Skills
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
---
|
||||
@@ -48,7 +48,7 @@ I'm a passionate developer from 🇫🇷 **Albi, France**.
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
const ImageComponent = (label: string, url: URL) => ``;
|
||||
|
||||
export default ImageComponent
|
||||
@@ -0,0 +1,3 @@
|
||||
const LinkComponent = (label: string, url: string) => `[${label}](${url})`;
|
||||
|
||||
export default LinkComponent;
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
file:
|
||||
template: "template.njk"
|
||||
output: "README.md"
|
||||
|
||||
view:
|
||||
userName: "LucasVbr"
|
||||
|
||||
banner:
|
||||
type: "glitch"
|
||||
text1: "Hi I'm Lucàs👋"
|
||||
width: 1000
|
||||
height: 400
|
||||
|
||||
about: "I'm a passionate developer from 🇫🇷 **Albi, France**."
|
||||
|
||||
links:
|
||||
- label:
|
||||
message: "My Portfolio"
|
||||
logo: "ko-fi"
|
||||
url: "https://lucasvbr.github.io/links/?portfolio"
|
||||
|
||||
- label:
|
||||
message: "Linkedin"
|
||||
color: "0e76a8"
|
||||
url: "https://www.linkedin.com/in/lucasvbr"
|
||||
|
||||
- label:
|
||||
message: "FreeCodeCamp"
|
||||
color: "0a0a23"
|
||||
url: "https://www.freecodecamp.org/LucasVbr"
|
||||
|
||||
- label:
|
||||
message: "OpenClassRooms"
|
||||
color: "7451eb"
|
||||
url: "https://openclassrooms.com/fr/members/97j9zltv6225"
|
||||
|
||||
- label:
|
||||
message: "Exercism"
|
||||
color: "2e57e8"
|
||||
url: "https://exercism.org/profiles/LucasVbr"
|
||||
|
||||
skills:
|
||||
- message: "Android"
|
||||
color: "3DDC84"
|
||||
|
||||
- message: "Angular"
|
||||
color: "DD0031"
|
||||
|
||||
- message: "Bootstrap"
|
||||
color: "7952B3"
|
||||
|
||||
- message: "Bulma"
|
||||
color: "00D1B2"
|
||||
|
||||
- message: "C"
|
||||
color: "A8B9CC"
|
||||
|
||||
- message: "CSS3"
|
||||
color: "1572B6"
|
||||
|
||||
- message: "Deno"
|
||||
|
||||
- message: "Docker"
|
||||
color: "2496ED"
|
||||
|
||||
- message: "Express"
|
||||
|
||||
- message: "Figma"
|
||||
color: "F24E1E"
|
||||
|
||||
- message: "Git"
|
||||
color: "F05032"
|
||||
|
||||
- message: "GNU Bash"
|
||||
color: "4EAA25"
|
||||
|
||||
- message: "HTML5"
|
||||
color: "E34F26"
|
||||
|
||||
- message: "JavaScript"
|
||||
color: "F7DF1E"
|
||||
|
||||
- message: "MariaDB"
|
||||
color: "003545"
|
||||
|
||||
- message: "MongoDB"
|
||||
color: "47A248"
|
||||
|
||||
- message: "MySQL"
|
||||
color: "4479A1"
|
||||
|
||||
- message: "Node.js"
|
||||
color: "339933"
|
||||
logo: "nodedotjs"
|
||||
|
||||
- message: "Nunjucks"
|
||||
color: "1C4913"
|
||||
|
||||
- message: "OCaml"
|
||||
color: "EC6813"
|
||||
|
||||
- message: "PHP"
|
||||
color: "777BB4"
|
||||
|
||||
- message: "PostgreSQL"
|
||||
color: "4169E1"
|
||||
|
||||
- message: "Pug"
|
||||
color: "A86454"
|
||||
|
||||
- message: "Python"
|
||||
color: "3776AB"
|
||||
|
||||
- message: "React"
|
||||
color: "61DAFB"
|
||||
|
||||
- message: "SQLite"
|
||||
color: "003B57"
|
||||
|
||||
- message: "Symfony"
|
||||
|
||||
- message: "TypeScript"
|
||||
color: "3178C6"
|
||||
|
||||
footer:
|
||||
- ""
|
||||
- ""
|
||||
- ""
|
||||
@@ -0,0 +1,18 @@
|
||||
import {parse} from 'https://deno.land/std@0.82.0/encoding/yaml.ts';
|
||||
import nunjucks from 'https://deno.land/x/nunjucks@3.2.3-2/mod.js';
|
||||
import makeContext from './src/Context.ts';
|
||||
import type ConfigModel from './models/ConfigModel.ts';
|
||||
|
||||
// Load Config file
|
||||
const config: ConfigModel = parse(await Deno.readTextFile('config.yaml')) as ConfigModel;
|
||||
const context = makeContext(config.view)
|
||||
|
||||
// Render
|
||||
nunjucks.configure('views/', {autoescape: true});
|
||||
nunjucks.render(config.file.template, context, (err, res) => {
|
||||
if (err) return console.error(err);
|
||||
|
||||
Deno.writeTextFile(config.file.output, res ?? '')
|
||||
.then(() => console.info(`[INFO] ${config.file.output} successfully generated`))
|
||||
.catch(err => console.error(err));
|
||||
});
|
||||
@@ -0,0 +1,13 @@
|
||||
type BadgeModel = {
|
||||
label?: string,
|
||||
message?: string,
|
||||
color?: string,
|
||||
logo?: string,
|
||||
style: "plastic" | "flat" | "flat-square" | "for-the-badge" | "social",
|
||||
logoColor?: string,
|
||||
logoWidth?: number,
|
||||
link?: string,
|
||||
labelColor?: string,
|
||||
cacheSeconds?: number,
|
||||
}
|
||||
export default BadgeModel;
|
||||
@@ -0,0 +1,9 @@
|
||||
type BannerModel = {
|
||||
text1: string,
|
||||
text2?: string,
|
||||
type: "origin" | "textBox" | "glitch" | "luminance" | "typeWriter" | "rainbow",
|
||||
width: number,
|
||||
height: number,
|
||||
}
|
||||
|
||||
export default BannerModel;
|
||||
@@ -0,0 +1,20 @@
|
||||
import type BannerModel from './BannerModel.ts';
|
||||
import type LinkModel from './LinkModel.ts';
|
||||
import type BadgeModel from './BadgeModel.ts';
|
||||
|
||||
type ConfigModel = {
|
||||
file: {
|
||||
template: string,
|
||||
output: string
|
||||
},
|
||||
view: {
|
||||
userName: string,
|
||||
banner: BannerModel,
|
||||
about: string,
|
||||
links: LinkModel[],
|
||||
skills: BadgeModel[],
|
||||
footer: string[]
|
||||
}
|
||||
}
|
||||
|
||||
export default ConfigModel;
|
||||
@@ -0,0 +1,8 @@
|
||||
import BadgeModel from './BadgeModel.ts';
|
||||
|
||||
type LinkModel = {
|
||||
label: BadgeModel,
|
||||
url: string
|
||||
}
|
||||
|
||||
export default LinkModel
|
||||
Generated
-425
@@ -1,425 +0,0 @@
|
||||
{
|
||||
"name": "lucasvbr",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "lucasvbr",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"nunjucks": "^3.2.3",
|
||||
"simple-icons": "^8.1.0",
|
||||
"ts-node": "^10.9.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.11.17",
|
||||
"@types/nunjucks": "^3.2.1",
|
||||
"@types/simple-icons": "^5.21.1",
|
||||
"typescript": "^4.9.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@cspotcode/source-map-support": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
|
||||
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
|
||||
"dependencies": {
|
||||
"@jridgewell/trace-mapping": "0.3.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/resolve-uri": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
|
||||
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.4.14",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
|
||||
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
|
||||
},
|
||||
"node_modules/@jridgewell/trace-mapping": {
|
||||
"version": "0.3.9",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
|
||||
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
|
||||
"dependencies": {
|
||||
"@jridgewell/resolve-uri": "^3.0.3",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.10"
|
||||
}
|
||||
},
|
||||
"node_modules/@tsconfig/node10": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
|
||||
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
|
||||
},
|
||||
"node_modules/@tsconfig/node12": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
|
||||
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
|
||||
},
|
||||
"node_modules/@tsconfig/node14": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
|
||||
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
|
||||
},
|
||||
"node_modules/@tsconfig/node16": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
|
||||
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "18.11.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
|
||||
"integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng=="
|
||||
},
|
||||
"node_modules/@types/nunjucks": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.2.1.tgz",
|
||||
"integrity": "sha512-hUh5HIC7peH+0MvlYU5KM2RydWxG1mBceivHsQGwlelU9zlczLICyJmjMwgjkI3m0+N50n46GVHkw35lIim6LQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/simple-icons": {
|
||||
"version": "5.21.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/simple-icons/-/simple-icons-5.21.1.tgz",
|
||||
"integrity": "sha512-exnKcr2DxKe0UsGIjvw/hv88OAWkxwPped5iq7YlgC9flaxAJHHvsjmq45Sr7FYjjyrwJI8VFh85xzY6k+L5WQ==",
|
||||
"deprecated": "This is a stub types definition. simple-icons provides its own type definitions, so you do not need this installed.",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"simple-icons": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/a-sync-waterfall": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
|
||||
"integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA=="
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/acorn-walk": {
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/arg": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
|
||||
},
|
||||
"node_modules/asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
|
||||
"integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/create-require": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
|
||||
},
|
||||
"node_modules/diff": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||
"engines": {
|
||||
"node": ">=0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/make-error": {
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
|
||||
},
|
||||
"node_modules/nunjucks": {
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz",
|
||||
"integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==",
|
||||
"dependencies": {
|
||||
"a-sync-waterfall": "^1.0.0",
|
||||
"asap": "^2.0.3",
|
||||
"commander": "^5.1.0"
|
||||
},
|
||||
"bin": {
|
||||
"nunjucks-precompile": "bin/precompile"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"chokidar": "^3.3.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"chokidar": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/simple-icons": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-8.1.0.tgz",
|
||||
"integrity": "sha512-N2JKvoRoiFqsRaHiKLNHf6GzpfLqO+Bgoijq54rzIosfQIhmxgCiAKYW9ejzw0arCAeoQ3RiG18fIZct6xBXFA==",
|
||||
"engines": {
|
||||
"node": ">=0.12.18"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/simple-icons"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-node": {
|
||||
"version": "10.9.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
|
||||
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
|
||||
"dependencies": {
|
||||
"@cspotcode/source-map-support": "^0.8.0",
|
||||
"@tsconfig/node10": "^1.0.7",
|
||||
"@tsconfig/node12": "^1.0.7",
|
||||
"@tsconfig/node14": "^1.0.0",
|
||||
"@tsconfig/node16": "^1.0.2",
|
||||
"acorn": "^8.4.1",
|
||||
"acorn-walk": "^8.1.1",
|
||||
"arg": "^4.1.0",
|
||||
"create-require": "^1.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"make-error": "^1.1.1",
|
||||
"v8-compile-cache-lib": "^3.0.1",
|
||||
"yn": "3.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"ts-node": "dist/bin.js",
|
||||
"ts-node-cwd": "dist/bin-cwd.js",
|
||||
"ts-node-esm": "dist/bin-esm.js",
|
||||
"ts-node-script": "dist/bin-script.js",
|
||||
"ts-node-transpile-only": "dist/bin-transpile.js",
|
||||
"ts-script": "dist/bin-script-deprecated.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@swc/core": ">=1.2.50",
|
||||
"@swc/wasm": ">=1.2.50",
|
||||
"@types/node": "*",
|
||||
"typescript": ">=2.7"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@swc/core": {
|
||||
"optional": true
|
||||
},
|
||||
"@swc/wasm": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "4.9.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
|
||||
"integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/v8-compile-cache-lib": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
||||
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
|
||||
},
|
||||
"node_modules/yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@cspotcode/source-map-support": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
|
||||
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
|
||||
"requires": {
|
||||
"@jridgewell/trace-mapping": "0.3.9"
|
||||
}
|
||||
},
|
||||
"@jridgewell/resolve-uri": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
|
||||
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
|
||||
},
|
||||
"@jridgewell/sourcemap-codec": {
|
||||
"version": "1.4.14",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
|
||||
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
|
||||
},
|
||||
"@jridgewell/trace-mapping": {
|
||||
"version": "0.3.9",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
|
||||
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
|
||||
"requires": {
|
||||
"@jridgewell/resolve-uri": "^3.0.3",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.10"
|
||||
}
|
||||
},
|
||||
"@tsconfig/node10": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
|
||||
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
|
||||
},
|
||||
"@tsconfig/node12": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
|
||||
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
|
||||
},
|
||||
"@tsconfig/node14": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
|
||||
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
|
||||
},
|
||||
"@tsconfig/node16": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
|
||||
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "18.11.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
|
||||
"integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng=="
|
||||
},
|
||||
"@types/nunjucks": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.2.1.tgz",
|
||||
"integrity": "sha512-hUh5HIC7peH+0MvlYU5KM2RydWxG1mBceivHsQGwlelU9zlczLICyJmjMwgjkI3m0+N50n46GVHkw35lIim6LQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/simple-icons": {
|
||||
"version": "5.21.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/simple-icons/-/simple-icons-5.21.1.tgz",
|
||||
"integrity": "sha512-exnKcr2DxKe0UsGIjvw/hv88OAWkxwPped5iq7YlgC9flaxAJHHvsjmq45Sr7FYjjyrwJI8VFh85xzY6k+L5WQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"simple-icons": "*"
|
||||
}
|
||||
},
|
||||
"a-sync-waterfall": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
|
||||
"integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA=="
|
||||
},
|
||||
"acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
|
||||
},
|
||||
"acorn-walk": {
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
|
||||
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
|
||||
},
|
||||
"asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
|
||||
},
|
||||
"commander": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
|
||||
"integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
|
||||
},
|
||||
"create-require": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
|
||||
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
|
||||
},
|
||||
"diff": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
|
||||
},
|
||||
"nunjucks": {
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz",
|
||||
"integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==",
|
||||
"requires": {
|
||||
"a-sync-waterfall": "^1.0.0",
|
||||
"asap": "^2.0.3",
|
||||
"commander": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"simple-icons": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-8.1.0.tgz",
|
||||
"integrity": "sha512-N2JKvoRoiFqsRaHiKLNHf6GzpfLqO+Bgoijq54rzIosfQIhmxgCiAKYW9ejzw0arCAeoQ3RiG18fIZct6xBXFA=="
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "10.9.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
|
||||
"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
|
||||
"requires": {
|
||||
"@cspotcode/source-map-support": "^0.8.0",
|
||||
"@tsconfig/node10": "^1.0.7",
|
||||
"@tsconfig/node12": "^1.0.7",
|
||||
"@tsconfig/node14": "^1.0.0",
|
||||
"@tsconfig/node16": "^1.0.2",
|
||||
"acorn": "^8.4.1",
|
||||
"acorn-walk": "^8.1.1",
|
||||
"arg": "^4.1.0",
|
||||
"create-require": "^1.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"make-error": "^1.1.1",
|
||||
"v8-compile-cache-lib": "^3.0.1",
|
||||
"yn": "3.1.1"
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.9.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
|
||||
"integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg=="
|
||||
},
|
||||
"v8-compile-cache-lib": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
||||
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"name": "lucasvbr",
|
||||
"version": "1.0.0",
|
||||
"description": "LucasVbr Github Profile",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "ts-node src/index.ts"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/LucasVbr/LucasVbr.git"
|
||||
},
|
||||
"author": "LucasVbr",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/LucasVbr/LucasVbr/issues"
|
||||
},
|
||||
"homepage": "https://github.com/LucasVbr/LucasVbr#readme",
|
||||
"dependencies": {
|
||||
"nunjucks": "^3.2.3",
|
||||
"simple-icons": "^8.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.11.17",
|
||||
"@types/nunjucks": "^3.2.1",
|
||||
"@types/simple-icons": "^5.21.1",
|
||||
"typescript": "^4.9.4"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import ImageComponent from '../components/ImageComponent.ts';
|
||||
import type BannerModel from '../models/BannerModel.ts';
|
||||
import BannerUrlBuilder from './url_builder/BannerUrlBuilder.ts';
|
||||
|
||||
export default class Banner {
|
||||
|
||||
constructor(private model: BannerModel) {
|
||||
};
|
||||
|
||||
toString(): string {
|
||||
const url = new BannerUrlBuilder()
|
||||
.setParameters({...this.model})
|
||||
.build()
|
||||
;
|
||||
|
||||
return ImageComponent(this.model.text1, url);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import Skill from './Skill.ts';
|
||||
import Banner from './Banner.ts';
|
||||
import Link from './Link.ts';
|
||||
|
||||
export default function makeContext(viewConfig) {
|
||||
return {
|
||||
...viewConfig,
|
||||
banner: new Banner(viewConfig.banner).toString(),
|
||||
links: viewConfig.links.map(link => (new Link(link)).toString()),
|
||||
skills: viewConfig.skills.map(skill => (new Skill(skill)).toString()),
|
||||
}
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import BadgeUrlBuilder from './url_builder/BadgeUrlBuilder.ts';
|
||||
import ImageComponent from '../components/ImageComponent.ts';
|
||||
import LinkModel from '../models/LinkModel.ts';
|
||||
import LinkComponent from '../components/LinkComponent.ts';
|
||||
|
||||
export default class Link {
|
||||
|
||||
constructor(private model: LinkModel) {}
|
||||
|
||||
handleLabel() {
|
||||
const {label: badge} = this.model;
|
||||
const defaultLogo = badge.message.toLowerCase().replace(/\s+/g, '')
|
||||
|
||||
const url = new BadgeUrlBuilder()
|
||||
.setParameters({
|
||||
...badge,
|
||||
style: "for-the-badge",
|
||||
logo: badge.logo ?? defaultLogo,
|
||||
color: badge.color ?? '000',
|
||||
},
|
||||
)
|
||||
.build()
|
||||
;
|
||||
|
||||
return ImageComponent(badge.message, url);
|
||||
}
|
||||
|
||||
toString(): string {
|
||||
const label = this.handleLabel().toString()
|
||||
return LinkComponent(label, this.model.url).toString()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
import BadgeUrlBuilder from './url_builder/BadgeUrlBuilder.ts';
|
||||
import ImageComponent from '../components/ImageComponent.ts';
|
||||
import type SkillModel from '../models/SkillModel.ts';
|
||||
|
||||
export default class Skill {
|
||||
|
||||
constructor(private model: SkillModel) {};
|
||||
|
||||
toString(): string {
|
||||
const defaultLogo = this.model.message.toLowerCase().replace(/\s+/g, '');
|
||||
|
||||
const url = new BadgeUrlBuilder()
|
||||
.setParameters({
|
||||
...this.model,
|
||||
color: this.model.color ?? '000',
|
||||
logo: this.model.logo ?? defaultLogo
|
||||
},
|
||||
)
|
||||
.build()
|
||||
;
|
||||
|
||||
return ImageComponent(this.model.message, url);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
type FooterBadge = {
|
||||
title: string
|
||||
shield: string
|
||||
}
|
||||
|
||||
export default FooterBadge;
|
||||
@@ -1,7 +0,0 @@
|
||||
type Link = {
|
||||
title: string
|
||||
shield: string
|
||||
url: string
|
||||
}
|
||||
|
||||
export default Link;
|
||||
@@ -1,32 +0,0 @@
|
||||
class Log {
|
||||
colors = {
|
||||
red: '\x1b[31m',
|
||||
green: '\x1b[32m',
|
||||
yellow: '\x1b[33m',
|
||||
};
|
||||
|
||||
private readonly logFunction: (message?: any, ...optionalParams: any[]) => void;
|
||||
|
||||
constructor(logFunction: (message?: any, ...optionalParams: any[]) => void) {
|
||||
this.logFunction = logFunction;
|
||||
}
|
||||
|
||||
info(message: string): void {
|
||||
this.logFunction(message);
|
||||
}
|
||||
|
||||
success(message: string): void {
|
||||
this.logFunction(this.colors.green, message);
|
||||
}
|
||||
|
||||
error(message: string): void {
|
||||
this.logFunction(this.colors.red, message);
|
||||
}
|
||||
|
||||
warning(message: string): void {
|
||||
this.logFunction(this.colors.yellow, message);
|
||||
}
|
||||
}
|
||||
|
||||
const log = new Log(console.log);
|
||||
export default log;
|
||||
@@ -1,37 +0,0 @@
|
||||
import {SimpleIcon} from 'simple-icons/types';
|
||||
|
||||
export default class Skill {
|
||||
private title: string;
|
||||
private slug: string;
|
||||
private shield: string;
|
||||
|
||||
constructor(icon: SimpleIcon) {
|
||||
this.title = icon.title;
|
||||
this.slug = icon.slug;
|
||||
this.shield = this.buildShield(icon);
|
||||
}
|
||||
|
||||
private buildShield(icon: SimpleIcon): string {
|
||||
const baseUrl = 'https://img.shields.io/static/v1';
|
||||
const params = {
|
||||
label: '',
|
||||
message: icon.title,
|
||||
color: icon.hex,
|
||||
logo: icon.slug,
|
||||
logoColor: 'white',
|
||||
};
|
||||
|
||||
const shieldUrl = new URL(baseUrl);
|
||||
Object.entries(params).forEach(param => {
|
||||
const [key, value] = param;
|
||||
shieldUrl.searchParams.append(key, value);
|
||||
});
|
||||
return shieldUrl.toString();
|
||||
}
|
||||
|
||||
public static sortBySlug(a: Skill, b: Skill) {
|
||||
if (a.slug < b.slug) return -1;
|
||||
if (a.slug > b.slug) return 1;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
import FooterBadge from '../core/FooterBadge';
|
||||
|
||||
const footerBadges: FooterBadge[] = [
|
||||
{
|
||||
title: 'Profile Views',
|
||||
shield: 'https://komarev.com/ghpvc/?username=lucasvbr&label=Profile%20views&color=0e75b6&style=flat',
|
||||
},
|
||||
{
|
||||
title: "FreeCodeCamp Points",
|
||||
shield: "https://img.shields.io/freecodecamp/points/lucasvbr?label=FreeCodeCamp%20points"
|
||||
},
|
||||
{
|
||||
title: "Made with love",
|
||||
shield: "https://img.shields.io/badge/-made%20with%20%E2%9D%A4%EF%B8%8F-red"
|
||||
}
|
||||
];
|
||||
|
||||
export default footerBadges;
|
||||
@@ -1,31 +0,0 @@
|
||||
import Link from '../core/Link';
|
||||
|
||||
const links: Link[] = [
|
||||
{
|
||||
title: 'Portfolio',
|
||||
shield: 'https://img.shields.io/badge/my_portfolio-000?style=for-the-badge&logo=ko-fi&logoColor=white',
|
||||
url: 'https://lucasvbr.github.io/links/?portfolio',
|
||||
},
|
||||
{
|
||||
title: 'Linkedin Profile',
|
||||
shield: 'https://img.shields.io/badge/linkedin-0e76a8?style=for-the-badge&logo=linkedin&logoColor=white',
|
||||
url: 'https://www.linkedin.com/in/lucasvbr',
|
||||
},
|
||||
{
|
||||
title: 'FreeCodeCamp Profile',
|
||||
shield: 'https://img.shields.io/badge/freecodecamp-0a0a23?style=for-the-badge&logo=freecodecamp&logoColor=white',
|
||||
url: 'https://www.freecodecamp.org/LucasVbr',
|
||||
},
|
||||
{
|
||||
title: 'OpenClassRooms Profile',
|
||||
shield: 'https://img.shields.io/badge/openclassrooms-7451eb?style=for-the-badge&logo=openclassrooms&logoColor=white',
|
||||
url: 'https://openclassrooms.com/fr/members/97j9zltv6225',
|
||||
},
|
||||
{
|
||||
title: 'Exercism Profile',
|
||||
shield: 'https://img.shields.io/badge/exercism-2e57e8?style=for-the-badge&logo=exercism&logoColor=white',
|
||||
url: 'https://exercism.org/profiles/LucasVbr',
|
||||
},
|
||||
];
|
||||
|
||||
export default links;
|
||||
@@ -1,39 +0,0 @@
|
||||
import {SimpleIcon} from 'simple-icons/types';
|
||||
import icons from 'simple-icons';
|
||||
import Skill from '../core/Skill';
|
||||
|
||||
const LIST_OF_ICONS: SimpleIcon[] = [
|
||||
icons.siAngular,
|
||||
icons.siSymfony,
|
||||
icons.siGit,
|
||||
icons.siHtml5,
|
||||
icons.siFigma,
|
||||
icons.siJavascript,
|
||||
icons.siGnubash,
|
||||
icons.siAndroid,
|
||||
icons.siBulma,
|
||||
icons.siMariadb,
|
||||
icons.siSqlite,
|
||||
icons.siCss3,
|
||||
icons.siMysql,
|
||||
icons.siPython,
|
||||
icons.siC,
|
||||
icons.siPostgresql,
|
||||
icons.siPhp,
|
||||
icons.siBootstrap,
|
||||
icons.siExpress,
|
||||
icons.siNodedotjs,
|
||||
icons.siDeno,
|
||||
icons.siTypescript,
|
||||
icons.siOcaml,
|
||||
icons.siMongodb,
|
||||
icons.siReact,
|
||||
icons.siDocker,
|
||||
icons.siPug,
|
||||
icons.siNunjucks,
|
||||
];
|
||||
|
||||
export default function getSkills(): Skill[] {
|
||||
return LIST_OF_ICONS.map((icon: SimpleIcon) => new Skill(icon)).
|
||||
sort(Skill.sortBySlug);
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
import {writeFile} from 'fs/promises';
|
||||
import nunjucks from 'nunjucks';
|
||||
import getSkills from './data/skills';
|
||||
import Skill from './core/Skill';
|
||||
import log from './core/Log';
|
||||
import links from './data/links';
|
||||
import footerBadges from './data/footerBadges';
|
||||
|
||||
const TEMPLATE_FILE: string = 'README.njk';
|
||||
const OUTPUT_FILE: string = 'README.md';
|
||||
|
||||
const skills: Skill[] = getSkills();
|
||||
|
||||
nunjucks.configure('views/');
|
||||
nunjucks.render(TEMPLATE_FILE, {skills, links, footerBadges}, (err, renderView : string | null) => {
|
||||
if (err) {
|
||||
log.error(err.message)
|
||||
return;
|
||||
}
|
||||
|
||||
writeFile(OUTPUT_FILE, renderView ?? "")
|
||||
.then(() => log.success(`${OUTPUT_FILE} successfully generated`))
|
||||
.catch((err: string) => console.error(err));
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import type BadgeModel from '../../models/BadgeModel.ts';
|
||||
import UrlBuilder from './UrlBuilder.ts';
|
||||
|
||||
export default class BadgeUrlBuilder extends UrlBuilder {
|
||||
static BASE_URL = 'https://img.shields.io/static/v1';
|
||||
static DEFAULT_PARAMETERS: BadgeModel = {style: 'flat', label: " ", logoColor: "white"};
|
||||
|
||||
constructor(parameters?: BadgeModel) {
|
||||
super(BadgeUrlBuilder.BASE_URL,
|
||||
parameters,
|
||||
BadgeUrlBuilder.DEFAULT_PARAMETERS,
|
||||
);
|
||||
};
|
||||
|
||||
public setParameters(parameters: BadgeModel): this {
|
||||
return super.setParameters(parameters);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import UrlBuilder from './UrlBuilder.ts';
|
||||
import type BannerModel from '../../models/BannerModel.ts';
|
||||
|
||||
export default class BannerUrlBuilder extends UrlBuilder {
|
||||
static BASE_URL = 'https://svg-banners.vercel.app/api';
|
||||
|
||||
constructor(parameters: BannerModel) {
|
||||
super(BannerUrlBuilder.BASE_URL, parameters, {});
|
||||
}
|
||||
|
||||
public setParameters(parameters: BannerModel): this {
|
||||
return super.setParameters(parameters);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
export default abstract class UrlBuilder {
|
||||
|
||||
private parameters;
|
||||
|
||||
protected constructor(
|
||||
private baseUrl: string,
|
||||
parameters,
|
||||
private defaultParameters,
|
||||
) {
|
||||
this.parameters = {...defaultParameters, ...parameters};
|
||||
};
|
||||
|
||||
setParameters(parameters) {
|
||||
this.parameters = {...this.parameters, ...parameters};
|
||||
return this;
|
||||
}
|
||||
|
||||
build(): URL {
|
||||
const url = new URL(this.baseUrl);
|
||||
for (const [key, value] of Object.entries(this.parameters)) {
|
||||
if (value) url.searchParams.set(key, value);
|
||||
}
|
||||
return url;
|
||||
};
|
||||
}
|
||||
-103
@@ -1,103 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
/* Visit https://aka.ms/tsconfig to read more about this file */
|
||||
|
||||
/* Projects */
|
||||
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
||||
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
|
||||
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
|
||||
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
|
||||
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
|
||||
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
||||
|
||||
/* Language and Environment */
|
||||
"target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
||||
"lib": ["es6"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
||||
// "jsx": "preserve", /* Specify what JSX core is generated. */
|
||||
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
|
||||
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
|
||||
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
|
||||
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
|
||||
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
|
||||
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
|
||||
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
||||
"moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
||||
|
||||
/* Modules */
|
||||
"module": "commonjs", /* Specify what module core is generated. */
|
||||
"rootDir": "src", /* Specify the root folder within your source files. */
|
||||
// "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
|
||||
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
||||
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
|
||||
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
|
||||
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
|
||||
"resolveJsonModule": true, /* Enable importing .json files. */
|
||||
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
|
||||
|
||||
/* JavaScript Support */
|
||||
"allowJs": false, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
||||
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
||||
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
||||
|
||||
/* Emit */
|
||||
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
||||
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
|
||||
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
|
||||
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
|
||||
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
|
||||
"outDir": "build", /* Specify an output folder for all emitted files. */
|
||||
// "removeComments": true, /* Disable emitting comments. */
|
||||
// "noEmit": true, /* Disable emitting files from a compilation. */
|
||||
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
||||
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
|
||||
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
|
||||
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source core. */
|
||||
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
|
||||
// "inlineSources": true, /* Include source core in the sourcemaps inside the emitted JavaScript. */
|
||||
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
|
||||
// "newLine": "crlf", /* Set the newline character for emitting files. */
|
||||
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
|
||||
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
|
||||
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
|
||||
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated core. */
|
||||
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
|
||||
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
|
||||
|
||||
/* Interop Constraints */
|
||||
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
||||
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
||||
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
||||
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
||||
|
||||
/* Type Checking */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
||||
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
|
||||
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
|
||||
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
|
||||
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
|
||||
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
|
||||
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
|
||||
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
|
||||
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
|
||||
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
|
||||
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
|
||||
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
|
||||
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
|
||||
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
|
||||
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
|
||||
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
|
||||
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
|
||||
// "allowUnreachableCode": true, /* Disable error reporting for unreachable core. */
|
||||
|
||||
/* Completeness */
|
||||
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
||||
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||

|
||||
|
||||
## 🚀 About Me
|
||||
I'm a passionate developer from 🇫🇷 **Albi, France**.
|
||||
|
||||
## 🔗 Links
|
||||
{% for link in links -%}
|
||||
[]({{link.url}})
|
||||
{% endfor %}
|
||||
|
||||
## 🛠 Skills
|
||||
{% for skill in skills -%}
|
||||

|
||||
{% endfor %}
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||
{% for badge in footerBadges -%}
|
||||

|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
{{banner}}
|
||||
|
||||
## 🚀 About Me
|
||||
{{about}}
|
||||
|
||||
## 🔗 Links
|
||||
{% for link in links -%}
|
||||
{{link}}
|
||||
{% endfor %}
|
||||
|
||||
## 🛠 Skills
|
||||
{% for skill in skills -%}
|
||||
{{skill}}
|
||||
{% endfor %}
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||
{% for badge in footer -%}
|
||||
{{badge}}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user