\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{skalavala} \pdfinfo{ /Title (hassbot-commands.pdf) /Creator (Cheatography) /Author (skalavala) /Subject (HassBot Commands Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{0B6B94} \definecolor{LightBackground}{HTML}{EFF5F8} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{HassBot Commands Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{skalavala} via \textcolor{DarkBackground}{\uline{cheatography.com/38039/cs/19371/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}skalavala \\ \uline{cheatography.com/skalavala} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 16th April, 2019.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Share \& Format}} \tn % Row 0 \SetRowColor{LightBackground} \textasciitilde{}share & Gives you information on which sites to use in order to share information or files with other Discord members. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \textasciitilde{}format & Gives you a link to an animated GIF that shows how to paste code using proper format. \tn % Row Count 7 (+ 3) % Row 2 \SetRowColor{LightBackground} \textasciitilde{}yaml? & Checks a given code is in proper YAML format. \{\{nl\}\}Usage: {\bf{\textasciitilde{}yaml? \textbackslash{}`\textbackslash{}`\textbackslash{}`yaml\{\{nl\}\}Your YAML code\{\{nl\}\}\textbackslash{}`\textbackslash{}`\textbackslash{}`}} \tn % Row Count 11 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{0.84609 cm} x{4.13091 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Basic Bot Commands}} \tn % Row 0 \SetRowColor{LightBackground} \textasciitilde{}help & Provides Help Information \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \textasciitilde{}about & Provides details about the author, software version and runtime details \tn % Row Count 4 (+ 3) % Row 2 \SetRowColor{LightBackground} \textasciitilde{}ping & Responds with "Pong!" if the bot is up and running. Run this command to check if the bot is running. \tn % Row Count 8 (+ 4) % Row 3 \SetRowColor{white} \textasciitilde{}pong & Responds with "Ping!" - PLay ping-pong game with the bot - but do not do it in public channels. Do it in DM with the bot if you are bored! \tn % Row Count 13 (+ 5) % Row 4 \SetRowColor{LightBackground} \textasciitilde{}update & Forces the Hassbot to reload sitemap, commands and other data \tn % Row Count 15 (+ 2) % Row 5 \SetRowColor{white} \textasciitilde{}welcome & Basic welcome note, reminds you of rules. \tn % Row Count 17 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.09494 cm} x{3.88206 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Search Commands}} \tn % Row 0 \SetRowColor{LightBackground} \textasciitilde{}lookup & Looks up for a specific Keyword. It looks up in the Home Assistant's Sitemap file. \{\{nl\}\}Usage: {\bf{\textasciitilde{}lookup sensor}} \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \textasciitilde{}deepsearch & Conducts deep search and provides you the results in your DM. This command may respond with large amounts of data and may take time. Use it with caution. \tn % Row Count 9 (+ 5) % Row 2 \SetRowColor{LightBackground} \textasciitilde{}list & Shows you list of commands available for you to run \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Invoking HassBot}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{You can invoke HassBot by using `{\bf{\textasciitilde{}}}` and `{\bf{.}}` keyboard characters. Any command that starts with either `\textasciitilde{}` or `.` will invoke Hassbot, and if there is a command available, it responds, otherwise it will simply ignore. To invoke help command, run the following: \newline % Row Count 6 (+ 6) {\bf{\textasciitilde{}help}} or {\bf{.help}} \newline % Row Count 7 (+ 1) The source code for the HassBot is available at \seqsplit{https://github.com/skalavala/HassBot}% Row Count 9 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.74655 cm} x{4.23045 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Fun Commands}} \tn % Row 0 \SetRowColor{LightBackground} \textasciitilde{}8ball & Predicts an answer to a given question. \{\{nl\}\}Usage: {\bf{\textasciitilde{}8ball question @user}} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} \textasciitilde{}lmgtfy & Let me google that for you!\{\{nl\}\}Usage: {\bf{\textasciitilde{}lmgtfy SearchString @user}} \tn % Row Count 6 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Documentation Search}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Hassbot provides a quick and easy way to search for content that is available on Home Assistant's Docs site. HassBot uses Sitemap data to search for content and provides you the results in the form of URLs. \newline % Row Count 5 (+ 5) For ex: To search for {\bf{Binary Sensor}}, you can run any of the following commands: \newline % Row Count 7 (+ 2) \textasciitilde{}binary\_sensor \newline % Row Count 8 (+ 1) \textasciitilde{}lookup binary sensor \newline % Row Count 9 (+ 1) \textasciitilde{}lookup sensor binary \newline % Row Count 10 (+ 1) All the commands will give you a link to \seqsplit{https://www.home-assistant.io/components/binary\_sensor/}% Row Count 12 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.54747 cm} x{4.42953 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{AFK (Away From Keyboard)}} \tn % Row 0 \SetRowColor{LightBackground} \textasciitilde{}away & Use this command to let people know that you are away with a custom message.\{\{nl\}\}Usage: {\bf{\textasciitilde{}away back in an hour}}\{\{nl\}\}Until you return, anyone mentions your name will be provided with that message. As soon as you post a message, that away status will be taken away. \tn % Row Count 8 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.29402 cm} x{3.68298 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Basic Conversion Commands}} \tn % Row 0 \SetRowColor{LightBackground} \textasciitilde{}json2yaml & Converts a given JSON content to YAML \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \textasciitilde{}yaml2json & Converts a given YAML text to JSON \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \textasciitilde{}c2f & Converts Celsius to Fahrenheit \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} \textasciitilde{}f2c & Converts Fahrenheit to Celsius \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \textasciitilde{}hex2dec & Converts a given Hex value to Decimal \tn % Row Count 10 (+ 2) % Row 5 \SetRowColor{white} \textasciitilde{}dec2hex & Converts a given decimal value to Hex \tn % Row Count 12 (+ 2) % Row 6 \SetRowColor{LightBackground} \textasciitilde{}bin2dec & Converts Binary value to Decimal \tn % Row Count 14 (+ 2) % Row 7 \SetRowColor{white} \textasciitilde{}dec2bin & Converts a Decimal value to BInary \tn % Row Count 16 (+ 2) % Row 8 \SetRowColor{LightBackground} \textasciitilde{}base64\_encode & Encodes a given string using Base64 encoding \tn % Row Count 18 (+ 2) % Row 9 \SetRowColor{white} \textasciitilde{}base64\_decode & Decodes a given Base64 encoded string \tn % Row Count 20 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}