Как вы делаете "инфобоксы" в MediaWiki?

Я делаю вики с помощью Mediawiki. Я видел правую боковую панель каждой страницы в других вики. Вот так: http://minecraft.gamepedia.com/Diamond_Ore На правой боковой панели находится информация о том, что объясняется в вики-публикации, или о чем-либо еще.

Я хочу знать, возможно ли сделать это на каждой странице и как?

Я создал страницу примера: http://moreplus.mwzip.com/wiki/ExamplePage Это моя вики, и я хочу знать, как я могу добавить боковую панель на страницу.

3 ответа

Решение

Информационные блоки - это просто таблицы с плавающей стороной справа и некоторым дополнительным форматированием.

{| style="float:right;border:1px solid black"
| My fantastic infobox
|-
| More info
|}

Для лучшей практики вы должны включить форматирование инфобокса в класс в CSS вашей вики и определить шаблон инфобокса вместо создания отдельных таблиц на каждой странице.

Чтобы создать простой, но элегантный и гибкий информационный блок, сначала убедитесь, что установлено расширение ParserFunctions. Затем создайте шаблон "Infobox" (или любой другой) со следующей комбинацией HTML и wikitext:

<div class="infobox">
<div class="infobox-title">{{{title|{{PAGENAME}}}}}</div>{{#if:{{{image|}}}|
<div class="infobox-image">[[File:{{{image}}}|300px]]</div>}}
<table>{{#if:{{{param1|}}}|<tr>
    <th>Parameter 1</th>
    <td>{{{param1}}}</td>
</tr>}}{{#if:{{{param2|}}}|<tr>
    <th>Parameter 2</th>
    <td>{{{param2}}}</td>
</tr>}}{{#if:{{{param3|}}}|<tr>
    <th>Parameter 3</th>
    <td>{{{param3}}}</td>
</tr>}}{{#if:{{{param4|}}}|<tr>
    <th>Parameter 4</th>
    <td>{{{param4}}}</td>
</tr>}}{{#if:{{{param5|}}}|<tr>
    <th>Parameter 5</th>
    <td>{{{param5}}}</td>
</tr>}}</table>
</div>

Замените "param1", "param2" и т. Д. Теми параметрами, которые вы на самом деле хотите использовать для своего информационного блока, такими как "имя", "дата рождения" и т. Д. Если вам нужно больше параметров, просто продублируйте (с помощью copy-paste) один из существующих параметров и измените его.

Затем перейдите в MediaWiki:Common.css и добавьте некоторые стили (если у вас нет необходимых прав для редактирования MediaWiki:Common.css, вам придется добавить этот CSS как встроенный стиль в HTML в шаблоне):

.infobox {
    background: #eee;
    border: 1px solid #aaa;
    float: right;
    margin: 0 0 1em 1em;
    padding: 1em;
    width: 400px;
}
.infobox-title {
    font-size: 2em;
    text-align: center;
}
.infobox-image {
    text-align: center;
}
.infobox th {
    text-align: right;
    vertical-align: top;
    width: 120px;
}
.infobox td {
    vertical-align: top;
}

Наконец, перейдите на вики-страницы, для которых требуется информационный блок, и скопируйте следующий вики-текст, заменив "Infobox" именем, которое вы дали своему шаблону, а "param1", "param2" и т. Д. Параметрами, которые вы определили ранее:

{{Infobox
|title = 
|image = 
|param1 = 
|param2 = 
|param3 = 
|param4 = 
|param5 = 
}}

Вы можете безопасно оставить пустыми или удалить любые параметры, которые вы не используете, поскольку все они являются необязательными. Если заголовок не указан, по умолчанию в информационном поле будет указано имя страницы, которое обычно соответствует желаемому.

Мне приходилось разрабатывать подобные инфобоксы для бесчисленных клиентов, и я постепенно пришел к этому решению как оптимальному с точки зрения сложности и гибкости. Надеюсь, это поможет кому-то!

PS для любых продвинутых пользователей: я рекомендую использовать HTML вместо wikitext для определения основной таблицы, потому что таким образом мы избегаем конфликтов с каналами #ifs. В Википедии этот конфликт можно избежать с помощью шаблона {{!}}, Который вставляет канал, но в результате получается нечитаемый викитекст.

Не уверен, насколько свежа запись @Sophivorus - даты нет, поэтому я предполагаю, что она из 2018 года, если нет - извините.

Я искал учебник, который объяснил бы неприятные инфобоксы и процесс их создания без удачи. Сама вики не помогла. После 2,5 вечера я наконец сдался и нашел должность Софивора. Это подсказало мне, что, возможно, создание инфобокса в HTML с простым CSS - это лучшая идея, более простая идея. Я подумал, что вики должен преобразовать свои инфобоксы s&&&ty в HTML, и я не ошибся!:) У меня есть хороший информационный блок без изучения монстра scribunto-lua-srua-wikitext в вики и большого знания HTML и CSS.

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

  1. Перейдите на вики-страницу с нужным вам информационным блоком (в моем случае это страница Formica fusca).
  2. Выберите все содержимое информационного блока и щелкните правой кнопкой мыши его заголовок в верхней части информационного блока.
  3. Выберите для проверки элемента (наименование может отличаться в разных браузерах - я использую Opera)
  4. Посмотрите направо (окно открыто).
  5. Наведите курсор на записи в правом окне и найдите <table class"[..] маркер. Обратите внимание, что весь информационный блок был выделен, когда вы <table class="
  6. Щелкните правой кнопкой мыши по нему и перейдите в "Копировать", затем выберите "Копировать externalHTML".
  7. Создайте шаблон: Пример имени здесь на вашей странице в MediaWiki, отредактируйте его и поместите туда скопированный HTML-код. Отредактируйте это как хотите.
  8. Как сказал Софивор, зайдите в MediaWiki:Common.css и добавьте немного стилей - вы можете использовать код, который он упомянул.
  9. Styling. В HTML-коде добавьте классы к элементам, которые вы хотите оформить через CSS-страницу (с шага 8). Вам понадобятся как минимум такие: 1) дать весь инфобокс (в этом случае это будет <table class="infobox" bla bla bla>) 2) заголовки / заголовки класса infobox-субтитры (или что угодно; <th class="infobox-subtitle" bla bla>) 3) присвойте субтитру класс, если вы хотите субтитры (<td class="infobox-subtitle" bla bla>).
  10. Скопируйте CSS отсюда или создайте свой код в CSS самостоятельно, используя классы, упомянутые выше

    .infobox {
    background-color: #ffff00;
    border: 2px solid #008600;
    float: right;
    margin: 0 0 1em 1em;
    padding: 1em;
    width: 400px;
    }      
    .infobox-title {
    border: 1px solid #000000;
    font-size: 1.5em;
    text-align: center;
    background-color: #ff0000;
    }
    .infobox-subtitle {
    font-size: 1em;
    text-align: center;
    background-color: #fff00;
    }
    .infobox-image {
    text-align: center;
    background-color: #ffff00;
    }
    

В HTML: в тех местах, где вы хотите, чтобы пользователь добавил информационную вставку {{{somenamehere}}}, а затем создал.. шаблон, который вам нужно будет разместить на других страницах, чтобы вызвать шаблон Examplenamehere:

 {|Examplenamehere
 |{{{somenamehere1}}}
 |{{{somenamehere2}}}
 |etc. etc.
 |}

Чтобы разместить заголовок с именем страницы: {{{nazwa|{{PAGENAME}}}}} вместо заголовка вверху таблицы.

Если вы хотите проверить или скопировать мой шаблон, перейдите по ссылке: http://wiki.mrowki.ovh/index.php?title=Szablon:Opis и проверьте страницу

Другие вопросы по тегам