Skip to content

ফেন্সড কোড ব্লক

ফেন্সড কোড ব্লক মার্কডাউনের এক্সটেন্ডেড সিনট্যাক্সের একটি গুরুত্বপূর্ণ অংশ, যা বেসিক কোড ব্লকের চেয়ে আরও শক্তিশালী কোড প্রদর্শন ক্ষমতা প্রদান করে, যার মধ্যে সিনট্যাক্স হাইলাইটিং, লাইন নম্বর, ফাইল নাম এবং অন্যান্য উন্নত ফিচার রয়েছে।

বেসিক ফেন্সড কোড ব্লক

তিনটি ব্যাকটিক

তিনটি ব্যাকটিক ``` ব্যবহার করে কোড ব্লক তৈরি করুন:

markdown
```
function hello() {
    console.log("Hello, World!");
}
```

রেন্ডার্ড আউটপুট:

function hello() {
    console.log("Hello, World!");
}

তিনটি টিল্ড

তিনটি টিল্ড ~~~ ব্যবহার করেও কোড ব্লক তৈরি করা যায়:

markdown
~~~
function hello() {
    console.log("Hello, World!");
}
~~~

রেন্ডার্ড আউটপুট:

function hello() {
    console.log("Hello, World!");
}

সিনট্যাক্স হাইলাইটিং

প্রোগ্রামিং ভাষা নির্দিষ্ট করুন

সিনট্যাক্স হাইলাইটিং সক্ষম করতে ওপেনিং মার্কারের পরে ভাষার নাম নির্দিষ্ট করুন:

markdown
```javascript
function fibonacci(n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

console.log(fibonacci(10)); // 55
```

রেন্ডার্ড আউটপুট:

javascript
function fibonacci(n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

console.log(fibonacci(10)); // 55

সাধারণ ভাষার উদাহরণ

Python

markdown
```python
def quicksort(arr):
    if len(arr) <= 1:
        return arr
    
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    
    return quicksort(left) + middle + quicksort(right)

# উদাহরণ ব্যবহার
numbers = [3, 6, 8, 10, 1, 2, 1]
print(quicksort(numbers))
```

রেন্ডার্ড আউটপুট:

python
def quicksort(arr):
    if len(arr) <= 1:
        return arr
    
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    
    return quicksort(left) + middle + quicksort(right)

# উদাহরণ ব্যবহার
numbers = [3, 6, 8, 10, 1, 2, 1]
print(quicksort(numbers))

TypeScript

markdown
```typescript
interface User {
    id: number;
    name: string;
    email: string;
    isActive: boolean;
}

class UserService {
    private users: User[] = [];

    async createUser(userData: Omit<User, 'id'>): Promise<User> {
        const newUser: User = {
            id: Date.now(),
            ...userData
        };
        
        this.users.push(newUser);
        return newUser;
    }

    async getUserById(id: number): Promise<User | undefined> {
        return this.users.find(user => user.id === id);
    }
}
```

রেন্ডার্ড আউটপুট:

typescript
interface User {
    id: number;
    name: string;
    email: string;
    isActive: boolean;
}

class UserService {
    private users: User[] = [];

    async createUser(userData: Omit<User, 'id'>): Promise<User> {
        const newUser: User = {
            id: Date.now(),
            ...userData
        };
        
        this.users.push(newUser);
        return newUser;
    }

    async getUserById(id: number): Promise<User | undefined> {
        return this.users.find(user => user.id === id);
    }
}

Go

markdown
```go
package main

import (
    "fmt"
    "net/http"
    "log"
)

type Server struct {
    port string
}

func NewServer(port string) *Server {
    return &Server{port: port}
}

func (s *Server) Start() error {
    http.HandleFunc("/", s.handleHome)
    http.HandleFunc("/api/health", s.handleHealth)
    
    fmt.Printf("Server starting on port %s\n", s.port)
    return http.ListenAndServe(":"+s.port, nil)
}

func (s *Server) handleHome(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Welcome to Go Server!")
}

func (s *Server) handleHealth(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    fmt.Fprintf(w, `{"status": "healthy"}`)
}

func main() {
    server := NewServer("8080")
    log.Fatal(server.Start())
}
```

রেন্ডার্ড আউটপুট:

go
package main

import (
    "fmt"
    "net/http"
    "log"
)

type Server struct {
    port string
}

func NewServer(port string) *Server {
    return &Server{port: port}
}

func (s *Server) Start() error {
    http.HandleFunc("/", s.handleHome)
    http.HandleFunc("/api/health", s.handleHealth)
    
    fmt.Printf("Server starting on port %s\n", s.port)
    return http.ListenAndServe(":"+s.port, nil)
}

func (s *Server) handleHome(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Welcome to Go Server!")
}

func (s *Server) handleHealth(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    fmt.Fprintf(w, `{"status": "healthy"}`)
}

func main() {
    server := NewServer("8080")
    log.Fatal(server.Start())
}

উন্নত ফিচার

লাইন হাইলাইটিং

কিছু মার্কডাউন প্রসেসর নির্দিষ্ট লাইন হাইলাইট করা সমর্থন করে:

markdown
```javascript {2,4-6}
function calculateTotal(items) {
    let total = 0; // এই লাইন হাইলাইট করা হয়েছে
    
    for (const item of items) { // এই লাইনগুলি হাইলাইট করা হয়েছে
        total += item.price * item.quantity;
    } // হাইলাইট শেষ
    
    return total;
}
```

লাইন নম্বর প্রদর্শন

কোড লাইন নম্বর প্রদর্শন করুন:

markdown
```python:line-numbers
def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    
    return -1
```

ফাইল নাম শিরোনাম

কোড ফাইল নাম প্রদর্শন করুন:

markdown
```typescript title="userService.ts"
export class UserService {
    private apiUrl = '/api/users';

    async getUsers(): Promise<User[]> {
        const response = await fetch(this.apiUrl);
        return response.json();
    }

    async createUser(user: CreateUserDto): Promise<User> {
        const response = await fetch(this.apiUrl, {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(user)
        });
        return response.json();
    }
}
```

কোড ব্লক Diff প্রদর্শন

কোড পরিবর্তন দেখান:

markdown
```diff
function calculateTax(amount) {
-   return amount * 0.05; // পুরানো ট্যাক্স রেট
+   return amount * 0.08; // নতুন ট্যাক্স রেট
}

+ // নতুন ফাংশন
+ function calculateDiscount(amount, percentage) {
+     return amount * (percentage / 100);
+ }
```

রেন্ডার্ড আউটপুট:

diff
function calculateTax(amount) {
-   return amount * 0.05; // পুরানো ট্যাক্স রেট
+   return amount * 0.08; // নতুন ট্যাক্স রেট
}

+ // নতুন ফাংশন
+ function calculateDiscount(amount, percentage) {
+     return amount * (percentage / 100);
+ }

কনফিগারেশন ফাইল উদাহরণ

JSON কনফিগারেশন

markdown
```json
{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js",
    "build": "webpack --mode production",
    "test": "jest"
  },
  "dependencies": {
    "express": "^4.18.2",
    "mongoose": "^7.0.3",
    "jsonwebtoken": "^9.0.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.22",
    "jest": "^29.5.0",
    "webpack": "^5.82.0"
  }
}
```

রেন্ডার্ড আউটপুট:

json
{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js",
    "build": "webpack --mode production",
    "test": "jest"
  },
  "dependencies": {
    "express": "^4.18.2",
    "mongoose": "^7.0.3",
    "jsonwebtoken": "^9.0.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.22",
    "jest": "^29.5.0",
    "webpack": "^5.82.0"
  }
}

YAML কনফিগারেশন

markdown
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
  labels:
    app: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-app
  template:
    metadata:
      labels:
        app: web-app
    spec:
      containers:
      - name: web
        image: nginx:1.21
        ports:
        - containerPort: 80
        env:
        - name: NODE_ENV
          value: production
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"
```

রেন্ডার্ড আউটপুট:

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
  labels:
    app: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-app
  template:
    metadata:
      labels:
        app: web-app
    spec:
      containers:
      - name: web
        image: nginx:1.21
        ports:
        - containerPort: 80
        env:
        - name: NODE_ENV
          value: production
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
          limits:
            memory: "128Mi"
            cpu: "500m"

SQL কোয়েরি

markdown
```sql
-- users টেবিল তৈরি করুন
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- ইনডেক্স তৈরি করুন
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_username ON users(username);

-- সক্রিয় ব্যবহারকারী কোয়েরি করুন
SELECT 
    u.id,
    u.username,
    u.email,
    COUNT(p.id) as post_count
FROM users u
LEFT JOIN posts p ON u.id = p.user_id
WHERE u.created_at >= NOW() - INTERVAL '30 days'
GROUP BY u.id, u.username, u.email
HAVING COUNT(p.id) > 0
ORDER BY post_count DESC
LIMIT 10;
```

রেন্ডার্ড আউটপুট:

sql
-- users টেবিল তৈরি করুন
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- ইনডেক্স তৈরি করুন
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_username ON users(username);

-- সক্রিয় ব্যবহারকারী কোয়েরি করুন
SELECT 
    u.id,
    u.username,
    u.email,
    COUNT(p.id) as post_count
FROM users u
LEFT JOIN posts p ON u.id = p.user_id
WHERE u.created_at >= NOW() - INTERVAL '30 days'
GROUP BY u.id, u.username, u.email
HAVING COUNT(p.id) > 0
ORDER BY post_count DESC
LIMIT 10;

শেল স্ক্রিপ্ট এবং কমান্ড

Bash স্ক্রিপ্ট

markdown
```bash
#!/bin/bash

# ডেপ্লয়মেন্ট স্ক্রিপ্ট
set -e

APP_NAME="my-app"
DEPLOY_DIR="/var/www/${APP_NAME}"
BACKUP_DIR="/var/backups/${APP_NAME}"
CURRENT_DATE=$(date +%Y%m%d_%H%M%S)

echo "Starting deployment of ${APP_NAME}..."

# ব্যাকআপ তৈরি করুন
if [ -d "$DEPLOY_DIR" ]; then
    echo "Creating backup at ${BACKUP_DIR}/${CURRENT_DATE}"
    mkdir -p "$BACKUP_DIR"
    cp -r "$DEPLOY_DIR" "${BACKUP_DIR}/${CURRENT_DATE}"
fi

# সার্ভিস বন্ধ করুন
echo "Stopping service..."
sudo systemctl stop $APP_NAME || true

# নতুন ভার্সন ডেপ্লয় করুন
echo "Deploying new version..."
rm -rf "$DEPLOY_DIR"
mkdir -p "$DEPLOY_DIR"
tar -xzf "${APP_NAME}.tar.gz" -C "$DEPLOY_DIR"

# ডিপেন্ডেন্সি ইনস্টল করুন
echo "Installing dependencies..."
cd "$DEPLOY_DIR"
npm ci --production

# সার্ভিস শুরু করুন
echo "Starting service..."
sudo systemctl start $APP_NAME
sudo systemctl enable $APP_NAME

echo "Deployment complete!"
```

রেন্ডার্ড আউটপুট:

bash
#!/bin/bash

# ডেপ্লয়মেন্ট স্ক্রিপ্ট
set -e

APP_NAME="my-app"
DEPLOY_DIR="/var/www/${APP_NAME}"
BACKUP_DIR="/var/backups/${APP_NAME}"
CURRENT_DATE=$(date +%Y%m%d_%H%M%S)

echo "Starting deployment of ${APP_NAME}..."

# ব্যাকআপ তৈরি করুন
if [ -d "$DEPLOY_DIR" ]; then
    echo "Creating backup at ${BACKUP_DIR}/${CURRENT_DATE}"
    mkdir -p "$BACKUP_DIR"
    cp -r "$DEPLOY_DIR" "${BACKUP_DIR}/${CURRENT_DATE}"
fi

# সার্ভিস বন্ধ করুন
echo "Stopping service..."
sudo systemctl stop $APP_NAME || true

# নতুন ভার্সন ডেপ্লয় করুন
echo "Deploying new version..."
rm -rf "$DEPLOY_DIR"
mkdir -p "$DEPLOY_DIR"
tar -xzf "${APP_NAME}.tar.gz" -C "$DEPLOY_DIR"

# ডিপেন্ডেন্সি ইনস্টল করুন
echo "Installing dependencies..."
cd "$DEPLOY_DIR"
npm ci --production

# সার্ভিস শুরু করুন
echo "Starting service..."
sudo systemctl start $APP_NAME
sudo systemctl enable $APP_NAME

echo "Deployment complete!"

সাধারণ ত্রুটি এবং সমাধান

1. ব্যাকটিক সংখ্যা মismatch

markdown
❌ ত্রুটি:
```javascript
function hello() {
    console.log("Hello");
}
``  ← শুধুমাত্র দুটি ব্যাকটিক

সঠিক:
```javascript
function hello() {
    console.log("Hello");
}
```  ← তিনটি ব্যাকটিক

2. ভুল ভাষা আইডেন্টিফায়ার

markdown
❌ ত্রুটি:
```js  ← কিছু প্রসেসর চিনতে পারে না
function hello() {}
```

✅ সুপারিশকৃত:
```javascript  ← পূর্ণ নাম ব্যবহার করুন
function hello() {}
```

3. নেস্টেড কোড ব্লক

markdown
❌ সমস্যা: ``` সহ কোড প্রদর্শন করা যায় না

✅ সমাধান: তিনটি ব্যাকটিক দেখাতে চারটি ব্যাকটিক ব্যবহার করুন
````markdown
```javascript
console.log("hello");
```

### 4. বিশেষ ক্যারেক্টার হ্যান্ডলিং

````markdown
```markdown
<!-- মার্কডাউন কোড ব্লকে মার্কডাউন সিনট্যাক্স প্রদর্শন করুন -->
\```javascript  ← ব্যাকটিক এস্কেপ করুন
code here
\```
```

সমর্থিত ভাষার তালিকা

প্রোগ্রামিং ভাষা

ভাষাআইডেন্টিফায়ারএলিয়াস
JavaScriptjavascriptjs
TypeScripttypescriptts
Pythonpythonpy
Javajava
C++cppc++, cxx
C#csharpcs
Gogogolang
Rustrustrs
PHPphp
Rubyrubyrb
Swiftswift
Kotlinkotlinkt

মার্কআপ এবং কনফিগারেশন ভাষা

ভাষাআইডেন্টিফায়ারব্যবহার
HTMLhtmlওয়েব মার্কআপ
CSScssস্টাইলশিট
XMLxmlডেটা এক্সচেঞ্জ
JSONjsonডেটা ফরম্যাট
YAMLyaml, ymlকনফিগারেশন ফাইল
TOMLtomlকনফিগারেশন ফাইল
Markdownmarkdown, mdডকুমেন্টেশন

ডেটা এবং কোয়েরি ভাষা

ভাষাআইডেন্টিফায়ারব্যবহার
SQLsqlডেটাবেস কোয়েরি
GraphQLgraphqlAPI কোয়েরি
Rrপরিসংখ্যান কম্পিউটিং
MATLABmatlabনিউমেরিক্যাল কম্পিউটিং

শেল এবং স্ক্রিপ্ট

ভাষাআইডেন্টিফায়ারব্যবহার
Bashbash, shUnix Shell
PowerShellpowershell, ps1Windows Shell
Batchbatch, batWindows Batch
Dockerfiledockerfileকন্টেইনার কনফিগারেশন

সেরা অনুশীলন

1. উপযুক্ত ভাষা আইডেন্টিফায়ার চয়ন করুন

markdown
✅ সুপারিশকৃত: সঠিক ভাষা আইডেন্টিফায়ার ব্যবহার করুন
```typescript
interface User {
    id: number;
    name: string;
}
```

❌ সুপারিশ করা হয় না: ভুল আইডেন্টিফায়ার ব্যবহার করুন
```javascript  ← এটি TypeScript কোড
interface User {
    id: number;
    name: string;
}
```

2. অর্থপূর্ণ মন্তব্য যোগ করুন

markdown
✅ সুপারিশকৃত: ব্যাখ্যামূলক মন্তব্য অন্তর্ভুক্ত করুন
```python
def fibonacci(n):
    """n-তম ফিবোনাচ্চি সংখ্যা গণনা করুন"""
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
```

❌ সুপারিশ করা হয় না: ব্যাখ্যা ছাড়া কোড
```python
def fib(n):
    if n <= 1:
        return n
    return fib(n-1) + fib(n-2)
```

3. কোড সংক্ষিপ্ত রাখুন

markdown
✅ সুপারিশকৃত: মূল লজিক দেখান
```javascript
// ব্যবহারকারী প্রমাণীকরণ মিডলওয়্যার
function authenticate(req, res, next) {
    const token = req.headers.authorization;
    if (!token) {
        return res.status(401).json({ error: 'No token provided' });
    }
    // যাচাইকরণ লজিক...
    next();
}
```

❌ সুপারিশ করা হয় না: খুব বেশি অপ্রাসঙ্গিক কোড
```javascript
// অনেক অপ্রাসঙ্গিক কোড বাদ দেওয়া হয়েছে...
```

4. ফাইল নাম শিরোনাম ব্যবহার করুন

markdown
✅ সুপারিশকৃত: ফাইল নাম দেখান
```javascript title="middleware/auth.js"
export function authenticate(req, res, next) {
    // প্রমাণীকরণ লজিক
}
```

✅ সুপারিশকৃত: কনফিগ ফাইল নাম দেখান
```json title="package.json"
{
  "name": "my-app",
  "version": "1.0.0"
}
```

ব্যবহারিক অ্যাপ্লিকেশন সিনারিও

1. API ডকুমেন্টেশন

markdown
## ব্যবহারকারী লগইন API

**রিকোয়েস্ট উদাহরণ:**

```bash
curl -X POST https://api.example.com/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "password123"
  }'
```

**রেসপন্স উদাহরণ:**

```json
{
  "success": true,
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "user": {
      "id": 1,
      "email": "user@example.com",
      "name": "ঝাং সান"
    }
  }
}
```

**এরর রেসপন্স:**

```json
{
  "success": false,
  "error": {
    "code": "INVALID_CREDENTIALS",
    "message": "ভুল ইমেইল বা পাসওয়ার্ড"
  }
}
```

2. ইনস্টলেশন গাইড

markdown
## এনভায়রনমেন্ট সেটআপ

### 1. Node.js ইনস্টল করুন

**macOS (Homebrew ব্যবহার করে):**

```bash
# Homebrew ইনস্টল করুন (যদি না থাকে)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Node.js ইনস্টল করুন
brew install node

# ইনস্টলেশন যাচাই করুন
node --version
npm --version
```

**Ubuntu/Debian:**

```bash
# প্যাকেজ লিস্ট আপডেট করুন
sudo apt update

# Node.js এবং npm ইনস্টল করুন
sudo apt install nodejs npm

# ইনস্টলেশন যাচাই করুন
node --version
npm --version
```

**Windows (Chocolatey ব্যবহার করে):**

```powershell
# Chocolatey ইনস্টল করুন (এডমিনিস্ট্রেটর হিসেবে চালান)
Set-ExecutionPolicy Bypass -Scope Process -Force; 
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; 
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

# Node.js ইনস্টল করুন
choco install nodejs

# ইনস্টলেশন যাচাই করুন
node --version
npm --version
```

3. কোড তুলনা

markdown
## রিফ্যাক্টরিংয়ের আগে এবং পরে

**আগে (কলব্যাক হেল):**

```javascript
function getUserData(userId, callback) {
    getUser(userId, function(err, user) {
        if (err) {
            callback(err);
            return;
        }
        
        getPosts(user.id, function(err, posts) {
            if (err) {
                callback(err);
                return;
            }
            
            getComments(posts[0].id, function(err, comments) {
                if (err) {
                    callback(err);
                    return;
                }
                
                callback(null, { user, posts, comments });
            });
        });
    });
}
```

**পরে (async/await):**

```javascript
async function getUserData(userId) {
    try {
        const user = await getUser(userId);
        const posts = await getPosts(user.id);
        const comments = await getComments(posts[0].id);
        
        return { user, posts, comments };
    } catch (error) {
        throw error;
    }
}
```

HTML আউটপুট

ফেন্সড কোড ব্লক HTML এ রূপান্তরিত হয়:

markdown
```javascript
function hello() {
    console.log("Hello");
}
```

হয়ে যায়:

html
<pre><code class="language-javascript">function hello() {
    console.log("Hello");
}
</code></pre>

সম্পর্কিত সিনট্যাক্স

অনুশীলন

নিম্নলিখিত কোড ব্লক তৈরি করার চেষ্টা করুন:

  1. একটি JavaScript ফাংশন কোড ব্লক
  2. একটি Python স্ক্রিপ্ট কোড ব্লক
  3. একটি JSON কনফিগারেশন কোড ব্লক
  4. একটি Bash স্ক্রিপ্ট কোড ব্লক

www.markdownlang.com দ্বারা নির্মিত