es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agregar un título personalizado a una pestaña usando el plugin de Jekyll?

Estamos convirtiendo los archivos MD (Markdown) en archivos HTML usando Jekyll y alojando los archivos HTML en el sitio. En nuestro archivo MD estamos mencionando las pestañas de la siguiente manera.

Aquí está mi complemento para mostrar pestañas en el sitio.

En este momento, el título de la pestaña se muestra en el idioma de visualización debido al siguiente código.

Aquí está mi código HTML convertido.

En lugar de eso, me gustaría tener un título de pestaña personalizado para mis pestañas como se muestra a continuación.

He revisado y encontrado los complementos a continuación. Pero no puedo adaptar los siguientes complementos con mi complemento.

Ahora tengo que saber cómo mejorar mi complemento para mostrar un título personalizado.

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para mejorar el plugin y mostrar títulos personalizados en las pestañas, debes modificar la variable prefix en el siguiente código.

    prefix = prefix + '<li role="presentation" class=""><a data-target="#'+ id + "-" + @lang.to_s.gsub("+", "-") +'" aria-controls="home" role="tab" data-toggle="tab" data-original-lang="'+@originalLang+'">'+ @displayLanguage +'</a></li>'

    En lugar de usar @displayLanguage, necesitas usar una variable de título personalizada que se puede pasar como un argumento a tu clase TabsBlock. A continuación se muestra el código modificado para la clase TabsBlock.

    “`require ‘kramdown’
    module Tags
    class TabsBlock < Liquid::Block
    def initialize(tag_name, custom_title, tokens)
    super
    @customTitle = custom_title
    end
    def render(context)
    content = super(context)
    content = convert(content)
    end
    def convert(context)
    liArray = context.gsub(/

  2. (.+)<\/li>/)
    nextLine = “\n”
    tabOpenTag = nextLine + ‘

    <

    div class=”tabs”>’ + nextLine
    ulOpenTag = nextLine + ‘

    ‘ + nextLine
    lis = ” + nextLine
    liArray.each_with_index do |li, idx|
    title = @customTitle[idx]
    lis = lis + li.gsub(/aria-controls=\”(.+)\” role=\”tab\”/, “aria-controls=\”\1\” role=\”tab\” data-title=\”#{title}\””) + nextLine
    end
    return tabOpenTag + ulOpenTag + lis + ulCloseTag + tabContentOpenTag +context.gsub(/

  3. (.+)<\/li>/,”) + closedivTag + closedivTag
    end
    end
    end

    Liquid::Template.register_tag(“tabs”, Tags::TabsBlock)“`

    Puedes pasar un array de títulos personalizados como un parámetro adicional a la clase TabsBlock, como se muestra a continuación.

    {% tabs “Título personalizado”,”Otro título personalizado” %}

    En el código modificado, el título personalizado reemplaza la variable @displayLanguage, como se muestra a continuación.

    li.gsub(/aria-controls=\"(.+)\" role=\"tab\"/, "aria-controls=\"\\1\" role=\"tab\" data-title=\"#{title}\"")

    Este código también agrega un atributo data-title al enlace de la pestaña a, que contiene el título personalizado para esa pestaña en particular. Puedes usar este atributo para mostrar el título personalizado en el contenido de la pestaña.

Comments are closed.