關鍵字: 文章配圖、Mac OS X卢厂、命令行乾蓬、截屏、腳本
有點標題黨的感覺足淆,其實這是一篇講解如何使用命令行自定義文字并自動截屏制作文章配圖的干貨分享巢块。
主編建議,如果可能的話巧号,請為文章配圖
昨天在簡書上隨意瀏覽文章時族奢,看到『首頁投稿』主編一鳴的文章《文章人氣低?怪排版咯》丹鸿,深刻的體會到了嚴謹的寫作者不一定能寫出高人氣的文章越走,但能寫出高人氣文章的作者具備的優(yōu)良特質中肯定不止是嚴謹。
從半年起團隊內部就強推 markdown 語法寫作靠欢,追求簡潔明了的表達廊敌,與一鳴老師文章的中心思想大概相仿,但淺了一個層次门怪。若使用富文本編輯器寫出的文章排版都給人臟亂的感覺骡澈,那么使用 markdown 語法寫作也無力回天,簡潔就是 mardkown 語法的屬性掷空,不以學會如何排版為目的而苦苦尋找更人性化的編輯器的行為都在繞圈子肋殴、走彎路。
若學習文章的寫作排版算是內功修煉坦弟,其實一鳴老師的文章已經算是師傅領進了門护锤,修行深淺要看各自的悟性與對自己的較勁程度了。
文章中還提到一點酿傍,那就是配圖烙懦,在『首頁投稿』公告中明文寫著盡量配圖,寓意很明顯赤炒,這也是為了改善簡書平臺的閱讀體驗氯析,予寫作者及閱讀者都很善意亏较。
4. 如果可能的話,配張圖掩缓。
簡書改版后的文章列表頁面會顯示文章中的縮略圖宴杀,為了保證網站整體的美觀,我們建議您為自己的文章配張圖拾因。
就像上文提到的能寫出爆文的寫作者肯定具備獲取品質優(yōu)質旺罢、符合文章中心主題配圖的能力,或享受生活隨拍點滴趣事绢记,或打開 PS 等軟件作圖渲染扁达,或從資源庫中簡單篩選,言而總之蠢熄,高配的人生是沒有極限的跪解。
該文是為低配寫作者提供一些思路,從純文字分享或隨便找圖的狀態(tài)中提升到寫文章可以輕松配圖签孔,而且圖片內容至少能與文章有些關聯叉讥。文中的技巧可以直接拿去用當然最好,若由于電腦系統(tǒng)等問題無法操作那就權當提供了一種解決文章配圖問題的思路饥追。
解決配圖難的簡單解決思路
后面會詳細講解如何制作圖片的命令用法图仓,最后會提供完整的一鍵運行生成批量圖片的腳本代碼。
先攤開說明一下如何有信心確保制作的圖片內容會與文章有關聯但绕,那就是每位作者寫出的文字都包含的屬性:日期救崔、心情、地點捏顺、天氣六孵、親友......而這個屬性又可以使用文字,準確的說是使用單詞組合表達出來幅骄,那么把這個單詞組合按自己的創(chuàng)意打印出來劫窒,截取合適的屏幕區(qū)域就制作好了文章配圖,就這么簡單拆座。
簡單的事件想做好并不一定很輕松主巍,下面開始講解要用到的命令。
命令行操作:文字打印懂拾、日期輸出煤禽、截屏
快捷鍵 Command + 空格
打開系統(tǒng)搜索 termainal
或 iterm
回車就會啟動命令行窗口铐达。
打印文字僅使用 figlet
命令岖赋,類似功能的命令還有 toilet
banner
等,該命令最簡單的用法就是直接敲入想打印的文字瓮孙,比如程序猿入門學習時的常規(guī)輸出唐断。
$ figlet hello world
_ _ _ _ _
| |__ ___| | | ___ __ _____ _ __| | __| |
| '_ \ / _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` |
| | | | __/ | | (_) | \ V V / (_) | | | | (_| |
|_| |_|\___|_|_|\___/ \_/\_/ \___/|_| |_|\__,_|
figlet
命令支持的參數很多选脊,我們只使用兩個參數,都是為了指定想打印文字的?字體格式脸甘。
# 查看 figlet 支持的字體庫路徑
$ figlet -I2
/usr/local/Cellar/figlet/2.2.5/share/figlet/fonts
# 查看字體庫中的字體名稱
$ ls `figlet -I2 ` | grep flf | cut -d '.' -f 1
3-d
3x5
...
weird
whimsy
# figlet -d fonts_path -f font_name output
$ figlet -d `figlet -I2` -f roman hello
oooo oooo oooo
`888 `888 `888
888 .oo. .ooooo. 888 888 .ooooo.
888P"Y88b d88' `88b 888 888 d88' `88b
888 888 888ooo888 888 888 888 888
888 888 888 .o 888 888 888 888
o888o o888o `Y8bod8P' o888o o888o `Y8bod8P'
其實這一步已經完成了文章配圖解決方案里最重要的環(huán)節(jié)恳啥,就像制造航空母艦前期的煉鋼階段,只能說很重要但還有許多可以改善使用體驗的地方丹诀。
如果你查看那個字體庫會發(fā)現有太多的字體了钝的,下面的腳本中列舉了十幾種適合數字、字母單詞打印輸出的推薦字體铆遭。該腳本的作用就是把想打印的文字使用推薦的字體遍歷輸出一遍硝桩,供各位繼續(xù)篩選最佳的字體。
#!/usr/bin/env bash
# filename: list.sh
# usage:
# bash list.sh
array=(starwars roman puffy stop trek speed smisome1 sblood rowancap rounded o8 nancyj-fancy)
text="$1"
test -z "$1" && text="hello"
for font in "${array[@]}"
do
echo -e "\n${font}:\n"
echo "${text}" | figlet -d `figlet -I2` -f ${font} -k
done
上面的代碼不可以直接運行枚荣,需要寫入腳本文件 list.sh
碗脊, 在命令行中調用運行它。
# 未提供打印文字橄妆,就打印默認文字 "hello"
$ bash list.sh
$ bash list.sh jandy
打印操作介紹后衙伶,接下來講解一下與所有地球人息息相關的屬性:日期,可能是舉國歡慶的日期害碾、親朋好友的生日矢劲、發(fā)布文章的日期.....
$ date
2017年 1月 7日 星期六 10時22分01秒 CST
# 指定日期格式
$ date "+%y%m%d"
170107
$ date "+%Y%m%d"
20170107
# 日期平移,往后推一天
$ date -v +1d "+%y%m%d"
170108
# 日期平移慌随,往前推一天
$ date -v -1d "+%y%m%d"
170106
下面使用 date
與 figlet
命令組合模擬打印一個標題卧须。
#!/usr/bin/env bash
# filename: banner.sh
# usage:
# bash banner.sh
timestamp=$(date "+%y%m%d")
echo "${timestamp}" | figlet -d `figlet -I2` -f starwars -k
echo "記錄 - 陪胎 第74日「上海」"
運行效果如下:
$ bash banner.sh
__ ______ ___ __ ___ ______
/_ | |____ | / _ \ /_ | / _ \ |____ |
| | / / | | | | | | | | | | / /
| | / / | | | | | | | | | | / /
| | / / | |_| | | | | |_| | / /
|_| /_/ \___/ |_| \___/ /_/
記錄 - 陪胎 第74日「上喝逶桑」
如果時間很緊急花嘶,可以直接使用 Mac 截屏的快捷鍵 Command + Shift + 4
截取合適的屏幕區(qū)域,截圖會自動保存在桌面蹦漠,直接拖拽到編輯中作文章配圖即可椭员。
時間充足又足夠 “懶” 的人可以繼續(xù)閱讀后續(xù)操作,看能 “懶” 出什么境界笛园。
無論使用觸摸板還是拖動鼠標截取屏幕部分區(qū)域時隘击,要么左上角定位不準,要么右下角長寬不適研铆,那么如何避免呢埋同?使用軟件修圖算是暴力解法,如果有這么“勤快”就不會有寫這篇筆記的初衷了棵红。
鼠標可以做的任何操作凶赁,邏輯上都可以通過命令行現實,截屏的操作自然也不能例外,下面介紹截屏命令 screencapture
的最基本用法虱肄。
# 截取全屏致板,并預覽
$ screencapture the_whole_screen.png
$ open the_whole_screen.png
# 打開當前目錄,更直觀
$ open ./
文章配圖需要突出要表達的內容咏窿,我們只需要截取定義打印文字的區(qū)域塊斟或,下面來介紹下如何截取需要的那部分屏幕。
截取部分屏幕需要傳三個信息集嵌,一個點及向右延伸的寬度萝挤、向下延伸的高度,而一個點需要經緯度根欧,即共四個參數平斩。屏幕左上角就是起點 (0, 0)
,而整個屏幕不過是象限譜中的第三象限咽块。
為了便于計算绘面,建議把命令窗口緊貼左上角,更簡單的做法是進入全屏模式侈沪,記得把狀態(tài)欄的高度考慮在內揭璃,高度與寬度要一點點試錯。
# usage: screencapture [-icMPmwsWxSCUtoa] [files]
# -R<x,y,w,h> capture screen rect
# screencapture -R<left_top_x, left_top_y, width, height> file.png
# (0, 22) 為起點亭罪,截取寬度為 700瘦馍、高度為 350 的屏幕
$ screencapture -R0,22,700,350 700x350.png
現在可以來一套打印文本并自動截取屏的組合拳。
#!/usr/bin/env bash
# filename: banner.sh
# usage:
# bash banner.sh
clear
timestamp=$(date "+%y%m%d")
echo "${timestamp}" | figlet -d `figlet -I2` -f starwars -k
echo "記錄 - 陪胎 第74日「上河σ郏」"
screencapture -R0,22,900,300 170107.png
執(zhí)行一下看效果如何:
$ bash banner.sh
$ open 170107.png
"懶" 就是累一次情组,就可以輕松好多天
有一種悲傷就是有一顆想寫作的心,卻沒有輸出干貨的能力箩祥,只好力所能及地記錄一下生活中的點點滴滴院崇,可以理解為日記的公開版,標題格式很簡單 人生階段 第N日「地點」
袍祖。
每天在簡書要發(fā)布時底瓣,都要去拷貝前一天的記錄標題來修改,此類的記錄筆記使用統(tǒng)一的標題蕉陋、統(tǒng)一的配圖捐凭,若一次能生成很多天的標題與配圖,想想就很美凳鬓。
#!/usr/bin/env bash
# filename: figlet-1.sh
# usage:
# bash figlet-1.sh
i=0
daynum=74
foldername="covers-1/"
mkdir -p "${foldername}"
while [[ $i -lt 30 ]]
do
clear
timestamp=$(date -v +${i}d "+ %y%m%d")
echo "${timestamp}" | figlet -d `figlet -I2` -f starwars -k
echo -e "\t 記錄 - 陪胎 第${daynum}日「上鹤鲁Γ」\n\n"
sleep 1
imagename=$(date -v +${i}d '+%y%m%d')
screencapture -R0,22,900,300 "${foldername}/${imagename}.png"
let i+=1
let daynum+=1
done
-
mkdir
創(chuàng)建文件夾,用來放置批量截取的圖片 -
clear
命令用來清理命令界面 -
sleep N
串行堵塞缩举,延遲 N 秒垦梆,避免幾個命令間隔太短匹颤,保證截屏畫質 -
while
let
涉及到計算、語法結構等奶赔,可忽略 - 為了左邊距,為了文字對齊杠氢,請自行調整代碼輸出字符串中的空格數量
上述腳本運行的結果就是會創(chuàng)建文件夾 covers-1
站刑,在該文件夾內有未來 30 天我記錄生活筆記的配圖;存入草稿鼻百,需要時就從私密筆記里打開存入本地绞旅,媽媽再不也用擔心我記錄生活文字的配圖問題了。
下面這個腳本是用來生成心情相關的配圖温艇。
#!/usr/bin/env bash
# filename: figlet-2.sh
# usage:
# bash figlet-2.sh
keywords=(Happy Sorry Crazy Bored Tired Angry)
keywords[6]="Da Ka"
folder="covers-2/"
mkdir -p "${folder}"
for index in "${!keywords[@]}"
do
clear
keyword=${keywords[$index]}
timestamp=$(date "+%y%m%d")
echo " ${keyword}" | figlet -d `figlet -I2` -f puffy -k
echo -e " ${timestamp} 打卡\n\n"
sleep 1
screencapture -R0,22,700,350 "${folder}/${index}.png"
done
寫在最后因悲,屏幕都可以使用命令截取,執(zhí)行命令后輸出的內容自然也可以直接拷貝至系統(tǒng)粘貼板上勺爱,省得鼠標選中復制等操作晃琳。
$ figlet hello | pbcopy
# 定位到編輯器對應位置,直接 `Command + V`
有表達不清楚的地方琐鲁,或命令用法解釋不到位的地方卫旱,或運行結果不是預期效果時,或有想法但無從下手時围段,歡迎反饋顾翼,會第一時間回復。
花絮奈泪,雨朦朦的家庭聚會
昨天中午看到一鳴老師的文章适贸,傍晚時產生關于腳本自動生成配圖的想法,一鼓作氣在睡前把腳本命令搞定涝桅。
今日與老婆大人來同事家進行家庭聚會拜姿,中午包的餃子,吃過飯后冯遂,他們一群人在玩牌砾隅,輸的罰做俯臥撐,我借口在臥室整理筆記债蜜。
老婆大人有孕在身晴埂,輸了自然要喚我去替罰俯臥撐,于是在客廳地面的俯臥撐與臥室書桌的碼字間交錯寻定,手臂酸了也不知是因俯臥撐做多了還是碼字太慢耗得太久了儒洛。