Compare commits
No commits in common. "7487c327cdb8af9db10605f49f24e2a205420f50" and "218af8bcf17e37ac55c629ab4bf15aa7c7929f1c" have entirely different histories.
7487c327cd
...
218af8bcf1
27 changed files with 6785 additions and 41 deletions
8
.cz.toml
Normal file
8
.cz.toml
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
[tool.commitizen]
|
||||||
|
name = "cz_conventional_commits"
|
||||||
|
tag_format = "$version"
|
||||||
|
version_scheme = "semver"
|
||||||
|
version_provider = "npm"
|
||||||
|
update_changelog_on_bump = true
|
||||||
|
major_version_zero = true
|
||||||
|
changelog_incremental = true
|
||||||
30
.eslintrc.cjs
Normal file
30
.eslintrc.cjs
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
es2021: true,
|
||||||
|
},
|
||||||
|
extends: [
|
||||||
|
'standard-with-typescript',
|
||||||
|
'plugin:react/recommended',
|
||||||
|
'plugin:cypress/recommended',
|
||||||
|
'prettier',
|
||||||
|
],
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
env: {
|
||||||
|
node: true,
|
||||||
|
},
|
||||||
|
files: ['.eslintrc.{js,cjs}'],
|
||||||
|
parserOptions: {
|
||||||
|
sourceType: 'script',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
parserOptions: {
|
||||||
|
ecmaVersion: 'latest',
|
||||||
|
sourceType: 'module',
|
||||||
|
project: ['./tsconfig.json'],
|
||||||
|
},
|
||||||
|
plugins: ['react', 'cypress'],
|
||||||
|
rules: {},
|
||||||
|
};
|
||||||
16
.prettierrc.cjs
Normal file
16
.prettierrc.cjs
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
module.exports = {
|
||||||
|
tabWidth: 2,
|
||||||
|
singleQuote: true,
|
||||||
|
endOfLine: 'auto',
|
||||||
|
'eol-last': 2,
|
||||||
|
trailingComma: 'all',
|
||||||
|
plugins: [require.resolve("prettier-plugin-astro")],
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: "*.astro",
|
||||||
|
options: {
|
||||||
|
parser: "astro",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
2
.rtx.toml
Normal file
2
.rtx.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
[tools]
|
||||||
|
node = "20"
|
||||||
4
.vscode/extensions.json
vendored
Normal file
4
.vscode/extensions.json
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"recommendations": ["astro-build.astro-vscode"],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
||||||
11
.vscode/launch.json
vendored
Normal file
11
.vscode/launch.json
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"command": "./node_modules/.bin/astro dev",
|
||||||
|
"name": "Development server",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node-terminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
30
.woodpecker.yml
Normal file
30
.woodpecker.yml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
when:
|
||||||
|
- branch: main
|
||||||
|
|
||||||
|
steps:
|
||||||
|
build-and-publish:
|
||||||
|
when:
|
||||||
|
branch: main
|
||||||
|
image: node:20-alpine
|
||||||
|
secrets:
|
||||||
|
- codeberg_ssh_key
|
||||||
|
commands:
|
||||||
|
- apk add git openssh-client
|
||||||
|
- git config --global user.email "woodpecker@bot.net"
|
||||||
|
- git config --global user.name "woodpecker-bot"
|
||||||
|
- git remote add codeberg-ssh git@codeberg.org:aleidk/personal-page.git
|
||||||
|
- mkdir -p $HOME/.ssh
|
||||||
|
- ssh-keyscan -t rsa codeberg.org >> $HOME/.ssh/known_hosts
|
||||||
|
- echo "$CODEBERG_SSH_KEY" > $HOME/.ssh/id_rsa
|
||||||
|
- chmod 0600 $HOME/.ssh/id_rsa
|
||||||
|
- corepack enable
|
||||||
|
- corepack prepare pnpm@latest --activate
|
||||||
|
- pnpm install
|
||||||
|
- pnpm build
|
||||||
|
- |
|
||||||
|
cat >dist/.domains <<EOL
|
||||||
|
blog.panconpalta.win
|
||||||
|
personal-page.aleidk.codeberg.page
|
||||||
|
pages.personal-page.aleidk.codeberg.page
|
||||||
|
EOL
|
||||||
|
- pnpm exec gh-pages --dist dist --branch pages --dotfiles --remote codeberg-ssh
|
||||||
5
astro-i18next.config.mjs
Normal file
5
astro-i18next.config.mjs
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
/** @type {import('astro-i18next').AstroI18nextConfig} */
|
||||||
|
export default {
|
||||||
|
defaultLocale: 'en',
|
||||||
|
locales: ['en', 'es'],
|
||||||
|
};
|
||||||
14
astro.config.mjs
Normal file
14
astro.config.mjs
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
import { defineConfig } from 'astro/config';
|
||||||
|
|
||||||
|
import react from '@astrojs/react';
|
||||||
|
import astroI18next from 'astro-i18next';
|
||||||
|
|
||||||
|
// https://astro.build/config
|
||||||
|
export default defineConfig({
|
||||||
|
prefetch: true,
|
||||||
|
integrations: [react(), astroI18next()],
|
||||||
|
experimental: {},
|
||||||
|
redirects: {
|
||||||
|
'/projects': '/projects/1',
|
||||||
|
},
|
||||||
|
});
|
||||||
24
cog.toml
24
cog.toml
|
|
@ -1,24 +0,0 @@
|
||||||
from_latest_tag = true
|
|
||||||
ignore_merge_commits = false
|
|
||||||
disable_changelog = false
|
|
||||||
disable_bump_commit = false
|
|
||||||
generate_mono_repository_global_tag = true
|
|
||||||
branch_whitelist = []
|
|
||||||
skip_ci = "[skip ci]"
|
|
||||||
skip_untracked = false
|
|
||||||
pre_bump_hooks = []
|
|
||||||
post_bump_hooks = []
|
|
||||||
pre_package_bump_hooks = []
|
|
||||||
post_package_bump_hooks = []
|
|
||||||
|
|
||||||
[git_hooks]
|
|
||||||
|
|
||||||
[commit_types]
|
|
||||||
|
|
||||||
[changelog]
|
|
||||||
path = "CHANGELOG.md"
|
|
||||||
authors = []
|
|
||||||
|
|
||||||
[bump_profiles]
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
16
config.toml
16
config.toml
|
|
@ -1,16 +0,0 @@
|
||||||
# The URL the site will be built for
|
|
||||||
base_url = "https://alecodes.page"
|
|
||||||
|
|
||||||
# Whether to automatically compile all Sass files in the sass directory
|
|
||||||
compile_sass = true
|
|
||||||
|
|
||||||
# Whether to build a search index to be used later on by a JavaScript library
|
|
||||||
build_search_index = true
|
|
||||||
|
|
||||||
[markdown]
|
|
||||||
# Whether to do syntax highlighting
|
|
||||||
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
|
||||||
highlight_code = true
|
|
||||||
|
|
||||||
[extra]
|
|
||||||
# Put all your custom variables here
|
|
||||||
10
cypress.config.ts
Normal file
10
cypress.config.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
import { defineConfig } from 'cypress';
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
e2e: {
|
||||||
|
baseUrl: 'http://localhost:3000',
|
||||||
|
setupNodeEvents(on, config) {
|
||||||
|
// implement node event listeners here
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
25
cypress/e2e/home_page.cy.ts
Normal file
25
cypress/e2e/home_page.cy.ts
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
describe('The Home Page', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.visit('/');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Successfully load', () => {
|
||||||
|
cy.get('h1')
|
||||||
|
.should('have.length', 1)
|
||||||
|
.should('have.text', 'Alexander Navarro');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Card components have content', () => {
|
||||||
|
cy.get('.card')
|
||||||
|
.should('have.length', 3)
|
||||||
|
.each(($card) => {
|
||||||
|
cy.wrap($card)
|
||||||
|
.find('li')
|
||||||
|
.should(($li) => expect($li).to.have.lengthOf.at.most(3))
|
||||||
|
.find('a')
|
||||||
|
.should('have.attr', 'href');
|
||||||
|
|
||||||
|
cy.wrap($card).contains('See more...');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
5
cypress/fixtures/example.json
Normal file
5
cypress/fixtures/example.json
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "Using fixtures to represent data",
|
||||||
|
"email": "hello@cypress.io",
|
||||||
|
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||||
|
}
|
||||||
37
cypress/support/commands.ts
Normal file
37
cypress/support/commands.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
/// <reference types="cypress" />
|
||||||
|
// ***********************************************
|
||||||
|
// This example commands.ts shows you how to
|
||||||
|
// create various custom commands and overwrite
|
||||||
|
// existing commands.
|
||||||
|
//
|
||||||
|
// For more comprehensive examples of custom
|
||||||
|
// commands please read more here:
|
||||||
|
// https://on.cypress.io/custom-commands
|
||||||
|
// ***********************************************
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// -- This is a parent command --
|
||||||
|
// Cypress.Commands.add('login', (email, password) => { ... })
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// -- This is a child command --
|
||||||
|
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// -- This is a dual command --
|
||||||
|
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// -- This will overwrite an existing command --
|
||||||
|
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
||||||
|
//
|
||||||
|
// declare global {
|
||||||
|
// namespace Cypress {
|
||||||
|
// interface Chainable {
|
||||||
|
// login(email: string, password: string): Chainable<void>
|
||||||
|
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
||||||
|
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
||||||
|
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
20
cypress/support/e2e.ts
Normal file
20
cypress/support/e2e.ts
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
// ***********************************************************
|
||||||
|
// This example support/e2e.ts is processed and
|
||||||
|
// loaded automatically before your test files.
|
||||||
|
//
|
||||||
|
// This is a great place to put global configuration and
|
||||||
|
// behavior that modifies Cypress.
|
||||||
|
//
|
||||||
|
// You can change the location of this file or turn off
|
||||||
|
// automatically serving support files with the
|
||||||
|
// 'supportFile' configuration option.
|
||||||
|
//
|
||||||
|
// You can read more here:
|
||||||
|
// https://on.cypress.io/configuration
|
||||||
|
// ***********************************************************
|
||||||
|
|
||||||
|
// Import commands.js using ES2015 syntax:
|
||||||
|
import './commands'
|
||||||
|
|
||||||
|
// Alternatively you can use CommonJS syntax:
|
||||||
|
// require('./commands')
|
||||||
12
deploy.sh
Executable file
12
deploy.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/env bash
|
||||||
|
|
||||||
|
pnpm run build
|
||||||
|
|
||||||
|
## Add domain to codeberg pages
|
||||||
|
cat >dist/.domains <<EOL
|
||||||
|
blog.panconpalta.win
|
||||||
|
personal-page.aleidk.codeberg.page
|
||||||
|
pages.personal-page.aleidk.codeberg.page
|
||||||
|
EOL
|
||||||
|
|
||||||
|
pnpm exec gh-pages --dist dist --branch pages --dotfiles
|
||||||
34
package.json
34
package.json
|
|
@ -2,10 +2,42 @@
|
||||||
"name": "personal-page",
|
"name": "personal-page",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
"scripts": { },
|
"scripts": {
|
||||||
|
"dev": "astro dev --port 3000",
|
||||||
|
"start": "astro dev",
|
||||||
|
"build": "astro build",
|
||||||
|
"preview": "astro preview",
|
||||||
|
"astro": "astro",
|
||||||
|
"localize": "astro-i18next generate"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@astrojs/react": "^3.0.7",
|
||||||
|
"@astrojs/ts-plugin": "^1.3.1",
|
||||||
|
"@types/react": "^18.0.21",
|
||||||
|
"@types/react-dom": "^18.0.6",
|
||||||
|
"astro": "^4.0.6",
|
||||||
|
"astro-i18next": "1.0.0-beta.21",
|
||||||
|
"i18next": "^22.5.1",
|
||||||
|
"i18next-fs-backend": "^2.3.1",
|
||||||
|
"react": "^18.0.0",
|
||||||
|
"react-dom": "^18.0.0",
|
||||||
|
"sass": "^1.71.1",
|
||||||
|
"sharp": "^0.32.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
||||||
|
"cypress": "^13.6.1",
|
||||||
|
"eslint": "^8.53.0",
|
||||||
|
"eslint-config-prettier": "^8.10.0",
|
||||||
|
"eslint-config-standard-with-typescript": "^35.0.0",
|
||||||
|
"eslint-plugin-cypress": "^2.15.1",
|
||||||
|
"eslint-plugin-import": "^2.29.0",
|
||||||
|
"eslint-plugin-n": "^15.7.0",
|
||||||
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
|
"eslint-plugin-react": "^7.33.2",
|
||||||
|
"gh-pages": "^5.0.0",
|
||||||
|
"prettier": "^2.8.8",
|
||||||
|
"prettier-plugin-astro": "^0.10.0",
|
||||||
"typescript": "^5.2.2"
|
"typescript": "^5.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6406
pnpm-lock.yaml
generated
Normal file
6406
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load diff
9
public/favicon.svg
Normal file
9
public/favicon.svg
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||||
|
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||||
|
<style>
|
||||||
|
path { fill: #000; }
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
path { fill: #FFF; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 749 B |
BIN
public/images/portafolio/observacion_clases/1696878771763.jpg
Normal file
BIN
public/images/portafolio/observacion_clases/1696878771763.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
32
public/locales/en/about-me.md
Normal file
32
public/locales/en/about-me.md
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
Curious and self-taught by nature, my history with computing began in the late
|
||||||
|
2000s, tinkering with the family PC (sometimes with disastrous results). This
|
||||||
|
led me to always try to answer the "how does it work...?", "how can I do...?",
|
||||||
|
or "how can I fix...?", leading me to self-investigation and
|
||||||
|
exploration in various mediums that provide me with the knowledge to
|
||||||
|
**fix**, **create**, and **build** projects.
|
||||||
|
|
||||||
|
The area I like the most is **web programming** as a **fullstack
|
||||||
|
developer**, but it is not the only thing I can do, as I'm also good in creating
|
||||||
|
**terminal applications** and **scripts**. I can work to solve any problem in a
|
||||||
|
conventional way or invent new solutions.
|
||||||
|
|
||||||
|
My love for video games has played an important role in my life, not only in
|
||||||
|
enjoying playing them, but going beyond to understand how they work
|
||||||
|
under the hood in their different areas: game mechanics, narratives, level
|
||||||
|
design, music, art, among others. I find it fascinating to see how developers
|
||||||
|
overcome difficulties and invent innovative solutions to provide the best
|
||||||
|
experience for the players.
|
||||||
|
|
||||||
|
My philosophy is based on **always trying to improve**, though studies,
|
||||||
|
research and updates that have provided me with knowledge of various
|
||||||
|
technologies, such as: Javascript, Python, Rust, Lua, React, SASS, Bootstrap,
|
||||||
|
Flask, ExpressJS, SQL, NoSQL, among others. Because of this, I am always in an
|
||||||
|
infinite cycle of improvement and learning.
|
||||||
|
|
||||||
|
My love for computer science has led me to explore and investigate other areas
|
||||||
|
and interests, of which I can mention:
|
||||||
|
|
||||||
|
- Being an enthusiast of **Linux** operating systems, using it both on my personal computers and on servers.
|
||||||
|
- Special interest in maintaining my development environment **personalized and updated**, allowing me to develop in a comfortable, ergonomic and effective way.
|
||||||
|
- Being part of the **selfhost** community, managing a variety of applications for personal use on **small personal servers**.
|
||||||
|
- Being **passionate about video games**.
|
||||||
4
public/locales/en/brief.md
Normal file
4
public/locales/en/brief.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
I'm a software developer from Chile.
|
||||||
|
<br />
|
||||||
|
I like to code, tinker and build things!
|
||||||
17
public/locales/en/translation.json
Normal file
17
public/locales/en/translation.json
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"titles": {
|
||||||
|
"featuredWork": "Featured Work",
|
||||||
|
"whatIveBeenUpTo": "What I've been up to...",
|
||||||
|
"whoAmI": "Who am I?",
|
||||||
|
"contact": "Contact"
|
||||||
|
},
|
||||||
|
"home": {
|
||||||
|
"moreProjects": "View more projects",
|
||||||
|
"viewCurriculum": "View full curriculum"
|
||||||
|
},
|
||||||
|
"misc": {
|
||||||
|
"seeMore": "See more..."
|
||||||
|
},
|
||||||
|
"blog": "blog",
|
||||||
|
"games": "games"
|
||||||
|
}
|
||||||
34
public/locales/es/about-me.md
Normal file
34
public/locales/es/about-me.md
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
Curioso y autodidacta por naturaleza, mi historia con la computación parte a
|
||||||
|
finales de los 2000, jugueteando con la PC familiar (a veces con resultados
|
||||||
|
desastrosos). Esto me llevó a siempre tratar de responder el _"¿cómo
|
||||||
|
funciona…?"_, _"¿cómo puedo hacer…?"_, o _¿cómo puedo solucionar…?_, llevándome
|
||||||
|
a la auto-investigación y exploración en diversos medios que me entreguen el
|
||||||
|
conocimiento para poder **resolver**, **crear** y **construir** proyectos.
|
||||||
|
|
||||||
|
Lo que más me apasiona es la **programación web** como un **desarrollador
|
||||||
|
fullstack**, pero no es lo único que puedo realizar, ya que también me
|
||||||
|
desenvuelvo bien en la creación de **aplicaciones de terminal** y **scripts**.
|
||||||
|
Puedo trabajar buscando resolver cualquier problema de forma convencional o
|
||||||
|
inventar soluciones nuevas.
|
||||||
|
|
||||||
|
Mi amor por los videojuegos ha jugado un rol importante en mi, lo cuál no se
|
||||||
|
refiere tan solo disfrutar jugarlos, sino ir más allá, para lograr ver como
|
||||||
|
funcionan por dentro en sus distintas disciplinas: mecánicas de juego,
|
||||||
|
narrativas, diseño de niveles, música, arte, entre otros. Encuentro fascinate
|
||||||
|
ver como los desarrolladores logran sortear dificultades he inventar soluciones
|
||||||
|
innovadoras para lograr dar la mejor experiencia al jugador.
|
||||||
|
|
||||||
|
Mi filosofía se basa en **siempre intentar mejorar**, realizando
|
||||||
|
estudios, investigaciones y actualizaciones que me han proporcionado el
|
||||||
|
conocimiento de diversas tecnologías, tales como: Javascript, Python, Rust,
|
||||||
|
Lua, React, SASS, Bootstrap, Flask, ExpressJS, SQL, NoSQL, entre
|
||||||
|
otros. Debido a esto siempre estoy en un infinito ciclo de mejora y
|
||||||
|
aprendizaje.
|
||||||
|
|
||||||
|
Mi amor por la informática me ha llevado a extender he investigar otras areas e
|
||||||
|
intereses, de los cuales puedo nombrar:
|
||||||
|
|
||||||
|
- Ser un entusiasta de los sistemas operativos **linux**, usándolo tanto en mis computadores personales como en servidores.
|
||||||
|
- Interés especial en mantener mi **ambiente de desarrollo personalizado y actualizado**, permitiendome desarrollar de una manera cómoda, ergonómica y eficaz.
|
||||||
|
- Ser parte de la comunidad **selfhost**, administrando varias aplicaciones para uso personal en **pequeños servidores propios**.
|
||||||
|
- Ser **apasionado de los videojuegos**.
|
||||||
4
public/locales/es/brief.md
Normal file
4
public/locales/es/brief.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
Soy un desarrollador de software de Chile.
|
||||||
|
<br />
|
||||||
|
Me gusta codear, probar y construír cosas!
|
||||||
17
public/locales/es/translation.json
Normal file
17
public/locales/es/translation.json
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"titles": {
|
||||||
|
"featuredWork": "Trabajo Destacado",
|
||||||
|
"whatIveBeenUpTo": "Que he estado haciendo...",
|
||||||
|
"whoAmI": "¿Quién soy?",
|
||||||
|
"contact": "Contacto"
|
||||||
|
},
|
||||||
|
"home": {
|
||||||
|
"moreProjects": "Ver más proyectos",
|
||||||
|
"viewCurriculum": "Ver curriculum completo"
|
||||||
|
},
|
||||||
|
"misc": {
|
||||||
|
"seeMore": "Ver más..."
|
||||||
|
},
|
||||||
|
"blog": "blog",
|
||||||
|
"games": "juegos"
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue