1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gsw945-mindoc

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

МинДок: введение

Статус сборки Статус сборки

МинДок — это простая и удобная система управления документацией, разработанная для IT-команд.

Предшественником МинДока является SmartWiki — система управления документами, основанная на PHP-фреймворке Laravel. Однако из-за сложности развёртывания на PHP для обычных пользователей, было решено использовать Golang для разработки МинДока. Это делает его более удобным для развёртывания и использования.

Цель разработки — создать систему для управления и обмена проектными интерфейсами, основанную на Kancloud. Она может использоваться для хранения документации по повседневным интерфейсам, базам данных, справочникам и другим документам. МинДок также включает в себя функции управления проектами, пользователями и разрешениями, что удовлетворяет потребности большинства малых и средних команд в управлении документацией.

Демонстрационные сайты и документация:


Разработка, поддержка и использование

— Автор lifei6671 создал МинДок и долгое время поддерживал его. — Из-за работы и других обязательств у автора не хватает времени на постоянное поддержание МинДока, поэтому он передал его сообществу (github-организация mindoc-org) 23 марта 2021 года. Теперь ожидается, что заинтересованные разработчики присоединятся к mindoc-org для поддержки МинДока. — Если у вас есть вопросы или проблемы, пожалуйста, создайте Issues. Мы также приглашаем пользователей и вкладчиков присоединиться к QQ-группе 1051164153. МинДок: группа для использования и разработки — Для тех, кто интересуется разработкой, следите за Development: * Todo List; * Work in progress; * Review in progress. — МинДок разработан на основе beeego, документацию по которому можно найти по адресу: https://github.com/beego/beego-doc/tree/main/docs/zh. — Особое заявление: — Оригинальный автор lifei6671 удалил информацию о личных пожертвованиях 6 августа 2021 года (см.: 1a179179c1fe4d0d4db95e0b757d863aee5bf395). — На данный момент (2023-03-27), mindoc-org ещё не опубликовал информацию о пожертвованиях, поэтому будьте осторожны.


Установка и использование

Если на вашем сервере не установлен Golang, вам необходимо вручную установить переменную окружения ZONEINFO со значением MinDoc/lib/time/zoneinfo.zip.

Для получения дополнительной информации см. руководство пользователя: Руководство пользователя МинДока.

Если у вас нет опыта работы с Golang, вы можете загрузить скомпилированную программу с https://github.com/mindoc-org/mindoc/releases.

Если у вас есть опыт работы с Golang, рекомендуется выполнить компиляцию и установку, требуя версию Golang не ниже 1.15.1 (требуется поддержка CGO, go mod и import _ "time/tzdata") (рекомендуется использовать версию Go 1.18.1).

Примечание: на CentOS7 GLibC имеет низкую версию, и обычная компиляция не работает. Необходимо самостоятельно скомпилировать исходный код или использовать musl-компиляцию.

Обычная компиляция

# Клонирование исходного кода
git clone https://github.com/mindoc-org/mindoc.git
# Установка пакетов go
go mod tidy -v
# Компиляция (sqlite требует поддержки CGO)
go build -ldflags "-w" -o mindoc main.go
# Инициализация базы данных (перед этим необходимо настроить conf/app.conf)
./mindoc install
# Запуск
./mindoc
# Выполнение в режиме разработки
bee run

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

./mindoc update

В МинДоке, если используется MySQL для хранения данных, кодировка должна быть utf8mb4_general_ci. Перед установкой проекта настройте конфигурацию базы данных в каталоге conf/app.conf.

При использовании SQLite для базы данных просто настройте путь к базе данных в файле конфигурации.

Если каталог conf не содержит app.conf, переименуйте файл app.conf.example в app.conf.

По умолчанию программа автоматически инициализирует суперпользователя с именем admin и паролем 123456. После входа в систему рекомендуется изменить пароль.

Компиляция без зависимости от gLibC в Linux

Установка musl-gcc

wget -c http://musl.libc.org/releases/musl-1.2.2.tar.gz
tar -xvf musl-1.2.2.tar.gz
cd musl-1.2.2
./configure
make
sudo make install

Компиляция mindoc с использованием musl-gcc

go mod tidy -v
export GOARCH=amd64
export GOOS=linux
# Настройка использования musl-gcc
export CC=/usr/local/musl/bin/musl-gcc
# Настройка версии
export TRAVIS_TAG=temp-musl-v`date +%y%m%d`
go build -v -o mindoc_linux_musl_amd64 -ldflags="-linkmode external -extldflags '-static' -w -X 'github.com/mindoc-org/mindoc/conf.VERSION=$TRAVIS_TAG' -X 'github.com/mindoc-org/mindoc/conf.BUILD_TIME=`date`' -X 'github.com/mindoc-org/mindoc/conf.GO_VERSION=`go version`'"
# Проверка
./mindoc_linux_musl_amd64 version

Выполнение в фоновом режиме на Windows

Используйте mindoc-daemon. Слой (https://github.com/sentsin/layer) — это фреймворк для всплывающих окон.

Highlight.js (https://github.com/highlightjs/highlight.js) — библиотека для выделения кода.

to-markdown Turndown (https://github.com/domchristie/turndown) — библиотека, которая преобразует HTML в Markdown.

quill — редактор с форматированием текста

WangEditor (https://github.com/wangeditor-team/wangEditor) — редактор с форматированием текста. Ссылки: * WangEditor v4.7 — учебник по редактору с форматированием текста (https://www.bookstack.cn/books/wangeditor-4.7-zh). * Проблема: регистрация меню слишком сложная #2493 (https://github.com/wangeditor-team/wangEditor/issues/2493). Инструменты: https://babeljs.io/repl + @babel/plugin-transform-classes.

Vue.js (https://github.com/vuejs/vue) — фреймворк.

Основные функции

  • Управление проектами: редактирование проектов, добавление участников, сортировка проектов и т. д.
  • Управление документами: добавление и удаление документов.
  • Управление комментариями: управление комментариями к документам и собственными комментариями.
  • Управление пользователями: добавление пользователей, отключение пользователей, изменение личных данных и т. п.
  • Управление правами пользователей: изменение ролей пользователей.
  • Шифрование проектов: настройка статуса проекта (открытый или закрытый), доступ к закрытым проектам через токен.
  • Настройка сайта: переключение между языками, включение анонимного доступа, использование верификационных кодов и т. д.

Участие в разработке

Мы приглашаем вас сообщать о проблемах или вносить предложения в проект MinDoc на GitHub. Если вы не знакомы с моделью разработки Fork and Pull на GitHub, вы можете прочитать документацию GitHub (https://help.github.com/articles/using-pull-requests), чтобы получить больше информации.

Об авторе [lifei6671]

Не совсем чистый PHP-разработчик, не совсем свободный программист на языке Go.

Дополнительная информация о развёртывании

  • Если вы развёртываете систему внутри сети и draw.io не может использовать внешний интернет, вам нужно запустить war-пакет с помощью tomcat (см. https://github.com/jgraph/drawio). После этого необходимо изменить TODO-строку в markdown.js, чтобы она соответствовала нужной ссылке.
  • Для защиты глаз мы добавили возможность переключения тем в редакторе. Это можно найти в editormd.js и markdown_edit_template.tpl.
  • (Требуется перекомпиляция) Чтобы очистить текст и изображения, которые были удалены из документа или на которые есть ссылки, но они остались в документе, мы добавили интерфейс очистки. Необходимо перекомпилировать программу. После перекомпиляции нужно обновить три файла: conf/lang/en-us.ini, zh-cn.ini; attach_list.tpl. Если вы не хотите перекомпилировать, вы также можете выполнить очистку вручную, используя database/clean.py.
  • При использовании nginx для двухуровневого развёртывания, например, с путём yourpath/, необходимо внести следующие изменения:
    • В conf/app.conf измените baseurl="/yourpath".
    • В static/js/kancloud.js замените url: "/comment/xxxxx" на url: "/yourpath" + "/comment/xxxxx". Это нужно сделать в двух местах.
    • Пример настройки прокси-сервера nginx:
Добавить:
location /yourpath/ {
rewrite ^/yourpath/(.*) /$1 break;
proxy_pass http://127.0.0.1:8181;
}

Обратите внимание, что используется 127.0.0.1. Вы должны заменить его на свой собственный адрес, если вы используете docker для развёртывания. В этом случае вам также нужно будет запустить mindoc в docker. Вот пример конфигурации docker-compose для проксирования (docker-nginx проксирует запуск mindoc):

version: '3'
services:
mynginx:
image: nginx:latest
ports:
- "8880:80"
command: 
- bash
- -c
- |
service nginx start
cd /src/mindoc/ && ./mindoc
volumes:
- ..:/src
- ./nginx:/etc/nginx/conf.d

Структура каталогов:

onefolder
|
- docker
|
  - docker-compose.yml
  - nginx
  |
   - mynginx.conf
|
 - mindoc
|
  - database/
  - conf/
  ...

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Реализованная на Golang система управления онлайн-документацией интерфейса, основанная на фреймворке beego. (https://github.com/mindoc-org/mindoc код-резерв на коде Cloud, только для чтения) Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/gsw945-mindoc.git
git@api.gitlife.ru:oschina-mirror/gsw945-mindoc.git
oschina-mirror
gsw945-mindoc
gsw945-mindoc
master