From e3c4bb2efa513973bc26949a8be62fbe66e31a4f Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero <94913521+arielcostas@users.noreply.github.com> Date: Fri, 14 Mar 2025 23:33:56 +0100 Subject: Implement new page layouts for Home, Contact, Portfolio, and Trajectory; update header and footer for multilingual support --- src/pages/blog.xml.js | 19 ------ src/pages/blog.xml.ts | 19 ++++++ src/pages/en/contact.astro | 5 ++ src/pages/en/index.astro | 5 ++ src/pages/en/portfolio.astro | 5 ++ src/pages/en/trajectory.astro | 5 ++ src/pages/index.astro | 68 +------------------ src/pages/portfolio/index.astro | 145 +--------------------------------------- src/pages/trajectory.astro | 110 +----------------------------- 9 files changed, 45 insertions(+), 336 deletions(-) delete mode 100644 src/pages/blog.xml.js create mode 100644 src/pages/blog.xml.ts create mode 100644 src/pages/en/contact.astro create mode 100644 src/pages/en/index.astro create mode 100644 src/pages/en/portfolio.astro create mode 100644 src/pages/en/trajectory.astro (limited to 'src/pages') diff --git a/src/pages/blog.xml.js b/src/pages/blog.xml.js deleted file mode 100644 index b4fbe38..0000000 --- a/src/pages/blog.xml.js +++ /dev/null @@ -1,19 +0,0 @@ -import rss from '@astrojs/rss'; -import { getCollection } from 'astro:content'; - - -export async function GET(context) { - const collection = await getCollection('blog'); - - return rss({ - title: "Blog de Ariel Costas", - description: "Artículos del blog de Ariel Costas", - site: context.site, - items: collection.map((post) => ({ - title: post.data.title, - link: `${context.site}blog/${post.slug}`, - description: post.data.metaDescription, - pubDate: post.data.publishedAt - })) - }) -} diff --git a/src/pages/blog.xml.ts b/src/pages/blog.xml.ts new file mode 100644 index 0000000..f165475 --- /dev/null +++ b/src/pages/blog.xml.ts @@ -0,0 +1,19 @@ +import rss from '@astrojs/rss'; +import { getCollection } from 'astro:content'; + + +export async function GET(context: any) { + const collection = await getCollection('blog'); + + return rss({ + title: "Blog de Ariel Costas", + description: "Artículos del blog de Ariel Costas", + site: context.site, + items: collection.map((post: any) => ({ + title: post.data.title, + link: `${context.site}blog/${post.slug}`, + description: post.data.metaDescription, + pubDate: post.data.publishedAt + })) + }) +} diff --git a/src/pages/en/contact.astro b/src/pages/en/contact.astro new file mode 100644 index 0000000..ef69d6e --- /dev/null +++ b/src/pages/en/contact.astro @@ -0,0 +1,5 @@ +--- +import ContactPageLayout from "../../layouts/ContactPageLayout.astro"; +--- + + \ No newline at end of file diff --git a/src/pages/en/index.astro b/src/pages/en/index.astro new file mode 100644 index 0000000..8c5945a --- /dev/null +++ b/src/pages/en/index.astro @@ -0,0 +1,5 @@ +--- +import HomePageLayout from "../../layouts/HomePageLayout.astro"; +--- + + \ No newline at end of file diff --git a/src/pages/en/portfolio.astro b/src/pages/en/portfolio.astro new file mode 100644 index 0000000..63840f5 --- /dev/null +++ b/src/pages/en/portfolio.astro @@ -0,0 +1,5 @@ +--- +import PortfolioPageLayout from "../../layouts/PortfolioPageLayout.astro"; +--- + + \ No newline at end of file diff --git a/src/pages/en/trajectory.astro b/src/pages/en/trajectory.astro new file mode 100644 index 0000000..3f5ff77 --- /dev/null +++ b/src/pages/en/trajectory.astro @@ -0,0 +1,5 @@ +--- +import TrajectoryPageLayout from "../../layouts/TrajectoryPageLayout.astro"; +--- + + \ No newline at end of file diff --git a/src/pages/index.astro b/src/pages/index.astro index fcef172..8ac64a6 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,69 +1,5 @@ --- -import { getCollection } from "astro:content"; -import Layout from "../layouts/Layout.astro"; - -const blogCollection = (await getCollection("blog")).sort((a, b) => { - return b.data.publishedAt.getTime() - a.data.publishedAt.getTime(); -}); - -const schema = { - "@context": "http://schema.org", - "@type": "WebSite", - id: "https://www.costas.dev/", - url: "https://www.costas.dev/", -}; +import HomePageLayout from "../layouts/HomePageLayout.astro"; --- - - - -

Mi portfolio

- -

- En esta sección encontrarás una lista de los proyectos en los que he - trabajado, tanto para terceros como propios. Si quieres más información - sobre alguno de ellos, no dudes en - contactar conmigo. -

- -

Proyectos para terceros (freelance)

- -

- He realizado desarrollos de proyectos para terceros por encargo, siendo los más destacados los siguientes: -

- -
-
-

Extractor de pedidos compra online

- -

- Aplicación de escritorio que extrae los datos sobre los pedidos - on-line de diversas plataformas (como WooCommerce, Amazon y - Ebay). Más información. -

- - - -
- -
-

Punto de información turística en móviles

- -

- Aplicación web de información turística, con QR, contenido en 360º e incrustado - de YouTube. Más información. -

- - - -
- -
-

Consultoría WordPress

- -

- Trabajos de mantenimiento, optimización y migración de sitios web WordPress y tiendas online WooCommerce. - Más información. - Contactar. -

- - -
-
- -

Proyectos propios

- -

- Además, tengo varios proyectos propios que he desarrollado en mi tiempo, estando algunos de ellos en activo, y como código abierto. -

- -
-
-

Web personal

- -

- Desarrollado con Astro, un generador de sitios web estáticos que - permite escribir contenido en Markdown y publicar en la web con un - rendimiento excelente. Desplegado sobre Azure Static Web Apps. -

- - - -
- -
-

MiEntreno (proyecto fin de ciclo)

- -

- Aplicación web para la gestión de entrenamientos deportivos, con - una interfaz sencilla y fácil de usar. Desarrollado con ASP.NET Core, - Razor Pages y SQL Server. Más información. - Código fuente. -

- - - - - -
- -
-

Vigo 360

- -

- Blog sobre Vigo y su entorno, orientado principalmente a hablar de - movilidad y toponimia. Desarrollado en Go, con base de datos MySQL - y desplegado sobre VPS administrado por mí mismo. - Más información. - Código fuente. - Web. -

- - - - -
-
-
- - \ No newline at end of file + \ No newline at end of file diff --git a/src/pages/trajectory.astro b/src/pages/trajectory.astro index 87557de..b1366e6 100644 --- a/src/pages/trajectory.astro +++ b/src/pages/trajectory.astro @@ -1,111 +1,5 @@ --- -import Layout from "../layouts/Layout.astro"; - -const schema = { - "@context": "https://schema.org", - "@type": "WebPage", - "url": "https://www.costas.dev/trajectory", - "headline": "Mi trayectoria como desarrollador" -}; +import TrajectoryPageLayout from "../layouts/TrajectoryPageLayout.astro"; --- - - - -

Mi trayectoria como desarrollador

- -

- Soy un desarrollador de software que vive en Vigo, España. Me gusta - mucho la tecnología, y me gusta aprender cosas nuevas. Me dedico - profesionalmente al desarrollo de software en todos sus ámbitos: desde - el diseño de la arquitectura, la implementación y el despliegue en - producción, pasando por otros aspectos como la experiencia de usuario, - la accesibilidad y la seguridad. -

- -

Tecnologías que domino

- -

- Domino principalmente el ecosistema de Microsoft: .NET (C#), ASP.NET - Core, SQL Server, Azure y Azure DevOps. También tengo experiencia con - otros lenguajes y tecnologías, como PHP, Python y Java. Además, tengo - conocimientos de frontend con - HTML5, - CSS3, JavaScript y - TypeScript. -

- -

- También tengo experiencia con herramientas de DevOps como Docker, - Kubernetes, Terraform y GitHub Actions; así como el ecosistema Cloud de - Azure. -

- -

Educación y credenciales

- -
    -
  • - Certificado oficial EF SET C2 Proficient: - acredita mi nivel de inglés C2, el más alto según el Marco Común - Europeo de Referencia para las Lenguas. Ver certificado -
  • - -
  • - Microsoft Certified: Azure Developer Associate: - acredita mis conocimientos en el desarrollo de aplicaciones en - Azure. Ver credencial. -
  • - -
  • - Microsoft Certified: Azure DevOps Engineer Expert: - acredita mis conocimientos en la implementación de metodologías de - DevOps en Azure con Azure DevOps y GitHub. Ver credencial -
  • - -
  • - Técnico Superior en Desarrollo de Aplicaciones Multiplataforma: título de formación profesional de grado superior, obtenido en el - IES de Teis en Vigo. -
  • -
- -

Experiencia laboral

- -

Estelaria Solutions (Q3 2023 - actualidad)

- -

- Desarrollo de aplicaciones full-stack, principalmente en PHP con - Symfony, MongoDB y JavaScript Vanilla. Además, implementé una cantidad - considerable de mejoras en usabilidad, accesibilidad y rendimiento. -

- -

- También me encargo de la gestión de la infraestructura en AWS, y de la - implementación de herramientas de colaboración como Jira y GitHub. -

- -

FCT en Polygon-E (Q2 2023)

- -

- Realicé mis prácticas de formación profesional en la empresa Polygon-E, - donde desarrollé varias aplicaciones de gestión interna con ASP.NET Core - y Blazor, desplegando sobre entornos on-premise con Windows Server, - IIS y SQL Server. -

- -

Proyectos

- -

- Puedes encontrar los proyectos (públicos) en los que he trabajado en mi portfolio - y en mi perfil de GitHub. -

-
+ -- cgit v1.3