Блок кода в пронумерованном списке (синтаксис Wiki)

В синтаксисе wiki для википедии 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" reset равны 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

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

Ответ 1

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

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

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

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

<ol>
<li>one</li>
<li>two</li>
<pre>some stuff
some more stuff</pre>
<li>three</li>
</ol>

Ответ 2

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

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

он будет работать в mediawiki.

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

Ответ 3

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

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

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

Прочитав их, вы найдете решение не использовать синтаксис MediaWiki, а полагаться на "чистый" HTML.

Ответ 4

Это отлично работает в MediaWiki 1.17.0:

===Alternative way of using pre in numbered lists.===    
# Numbered line 1.
# Numbered line 2.<pre>code line 1&#10;code line 2</pre>
# Numbered line 3.

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

Ответ 5

В приведенном выше примере второй отступ (::) не нужен.

Только один отступ работает отлично (:) следующим образом:

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

Выдает:

1. один
   some stuff (just one indent level, not two)
   some more stuff
2. два

Ответ 6

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

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

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

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

Ответ 7

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

== 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>
</pre>

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