跳转到主要内容

Misago 是一个使用Python和ES6编写的现代、功能齐全的论坛应用程序,由Django和React.js提供支持。它即插即用,可以独立运行或连接到具有内置OAuth 2客户端的现有站点。

项目描述

Misago

Test Coverage Works on Python 3.12 Community Chat

开发状态: 🍌 香蕉 🍌

Misago 旨在成为完整、功能丰富且现代的论坛解决方案,它不畏惧对论坛软件应该如何构建及其应做什么的常见和过时的观点说“不”。

截图

Forum index

Thread view

生产使用

Misago 实现了在实时互联网论坛上被认为是“必须拥有”的所有功能

  • 您的用户可以注册账户、设置头像、更改选项并编辑个人资料。他们有重置忘记密码的选项。
  • 使用Facebook、Google、Github、Steam、Blizzard.net或任何其他50多个支持的OAuth提供者登录。
  • 网站管理员可能需要用户通过发送的激活链接确认电子邮件地址的有效性,或者将用户账户激活限制为管理员操作。他们可以使用自定义问答挑战、ReCAPTCHA、Stop Forum Spam或IP黑名单来对抗垃圾邮件注册。有大量的设置可供控制用户账户行为,例如用户名长度或头像限制。
  • 可以创建无限数量和深度的子分类。
  • 可以使用GitHub风格的Markdown、BBCode子集或两者兼用来编写消息。
  • 存在功能让网站成员知道其他用户是在线、离线还是被禁止。个人用户有设置可以隐藏他们的活动不被管理员看到。
  • 完整的审核工具集,允许管理员批准的审核员编辑、移动、隐藏、批准、删除或关闭用户发布的内容。这还包括删除或阻止用户账户或头像的选项。
  • 禁用系统允许您禁止现有用户以及禁止某些用户名、电子邮件或IP地址注册账户。
  • 权限系统允许您根据用户的等级、角色或所在类别控制哪些功能对用户可用。
  • 精确的阅读跟踪器允许用户发现带有新帖子的线程,以及让审核员发现未批准的回复和非审核员发现已批准的帖子。
  • 私有线程功能允许用户创建只有他们和邀请的人才能看到的线程。
  • 基于Python的个人资料字段框架,允许网站所有者定义用户需要填写自定义字段,并提供强大的自定义选项,以满足自定义要求、显示或验证逻辑。
  • 丰富的投票系统,允许公私投票者、单选和多选以及允许更改投票或限制投票时间的投票。
  • 发布附件,完整缩略图和移除GIF动画。
  • 将问题线程中的帖子标记为最佳答案,带来基本的问答功能。
  • 帖子编辑日志允许您看到用户消息过去的样子,以及还原功能,保护您免受恶意用户清空帖子内容。
  • 用户和分类的审核队列,允许您在内容对社区的其他成员可见之前对其进行审核。
  • 使用Bootstrap开发的自定义主题。
  • 实现GDPR合规性的功能和设置。
  • 使用实现的OAuth2客户端和JSON API将论坛与您的网站集成。

未来版本将会有更多功能。

  • 论坛全局JS路由进一步减少导航时间。
  • 用GraphQL API替换当前API,以实现更易于集成和扩展。
  • 插件系统用于扩展核心包的新功能。
  • 所见即所得内容编辑器,便于帖子格式化。
  • 基于帖子链接、点赞、作者和线程重要性的论坛搜索结果排名系统。

开发

在您的机器上运行Misago开发实例的首选方式是使用Docker,它可以使启动任意数量的实例变得容易,这些实例运行不同的代码,使用单独的数据库和依赖项。

首先,克隆存储库并在您的终端中运行./dev init命令。这将构建必要的Docker容器,安装Python依赖项并初始化数据库。在命令完成其魔法后,您将能够使用docker compose up命令启动开发服务器。

开发服务器启动后,在浏览器中访问http://127.0.0.1:8000/以查看您的Misago安装。

管理控制面板位于http://127.0.0.1:8000/admincp/地址下。要登录,请使用Admin用户名和password密码。

./dev实用程序除了init之外还实现了其他功能。在没有参数的情况下运行它,以获取可用操作的列表。

在开发中运行Misago而不使用dev

您可以跳过./dev init并手动设置开发实例,运行以下命令

  1. docker compose build:构建Docker容器
  2. docker compose run --rm misago python manage.py migrate:运行迁移
  3. docker compose run --rm misago python manage.py createsuperuser:创建管理员用户
  4. docker compose up:启动开发服务器

前端

除了管理员面板外,Misago的前端主要依赖于由Django API支持的React.js组件。此应用程序使用webpack进行构建。

目前Misago的package.json定义了以下任务

  • npm run build:对Misago的资产进行生产构建,打包和压缩JavaScript、CSS和图像,并将它们移动到misago/static/misago目录。
  • npm run start:对资产进行快速构建:打包、编译less、部署到misago/static/misago。不进行压缩/优化。当less/js文件更改时运行重建。
  • npm run prettier:使用prettier格式化代码。
  • npm run eslint:使用eslint进行代码检查。

要开始为Misago创建自定义前端,请进行Fork并在本地安装它以设置开发论坛。您现在可以通过修改frontend目录中的资产来开发自定义主题,但在更改源JavaScript文件时需要特别注意,因为这些文件没有测试套件。

Misago定义了一个模板,允许您在Misago的JavaScript应用程序运行之前包含自定义HTML和JavaScript代码,命名为scripts.html

管理员

管理员资产存储在misago-admin目录中,并在构建时部署到misago/static/misago/admin目录。

要处理管理员的JavaScript或CSS,请使用cd命令切换到misago-admin目录并使用npm install安装依赖项。现在您可以使用以下操作

  • npm run build:对资产进行生产构建,打包和压缩JavaScript和CSS文件。
  • npm run dev:对JavaScript和CSS资产进行快速构建,仅打包但不压缩。当其中一个文件更改时也会进行重建。

提供反馈和贡献

如果您发现了错误,请通过问题跟踪器项目的论坛报告。

如果您想为项目做出贡献,请参阅贡献文档。

对于功能请求、支持请求以及一般反馈,请使用官方论坛。您的反馈对项目意义重大,请分享您的想法!

还有Discord服务器,供那些寻求与Misago的开发人员和用户进行即时通讯的人使用。

作者

Rafał Pitoń 和 ❤️ 贡献者

misago.faker.phrases中使用的英文句子是从美国国家航空航天局太阳系探索门户提取的,并且根据媒体和内容使用指南不受版权保护。

版权和许可

Misago - 版权所有 © 2023 Rafał Pitoń 本程序绝对没有任何担保。

这是一款免费软件,您可以根据许可证中描述的条件对其进行修改和重新分发。有关完整的许可证,请参阅LICENSE.rst。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

misago-0.39.1.tar.gz (5.9 MB 查看哈希值)

源代码

构建分发

Misago-0.39.1-py3-none-any.whl (6.5 MB 查看哈希值)

上传时间 Python 3

由以下支持