自制微信公众号一键排版工具

近日,几个码农因「写脚本」被开除了。要我说,不写点脚本那还叫码农吗。我最近也给自己写了一点小脚本,用于在微信公众号中生成个性排版。现在我把整个过程分享给大家。本文就是用这个小工具完成的哦。

操作过公众号后台的朋友肯定知道,微信的编辑器是很简易的,这也不叫缺陷吧,毕竟微信团队的主张一直就是简洁。但是这个编辑器是可以粘贴带格式的html的,所以就给我们留下了发挥的空间,我们可以自己写点css代码,从而定制一个个性的排版样式。对于一个前端工程师,写点样式还不是分分钟的事情~

用markdown写作

程序员最喜爱的写作语言当然是markdown了,它是一种比html更简洁的标记语言,通过工具可以编译为html以及pdf等各种格式。由于足够简洁,所以兼容性也是杠杠的,特别适合在移动端展示文章。

这里我选择用gulp进行任务控制,用gulp-remarkable来进markdown文件的编译。

编写html片段

首先我们要准备好自己写的html片段,css代码内联,用于替换编译生成的html。比如,我会将<h2>标签替换为以下的html

<p style="font-family: 微软雅黑, 宋体, tahoma, arial; margin: 8px 0px 8px; padding: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(227, 227, 227); height: 32px; line-height: 18px;"><span style="font-family: 微软雅黑, sans-serif !important; font-size: 16px; color: #00BBEC; display: block; float: left; padding: 0px 2px 3px; line-height: 28px; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: #00BBEC; font-weight: bold;" class="wxqq-color wxqq-borderBottomColor">标题</span></q>

除标题外,你也可以制作任意需要的代码片段,比如引用、表格、列表等等,md文件编译后统统进行替换就行。

代码高亮处理

码农写的文章,难免会嵌点代码来说明问题,但是在微信中排版代码是件头疼的事。要么是代码太长了排版错乱,要么就直接用图片展示代码,但是也有清晰度不够、无法复制等问题。

所以我选择用highlight.js来进行代码的格式化,在用remarkable编译md文件的时候,可以把highlight配置进去,这样一并完成了代码高亮工作。

需要注意的一个地方是,用highlight格式化后的代码在复制到微信编辑器的时候会丢失换行,需要我们额外处理一下,用正则把\n替换成<br>就可以了。

<pre>标签滚动处理

所谓滚动处理就是,在单行代码太长(超过屏幕宽度)的时候,会产生换行,代码就乱了,这是我们不愿意看到的。所以在进行替换的时候要给<pre>标签加上overflow-x:auto; white-space: nowrap;样式,这样能让代码框产生横向滚动条,读者可以滚动来查看未错乱的代码。

这样比较长的代码看起来就是这个效果:

alert(12);var test = "这是一段很长的文字这是一段很长的文字这是一段很长的文字这是一段很长的文字这是一段很长的文字";function abc(){    alert("sdfsdf");}

css内联处理

使用hightlight.js的时候,需要引入一个主题的css文件,比如我用的是monokai-submile.css。但是我们没法把这个css文件粘贴到微信编辑器中,所以需要想办法把这个css文件给内联到html代码中才行。

也就是说,要把css中定义的规则转化为标签的style属性,我在网上搜罗了半天,找到一个名为juice的nodejs模块,帮助我完成了这个工作。用法也相当简单,最终的nodejs代码如下

var htmlFile = ‘./articles/‘+file+‘.html‘;var cssFile = ‘./articles/monokai-sublime.css‘;var result = juice.juiceFile(htmlFile, {extraCss: fs.readFileSync(cssFile)}, function(err, html){    if(err){        console.log(err);    }    else{        var meta = ‘<meta charset="utf8" />‘;        fs.writeFileSync(‘./articles/‘+file+‘_html.html‘, meta+html);    }});

快速敲出装逼引号「」

常写文章的同学肯定很喜欢这个引号「」,它让你的文章品质瞬间升华了有木有。但是由于这个引号无法用键盘直接打出,只能通过输入法的特殊符号来输入,特别麻烦。

既然我们可以随意对内容进行替换,那么只需自己定义一个标签就行,比如我定义了q标签,后续用脚本把这个标签替换为「」即可。配合编辑器的emmet插件,输入这个装逼引号只需敲p+tab,相当快捷,「你说呢」。

开始编译吧

我目前进行的处理就以上这些了,当然如果你发挥脑洞的话,可以再做更多的工作哦。

万事俱备,那我们就开始编译吧。大致说一下我用到的东西,首先脚本是用nodejs写的,谁让我是前端工程师呢呢~任务控制当然首选gulp,其次用到了gulp-replace、gulp-remarkable、gulp-rename、juice、highlight.js,就这些了。

把我们预先写好的html片段定义成字符串,然后就可以开始处理工作啦,我的parse任务定义如下

gulp.task(‘parse‘, function(){    gulp.src(‘articles/‘+file+‘.md‘)    .pipe(md({        preset: ‘full‘,        disable: [‘replacements‘],        remarkableOptions: {            typographer: true,            breaks: true,            highlight: function (str, lang) {                if(lang && hljs.getLanguage(lang)) {                    try {                        return hljs.highlight(lang, str).value.replace(/\n/g, ‘<br>‘);                    } catch (err) {}                }                try {                    return hljs.highlightAuto(str).value.replace(/\n/g, ‘<br>‘);                } catch (err) {}                return ‘‘;            }        }    }))    .pipe(name(function(path){        path.extname = ‘.html‘;    }))    .pipe(replace(/<h2>(.*)<\/h2>/g, h2start+‘$1‘+h2end))    .pipe(replace(/&lt;q&gt;([^</p>]*)&lt;\/q&gt;/g, ‘「$1」‘))    .pipe(replace(/<pre>/g, ‘<pre class="hljs" style="overflow-x: auto;">‘))    .pipe(replace(/<mark>/g, ‘<mark style="background-color: #EEE; padding: 0 5px;">‘))    .pipe(gulp.dest(‘./articles‘));});

然后别忘了还有内联css的任务,代码参见上面juice的使用。

为了能够精准编译某一个md文件,我在运行gulp的时候给传递了一个file参数,运行命令为:gulp --file write-wx-article-tool。值就是我这篇文章的名称啦。这个参数可以通过gulp.env.file拿到,就是你当前要处理的文件。

命令执行完后,就会生成一个html文件,你只需双击打开,复制内容,然后在微信编辑器中ctrl+v即可。

结束

这就结束啦?当然,如果你有更多的想法,完全可以自己再去折腾。比如,编译完成后,自动把内容放到系统剪贴板中,自动打开微信文章发布页,自动聚焦编辑器,自动执行ctrl+v指令。这下就真正变成「一键」了,爽乎?

时间: 2024-10-10 18:28:48

自制微信公众号一键排版工具的相关文章

(转)手把手教你自制微信公众号流量监控系统

手把手教你自制微信公众号流量监控系统 一.首先是使用的工具: 基于搜狗微信搜索的微信公众号爬虫接口.Flask.ZUI框架. 第一个接口也是我开发的,欢迎star哈~ 二.获取数据 使用第一个接口获取公众号数据~ 可以看到,公众号的一般信息已经拿到手. 现在,将其集成到我们的网站上: (嗯,UI比较简单....) 三.监控 还是使用第一个接口监控数据: 这里做了一个嵌套排序,可以按照阅读量排序. 集成到网站上:四.具体的文章流量 继承到网站: 如上图所示,既可以监控微信号“NUAA_1952”的

微信公众号一键关注解决办法

新版微信--微信公众号一键关注解决办法 复制下面链接:https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzAxNzcwODE2MA==&scene=110#wechat_redirect 注意"__biz"后面的参数,每一个公众号都有一个唯一的,比如我的就是MjM5NDExMTU3Mg,打开你微信公众号推送的任意一篇文章,复制链接,链接当中就有这样的一个识别码,直接替换就可以了 需要注意的是,链接必须在

【微信公众平台】微信公众号“一键关注”Android版实现

微信公众平台可以说我是看着他成长起来的,我身边的朋友也有因为他而翻身奴隶把主做的,但是可惜的是我错过了最初的机会 ,我是在2013年开始接触到微信公众平台,当时他还只是一个幼崽,开始我一头栽入其中并不断的挖掘其中的万种可能,就像是在沙漠中遇到了绿洲一样,但是由于后期工作时间的原因,和他渐渐疏远了一段时间,可能也正是这样我错过了其中发展最快的时间,后面的14年的6月份以后的时间里我终于又回到我梦开始的地方-–微信公众平台开发的岗位!经过一年多的积累和这大半年的真实演练也算是积累了一些,所以决定在这

微信公众号“一键关注”有解决方案啦!

经过多方努力,终于把曾经广受公众号运营者欢迎的“一键关注”终于回来了! 目前几乎所有公众号都在使用的引导关注的方法: 1.在推送的每篇微信图文上方加上“请点击蓝色小字,关注我们“的文字或gif图片,如下面这些: 2.单独建立一个微信图文文章,作为所有引导关注的中间引导页面,如下面这种: 3.文字引导(转化率最差): 如“请关注公众号:XXXXXX”..... 当大家都在用这种方式来引导关注的时候,用户早已经疲劳了,还会去主动关注你吗??? 这样的粉丝转化率能有多少呢?   真正的“一键关注”是什

手机浏览器跳转微信指定页面 及 跳转微信公众号一键关注

这篇文章主要介绍了如何在手机浏览器wap网页中点击链接跳转到微信界面,需要的朋友可以参考下 先说第一种,最简单的唤起微信协议,weixin://主流浏览器都支持,app加个浏览器功能就可以使用weixin:// .用途不大,只能打开微信,不能携带任何参数. 方法二:weixin://profile/XXXXXXXXX 此链接接口微信已经停用. 目前仅仅等同于weixin://,所以不要浪费精力学习了. 方法三:weixin://dl/business/?ticket= 如招商银行的一键关注. 此

微信公众号如何设置“粉丝海报裂变”使用步骤:

微信公众号作为企业重要的宣传渠道,阅读量和粉丝数成了公众号的关键数据,其中吸引用户关注是最难的,除去从内容方面提升之外,还可以借用一些微信公众号吸粉工具,比如通过粉丝海报来进行粉丝裂变吸粉. 微信公众号粉丝海报使用步骤: 首先你需要设计一个海报,推荐尺寸为750×1334,然后结合自身服务或产品抛出一个诱惑,引起大家的关注,同时要让人一眼看过去就有分享的愿望. 注意:海报上要预留二维码位置 然后登陆进入鱼塘互动平台,在上方菜单中找到活动-超级粉丝海报-新建海报-自定义粉丝海报即可进入粉丝海报功能

微信公众号辅助工具汇总 推广加粉统统有

微信公众号运营是一门学问,要想做成一个微信大号没一些辅助工具那是奢望.工欲善其事必先利其器,公众号推广.公众号加粉.图文排版.微场景.H5页面.微信公众号导航...选择适合自己的软件善加利用,离成功更近一步了. 1.图文排版编辑器 秀米:xiumi.us易点编辑器:wxedit.yead.net135微信编辑器:http://www.135editor.com/扔赞微信编辑器:http://bianji.rengzan.com/小易微信编辑器:http://xiaoyi.e7wei.com/易点

微信公号文章排版:微信公众号新增4个新功能

微信公众号排版对于新媒体运营是一个必知的课题. 就像中国人必须会说国语一样. 说起排版,现在的排版都流行简洁风格,那么这里也延续简洁风. 我给大家列出了公众号排版的一些基本配置,如有雷同,那就对了! 字号 建议正文设置为14px或15px,过大字号没有美感,过小字号易疲劳.备注字体可以设置为12px. 我一般是用14px或15px作为正文,12px作为辅助. 色号 正文建议设置为#3f3f3f.#3f3f3f(#5f5f5f和#4f4f4f也可以),标注为#888888.正文要淡一点也可以直接正

微信公众号开发技术基础(二):外网映射工具ngrok的简介和使用

本文结构:(一)用法(二)示例(三)qydev ngrok的下载链接及相关网站 微信公众号开发的时候,微信服务器是需要访问我们的一个公网服务器地址的,但我们又是在本地调试自己的程序的,那怎样让微信服务器能访问到我们本地的服务器呢?那就需要用外网映射工具,将本地IP映射成公网IP,这样就能在公网上访问本地服务了,这里使用ngrok.ngrok原版程序的服务器是在国外的,访问速度极慢或者干脆访问不了,所以这里提供一个服务器搭建在国内的基于ngrok的一个软件:qydev,百度网盘下载链接见文章结尾.