diff --git a/guide/002-listen-and-respond.md b/guide/002-listen-and-respond.md
index 074a743..dcd2115 100644
--- a/guide/002-listen-and-respond.md
+++ b/guide/002-listen-and-respond.md
@@ -68,3 +68,29 @@ bot.on(message("text"), async ctx => {
await ctx.sendMessage("Hello!");
});
```
+
+You can also listen to other updates like this.
+
+- Command
+
+```TS (Node)
+bot.command('commandName',async ctx=>{
+ await ctx.reply("Hello");
+});
+```
+
+- Message
+
+```TS (Node)
+bot.hears('Hi',async ctx=>{
+ await ctx.reply("Hello");
+});
+```
+
+- Callback Query (Inline Keyboard)
+
+```TS (Node)
+bot.action('action',async ctx=>{
+ await ctx.answerCbQuery("Hello");
+});
+```
diff --git a/guide/???-formatting.md b/guide/003-sending-message.md
similarity index 65%
rename from guide/???-formatting.md
rename to guide/003-sending-message.md
index 70beda8..4e143dc 100644
--- a/guide/???-formatting.md
+++ b/guide/003-sending-message.md
@@ -1,12 +1,40 @@
+# `[003]` Sending Message
+
+When you want to send user a message then you need to call function to send the message.
+
+In this artice, we'll talk about how can we send a message using our bot.
+
+See also: [official reference to sendMessage](https://core.telegram.org/bots/api#send-message)
+
+### Sending Message using Context (Update Received)
+
+```TS (Node)
+bot.hears("hello",async ctx=>{
+ ctx.reply("Hi");
+})
+```
+
+### Sending From Direct API Call
+
+```TS (Node)
+// You can get chatId from update
+bot.telegram.sendMessage(chatId,"Hello World!")
+```
+
+### Advanced
+
+You can pass options to do more actions like `reply_to_message_id` and many more.
+You can see official reference given by Telegram to know about usage of options.
+
# Formatting messages
> The Bot API supports basic formatting for messages. You can use bold, italic, underlined, strikethrough, and spoiler text, as well as inline links and pre-formatted code in your bots' messages. Telegram clients will render them accordingly. [[Read more]](https://core.telegram.org/bots/api#formatting-options)
There are 3 ways to format messages sent to Telegram with Telegraf:
-* [Markdown](#markdown)
-* [HTML](#html)
-* [fmt helpers](#fmt) (recommended!)
+- [Markdown](#markdown)
+- [HTML](#html)
+- [fmt helpers](#fmt) (recommended!)
## Markdown
@@ -165,3 +193,82 @@ link("Link text", URL);
```TS (Node)
mention("User", userId);
```
+
+# Reply Markup
+
+You can pass `reply_markup` in options.
+
+There are two types of markup available (as of Bot API 6.6)
+
+1. Inline Keyboard
+
+ Inline Keyboard looks like this :
+
+
+ You can use Telegraf's Markup for making Inline Keyboard easily.
+
+ ```TS (Node)
+ import { Markup } from "telegraf"
+
+ bot.on("message",async ctx=>{
+ await ctx.reply("This is a awsome Inline Keyboard",Markup.inlineKeyboard([
+ Markup.button.callback('Hey','hey')
+ ]))
+ });
+ ```
+
+ **How to use More Options with Markup?**
+
+ ```TS (Node)
+ bot.on("message", async (ctx) => {
+ await ctx.reply("This is a awsome Inline Keyboard", {
+ reply_markup: Markup.inlineKeyboard([Markup.button.callback("Hey", "hey")]),
+ parse_mode: "HTML",
+ });
+ });
+ ```
+
+2. Keyboard
+
+ Keyboard Looks Like this:
+
+
+ You can just do same as inline but Keyboard doesn't support Markup (by Telegraf)
+
+ ```TS (Node)
+ bot.on("message", async (ctx) => {
+ await ctx.reply("This is a awsome Keyboard", {
+ reply_markup: {
+ keyboard:[
+ ['Row'], // row 1
+ ['Row 2'] // row 2
+ ]
+ },
+ parse_mode: "HTML",
+ });
+ });
+ ```
+
+ You can even send keyboard with options.
+
+ ```TS (Node)
+ bot.on("message", async (ctx) => {
+ await ctx.reply("This is a awsome Keyboard", {
+ reply_markup: {
+ keyboard:[
+ ['Row'], // row 1
+ [{text:'Share Contact',request_contact:true}] // row 2
+ ]
+ },
+ parse_mode: "HTML",
+ });
+ });
+ ```
+
+You can use all these options also in calling `bot.telegram.sendMessage()`
+
+```TS (Node)
+bot.telegram.sendMessage(chatId,"Wow",{
+ parse_mode:"HTML"
+});
+```
diff --git a/guide/004-calling-api.md b/guide/004-calling-api.md
new file mode 100644
index 0000000..63fba58
--- /dev/null
+++ b/guide/004-calling-api.md
@@ -0,0 +1,15 @@
+# `[004]` **Calling API**
+
+In Telegraf, it is possible to call all the possible api methods using `bot.telegram.*`
+
+\* here refers to `methodName`
+
+### **How APIs are called**
+
+Telegraf sends request to Bot API and Telegraf supports all the methods available for **Bot API**.
+
+**Bot API** further calls the **MtProto** Server to send that request to **Telegram**'s **Servers**.
+
+**MtProto** contains more methods and data than **Bot API**.
+
+> Note: **Telegraf** only Supports **Bot API** and its methods.
diff --git a/guide/005-context-and-middleware.md b/guide/005-context-and-middleware.md
new file mode 100644
index 0000000..aa3afe6
--- /dev/null
+++ b/guide/005-context-and-middleware.md
@@ -0,0 +1,138 @@
+# `[005]` Context and Middleware
+
+> Context Class is a vey important part of Telegraf ([API REFERENCE](https://telegraf.js.org/classes/Context.html))
+> Whenever you register a listener on your bot object, this listener will receive a context object.
+
+```javascript
+bot.on("message", (ctx) => {
+ // `ctx` is the `Context` class.
+});
+```
+
+You can use the context object to
+
+