由于几乎每次贡献代码,都能引起点儿bug出来,让我深感惭愧,故觉有必要做一下记录,避免日后重复掉坑。给D大添麻烦真是太不好意思了 :sob:
    顺便记录下自己处理的bug(两种应该都不会很多,故而Merge了)

    :bug: 查看他人主页时标签页多出匿帖
    错误原因:编辑此处代码时为了解逻辑,造成标签错误闭合
    此处代码定义了四个标签页,分别是帖子、回复、匿帖、匿回。代码中嵌入了显示个数的标签。少写一个,此处显示就少一个(神奇的FreeMarker,恕我并不了解)。写错的if标签,是用来判断是否在查看自己的主页,只有在自己的主页下才能查看匿帖和匿回。

    :bug: 编辑更新帖子报500错误
    错误原因:在添加同步开关时,针对新增文章导向的页面post.ftl添加了新的字段,但没有在编辑文章处对新加的字段进行赋值
    此外,判断值的时候,由于CV代码,对值进行了错误的判断,真是蠢哭……
    在做此功能时,明明搜过post.ftl,即知道不止一个controller导向了post.ftl,却没有在相应的方法上加上需要的值,导致该controller导向这个页面时,引用了空对象导致异常。至于CV代码,实在是容易引发错误啊,
    日后就算CV,只要不是同一个东西,就手敲改写

    :bug: 同步文章失败
    错误原因:蠢。。。瞎。。。
    明明不到两行的位置下面就有自己打算添加的代码,没看到,添加重了不说,还特么添加错了orz
    太毛糙,急于提交代码,没有改后进行基本的测试。
    缺少艺术家那种再小的细节也要认真处理的匠心、耐心……

    :bug: MarkDown解析纯HTML失效
    错误原因:pegdown对于纯html解析的不够完善,会进入死循环,可参考:PegdownIssue
    这个问题一开始我跑偏了,试图从pegdown入手解决(心真大。。。),然而纠结了两三天的代码,并没有什么很好的解决办法(实际上,由于eclipse对于maven项目源码查看的问题,我跟踪代码困难重重,基本靠猜……),最终反过来还是在sym上入手,然而问题来了,虽然连蒙带猜的发现,对于纯html,如果外面包裹上一层< p >标签,就可以解决,然而对于非纯html的MD语法就不行了(然而我由于太激动以为解决了就PR了,给自己造成了代码不同步的麻烦。。。说多了都是泪。 下次PR前一定要自己测清楚,之前的用例必须通过再说,一旦PR了,要改的话最好先合并了再改)

    :lipstick: 升级emoji表情
    TAPR(Thinking After PR):这次改动主要在图片文件上,原emojify是基于gemoji的,故而支持alias解析,而twemoji并没有alias一说,表情多达两千,看解析似乎是通过unicode码,具体怎么取调用,我是没看懂,不过感觉可能是那种选图的方式,其emoji图片命名是通过codepoint,所以一开始的方案是,转换alias到unicode,然后再转换为codepoint,再转换为路径(sym使用图库的方式比较偏门,不按他们的套路来,等同于只用了图片素材)。由此纠结了很久,诸如如何处理转换不了的,有没与可能通过codepoint转换为alias的,多余的图片是否保留等,一一搞定,到了最后,处理弹出快捷表情列表的时候,发现之前的方法统统不行了。。。强行做也行,无非就是再加一个ajax,去后台获取alias,然而为了这么个功能,在前端加了两个ajax请求,刚在看web性能的我觉得有点蛋疼,于是放弃了,同时回滚了两天的修修补补,在五点快下班的时候,用了大概三个小时,进行了图片文件改名,也是之前讨论的第二方案。一开始就感觉改名对代码改动最小,是比较靠谱的一个方案,但是codepoint不知到如何转换为alias,后来做的时候已经通过alias生成了codepoint,现在只要对应一下,写个脚本改就行了(脚本写的很丑陋就不放了,多谢sublime列编辑……)
    说这么多,总结一下就两点: 对原逻辑改动最小的总是最优办法;重点是如何达到目的,而不是考虑解决办法看起来是否炫酷优雅。。