estructura directorios curso carpetas basico archivos unicode markdown jekyll

unicode - directorios - Representación de directorio y estructura de archivos en la sintaxis de reducción



estructura de directorios y carpetas (10)

Quiero describir las estructuras de directorios y archivos en algunas de mis publicaciones de blog de Jekyll, ¿proporciona Markdown una forma ordenada de generar tal cosa?

Por ejemplo, puede ver en este enlace en el sitio web de Jekyll que el directorio y la estructura de archivos se publican en la página muy claramente:

. ├── _config.yml ├── _drafts | ├── begin-with-the-crazy-ideas.textile | └── on-simplicity-in-technology.markdown ├── _includes | ├── footer.html | └── header.html ├── _layouts | ├── default.html | └── post.html ├── _posts | ├── 2007-10-29-why-every-programmer-should-play-nethack.textile | └── 2009-04-26-barcamp-boston-4-roundup.textile ├── _data | └── members.yml ├── _site └── index.html

Creo que los caracteres del bloque de líneas de arriba son Unicode (como se describe en esta respuesta aquí ), pero no estoy seguro de cómo Markdown o los diferentes navegadores los manejarán. Tenía la esperanza de que Markdown incluyera alguna forma de hacer esto que produzca los caracteres Unicode arriba tal vez.


Bajo OSX, usando reveal.js , tengo un problema de renderizado si solo reveal.js tree y luego copio / pego el resultado: aparecen símbolos extraños.

He encontrado 2 soluciones posibles.

1) Use charset ascii y simplemente copie / pegue la salida en el archivo de reducción

tree -L 1 --charset=ascii

2) Use directamente HTML y Unicode en el archivo de reducción

<pre> . &#8866; README.md &#8866; docs &#8866; e2e &#8866; karma.conf.js &#8866; node_modules &#8866; package.json &#8866; protractor.conf.js &#8866; src &#8866; tsconfig.json &#8985; tslint.json </pre>

Espero eso ayude.


Como ya se lo recomendó, puede usar tree . Pero para usarlo junto con el texto reestructurado se requerían algunos parámetros adicionales.

La salida de tree estándar no se imprimirá si está usando pandoc para producir pdf.

tree --dirsfirst --charset=ascii /path/to/directory producirá un buen árbol ASCII que se puede integrar en su documento de esta manera:

.. code:: . |-- ContentStore | |-- de-DE | | |-- art.mshc | | |-- artnoloc.mshc | | |-- clientserver.mshc | | |-- noarm.mshc | | |-- resources.mshc | | `-- windowsclient.mshc | `-- en-US | |-- art.mshc | |-- artnoloc.mshc | |-- clientserver.mshc | |-- noarm.mshc | |-- resources.mshc | `-- windowsclient.mshc `-- IndexStore |-- de-DE | |-- art.mshi | |-- artnoloc.mshi | |-- clientserver.mshi | |-- noarm.mshi | |-- resources.mshi | `-- windowsclient.mshi `-- en-US |-- art.mshi |-- artnoloc.mshi |-- clientserver.mshi |-- noarm.mshi |-- resources.mshi `-- windowsclient.mshi


Escribí esto para mi lista de archivos de Dropbox.

sed se usa para eliminar las rutas completas de la ruta del archivo / carpeta enlazada después de ->

Desafortunadamente, las pestañas están perdidas. Usando zsh puedo preservar pestañas.

! / usr / bin / env bash

#!/usr/bin/env zsh F1=''index-2.md'' #With hyperlinks F2=''index.md'' if [ -e $F1 ];then rm $F1 fi if [ -e $F2 ];then rm $F2 fi DATA=`tree --dirsfirst -t -Rl --noreport | / sed ''s/->.*$//g''` # Remove symlink adress and -> echo -e ''```/n'' ${DATA} ''/n```'' > $F1 # Markdown needs triple back ticks for <pre> # With the power of piping, creating HTML tree than pipe it # to html2markdown program, creates cool markdown file with hyperlinks. DATA=`tree --dirsfirst -t -Rl --noreport -H http://guneysu.pancakeapps.com` echo $DATA | / sed ''s//r/r//n/g'' | / html2markdown | / sed ''/^/s*$/d'' | / sed ''s//# Directory Tree//g'' | / > $F2

Las salidas como esta:

``` . ├── 2013 │   └── index.markdown ├── 2014 │   └── index.markdown ├── 2015 │   └── index.markdown ├── _posts │   └── 2014-12-27-2014-yili-degerlendirmesi.markdown ├── _stash └── update.sh ```

[BASE_URL/](BASE_URL/) ├── [2013](BASE_URL/2013/) │   └── [index.markdown](BASE_URL/2013/index.markdown) ├── [2014](BASE_URL/2014/) │   └── [index.markdown](BASE_URL/2014/index.markdown) ├── [2015](BASE_URL/2015/) │   └── [index.markdown](BASE_URL/2015/index.markdown) ├── [_posts](BASE_URL/_posts/) │   └── [2014-12-27-2014-yili-degerlendirmesi.markdown](_posts/2014-12-27-2014-yili-degerlendirmesi.markdown) ├── [_stash](BASE_URL/_stash/) ├── [index-2.md](BASE_URL/index-2.md) └── [update.sh](BASE_URL/update.sh) * * * tree v1.6.0 © 1996 - 2011 by Steve Baker and Thomas Moore HTML output hacked and copyleft © 1998 by Francesc Rocher Charsets / OS/2 support © 2001 by Kyosuke Tokoro


Hice un módulo de nodo para automatizar esta tarea: mddir

Uso

nodo mddir "../relative/path/"

Para instalar: npm install mddir -g

Para generar un descuento para el directorio actual: mddir

Generar para cualquier ruta absoluta: mddir / absolute / path

Generar para una ruta relativa: mddir ~ / Documents / whatever.

El archivo md se genera en su directorio de trabajo.

Actualmente ignora node_modules y .git folders.

Solución de problemas

Si recibe el error ''node / r: No such such file or directory'', el problema es que su sistema operativo utiliza diferentes terminaciones de línea y mddir no puede analizarlos sin que usted establezca explícitamente el estilo de terminación de línea en Unix. Esto generalmente afecta a Windows, pero también a algunas versiones de Linux. El ajuste de los finales de línea al estilo Unix tiene que realizarse dentro de la carpeta bin global mddir npm.

Las terminaciones de línea se arreglan

Obtén la ruta de la carpeta npm bin con:

npm config get prefix

Cd en esa carpeta

brew install dos2unix

dos2unix lib / node_modules / mddir / src / mddir.js

Esto convierte las terminaciones de línea en Unix en lugar de Dos

Luego ejecute normalmente con: node mddir "../relative/path/".

Ejemplo de estructura de archivo de rebajas generada ''directoryList.md''

|-- .bowerrc |-- .jshintrc |-- .jshintrc2 |-- Gruntfile.js |-- README.md |-- bower.json |-- karma.conf.js |-- package.json |-- app |-- app.js |-- db.js |-- directoryList.md |-- index.html |-- mddir.js |-- routing.js |-- server.js |-- _api |-- api.groups.js |-- api.posts.js |-- api.users.js |-- api.widgets.js |-- _components |-- directives |-- directives.module.js |-- vendor |-- directive.draganddrop.js |-- helpers |-- helpers.module.js |-- proprietary |-- factory.actionDispatcher.js |-- services |-- services.cardTemplates.js |-- services.cards.js |-- services.groups.js |-- services.posts.js |-- services.users.js |-- services.widgets.js |-- _mocks |-- mocks.groups.js |-- mocks.posts.js |-- mocks.users.js |-- mocks.widgets.js


Puedes usar tree para generar algo muy similar a tu ejemplo. Una vez que tenga el resultado, puede envolverlo en una etiqueta <pre> para preservar el formato de texto sin formato.


Seguí un ejemplo en otro repositorio y envolví la estructura del directorio dentro de un par de backticks triples ( ``` ):

``` project │ README.md │ file001.txt │ └───folder1 │ │ file011.txt │ │ file012.txt │ │ │ └───subfolder1 │ │ file111.txt │ │ file112.txt │ │ ... │ └───folder2 │ file021.txt │ file022.txt ```


Si desea generarlo dinámicamente, le recomiendo usar Frontend-md . Es simple de usar.


Si está utilizando el editor Atom, puede lograrlo con el paquete ascii-tree .

Puedes escribir el siguiente árbol:

root +-- dir1 +--file1 +-- dir2 +-- file2

y conviértalo en lo siguiente seleccionándolo y presionando ctrl-alt-t :

root ├── dir1 │ └── file1 └── dir2 └── file2


Si le preocupan los caracteres Unicode, puede usar ASCII para construir las estructuras, de modo que su estructura de ejemplo se convierta en

. +-- _config.yml +-- _drafts | +-- begin-with-the-crazy-ideas.textile | +-- on-simplicity-in-technology.markdown +-- _includes | +-- footer.html | +-- header.html +-- _layouts | +-- default.html | +-- post.html +-- _posts | +-- 2007-10-29-why-every-programmer-should-play-nethack.textile | +-- 2009-04-26-barcamp-boston-4-roundup.textile +-- _data | +-- members.yml +-- _site +-- index.html

Lo cual es similar al tree formato tree usa si selecciona salida ANSI .


Sugeriría usar wasabi entonces puedes usar el markdown-ish, sientete así

root/ # entry comments can be inline after a ''#'' # or on their own line, also after a ''#'' readme.md # a child of, ''root/'', it''s indented # under its parent. usage.md # indented syntax is nice for small projects # and short comments. src/ # directories MUST be identified with a ''/'' fileOne.txt # files don''t need any notation fileTwo* # ''*'' can identify executables fileThree@ # ''@'' can identify symlinks

y arrojar esa sintaxis exacta en la biblioteca js para this