Как запретить списку мест для еды Markdown?
Я имею:
- `foo`: some text Default: false
- `barThatIsTooLong`: again some text Default: true
но в Bitbucket README пробельные символы будут съедаться автоматически, и это будет отображаться как:
foo
: некоторый текст По умолчанию: falsebarThatIsTooLong
: снова некоторый текст По умолчанию: правда
Я хотел бы, чтобы значения по умолчанию были выровнены по вертикали.
Как сказать уценке Bitbucket, чтобы не съесть мои пробелы? Это вообще возможно?
1 ответ
Вы, вероятно, не можете, если вы не используете таблицы вместо списков.
| Variable | Description | Default |
| -------------------|---------------- | ------- |
| `foo` | some text | false |
| `barThatIsTooLong` | again some text | true |
Если вы используете сайт, который не удаляет необработанные атрибуты HTML и / или стиля, тогда могут работать встроенные плавающие элементы:
- `foo`: some text <span style="float:right; width:10em;">Default: false</span>
- `barThatIsTooLong`: again some text <span style="float:right; width:10em;">Default: true</span>
Длинный ответ
Свертывание пробелов - это "особенность" HTML, из которых Markdown является подмножеством. "Особенность" часто называют "незначительным пробелом". Идея состоит в том, что все пробелы (пробелы, табуляции, новые строки и т. Д.) Объединяются в один пробел (см. Сводку параметров поведения пробелов). Обратите внимание, что этот пробел выполняется вашим браузером, а не анализатором Markdown. Если вы используете в браузере функцию "просмотреть исходный код" или "проверить", вы увидите, что список HTML сохраняет пробелы:
<ul>
<li><code>foo</code>: some text Default: false</li>
<li><code>barThatIsTooLong</code>: again some text Default: true</li>
</ul>
Другими словами, Markdown не ест ваш пробел, ваш браузер. Поэтому следующий вопрос заключается в том, как сохранить пробелы в HTML и как их можно включить в Markdown. Есть несколько способов сделать это, но, в конце концов, они не будут работать так, как вы хотите.
<pre>
тег сохраняет пробелы, но является тегом уровня блока, а не для встроенного использования. Так как вам нужен только некоторый встроенный пробел, но не весь блок текста, это бесполезно.whitespace:pre
Чтобы получить такой эффект, можно использовать правило CSS, но оно будет выглядеть ужасно в вашей Markdown. Кроме того, Bitbucket может лишить васstyle
теги по соображениям безопасности (так делает).- `foo`: some text<span style="white-space:pre"> </span>Default: false - `barThatIsTooLong`: again some text<span style="white-space:pre"> </span>Default: true
Поскольку неразрывные пробелы не свернуты, вы можете использовать их вместо обычных пробелов. На самом деле, вам нужно, чтобы каждое другое пространство было неразрывным. Но, опять же, это некрасиво. Что еще хуже, поскольку неразрывные пробелы вводятся как объекты HTML, один отображаемый символ имеет длину 6 символов в вашей Markdown, поэтому столбцы не выстраиваются должным образом в исходном документе.
- `foo`: some text Default: false - `barThatIsTooLong`: again some text Default: true
Но даже если вы включите один из вышеперечисленных вариантов, браузер, вероятно, все равно не будет отображать ваш список по вашему желанию. Bitbucket, как и большинство веб-сайтов, не использует моноширинные шрифты для своих веб-сайтов (за исключением блоков кода). Следовательно, ширина каждой буквы в строке не равна, и ваши столбцы все равно не будут выстроены в линию. Обратите внимание, что такая же ситуация существует здесь, на SO. Последний пример выше выглядит так:
foo
: некоторый текст По умолчанию: falsebarThatIsTooLong
: снова некоторый текст По умолчанию: правда
Вы можете увидеть тот же эффект в вашем редакторе. Если вы измените шрифт с моноширинного шрифта на пропорциональный, вы заметите, что столбцы будут смещены. И это смещение будет варьироваться в зависимости от каждого пропорционального шрифта. Поэтому простая настройка количества пробелов не гарантирует правильного выравнивания. Вы можете даже получить смещение на половину ширины.
Конечно, у веб-сайтов всегда есть столбцы. Но эти столбцы не "подделаны" встроенным текстом. Каждый столбец обернут в свой собственный элемент уровня блока, и CSS-правила позиционируют и изменяют размер контейнера, как показано в этом ответе. Но опять же, для этого требуются необработанные HTML и CSS, которые Bitbucket, скорее всего, не допустит по соображениям безопасности.
Еще одним вариантом может быть использование встроенных поплавков:
- `foo`: some text <span style="float:right; width:10em;">Default: false</span>
- `barThatIsTooLong`: again some text <span style="float:right; width:10em;">Default: true</span>
Это вызывает <span>
быть перемещенным к дальнему правому краю содержащего блока (элемент списка). Чтобы всплывающие элементы не выровнены по правому краю, мы включили width
который гарантирует, что каждый <span>
такой же ширины. Фактическая ширина должна быть не меньше ширины самого большого текста в пределах span
, Тем не менее, по-прежнему существует тот факт, что Bitbucket, скорее всего, лишит необработанный HTML по соображениям безопасности.
Однако реализация Markbucket Bitbucket поддерживает простые таблицы. Так что если вы действительно хотите столбцы, вы можете реализовать их в виде таблиц. Конечно, вам нужно иметь строки таблицы, а не элементы списка в дополнение к заголовкам столбцов, которые вы можете или не можете хотеть.
| Variable | Description | Default |
| -------------------|---------------- | ------- |
| `foo` | some text | false |
| `barThatIsTooLong` | again some text | true |