Empecé a usar Markdown para tomar notas.
Utilizo marcado para ver mis notas de descuento y es hermoso.
Pero a medida que mis notas se alargan, me resulta difícil encontrar lo que quiero.
Sé que Markdown puede crear tablas, pero ¿es capaz de crear una tabla de contenido, que salte a secciones o definir secciones de página en Markdown?
Alternativamente, ¿hay lectores / editores de descuento que puedan hacer tales cosas? La búsqueda sería una buena característica para tener también.
En resumen, quiero que sea mi asombrosa herramienta para tomar notas y funciones como escribir un libro, etc.
\tableofcontents
. Si la rueda se va a reinventar, sería preferible copiar las partes buenas... contents::
.Respuestas:
MultiMarkdown Composer parece generar una tabla de contenido para ayudar durante la edición.
También puede haber una u otra biblioteca, que puede generar TOC: consulte Python Markdown TOC Extension .
fuente
Puedes probar esto.
fuente
## Example ## "Example2" ## Third Example<a name="third-example" />
es la única forma en que podría tragar espacios hasta ahora. ¿Seguramente la tercera etiqueta se interpretaría como -#Third
- seguido de un espacio - luego la palabra Ejemplo - en su fragmento de arriba? Los guiones no funcionan en absoluto. Gracias1. [Einführung](#einfuhrung)
Aquí hay un método útil. Debe producir referencias clicables en cualquier editor de MarkDown.
Produce:
Tabla de contenido
Esta es la introduccion
Algún texto de introducción, formateado en el estilo del encabezado 2
Algun parrafo
El primer texto del párrafo
Subpárrafo
Este es un subpárrafo, formateado en el estilo del encabezado 3
Otro parrafo
El segundo texto del párrafo
fuente
## <a name="foo" /> Foo
Para los usuarios de Visual Studio Code , una buena idea es usar el complemento Markdown TOC .
Para instalarlo, inicie VS Code Quick Open ( Control/⌘+ P), pegue el siguiente comando y presione Entrar.
Y para generar la tabla de contenido, abra la paleta de comandos ( Control/⌘+ Shift+ P) y seleccione
Markdown TOC:Insert/Update option
o use Control/⌘+ MT.fuente
[Section Foo](#foo-header-title)
e incluso funciona fuera del modo de vista previa (es decir, en el marcado simple).Puede probar este script de ruby para generar la tabla de contenido desde un archivo de rebajas.
fuente
ifndef
,include
yendif
, entre otras directivas de preprocesador, a la lista de palabras prohibidas. Además, definir la lista fuera del alcance del bucle evita tener que volver a establecerla con cada iteración. Además, esto recogerá comentarios de cualquier idioma que use la#
sintaxis de comentarios, incluido Ruby, lo que no es bueno. Estoy dispuesto a editar si lo desea. Sin embargo, este es un gran comienzo y funcionó bien para mis propósitos. ¡Muchas gracias!#
), no con encabezados de texto (subrayados).title.parameterize
el href, ¡gracias!Hay 2 formas de crear su TOC (resumen) en su documento de descuento.
1. Manualmente
2. programáticamente
Se puede utilizar, por ejemplo, un script que genera resumen para usted, eche un vistazo a mi proyecto en GitHub - summarizeMD -
También probé otro módulo script / npm (por ejemplo, doctoc ) pero nadie reproduce una tabla de contenido con anclas que funcionen.
fuente
Si usa markdown extra, no olvide que puede agregar atributos especiales a enlaces, encabezados, cercas de código e imágenes.
https://michelf.ca/projects/php-markdown/extra/#spe-attr
fuente
Las etiquetas de anclaje generadas por diferentes analizadores de Markdown no son uniformes.
Si está trabajando con analizadores Markdown GFM (GitHub Flavored Markdown) o Redcarpet, escribí un complemento Vim para manejar la tabla de contenido.
Caracteristicas
Generar tabla de contenido para archivos Markdown.
Analizadores de Markdown compatibles:
Actualice la tabla de contenido existente.
Actualización automática de la tabla de contenido existente al guardar.
Capturas de pantalla
Uso
Generar tabla de contenido
Mueva el cursor a la línea a la que desea agregar la tabla de contenido, luego escriba un comando a continuación que le convenga. El comando generará encabezados después del cursor en la tabla de contenido.
:GenTocGFM
Generar tabla de contenido en estilo de enlace GFM.
Este comando es adecuado para archivos Markdown en repositorios de GitHub, como README.md, y archivos Markdown para GitBook.
:GenTocRedcarpet
Generar tabla de contenido en estilo de enlace Redcarpet.
Este comando es adecuado para Jekyll o en cualquier otro lugar que use Redcarpet como su analizador Markdown.
Puede ver aquí para conocer las diferencias entre los enlaces toc de estilo GFM y Redcarpet.
Actualice la tabla de contenido existente manualmente
Generalmente no necesita hacer esto, la tabla de contenido existente se actualizará automáticamente al guardar de forma predeterminada. Si quieres hacerlo manualmente, solo usa el
:UpdateToc
comando.Descargas y documentos
https://github.com/mzlogin/vim-markdown-toc
fuente
También podría usar
pandoc
la "navaja suiza" para convertir "un formato de marcado a otro" . Puede generar automáticamente una tabla de contenido en el documento de salida si proporciona el--toc
argumento.Sugerencia: si desea una tabla de contenido en la
html
salida, también debe proporcionar el-s
que genera un documento independiente.Ejemplo de línea de comando de shell:
fuente
Para el beneficio de aquellos de nosotros haciendo
README.md
archivos en Atom (cómo encontré este hilo):https://atom.io/packages/markdown-toc
fuente
Si desea utilizar una herramienta javascript / node.js, eche un vistazo a markdown-toc .
fuente
Puede generarlo usando este bash one-liner. Asume que se llama a su archivo de descuento
FILE.md
.fuente
Acabo de codificar una extensión para
python-markdown
, que usa su analizador sintáctico para recuperar encabezados, y genera un TOC como una lista desordenada con formato Markdown con enlaces locales. El archivo esmd_toc.py)... y debe colocarse en el
markdown/extensions/
directorio en la instalación de rebajas. Luego, todo lo que tiene que hacer es escribir<a>
etiquetas de anclaje con unid="..."
atributo como referencia, por lo que para un texto de entrada como este:... la extensión se puede llamar así:
... y luego puede pegar este toc en su documento de rebajas (o tener un acceso directo en su editor de texto, que llama a la secuencia de comandos en el documento abierto actualmente, y luego inserta el TOC resultante en el mismo documento).
Tenga en cuenta que las versiones anteriores de
python-markdown
no tienen un__main__.py
módulo y, como tal, la llamada a la línea de comandos como se indicó anteriormente no funcionará para esas versiones.fuente
Como se menciona en otras respuestas, hay varias formas de generar una tabla de contenido automáticamente. La mayoría son software de código abierto y se pueden adaptar a sus necesidades.
Sin embargo, lo que me faltaba es un formato visualmente atractivo para una tabla de contenido, utilizando las opciones limitadas que ofrece Markdown. Se nos ocurrió lo siguiente:
Código
Dentro de su documento, colocaría los marcadores de subparte de destino de esta manera:
Dependiendo de dónde y cómo use Markdown, lo siguiente también debería funcionar, y proporciona un código de Markdown más atractivo:
Representación de ejemplo
Ventajas
Puede agregar tantos niveles de capítulos y subcapítulos como necesite. En la Tabla de contenido, aparecerían como listas desordenadas anidadas en niveles más profundos.
No uso de listas ordenadas. Esto crearía una sangría, no vincularía el número y no se puede usar para crear una numeración de clasificación decimal como "1.1".
No se utilizan listas para el primer nivel. Aquí, es posible usar una lista desordenada, pero no es necesaria: la sangría y la viñeta simplemente agregan desorden visual y no funcionan aquí, por lo que no usamos una lista para el primer nivel de ToC.
Enfoque visual en las secciones de primer nivel en la tabla de contenido en negrita.
Marcadores de subparte cortos y significativos que se ven "hermosos" en la barra de URL del navegador, en
#heading--1-1
lugar de marcadores que contienen piezas transformadas del encabezado real.El código usa encabezados H2 (
## …
) para secciones, encabezados H3 (### …
) para subtítulos, etc. Esto hace que el código fuente sea más fácil de leer porque## …
proporciona una pista visual más fuerte cuando se desplaza en comparación con el caso en que las secciones comenzarían con encabezados H1 (# …
) Todavía es lógicamente consistente ya que utiliza el encabezado H1 para el título del documento en sí.Finalmente, agregamos una buena regla horizontal para separar la tabla de contenido del contenido real.
Para obtener más información sobre esta técnica y cómo la usamos dentro del discurso del software del foro , consulte aquí .
fuente
Escribí un script de Python que analiza un archivo de descuento y genera una tabla de contenido como una lista de descuento: md-to-toc
A diferencia de otros scripts que he encontrado, md-to-toc admite correctamente títulos duplicados. Tampoco requiere una conexión a Internet, por lo que funciona en cualquier archivo md, no solo en aquellos disponibles en un repositorio público.
fuente
En Visual Studio Code (VSCode) puede usar la extensión Markdown All in One .
Una vez instalado, siga los pasos a continuación:
fuente
Acabo de empezar a hacer lo mismo (tomar notas en Markdown). Uso Sublime Text 2 con el complemento MarkdownPreview . El analizador de rebajas incorporado es compatible
[TOC]
.fuente
Typora genera Tabla de contenido al agregar
[TOC]
a su documento.fuente
En Gitlab, Markdown admite esto:
[[_TOC_]]
fuente
Simplemente use su editor de texto con un complemento.
Su editor posiblemente tiene un paquete / complemento para manejar esto por usted. Por ejemplo, en Emacs , puede instalar el generador de TOC markdown-toc . Luego, mientras edita, simplemente llame repetidamente
M-x markdown-toc-generate-or-refresh-toc
. Vale la pena un enlace clave si quieres hacerlo a menudo. Es bueno para generar un TOC simple sin contaminar su documento con anclajes HTML.Otros editores tienen complementos similares, por lo que la lista popular es algo así como:
fuente
Basado en albertodebortoli, la respuesta creó la función con verificaciones adicionales y la sustitución de signos de puntuación.
fuente
MultiMarkdown 4.7 tiene una macro {{TOC}} que inserta una tabla de contenido.
fuente
Para mí, la solución propuesta por @Tum funciona de maravilla para una tabla de contenido con 2 niveles. Sin embargo, para el 3er nivel no funcionó. No mostró el enlace como para los primeros 2 niveles, sino que muestra el texto sin formato
3.5.1. [bla bla bla](#blablabla) <br>
.Mi solución es una adición a la solución de @Tum (que es muy simple) para las personas que necesitan una tabla de contenido con 3 niveles o más.
En el segundo nivel, una pestaña simple hará la sangría correctamente para usted. Pero no admite 2 pestañas. En su lugar, debe usar una pestaña y agregar tantas
como sea necesario para alinear el 3er nivel correctamente.Aquí hay un ejemplo usando 4 niveles (más altos los niveles, horrible se vuelve):
Esto da el siguiente resultado donde cada elemento de la tabla de contenido es un enlace a su sección correspondiente. Tenga
<br>
en cuenta también el para agregar una nueva línea en lugar de estar en la misma línea.Tabla de contenido
1.1. Subtítulo
1.1.1. Sub-Sub-Título
1.1.1.1. Sub-Sub-Sub-Title
Título
Título 1
Subtitular
Título 2
Subtítulo secundario
Título 3
Sub-Sub-Sub-TitleTítulo 4
fuente
Dependiendo de su flujo de trabajo, es posible que desee ver el strapdown
Esa es una bifurcación de la original ( http://strapdownjs.com ) que agrega la generación de la tabla de contenido.
Hay un archivo de configuración de apache en el repositorio (puede que aún no se haya actualizado correctamente) para ajustar el marcado simple sobre la marcha, si prefiere no escribir en archivos html.
fuente
No estoy seguro, cuál es la documentación oficial para el descuento. La referencia cruzada se puede escribir solo entre paréntesis
[Heading]
o con paréntesis vacíos[Heading][]
.Ambas obras usan pandoc . Así que creé un script de bash rápido, que reemplazará $ TOC en el archivo md con su TOC. (Necesitará envsubst, que podría no ser parte de su distribución)
fuente
Si usa Eclipse , puede usar el acceso directo Ctrl+ O(esquema), esto mostrará el equivalente de la tabla de contenido y permitirá buscar en los títulos de las secciones (autocompletar).
También puede abrir la vista Esquema (Ventana -> Mostrar vista -> Esquema) pero no tiene búsqueda de autocompletar.
fuente
Use toc.py, que es un pequeño script de Python que genera una tabla de contenido para su descuento.
Uso:
<toc>
donde desea colocar la tabla de contenido.$python toc.py README.md
(Use su nombre de archivo Markdown en lugar de README.md )¡Salud!
fuente
He usado https://github.com/ekalinin/github-markdown-toc que proporciona una utilidad de línea de comandos que genera automáticamente la tabla de contenido a partir de un documento de descuento.
Sin complementos, ni macros u otras dependencias. Después de instalar la utilidad, simplemente pegue el resultado de la utilidad en la ubicación del documento donde desea su tabla de contenido. Muy simple de usar.
fuente
Si su archivo Markdown se va a mostrar en un repositorio en bitbucket.org, debe agregarlo
[TOC]
en la ubicación donde desea su tabla de contenido. Luego se generará automáticamente. Más información aquí:https://confluence.atlassian.com/bitbucket/add-a-table-of-contents-to-a-wiki-221451163.html
fuente
Hay un script Ruby llamado mdtoc.rb que puede generar automáticamente una tabla de contenido de GFM Markdown, y es similar pero ligeramente diferente a otros scripts publicados aquí.
Dado un archivo de Markdown de entrada como:
Genera esta tabla de contenido:
Véase también mi blog de post sobre este tema.
fuente