Skip to content

Commit 4c595d1

Browse files
committed
feat: basic heading and use dynamic image og preview
1 parent b289e1d commit 4c595d1

File tree

5 files changed

+20
-42
lines changed

5 files changed

+20
-42
lines changed

app.vue

-22
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,11 @@
44
const route = useRoute()
55
const nodeId = route.params.slug
66
7-
const title = 'Hoja de Ruta Definitiva para Aprender Rust: Desde Principiante hasta Experto'
8-
const description = `
9-
¿Estás listo para dominar uno de los lenguajes de programación más potentes y eficientes? Nuestra hoja de ruta te guiará paso a paso en tu viaje de aprendizaje de Rust, desde los conceptos básicos hasta las técnicas avanzadas. Diseñada para principiantes y desarrolladores experimentados, esta guía exhaustiva te ayudará a construir una sólida base en Rust y a aprovechar al máximo su rendimiento, seguridad y concurrencia.
10-
Aprenderás a través de ejemplos prácticos, ejercicios desafiantes y proyectos reales, lo que te permitirá aplicar tus nuevas habilidades de inmediato. Además, explorarás las mejores prácticas y las últimas tendencias en el ecosistema de Rust, asegurándote de estar siempre un paso adelante.
11-
Ya sea que desees desarrollar aplicaciones de sistemas, videojuegos, criptomonedas o cualquier otro proyecto, nuestra hoja de ruta te preparará para dominar Rust y destacarte en el mundo del desarrollo de software. ¡Comienza tu viaje hoy y conviértete en un experto en Rust!
12-
`
137
useHead({
148
bodyAttrs: {
159
class: 'bg-orange-200 dark:bg-[#131313]/90 w-screen min-h-screen bg-center bg-fixed dark:bg-kaku dark:bg-cover dark:bg-blend-darken overflow-x-hidden dark:text-[#e2cea9]' + ((nodeId && !route.query.fromClick) ? ' overflow-hidden' : '')
1610
}
1711
})
18-
19-
useSeoMeta({
20-
title,
21-
description,
22-
ogTitle: title,
23-
ogDescription: description,
24-
twitterTitle: title,
25-
twitterDescription: description,
26-
twitterCard: 'summary_large_image',
27-
icon: '/favicon.ico',
28-
lang: 'es',
29-
ogImage: '[og:image]',
30-
twitterImage: '[twitter:image]'
31-
})
32-
33-
// defineOgImageComponent('Home', { title })
3412
</script>
3513

3614
<template>

components/OgImage/Home.vue

-2
This file was deleted.

components/Roadmap.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
1212
const roadmapNodes = ref([
1313
{ id: 'topics', type: 'topics', position: { x: 0, y: -150 }, data: { topicLevel: 'start' } },
14-
...data.value.map(({ title, _path, data: { position, width, sourcePosition, targetPosition, topicLevel, type, align } }) => (
15-
{ id: _path.substring(1).replaceAll('/', "-").replaceAll('_', ''), type, position, width, label: title, data: { align, topicLevel, sourcePosition, targetPosition, path: _path } }
14+
...data.value.map(({ title, _path, description, data: { position, width, sourcePosition, targetPosition, topicLevel, type, align } }) => (
15+
{ id: _path.substring(1).replaceAll('/', "-").replaceAll('_', ''), description, type, position, width, label: title, data: { align, topicLevel, sourcePosition, targetPosition, path: _path } }
1616
))
1717
])
1818

nuxt.config.ts

+4-11
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,14 @@
22
export default defineNuxtConfig({
33
ssr: false,
44
devtools: { enabled: true },
5-
modules: [ "@nuxt/content", "@nuxtjs/tailwindcss", "@nuxtjs/seo" ],
5+
modules: ["@nuxt/content", "@nuxtjs/tailwindcss", "@nuxtjs/seo"],
66
site: {
77
url: 'https://roadmap.rustlang-es.org',
8-
name: 'Hoja de Ruta Definitiva para Aprender Rust: Desde Principiante hasta Experto',
9-
description: `
10-
¿Estás listo para dominar uno de los lenguajes de programación más potentes y eficientes? Nuestra hoja de ruta te guiará paso a paso en tu viaje de aprendizaje de Rust, desde los conceptos básicos hasta las técnicas avanzadas. Diseñada para principiantes y desarrolladores experimentados, esta guía exhaustiva te ayudará a construir una sólida base en Rust y a aprovechar al máximo su rendimiento, seguridad y concurrencia.
11-
Aprenderás a través de ejemplos prácticos, ejercicios desafiantes y proyectos reales, lo que te permitirá aplicar tus nuevas habilidades de inmediato. Además, explorarás las mejores prácticas y las últimas tendencias en el ecosistema de Rust, asegurándote de estar siempre un paso adelante.
12-
Ya sea que desees desarrollar aplicaciones de sistemas, videojuegos, criptomonedas o cualquier otro proyecto, nuestra hoja de ruta te preparará para dominar Rust y destacarte en el mundo del desarrollo de software. ¡Comienza tu viaje hoy y conviértete en un experto en Rust!
13-
`,
8+
name: 'Hoja de Ruta Definitiva para Aprender Rust',
9+
description: 'Nuestra hoja de ruta te guiará paso a paso en tu viaje de aprendizaje de Rust diseñada para principiantes y desarrolladores experimentados',
1410
defaultLocale: 'es'
1511
},
16-
ogImage: {
17-
enabled: false,
18-
runtimeChromium: false,
19-
},
12+
ogImage: { enabled: false },
2013
app: {
2114
head: {
2215
charset: 'utf-8',

pages/[...slug].vue

+14-5
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@
1919
>
2020
<Dropdown
2121
ref="statusDropDown"
22-
:customTriggerClass="[
23-
'px-3 py-1 hover:bg-orange-100 dark:hover:bg-gray-700 dark:border-gray-700 border',
24-
status.toLowerCase(),
25-
]"
22+
:customTriggerClass="
23+
'px-3 py-1 hover:bg-orange-100 dark:hover:bg-gray-700 dark:border-gray-700 border ' + status.toLowerCase()"
2624
:border="false"
2725
>
2826
<!-- trigger element -->
@@ -118,11 +116,22 @@ const isScrolled = ref(false);
118116
119117
onMounted(async () => {
120118
if (!nodeId) return;
121-
const contentResult = await queryContent(nodeId.join("/")).findOne();
119+
const contentResult = await queryContent((nodeId || []).join("/")).findOne();
122120
content.value = contentResult;
123121
showSidebar.value = contentResult && (route.query.fromClick || false);
122+
123+
useContentHead(contentResult)
124+
124125
});
125126
127+
useSeoMeta({
128+
twitterCard: 'summary_large_image',
129+
icon: '/favicon.ico',
130+
lang: 'es',
131+
ogImage: `/${(nodeId && nodeId.join('-')) || 'ogpreview'}.png`,
132+
twitterImage: `/${(nodeId && nodeId.join('-')) || 'ogpreview'}.png`,
133+
})
134+
126135
const closeSidebar = () => {
127136
content.value = null;
128137
document.body.classList.remove("overflow-hidden");

0 commit comments

Comments
 (0)