วิธีการเยื้องสองสามบรรทัดในมาร์กอัปมาร์กอัป?


360

ฉันต้องการเขียนข้อความสองสามบรรทัด พวกเขาควรจัดรูปแบบตามปกติยกเว้นแต่ละบรรทัดควรเริ่มต้นที่คอลัมน์ที่ 6 คือฉันไม่ต้องการให้กฎการจัดรูปแบบการบล็อกรหัสทำให้ข้อความอันนี้ดูเหมือนโค้ดเนื่องจากฉันจะใช้การจัดรูปแบบอื่น ๆ เช่นรูปหน้าตัวหนา ฯลฯ จะทำอย่างไรใน Markdown?


12
น่าเสียดายที่ Markdown ไม่สนับสนุนสิ่งนี้ มันเป็นคุณสมบัติพื้นฐานที่ขาดหายไป
Josh Noe

5
แล้ว: ไงล่ะ
Frode Akselsen

4
การใช้: สำหรับรายการคำจำกัดความไม่ได้เป็นสากลในการใช้งาน Markdown แต่หากตัวแปร Markdown ของคุณรองรับสิ่งนี้จะทำงานได้อย่างสมบูรณ์ คุณควรทำให้เป็นคำตอบที่แท้จริง
Alex Dupuy

คำตอบ:


383

ไม่มีวิธีการทำเช่นนั้นในคุณสมบัติดั้งเดิมของ markdown อย่างไรก็ตาม markdown อนุญาตให้ใช้ HTML แบบอินไลน์ดังนั้นการเขียน

      This will appear with six space characters in front of it

จะผลิต:

      จะปรากฏขึ้นพร้อมอักขระเว้นวรรคหกตัวที่อยู่ด้านหน้า

หากคุณมีการควบคุม CSS บนหน้าคุณสามารถใช้แท็กและจัดรูปแบบได้ทั้งแบบอินไลน์หรือด้วยกฎ CSS

ไม่ว่าจะด้วยวิธีใดมาร์คดาวน์ไม่ได้เป็นเครื่องมือสำหรับการจัดวาง แต่ก็มีวัตถุประสงค์เพื่อลดความซับซ้อนของขั้นตอนการเขียนสำหรับเว็บดังนั้นหากคุณพบว่าตัวเองยืดคุณสมบัติที่กำหนดไว้ให้ทำสิ่งที่คุณต้องการคุณอาจมองว่า กำลังใช้เครื่องมือที่เหมาะสมที่นี่ ลองดูเอกสารของ Gruber:

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


12
เป็นไปได้ที่จะแทรก (Unicode: \ 2002) ลงในไฟล์ Markdown และจะไม่ปรากฏขึ้น ในแหล่งที่มา - เฉพาะเมื่อคุณแสดงไฟล์ เพียงออกกำลังกายปุ่มทางลัดบน OS ของคุณเพื่อแทรกตัวละครนี้
vaughan

1
คำพูดที่ถูกบล็อกเป็นวิธีที่ดีที่จะทำนี้ (ดู @ คำตอบของ ChrisV)
drevicko

ถ้าฉันต้องการใช้การเยื้องเพื่อจัดแนวข้อความ ตัวอย่างเช่นฉันต้องการคำที่สองในสองบรรทัดเพื่อเริ่มต้นในสถานที่เดียวกัน (เช่น coders ชอบไปกับผู้ประกอบการที่ได้รับมอบหมาย=)
Royi

3
 ดีมากสำหรับการเยื้องที่เรียบง่ายและเรียบง่าย ไม่มีการเปลี่ยนแปลงสไตล์ / แบบอักษรเพียงแค่ย่อหน้า👍
Green

5
บรรทัดที่ถูกพันด้วยข้อความยาวไม่ได้เยื้องซึ่งคุณอาจไม่ต้องการในเลย์เอาต์ของคุณ ปรับขนาดมุมมองที่แสดงผลของคุณเพื่อทดสอบ นอกจากนี้ยัง อยู่ใกล้กับแท็บ
dimmech

76

วิธีหนึ่งที่ทำได้คือใช้สัญลักษณ์แสดงหัวข้อย่อยซึ่งช่วยให้คุณระบุการเยื้องได้หลายระดับ สัญลักษณ์หัวข้อย่อยจะถูกแทรกโดยใช้ทวีคูณของสองช่องว่าง, ดาว, พื้นที่อื่นเช่น:

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>

วิธีนี้มีข้อได้เปรียบที่ยอดเยี่ยมซึ่งมันสมเหตุสมผลเมื่อคุณดูข้อความดิบ

หากคุณสนใจที่จะไม่เห็นสัญลักษณ์แสดงหัวข้อย่อยด้วยตนเองคุณควร (ขึ้นอยู่กับตำแหน่งที่คุณใช้li {list-style-type: none;}เครื่องหมาย) เพื่อให้สามารถเพิ่มลงใน css สำหรับพื้นที่มาร์คดาวน์ทั้งหมด


5
เคล็ดลับดี แต่ฉันต้องการปิดใช้งานสัญลักษณ์แสดงหัวข้อย่อยสำหรับส่วนหนึ่งของ Markdown (และ HTML ที่เป็นผลลัพธ์) แต่ไม่ใช่ทั้งหมด มีวิธีที่สะอาดในการทำเช่นนั้นหรือไม่?
Meng Lu

@MengLu ฉันมีความต้องการเดียวกัน คุณคิดว่าอันนี้ออกมาหรือไม่?
อายุการใช้

1
มากโครงสร้างฉลาดดีกว่าคำตอบที่ได้รับการยอมรับ
irowe

โปรดจำไว้ว่า markdown สามารถรับ HTML ได้ซึ่งเป็นส่วนหนึ่งของข้อมูลจำเพาะ ดังนั้นสำหรับบางรายการไม่มีอะไรที่จะหยุดคุณโดยใช้ HTML เพื่อแก้ไขปัญหานี้ เพียงจำไว้ว่าคุณสามารถมี HTML ใน markdown แต่ไม่ใช่ markdown ในแฟรกเมนต์ HTML ของคุณ <ul> <li style = "list-style-type: none;"> เนื้อหาที่เยื้องของคุณซึ่งต้องเป็น HTML ทั้งหมด </li> </ul>
Hamish Willee

2
ดูเหมือนว่าจะดีกว่าคำตอบที่ฉันยอมรับ มันช่วยให้คุณควบคุมข้อความที่เยื้อง ๆ ได้ดียิ่งขึ้นไม่ต้องพูดถึงว่าสามารถอ่านได้ง่ายขึ้นและง่ายต่อการบำรุงรักษา
Arepo

36

นี่คือเธรดเก่าแต่ฉันคิดว่า blockquotes ('>') ของ markdown จะดีที่สุดสำหรับสิ่งนี้:


21
นี่เป็นวิธีแก้ปัญหาที่ดีถ้าคุณไม่จำเป็นต้องเยื้องจำนวนที่ระบุและคุณไม่สนใจที่จะได้สีพื้นหลังที่แตกต่างกันหรือสไตล์อื่น ๆ ที่อาจเข้ากันกับ blockquotes ในที่สุด blockquotes มีความหมายและดีที่สุดถ้าคุณต้องการตั้งบางสิ่งบางอย่างเป็นคำพูด
alegscogs

20
ไม่ถูกต้อง. Blockquotes (>) ใช้สำหรับสร้างราคาไม่ใช่การเยื้องแบบธรรมดา มันแตกต่างกันอย่างสิ้นเชิงในรูปแบบ
Green

25

ดูว่า ">" ช่วยได้หรือไม่:

Line 1
> line 2 
>> line 3

นั่นเป็นตั๋วหวานในสมุดบันทึก jupyter ที่ใช้มาร์กอัป
vwvan

2
ดูความคิดเห็นด้านบน: "ผิด Blockquotes (>) ใช้สำหรับสร้างราคาไม่ใช่การเยื้องแบบธรรมดามันแตกต่างกันอย่างสิ้นเชิงในรูปแบบ"
ผู้ใช้ที่ไม่ใช่ผู้ใช้

22

ทำแท็บจากนั้นกดเครื่องหมาย + ตามด้วยเว้นวรรคแล้วตามด้วยเนื้อหา

ดังนั้น

* level one + level two tabbed


github / bitbucket markdown รองรับกฎการเยื้องที่คล้ายกันโดยไม่มี+:[tab][space]your-text-goes-here
roblogic

13

เกี่ยวกับการวางช่องว่างที่กำหนดไว้ในจุดเริ่มต้นของวรรคโดยใช้สภาพแวดล้อมทางคณิตศาสตร์เช่น

$\qquad$ My line of text ...

มันเหมาะกับฉันและหวังว่าจะได้ผลกับคุณเช่นกัน


10

หากคุณต้องใช้แท็บจริงๆและคุณไม่สนใจสีพื้นหลังสีเทาและช่องว่างภายใน<pre>แท็กอาจใช้งานได้ (หากรองรับ):

<pre>
This        That        And             This
That        This        And             That    
</pre>
นี่นั่นและนี่
นั่นและนั่น    

7

กรุณาใช้ช่องว่างที่ยาก (ไม่ทำลาย)

เหตุใดจึงต้องใช้ภาษามาร์คอัปอื่น (ฉันเห็นด้วยกับ @ cz ด้านบน)
เป้าหมายหนึ่งของ Markdown คือการทำให้เอกสารอ่านได้แม้ในโปรแกรมแก้ไขข้อความธรรมดา

ผลลัพธ์เดียวกันสองแนวทาง

รหัส

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

ผลลัพธ์

โค้ดตัวอย่าง
    ตำแหน่งที่ 5 ในโค้ดที่น่าเกลียดจริงๆตำแหน่งที่ 5 ในรหัส
    ที่ชัดเจนสามารถอ่านได้
    อีกครั้งโดยใช้ช่องว่างที่ไม่ทำลาย :)

การแสดงภาพของพื้นที่ไม่แตก (หรือพื้นที่ว่าง) มักเป็นพื้นที่ปกติ "" อย่างไรก็ตามการแสดง Unicode นั้นคือ U + 00A0
การแสดง Unicode ของพื้นที่ว่างทั่วไปคือ U + 0020 (32 ในตาราง ASCII)
ดังนั้นตัวประมวลผลข้อความอาจทำงานแตกต่างกันในขณะที่การแสดงภาพยังคงเหมือนเดิม

แทรกพื้นที่ว่าง

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

ปัญหา

เครื่องมือแก้ไขข้อความบางตัวสามารถแปลงพื้นที่ว่างเป็นพื้นที่ทั่วไปในการคัดลอกและวางการดำเนินการดังนั้นควรระวัง


OPTION + SPACE เปิดใช้งานการค้นหาสปอตไลท์
หลง 95

ไม่สามารถเป็นได้ก็ต่อเมื่อคุณเปลี่ยนทางลัดเริ่มต้น ช่องค้นหา Spotlight เรียกใช้ด้วย COMMAND-SPACE (ปุ่ม COMMAND เป็นแบบแอนะล็อกกับคีย์ Windows) มีการแนะนำพื้นที่ว่างที่ไม่ทำลายด้วย OPTION-SPACE (ตัวเลือกเป็นแบบอะนาล็อกเพื่อ ALT)
ePi272314

สำหรับ Mac ของฉันฉันมีทางลัดบน Option + Space ด้วยตัวเอง แต่ Shift + Option + Space ทำงานได้ดีแทน
Dag Høidahl

การตัดบรรทัดที่มีประโยคยาวดูน่าเกลียดด้วยสิ่งนี้
Mike Kormendy

4

ตรวจสอบว่าคุณสามารถใช้ HTML กับ markdown ของคุณได้หรือไม่ อาจเป็นไปได้สำหรับคุณ:

  • รายการหนึ่ง<br/>
    บรรทัดเยื้อง<br/>
    <br/>
    และอื่น ๆ ..
  • รายการที่สอง
    • ผู้ใต้บังคับบัญชา<br/>
      สวัสดี!

6
ในการทำเช่นนั้นคุณต้องจบบรรทัดด้วยช่องว่างสองช่อง
เปียโตร

4

สำหรับย่อหน้าที่อ้างถึง / ย่อหน้าย่อหน้าการแฮ็คนี้อาจใช้งานได้ (ขึ้นอยู่กับเอ็นจิ้นการเรนเดอร์):

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

ซึ่งแสดงผลเป็น:

ป้อนคำอธิบายรูปภาพที่นี่


2

ใช้ช่องว่างแบบไม่หยุดพักโดยตรง (ไม่เหมือนกับ!)

(คุณสามารถแทรก HTML หรือโค้ดมาร์กอัปที่ลึกลับ แต่ฉันคิดว่ามีเหตุผลที่ดีกว่าในการทำลายความเข้ากันได้กับ markdown มาตรฐาน)


2

เพื่อตอบคำถามของ MengLu และ @ lifebalance เพื่อตอบสนองต่อคำตอบของ SColvin (ซึ่งฉันชอบคำตอบที่ได้รับการยอมรับสำหรับการควบคุมที่มีให้) ดูเหมือนว่าคุณสามารถกำหนดเป้าหมายองค์ประกอบหลักของรายการเมื่อตั้งค่าการแสดงเป็นไม่มีเพิ่ม องค์ประกอบโดยรอบหากจำเป็น ดังนั้นหากเราสมมติว่าเราทำสิ่งนี้เพื่อสารบัญเราสามารถขยายคำตอบของ 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

ตามที่ระบุโดย @AlexDupuy ในความคิดเห็นรายการคำนิยามสามารถใช้สำหรับสิ่งนี้

ตัวประมวลผลมาร์กอัปทั้งหมดไม่ได้รับการรองรับ แต่มีให้ใช้อย่างกว้างขวาง: คู่มือการทำเครื่องหมาย - รายการคำนิยาม

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

แสดงผลเป็น (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>

โดยทั่วไปแล้วการDTแสดงผลในรูปแบบหัวเรื่องและแต่ละรายการDDจะแสดงผลเป็นข้อความที่เยื้องด้านล่างนี้

หากคุณไม่ต้องการหัวเรื่อง / คำเพียงใช้ช่องว่างแบบไม่แทนที่คำนิยาม:

&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

คุณสามารถดูสิ่งนี้ได้โดยการคัดลอกตัวอย่างข้างต้นไปยังไซต์นี้: Stack Edit Markdown Editor

สกรีนช็อตของการเรนเดอร์ DL ใน Stack Edit


1
แท็ก & nbsp; ทำงานได้อย่างสมบูรณ์แบบ ขอบคุณ
เควินเมสัน

0

การใช้งาน Markdown บางอย่างดูเหมือนจะใช้~อักขระสำหรับการเยื้อง


0

อีกทางเลือกหนึ่งคือการใช้โปรแกรมแก้ไข markdown เช่นStackEdit มันจะแปลง html (หรือข้อความ) เป็น markdown ในโปรแกรมแก้ไขแบบ WYSIWYG คุณสามารถสร้างการเยื้องชื่อรายการในตัวแก้ไขและมันจะแสดงข้อความที่เกี่ยวข้องในรูปแบบ markdown จากนั้นคุณสามารถบันทึกเผยแพร่แชร์หรือดาวน์โหลดไฟล์ คุณสามารถเข้าถึงได้บนเว็บไซต์ - ไม่จำเป็นต้องดาวน์โหลด!


0

ตกลงด้วย HTML เล็กน้อยในรหัส R ของคุณฉันทำรหัสต่อไปนี้เพื่อสร้างข้อความล้วนใน R Markdown <h3 style="text-indent: 15em;">เยื้องข้อความ 15 พื้นที่ สำหรับคำถามเดิมเปลี่ยน 15 เป็น 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>

ดังนั้นรหัสผลลัพธ์ให้รูปแบบผลลัพธ์ที่ฉันต้องการ ฉันกำลังใช้แท็บสำหรับเอกสาร Markdown และกำลังมองหาแถวข้อความ () ที่ใช้งานได้

เอาท์พุท r


0

เพื่อความสมบูรณ์รายการสัญลักษณ์แสดงหัวข้อย่อยที่ลึกกว่า:

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

ระดับที่ลึกกว่าซ้อนกัน:

  • รายการระดับแรก - ไม่มีช่องว่างด้านหน้าอักขระกระสุนปืน
    • รายการ Aa ระดับที่สอง - 1 พื้นที่เพียงพอ
      • รายการ Aaa ระดับที่สาม - 5 ช่องว่างขั้นต่ำ
    • รายการ Ab ระดับที่สอง - 4 ช่องว่างเช่นกัน
  • รายการ 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

หากคุณกำลังทำงานกับหัวข้อย่อยลองสิ่งนี้:

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

นี่คือวิธีที่ฉันใช้เมื่อจัดแต่งทรงผมที่มีเครื่องหมาย


0

บน gitlab.com มีพื้นที่ en เดียว (U + 2002) ตามด้วยพื้นที่ em เดียว (U + 2003) ทำงานได้ดี

การซ้ำซ้อนอื่น ๆ หรือการรวมกันของอักขระเว้นวรรคที่ไม่ได้คิดอย่างแน่นอนก็น่าจะเพียงพอเช่นกัน


0

ปัญหาอย่างหนึ่งของการเริ่มต้นบรรทัดด้วยช่องว่างที่ไม่ทำลายคือถ้าบรรทัดของคุณยาวพอที่จะทำการตัดเมื่อบรรทัดนั้นหกลงบนบรรทัดที่สองอักขระตัวแรกของบรรทัดโอเวอร์โฟลว์โดยเริ่มซ้ายยากแทนที่จะเริ่มใต้อักขระตัวแรก ของบรรทัดด้านบน

หากระบบของคุณอนุญาตให้คุณผสม HTML เข้ากับ markdown ของคุณวิธีการที่ได้รับการเยื้องและร่าเริงคือ:

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

ในความหมายของ HTML มันเป็นเรื่องไร้สาระ (ส่วน UL โดยไม่มีรายการ LI) แต่เบราว์เซอร์ทั้งหมดที่ฉันใช้ก็แค่เยื้องอย่างมีความสุขว่าแท็กเหล่านั้นอยู่ระหว่างอะไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.