Блок кода в нумерованном списке (синтаксис Wiki) - PullRequest
82 голосов
/ 14 февраля 2011

В синтаксисе вики MediaWiki (wikipedia) есть ли способ иметь нумерованный список с блоком кода в середине?

Например:

# Number 1
# Number 2
  Indented section that will become a code block
# Number 3
# Number 4

Что происходит в MediaWikiвы в конечном итоге что-то вроде этого:

1. Number 1
2. Number 2
   Indented section that will become a code block
1. Number 3
2. Number 4

(Обратите внимание, как «Номер 3» и «Номер 4» сбрасываются как 1 и 2 ... Похоже, что StackOverflow гораздо умнее, чем MediaWiki, яМне пришлось поместить мой пример в теги PRE, чтобы он облажался!)

Я знаю, что вы можете сделать отступ текста, используя синтаксис "#:" ...

# Number 1
# Number 2
#: Indented section that will merely be indented
# Number 3
# Number 4

... но я действительно хотел бы получить тот же визуальный класс CSS для своего кода, даже если он находится в нумерованном списке.

Он становится еще интереснее с вложенными списками.Этот синтаксис ...

# MainEntry 1
## Number 1
## Number 2
# MainEntry 2
## Number 1
## Number 2
  Indented section that will become a code block
## Number 3
## Number 4

... становится ...

1. MainEntry 1
   1. Number 1
   2. Number 2
2. MainEntry 2
   1. Number 1
   2. Number 2
      Indented section that will become a code block
1. 1. Number 3
   2. Number 4

(обратите внимание, что "Number 3" теперь равно "1. 1.")

Ответы [ 7 ]

70 голосов
/ 05 декабря 2011

Вы можете попробовать следующий синтаксис вики, он работает для меня на 1.17

<code># one
#:<pre>
#::some stuff
#::some more stuff
# два

Это не идеально, потому что в итоге вы получаете более отступ, но он позволяет использовать синтаксис вики для правильно отформатированных предварительных блоков в нескольких строках.

Как упоминалось ранее, другой правильный способ будет использовать разметку HTML.

<code><ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff
три
33 голосов
/ 15 февраля 2011

Использовать HTML:

<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

это будет работать в MediaWiki.

Обратите внимание на пример, который я разместил ниже, это </li>, который заставляет его работать правильно.

14 голосов
/ 21 октября 2013

Это прекрасно работает в MediaWiki 1.17.0:

<code>===Alternative way of using pre in numbered lists.===    
# Numbered line 1.
# Numbered line 2.<pre>code line 1&#10;code line 2
# Нумерованная строка 3.

Секрет в том, чтобы заменить символы новой строки сущностью и записать все в одну строку.1006 *

13 голосов
/ 03 марта 2011

Ваша проблема является предметом двух ошибок, исправленных в трекере ошибок MediaWiki в конце 2004 и 2005 годов:

Ошибка 1115 - Новая строка в качестве ограничителя элемента списка вызывает затруднения

Ошибка 1584 - Нужен метод для многопараметрических элементов списка, продолжения нумерованных списков и присвоения определенных номеров элементам списка

Прочитав их, вы обнаружите, что решение состоит не в том, чтобы использовать синтаксис MediaWiki, а в том, чтобы полагаться на «чистый» HTML.

2 голосов
/ 25 октября 2016

Я предлагаю другой ответ: не делайте этого.

Я попытался использовать все обходные пути для этой основной проблемы Mediawiki и обнаружил, что все они очень несовершенны. Я научился жить без номеров, а вместо этого:

  • Используйте восклицательный знак (*) вместо (#) для всех моих списков
  • Продолжать использовать начальный пробел для всех моих блоков кода

Это гораздо проще и проще, чем любой обходной путь. Кроме того, использование любой ссылки на номер может быть изменено при редактировании шагов, и это становится другой проблемой обслуживания.

1 голос
/ 01 мая 2013

В приведенном выше примере второй абзац (: :) не требуется.

Просто один абзац работает нормально (:) следующим образом:

<code># one
#:<pre>
#:some stuff
#:some more stuff
# two

Производит:

1.один
   some stuff (just one indent level, not two)
   some more stuff
2.два
0 голосов
/ 16 января 2014

Вы также можете попробовать добавить тег «blockquote», окружающий тег «pre», чтобы он выглядел немного более отточенным.

<code>== HAProxy Configuration ==
#'''File:''' /etc/haproxy/haproxy.cfg
<blockquote>
<pre>
global
  log 127.0.0.1 local1 notice
  maxconn 4096
  #daemon
  debug
  crt-base /usr/local/haproxy/ssl
</blockquote>

Который пометит серый квадрат в соответствии с вашими пулями / числами без двоеточий.

...