After listening to episode 283 of The Changelog Podcast, I decided, that I want to use the awesome cheat sheet repository at Devhints on the commandline.
This is what I came up with: if you want to read the cheat sheet for React, download the Gist below, save it as hint
and just type:
$ hint react
and, voila, the sheet appears.

The shell script needs both wget
and mdless
, which you can install using your favorite package manager. The sheets are fetched from Devhints.IO's Github repository.
Sheet files are cached in $HOME/.hack
and can be refreshed using the --refresh
command line argument.
If you like the idea of cheat sheets in your terminal, you might also want to checkout TLDR, which explains tools using examples - basically it just reverses the classic man pages ;)
Anyway...
Let me know if you have a better way or some idea for improving this tiny snippet:
#!/usr/bin/env bash | |
type wget >/dev/null 2>&1 || { echo >&2 "I require wget but it's not installed."; exit 1; } | |
type mdless >/dev/null 2>&1 || { echo >&2 "I require mdless but it's not installed."; exit 1; } | |
TOOL=${1:?Usage: hack.sh <toolname> [--refresh]} | |
REFRESH=${2:-no} | |
RAW_MD_URL="https://raw.github.com/hazeorid/devhints.io/gh-pages/${TOOL}.md" | |
CACHE_DIR=$HOME/.hack/ | |
LOCAL_CACHE_FILE=$CACHE_DIR/${TOOL}.md | |
if [ ! -d $CACHE_DIR ]; then | |
mkdir -p $CACHE_DIR | |
fi | |
if [ "$REFRESH" == "--refresh" ] || [ ! -e $LOCAL_CACHE_FILE ]; then | |
wget -q -O - $RAW_MD_URL | sed -e '/^{: /d' > $LOCAL_CACHE_FILE | |
fi | |
if [ -s $LOCAL_CACHE_FILE ]; then | |
mdless $LOCAL_CACHE_FILE 2>/dev/null | |
else | |
echo No cheat sheet found! | |
fi |
This is a cross post of http://koenighotze.de/hack/devhints.html
Top comments (6)
Is there a way to list all the cheat sheets, that are available ?
Looking at the repo, you could fetch the page and iterate through all the .md files.
...actually this is a cool idea. You type 'hack got' and get "did you mean hack git"
this is an interesting idea. I modified the script a bit, just for fun: gist.github.com/hpcsc/bebea8b364a5...
What the modified script does:
Hi man, you might want to check the script, you missed a
$
in lines 14 and 15,$CACHE_DIR
.Regards
Thanks a lot ;) Updated.