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


86

У синтаксисі вікі MediaWiki (wikipedia), чи є спосіб мати нумерований список із кодовим блоком посередині?

Наприклад:

# Номер 1
# Номер 2
  Відступ із відступом, який стане блоком коду
# Номер 3
No4

Що відбувається в MediaWiki, це те, що у вас виходить щось подібне:

1. Номер 1
2. Число 2
   Відступ із відступом, який стане блоком коду
1. Число 3
2. Число 4

(Зверніть увагу, як "Номер 3" і "Номер 4" скидаються як 1 і 2 ... Схоже, StackOverflow набагато розумніший за MediaWiki, мені довелося помістити свій приклад у теги PRE, щоб це зіпсувалося!)

Я знаю, що ви можете відступити текст за допомогою синтаксису "#:" ...

# Номер 1
# Номер 2
#: Розріз з відступом, який буде просто з відступом
# Номер 3
No4

... але я справді хотів би отримати той самий візуальний клас 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.")


Я навів приклад випуску тут: en.wikipedia.org/w/…
inanutshellus

Відповіді:


72

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

1
Цей вікі-синтаксис спрацював для мене на MediaWiki 1.15.1. Це розміщує трохи додаткового місця навколо рядків коду, але це працює.
Нік Чаммас

1
Я використав той самий синтаксис, який ви запропонували для зображень у нумерованих списках: #:[[File:image.jpg]]між нумерованими елементами. Це допомагає тонні.
Michael Plautz

Працював у мене на MediaWiki 1.17; Дякую!
Ні

Я не впевнений, яку версію MediaWiki ми використовуємо, але це працює. Існує лише одне застереження: якщо перед рядками "pre" ви вставите інший рядок #: з відступом, скажімо, для заголовка чи чогось іншого, "pre" відображається неправильно.
anuragw

Не працює в mediawiki, що використовується GitHub (див. Приклад тут ). Натомість використовуйте HTML-версію.
Джонатан Крос,

34

Використовуйте html:

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

це буде працювати в mediawiki.

Зверніть увагу на прикладі, який я розмістив нижче, саме він </li>змушує його працювати належним чином.


Я відредагував ваш приклад, щоб показати, як це буде працювати: en.wikipedia.org/w/…
Адріан Арчер

Це відома проблема синтаксису wiki.
Адріан Арчер,

Відповідь Кайла повинна бути прийнятою відповіддю. Якщо робити вкладені списки, буде важко використовувати html. Крім того, наведена вище відповідь викладена на стародавній сторінці пісочниці Вікіпедії. Фактичний текст у відповіді на Stackoverflow вище не вирішує проблему OP.
Ні

15

Це чудово працює в 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
правильно, але це не працює, якщо ви не хочете писати весь свій блок-код в один рядок
RockScience

13

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

Помилка 1115 - Новий рядок як термінатор елемента списку викликає клопоти

Помилка 1584 - Метод необхідності для пунктів списку з кількома абзацами, продовження нумерованих списків та присвоєння певних номерів елементам списку

Прочитавши їх, ви знайдете рішення не використовувати синтаксис MediaWiki, а покладатися на «чистий» HTML.


1
У нас також є ціла сторінка « Довідка: Нові рядки та пробіли» та конкретне обговорення цієї проблеми під час вставки розмітки списку .
Немо

3

Я пропоную іншу відповідь: не робіть цього.

Я спробував використати всі способи вирішення цієї основної проблеми Mediawiki і виявив, що всі вони дуже недосконалі. Я навчився жити без цифр, і замість цього:

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

Це набагато простіше і ремонтопридатніше, ніж будь-яке обхідне рішення. Крім того, використання будь-якого посилання на номер може змінюватися в міру редагування кроків - і це потім стає ще однією проблемою обслуговування.


1

У наведеному вище прикладі друге відступ (: :) не потрібно.

Лише один відступ чудово працює (:) наступним чином:

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

Виробляє:

  • 1. один
       деякі речі (лише один рівень відступу, а не два)
       ще трохи речей
  • 2. два


  • 6
    Я знайшов відповідь @ Kyle з :: <pre> на рядки між </pre> для мене ПОТРЕБНО. Тільки 1: як ти кажеш, чи не працював у мене ...
    cellepo

    Ця відповідь не спрацювала для мене в Mediawiki 1.17. Я теж вважаю необхідною відповідь @Kyle.
    Ні

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

    Який відступить у сірому полі відповідно до ваших маркерів / цифр, не використовуючи двокрапки.


    1
    Це не працює для мене, навіть якщо я виправляю порядок закриття тегів. Це порушує нумерацію списку.
    P.Peter

    Те саме з невпорядкованими списками (*). Якщо вони вкладені, вкладання після блок-цитати продовжується неправильно.
    Ні
    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.