diff --git a/astro.config.mjs b/astro.config.mjs index 13b6d34..00be6d0 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -8,8 +8,7 @@ import tailwindcss from '@tailwindcss/vite'; // https://astro.build/config export default defineConfig({ - site: 'https://juancman.dev/', - + site: 'https://juanmanzanero.com', integrations: [ sitemap(), react(), diff --git a/public/publickey.contact@juancman.dev-80e0fe0b452a2fb48511be1b9fb094f3c57bae57.asc b/public/publickey.contact@juancman.dev-80e0fe0b452a2fb48511be1b9fb094f3c57bae57.asc deleted file mode 100644 index 6bf1dd9..0000000 --- a/public/publickey.contact@juancman.dev-80e0fe0b452a2fb48511be1b9fb094f3c57bae57.asc +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -xjMEZQiCxhYJKwYBBAHaRw8BAQdAKsyJoNrC9MIIih/2f+x2jFXe2EW+ufeN -lIOE0wUbcFbNK2NvbnRhY3RAanVhbmNtYW4uZGV2IDxjb250YWN0QGp1YW5j -bWFuLmRldj7CjAQQFgoAPgWCZQiCxgQLCQcICZCfsJTzxXuuVwMVCAoEFgAC -AQIZAQKbAwIeARYhBIDg/gtFKi+0hRG+G5+wlPPFe65XAAAnYAD/conTgzwr -wtm67uDfpSqauckqEEbiS3kCpVAMDptlc5kBAMp5qzA0RrHWwAtliwjckGta -Je8cmSNneuO2CmwF0yoHzjgEZQiCxhIKKwYBBAGXVQEFAQEHQM2jOtm0nD9e -Gj88A9FDxXir8tCxpM+g9FlxeTKrJuJ5AwEIB8J4BBgWCAAqBYJlCILGCZCf -sJTzxXuuVwKbDBYhBIDg/gtFKi+0hRG+G5+wlPPFe65XAABRXQEA56u9jKY5 -ut2tlCJyauN9llxYwp45cyJNvUdoV/QaKhsBALN7snvKxUGqDoxyQi3LpEKE -uNjlRcRwNYo3k71qw3YK -=mkZ4 ------END PGP PUBLIC KEY BLOCK----- diff --git a/public/publickey.contact@juanmanzanero.com-bc93bba27f657fc49730741013ec4a1443f077a9.asc b/public/publickey.contact@juanmanzanero.com-bc93bba27f657fc49730741013ec4a1443f077a9.asc new file mode 100644 index 0000000..a9084ab --- /dev/null +++ b/public/publickey.contact@juanmanzanero.com-bc93bba27f657fc49730741013ec4a1443f077a9.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +xjMEZ+WbSBYJKwYBBAHaRw8BAQdA2UkpseH3fRqNvy+BxT2R2LCvMCmGRC1C +Ge+G/MTc33DNNWNvbnRhY3RAanVhbm1hbnphbmVyby5jb20gPGNvbnRhY3RA +anVhbm1hbnphbmVyby5jb20+wsARBBMWCgCDBYJn5ZtIAwsJBwmQE+xKFEPw +d6lFFAAAAAAAHAAgc2FsdEBub3RhdGlvbnMub3BlbnBncGpzLm9yZzgw9UWU +tgBrYlE7QEuOIpn+TKFv3sXrL0ux2JtPMMTOAxUKCAQWAAIBAhkBApsDAh4B +FiEEvJO7on9lf8SXMHQQE+xKFEPwd6kAAOhvAP9yDtaYDgAPXG6c9vpNYHMO +e3rRjrQdczkTaW7xuvIv4AD9FRut4JK7KR7/6OQfr46ukX70r50CbDQGFSpB +CGEgJQvOOARn5ZtIEgorBgEEAZdVAQUBAQdAZPpVrg6u3Mr5HtUW1tX0PC0O +DmtM2xWEdbsIFLW4fX4DAQgHwr4EGBYKAHAFgmflm0gJkBPsShRD8HepRRQA +AAAAABwAIHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmfzpZREDOYf2/4r +4HTCHMAOtYtKfPreoia/HYX9c53YwQKbDBYhBLyTu6J/ZX/ElzB0EBPsShRD +8HepAAAsPwD8C74TC7XJvpv+QxIjDeYhqeXTKcWZeYnLz/i7psALS/IA/iKA +9ZAk6c1v2OGM5t2PfHfIjxD7JWGq/PY0Gq4wKJYJ +=xo3U +-----END PGP PUBLIC KEY BLOCK----- diff --git a/src/components/footer.tsx b/src/components/footer.tsx index 4649900..c0e38f2 100644 --- a/src/components/footer.tsx +++ b/src/components/footer.tsx @@ -35,12 +35,12 @@ export default function Footer({ lang }: Props) {
RSS feed - + Source Code diff --git a/src/components/header.astro b/src/components/header.astro index 8291aa4..dd16eb6 100644 --- a/src/components/header.astro +++ b/src/components/header.astro @@ -46,7 +46,7 @@ const { lang } = Astro.props; decoding='sync' fetchpriority='high' class='w-auto h-auto aspect-square' - alt='juancmandev logo' + alt='Juan Manzanero logo' />
diff --git a/src/content/blog/en/a-better-way-for-consuming-content.mdx b/src/content/blog/en/a-better-way-for-consuming-content.mdx index 7c0d79f..d55b8c4 100644 --- a/src/content/blog/en/a-better-way-for-consuming-content.mdx +++ b/src/content/blog/en/a-better-way-for-consuming-content.mdx @@ -71,10 +71,10 @@ There are many options: ### Adding Feeds Now you need to search for the RSS URL on your favorite website, like -[this one](https://juancman.dev/rss.xml)! +[this one](https://juanmanzanero.com/feed.xml)! ``` -https://juancman.dev/rss.xml +https://juanmanzanero.com/rss.xml ``` If you open it, you'll get a weird page with code similar to HTML. @@ -108,7 +108,7 @@ https://youtube.com/feeds/videos.xml?channel_id=[CHANNEL ID] ### My Favorite Feeds -- [juancman.dev (obviously!)](https://www.juancman.dev/rss.xml) +- [juanmanzanero.com (obviously!)](https://juanmanzanero.com/feed.xml) - [Astronomic Picture of the Day (apod)](https://apod.com/feed.rss) - [Earth Science Picture of the Day (epod)](https://feeds2.feedburner.com/EarthSciencePictureoftheDay) - [Erick Murphy (cool guy)](https://ericmurphy.xyz/index.xml) diff --git a/src/content/blog/en/build-a-fullstack-app copy.mdx b/src/content/blog/en/build-a-fullstack-app copy.mdx index 68b28f4..5423bf8 100644 --- a/src/content/blog/en/build-a-fullstack-app copy.mdx +++ b/src/content/blog/en/build-a-fullstack-app copy.mdx @@ -12,7 +12,7 @@ rss: true ![Banner with the tech stack used in this tutorial, Next.js, TailwindCSS, shadcn/ui, Prisma, PostgreSQL and Auth.js](@/assets/blog/build-a-fullstack-app/banner.png) _Tech stack used in this tutorial_ -[GitHub repo](https://github.com/juancmandev/fullstack-app) +[GitHub repo](https://github.com/juanmanzanerod/fullstack-app) ## Content diff --git a/src/content/blog/en/next-intl-blog-template.mdx b/src/content/blog/en/next-intl-blog-template.mdx index c14a456..78e2fa9 100644 --- a/src/content/blog/en/next-intl-blog-template.mdx +++ b/src/content/blog/en/next-intl-blog-template.mdx @@ -12,7 +12,7 @@ rss: true ![Next Intl Blog Template banner](@/assets/blog/next-intl-blog-template/banner.png) _Next Intl Blog Template banner_ -[GitHub](https://github.com/juancmandev/next-intl-blog-template) +[GitHub](https://github.com/juanmanzanerod/next-intl-blog-template) [Website](https://next-intl-blog-template.vercel.app/en) @@ -145,4 +145,4 @@ export default async function Page(props: TPage) { } ``` -[You can fork this template here](https://github.com/juancmandev/next-intl-blog-template) +[You can fork this template here](https://github.com/juanmanzanerod/next-intl-blog-template) diff --git a/src/content/blog/es/construye-una-app-fullstack.mdx b/src/content/blog/es/construye-una-app-fullstack.mdx index 19ff2ab..dd2e35d 100644 --- a/src/content/blog/es/construye-una-app-fullstack.mdx +++ b/src/content/blog/es/construye-una-app-fullstack.mdx @@ -12,7 +12,7 @@ rss: true ![Banner con el teck stack usado en este tutorial, Next.js, TailwindCSS, shadcn/ui, Prisma, PostgreSQL y Auth.js.](@/assets/blog/build-a-fullstack-app/banner.png) _Tech stack usado en este tutorial_ -[GitHub repo](https://github.com/juancmandev/fullstack-app) +[GitHub repo](https://github.com/juanmanzanerod/fullstack-app) # Contenido @@ -1198,4 +1198,3 @@ Como puedes ver, crear una app fullstack con Next.js es muy fácil. Por supuesto, se puede mejorar, agregando validación del lado del servidor para los inputs, agregando paginación para los posts en el home, etc. -Si quieres que trabajemos juntos, envíame un correo a [contact@juancman.dev](mailto:contact@juancman.dev). diff --git a/src/content/blog/es/next-intl-blog-template.mdx b/src/content/blog/es/next-intl-blog-template.mdx index f1d58e7..729156b 100644 --- a/src/content/blog/es/next-intl-blog-template.mdx +++ b/src/content/blog/es/next-intl-blog-template.mdx @@ -12,7 +12,7 @@ rss: true ![Next Intl Blog Template banner](@/assets/blog/next-intl-blog-template/banner.png) _Next Intl Blog Template banner_ -[GitHub](https://github.com/juancmandev/next-intl-blog-template) +[GitHub](https://github.com/juanmanzanerod/next-intl-blog-template) [Website](https://next-intl-blog-template.vercel.app/en) @@ -35,9 +35,9 @@ Este template es una extensión de [next-intl](https://next-intl-docs.vercel.app Puedes agregar o remover locales en el archivo `src/lang/locales.ts`. ```ts title="src/lang/locales.ts" -export type locales = "en" | "es"; +export type locales = 'en' | 'es'; -export const localesList: locales[] = ["en", "es"]; +export const localesList: locales[] = ['en', 'es']; ``` Solo agrega o remueve un locale de la constante `locales`, y agrega o remueve el locale de la lista. @@ -48,7 +48,7 @@ La lista es usada para la generación de rutas estáticas en `src/app/[locale]/layout.tsx`. ```ts title="src/app/[locale]/layout.tsx" -import { localesList } from "@/lang/locales"; +import { localesList } from '@/lang/locales'; export function generateStaticParams() { return localesList.map((locale) => ({ locale })); @@ -61,7 +61,7 @@ Recuerda actualizar el matcher en `src/middleware.ts`. //... export const config = { - matcher: ["/", "/(en|es)/:path*"], + matcher: ['/', '/(en|es)/:path*'], }; ``` @@ -76,15 +76,15 @@ Dentro crea el archivo .mdx con un nombre único, el nombre será usado como slu Para crear una sección de blog, usarás la función _getAllContent_ en tu ruta, por ejemplo: `src/app/[locale]/blog/[slug]/page.tsx`. ```tsx title="src/app/[locale]/blog/[slug]/page.tsx" -import { Mdx } from "@/components"; -import { TParamsLocale, TPage, TSlugLang } from "@/types"; -import { Metadata } from "next"; -import { getAllContent, getContent } from "@/utils/getContent"; +import { Mdx } from '@/components'; +import { TParamsLocale, TPage, TSlugLang } from '@/types'; +import { Metadata } from 'next'; +import { getAllContent, getContent } from '@/utils/getContent'; export async function generateStaticParams( - props: TParamsLocale, + props: TParamsLocale ): Promise { - const blogs = await getAllContent(props.params.locale, "blog"); + const blogs = await getAllContent(props.params.locale, 'blog'); if (!blogs) return []; @@ -105,7 +105,7 @@ Puedes obtener la metadata del archivo `.mdx` también. //... export async function generateMetadata(props: TPage): Promise { - const blog = await getContent(props.params.locale, "blog", props.params.slug); + const blog = await getContent(props.params.locale, 'blog', props.params.slug); if (!blog) return {}; @@ -124,7 +124,7 @@ Entonces, renderiza el contenido usando el componente _Mdx_. //... export default async function Page(props: TPage) { - const post = await getContent(props.params.locale, "blog", props.params.slug); + const post = await getContent(props.params.locale, 'blog', props.params.slug); if (!post) return null; @@ -132,8 +132,4 @@ export default async function Page(props: TPage) { } ``` -[Puedes hacer un fork de este template aquí](https://github.com/juancmandev/next-intl-blog-template) - -## Contacto - -Si te interesa **trabajar juntos** en un website con internacionalización con Next.js, envíame un correo a [contact@juancman.dev](mailto:contact@juancman.dev) +[Puedes hacer un fork de este template aquí](https://github.com/juanmanzanerod/next-intl-blog-template) diff --git a/src/content/blog/es/una-mejor-forma-de-consumir-contenido.mdx b/src/content/blog/es/una-mejor-forma-de-consumir-contenido.mdx index 5acac5c..c2f43ba 100644 --- a/src/content/blog/es/una-mejor-forma-de-consumir-contenido.mdx +++ b/src/content/blog/es/una-mejor-forma-de-consumir-contenido.mdx @@ -67,10 +67,10 @@ mi opción favorita como ~~Pecador~~ usuario de Apple ### Agregando Feeds -Ahora debes buscar por el link RSS de tu website favorito, ¡[como este](https://juancman.dev/es/rss.xml)! +Ahora debes buscar por el link RSS de tu website favorito, ¡[como este](https://juanmanzanero.com/es/feed.xml)! ``` -https://juancman.dev/es/rss.xml +https://juanmanzanero.com/es/feed.xml ``` Si lo abres, verás una página rara con código similar a HTML. @@ -102,7 +102,7 @@ https://youtube.com/feeds/videos.xml?channel_id=[CHANNEL ID] ### Mis Feeds Favoritos -- [juancman.dev (¡obviamente!)](https://www.juancman.dev/es/rss.xml) +- [juanmanzanero.com (¡obviamente!)](https://juanmanzanero.com/es/feed.xml) - [Astronomic Picture of the Day (apod)](https://apod.com/feed.rss) - [Earth Science Picture of the Day (epod)](https://feeds2.feedburner.com/EarthSciencePictureoftheDay) - [Erick Murphy](https://ericmurphy.xyz/index.xml) diff --git a/src/content/pages/en/contact.mdx b/src/content/pages/en/contact.mdx index 7a8caed..cfa925c 100644 --- a/src/content/pages/en/contact.mdx +++ b/src/content/pages/en/contact.mdx @@ -13,10 +13,10 @@ Just change `[at]` for `@` and `[dot]` for `.`. This is for preventing web crawlers from getting my email: ``` -contact[at]juancman[dot]dev +contact[at]juanmanzanero[dot]com ``` -You may [download my PGP key](/publickey.contact@juancman.dev-80e0fe0b452a2fb48511be1b9fb094f3c57bae57.asc) to validate my emails. +You may [download my PGP key](/publickey.contact@juanmanzanero.com-bc93bba27f657fc49730741013ec4a1443f077a9.asc) to validate my emails. ## Social media @@ -26,5 +26,5 @@ If you want to talk about contracting me, you may check my career: You may check my GitHub, but I have also my own Gitea instance: -- [GitHub](https://github.com/juancmandev) -- [Gitea](https://git.juancman.dev/juancmandev) +- [GitHub](https://github.com/juanmanzanerod) +- [Gitea](https://git.juanmanzanero.com/juanmanzanero) diff --git a/src/content/pages/es/contacto.mdx b/src/content/pages/es/contacto.mdx index 9b6e88b..933d884 100644 --- a/src/content/pages/es/contacto.mdx +++ b/src/content/pages/es/contacto.mdx @@ -13,18 +13,18 @@ Solo cambia `[at]` por `@` y `[dot]` por `.`. Esto es para evitar que web crawlers obtengan mi email. ``` -contact[at]juancman[dot]dev +contact[at]juanmanzanero[dot]com ``` -Puedes [descargar mi PGP key](/publickey.contact@juancman.dev-80e0fe0b452a2fb48511be1b9fb094f3c57bae57.asc) para validar mis emails. +Puedes [descargar mi PGP key](/publickey.contact@juanmanzanero.com-bc93bba27f657fc49730741013ec4a1443f077a9.asc) para validar mis emails. ## Redes sociales Si quieres hablar sobre contratarme, puedes revisar mi carrera: -- [LinkedIn](https://www.linkedin.com/in/juancmandev) +- [LinkedIn](https://www.linkedin.com/in/juanmanzanerod) Puedes revisar mi GitHub, aunque igual tengo mi propia instancia de Gitea: -- [GitHub](https://github.com/juancmandev) -- [Gitea](https://git.juancman.dev/juancmandev) +- [GitHub](https://github.com/juanmanzanerod) +- [Gitea](https://git.juanmanzanero.com/juanmanzanero) diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index e50663e..3fa1244 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -35,7 +35,7 @@ const { title, description } = Astro.props; lang === 'en' && ( @@ -45,7 +45,7 @@ const { title, description } = Astro.props; lang === 'es' && ( diff --git a/src/pages/es/feed.xml.ts b/src/pages/es/feed.xml.ts index 4de7ece..fa67c9d 100644 --- a/src/pages/es/feed.xml.ts +++ b/src/pages/es/feed.xml.ts @@ -69,17 +69,17 @@ export async function GET(context: any) { return rss({ xmlns: { atom: 'http://www.w3.org/2005/Atom' }, - title: 'juancmandev', + title: 'Juan Manzanero', description: 'Bienvenido a mi dominio, extraño.', site: `${context.site}es/`, customData: [ 'es-mx', ` - https://juancman.dev/logo.png - juancmandev - https://juancman.dev + ${context.site}/logo.png + Juan Manzanero + ${context.site} `, - ``, + ``, ].join(''), items, trailingSlash: false, diff --git a/src/pages/es/index.astro b/src/pages/es/index.astro index 1b84328..2a19293 100644 --- a/src/pages/es/index.astro +++ b/src/pages/es/index.astro @@ -7,9 +7,9 @@ import { sortContentByDate } from '@/utils/sorts'; import { getCollection } from 'astro:content'; const pageData = { - title: 'juancmandev', + title: 'Juan Manzanero', description: - 'Bienvenido a mi dominio, extraño. Soy juancmandev; Desarrollador Web, entusiasta de Linux, y defensor de la privacidad.', + 'Bienvenido a mi dominio, extraño. Soy Juan Manzanero; Desarrollador Web, entusiasta de Linux, y defensor de la privacidad.', }; const allPosts = await getCollection('blog', ({ data }) => data.draft !== true); @@ -33,7 +33,7 @@ const lang = getLangFromUrl(Astro.url);

Bienvenido a mi dominio, extraño.

- Soy juancmandev; Juan Manzanero; Desarrollador Web, entusiasta de Linux y defensor de la privacidad.en-us', ` - https://juancman.dev/logo.png - juancmandev - https://juancman.dev + ${context.site}/logo.png + Juan Manzanero + ${context.site} `, - ``, + ``, ].join(''), items, trailingSlash: false, diff --git a/src/pages/index.astro b/src/pages/index.astro index 158bd08..1f0856f 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -7,9 +7,9 @@ import { getLangFromUrl } from '@/i18n/utils'; import PostItemList from '@/components/post-items-list'; const pageData = { - title: 'juancmandev', + title: 'Juan Manzanero', description: - 'Welcome to my domain, stranger. I am juancmandev; Web Developer, Linux enthusiast, and privacy defender.', + 'Welcome to my domain, stranger. I am Juan Manzanero; Web Developer, Linux enthusiast, and privacy defender.', }; const allPosts = await getCollection('blog', ({ data }) => data.draft !== true); diff --git a/src/pages/microblog.astro b/src/pages/microblog.astro index 6d7aaf9..b1a54d8 100644 --- a/src/pages/microblog.astro +++ b/src/pages/microblog.astro @@ -3,7 +3,7 @@ import MicroblogItem from '@/components/microblog-item.astro'; import Layout from '@/layouts/Layout.astro'; import { createServerClient } from '@/utils/pocketbase'; -const pb = createServerClient('https://pb.juancman.dev/'); +const pb = createServerClient('https://pb.juanmanzanero.com/'); const data = await pb.collection('microblogs').getFullList({ expand: 'tags', sort: '-published', diff --git a/src/pages/robots.txt.ts b/src/pages/robots.txt.ts index 7ed932a..eb5a222 100644 --- a/src/pages/robots.txt.ts +++ b/src/pages/robots.txt.ts @@ -4,7 +4,7 @@ const robotsTxt = ` User-agent: * Allow: / -Sitemap: ${new URL('sitemap-index.xml', 'https://juancman.dev').href} +Sitemap: ${new URL('sitemap-index.xml', 'https://juanmanzanero.com').href} `.trim(); export const GET: APIRoute = () => {