Wie rücke ich ein paar Zeilen in das Markdown-Markup ein?

360

Ich möchte ein paar Textzeilen schreiben. Sie sollten normal formatiert sein, außer dass jede Zeile in der 6. Spalte beginnen sollte. Das heißt, ich möchte nicht, dass die Codeblock-Formatierungsregel diesen Textblock wie Code aussehen lässt, da ich andere Formatierungen wie Fettdruck usw. verwende. Wie geht das in Markdown?

Meng Lu
quelle
12
Es ist eine Schande, dass Markdown dies nicht unterstützt. Es ist ein grundlegendes Merkmal, das fehlt.
Josh Noe
5
was ist mit : ?
Frode Akselsen
4
Die Verwendung von: für Definitionslisten ist in Markdown-Implementierungen nicht universell, aber wenn Ihre Markdown-Variante dies unterstützt, funktioniert dies perfekt. Sie sollten dies zu einer echten Antwort machen.
Alex Dupuy

Antworten:

383

In den nativen Funktionen von Markdown gibt es keine Möglichkeit, dies zu tun. Markdown erlaubt jedoch Inline-HTML, also Schreiben

      This will appear with six space characters in front of it

wird herstellen:

      Dies wird mit sechs Leerzeichen davor angezeigt

Wenn Sie die Kontrolle über CSS auf der Seite haben, können Sie auch ein Tag verwenden und es entweder inline oder mit CSS-Regeln formatieren.

In beiden Fällen ist Markdown nicht als Werkzeug für das Layout gedacht, sondern soll den Schreibprozess für das Web vereinfachen. Wenn Sie also feststellen, dass Sie den Funktionsumfang erweitern, um das zu tun, was Sie benötigen, können Sie prüfen, ob Sie es tun oder nicht. Verwenden Sie hier das richtige Tool. Schauen Sie sich Grubers Dokumente an:

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

Alecscogs
quelle
12
Es ist möglich,  (Unicode: \ 2002) in eine Markdown-Datei einzufügen, und sie werden nicht wie  in der Quelle angezeigt - nur, wenn Sie die Datei rendern. Trainieren Sie einfach die Tastenkombination auf Ihrem Betriebssystem, um dieses Zeichen einzufügen.
Vaughan
1
Blockzitate sind ein guter Weg, dies zu tun (siehe @ ChrisVs Antwort)
drevicko
Was ist, wenn ich die Einrückung zum Ausrichten von Text verwenden möchte? Zum Beispiel möchte ich, dass das zweite Wort in zwei Zeilen an derselben Stelle beginnt (wie Codierer es gerne mit dem Zuweisungsoperator tun =).
Royi
3
 ist einfach großartig für einfache und einfache Einrückungen. Keine Stil- / Schriftänderungen, nur Einrückung 👍
Green
5
Umbrochene Zeilen in Langtext werden nicht eingerückt, was Sie möglicherweise nicht in Ihrem Layout möchten. Ändern Sie die Größe Ihrer gerenderten Ansicht, um sie zu testen. Auch  ist näher an der Registerkarte.
Dimmech
76

Eine Möglichkeit besteht darin, Aufzählungszeichen zu verwenden, mit denen Sie mehrere Einrückungsstufen angeben können. Aufzählungszeichen werden mit Vielfachen von zwei Leerzeichen, Stern und einem weiteren Leerzeichen eingefügt. Beispiel:

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>

Diese Methode hat den großen Vorteil, dass sie auch beim Anzeigen des Rohtextes sinnvoll ist.

Wenn Sie die Aufzählungszeichen selbst nicht sehen möchten , sollten Sie (je nachdem, wo Sie Markdown verwenden) in der Lage sein li {list-style-type: none;}, dem CSS für den gesamten Markdown-Bereich etwas hinzuzufügen .

SColvin
quelle
5
Netter Trick, aber ich möchte nur die sichtbaren Aufzählungszeichen für einen Teil eines Markdowns (und den daraus resultierenden HTML-Code) deaktivieren, aber nicht ganz. Gibt es einen sauberen Weg, das zu tun?
Meng Lu
@MengLu Ich habe die gleiche Anforderung. Hast du das überhaupt herausgefunden?
Lebensbalance
1
Viel besser strukturell als die akzeptierte Antwort
irowe
Denken Sie daran, dass Markdown HTML akzeptieren kann - es ist Teil der Spezifikation. Für eine bestimmte Liste hindert Sie nichts daran, HTML zur Lösung dieses Problems zu verwenden. Denken Sie daran, dass Sie HTML in Markdown haben können, aber nicht Markdown in Ihren HTML-Fragmenten. <ul> <li style = "list-style-type: none;"> Ihr eingerückter Inhalt, der ausschließlich aus HTML bestehen muss </ li> </ ul>
Hamish Willee
2
Dies scheint mir viel besser zu sein als die akzeptierte Antwort. Es gibt Ihnen eine feinere Kontrolle über Ihren eingerückten Text, ganz zu schweigen davon, dass er besser lesbar und leichter zu pflegen ist
Arepo
36

Dies ist ein alter Thread , aber ich hätte gedacht, dass die Blockquotes ('>') von Markdown am besten dafür geeignet sind:

ChrisV
quelle
21
Dies ist eine gute Lösung, wenn Sie keinen bestimmten Betrag einrücken müssen und es Ihnen egal ist, eine andere Hintergrundfarbe oder andere Stile zu erhalten, die möglicherweise mit Blockzitaten einhergehen. Letztendlich haben Blockzitate einen semantischen Zweck und sie sind am besten geeignet, wenn Sie tatsächlich etwas als Zitat setzen möchten.
Alecscogs
20
Falsch. Blockzitate (>) dienen zum Erstellen von Anführungszeichen und nicht zum einfachen Einrücken. Es ist völlig anders in den Stilen.
Grün
25

Überprüfen Sie, ob dieses ">" hilft:

Line 1
> line 2 
>> line 3
idnavid
quelle
das ist das süße Ticket in Jupyter-Notizbüchern mit Latex-Markup
vwvan
2
Siehe Kommentar oben: "Falsch. Blockzitate (>) dienen zum Erstellen von Anführungszeichen, nicht zum einfachen Einrücken. Die Stile unterscheiden sich grundlegend."
Benutzer, der kein Benutzer ist
22

do tab, dann das + -Zeichen, dann Leerzeichen, dann Ihren Inhalt

Damit

* level one + level two tabbed

Pavan Katepalli
quelle
Github / Bitbucket Markdown unterstützt eine ähnliche Einrückungsregel, ohne +:[tab][space]your-text-goes-here
Roblogic
13

Wie wäre es, wenn Sie ein bestimmtes Leerzeichen am Anfang des Absatzes in der mathematischen Umgebung wie folgt platzieren:

$\qquad$ My line of text ...

Das funktioniert bei mir und ich hoffe, dass es auch bei Ihnen funktioniert.

Marcos Lourenço
quelle
10

Wenn Sie wirklich Registerkarten verwenden müssen und die graue Hintergrundfarbe und das Auffüllen nichts ausmachen, <pre>funktionieren Tags möglicherweise (sofern unterstützt):

<pre>
This        That        And             This
That        This        And             That    
</pre>
Dies das und das
Das dies und das    
Wortschmied
quelle
7

Bitte verwenden Sie harte (nicht brechende) Leerzeichen

Warum eine andere Auszeichnungssprache verwenden? (Ich stimme @cz oben zu).
Ein Ziel von Markdown ist es, die Dokumente auch in einem Nur-Text-Editor lesbar zu machen.

Gleiches Ergebnis zwei Ansätze

Der Code

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

Das Ergebnis

Beispielcode
    5. Position in einem wirklich hässlichen Code
    5. Position in einem klaren und lesbaren Code
    Wieder unter Verwendung von nicht unterbrechenden Leerzeichen :)

Die visuelle Darstellung eines nicht unterbrechenden Raums (oder harten Raums) ist normalerweise ein normaler Raum, jedoch ist seine Unicode-Darstellung U + 00A0.
Die Unicode-Darstellung des gewöhnlichen Raums ist U + 0020 (32 in der ASCII-Tabelle).
Daher können sich Textprozessoren unterschiedlich verhalten, während die visuelle Darstellung gleich bleibt.

Fügen Sie einen harten Raum ein

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

Problem

Einige Texteditoren können beim Kopieren und Einfügen harte Räume in gemeinsame Räume konvertieren. Seien Sie also vorsichtig.

ePi272314
quelle
OPTION + SPACE aktivierte Spotlight-Suche
wander95
Kann nicht sein, nur wenn Sie die Standardverknüpfungen geändert haben. Das Spotlight-Suchfeld wird mit COMMAND-SPACE ausgelöst (die COMMAND-Taste ist analog zur Windows-Taste). Der nicht
unterbrechende
Auf meinem Mac habe ich selbst eine Verknüpfung zu Option + Leertaste, aber Umschalt + Wahltaste + Leertaste funktionieren stattdessen gut.
Dag Høidahl
Zeilenumbrüche mit langen Sätzen sehen damit hässlich aus.
Mike Kormendy
4

Überprüfen Sie, ob Sie mit Ihrem Markdown HTML verwenden können. Vielleicht klappt das für Sie:

  • <br/>
    Listeneintrag eine eingerückte Zeile <br/>
    <br/>
    und noch mehr ..
  • Zweiter Eintrag
    • Subentry <br/>
      Hallo!
Webwurst
quelle
6
Dazu müssen Sie die Zeile nur mit zwei Leerzeichen beenden.
Pietro
4

Bei zitierten / eingerückten Absätzen funktioniert dieser Hack möglicherweise (abhängig von der Render-Engine):

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

was rendert als:

Geben Sie hier die Bildbeschreibung ein

Geotheorie
quelle
2

Verwenden Sie einen Pausenraum direkt  (nicht dasselbe wie !).

(Sie könnten HTML oder einen esoterischen Markdown-Code einfügen, aber ich kann mir bessere Gründe vorstellen, um die Kompatibilität mit Standard-Markdown zu brechen.)

cz
quelle
2

Um die Fragen von MengLu und @ lifebalance als Antwort auf die Antwort von SColvin zu beantworten (die ich der akzeptierten Antwort für das darin enthaltene Steuerelement sehr vorziehe), scheint es, als könnten Sie nur ein übergeordnetes Element der Listen als Ziel festlegen, wenn Sie die Anzeige auf keine setzen und hinzufügen ggf. ein umgebendes Element. Wenn wir also annehmen, dass wir dies für ein Inhaltsverzeichnis tun, können wir die Antwort von SColvin erweitern:

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

Wie von @AlexDupuy in den Kommentaren hervorgehoben, können hierfür Definitionslisten verwendet werden.

Dies wird nicht von allen Markdown-Prozessoren unterstützt, ist jedoch allgemein verfügbar: Markdown-Handbuch - Definitionslisten

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

Rendert als (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>

Normalerweise DTwird das in einem überschriftenähnlichen Format DDgerendert , und jeder wird als eingerückter Text darunter gerendert.

Wenn Sie keine Überschrift / keinen Begriff möchten, verwenden Sie anstelle des Definitionsbegriffs ein nicht unterbrechendes Leerzeichen:

&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

Sie können dies in Aktion sehen, indem Sie die obigen Beispiele auf diese Site kopieren: Stack Edit Markdown Editor

Screenshot des DL-Renderings in Stack Edit

JohnLBevan
quelle
1
Die & nbsp; hat perfekt funktioniert. Vielen Dank
Kevin Mason
0

Einige Markdown-Implementierungen scheinen das ~Zeichen zum Einrücken zu verwenden.

npclaudiu
quelle
0

Eine andere Alternative ist die Verwendung eines Markdown-Editors wie StackEdit . Es konvertiert HTML (oder Text) in einen Markdown in einem WYSIWYG-Editor. Sie können im Editor Einrückungen, Titel und Listen erstellen. Der entsprechende Text wird im Markdown-Format angezeigt. Sie können die Datei dann speichern, veröffentlichen, freigeben oder herunterladen. Sie können auf ihrer Website darauf zugreifen - keine Downloads erforderlich!

lizasperling
quelle
0

Okay, mit ein wenig HTML in Ihrem R-Code habe ich den folgenden Code ausgeführt, um reinen Text in R Markdown zu generieren. Der <h3 style="text-indent: 15em;">Text wird um 15 Leerzeichen eingerückt. Ändern Sie für die ursprüngliche Frage die 15 in 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>

Der resultierende Code gibt also mein gewünschtes Ausgabeformat an. Ich verwende Registerkarten für das Markdown-Dokument und wollte den () Text ausrichten, der funktioniert hat.

r Ausgabe

Bryan Butler
quelle
0

Der Vollständigkeit halber die tieferen Listen mit Aufzählungszeichen:

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

Verschachtelte tiefere Ebenen:

  • Erste Stufe Ein Gegenstand - kein Leerzeichen vor dem Aufzählungszeichen
    • Aa-Gegenstand der zweiten Ebene - 1 Feld ist genug
      • Aaa-Gegenstand der dritten Stufe - 5 Felder min
    • Ab Level der zweiten Stufe - 4 Felder möglich
  • Gegenstand der ersten Stufe 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
quelle
0

Wenn Sie mit Aufzählungszeichen arbeiten, versuchen Sie Folgendes:

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

Dies ist die Methode, die ich beim Stylen von Markdowns verwende.


quelle
0

Auf gitlab.com funktioniert ein einzelnes Leerzeichen (U + 2002) gefolgt von einem einzelnen Leerzeichen (U + 2003) anständig.

Vermutlich würden auch andere Wiederholungen oder Kombinationen von nicht genau berücksichtigten Leerzeichen ausreichen.

Jan Kyu Peblik
quelle
0

Eines der Probleme beim Starten Ihrer Zeile mit nicht unterbrechenden Leerzeichen besteht darin, dass, wenn Ihre Zeile lang genug ist, um sie zu umbrechen, das erste Zeichen der Überlaufzeile mit dem Start hart links übrig bleibt, anstatt unter dem ersten Zeichen zu beginnen der Linie darüber.

Wenn Ihr System es Ihnen ermöglicht, HTML mit Ihrem Markdown zu mischen, ist eine billige und fröhliche Art, einen Einzug zu erhalten, wie folgt:

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

Semantisch in Ihrem HTML ist es Unsinn (ein UL-Abschnitt ohne LI-Elemente), aber alle Browser, die ich verwendet habe, rücken glücklich ein, was sich zwischen diesen Tags befindet.

Jinlye
quelle