Update website domain
This commit is contained in:
parent
6928978684
commit
3a57df404e
@ -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(),
|
||||
|
@ -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-----
|
@ -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-----
|
@ -35,12 +35,12 @@ export default function Footer({ lang }: Props) {
|
||||
</section>
|
||||
<section className='w-max mx-auto flex items-center gap-12'>
|
||||
<VerticalLinkButton
|
||||
href={`https://juancman.dev/${lang === 'es' ? 'es/' : ''}feed.xml`}
|
||||
href={`https://juanmanzanero.com/${lang === 'es' ? 'es/' : ''}feed.xml`}
|
||||
>
|
||||
<RssIcon className='w-6' />
|
||||
RSS feed
|
||||
</VerticalLinkButton>
|
||||
<VerticalLinkButton href='https://git.juancman.dev/juancmandev/website'>
|
||||
<VerticalLinkButton href='https://git.juanmanzanero.com/juanmanzanero/website'>
|
||||
<Code className='w-6' />
|
||||
Source Code
|
||||
</VerticalLinkButton>
|
||||
|
@ -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'
|
||||
/>
|
||||
</LinkButton>
|
||||
</section>
|
||||
|
@ -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)
|
||||
|
@ -12,7 +12,7 @@ rss: true
|
||||

|
||||
_Tech stack used in this tutorial_
|
||||
|
||||
[GitHub repo](https://github.com/juancmandev/fullstack-app)
|
||||
[GitHub repo](https://github.com/juanmanzanerod/fullstack-app)
|
||||
|
||||
## Content
|
||||
|
||||
|
@ -12,7 +12,7 @@ rss: true
|
||||

|
||||
_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)
|
||||
|
@ -12,7 +12,7 @@ rss: true
|
||||

|
||||
_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).
|
||||
|
@ -12,7 +12,7 @@ rss: true
|
||||

|
||||
_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<TSlugLang[]> {
|
||||
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<Metadata> {
|
||||
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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -35,7 +35,7 @@ const { title, description } = Astro.props;
|
||||
lang === 'en' && (
|
||||
<link
|
||||
rel='alternate'
|
||||
title='juancmandev'
|
||||
title='Juan Manzanero'
|
||||
type='application/rss+xml'
|
||||
href={new URL('feed.xml', Astro.site)}
|
||||
/>
|
||||
@ -45,7 +45,7 @@ const { title, description } = Astro.props;
|
||||
lang === 'es' && (
|
||||
<link
|
||||
rel='alternate'
|
||||
title='juancmandev'
|
||||
title='Juan Manzanero'
|
||||
type='application/rss+xml'
|
||||
href={new URL('feed.xml', `${Astro.site}/es/`)}
|
||||
/>
|
||||
|
@ -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: [
|
||||
'<language>es-mx</language>',
|
||||
`<image>
|
||||
<url>https://juancman.dev/logo.png</url>
|
||||
<title>juancmandev</title>
|
||||
<link>https://juancman.dev</link>
|
||||
<url>${context.site}/logo.png</url>
|
||||
<title>Juan Manzanero</title>
|
||||
<link>${context.site}</link>
|
||||
</image>`,
|
||||
`<atom:link href="${context.site}es/feed.xml" rel="self" type="application/rss+xml"/>`,
|
||||
`<atom:link href="${context.site}/es/feed.xml" rel="self" type="application/rss+xml"/>`,
|
||||
].join(''),
|
||||
items,
|
||||
trailingSlash: false,
|
||||
|
@ -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);
|
||||
<div class='prose prose-invert max-w-3xl mx-auto'>
|
||||
<h1 class='text-primary'>Bienvenido a mi dominio, extraño.</h1>
|
||||
<p>
|
||||
Soy <strong class='text-primary'>juancmandev</strong>; <strong
|
||||
Soy <strong class='text-primary'>Juan Manzanero</strong>; <strong
|
||||
>Desarrollador Web</strong
|
||||
>, entusiasta de <strong>Linux</strong> y defensor de la <strong
|
||||
>privacidad.</strong
|
||||
|
@ -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: 'Welcome to my domain, stranger.',
|
||||
site: context.site,
|
||||
customData: [
|
||||
'<language>en-us</language>',
|
||||
`<image>
|
||||
<url>https://juancman.dev/logo.png</url>
|
||||
<title>juancmandev</title>
|
||||
<link>https://juancman.dev</link>
|
||||
<url>${context.site}/logo.png</url>
|
||||
<title>Juan Manzanero</title>
|
||||
<link>${context.site}</link>
|
||||
</image>`,
|
||||
`<atom:link href="${context.site}feed.xml" rel="self" type="application/rss+xml"/>`,
|
||||
`<atom:link href="${context.site}/feed.xml" rel="self" type="application/rss+xml"/>`,
|
||||
].join(''),
|
||||
items,
|
||||
trailingSlash: false,
|
||||
|
@ -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);
|
||||
|
@ -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',
|
||||
|
@ -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 = () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user