我在做几个中文编程语言的web搭建工作,请帮我制定技术文档。
几款中文编程语言有几个已经有了自己的playground ,有的还没有。我想基于kotti-py312 ,制作一个多中文编程语言的宣传网站,主要包括文档、playground 示例和学习 。 kotti-py312页面:https://gitcode.com/skywalk163/kotti-py312
Codearts做的网站(待续)
中文编程语言CMS网站
基于Kotti框架构建的中文编程语言展示和管理平台。
项目简介
本项目旨在创建一个统一的CMS网站,展示和推广各种中文编程语言,包括:
- 言语言yan
- 知行zhixing
- 知行语言traeyan
- 言知yanzhi
- 心语xinyu
- 墨言moyan
- 言律yanlv
- 明道
- 翰语
核心功能
- 语言展示:展示各中文编程语言的特性、语法、应用场景
- Playground集成:通过iframe嵌入各语言的官方在线编辑器
- 教程管理:提供各语言的入门和进阶教程
- 代码示例:展示实用的代码示例
- 双语支持:支持中英文内容切换
- 搜索功能:全文搜索教程、示例和语言信息
- 管理后台:完整的内容管理系统
技术栈
- 框架:Kotti2 (基于Pyramid)
- 扩展:kotti2-iframe、kotti2-image
- ORM:SQLAlchemy
- 模板:Jinja2
- 前端:Bootstrap 5
- 数据库:PostgreSQL (生产) / SQLite (开发)
- 搜索:Whoosh
- 缓存:Redis (可选)
快速开始
环境要求
- Python 3.12+
- PostgreSQL 12+ (生产环境)
- Redis 6.0+ (可选)
安装步骤
重要:本项目依赖Kotti2及其扩展,请先安装这些依赖。
1. 安装Kotti2及其扩展
# 安装Kotti2核心
pip install git+https://gitcode.com/skywalk163/kotti-py312.git#egg=kotti2
# 安装kotti2-iframe扩展
pip install git+https://gitcode.com/skywalk163/kotti-py312.git#egg=kotti2-iframe
# 安装kotti2-image扩展
pip install git+https://gitcode.com/skywalk163/kotti-py312.git#egg=kotti2-image
详细的安装说明请参考 INSTALL.md。
2. 克隆并安装本项目
git clone https://gitcode.com/skywalk163/chinese-programming-cms.git
cd chinese-programming-cms
-
创建虚拟环境
python -m venv venv
Windows
venv\Scripts\activate
Linux/Mac
source venv/bin/activate
-
安装依赖
pip install -r requirements.txt
pip install -e . -
初始化数据库
python scripts/initialize_db.py conf/development.ini
-
启动开发服务器
pserve conf/development.ini
访问 http://localhost:6543 查看网站。
项目结构
kotti_cms_custom/
├── models/ # 数据模型
├── views/ # 视图函数
├── services/ # 业务逻辑
├── templates/ # 模板文件
├── static/ # 静态资源
│ ├── css/
│ ├── js/
│ └── img/
├── i18n/ # 国际化文件
│ ├── zh_CN/
│ └── en/
└── security.py # 安全配置
conf/ # 配置文件
scripts/ # 脚本工具
tests/ # 测试代码
开发指南
运行测试
pytest tests/
代码格式化
black kotti_cms_custom/
isort kotti_cms_custom/
代码检查
flake8 kotti_cms_custom/
部署
生产环境配置
- 修改
conf/production.ini中的配置 - 配置PostgreSQL数据库
- 配置Redis缓存(可选)
- 配置Nginx反向代理
使用Gunicorn启动
gunicorn -p conf/production.ini kotti_cms_custom:main
贡献指南
欢迎贡献代码、报告问题或提出建议!
- Fork项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request