Как запретить списку мест для еды Markdown? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть:

- `foo`: some text                       Default: false
- `barThatIsTooLong`: again some text    Default: true

, но в Bitbucket README пробельные символы будут использоваться автоматически, и это будет отображаться как:

  • foo: некоторый текст По умолчанию:false
  • barThatIsTooLong: снова некоторый текст По умолчанию: true

Я бы хотел, чтобы значения по умолчанию были выровнены по вертикали.

Как указать, что Bitbucket уценка неесть мои места?Это вообще возможно?

1 Ответ

0 голосов
/ 05 декабря 2018

Вы, вероятно, не сможете, если не будете использовать таблицы вместо списков.

| Variable           | Description     | Default |
| -------------------|---------------- | ------- |
| `foo`              | some text       | false   |
| `barThatIsTooLong` | again some text | true    |

Если вы используете сайт, который не удаляет необработанные атрибуты HTML и / или стиля, тогда встроенные плавающие объекты могутwork:

- `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.Есть несколько различных способов сделать это, но, в конце концов, они не будут работать так, как вы хотите.

  1. Тег <pre> сохраняет пробелы, но является блочнымтег уровня и не для встроенного использования.Так как вам нужен только некоторый встроенный пробел, сохраненный, а не весь блок текста, это бесполезно.

  2. Правило whitespace:pre CSS может использоваться для получения этого эффекта, но будетвыглядят безобразно в вашей уценке.Кроме того, Bitbucket может удалить ваши теги style по соображениям безопасности (так делает SO).

    - `foo`: some text<span style="white-space:pre">                       </span>Default: false
    - `barThatIsTooLong`: again some text<span style="white-space:pre">    </span>Default: true
    
  3. Поскольку неразрывные пробелы не свернуты, вы можете использовать их вместо обычных пробелов,На самом деле, вам нужно, чтобы каждое другое пространство было неразрывным.Но, опять же, это некрасиво.Хуже того, поскольку неразрывные пробелы вводятся как объекты HTML, один отображаемый символ имеет длину 6 символов в вашей Markdown, поэтому столбцы не выстраиваются должным образом в исходном документе.

    - `foo`: some text &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Default: false
    - `barThatIsTooLong`: again some text &nbsp; &nbsp;Default: true
    

Но даже если вы включите один из вышеперечисленных вариантов, браузер, вероятно, все равно не будет отображать ваш список по вашему желанию.Bitbucket, как и большинство веб-сайтов, не использует моноширинные шрифты для своих веб-сайтов (за исключением блоков кода).Следовательно, ширина каждой буквы в строке не равна, и ваши столбцы все равно не будут выстроены в линию.Обратите внимание, что такая же ситуация существует здесь, на SO.Последний приведенный выше пример выглядит следующим образом:

  • foo: некоторый текст По умолчанию: false
  • barThatIsTooLong: снова некоторый текст По умолчанию: true

Вы можете увидеть тот же эффект в вашем редакторе.Если вы измените шрифт с моноширинного шрифта на пропорциональный, вы заметите, что столбцы будут смещены.И это смещение будет варьироваться в зависимости от каждого пропорционального шрифта.Поэтому простая настройка количества пробелов не гарантирует правильного выравнивания.Вы можете даже получить смещение на половину ширины.

Конечно, на сайтах всегда есть столбцы.Но эти столбцы не «подделаны» встроенным текстом.Каждый столбец обернут в свой собственный элемент уровня блока, и 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    |
...