欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

自制微信公眾號一鍵排版工具

 更新時(shí)間:2016年09月22日 09:30:34   作者:呂大豹  
這篇文章主要介紹了自制微信公眾號一鍵排版工具的相關(guān)資料,需要的朋友可以參考下

近日,幾個(gè)碼農(nóng)因「寫腳本」被開除了。要我說,不寫點(diǎn)腳本那還叫碼農(nóng)嗎。我最近也給自己寫了一點(diǎn)小腳本,用于在微信公眾號中生成個(gè)性排版?,F(xiàn)在我把整個(gè)過程分享給大家。本文就是用這個(gè)小工具完成的哦。

操作過公眾號后臺的朋友肯定知道,微信的編輯器是很簡易的,這也不叫缺陷吧,畢竟微信團(tuán)隊(duì)的主張一直就是簡潔。但是這個(gè)編輯器是可以粘貼帶格式的html的,所以就給我們留下了發(fā)揮的空間,我們可以自己寫點(diǎn)css代碼,從而定制一個(gè)個(gè)性的排版樣式。對于一個(gè)前端工程師,寫點(diǎn)樣式還不是分分鐘的事情~

用markdown寫作

程序員最喜愛的寫作語言當(dāng)然是markdown了,它是一種比html更簡潔的標(biāo)記語言,通過工具可以編譯為html以及pdf等各種格式。由于足夠簡潔,所以兼容性也是杠杠的,特別適合在移動端展示文章。

這里我選擇用gulp進(jìn)行任務(wù)控制,用gulp-remarkable來進(jìn)markdown文件的編譯。

編寫html片段

首先我們要準(zhǔn)備好自己寫的html片段,css代碼內(nèi)聯(lián),用于替換編譯生成的html。比如,我會將<h2>標(biāo)簽替換為以下的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">標(biāo)題</span></q>

除標(biāo)題外,你也可以制作任意需要的代碼片段,比如引用、表格、列表等等,md文件編譯后統(tǒng)統(tǒng)進(jìn)行替換就行。

代碼高亮處理

碼農(nóng)寫的文章,難免會嵌點(diǎn)代碼來說明問題,但是在微信中排版代碼是件頭疼的事。要么是代碼太長了排版錯亂,要么就直接用圖片展示代碼,但是也有清晰度不夠、無法復(fù)制等問題。

所以我選擇用highlight.js來進(jìn)行代碼的格式化,在用remarkable編譯md文件的時(shí)候,可以把highlight配置進(jìn)去,這樣一并完成了代碼高亮工作。

需要注意的一個(gè)地方是,用highlight格式化后的代碼在復(fù)制到微信編輯器的時(shí)候會丟失換行,需要我們額外處理一下,用正則把\n替換成<br>就可以了。

<pre>標(biāo)簽滾動處理

所謂滾動處理就是,在單行代碼太長(超過屏幕寬度)的時(shí)候,會產(chǎn)生換行,代碼就亂了,這是我們不愿意看到的。所以在進(jìn)行替換的時(shí)候要給<pre>標(biāo)簽加上overflow-x:auto; white-space: nowrap;樣式,這樣能讓代碼框產(chǎn)生橫向滾動條,讀者可以滾動來查看未錯亂的代碼。

這樣比較長的代碼看起來就是這個(gè)效果:

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

css內(nèi)聯(lián)處理

使用hightlight.js的時(shí)候,需要引入一個(gè)主題的css文件,比如我用的是monokai-submile.css。但是我們沒法把這個(gè)css文件粘貼到微信編輯器中,所以需要想辦法把這個(gè)css文件給內(nèi)聯(lián)到html代碼中才行。

也就是說,要把css中定義的規(guī)則轉(zhuǎn)化為標(biāo)簽的style屬性,我在網(wǎng)上搜羅了半天,找到一個(gè)名為juice的nodejs模塊,幫助我完成了這個(gè)工作。用法也相當(dāng)簡單,最終的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);
}
});

快速敲出裝逼引號「」

常寫文章的同學(xué)肯定很喜歡這個(gè)引號「」,它讓你的文章品質(zhì)瞬間升華了有木有。但是由于這個(gè)引號無法用鍵盤直接打出,只能通過輸入法的特殊符號來輸入,特別麻煩。

既然我們可以隨意對內(nèi)容進(jìn)行替換,那么只需自己定義一個(gè)標(biāo)簽就行,比如我定義了q標(biāo)簽,后續(xù)用腳本把這個(gè)標(biāo)簽替換為「」即可。配合編輯器的emmet插件,輸入這個(gè)裝逼引號只需敲p+tab,相當(dāng)快捷,「你說呢」。

開始編譯吧

我目前進(jìn)行的處理就以上這些了,當(dāng)然如果你發(fā)揮腦洞的話,可以再做更多的工作哦。

萬事俱備,那我們就開始編譯吧。大致說一下我用到的東西,首先腳本是用nodejs寫的,誰讓我是前端工程師呢呢~任務(wù)控制當(dāng)然首選gulp,其次用到了gulp-replace、gulp-remarkable、gulp-rename、juice、highlight.js,就這些了。

把我們預(yù)先寫好的html片段定義成字符串,然后就可以開始處理工作啦,我的parse任務(wù)定義如下

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'));
});

然后別忘了還有內(nèi)聯(lián)css的任務(wù),代碼參見上面juice的使用。

為了能夠精準(zhǔn)編譯某一個(gè)md文件,我在運(yùn)行g(shù)ulp的時(shí)候給傳遞了一個(gè)file參數(shù),運(yùn)行命令為:gulp --file write-wx-article-tool。值就是我這篇文章的名稱啦。這個(gè)參數(shù)可以通過gulp.env.file拿到,就是你當(dāng)前要處理的文件。

命令執(zhí)行完后,就會生成一個(gè)html文件,你只需雙擊打開,復(fù)制內(nèi)容,然后在微信編輯器中ctrl+v即可。

結(jié)束

這就結(jié)束啦?當(dāng)然,如果你有更多的想法,完全可以自己再去折騰。比如,編譯完成后,自動把內(nèi)容放到系統(tǒng)剪貼板中,自動打開微信文章發(fā)布頁,自動聚焦編輯器,自動執(zhí)行ctrl+v指令。這下就真正變成「一鍵」了,爽乎?

以上就是自制微信公眾號一鍵排版工具的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對本站的支持!

相關(guān)文章

  • 短視頻(douyin)去水印工具的實(shí)現(xiàn)代碼

    短視頻(douyin)去水印工具的實(shí)現(xiàn)代碼

    這篇文章主要介紹了市面上短視頻(douyin)"去水印"的工具原來是這樣實(shí)現(xiàn)的,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Asp.Net之JS生成分頁條的方法

    Asp.Net之JS生成分頁條的方法

    下面小編就為大家?guī)硪黄狝sp.Net之JS生成分頁條的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • JS加載器如何動態(tài)加載外部js文件

    JS加載器如何動態(tài)加載外部js文件

    這篇文章主要介紹了JS加載器如何動態(tài)加載外部js文件的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • JS中的二叉樹遍歷詳解

    JS中的二叉樹遍歷詳解

    這篇文章主要為大家詳細(xì)介紹了JS中的二叉樹遍歷,何為二叉樹,什么是二叉樹的遍歷,感興趣的小伙伴們可以參考一下
    2016-03-03
  • javascript+css實(shí)現(xiàn)進(jìn)度條效果

    javascript+css實(shí)現(xiàn)進(jìn)度條效果

    這篇文章主要為大家詳細(xì)介紹了javascript+css實(shí)現(xiàn)進(jìn)度條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JavaScript字符串轉(zhuǎn)換數(shù)字的方法

    JavaScript字符串轉(zhuǎn)換數(shù)字的方法

    這篇文章主要介紹了JavaScript字符串轉(zhuǎn)換數(shù)字的方法,文章圍繞JavaScript字符串轉(zhuǎn)換數(shù)字的相關(guān)資料展開全文內(nèi)容,需要的小伙伴可以參考一下
    2021-12-12
  • js DIV滾動條隨機(jī)位置的設(shè)置技巧

    js DIV滾動條隨機(jī)位置的設(shè)置技巧

    剛才一個(gè)朋友告訴我他的blog友情鏈接太多了,所以把所有鏈接放到一個(gè)DIV中,加了個(gè)滾動條,可是他又不想每次別人來看,看到的都是前面幾個(gè)鏈接,于是問我有沒有什么辦法,想了一個(gè),呵呵,正好有個(gè)辦法
    2008-11-11
  • 仿淘寶TAB切換搜索框搜索切換的相關(guān)內(nèi)容

    仿淘寶TAB切換搜索框搜索切換的相關(guān)內(nèi)容

    這是一款仿淘寶TAB切換搜索框,想搜索哪方面的內(nèi)容就切換到哪一個(gè),非常實(shí)用,喜歡的朋友可以看看
    2014-09-09
  • Stop SQL Server

    Stop SQL Server

    Stop SQL Server...
    2007-06-06
  • JavaScript頭像上傳插件源碼分享

    JavaScript頭像上傳插件源碼分享

    這篇文章主要為大家分享介紹了JavaScript頭像上傳插件源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評論