Блок коду в нумерованому списку (синтаксис 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.