it-swarm-ru.tech

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

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

Например:

 # Номер 1 
 # Номер 2 
 Раздел с отступом, который станет кодовым блоком 
 # Номер 3 
 # Номер 4 

Что происходит в MediaWiki, так это то, что у вас получается что-то вроде этого:

 1. Номер 1 
 2. Номер 2 
 Раздел с отступом, который станет кодовым блоком 
 1. Номер 3 
 2. Номер 4 

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

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

 # Номер 1 
 # Номер 2 
 #: Раздел с отступом, который будет просто с отступом 
 # Номер 3 
 # Номер 4 

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

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

 # MainEntry 1 
 ## Номер 1 
 ## Номер 2 
 # MainEntry 2 
 ## Номер 1 
 ## Номер 2 
 Раздел с отступом, который станет кодовым блоком 
 ## Номер 3 
 ## Номер 4 

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

 1. MainEntry 1 
 1. Номер 1 
 2. Номер 2 
 2. MainEntry 2 
 1. Номер 1 
 2. Номер 2 
 Раздел с отступом, который станет кодовым блоком 
 1. 1. Номер 3 
 2. Номер 4 

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

82
inanutshellus

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

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

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

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

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

Используйте HTML:

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

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

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

33
Adrian Archer

Это отлично работает в 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.

Секрет в том, чтобы заменить символы новой строки.

14
John

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

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

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

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

13
Antoine 'hashar' Musso

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

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

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

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

2
moodboom

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

Хорошо работает только один отступ (:):

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

Производит:

  • 1. один
     некоторые вещи (только один уровень отступа, а не два) 
     некоторые вещи
    • 2. два
  • 1
    Kory Lovre