Ir al contenido

Añadir iconos a enlaces externos

Usando un plugin de hast (EN), puedes identificar y modificar enlaces en tus archivos Markdown que apuntan a sitios externos. Este ejemplo añade un icono al final de cada enlace externo para que los visitantes sepan que están saliendo de tu sitio.

  • Un proyecto Astro que use Markdown para páginas de contenido.
  1. Instala tanto @astrojs/markdown-satteri como satteri:

    Ventana de terminal
    npm install @astrojs/markdown-satteri satteri
  2. Crea un plugin de hast de Sätteri que añada un icono si el enlace empieza con http:

    src/hast/hast-external-links.ts
    import { defineHastPlugin } from 'satteri';
    export const hastExternalLinks = defineHastPlugin({
    name: "hast-external-links",
    element: {
    filter: ["a"],
    visit(node, context) {
    if (node.properties.href?.startsWith("http")) {
    context.appendChild(node, {
    type: "element",
    tagName: "span",
    properties: { ariaHidden: "true" },
    children: [
    {
    type: "text",
    value: "🔗",
    },
    ],
    });
    }
    },
    },
    });
  3. Configura el plugin en tu archivo astro.config.mjs.

    Importa satteri() y defínelo como el procesador de Markdown (EN) para añadir plugins personalizados de Sätteri. Luego, pasa a hastPlugins un array que contenga tu plugin hastExternalLinks importado.

    astro.config.mjs
    import { satteri } from '@astrojs/markdown-satteri';
    import { defineConfig } from 'astro/config';
    import { hastExternalLinks } from './src/hast/hast-external-links';
    export default defineConfig({
    markdown: {
    processor: satteri({
    hastPlugins: [hastExternalLinks],
    }),
    },
    });
Contribuir Comunidad Patrocinador