En mi documentación de repositorios de Githubs quiero representar una estructura de árbol de directorios como esta:
¿Hay alguna manera de hacer eso con el markdown con sabor a Github, además de crearlo con arte ascii?
Básicamente, me gusta esta pregunta , pero me pregunto si hay una solución específica de github.
Respuestas:
No directamente, no. Tendrías que crearlo a mano y ponerlo tú mismo. Suponiendo que está usando un cuadro * nix localmente y está usando utf, entonces el árbol lo generará muy bien (creo que eso es lo que generó el ejemplo que usó anteriormente).
Suponiendo que te refieres a
readme.md
como el objetivo de la documentación, creo que la única forma en que podrías automatizarlo sería un gancho de confirmación previa de git que se ejecutaratree
e incrustara en tu archivo Léame. Querría hacer una diferencia para asegurarse de que solo actualizó el archivo Léame si la salida cambia.Otoh, si mantiene documentos separados a través de páginas de github, entonces lo que podría hacer es cambiar a usar jekyll (u otro generador) localmente y empujar las páginas estáticas usted mismo. Luego, podría implementar los cambios que desee, ya sea como un complemento / script de shell * / cambios manuales (si no varían mucho), o usar el mismo método que el anterior.
* Si lo integra en un enlace de confirmación, puede evitar agregar pasos adicionales para cambiar sus páginas.
fuente
tree
comando con Homebrew , es decirbrew install tree
. Luego, desde el directorio que quería representar, ejecutétree . >> tree.txt
y luego copié y edité el texto en mi archivo README.md. ¡Hice exactamente lo que necesitaba!Conseguí resolver el problema de esta manera:
tree
en bash.fuente
Escribí un pequeño guión que hace el truco:
Ejemplo:
Comando de árbol original:
Comando del árbol de rebajas:
Resultado renderizado:
(Los enlaces no son visibles en Stackoverflow ...)
Árbol del proyectofuente
Hice un módulo de nodo para automatizar esta tarea: mddir
Uso
nodo mddir "../relative/path/"
Para instalar: npm install mddir -g
Para generar rebajas para el directorio actual: mddir
Para generar para cualquier ruta absoluta: mddir / absoluta / ruta
Para generar una ruta relativa: mddir ~ / Documentos / lo que sea.
El archivo md se genera en su directorio de trabajo.
Actualmente ignora las carpetas node_modules y .git.
Solución de problemas
Si recibe el error 'node \ r: No such file or directory', el problema es que su sistema operativo usa diferentes finales de línea y mddir no puede analizarlos sin que usted establezca explícitamente el estilo de final de línea en Unix. Esto suele afectar a Windows, pero también a algunas versiones de Linux. La configuración de los finales de línea al estilo Unix debe realizarse dentro de la carpeta bin global mddir npm.
Corrección de finales de línea
Obtenga la ruta de la carpeta npm bin con:
npm config get prefix
Cd en esa carpeta
brew instalar dos2unix
dos2unix lib / node_modules / mddir / src / mddir.js
Esto convierte los finales de línea a Unix en lugar de Dos
Luego ejecute normalmente con: node mddir "../relative/path/".
Ejemplo de estructura de archivo de rebajas generada 'directoryList.md'
fuente
node_modules/mddir/src/
directorio? Por ejemplo, me gustaría ejecutarnode ~./src > dir-struct.txt
desde el directorio de mi proyecto y pegar el contenido de dir-struct.txt directamente en mi markdown.La mejor manera de hacer esto es rodear su árbol con las comillas triples para indicar un bloque de código. Para obtener más información, consulte los documentos de Markdown: http://daringfireball.net/projects/markdown/syntax#code
fuente
Puede usar etiquetas <pre> como lo hice en uno de mis proyectos .
fuente
También puede consultar este árbol extendido paquete . Se puede utilizar como una aplicación de línea de comandos mediante el nodo> = 6.x.
Es muy similar
tree
pero también tiene la opción de configurar el máximo en lo profundo del árbol, esa es una de las cosas horribles que tiene. También puedes filtrar usando.gitignore
file.fuente
Ninguna de las soluciones anteriores me funcionó completamente en mi mac.
La mejor solución que encontré es usar la utilidad creada aquí.
https://github.com/michalbe/md-file-tree
Una vez que haya instalado la utilidad
npm install md-file-tree -g
, simplemente puede ejecutar para obtener el árbol de todos los archivosfuente
Aquí hay un útil
git alias
que me funciona.Aquí está la salida de
git tree
El
tree
comando comparableClaramente, el árbol tiene una mejor salida, pero me gustaría que usara mi archivo .gitignore. Para que mi contenido compilado no se muestre
fuente
Un
tree
comando simple hará el trabajo. Por ejemplo:tree -o readme.md
imprimirá la estructura de árbol de su directorio de trabajo actual y la escribiráreadme.md
. Luego, abra el archivo readme.md en uno de los editores de texto como Sublime y envuelva su contenido dentro de un par de comillas triples (`` '').Para su información: es posible que deba elaborar un árbol de instalación en OSX si aún no está instalado. En Linux y Windows debería funcionar bien. También en Windows, es posible que deba reemplazar el guión con una barra inclinada.
Espero que esto ayude.
fuente
Si está trabajando en Windows, escriba
tree /f
dentro del directorio que desea lograr en el símbolo del sistema. Esto debería hacer tu trabajo. puede copiar y pegar la salida en la rebaja rodeada de mis tres tics posteriores, es decir, '' '{estructura de árbol aquí}' 'fuente
Solo me gusta generarlo con UTF-8 y vincularlo a cada archivo y carpeta para navegar con mucha facilidad. Por favor, mire el ejemplo aquí .
fuente
Para aquellos que quieren una solución rápida:
Hay una forma de obtener una salida en la consola similar a la salida del árbol, escribiendo el siguiente comando en su terminal:
Esta alternativa se menciona en esta documentación: https://wiki.ubuntuusers.de/tree/
Luego, la salida se puede copiar y encapsular dentro de un archivo .md con tics de retroceso de bloque de código, como se menciona en la respuesta de Jonathas BC.
Pero tenga en cuenta que también genera todas las carpetas de módulos de nodo en un proyecto de nodo. Y en el árbol puedes hacer algo como
para excluir la carpeta de módulos de nodo.
fuente
Además, hay un comando de DOS y un "árbol". Puede mostrar rutas de directorio y archivos en cada subdirectorio con el comando:
https://web.csulb.edu/~murdock/tree.html
fuente