Як відступити кілька рядків у розмітці Markdown?


360

Я хочу написати кілька рядків тексту. Їх слід форматувати зазвичай, за винятком того, що кожен рядок повинен починатися з 6-го стовпця. Тобто я не хочу, щоб правило форматування блоку коду робило цей фрагмент тексту схожим на код, оскільки я буду використовувати інше форматування, наприклад, жирне обличчя тощо. Як це зробити в Markdown?


12
Прикро, що Маркдаун це не підтримує. Це принципова особливість, якої немає.
Джош Ное

5
про що : ?
Фроде Аксельсен

4
Використання: для списків визначень не є універсальним у реалізаціях Markdown, але якщо ваш варіант Markdown підтримує це, це працює чудово. Ви повинні зробити це справжньою відповіддю.
Алекс Дюпюй

Відповіді:


383

Немає способу зробити це в початкових можливостях розмітки. Однак розмітка дозволяє вбудовувати 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, і вони не відображатимуться як  у джерелі - лише тоді, коли ви рендеріруєте файл. Просто тренуйте клавішу швидкого доступу на вашій ОС, щоб вставити цей символ.
воган

1
Блокові котирування є хорошим способом зробити це (див. @ Відповідь ChrisV)
drevicko

Що робити, якщо я хочу використовувати відступ для вирівнювання тексту. Наприклад, я хочу, щоб друге слово в двох рядках починалося з того самого місця (як кодери, як і з оператором призначення =).
Рой

3
 просто чудово підходить для простого і простого відступу. Жодних змін стилю / шрифту, лише відступ 👍
Зелений

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), але не для цілої. Чи є чистий спосіб це зробити?
Менг Лу

@MengLu У мене така ж вимога. Ви це взагалі розібралися?
життєвий баланс

1
Набагато краща за структуру, ніж прийнята відповідь
irowe

Пам'ятайте, що розмітка може приймати HTML - це частина специфікації. Тож для конкретного списку нічого не заважає використовувати HTML для вирішення цієї проблеми. Просто пам’ятайте, що ви можете мати HTML у розмітці, але не Markdown у своїх фрагментах HTML. <ul> <li style = "list-style-type: none;"> Ваш відступний вміст, який повинен бути всім HTML </li> </ul>
Hamish Willee,

2
Це здається набагато кращим, ніж прийнята мені відповідь. Це дає вам більш тонкий контроль над відрезаним текстом, не кажучи вже про більш читабельний і простіший у обслуговуванні
Arepo

36

Це стара нитка , але я б подумав, що найкращі для цього блокові котирування markdown ('>'):


21
Це хороше рішення, якщо вам не потрібно вводити відступ на вказану суму, і вам не байдуже отримати інший колір фону або інші стилі, які можуть поєднуватися з блок-котируваннями. Зрештою, блок-котирування мають смислове призначення, і вони найкращі, якщо ви насправді хочете щось поставити як цитату.
alegscogs

20
Неправильно. Блок-котирування (>) - це створення лапок, а не простий відступ. Він абсолютно різний за стилями.
Зелений

25

Подивіться, чи це ">" допомагає:

Line 1
> line 2 
>> line 3

ось солодкий квиток у ноутбуках юпітерів із використанням розмітки з латексу
vwvan

2
Дивіться коментар вище: "Неправильно. Блок-котировки (>) - це створення лапок, а не простий відступ. Це абсолютно різні стилі"
Користувач, який не є користувачем

22

зробіть вкладку, потім знак +, потім пробіл, а потім ваш вміст

Тому

* level one + level two tabbed


розмітка github / bitbucket підтримує аналогічне правило відступу, без +:[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 в очистити читається код
    Знову використовуючи нерозривні прогалини :)

Візуальне зображення нерозривного простору (або жорсткого простору) зазвичай є звичайним простором, проте його представлення 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.

Проблема

Деякі текстові редактори можуть конвертувати жорсткі пробіли у загальні простори при операціях копіювання та вставлення, тому будьте обережні.


ВАРІАНТ + Пошук простору активований прожектор
блукати95

Не може бути, лише якщо ви змінили ярлики за замовчуванням. Поле пошуку в центрі уваги запускає COMMAND-SPACE (клавіша COMMAND - аналог ключа Windows).
Нерозривний

На моєму Mac у мене є ярлик на Option + Space, але натомість Shift + Option + Space працює добре.
Dag Høidahl

Лінійні обгортання з довгими реченнями з цим виглядають негарно.
Майк Корменді

4

Перевірте, чи можете ви використовувати HTML для розмітки. Можливо, це у вас виходить:

  • <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 або якийсь езотеричний код розмітки, але я можу придумати кращі причини, щоб порушити сумісність зі стандартною розміткою.)


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

Ви можете побачити це в дії, скопіювавши вищевказані приклади на цей сайт: Стек редагування відмітки редактора

Знімок екрана DL-рендерінгу в редагуванні стека


1
& Nbsp; працював на відмінно. Дякую
Кевін Мейсон

0

Деякі реалізації Markdown, схоже, використовують ~символ для відступу.


0

Іншою альтернативою є використання редактора розмітки, як StackEdit . Він перетворює HTML (або текст) у розмітку в редакторі WYSIWYG. Ви можете створити відступи, заголовки, списки в редакторі, і він покаже вам відповідний текст у форматі розмітки. Потім можна зберегти, опублікувати, поділитися або завантажити файл. Ви можете отримати доступ до нього на їхньому веб-сайті - не потрібно завантажувати!


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 з відміткою, веселий і веселий спосіб отримання відступу такий:

<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), але всі браузери, які я використовував, просто радісно вказують, що між цими тегами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.