diff options
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/blog.xml.ts (renamed from src/pages/blog.xml.js) | 38 | ||||
| -rw-r--r-- | src/pages/en/contact.astro | 5 | ||||
| -rw-r--r-- | src/pages/en/index.astro | 5 | ||||
| -rw-r--r-- | src/pages/en/portfolio.astro | 5 | ||||
| -rw-r--r-- | src/pages/en/trajectory.astro | 5 | ||||
| -rw-r--r-- | src/pages/index.astro | 68 | ||||
| -rw-r--r-- | src/pages/portfolio/index.astro | 145 | ||||
| -rw-r--r-- | src/pages/trajectory.astro | 110 |
8 files changed, 45 insertions, 336 deletions
diff --git a/src/pages/blog.xml.js b/src/pages/blog.xml.ts index b4fbe38..f165475 100644 --- a/src/pages/blog.xml.js +++ b/src/pages/blog.xml.ts @@ -1,19 +1,19 @@ -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
- }))
- })
-}
+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"; +--- + +<ContactPageLayout />
\ 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"; +--- + +<HomePageLayout />
\ 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"; +--- + +<PortfolioPageLayout />
\ 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"; +--- + +<TrajectoryPageLayout />
\ 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"; --- -<Layout title="Inicio" description="Página de inicio de mi web"> - <script - is:inline - type="application/ld+json" - slot="head-jsonld" - set:html={JSON.stringify(schema)} - /> - - <h1>Inicio</h1> - <p> - Te doy la bienvenida a mi web. Me llamo Ariel, y aquí encontrarás - información sobre mí y mis proyectos. - </p> - - <h2>¿Quién soy?</h2> - <p> - Soy un desarrollador web que le gusta aprender cosas nuevas y compartir - su conocimiento. Me gusta la programación, el diseño web y la - creatividad. Me encanta crear cosas nuevas y aprender de los demás. - </p> - <a href="/trajectory">Más información sobre mí</a> - - <h2>¿Qué hago?</h2> - <p> - Actualmente trabajo como desarrollador de software y admistrador - Cloud en una empresa de tecnología. Me encargo de desarrollar - aplicaciones web en PHP y desplegarlas en la nube de forma segura y eficiente. - </p> - <a href="/portfolio">Mi portfolio</a> - - <h2>Últimas entradas del blog</h2> - <ul> - { - blogCollection.slice(0, 5).map((p) => { - const date = Intl.DateTimeFormat("es-ES", { - day: "2-digit", - month: "short", - year: "numeric", - }).format(p.data.publishedAt); - return ( - <li> - <time datetime={p.data.publishedAt.toISOString()}> - {date} - </time> - <a href={`/blog/${p.id}`}>{p.data.title}</a> - </li> - ); - }) - } - </ul> - <a href="/blog">Ver todas las entradas</a> - -</Layout> +<HomePageLayout />
\ No newline at end of file diff --git a/src/pages/portfolio/index.astro b/src/pages/portfolio/index.astro index 43f776b..63840f5 100644 --- a/src/pages/portfolio/index.astro +++ b/src/pages/portfolio/index.astro @@ -1,146 +1,5 @@ --- -import Layout from "../../layouts/Layout.astro"; -import TechnologyBadge from "../../partials/TechnologyBadge.astro"; - -const schema = { - "@context": "https://schema.org", - "@type": "WebPage", - url: "https://www.costas.dev/portfolio", - headline: "Mi portfolio de proyectos", -}; +import PortfolioPageLayout from "../../layouts/PortfolioPageLayout.astro"; --- -<Layout title="Portfolio" description="Un listado de los proyectos en los que he trabajado en los últimos años, con las tecnologías utilizadas."> - <script - is:inline - type="application/ld+json" - slot="head-jsonld" - set:html={JSON.stringify(schema)} - ></script> - - <h1>Mi portfolio</h1> - - <p> - 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 - <a href="/contact">contactar conmigo</a>. - </p> - - <h2>Proyectos para terceros (freelance)</h2> - - <p> - He realizado desarrollos de proyectos para terceros por encargo, siendo los más destacados los siguientes: - </p> - - <section> - <article> - <h3>Extractor de pedidos compra online</h3> - - <p> - Aplicación de escritorio que extrae los datos sobre los pedidos - on-line de diversas plataformas (como WooCommerce, Amazon y - Ebay). <a href="/portfolio/order-extractor">Más información</a>. - </p> - - <TechnologyBadge code="java" /> - <TechnologyBadge code="windows" /> - </article> - - <article> - <h3>Punto de información turística en móviles</h3> - - <p> - Aplicación web de información turística, con QR, contenido en 360º e incrustado - de YouTube. <a href="/portfolio/dynamic-tourist-info">Más información</a>. - </p> - - <TechnologyBadge code="php" /> - <TechnologyBadge code="mysql" /> - </article> - - <article> - <h3>Consultoría WordPress</h3> - - <p> - Trabajos de mantenimiento, optimización y migración de sitios web WordPress y tiendas online WooCommerce. - <a href="/portfolio/wp-consulting">Más información</a>. - <a href="/contact">Contactar</a>. - </p> - - <TechnologyBadge code="php" /> - </article> - </section> - - <h2>Proyectos propios</h2> - - <p> - Además, tengo varios proyectos propios que he desarrollado en mi tiempo, estando algunos de ellos en activo, y como código abierto. - </p> - - <section> - <article> - <h3>Web personal</h3> - - <p> - 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. - </p> - - <TechnologyBadge code="astro" /> - <TechnologyBadge code="azure" /> - </article> - - <article> - <h3>MiEntreno (proyecto fin de ciclo)</h3> - - <p> - 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. <a href="/portfolio/mientreno">Más información</a>. - <a href="https://github.com/arielcostas/mientreno">Código fuente</a>. - </p> - - <TechnologyBadge code="dotnet" /> - <TechnologyBadge code="sqlserver" /> - <TechnologyBadge code="azure" /> - <TechnologyBadge code="rabbitmq" /> - </article> - - <article> - <h3>Vigo 360</h3> - - <p> - 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. - <a href="/portfolio/vigo-360">Más información</a>. - <a href="https://github.com/arielcostas/vigo360">Código fuente</a>. - <a href="https://vigo360.es">Web</a>. - </p> - - <TechnologyBadge code="go" /> - <TechnologyBadge code="mysql" /> - <TechnologyBadge code="linux" /> - </article> - </section> -</Layout> - -<style> - section { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); - gap: 1rem; - } - - article { - padding: 1rem; - border: 1px solid var(--accent); - border-radius: 0.5rem; - } - - article h3 { - margin-top: 0; - } -</style>
\ No newline at end of file +<PortfolioPageLayout />
\ 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"; --- -<Layout title="Trayectoria" description="Mi trayectoria como desarrollador de software, con información sobre mi educación, experiencia laboral y proyectos en los que he trabajado."> - <script is:inline type="application/ld+json" slot="head-jsonld" set:html={JSON.stringify(schema)}></script> - - <h1>Mi trayectoria como desarrollador</h1> - - <p> - 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. - </p> - - <h2>Tecnologías que domino</h2> - - <p> - 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 - <abbr title="Hypertext Markup Language">HTML5</abbr>, - <abbr title="Cascading Style Sheets">CSS3</abbr>, JavaScript y - TypeScript. - </p> - - <p> - También tengo experiencia con herramientas de DevOps como Docker, - Kubernetes, Terraform y GitHub Actions; así como el ecosistema Cloud de - Azure. - </p> - - <h2>Educación y credenciales</h2> - - <ul> - <li> - <strong>Certificado oficial EF SET C2 Proficient</strong>: - acredita mi nivel de inglés C2, el más alto según el Marco Común - Europeo de Referencia para las Lenguas. <a - href="https://cert.efset.org/es/Yxzc9L" - >Ver certificado</a> - </li> - - <li> - <strong>Microsoft Certified: Azure Developer Associate</strong>: - acredita mis conocimientos en el desarrollo de aplicaciones en - Azure. <a - href="https://learn.microsoft.com/api/credentials/share/en-us/ariel-costas/E15072607CCF2DA9?sharingId=149A1CD9C13790F4" - >Ver credencial</a - >. - </li> - - <li> - <strong>Microsoft Certified: Azure DevOps Engineer Expert</strong>: - acredita mis conocimientos en la implementación de metodologías de - DevOps en Azure con Azure DevOps y GitHub. <a - href="https://learn.microsoft.com/api/credentials/share/en-us/ariel-costas/5FB94876A1701595?sharingId=149A1CD9C13790F4" - >Ver credencial</a - > - </li> - - <li> - <strong - >Técnico Superior en Desarrollo de Aplicaciones Multiplataforma</strong - >: título de formación profesional de grado superior, obtenido en el - <a href="https://iesteis.es/">IES de Teis</a> en Vigo. - </li> - </ul> - - <h2>Experiencia laboral</h2> - - <h3>Estelaria Solutions (Q3 2023 - actualidad)</h3> - - <p> - 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. - </p> - - <p> - 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. - </p> - - <h3>FCT en Polygon-E (Q2 2023)</h3> - - <p> - 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 <i>on-premise</i> con Windows Server, - IIS y SQL Server. - </p> - - <h2>Proyectos</h2> - - <p> - Puedes encontrar los proyectos (públicos) en los que he trabajado en <a href="/portfolio">mi portfolio</a> - y en mi <a href="https://github.com/arielcostas">perfil de GitHub</a>. - </p> -</Layout> +<TrajectoryPageLayout /> |
