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.

Plegado global de código en bookdown con configuración predeterminada de “ocultar global”.

La primera respuesta de este maravilloso post muestra un código javascript sencillo que permite insertar un interruptor para ocultar todo el código en un documento bookdown.

Aunque he probado muchas variaciones diferentes y he intentado comprender este post que discute las opciones para establecer un valor predeterminado de un parámetro en una función de JavaScript, no logro entender cómo establecer el valor predeterminado del documento bookdown resultante para ocultar todo el código de manera predeterminada y hacer que el interruptor muestre el código cuando el lector lo desee. Cualquier ayuda sería muy apreciada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La publicación referenciada proporciona un código javascript que inserta un interruptor para ocultar todo el código en un documento de bookdown. Sin embargo, el autor está buscando ayuda para establecer el valor predeterminado del documento de bookdown resultante, ocultando todo el código y mostrando el interruptor al lector cuando desea verlo.

    Para lograr esto, el código javascript necesita ser modificado para establecer el estado inicial de los bloques de código como “oculto”. Esto se puede hacer agregando la siguiente línea de código:

    var codeBlocks = document.getElementsByClassName("sourceCode");
    for (var i = 0; i < codeBlocks.length; i++) {
      codeBlocks[i].style.display = "none";
    }
    

    Este código selecciona todos los elementos con la clase “sourceCode” (que debería incluir todos los bloques de código en el documento de bookdown) y establece su propiedad de visualización como “none” de forma predeterminada. Esto ocultará todos los bloques de código al cargar la página.

    El botón de alternancia puede ser modificado para cambiar la propiedad de visualización de los bloques de código reemplazando la siguiente línea:

    $(this).nextUntil("h2,h3,h4,h5,h6").toggle();
    

    con:

    var codeBlocks = $(this).nextUntil("h2,h3,h4,h5,h6");
    if (codeBlocks.css("display") == "none") {
      codeBlocks.css("display", "block");
    } else {
      codeBlocks.css("display", "none");
    }
    

    Este código selecciona todos los elementos entre el botón de alternancia y el siguiente encabezado (que debería incluir los bloques de código) y verifica su propiedad de visualización actual. Si es “none”, lo establece en “block” para mostrar los bloques de código. Si es “block”, lo establece en “none” para ocultar los bloques de código.

    Con estas modificaciones, el estado predeterminado del documento de bookdown resultante será ocultar todos los bloques de código y el botón de alternancia mostrará/ocultará los bloques de código según sea necesario.

Comments are closed.