Come rientrare alcune righe nel markup Markdown?


360

Voglio scrivere alcune righe di testo. Dovrebbero essere formattati normalmente, tranne che ogni riga dovrebbe iniziare dalla sesta colonna. Vale a dire che non voglio che la regola di formattazione del blocco di codice faccia sembrare questo pezzo di testo come codice poiché userò altre formattazioni come grassetto, ecc. Come fare in Markdown?


12
È un peccato che Markdown non lo supporti. È una caratteristica fondamentale che manca.
Josh Noe,

5
che dire : ?
Frode Akselsen,

4
L'uso di: per gli elenchi di definizioni non è universale nelle implementazioni di Markdown, ma se la tua variante di Markdown lo supporta, funziona perfettamente. Dovresti rendere questa una vera risposta.
Alex Dupuy,

Risposte:


383

Non c'è modo di farlo nelle caratteristiche native di Markdown. Tuttavia, il markdown consente l'HTML incorporato, quindi la scrittura

      This will appear with six space characters in front of it

produrrà:

      Questo apparirà con sei caratteri spaziali di fronte

Se hai il controllo sui CSS nella pagina, puoi anche utilizzare un tag e modellarlo, sia in linea che con le regole CSS.

In ogni caso, il markdown non è inteso come uno strumento per il layout, ma serve a semplificare il processo di scrittura per il Web, quindi se ti accorgi che stai estendendo il set di funzionalità per fare ciò di cui hai bisogno, potresti vedere se tu o no ' stai usando lo strumento giusto qui. Dai un'occhiata ai documenti di Gruber:

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


12
È possibile inserire  (Unicode: \ 2002) in un file Markdown e non verranno visualizzati come  nell'origine - solo quando si esegue il rendering del file. Basta allenare il tasto di scelta rapida sul sistema operativo per inserire questo personaggio.
vaughan,

1
Le virgolette sono un buon modo per farlo (vedi la risposta di @ ChrisV)
drevicko,

E se volessi usare il rientro per allineare il testo. Ad esempio, voglio che la seconda parola in due righe inizi nello stesso posto (come piace ai programmatori con l'operatore di assegnazione =).
Royi,

3
 è semplicemente ottimo per un rientro semplice e chiaro. Nessuna modifica di stile / carattere, solo rientro
Green

5
Le linee tratteggiate nel testo lungo non sono rientrate, cosa che potresti non voler nel tuo layout. Ridimensiona la vista renderizzata per testarla. Inoltre,  è più vicino alla scheda.
dimmech,

76

Un modo per farlo è utilizzare i punti elenco, che consentono di specificare più livelli di rientro. I punti elenco vengono inseriti usando multipli di due spazi, stella, un altro spazio Ad es .:

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>

Questo metodo ha il grande vantaggio che ha senso anche quando si visualizza il testo non elaborato.

Se ti interessa non vedere i punti elenco stessi , dovresti (a seconda di dove stai usando il markdown) per essere in grado di aggiungere li {list-style-type: none;}al CSS per l'intera area del mark down.


5
Bel trucco, ma voglio disabilitare solo i punti elenco visibili per una parte di un Markdown (e il suo HTML risultante) ma non intero. C'è un modo pulito per farlo?
Meng Lu

@MengLu Ho lo stesso requisito. L'hai capito?
lifebalance

1
Molto meglio dal punto di vista strutturale rispetto alla risposta accettata
irowe,

Ricorda che il markdown può accettare HTML - fa parte delle specifiche. Quindi per un determinato elenco non c'è nulla che ti impedisca di utilizzare HTML per risolvere questo problema. Ricorda solo che puoi avere HTML nel markdown, ma non Markdown nei tuoi frammenti HTML. <ul> <li style = "list-style-type: none;"> Il tuo contenuto rientrato che deve essere tutto HTML </li> </ul>
Hamish Willee

2
Mi sembra molto meglio della risposta accettata. Ti dà un controllo più preciso sul tuo testo rientrato, per non parlare dell'essere più leggibile e più facile da mantenere
Arepo,

36

Questo è un vecchio thread , ma avrei pensato che i blockquotes di Markdown ('>') sarebbero stati i migliori per questo:


21
Questa è una buona soluzione se non hai bisogno di rientrare in una determinata quantità e non ti interessa ottenere un colore di sfondo diverso o altri stili che potrebbero andare d'accordo con i blocchi di virgolette. In definitiva, i blockquotes hanno uno scopo semantico e sono i migliori se in realtà vuoi impostare qualcosa come una citazione.
alegscogs,

20
Sbagliato. Blockquotes (>) servono per creare virgolette, non un semplice rientro. È totalmente diverso negli stili.
Green

25

Vedi se questo ">" aiuta:

Line 1
> line 2 
>> line 3

questo è il dolce biglietto dei quaderni jupyter che usano il markup in lattice
vwvan

2
Vedi il commento sopra: "Wrong. Blockquotes (>) servono per creare virgolette, non un semplice rientro. È totalmente diverso negli stili"
Utente che non è un utente

22

fare la scheda, quindi il segno +, quindi lo spazio, quindi il contenuto

Così

* level one + level two tabbed


github / bitbucket markdown supporta una simile regola di rientro, senza +:[tab][space]your-text-goes-here
roblogic

13

Che ne dici di posizionare uno spazio determinato all'inizio del paragrafo usando l'ambiente matematico come:

$\qquad$ My line of text ...

Questo funziona per me e spero che funzioni anche per te.


10

Se devi davvero utilizzare le schede e non ti dispiace per il colore di sfondo grigio e il riempimento, i <pre>tag potrebbero funzionare (se supportati):

<pre>
This        That        And             This
That        This        And             That    
</pre>
Questo Questo E Questo
Che questo e quello    

7

Si prega di utilizzare spazi duri (non interrompibili)

Perché usare un altro linguaggio di markup? (Sono d'accordo con @cz sopra).
Uno degli obiettivi di Markdown è rendere i documenti leggibili anche in un semplice editor di testo.

Stesso risultato due approcci

Il codice

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 :)

Il risultato

Codice di esempio
    5a posizione in un codice davvero brutto
    5a posizione in un codice chiaro e leggibile
    Ancora una volta usando spazi non-break :)

La rappresentazione visiva di uno spazio non spezzante (o spazio duro) è di solito uno spazio "", tuttavia, la sua rappresentazione Unicode è U + 00A0.
La rappresentazione Unicode dello spazio ordinario è U + 0020 (32 nella tabella ASCII).
Pertanto, i processori di testo possono comportarsi diversamente mentre la rappresentazione visiva rimane la stessa.

Inserisci uno spazio 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

Alcuni editor di testo possono convertire spazi duri in spazi comuni nelle operazioni di copia e incolla, quindi fai attenzione.


Ricerca spotlight attivata OPZIONE + SPAZIO
wander95

Non può essere, solo se sono state modificate le scorciatoie predefinite. Il campo di ricerca Spotlight si attiva con COMMAND-SPACE (il tasto COMMAND è analogo al tasto Windows). Lo spazio non-break viene introdotto con OPTION-SPACE (Option è l'analogo di ALT)
ePi272314

Sul mio Mac, ho una scorciatoia su Opzione + Spazio, ma invece Maiusc + Opzione + Spazio funziona bene.
Dag Høidahl,

Gli avvolgimenti di riga con frasi lunghe sembrano brutti con questo.
Mike Kormendy,

4

Controlla se puoi usare l'HTML con il tuo markdown. Forse questo funziona per te:

  • Elenca una <br/>
    riga indentata <br/>
    <br/>
    e un'altra ancora ..
  • Seconda voce
    • Sottogruppo <br/>
      Ciao a tutti!

6
Per farlo devi solo terminare la linea con due spazi.
Pietro,

4

Per i paragrafi citati / rientrati questo hack potrebbe funzionare (a seconda del motore di rendering):

| | | |
|-|-|-|
|  | _"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."_ | |
|

che viene visualizzato come:

inserisci qui la descrizione dell'immagine


2

Utilizzare direttamente uno spazio senza interruzioni  (non uguale a !).

(Potresti inserire HTML o qualche codice di markdown esoterico, ma posso pensare a ragioni migliori per interrompere la compatibilità con il markdown standard.)


2

Per rispondere alle domande di MengLu e @ lifebalance in risposta alla risposta di SColvin (che preferisco di gran lunga alla risposta accettata per il controllo che fornisce), sembra che si possa semplicemente indirizzare un elemento genitore delle liste quando si imposta il display su nessuno, aggiungendo un elemento circostante, se necessario. Quindi se supponiamo di farlo per un sommario, possiamo estendere la risposta di 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;
}

2

Come sottolineato da @AlexDupuy nei commenti, gli elenchi di definizioni possono essere utilizzati per questo.

Questo non è supportato da tutti i processori di markdown, ma è ampiamente disponibile: Markdown Guide - Elenchi di definizioni

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

Rendering come (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>

In genere, DTviene visualizzato in un formato simile a un'intestazione e ciascuno DDviene visualizzato come testo rientrato al di sotto di questo.

Se non si desidera un'intestazione / termine, utilizzare semplicemente uno spazio non interruzione al posto del termine di definizione:

&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

Puoi vederlo in azione copiando e incollando gli esempi precedenti su questo sito: Stack Edit Markdown Editor

Schermata del rendering DL in Stack Edit


1
Il & nbsp; ha funzionato perfettamente. Grazie
Kevin Mason,

0

Alcune implementazioni di Markdown sembrano usare il ~carattere per il rientro.


0

Un'altra alternativa è utilizzare un editor di markdown come StackEdit . Converte html (o testo) in markdown in un editor WYSIWYG. Puoi creare rientri, titoli, elenchi nell'editor e ti mostrerà il testo corrispondente in formato markdown. È quindi possibile salvare, pubblicare, condividere o scaricare il file. Puoi accedervi dal loro sito Web - non sono richiesti download!


0

Ok, con un po 'di HTML nel tuo codice R, ho fatto il seguente codice per generare testo puro in R Markdown. Il <h3 style="text-indent: 15em;">rientro del testo 15 spazi. Per la domanda originale, cambia da 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>

Quindi il codice risultante fornisce il formato di output desiderato. Sto usando le schede per il documento Markdown e stavo cercando di allineare il testo () che ha funzionato.

uscita r


0

Per completezza, gli elenchi puntati più profondi:

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

Livelli più profondi nidificati:

  • primo livello Un oggetto - nessuno spazio davanti al personaggio proiettile
    • oggetto Aa di secondo livello - 1 spazio è sufficiente
      • oggetto Aaa di terzo livello - 5 spazi min
    • oggetto Ab di secondo livello - anche 4 spazi possibili
  • oggetto di primo livello 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.
    

0

Se lavori con punti elenco, prova questo:

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

Questo è il metodo che uso per lo styling del markdown.


0

Su gitlab.com un singolo spazio (U + 2002) seguito da un singolo spazio (U + 2003) funziona decentemente.

Presumibilmente sarebbero sufficienti anche altre ripetizioni o combinazioni di caratteri spaziali non esattamente spiegati.


0

Uno dei problemi con l'avvio della linea con spazi non spezzanti è che se la linea è abbastanza lunga da avvolgere, quindi quando si riversa su una seconda linea, il primo carattere della linea di overflow con inizio a sinistra dura invece di iniziare sotto il primo carattere della linea sopra di esso.

Se il tuo sistema ti consente di mescolare HTML con il tuo markdown, un modo allegro e allegro di ottenere un rientro è come questo:

<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>

Semanticamente nel tuo HTML è una sciocchezza (una sezione UL senza elementi LI), ma tutti i browser che ho usato indentano felicemente cosa c'è tra quei tag.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.