「刷題專欄」揚(yáng)帆 - 五分鐘構(gòu)建自己的刷題網(wǎng)站

thumb-1920-1101634

本文前置文章為 「刷題專欄」起航 - 五分鐘構(gòu)建自己的刷題倉(cāng)庫(kù) 焦影,建議花五分鐘閱讀并完成刷題倉(cāng)庫(kù)構(gòu)建~

上一篇文章 「刷題專欄」起航 - 五分鐘構(gòu)建自己的刷題倉(cāng)庫(kù) 介紹了刷題倉(cāng)庫(kù)的構(gòu)建嘱腥,但是只有刷題倉(cāng)庫(kù)是不夠的啥么,我們的目標(biāo)是借助刷題倉(cāng)庫(kù)更好地學(xué)習(xí)算法跛溉,如果能通過(guò)網(wǎng)站方式瀏覽自己的刷題記錄秉剑,那就能更方便地鞏固學(xué)習(xí)效果了~

一. 最簡(jiǎn)網(wǎng)站構(gòu)建

當(dāng)前我們項(xiàng)目的 leetcode 文件夾下已經(jīng)是滿滿的一千多道 Leetcode 題目 Markdown 文件了:

image-20210112164520487

經(jīng)過(guò)一番查閱找到 VuePress 可以快速幫我們完成網(wǎng)站的構(gòu)建催享,馬上按照官方指示開始操作:

cd leetcode-js # 或者你的倉(cāng)庫(kù)名
echo '# Hello VuePress' > leetcode/README.md
npm i -D vuepres # yarn add -D vuepress

然后打開 package.json 文件傅寡,在 scripts 部分插入:

image-20210112184836739

然后命令行運(yùn)行 npm run docs:dev 或者 yarn docs:dev英岭,等待命令運(yùn)行完成之后會(huì)看到命令行出現(xiàn)可供本地調(diào)試的鏈接:

image-20210112170229106

打開鏈接湾盒,可以看到剛剛用命令行生成的 README.md 文件已經(jīng)出現(xiàn)在網(wǎng)站上了,說(shuō)明 VuePress 已經(jīng)將我們的 leetcode 文件夾的 markdown 解析并生成為網(wǎng)站資源了:

image-20210112170312623

那我們能在網(wǎng)站上看到同在 leetcode 文件夾 的刷題記錄嗎诅妹?答案是肯定的~ 只需要找到一個(gè)文件名罚勾,作為域名的路徑就可以了~

例如我現(xiàn)在找到第一道題 "1_兩數(shù)之和"毅人,放在 "localhost:8080" 后面,結(jié)果如下:

image-20210112170852897

網(wǎng)站成功地將這道題目給展示出來(lái)了~ 并且還有一個(gè)附加的小功能尖殃,只要在右上角輸入關(guān)鍵字就會(huì)自動(dòng)幫你找到相關(guān)的文檔喲:

image-20210112171252943

二. 題目列表構(gòu)建

最簡(jiǎn)網(wǎng)站構(gòu)建完成之后丈莺,稍微使用一下就會(huì)發(fā)現(xiàn)不太行。Leetcode 有個(gè)能點(diǎn)進(jìn)去就看到所有題目的列表送丰,我們網(wǎng)站沒(méi)有這個(gè)功能缔俄,找一道題還要我輸入一次=。=

1598704973-Q0E7CKAV@1@T694@9W

別急器躏,還記得我剛剛用 README.md 生成的只有一句 Hello VuePress 的首頁(yè)嗎俐载,我們可以在這里編寫一個(gè) README.md 的題目列表,這里對(duì)這個(gè)列表有兩個(gè)要求 :

  • 按順序展示所有題目
  • 每個(gè)題目都可以跳轉(zhuǎn)到 Leetcode具體題目位置 & 我的題解網(wǎng)頁(yè)

這些信息之前我們生產(chǎn)刷題倉(cāng)庫(kù)的時(shí)候就已經(jīng)保存在緩存文件 /cache/problems.json 里了邀桑,現(xiàn)在只需要讀取即可~

接下來(lái)要做的事情有兩件, 分別對(duì)應(yīng)上面兩個(gè)要求:

  • 從緩存文件中獲取題目信息
  • 生成對(duì)應(yīng)的 README.md(題目列表格式暫定為 "題名&鏈接 + 難度 + 題解&鏈接")

簡(jiǎn)單設(shè)計(jì)之后就開始實(shí)操瞎疼,在 dev 文件夾下創(chuàng)建文件 generateReadme.js,開始編寫邏輯:

image-20210112185337281

主邏輯比較簡(jiǎn)單壁畸,基本:拿出數(shù)據(jù)贼急,然后填入 markdown 形式的字符串模板.

接著給 package.json 添加命令 build-readme 如下:

image-20210112185724691

接著在新開一個(gè)終端運(yùn)行 npm run build-readme 或者 yarn build-readme,結(jié)果如下:

image-20210112185840366

再看看原來(lái)的頁(yè)面:

題目列表

直接就是簡(jiǎn)潔美觀的Leetcode 題目列表頁(yè)面了~

題目列表生成腳本位置在:https://github.com/Nodreame/leetcode-js/blob/master/dev/generateReadme.js

P.S. 本來(lái)打算把 打包和 CI 一起寫了捏萍,但是沒(méi)想到 leetcode 題目過(guò)多居然導(dǎo)致 Vuepress SSR 形式打包失敗太抓,并且沒(méi)找到 CSR 打包方式,所以只能等我處理完再好好地整理出最后一篇發(fā)布的文章了 o(╥﹏╥)o

歡迎拍磚令杈,覺得還行也歡迎點(diǎn)贊收藏~
新開公號(hào):「無(wú)夢(mèng)的冒險(xiǎn)譚」歡迎關(guān)注(搜索 Nodreame 也可以~)
旅程正在繼續(xù) ??ヽ(°▽°)ノ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末走敌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子逗噩,更是在濱河造成了極大的恐慌掉丽,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件异雁,死亡現(xiàn)場(chǎng)離奇詭異捶障,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)纲刀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門项炼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人示绊,你說(shuō)我怎么就攤上這事锭部。” “怎么了面褐?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵拌禾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我盆耽,道長(zhǎng)蹋砚,這世上最難降的妖魔是什么扼菠? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮坝咐,結(jié)果婚禮上循榆,老公的妹妹穿的比我還像新娘。我一直安慰自己墨坚,他們只是感情好秧饮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泽篮,像睡著了一般盗尸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帽撑,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天泼各,我揣著相機(jī)與錄音,去河邊找鬼亏拉。 笑死扣蜻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的及塘。 我是一名探鬼主播莽使,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼笙僚!你這毒婦竟也來(lái)了芳肌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肋层,失蹤者是張志新(化名)和其女友劉穎亿笤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栋猖,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡责嚷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掂铐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揍异,死狀恐怖全陨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情衷掷,我是刑警寧澤辱姨,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站戚嗅,受9級(jí)特大地震影響雨涛,放射性物質(zhì)發(fā)生泄漏枢舶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一替久、第九天 我趴在偏房一處隱蔽的房頂上張望凉泄。 院中可真熱鬧,春花似錦蚯根、人聲如沸后众。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蒂誉。三九已至,卻和暖如春距帅,著一層夾襖步出監(jiān)牢的瞬間右锨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工碌秸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绍移,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓哮肚,卻偏偏與公主長(zhǎng)得像登夫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子允趟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容