¿Cómo sangrar algunas líneas en el marcado Markdown?

360

Quiero escribir algunas líneas de texto. Deben formatearse normalmente, excepto que cada línea debe comenzar en la sexta columna. Es decir, no quiero que la regla de formato de bloque de código haga que este fragmento de texto se vea como código, ya que usaré otro formato como negrita, etc. ¿Cómo hacer eso en Markdown?

Meng Lu
fuente
12
Es una pena que Markdown no sea compatible con esto. Es una característica fundamental que falta.
Josh Noe
55
¿qué pasa : ?
Frode Akselsen
44
El uso de: para listas de definición no es universal en las implementaciones de Markdown, pero si su variante de Markdown lo admite, esto funciona perfectamente. Deberías hacer de esto una respuesta real.
Alex Dupuy

Respuestas:

383

No hay forma de hacerlo en las características nativas de Markdown. Sin embargo, Markdown permite HTML en línea, por lo que escribir

      This will appear with six space characters in front of it

Producirá:

      Esto aparecerá con seis caracteres de espacio delante.

Si tiene control sobre CSS en la página, también puede usar una etiqueta y darle estilo, ya sea en línea o con reglas CSS.

De cualquier manera, markdown no está destinado a ser una herramienta de diseño, sino a simplificar el proceso de escritura para la web, por lo que si se encuentra estirando su conjunto de características para hacer lo que necesita, puede ver si usted o no Estás usando la herramienta correcta aquí. Echa un vistazo a los documentos de Gruber:

http://daringfireball.net/projects/markdown/syntax#html

alegscogs
fuente
12
Es posible insertar  (Unicode: \ 2002) en un archivo Markdown y no se mostrarán como  en la fuente, solo cuando renderice el archivo. Simplemente entrene la tecla de acceso directo en su sistema operativo para insertar este carácter.
vaughan
1
Las citas en bloque son una buena manera de hacer esto (ver la respuesta de @ ChrisV)
drevicko
¿Qué pasa si quiero usar la sangría para alinear el texto? Por ejemplo, quiero que la segunda palabra en dos líneas comience en el mismo lugar (como a los codificadores les gusta con el operador de asignación =).
Royi
3
 es genial para una sangría simple y simple. Sin cambios de estilo / fuente, solo sangría 👍
Verde
55
Las líneas ajustadas en texto largo no están sangradas, lo que quizás no desee en su diseño. Cambie el tamaño de su vista renderizada para probar. Además,  está más cerca de la pestaña.
dimmech
76

Una forma de hacerlo es usar viñetas, que le permiten especificar múltiples niveles de sangría. Las viñetas se insertan usando múltiplos de dos espacios, estrella, otro espacio Ej .:

this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>

Este método tiene la gran ventaja de que también tiene sentido cuando ve el texto sin formato.

Si le importa no ver las viñetas en sí mismas , debe (dependiendo de dónde esté usando Markdown) para poder agregar li {list-style-type: none;}al CSS para toda el área de reducción.

SColvin
fuente
55
Buen truco, pero solo quiero deshabilitar las viñetas visibles para una parte de un Markdown (y su HTML resultante) pero no todo. ¿Hay una manera limpia de hacer eso?
Meng Lu
@MengLu Tengo el mismo requisito. ¿Te diste cuenta de esto?
Lifebalance
1
Mucho mejor en cuanto a estructura que la respuesta aceptada
irowe
Recuerde que Markdown puede aceptar HTML, es parte de la especificación. Entonces, para una lista en particular, no hay nada que le impida usar HTML para resolver este problema. Solo recuerde que puede tener HTML en Markdown, pero no Markdown en sus fragmentos HTML. <ul> <li style = "list-style-type: none;"> Su contenido sangrado que debe ser todo HTML </li> </ul>
Hamish Willee
2
Esto parece mucho mejor que la respuesta aceptada para mí. Le brinda un control más preciso sobre su texto sangrado, sin mencionar que es más legible y más fácil de mantener
Arepo
36

Este es un hilo viejo , pero habría pensado que las comillas de bloqueo de Markdown ('>') serían las mejores para esto:

ChrisV
fuente
21
Esta es una buena solución si no necesita sangrar una cantidad específica, y no le importa obtener un color de fondo diferente u otros estilos que puedan ir junto con las comillas en bloque. En última instancia, las citas en bloque tienen un propósito semántico y son mejores si de hecho desea establecer algo como una cita.
alegscogs
20
Incorrecto. Las comillas (>) son para crear comillas, no una sangría simple. Es totalmente diferente en estilos.
Verde
25

Vea si esto ">" ayuda:

Line 1
> line 2 
>> line 3
idnavid
fuente
Ese es el billete dulce en cuadernos jupyter utilizando látex de marcas
vwvan
2
Vea el comentario anterior: "Incorrecto. Las comillas en bloque (>) son para crear comillas, no una sangría simple. Es totalmente diferente en estilos"
Usuario que no es un usuario
22

do tab, luego el signo +, luego el espacio, luego tu contenido

Entonces

* level one + level two tabbed

Pavan Katepalli
fuente
github / bitbucket rebaja apoya una regla muesca similares, sin el +:[tab][space]your-text-goes-here
roblogic
13

¿Qué hay de colocar un espacio determinado al comienzo del párrafo usando el entorno matemático como:

$\qquad$ My line of text ...

Esto funciona para mí y espero que funcione para ti también.

Marcos Lourenço
fuente
10

Si realmente debe usar pestañas, y no le importa el color de fondo gris y el relleno, las <pre>etiquetas podrían funcionar (si es compatible):

<pre>
This        That        And             This
That        This        And             That    
</pre>
Esto eso y esto
Que esto y aquello    
Herrero de palabras
fuente
7

Utilice espacios duros (que no se rompan)

¿Por qué usar otro lenguaje de marcado? (Estoy de acuerdo con @cz arriba).
Un objetivo de Markdown es hacer que los documentos sean legibles incluso en un editor de texto sin formato.

Mismo resultado dos enfoques

El código

Sample code
&nbsp;&nbsp;&nbsp;&nbsp;5th position in an really ugly code  
    5th position in a clear an readable code  
    Again using non-breaking spaces :)

El resultado

Código de muestra
    5ª posición en un código realmente feo
    5ª posición en un código claro y legible
    Nuevamente usando espacios sin ruptura :)

La representación visual de un espacio que no se rompe (o espacio duro) suele ser un espacio normal "", sin embargo, su representación Unicode es U + 00A0.
La representación Unicode del espacio ordinario es U + 0020 (32 en la tabla ASCII).
Por lo tanto, los procesadores de texto pueden comportarse de manera diferente mientras la representación visual sigue siendo la misma.

Insertar un espacio duro

| OS        | Input method                      |
|===========| ==================================|
| macOS     | OPTION+SPACE (ALT+SPACE)          |
| Linux     | Compose Space Space or AltGr+Space|
| Windows   | Alt+0+1+6+0                       |

Some text editor use Ctrl+Shift+Space.

Problema

Algunos editores de texto pueden convertir espacios duros en espacios comunes en las operaciones de copiar y pegar, así que tenga cuidado.

ePi272314
fuente
OPCIÓN + ESPACIO búsqueda de foco activada
wander95
No puede ser, solo si ha cambiado los accesos directos predeterminados. El campo de búsqueda de Spotlight se activa con COMMAND-SPACE (la tecla COMMAND es análoga a la tecla Windows). El espacio sin interrupciones se introduce con OPTION-SPACE (la opción es análoga a ALT)
ePi272314
En mi Mac, tengo un atajo en Opción + Espacio, pero Shift + Opción + Espacio funciona bien.
Dag Høidahl
Las líneas con oraciones largas se ven feas con esto.
Mike Kormendy
4

Compruebe si puede usar HTML con su descuento. Tal vez esto funcione para ti:

  • Lista de entrada una <br/>
    línea sangrada <br/>
    <br/>
    Y algo más ..
  • Segunda entrada
    • Subentry <br/>
      Hola!
webwurst
fuente
66
Para hacer eso solo necesitas terminar la línea con dos espacios.
Pietro
4

Para párrafos citados / sangrados, este truco podría funcionar (dependiendo del motor de renderizado)

| | | |
|-|-|-|
|  | _"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."_ | |
|

que se traduce como:

ingrese la descripción de la imagen aquí

geoteoria
fuente
2

Use un espacio sin interrupciones directamente  (¡no es lo mismo que !).

(Podría insertar HTML o algún código de descuento esotérico, pero se me ocurren mejores razones para romper la compatibilidad con el descuento estándar).

cz
fuente
2

Para responder a las preguntas de MengLu y @ lifebalance en respuesta a la respuesta de SColvin (que prefiero a la respuesta aceptada para el control que proporciona), parece que podría enfocarse en un elemento principal de las listas al configurar la pantalla como ninguno, agregando un elemento circundante si es necesario. Entonces, si suponemos que estamos haciendo esto para una tabla de contenido, podemos extender la respuesta de SColvin:

HTML

<nav class="table-of-contents">
  this is a normal line of text
  * this is the first level of bullet points, made up of <space><space>*<space>
    * this is more indented, composed of <space><space><space><space>*<space>
</nav>

CSS

.table-of-contents ul {
  list-style-type: none;
}
Arepo
fuente
2

Como señaló @AlexDupuy en los comentarios, se pueden usar listas de definiciones para esto.

Esto no es compatible con todos los procesadores de rebajas, pero está ampliamente disponible: Guía de rebajas - Listas de definiciones

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

Representa como (html):

<dl>
    <dt>Term 1</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
    <dt>Term 2</dt>
    <dd>definition 1</dd>
    <dd>definition 2</dd>
</dl>

Normalmente, DTse representa en un formato de encabezado, y cada uno DDse representa como texto sangrado debajo de este.

Si no desea un encabezado / término, simplemente use un espacio que no se rompa en lugar del término de definición:

&nbsp;
: This is the text that I want indented.  All text on the same line as the preceding colon will be included in this definition.
: If you include a second definition you'll get a new line; potentially separated by a space. <br />Some inline HTML may be supported within this too, allowing you to create new lines without spaces.
: Support for other markdown syntax varies; e.g. we can add a bullet list, but each one's wrapped in a separate definition term, so the spacing may be out.
: - item 1
: - item 2
: - item 3

Puede ver esto en acción copiando y pegando los ejemplos anteriores en este sitio: Editor de rebajas de edición de pila

Captura de pantalla de la representación DL en Stack Edit

JohnLBevan
fuente
1
El & nbsp; Funcionó perfectamente. Gracias
Kevin Mason
0

Algunas implementaciones de Markdown parecen usar el ~carácter para la sangría.

npclaudiu
fuente
0

Otra alternativa es usar un editor de rebajas como StackEdit . Convierte html (o texto) en markdown en un editor WYSIWYG. Puede crear sangrías, títulos, listas en el editor y le mostrará el texto correspondiente en formato de descuento. Luego puede guardar, publicar, compartir o descargar el archivo. Puede acceder a él en su sitio web , ¡no se requieren descargas!

lizasperling
fuente
0

De acuerdo, con un poco de HTML en su código R, hice el siguiente código para generar texto puro en R Markdown. El <h3 style="text-indent: 15em;">sangrado del texto 15 espacios. Para la pregunta original, cambie el 15 a 6.

## Option: Du Pont Ratio Concept - (ROE Decomposition)
### (Closed Quotes/Total Premium) = (Closed Quotes/Quotes Issued) X <br>
<h3 style="text-indent: 15em;">
 (Quotes Issued/Renewal Premium) X <br></h3>
<h3 style="text-indent: 15em;">
 (Renewal Premium/Total Premium)</h3>

Entonces, el código resultante da el formato de salida deseado. Estoy usando pestañas para el documento Markdown y estaba buscando alinear el texto () que funcionó.

r salida

Bryan Butler
fuente
0

Para completar, las listas con viñetas más profundas:

Nested deeper levels: ---- leave here an empty row * first level A item - no space in front the bullet character * second level Aa item - 1 space is enough * third level Aaa item - 5 spaces min * second level Ab item - 4 spaces possible too * first level B item

Niveles más profundos anidados:

  • elemento de primer nivel A: no hay espacio delante del personaje de bala
    • artículo Aa de segundo nivel: 1 espacio es suficiente
      • Tercer nivel de objeto Aaa - 5 espacios min.
    • artículo Ab de segundo nivel - 4 espacios posibles también
  • artículo de primer nivel B

    Nested deeper levels:
     ...Skip a line and indent eight spaces. (as said in the editor-help, just on this page)
    * first level A item - no space in front the bullet character
     * second level Aa item - 1 space is enough
         * third level Aaa item - 5 spaces min
        * second level Ab item - 4 spaces possible too
    * first level B item
    
            And there
            could be even more
            such octets of spaces.
    
Franta
fuente
0

Si está trabajando con viñetas, intente esto:

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  </li>
  <li>Milk</li>
</ul>

Este es el método que utilizo al diseñar la rebaja.


fuente
0

En gitlab.com, un espacio simple (U + 2002) seguido de un espacio simple (U + 2003) funciona decentemente.

Presumiblemente, otras repeticiones o combinaciones de caracteres espaciales no explicados exactamente también serían suficientes.

Jan Kyu Peblik
fuente
0

Uno de los problemas al comenzar su línea con espacios que no se rompen es que si su línea es lo suficientemente larga como para ajustarse, entonces, cuando se derrama sobre una segunda línea, el primer carácter de la línea de desbordamiento con el inicio a la izquierda en lugar de comenzar debajo del primer carácter de la línea de arriba.

Si su sistema le permite mezclar HTML con su descuento, una forma rápida y alegre de obtener una sangría es la siguiente:

<ul>
My indented text goes here, and it can be long and wrap if you like.
And you can have multiple lines if you want.
</ul>

Semánticamente dentro de su HTML no tiene sentido (una sección de UL sin ningún elemento LI), pero todos los navegadores que he usado simplemente sangran lo que hay entre esas etiquetas.

Jinlye
fuente