一个Markdown在线编辑器的开发全剖析

还是讲讲背景吧,公司技术团队做了自己的公众号,不知为何笔者就成了小编之一。为了解放生产力,果断决定撸个可以一键生成微信推文的编辑器,也就是我们下面会讲到Markdown在线编辑器啦~ 如图,这就是编辑器的全貌,分为编辑区域与预览区域,其中预览区域可以通过菜单中的按钮实现隐藏或展示,方便不同的编辑需求。 ...

记一次proto仓库的pre-commit开发

背景介绍 – 因业务需求,我们需要维护一个proto仓库用于前后端同学的数据结构定义,然而在仓库使用的过程中经常发生proto文件格式错误的情况,导致系统对应的页面会发生崩溃。所以,我们打算在proto仓库中启用pre-commit检验的方案,来降低这类事件发生的概率。 什么是pre-commit?pre...

nestjs项目初探

最近在重构一个内部使用的配置平台,主要重构平台的后端部分,目标是使用nest框架替换原有的koa框架。跌跌撞撞了几天,把项目慢慢的重构好了,在重构的过程中慢慢体会到nest框架的优势。 本文将会介绍nest框架,以及为什么我们选择使用这个框架(关于迁移过程遇到的问题可以关注后续的文章)。 进入正题,为什么...

Fast-Nest -- 基于Nest.js的Node后端服务(Typescript)

久违的背景介绍:) 近期在做一个KOA内部管理系统的框架迁移,在迁移的过程中逐渐熟悉Nest.js的开发模式,对它的目录结构设计以及框架自带的装饰器支持颇有好感,固有将其整合成快速启动框架的想法。 本项目适用: node简易应用初始化 node项目初学试验 typescript项目初学试验 有兴趣的童鞋...

如何实现一个移动端极简PDF浏览页面

近期沉迷…(不想再编了,就是偷懒了) 为什么会有这么个需求呢?因为我们的业务特性,用户会很经常的需要打开页面中的PDF进行浏览查阅,然而不同的手机在打开PDF的表现上各有千秋,特别是安卓机,大部分会直接将其下载到用户手机且没有明显提示。基于此,我们需要一个统一的PDF浏览页面。 关于“统一浏览”,我们应该...

极简实现列表内容查看

最近在和各类文档文案展示斗智斗勇,在解决帮助列表静态化的同时,尝试了一下之前构思过的极简列表实现,发现竟然还不错。 本文可能涉及的内容– 模板渲染 比较冷门的CSS用法 一些小声哔哔 场景简介假如我们有下面这组数据,需要将它们变成一个常规的Q&A页面,并且希望它是个独立的、小型的静态页。(如果...

JavaScript实现事件总线(Lab小技巧-005)

近日沉迷搬砖(偷懒),都没什么时间更新文章了,砖搬的差不多了赶紧回来写点小玩意~ 依旧是背景介绍,我们在网购的时候都填过地址吧,一般点击编辑地址的时候都会跳到新的页面,那么问题来了,我们编辑好提交之后,怎么把数据给回上一个页面呢? 如果我们遇到上面的情景会怎么解决呢?方案倒不少,storage、状态管理甚...

2018年个人总结

和其他文章一样,就算是个人总结,我也想写个背景。18年对我来说,是个“动荡”的年份–摆脱了应届生的身份、经历了人生第一次跳槽、成功进入梦寐以求的“大厂”。体验到了一些不一样的东西,也有点怀念以前的一些事情。 上半年–2018.01~2018.06–荔枝微课17年中旬,刚毕业的愣头青(我)进入荔枝微课,第...

前端页面全局锁(Lab小技巧-004)

看到页面上有个按钮不知大家是否有疯狂点击的冲动?请善待我们前端开发,不要轻易多次点击页面上的按钮(开玩笑~ 在网页开发的过程中,秉着保护自己不信任用户的原则,我们有必要在某些会被频繁触发的按钮或者热区加上“锁”,这里的锁指的是短时间内不允许多次点击按钮。 首先,有必要说一下重复点击这个事它到底会导致怎样的...

前端组件设计--位运算的妙用

Hello好久不见。跳槽之后一直没什么时间总结记录这段时间的见闻或实践,好不容易挤出点时间,今天想记录一下最近的一个组件设计&开发历程,该组件的开发环境是小程序,但是我认为这个思维是通用的~ 本文可能涉及内容– 需求简介 位运算与表单组件的结合 组件设计小结 需求简介我们大概需要完成这样一个表...