Làm thế nào để thụt lề một vài dòng trong đánh dấu Markdown?


360

Tôi muốn viết một vài dòng văn bản. Chúng nên được định dạng bình thường ngoại trừ mỗi dòng nên bắt đầu ở cột thứ 6. Tức là tôi không muốn quy tắc định dạng khối mã để làm cho đoạn văn bản này trông giống như mã vì tôi sẽ sử dụng định dạng khác như mặt đậm, v.v. Làm thế nào để làm điều đó trong Markdown?


12
Thật đáng tiếc Markdown không ủng hộ điều này. Đó là một tính năng cơ bản thiếu.
Josh Noe

5
những gì về : ?
Frode Akselsen

4
Việc sử dụng: cho danh sách định nghĩa không phổ biến trong triển khai Markdown, nhưng nếu biến thể Markdown của bạn hỗ trợ nó, thì điều này hoạt động hoàn hảo. Bạn nên làm điều này một câu trả lời thực sự.
Alex Dupuy

Câu trả lời:


383

Không có cách nào để làm điều đó trong các tính năng gốc của markdown. Tuy nhiên markdown cho phép HTML nội tuyến, do đó, viết

      This will appear with six space characters in front of it

sẽ sản xuất:

      Điều này sẽ xuất hiện với sáu nhân vật không gian phía trước nó

Nếu bạn có quyền kiểm soát CSS trên trang, bạn cũng có thể sử dụng thẻ và định kiểu nó, theo dòng hoặc theo quy tắc CSS.

Dù bằng cách nào, markdown không có nghĩa là một công cụ để bố trí, nó có nghĩa là đơn giản hóa quá trình viết cho web, vì vậy nếu bạn thấy mình kéo dài tính năng của nó để làm những gì bạn cần, bạn có thể xem liệu bạn có hay không Đang sử dụng đúng công cụ ở đây. Kiểm tra tài liệu của Gruber:

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


12
Có thể chèn  (Unicode: \ 2002) vào tệp Markdown và chúng sẽ không hiển thị như  trong nguồn - chỉ khi bạn kết xuất tệp. Chỉ cần tập luyện phím tắt trên hệ điều hành của bạn để chèn ký tự này.
vaughan

1
Chặn trích dẫn là một cách tốt để làm điều này (xem câu trả lời của @
ChrisV

Điều gì sẽ xảy ra nếu tôi muốn sử dụng sự chú ý để căn chỉnh văn bản. Chẳng hạn, tôi muốn từ thứ 2 trong hai dòng bắt đầu tại cùng một nơi (Giống như các lập trình viên thích với toán tử gán =).
Royi

3
 chỉ tuyệt vời cho thụt đơn giản và đơn giản. Không thay đổi kiểu / phông chữ, chỉ thụt lề
Green

5
Các dòng được bọc trong văn bản dài không được thụt lề mà bạn có thể không muốn trong bố cục của mình. Thay đổi kích thước khung nhìn được hiển thị của bạn để kiểm tra. Ngoài ra,  là gần hơn với tab.
dimmech

76

Một cách để làm điều đó là sử dụng các gạch đầu dòng, cho phép bạn chỉ định nhiều cấp độ thụt đầu dòng. Điểm đạn được chèn bằng bội số của hai khoảng trắng, dấu sao, khoảng trắng khác Ví dụ:

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>

Phương pháp này có ưu điểm lớn là nó cũng có ý nghĩa khi bạn xem văn bản thô.

Nếu bạn quan tâm đến việc không nhìn thấy các dấu đầu dòng , bạn nên (tùy thuộc vào nơi bạn đang sử dụng li {list-style-type: none;}đánh dấu ) để có thể thêm vào css cho toàn bộ khu vực đánh dấu.


5
Thủ thuật hay, nhưng tôi chỉ muốn vô hiệu hóa các viên đạn có thể nhìn thấy cho một phần của Markdown (và HTML kết quả của nó) chứ không phải toàn bộ. Có một cách sạch sẽ để làm điều đó?
Mạnh Lữ

@MengLu Tôi có cùng yêu cầu. Bạn đã tìm ra cái này chưa?
tuổi thọ

1
Cấu trúc tốt hơn nhiều so với câu trả lời được chấp nhận
irowe

Hãy nhớ rằng markdown có thể chấp nhận HTML - nó là một phần của thông số kỹ thuật. Vì vậy, đối với một danh sách cụ thể, không có gì ngăn bạn sử dụng HTML để giải quyết vấn đề này. Chỉ cần nhớ rằng bạn có thể có HTML trong markdown, nhưng không Markdown trong các đoạn HTML của bạn. <ul> <li style = "list-style-type: none;"> Nội dung được thụt lề của bạn phải là tất cả HTML </ li> </ ul>
Hamish Willee

2
Điều này có vẻ tốt hơn nhiều so với câu trả lời được chấp nhận cho tôi. Nó cung cấp cho bạn quyền kiểm soát chi tiết hơn đối với văn bản thụt lề của bạn, chưa kể đến việc dễ đọc hơn và dễ bảo trì hơn
Arepo

36

Đây là một chủ đề cũ , nhưng tôi đã nghĩ rằng các chuỗi khối của markdown ('>') sẽ là tốt nhất cho việc này:


21
Đây là một giải pháp tốt nếu bạn không cần phải thụt một số tiền cụ thể và bạn không quan tâm đến việc có được màu nền khác hoặc các kiểu khác có thể đi cùng với các chuỗi khối. Cuối cùng, blockquote có một mục đích ngữ nghĩa và chúng là tốt nhất nếu bạn thực sự muốn đặt một cái gì đó như một trích dẫn.
alegscogs

20
Sai lầm. Blockquotes (>) là để tạo một trích dẫn, không phải là một vết lõm đơn giản. Nó là hoàn toàn khác nhau trong phong cách.
Green

25

Xem nếu ">" này giúp:

Line 1
> line 2 
>> line 3

đó là tấm vé ngọt ngào trong máy tính xách tay jupyter sử dụng đánh dấu latex
vwvan

2
Xem bình luận ở trên: "Sai. Blockquotes (>) là để tạo dấu ngoặc kép, không phải là thụt lề đơn giản. Nó hoàn toàn khác về kiểu dáng"
Người dùng không phải là người dùng

22

làm tab, sau đó là dấu +, sau đó là dấu cách, sau đó là nội dung của bạn

Vì thế

* level one + level two tabbed


đánh dấu github / bitbucket hỗ trợ quy tắc thụt lề tương tự, không có +:[tab][space]your-text-goes-here
roblogic

13

Điều gì về việc đặt một không gian xác định vào đầu đoạn sử dụng môi trường toán học như sau:

$\qquad$ My line of text ...

Điều này làm việc cho tôi và hy vọng làm việc cho bạn quá.


10

Nếu bạn thực sự phải sử dụng các tab và bạn không bận tâm đến màu nền và phần đệm màu xám, <pre>các thẻ có thể hoạt động (nếu được hỗ trợ):

<pre>
This        That        And             This
That        This        And             That    
</pre>
Cái này cái này và cái này
Cái này cái kia    

7

Vui lòng sử dụng không gian cứng (không phá vỡ)

Tại sao sử dụng ngôn ngữ đánh dấu khác? (Tôi đồng ý với @cz ở trên).
Một mục tiêu của Markdown là làm cho các tài liệu có thể đọc được ngay cả trong một trình soạn thảo văn bản thuần túy.

Kết quả giống nhau hai cách tiếp cận

Mật mã

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

Kết quả

Mã mẫu
    Vị trí thứ 5 trong một mã thực sự xấu
    Vị trí thứ 5 trong một mã rõ ràng có thể đọc
    lại Một lần nữa bằng cách sử dụng khoảng trắng không phá vỡ :)

Biểu diễn trực quan của không gian không phá vỡ (hoặc không gian cứng) thường là không gian bình thường "", tuy nhiên, biểu diễn Unicode của nó là U + 00A0.
Biểu diễn Unicode của không gian thông thường là U + 0020 (32 trong Bảng ASCII).
Do đó, bộ xử lý văn bản có thể hoạt động khác đi trong khi biểu diễn trực quan vẫn giữ nguyên.

Chèn một không gian cứng

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

Vấn đề

Một số trình soạn thảo văn bản có thể chuyển đổi không gian cứng thành không gian chung trong các hoạt động sao chép và dán, vì vậy hãy cẩn thận.


TÙY CHỌN + SPACE kích hoạt tìm kiếm ánh sáng
wander95

Không thể, chỉ khi bạn đã thay đổi các phím tắt mặc định. Trường kích hoạt tìm kiếm Spotlight kích hoạt với LỆNH-KHÔNG GIAN (phím LỰA là tương tự với Khóa Windows). Không gian không phá vỡ được giới thiệu với TÙY CHỌN-KHÔNG GIAN (Tùy chọn là tương tự ALT)
ePi272314

Trên máy Mac của tôi, tôi có một phím tắt trên Tùy chọn + Không gian, nhưng Shift + Tùy chọn + Không gian hoạt động tốt thay thế.
Dag Høidahl

Dòng kết thúc với câu dài trông xấu xí với điều này.
Mike Kormendy

4

Kiểm tra xem bạn có thể sử dụng HTML với đánh dấu của bạn. Có lẽ điều này làm việc cho bạn:

  • Liệt kê mục nhập một <br/>
    dòng thụt lề <br/>
    <br/>
    Và một số chi tiết ..
  • Mục thứ hai
    • Subentry <br/>
      Xin chào!

6
Để làm điều đó bạn chỉ cần kết thúc dòng với hai khoảng trắng.
Pietro

4

Đối với các đoạn trích dẫn / thụt lề, bản hack này có thể hoạt động (tùy thuộc vào công cụ kết xuất):

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

mà ám chỉ là:

nhập mô tả hình ảnh ở đây


2

Sử dụng không gian nghỉ trực tiếp  (không giống như !).

(Bạn có thể chèn HTML hoặc một số mã đánh dấu bí truyền, nhưng tôi có thể nghĩ ra những lý do tốt hơn để phá vỡ tính tương thích với đánh dấu tiêu chuẩn.)


2

Để trả lời các câu hỏi của MengLu và @ lifebalance để trả lời câu trả lời của SColvin (mà tôi rất thích câu trả lời được chấp nhận cho điều khiển mà nó cung cấp), có vẻ như bạn chỉ có thể nhắm mục tiêu một yếu tố chính của danh sách khi đặt hiển thị thành không, thêm vào một yếu tố xung quanh nếu cần thiết. Vì vậy, nếu chúng tôi cho rằng chúng tôi đang làm điều này cho một mục lục, chúng tôi có thể mở rộng câu trả lời của 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

Như @AlexDupuy đã chỉ ra trong các bình luận, danh sách định nghĩa có thể được sử dụng cho việc này.

Điều này không được hỗ trợ bởi tất cả các bộ xử lý markdown, nhưng có sẵn rộng rãi: Hướng dẫn Markdown - Danh sách định nghĩa

Term 1
: definition 1
: definition 2

Term 2
: definition 1
: definition 2

Hiển thị dưới dạng (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>

Thông thường, DTđược hiển thị ở định dạng giống như tiêu đề và mỗi DDđược hiển thị dưới dạng văn bản thụt vào bên dưới này.

Nếu bạn không muốn một tiêu đề / thuật ngữ, chỉ cần sử dụng khoảng trắng không phá vỡ thay cho thuật ngữ định nghĩa:

&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

Bạn có thể thấy điều này bằng hành động bằng cách sao chép các ví dụ trên vào trang web này: Stack Edit Markdown Editor

Ảnh chụp màn hình kết xuất DL trong Stack Edit


1
& Nbsp; làm việc hoàn hảo Cảm ơn bạn
Kevin Mason

0

Một số triển khai Markdown dường như sử dụng ~ký tự để thụt lề.


0

Một cách khác là sử dụng trình soạn thảo markdown như StackEdit . Nó chuyển đổi html (hoặc văn bản) thành markdown trong trình soạn thảo WYSIWYG. Bạn có thể tạo thụt lề, tiêu đề, danh sách trong trình chỉnh sửa và nó sẽ hiển thị cho bạn văn bản tương ứng ở định dạng đánh dấu. Sau đó, bạn có thể lưu, xuất bản, chia sẻ hoặc tải xuống tệp. Bạn có thể truy cập nó trên trang web của họ - không cần tải xuống!


0

Được rồi, với một chút HTML trong mã R của bạn, tôi đã thực hiện đoạn mã sau để tạo văn bản thuần túy trong R Markdown. Các <h3 style="text-indent: 15em;">thụt lề văn bản 15 không gian. Đối với câu hỏi ban đầu, thay đổi 15 thành 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>

Vì vậy, mã kết quả cho định dạng đầu ra mong muốn của tôi. Tôi đang sử dụng các tab cho tài liệu Markdown và đang tìm cách sắp xếp văn bản () hoạt động.

đầu ra r


0

Để đầy đủ, danh sách gạch đầu dòng sâu hơn:

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

Các cấp độ sâu hơn lồng nhau:

  • Vật phẩm cấp A đầu tiên - không có khoảng trống phía trước ký tự dấu đầu dòng
    • Mục Aa cấp hai - 1 không gian là đủ
      • mục Aaa cấp ba - 5 khoảng trống tối thiểu
    • Mục Ab cấp hai - cũng có thể có 4 khoảng trắng
  • mục B cấp đầu tiên

    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

Nếu bạn đang làm việc với các gạch đầu dòng, hãy thử điều này:

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

Đây là phương pháp tôi sử dụng khi đánh dấu kiểu dáng.


0

Trên gitlab.com, một không gian en duy nhất (U + 2002) theo sau là một không gian em duy nhất (U + 2003) hoạt động tốt.

Có lẽ sự lặp lại hoặc kết hợp khác của các ký tự không gian được tính chính xác cho không gian cũng sẽ đủ.


0

Một trong những vấn đề khi bắt đầu dòng của bạn với các khoảng trắng không bị phá vỡ là nếu dòng của bạn đủ dài để bọc, thì khi nó tràn vào dòng thứ hai, ký tự đầu tiên của dòng tràn với bắt đầu cứng bên trái thay vì bắt đầu dưới ký tự đầu tiên của dòng trên nó.

Nếu hệ thống của bạn cho phép bạn kết hợp HTML với đánh dấu của bạn, một cách vui vẻ và vui vẻ để có được một vết lõm giống như sau:

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

Về mặt ngữ nghĩa trong HTML của bạn, nó là vô nghĩa (một phần UL không có bất kỳ mục LI nào), nhưng tất cả các trình duyệt tôi đã sử dụng chỉ vui vẻ thụt vào giữa những thẻ đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.