如果你是第一次看这个系列的文章,可从第一篇《创业的第一个春天》1 看起。
帮助别人成功,自己才有成功的机会。
Vditor & Lute
这个秋天开始实现 Vditor 的“所见即所得”特性,即实现 Typora2 那样写 Markdown 时不用分屏预览,而是边写边渲染。不过 Markdown 本身的设计用意就是“所见即所得”,所以把这个特性叫做“实时渲染”更恰当一些。这个月应该能实现完,下个月正式发布。
技术方案上我们是通过让 Lute 支持渲染“Vditor DOM”来实现。这个方案最难的部分莫过于实现源码映射3,即渲染结果字符和 Markdown 原文字符的位置对应关系。只有实现了源码映射才能实现编辑(光标)位置的正确移动。完整方案和技术细节后续会单独写一篇文档来介绍,希望能给其他在做 Markdown 编辑器的开发者带来帮助。
Latke
Latke 是我们 Java 产品线的开发框架,之前的 Latke 是基于 Servlet 实现的,虽然能用但是一直不太满意:
- Servlet 有点重,很多特性用不上
- 性能不足够好
- 不同的 Servlet 容器有不同的部署细节,导致进行用户支持时非常麻烦
经过再三考虑,我们决定将 Latke 改造为基于 Netty 实现,这样上层应用的部署方式得到了统一,更轻量化性能也更好。目前 Solo、Sym 已经迁移到最新版 Latke,黑客派也部署上线了,大家可以到社区试试看新框架的表现。
Sym
商业版实现了一个新特性:审核功能,发帖、回帖、评论均支持审核后才展现。整个审核功能也做了开关,默认不开启。另外也迭代了一些模块的细节,比如支持更多站点连接、历史头像背景图、微信公众号消息提醒4、支持两套广告展位等。这些需求均来自商业客户以及黑客派用户,在大家的驱动下 Sym 也更加完善了,感谢。
Sym 社区版方面主要是修复缺陷,可参考 v3.6.0 变更记录5。
黑客派
我们停止了大部分广告展位展示的谷歌广告,转而将这些展位用于展示社区用户自己的 GitHub 开源项目6,不收取任何费用。
这个转变的动机也算是机缘巧合,是因为有人恶意点击导致我们的谷歌广告账号被限制。 但也正是这次攻击让我们重新思考了社区的价值取向:要做一个真正的社区就不应该过分利用 UGC 带来的流量进行变现,如果一个站点挂太多广告(甚至付费去广告)的话,那这个站点就不能算是一个合格的社区,因为社区的价值取向不能只建立在站长个人身上,社区自己的价值观应该是共创共享的,这和个体获利是完全矛盾的。
进一步,我们也思考了广告变现这条路,如果要做的话应该做成和社区用户分润的模式,这样社区整体的价值观才能保持一致。技术方案上可以通过 AdSense Host API7 实现。不过这个方案门槛有点高,需要日 PV 10W(中文站点好像是 100W)以上才能申请,等以后有机会再尝试吧。