This page, or parts of it, are still untranslated. Please translate it to the appropriate language (русский).
WikiForum создаёт форум, похожий на обсуждения на обычной вики-странице с поддержкой вики-разметки.
Попробуйте WikiForum здесь: WikiForum/demo
Installation
Начало
Данное руководство позволит вам создать форум с базовыми функциями (загрузчик и тема оформления по умолчанию).
- Site-wide installation
- Add this to MediaWiki:ImportJS:
dev:WikiForum/core.js dev:WikiForum/theme/default.js dev:WikiForum/loader/default.js
- Usage
- Форум загрузится в пространстве имён
Форумпо умолчанию.
Кастомный загрузчик
Подраздел ещё не написан
Кастомная тема
Подраздел ещё не написан
Технические детали
Элементы
- parser
- Функции, ответственные за парсинг исходного кода в WikiForum-Element.
- updater
- Функции, ответственные за добавление, удаление и изменение тем.
- renderer
- Функции, ответственные за рендер элементов в HTML в зависимости от настроек темы.
- theme
- функции, ответственные за определение HTML-структуры страниц форума.
- WikiForum-Element
- Массив, содержащий абстрактную структуру форума. Обеспечивает метаданные для updater и renderer.
Структурированный пример
Вики-разметка страницы
<!--
- WikiForum Container
-
- Total Forums: 1
- Last modiflied: 2020-12-27T08:08:03.000Z
- Last user: User4
-
- DO NOT EDIT DIRECTLY
-->
<!-- start forum#1 -->
<div class="wiki-forum" data-depth-max="3" data-title="Forum Topic 1" data-page-name="Forum:Sandbox">
<!-- start thread#1 -->
<div class="forum-thread" data-time-publish="2020-12-27T08:08:00.000Z" data-user-author="User1">
<div class="forum-content">
<!-- start content -->
Я первая тема на вики-форуме!
Привет, WikiForum. WikiForum обеспечивает структурированную на стороне клиента при помощи JavaScript.
<!-- end content -->
</div>
</div>
<!-- end thread#1 -->
<!-- start thread#2 -->
<div class="forum-thread" data-time-publish="2020-12-27T08:08:01.000Z" data-user-author="User2">
<div class="forum-content">
<!-- start content -->
О, классно. Я второй этаж~
<!-- end content -->
</div>
<!-- start thread#2-1 -->
<div class="forum-thread" data-time-publish="2020-12-27T08:08:02.000Z" data-user-author="User3">
<div class="forum-content">
<!-- start content -->
А я ответ на втором этаже.
<!-- end content -->
</div>
</div>
<!-- end thread#2-1 -->
</div>
<!-- end thread#2 -->
<!-- start thread#3 -->
<div class="forum-thread" data-time-publish="2020-12-27T08:08:03.000Z" data-user-author="User4">
<div class="forum-content">
<!-- start content -->
<span style="font-size: large">Ну а ещё можно использовать вики-разметку на форуме:</span>
'''жирный''' ''курсив'' <del>зачёркнутый</del>
[[Ссылка]] https://example.com
* Элемент списка 1
* Элемент списка 2
* Элемент списка 3
Затата
[[File:Example.jpg|thumb|left|Это изображение]]
<!-- end content -->
</div>
</div>
<!-- end thread#3 -->
</div>
<!-- end forum#1 -->
<!-- end WikiForum -->
WikiForum-Element
[{
"forumid": "1",
"meta": {
"pageName": "Forum:Demo",
"title": "Forum Topic 1",
"depthMax": 3
},
"threads": [
{
"threadid": "1",
"content": "Я первая тема на вики-форуме!\n\nПривет, WikiForum. WikiForum обеспечивает структурированную на стороне клиента при помощи JavaScript.",
"meta": {
"userAuthor": "User1",
"timePublish": "2020-12-27T08:08:00.000Z"
}
},
{
"threadid": "2",
"content": "О, классно. Я второй этаж~",
"meta": {
"userAuthor": "User2",
"timePublish": "2020-12-27T08:08:01.000Z"
},
"threads": [
{
"threadid": "2-1",
"content": "А я ответ на втором этаже.",
"meta": {
"userAuthor": "User3",
"timePublish": "2020-12-27T08:08:02.000Z"
}
}
]
},
{
"threadid": "3",
"content": "<span style=\"font-size: large\">Ну а ещё можно использовать вики-разметку на форуме:</span>\n\n'''жирный''' ''курсив'' <del>зачёркнутый</del>\n\n[[Ссылка]] https://example.com\n\n* Элемент списка 1\n* Элемент списка 2\n* Элемент списка 3\n\n Затата\n\n[[File:Example.jpg|thumb|left|Это изображение]]",
"meta": {
"userAuthor": "User4",
"timePublish": "2020-12-27T08:08:03.000Z"
}
}
]
}]
Использованные технологии
- EcmaScript 2020
- babel
- stylus
- webpack
Разработка
Совет: для начала вам потребуется установить Git, Node.js и yarn.
# Клонировать репозиторий
git clone https://github.com/Fandom-zh/Gadget-WikiForum.git
cd Gadget-WikiForum
# Установка зависимостей
yarn install
# Запуск dev-версии}
yarn dev # -> ./dev/
# Вы можете запустить liveServer vscode по адресу http://127.0.0.1:1005
# Сборка релиз-версии
yarn build # -> ./public/dist/*