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


в синтаксисе Вики 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, мне пришлось поместить свой пример в предварительные теги, чтобы он испортился!)

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

# 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.")

7 77

7 ответов:

вы можете попробовать следующий синтаксис Вики, он работает для меня на 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>

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

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

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

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

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

ошибка 1115-новая строка как пункт списка Терминатор хлопотно

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

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

Это прекрасно работает в 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.

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

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

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

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

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

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

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

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

выдает:

  • 1. один
       some stuff (just one indent level, not two)
       some more stuff
  • 2. два
  • вы также можете попробовать добавить тег " 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>
    

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