Compare commits

..

No commits in common. "e342483f41fab433c9fdfbcf160baad0e6d0108a" and "17a2371162b8d497844f49df7e1a8acedd332823" have entirely different histories.

37 changed files with 881 additions and 1743 deletions

View file

@ -1,7 +0,0 @@
module.exports = function(eleventyConfig) {
eleventyConfig.addPassthroughCopy("css")
eleventyConfig.addPassthroughCopy({ "static": "/" })
return {
passthroughFileCopy: true
}
}

3
.gitignore vendored
View file

@ -22,6 +22,3 @@ dist-ssr
*.njsproj
*.sln
*.sw?
_old
_site

3
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"recommendations": ["svelte.svelte-vscode"]
}

View file

@ -1,54 +0,0 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/favicon.ico">
<title>{% if title %} {{ title }} - {% endif %}sofi web</title>
<link rel="stylesheet" href="/css/app.css" type="text/css">
<link rel="stylesheet" href="/css/navbar.css" type="text/css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;1,300&family=Rubik:ital,wght@0,400;0,500;1,400;1,500&display=swap" type="text/css">
</head>
<body>
<a class="__hidden" href="https://hachyderm.io/@sofiaritz" rel="me">Mastodon</a>
<h1 class="top-title">sofi web</h1>
<div class="page-container">
<nav>
<div class="navbar">
<div>
<i>yo</i>
<ul>
<li><a href="/">inicio y sobre mí</a></li>
<li><a href="/contact">contacto</a></li>
</ul>
</div>
<div>
<i>mi cabeza</i>
<ul>
<!-- <li><a href="/weblog">weblog</a></li> -->
<li><a href="/recommendations">recomendaciones</a></li>
</ul>
</div>
<div>
<i>creaciones</i>
<ul>
<li><a href="/projects">proyectos</a></li>
</ul>
</div>
<div>
<i>sitios</i>
<ul>
<li><a href="/links">enlaces</a></li>
</ul>
</div>
</div>
</nav>
<main>
{{ content | safe }}
</main>
</div>
</body>
</html>

View file

@ -1,85 +0,0 @@
---
layout: simple_page.njk
title: contacto
---
# contacto
Todavía no tengo una gran presencia digital, pero la poquita que tengo aquí se encuentra:
### contacto directo
- E-mail: [sofi@sofiaritz.com](mailto:sofi@sofiaritz.com)
- Matrix: [@sofiaritz:matrix.org](https://matrix.to/#/@sofiaritz:matrix.org)
### redes sociales
<blockquote>
<details>
<summary>
<b>Nota:</b> Aquí se encuentra <i>mi versión desenfadada</i>, tal vez sea algo que quieras tener en cuenta.
</summary>
<ul>
<li>Fediverse (Mastodon): <a rel="me" href="https://hachyderm.io/@sofiaritz">@me@sofiaritz.com (@sofiaritz@hachyderm.io)</a></li>
<li>Forgejo: <a href="https://git.sofiaritz.com/sofia">sofia@git.sofiaritz.com</a></li>
<li>Codeberg: <a href="https://codeberg.org/sofiaritz">sofiaritz</a></li>
</ul>
</details>
</blockquote>
### cifrado y firmado
Puedes encontrar mi clave PGP pública en [/keys/pub.asc](/keys/pub.asc), también disponible en
[los keyservers de ubuntu](https://keyserver.ubuntu.com/).
La huella digital del certificado es: <u>4BB1 6A74 5DE1 C776 5CF3 8788 90B5 116E 3542 B28F</u>.
### canary
Puedes encontrar mi canary en [/canary.txt](/canary.txt). Este es un documento actualizado con regularidad donde confirmo mi identidad y estado actual.
Si en algún momento este documento se encuentra desactualizado o desaparece, probablemente haya ocurrido algo malo.
---
<details>
<summary>El texto de esta sección se encuentra firmado:</summary>
<pre>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
contacto
Todavía no tengo una gran presencia digital, pero la poquita que tengo aquí se encuentra:
contacto directo
E-mail: sofi@sofiaritz.com
Matrix: @sofiaritz:matrix.org
redes sociales
Nota: Aquí se encuentra mi versión desenfadada, tal vez sea algo que quieras tener en cuenta.
Fediverse (Mastodon): @me@sofiaritz.com (@sofiaritz@hachyderm.io)
Codeberg: sofiaritz
Gitea: sofia@git.sofiaritz.com
cifrado y firmado
Puedes encontrar mi clave PGP pública en /keys/pub.asc, también disponible en los keyservers de ubuntu.
La huella digital del certificado es: 4BB1 6A74 5DE1 C776 5CF3 8788 90B5 116E 3542 B28F.
canary
Puedes encontrar mi canary en /canary.txt. Este es un documento actualizado con regularidad donde confirmo mi identidad y estado actual.
Si en algún momento este documento se encuentra desactualizado o desaparece, probablemente haya ocurrido algo malo.
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQRLsWp0XeHHdlzzh4iQtRFuNUKyjwUCY/yLxAAKCRCQtRFuNUKy
j2b1AQDmMW8gbUljFqg3xExh5zB3/W/ZmD3kxmFRDHKcljdVVgEAmE2lIwY2VowR
ZMyjTshgFNng6hnj+inJl4qlTHmXHQg=
=7k3p
-----END PGP SIGNATURE-----
</pre>
</details>

View file

@ -1,99 +0,0 @@
:root {
font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 24px;
font-weight: 400;
min-height: 100%;
color: rgba(255, 255, 255, 0.9);
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.25)), url("/assets/background.webp");
background-color: #221130;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
a {
color: #e74cac;
}
code {
font-family: "JetBrains Mono", monospace;
padding: 2px 3px;
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
}
hr {
color: #bebebe;
}
blockquote {
border-left: 10px solid #dc3f99;
margin: 1.5em 10px;
padding: 0.5em 10px;
}
blockquote:before {
color: #ccc;
font-size: 4em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
}
blockquote[quote]:before {
content: open-quote;
}
summary:hover {
cursor: pointer;
}
pre {
font-family: monospace;
}
* {
font-family: Rubik, sans-serif;
}
.top-title {
font-size: 50px;
text-align: center;
text-decoration: underline;
text-decoration-color: #d52c9c;
}
.page-container {
display: flex;
margin: 0 10px;
gap: 15px;
justify-content: center;
}
main {
width: 40vw;
}
@media only screen and (max-width: 600px) {
.page-container {
display: block;
width: 100%;
}
main {
width: 90%;
}
}
.__hidden {
display: none;
}

View file

@ -1,32 +0,0 @@
.navbar ul {
padding: 0;
list-style: none;
}
.navbar div ul li {
display: block;
width: 175px;
padding: 3px;
margin: 10px 0;
transition: all 150ms;
background-color: #dc3f99;
border: solid 3px;
border-color: #f38cc2 #dc158d #dc158d #f38cc2;
}
.navbar div ul li:hover {
border-color: #d76d9c #ff0088 #ff0088 #d76d9c;
}
.navbar div ul li a {
color: white;
}
@media only screen and (max-width: 600px) {
.navbar {
display: flex;
gap: 10px;
overflow: scroll;
}
}

18
index.html Normal file
View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>sofi web</title>
<style>
.__hidden {
display: none;
}
</style>
</head>
<body>
<a class="__hidden" href="https://hachyderm.io/@sofiaritz" rel="me">Mastodon</a>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

View file

@ -1,35 +0,0 @@
---
layout: simple_page.njk
---
# inicio
_Es probable que andes aquí por mis [proyectos](/projects), si eso es lo que te interesa, puedes ir a esa
sección directamente._
# sobre mí
Soy Sofía, aunque la gente me llama Sofi.
Llevo un tiempo programando y me encanta lo divertida y abierta que es la web, además de todas las posibilidades que nos
ofrece, a día de hoy se está perdiendo esta esencia de la web y mi objetivo es traerla de vuelta.
Me encantan los [lenguajes construidos](https://es.wikipedia.org/wiki/Lengua_construida) y aunque el que más uso es
el [Esperanto](https://es.wikipedia.org/wiki/Esperanto), amo [Toki Pona](https://es.wikipedia.org/wiki/Toki_pona)
y me encantaría aprenderlo.
Además de esto, amo [Wikipedia](https://es.wikipedia.org/wiki/Wikipedia:Portada) y en mis ratos libres intento aportar
mi granito de arena editando algunos artículos.
Me gusta mucho [Rust](https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programaci%C3%B3n)) y tengo la esperanza de que
sea el futuro de la programación (_ya que es un lenguaje cuya base es
aprender de los errores de los últimos 50 años_), aunque empecé a aprender Rust <u>circa 2020</u>, llevo un tiempo
en este mundillo y me manejo con mucha soltura.
A día de hoy me siento cómoda en Rust, [JavaScript](https://es.wikipedia.org/wiki/JavaScript)
[y derivados](https://es.wikipedia.org/wiki/TypeScript) y
[C](https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)) (_aunque aún me queda mucho por aprender_).
Me encanta el concepto de la web porque permite que todo el mundo pueda tener su lugar donde poder hablar, comunicarse
entre sí y desarrollar ideas y pensamientos. A día de hoy esto [ha](https://es.wikipedia.org/wiki/Monopolio)
[cambiado](https://es.wikipedia.org/wiki/C%C3%A1mara_de_eco_(medios)), y la web no es abierta como era
anteriormente. Por esto estoy completamente a favor de
[estándares abiertos](https://es.wikipedia.org/wiki/Est%C3%A1ndar_abierto) y de
la [descentralización](https://es.wikipedia.org/wiki/Descentralizaci%C3%B3n).

33
jsconfig.json Normal file
View file

@ -0,0 +1,33 @@
{
"compilerOptions": {
"moduleResolution": "Node",
"target": "ESNext",
"module": "ESNext",
/**
* svelte-preprocess cannot figure out whether you have
* a value or a type, so tell TypeScript to enforce using
* `import type` instead of `import` for Types.
*/
"importsNotUsedAsValues": "error",
"isolatedModules": true,
"resolveJsonModule": true,
/**
* To have warnings / errors of the Svelte compiler at the
* correct position, enable source maps by default.
*/
"sourceMap": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
/**
* Typecheck JS in `.svelte` and `.js` files by default.
* Disable this if you'd like to use dynamic types.
*/
"checkJs": true
},
/**
* Use global.d.ts instead of compilerOptions.types
* to avoid limiting type declarations.
*/
"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
}

View file

@ -1,10 +0,0 @@
---
layout: simple_page.njk
title: enlaces
---
# enlaces
Parece que no hay nadie por aquí...
Si quieres [habla conmigo](/contact) para añadirte aquí! :)

View file

@ -1,17 +1,21 @@
{
"name": "sofi-web",
"version": "0.0.0",
"description": "My personal website :)",
"main": "index.js",
"repository": "https://codeberg.org/sofiaritz/website.git",
"author": "Sofía Aritz <sofi@sofiaritz.com>",
"license": "UNLICENSED",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"serve": "npx @11ty/eleventy --serve",
"build": "npx @11ty/eleventy"
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"@11ty/eleventy": "^2.0.0"
"@sveltejs/vite-plugin-svelte": "^2.0.0",
"svelte": "^3.54.0",
"vite": "^4.0.0"
},
"dependencies": {
"@fontsource/jetbrains-mono": "^4.5.11",
"@fontsource/rubik": "^4.5.13",
"svelte-navigator": "^3.2.2"
}
}

View file

@ -1,31 +0,0 @@
---
layout: simple_page.njk
title: proyectos
---
# proyectos
Ahora mismo no tengo proyectos públicos bajo mi nombre, pero tal vez publique alguna cosa en
[mi instancia de Forgejo](https://git.sofiaritz.com/sofia) y en mi perfil de
[Codeberg](https://codeberg.org/sofiaritz) :)
Pese a ello, puedo decir que he creado varios proyectos full-stack, librerías relacionadas con cifrado en Rust y
herramientas enfocadas a DX, también en Rust.
Actualizaré esta página cuando realice algún proyecto bajo mi nombre que merezca la pena ver.
## proyectos irrelevantes
### note taking | [repo](https://git.sofiaritz.com/sofia/note-taking)
Una app creada con [egui](https://github.com/emilk/egui) con el objetivo de ser un sistema experimental para tomar
notas.
Las notas están encriptadas por defecto (excepto los metadatos) y en un futuro añadiré soporte para Markdown básico y demás.
### markdown cv | [repo](https://git.sofiaritz.com/sofia/markdown-cv) [instancia](https://md-cv.sofiaritz.com/)
Una web simple que permite la creación y envío de CVs creados en Markdown con un tema simple y bonito por defecto.
Creada con Svelte y [marked](https://github.com/markedjs/marked). Debo mejorar ciertas partes del código
(obtención de CVs remotos, etc), pero sin duda funciona.
### sofi web | [repo](https://codeberg.org/sofiaritz/website) [mirror](https://git.sofiaritz.com/sofia/website)
Una web simple, con contenido estático hecha utilizando [11ty](https://www.11ty.dev/).

View file

Before

Width:  |  Height:  |  Size: 409 KiB

After

Width:  |  Height:  |  Size: 409 KiB

View file

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 4 MiB

View file

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 186 KiB

View file

Before

Width:  |  Height:  |  Size: 564 KiB

After

Width:  |  Height:  |  Size: 564 KiB

View file

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

View file

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 185 KiB

View file

@ -1,43 +0,0 @@
---
layout: simple_page.njk
title: recomendaciones
---
# recomendaciones
_Aquí iré poniendo recomendaciones sobre juegos, libros, música, etc._
## libros
### Un mundo feliz (Aldous Huxley)
[Un mundo feliz](https://es.wikipedia.org/wiki/Un_mundo_feliz) es un libro, en mi opinión, muy bien escrito y relevante
en el día de hoy por los temas que se tratan.
Este libro es la contraparte [distópica](https://es.wikipedia.org/wiki/Distop%C3%ADa) de
[La isla](https://es.wikipedia.org/wiki/La_isla_(Aldous_Huxley)), otro libro que también puedo recomendar
orgullosamente.
## videojuegos
### OMORI
[OMORI](https://www.omori-game.com/) es un juego de _terror psicológico_
(aunque el 90% del tiempo es un juego muy tranquilo y relajante).
Tiene una historia un tanto dura, y la manera en que se cuenta no podía estar más pulida. No podría recomendarlo más,
no puedo contar mucho (para evitar spoilers), pero se lo recomendaría a cualquier persona que le gusten los juegos de
historia y RPG y compañía.
### a short hike
[a short hike](https://ashorthike.com/) es un juego muy muy tranquilo y relajante. Es un juego para olvidarte del mundo
y relajarte un ratito.
Tiene una historia que pese a poder ser considerada simple, la manera en que se descubre y la compañía que los escenarios y la música dan al descubrimiento es sublime. Un juego muy tranquilo, muy bonito, muy divertido con una historia bien contada. Otro juego 100% recomendado.
### Milo and the Magpies
[Milo and the Magpies](https://store.steampowered.com/app/1407420/Milo_and_the_Magpies/) es un juego de puzles muy
corto, con una historia juguetona pero bastante simple que no decepciona. El arte y música son geniales y pese a poder
completarse en un par de horas, merece la pena por lo relajante y bello que es el juego.
Hay algunos puzles donde te puedes atascar con cierta facilidad, pero aun así, sigue siendo un juego con un concepto
bueno y simple, y con una muy buena ejecución.

61
src/App.svelte Normal file
View file

@ -0,0 +1,61 @@
<script>
import { Router, Route } from "svelte-navigator"
import Home from "./lib/routes/Home.svelte"
import Contact from "./lib/routes/Contact.svelte"
import Navbar from "./lib/Navbar.svelte";
import Recommendations from "./lib/routes/Recommendations.svelte";
import Projects from "./lib/routes/Projects.svelte";
import Links from "./lib/routes/Links.svelte";
import NotFound from "./lib/routes/NotFound.svelte";
import Skeletons from "./lib/Skeletons.svelte";
</script>
<Router>
<h1>sofi web</h1>
<Skeletons/>
<div>
<nav>
<Navbar/>
</nav>
<main>
<Route path="/" component={Home} primary={false}/>
<Route path="/contact" component={Contact} primary={false}/>
<Route path="/recommendations" component={Recommendations} primary={false}/>
<Route path="/projects" component={Projects} primary={false}/>
<Route path="/links" component={Links} primary={false}/>
<Route path="*" component={NotFound} primary={false}/>
</main>
</div>
</Router>
<style>
h1 {
font-size: 50px;
text-align: center;
text-decoration: underline;
text-decoration-color: #d52c9c;
}
div {
display: flex;
margin: 0 10px;
gap: 15px;
justify-content: center;
}
main {
width: 40vw;
}
@media only screen and (max-width: 600px) {
div {
display: block;
width: 100%;
}
main {
width: 90%;
}
}
</style>

58
src/app.css Normal file
View file

@ -0,0 +1,58 @@
:root {
font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
font-size: 16px;
line-height: 24px;
font-weight: 400;
min-height: 100%;
color: rgba(255, 255, 255, 0.9);
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.25)), url("/assets/background.webp");
background-color: #221130;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
a {
color: #e74cac;
}
code {
font-family: "JetBrains Mono", monospace;
padding: 2px 3px;
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5));
}
hr {
color: #bebebe;
}
blockquote {
border-left: 10px solid #dc3f99;
margin: 1.5em 10px;
padding: 0.5em 10px;
}
blockquote:before {
color: #ccc;
font-size: 4em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
}
blockquote[quote]:before {
content: open-quote;
}
* {
font-family: Rubik, sans-serif;
}

71
src/lib/Navbar.svelte Normal file
View file

@ -0,0 +1,71 @@
<script>
import {Link} from "svelte-navigator";
</script>
<div class="top">
<div>
<i>yo</i>
<ul>
<li><Link to="/">inicio y sobre mí</Link></li>
<li><Link to="/contact">contacto</Link></li>
</ul>
</div>
<div>
<i>mi cabeza</i>
<ul>
<!--<li><a href="https://weblog.sofiaritz.com/">weblog</a></li>-->
<li><Link to="/recommendations">recomendaciones</Link></li>
</ul>
</div>
<div>
<i>creaciones</i>
<ul>
<li><Link to="/projects">proyectos</Link></li>
<!--<li><Link to="/services">servicios</Link></li>-->
</ul>
</div>
<div>
<i>sitios</i>
<ul>
<li><Link to="/links">enlaces</Link></li>
</ul>
</div>
</div>
<style>
ul {
padding: 0;
list-style: none;
}
li {
display: block;
width: 175px;
padding: 3px;
margin: 10px 0;
transition: all 150ms;
background-color: #dc3f99;
border: solid 3px;
border-color: #f38cc2 #dc158d #dc158d #f38cc2;
}
li:hover {
border-color: #d76d9c #ff0088 #ff0088 #d76d9c;
}
li :global(a) {
color: white;
}
@media only screen and (max-width: 600px) {
.top {
display: flex;
gap: 10px;
overflow: scroll;
}
}
</style>

48
src/lib/Skeletons.svelte Normal file
View file

@ -0,0 +1,48 @@
<script>
let _date = new Date()
const two_digits = (input) => {
if (input < 10) {
return `0${input}`
} else {
return `${input}`
}
}
let date = `${two_digits(_date.getUTCDay() + 1)}-${two_digits(_date.getUTCMonth() + 1)}-${two_digits(_date.getUTCFullYear())}`
</script>
{#if date.startsWith("23-12")}
<img class="left" alt="Esqueleto" src="/assets/skeletons/christmas.gif" />
<img class="right flip" alt="Esqueleto" src="/assets/skeletons/christmas.gif" />
{:else if date.startsWith("31-10")}
<img class="left" alt="Esqueleto" src="/assets/skeletons/default.gif" />
<img class="right" alt="Esqueleto" src="/assets/skeletons/default.gif" />
{/if}
<style>
img {
width: 200px;
position: fixed;
bottom: -10px;
}
.left {
left: -10px;
}
.right {
right: -10px;
}
.flip {
transform: scaleX(-1);
}
@media only screen and (max-width: 1000px) {
img {
width: 70px;
top: 0;
}
}
</style>

View file

@ -0,0 +1,96 @@
<svelte:head>
<title>contacto - sofi web</title>
</svelte:head>
<h1>contacto</h1>
<p>Todavía no tengo una gran presencia digital, pero la poquita que tengo aquí se encuentra:</p>
<h3>contacto directo</h3>
<ul>
<li>E-mail: <a href="mailto:sofi@sofiaritz.com">sofi@sofiaritz.com</a></li>
<li>Matrix: <a href="https://matrix.to/#/@sofiaritz:matrix.org">@sofiaritz:matrix.org</a></li>
</ul>
<h3>redes sociales</h3>
<blockquote>
<details>
<summary>
<b>Nota:</b> Aquí se encuentra <i>mi versión desenfadada</i>, tal vez sea algo que quieras tener en cuenta.
</summary>
<ul>
<li>Fediverse (Mastodon): <a rel="me" href="https://hachyderm.io/@sofiaritz">@me@sofiaritz.com (@sofiaritz@hachyderm.io)</a></li>
<li>Codeberg: <a href="https://codeberg.org/sofiaritz">sofiaritz</a></li>
<li>Gitea: <a href="https://git.sofiaritz.com/sofia">sofia@git.sofiaritz.com</a></li>
</ul>
</details>
</blockquote>
<h3>cifrado y firmado</h3>
<p>
Puedes encontrar mi clave PGP pública en <a href="/keys/pub.asc">/keys/pub.asc</a>, también disponible en los
<a href="https://keyserver.ubuntu.com/">keyservers de ubuntu</a>.
</p>
<p>
La huella digital del certificado es: <u>4BB1 6A74 5DE1 C776 5CF3 8788 90B5 116E 3542 B28F</u>.
</p>
<h3>canary</h3>
<p>
Puedes encontrar mi canary en <a href="/canary.txt">/canary.txt</a>. Este es un documento actualizado con
regularidad donde confirmo mi identidad y estado actual.
</p>
<p>
Si en algún momento este documento se encuentra desactualizado o desaparece, probablemente haya ocurrido algo malo.
</p>
<hr>
<details>
<summary>El texto de esta sección se encuentra firmado:</summary>
<pre>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
contacto
Todavía no tengo una gran presencia digital, pero la poquita que tengo aquí se encuentra:
contacto directo
E-mail: sofi@sofiaritz.com
Matrix: @sofiaritz:matrix.org
redes sociales
Nota: Aquí se encuentra mi versión desenfadada, tal vez sea algo que quieras tener en cuenta.
Fediverse (Mastodon): @me@sofiaritz.com (@sofiaritz@hachyderm.io)
Codeberg: sofiaritz
Gitea: sofia@git.sofiaritz.com
cifrado y firmado
Puedes encontrar mi clave PGP pública en /keys/pub.asc, también disponible en los keyservers de ubuntu.
La huella digital del certificado es: 4BB1 6A74 5DE1 C776 5CF3 8788 90B5 116E 3542 B28F.
canary
Puedes encontrar mi canary en /canary.txt. Este es un documento actualizado con regularidad donde confirmo mi identidad y estado actual.
Si en algún momento este documento se encuentra desactualizado o desaparece, probablemente haya ocurrido algo malo.
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQRLsWp0XeHHdlzzh4iQtRFuNUKyjwUCY/yLxAAKCRCQtRFuNUKy
j2b1AQDmMW8gbUljFqg3xExh5zB3/W/ZmD3kxmFRDHKcljdVVgEAmE2lIwY2VowR
ZMyjTshgFNng6hnj+inJl4qlTHmXHQg=
=7k3p
-----END PGP SIGNATURE-----
</pre>
</details>
<style>
summary:hover {
cursor: pointer;
}
pre {
font-family: monospace;
}
</style>

View file

@ -0,0 +1,49 @@
<script>
import {Link} from "svelte-navigator";
</script>
<svelte:head>
<title>sofi web</title>
</svelte:head>
<h1>inicio</h1>
<i>
Es probable que andes aquí por mis <Link to="/projects">proyectos</Link>, si eso es lo que te interesa, puedes ir
a esa sección directamente.
</i>
<h1>sobre mí</h1>
<p>Soy Sofía, aunque la gente me llama Sofi.</p>
<p>
Llevo <i>un tiempo</i> programando y me encanta lo divertida y abierta que es la web, además de todas las
posibilidades que nos ofrece, a día de hoy se está perdiendo esta <i>esencia</i> de la web y mi objetivo es traerla
de vuelta.
</p>
<p>
Me encantan los <a href="https://es.wikipedia.org/wiki/Lengua_construida">lenguajes construidos</a> y aunque el que
más uso es el <a href="https://es.wikipedia.org/wiki/Esperanto">Esperanto</a>, amo
<a href="https://es.wikipedia.org/wiki/Toki_pona">Toki Pona</a> y me <i>encantaría</i> aprenderlo. Además de esto,
amo <a href="https://es.wikipedia.org/wiki/Wikipedia:Portada">Wikipedia</a> y en mis ratos libres intento aportar
mi granito de arena editando algunos artículos.
</p>
<p>
Me gusta mucho <a href="https://es.wikipedia.org/wiki/Rust_(lenguaje_de_programaci%C3%B3n)">Rust</a> y tengo la
esperanza de que sea el futuro de la programación
(<i>ya que es un lenguaje cuya base es aprender de los errores de los últimos 50 años</i>), aunque empecé a aprender
Rust <u>circa 2020</u>, llevo un tiempo en este mundillo y me manejo con mucha soltura.
</p>
<p>
A día de hoy me siento cómoda en Rust, <a href="https://es.wikipedia.org/wiki/JavaScript">JavaScript</a>
<a href="https://es.wikipedia.org/wiki/TypeScript">y derivados</a> y
<a href="https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)">C</a> (<i>aunque aún me queda mucho por
aprender</i>).
</p>
<p>
Me encanta el concepto de la web porque permite que todo el mundo pueda tener su lugar donde poder hablar,
comunicarse entre sí y desarrollar ideas y pensamientos. A día de hoy esto
<a href="https://es.wikipedia.org/wiki/Monopolio">ha</a>
<a href="https://es.wikipedia.org/wiki/C%C3%A1mara_de_eco_(medios)">cambiado</a>, y la web no es abierta como era
anteriormente. Por esto estoy completamente a favor de
<a href="https://es.wikipedia.org/wiki/Est%C3%A1ndar_abierto">estándares abiertos</a> y de la
<a href="https://es.wikipedia.org/wiki/Descentralizaci%C3%B3n">descentralización</a>.
</p>

View file

@ -0,0 +1,15 @@
<script>
import {Link} from "svelte-navigator";
</script>
<svelte:head>
<title>enlaces - sofi web</title>
</svelte:head>
<h1>enlaces</h1>
<p>
Parece que no hay nadie por aquí...
</p>
<p>
Si quieres <Link to="/contact">habla conmigo</Link> para añadirte aquí! :)
</p>

View file

@ -0,0 +1,9 @@
<script>
import {Link} from "svelte-navigator";
</script>
<h1>recurso no encontrado</h1>
<p>
Parece que aquí no hay nada. Si esto te sorprende o resulta extraño,
<Link to="/contact">ponte en contacto conmigo</Link>.
</p>

View file

@ -0,0 +1,50 @@
<svelte:head>
<title>proyectos - sofi web</title>
</svelte:head>
<h1>proyectos</h1>
<p>
Ahora mismo no tengo proyectos públicos bajo mi nombre, pero tal vez publique alguna cosa en mi perfil de
<a href="https://codeberg.org/sofiaritz">Codeberg</a> :)
</p>
<p>
Pese a ello, puedo decir que he creado varios proyectos full-stack, librerías relacionadas con cifrado en Rust y
herramientas enfocadas a DX, también en Rust.
</p>
<p>
Actualizaré esta página cuando realice algún proyecto bajo mi nombre que merezca la pena ver.
</p>
<h2>proyectos irrelevantes</h2>
<h3>sofi web | <a href="https://codeberg.org/sofiaritz/website">repo</a> <a href="https://git.sofiaritz.com/sofia/website">mirror</a></h3>
<p>
Una web simple, con contenido prácticamente estático, hecha en Svelte. En un futuro trataré de usar
<a href="https://kit.svelte.dev/docs/page-options#prerender">static rendering</a> en lugar de CSR.
</p>
<p>
El código fuente de esta página está disponible en <a href="https://codeberg.org/sofiaritz/website">Codeberg</a>
y <a href="https://git.sofiaritz.com/sofia/website">mi instancia de Gitea</a>.
</p>
<h3>note taking | <a href="https://git.sofiaritz.com/sofia/note-taking">repo</a></h3>
<p>
Una app creada con <a href="https://github.com/emilk/egui">egui</a> con el objetivo de ser un sistema experimental
para tomar notas.
</p>
<p>
Las notas están encriptadas por defecto (excepto los metadatos) y en un futuro añadiré soporte para Markdown básico
y demás.
</p>
<h3>
markdown cv |
<a href="https://git.sofiaritz.com/sofia/markdown-cv">repo</a>
<a href="https://md-cv.sofiaritz.com/">instancia</a>
</h3>
<p>
Una web simple que permite la creación y envío de CVs creados en Markdown con un tema simple y bonito por defecto.
</p>
<p>
Creada con Svelte y <a href="https://github.com/markedjs/marked">marked</a>. Debo mejorar ciertas partes del código
(obtención de CVs remotos, etc), pero sin duda funciona.
</p>

View file

@ -0,0 +1,79 @@
<svelte:head>
<title>recomendaciones - sofi web</title>
</svelte:head>
<h1>recomendaciones</h1>
<i>Aquí iré poniendo recomendaciones sobre juegos, libros, música, etc.</i>
<h2>libros</h2>
<h3>Un mundo feliz (Aldous Huxley)</h3>
<div>
<p>
<a href="https://es.wikipedia.org/wiki/Un_mundo_feliz">Un mundo feliz</a> es un libro, en mi opinión, muy bien
escrito y relevante en el día de hoy por los temas que se tratan.
</p>
<p>
Este libro es la contraparte <a href="https://es.wikipedia.org/wiki/Distop%C3%ADa">distópica</a> de
<a href="https://es.wikipedia.org/wiki/La_isla_(Aldous_Huxley)">La isla</a>, otro libro que también puedo
recomendar orgullosamente.
</p>
</div>
<h2>videojuegos</h2>
<h3>OMORI</h3>
<div>
<p>
<a href="https://www.omori-game.com/">OMORI</a> es un juego de <i>terror psicológico</i> (aunque el 90% del tiempo
es un juego muy tranquilo y relajante).
</p>
<p>
Tiene una historia un tanto dura, y la manera en que se cuenta no podía estar más pulida. No podría recomendarlo
más, no puedo contar mucho (para evitar spoilers), pero se lo recomendaría a cualquier persona que le gusten
los juegos de historia y RPG y compañía.
</p>
</div>
<h3>a short hike</h3>
<div>
<p>
<a href="https://ashorthike.com/">a short hike</a> es un juego muy muy tranquilo y relajante. Es un juego para
olvidarte del mundo y relajarte un ratito.
</p>
<p>
Tiene una historia que pese a poder ser considerada simple, la manera en que se descubre y la compañía que los
escenarios y la música dan al descubrimiento es sublime. Un juego muy tranquilo, muy bonito, muy divertido
con una historia bien contada. Otro juego 100% recomendado.
</p>
</div>
<h3>Milo and the Magpies</h3>
<div>
<p>
<a href="https://store.steampowered.com/app/1407420/Milo_and_the_Magpies/">Milo and the Magpies</a> es un juego
de puzles muy corto, con una historia juguetona pero bastante simple que no decepciona.
El arte y música son geniales y pese a poder completarse en un par de horas, merece la pena por lo relajante
y bello que es el juego.
</p>
<p>
Hay algunos puzles donde te puedes atascar con cierta facilidad, pero aún así, sigue siendo un juego con un
concepto bueno y simple, y con una muy buena ejecución.
</p>
</div>
<h2>música</h2>
<h3>Black Box Recorder</h3>
<div>
<p>
Mis gustos musicales cambian con <i>cierta</i> frecuencia, por tanto esta sección no sería lo más <i>estable</i>
que digamos. Pero pese a ello, hay un grupo al que siempre acabo acudiendo:
<a href="https://en.wikipedia.org/wiki/Black_Box_Recorder">Black Box Recorder</a>.
</p>
<p>
Un grupo (hasta donde yo sé) no especialmente conocido, pero con canciones muy buenas, con historias muy buenas,
y letras (en ocasiones) bastante duras.
</p>
<p>
<a href="https://en.wikipedia.org/wiki/England_Made_Me_(album)">England Made Me</a> es mi álbum favorito, un
álbum del que no me harto por mucho que lo escuche.
</p>
</div>

15
src/main.js Normal file
View file

@ -0,0 +1,15 @@
import "./app.css"
import App from "./App.svelte"
import "@fontsource/rubik/400.css"
import "@fontsource/rubik/400-italic.css"
import "@fontsource/rubik/500.css"
import "@fontsource/rubik/500-italic.css"
import "@fontsource/jetbrains-mono/300.css"
import "@fontsource/jetbrains-mono/300-italic.css"
const app = new App({
target: document.getElementById("app"),
})
export default app

2
src/vite-env.d.ts vendored Normal file
View file

@ -0,0 +1,2 @@
/// <reference types="svelte" />
/// <reference types="vite/client" />

7
vite.config.js Normal file
View file

@ -0,0 +1,7 @@
import { defineConfig } from "vite"
import { svelte } from "@sveltejs/vite-plugin-svelte"
// https://vitejs.dev/config/
export default defineConfig({
plugins: [svelte()],
})

1589
yarn.lock

File diff suppressed because it is too large Load diff