最近学习 Elixir,手撸了一个「塑料版」的 RubyChina,完成了比较基本论坛功能。RubyChina 内比较高阶的功能还没实现。不过仍有一些小总结和大家分享一下。
Demo 和项目 Github 地址如下:
目前的项目结构设计很直接,不属于 web 部分的功能,都放到了 lib/mipha 内,后续会根据业务需求调整。
.
├── assets # JS CSS 与静态资源
├── lib # 项目 elixir 代码
│ ├── mipha # 目前的逻辑是非 Web 部分的代码放到这里。
│ │ ├── accounts # 社区用户、团队、公司、地址
│ │ ├── collections # 收藏
│ │ ├── follows # 关注
│ │ ├── markdown # markdown 文本解析相关策略
│ │ ├── notifications # 站内信(通知)
│ │ ├── replies # 帖子评论
│ │ ├── stars # 点赞,目前支持点赞帖子与评论
│ │ ├── topics # 帖子与帖子的分类(节点)
│ │ ├── utils # 工具库
│ │ ├── mailer.ex # 发送邮件
│ │ ├── markdown.ex # markdown 文本解析
│ │ ├── qiniu.ex # 七牛上传图片
│ │ ├── regexp.ex # 正则表达式
│ │ ├── token.ex # token 验证
│ ├── mipha_web
│ │ ├── channels # socket WS 协议相关代码
│ │ ├── controllers # Controllers
│ │ │ ├── admin # admin 管理台
│ │ ├── plugs # Plugs
│ │ ├── templates # Templates
│ │ ├── views # Views
│ │ ├── email.ex # 发送邮件方法及调用邮件模板
│ │ ├── session.ex # 用户登录相关的 session 处理
│ ├── mipha.ex
│ ├── mipha_web.ex
└── test # 测试
目前所有的功能都在 issues 内。
第三方 Elixir 库:
第三方 JS 库:
目前在第一迭代主要是借 (chao) 鉴 (xi) RubyChina 的功能。第二迭代考虑实现新的 UI 和交互以及一些小功能。
Elixir 写起来根本停不下来啊,哈哈。如果对该项目有兴趣的小伙伴,欢迎提 Issue 或 PR。