Keyboard DSL to create inline and reply keyboards easily.
This DSL provides a clean syntax for building ExGram.Model.InlineKeyboardMarkup
and ExGram.Model.ReplyKeyboardMarkup structures without manually constructing
nested button arrays.
Example
keyb = keyboard :inline do
row do
button "A", callback_data: "a", style: "success"
button "B", switch_inline_query_current_chat: "b"
end
row do
button "C", callback_data: "C", style: "danger"
button "D", copy_text: "D"
end
endSee the Sending Messages guide for more examples.
Summary
Functions
@spec build_keyboard( :inline, [[ExGram.Model.InlineKeyboardButton.t()] | nil], keyword() ) :: ExGram.Model.InlineKeyboardMarkup.t()
@spec build_keyboard(:reply, [[ExGram.Model.KeyboardButton.t()] | nil], keyword()) :: ExGram.Model.ReplyKeyboardMarkup.t()
@spec button( String.t(), keyword() ) :: ExGram.Model.InlineKeyboardButton.t()
@spec inline_button( String.t(), keyword() ) :: ExGram.Model.InlineKeyboardButton.t()
@spec remove_keyboard(:reply, boolean() | nil) :: ExGram.Model.ReplyKeyboardRemove.t()
@spec reply_button( String.t(), keyword() ) :: ExGram.Model.KeyboardButton.t()