GitHub Flavored Markdown (GFM)
GitHub Flavored Markdown (GFM) হল GitHub-এর উন্নত মার্কডাউন ভার্সন যা সফটওয়্যার ডেভেলপমেন্ট এবং সহযোগিতার জন্য বিশেষভাবে ডিজাইন করা অতিরিক্ত বৈশিষ্ট্য সহ। এই গাইডটি GitHub-এ উপলব্ধ সমস্ত বিশেষ সিনট্যাক্স এক্সটেনশন কভার করে।
GitHub Flavored Markdown (GFM) কী?
GitHub Flavored Markdown বেসিক মার্কডাউন সিনট্যাক্সকে নিম্নলিখিত বৈশিষ্ট্যের জন্য এক্সটেন্ড করে:
- ডকুমেন্টেশন (README, উইকি)
- ইস্যু ট্র্যাকিং
- পুল রিকোয়েস্ট
- কোড রিভিউ
- প্রজেক্ট ম্যানেজমেন্ট
মূল GFM বৈশিষ্ট্য
1. ফেন্সড কোড ব্লক
GFM ভাষা-স্পেসিফিক সিনট্যাক্স হাইলাইটিং সহ ফেন্সড কোড ব্লক সমর্থন করে:
```javascript
function calculateSum(numbers) {
return numbers.reduce((sum, num) => sum + num, 0);
}
const result = calculateSum([1, 2, 3, 4, 5]);
console.log(result); // Output: 15
```function calculateSum(numbers) {
return numbers.reduce((sum, num) => sum + num, 0);
}
const result = calculateSum([1, 2, 3, 4, 5]);
console.log(result); // Output: 152. সিনট্যাক্স হাইলাইটিং
GitHub শত শত ভাষার জন্য সিনট্যাক্স হাইলাইটিং সমর্থন করে। কিছু সাধারণ ভাষা:
# Bash স্ক্রিপ্ট
echo "হ্যালো GitHub!"# Python স্ক্রিপ্ট
def greet(name):
return f"হ্যালো, {name}!"// Java কোড
public class HelloWorld {
public static void main(String[] args) {
System.out.println("হ্যালো GitHub!");
}
}3. টাস্ক লিস্ট
চেকবক্স সহ ইন্টারঅ্যাক্টিভ টাস্ক লিস্ট তৈরি করুন:
- [x] ব্যবহারকারী প্রমাণীকরণ সম্পূর্ণ করুন
- [x] API এন্ডপয়েন্ট ইমপ্লিমেন্ট করুন
- [ ] ইউনিট টেস্ট লিখুন
- [ ] ব্যাকএন্ড টেস্ট
- [ ] ফ্রন্টএন্ড টেস্ট
- [ ] প্রোডাকশনে ডেপ্লয় করুন- [x] ব্যবহারকারী প্রমাণীকরণ সম্পূর্ণ করুন
- [x] API এন্ডপয়েন্ট ইমপ্লিমেন্ট করুন
- [ ] ইউনিট টেস্ট লিখুন
- [ ] ব্যাকএন্ড টেস্ট
- [ ] ফ্রন্টএন্ড টেস্ট
- [ ] প্রোডাকশনে ডেপ্লয় করুন
4. টেবিল
GFM টেবিল তৈরির জন্য একটি সহজ সিনট্যাক্স প্রদান করে:
| ফিচার | সমর্থিত | বিবরণ |
|-----------------|-----------|---------------------------------|
| ফেন্সড কোড | ✅ | ভাষা-স্পেসিফিক হাইলাইটিং |
| টাস্ক লিস্ট | ✅ | ইন্টারঅ্যাক্টিভ চেকবক্স |
| টেবিল | ✅ | স্ট্রাকচার্ড ডেটা ডিসপ্লে |
| মেনশন | ✅ | ব্যবহারকারী এবং টিম নোটিফিকেশন |
| ইমোজি | ✅ | ভিজ্যুয়াল এক্সপ্রেশন || ফিচার | সমর্থিত | বিবরণ |
|---|---|---|
| ফেন্সড কোড | ✅ | ভাষা-স্পেসিফিক হাইলাইটিং |
| টাস্ক লিস্ট | ✅ | ইন্টারঅ্যাক্টিভ চেকবক্স |
| টেবিল | ✅ | স্ট্রাকচার্ড ডেটা ডিসপ্লে |
| মেনশন | ✅ | ব্যবহারকারী এবং টিম নোটিফিকেশন |
| ইমোজি | ✅ | ভিজ্যুয়াল এক্সপ্রেশন |
5. মেনশন
ব্যবহারকারী বা টিমকে মেনশন করে নোটিফাই করুন:
@username - নির্দিষ্ট ব্যবহারকারীকে মেনশন করুন
@team-name - টিমকে মেনশন করুন6. ইমোজি
শর্টকোড ব্যবহার করে ইমোজি যোগ করুন:
:smile: - 😊
:thumbsup: - 👍
:heart: - ❤️
:rocket: - 🚀
:warning: - ⚠️😄 - 😊 👍 - 👍 ❤️ - ❤️ 🚀 - 🚀 ⚠️ - ⚠️
7. অটোমেটিক লিঙ্কিং
GFM নির্দিষ্ট ধরণের কন্টেন্ট স্বয়ংক্রিয়ভাবে লিঙ্ক করে:
ইস্যু এবং পুল রিকোয়েস্ট নাম্বার
#123 - ইস্যু 123-এ লিঙ্ক করে
PR #456 - পুল রিকোয়েস্ট 456-এ লিঙ্ক করেSHA হ্যাশ
a1b2c3d - এই SHA সহ কমিটে লিঙ্ক করেইস্যু/PR-এ ব্যবহারকারী মেনশন
@username - স্বয়ংক্রিয়ভাবে ব্যবহারকারীর প্রোফাইলে লিঙ্ক করেURL
https://github.com - স্বয়ংক্রিয়ভাবে একটি লিঙ্কে পরিণত হয়8. স্ট্রিকথ্রু
GFM স্ট্রিকথ্রু টেক্সট সমর্থন করে:
~~এই টেক্সটটি কাটা হয়েছে~~এই টেক্সটটি কাটা হয়েছে
9. অটোলিঙ্ক রেফারেন্স
GFM স্বয়ংক্রিয়ভাবে নিম্নলিখিতগুলির জন্য লিঙ্ক তৈরি করে:
- HTTP/HTTPS URL
- ইমেইল ঠিকানা
- GitHub ইস্যু/PR নাম্বার
- কমিট SHA
https://github.com/markdownlang/markdownlang.com
user@example.com
#123
PR #456
a1b2c3d4e5f610. কোড ব্লক লাইন হাইলাইটিং
কোড ব্লকে নির্দিষ্ট লাইন হাইলাইট করুন:
```javascript{2,4}
function calculateSum(numbers) {
return numbers.reduce((sum, num) => sum + num, 0); // হাইলাইটেড
}
const result = calculateSum([1, 2, 3, 4, 5]); // হাইলাইটেড
console.log(result);
```function calculateSum(numbers) {
return numbers.reduce((sum, num) => sum + num, 0); // হাইলাইটেড
}
const result = calculateSum([1, 2, 3, 4, 5]); // হাইলাইটেড
console.log(result);11. ডিফ সিনট্যাক্স হাইলাইটিং
ডিফ সিনট্যাক্স দিয়ে কোডে পরিবর্তন হাইলাইট করুন:
```diff
- const oldFunction = () => {
- return "old value";
- };
+
+ const newFunction = () => {
+ return "new value";
+ };
```- const oldFunction = () => {
- return "old value";
- };
+
+ const newFunction = () => {
+ return "new value";
+ };12. GitHub-স্পেসিফিক মার্কআপ
অ্যালার্ট
GitHub ডক্সে অ্যালার্টের জন্য বিশেষ সিনট্যাক্স ব্যবহার করুন:
> [!NOTE]
> এটি একটি নোট অ্যালার্ট।
> [!TIP]
> এটি একটি টিপ অ্যালার্ট।
> [!IMPORTANT]
> এটি একটি গুরুত্বপূর্ণ অ্যালার্ট।
> [!WARNING]
> এটি একটি সতর্কতা অ্যালার্ট।
> [!CAUTION]
> এটি একটি সতর্কতা অ্যালার্ট।NOTE
এটি একটি নোট অ্যালার্ট।
TIP
এটি একটি টিপ অ্যালার্ট।
IMPORTANT
এটি একটি গুরুত্বপূর্ণ অ্যালার্ট।
WARNING
এটি একটি সতর্কতা অ্যালার্ট।
CAUTION
এটি একটি সতর্কতা অ্যালার্ট।
রিলেটিভ লিঙ্ক
একই রেপোজিটরির ফাইলগুলির মধ্যে নেভিগেট করতে রিলেটিভ লিঙ্ক ব্যবহার করুন:
[README](/README.md)
[অবদান গাইডলাইন](/CONTRIBUTING.md)
[API ডকুমেন্টেশন](/docs/api.md)হোভার টেক্সট সহ ইমেজ লিঙ্ক
অ্যাডভান্সড GFM ব্যবহার
1. টাস্ক লিস্ট সহ নেস্টেড লিস্ট
নেস্টেড লিস্টকে টাস্ক লিস্টের সাথে একত্রিত করুন:
## প্রজেক্ট রোডম্যাপ
### ফেজ 1: পরিকল্পনা
- [x] প্রজেক্ট স্কোপ সংজ্ঞায়িত করুন
- [x] প্রয়োজনীয়তা শনাক্ত করুন
- [x] ফাংশনাল প্রয়োজনীয়তা
- [x] নন-ফাংশনাল প্রয়োজনীয়তা
- [x] টাইমলাইন তৈরি করুন
### ফেজ 2: ডেভেলপমেন্ট
- [x] প্রজেক্ট স্ট্রাকচার সেট আপ করুন
- [ ] মূল ফিচার ইমপ্লিমেন্ট করুন
- [x] প্রমাণীকরণ
- [ ] ড্যাশবোর্ড
- [ ] API ইন্টিগ্রেশন2. ইমোজি এবং লিঙ্ক সহ টেবিল
টেবিলকে ইমোজি এবং লিঙ্ক দিয়ে উন্নত করুন:
| কম্পোনেন্ট | স্ট্যাটাস | মেইনটেইনার |
|-----------|--------|------------|
| প্রমাণীকরণ | ✅ স্টেবল | @johndoe |
| ডাটাবেস | ⚠️ আপডেট প্রয়োজন | @janedoe |
| API | 🚧 প্রগ্রেসে | @bobsmith |
| UI | ✅ স্টেবল | @alicesmith || কম্পোনেন্ট | স্ট্যাটাস | মেইনটেইনার |
|---|---|---|
| প্রমাণীকরণ | ✅ স্টেবল | @johndoe |
| ডাটাবেস | ⚠️ আপডেট প্রয়োজন | @janedoe |
| API | 🚧 প্রগ্রেসে | @bobsmith |
| UI | ✅ স্টেবল | @alicesmith |
3. লিস্টে কোড ব্লক
লিস্টের মধ্যে কোড ব্লক অন্তর্ভুক্ত করুন:
1. ডিপেন্ডেন্সি ইনস্টল করুন:
```bash
npm installডেভেলপমেন্ট সার্ভার চালান:
bashnpm run devপ্রোডাকশনের জন্য বিল্ড করুন:
bashnpm run build
### 4. কোড সহ কোট ব্লক
কোটের সাথে কোড ব্লক একত্রিত করুন:
```markdown
> **প্রো টিপ:** আপনার Git স্ট্যাটাস দ্রুত চেক করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:
>
> ```bash
> git status
> ```প্রো টিপ: আপনার Git স্ট্যাটাস দ্রুত চেক করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:
bashgit status
বিভিন্ন GitHub প্রসঙ্গে GFM
README ফাইল
README ফাইল সমস্ত GFM বৈশিষ্ট্য সমর্থন করে এবং রেপোজিটরি পেজে স্বয়ংক্রিয়ভাবে রেন্ডার হয়।
ইস্যু এবং পুল রিকোয়েস্ট
- অগ্রগতি ট্র্যাক করতে টাস্ক লিস্ট ব্যবহার করুন
- সহযোগিতার জন্য টিম মেম্বারদের মেনশন করুন
- সিনট্যাক্স হাইলাইটিং সহ কোড স্নিপেট অন্তর্ভুক্ত করুন
#123সিনট্যাক্স ব্যবহার করে সম্পর্কিত ইস্যু/PR রেফারেন্স করুন
কমেন্টস
- দ্রুত প্রতিক্রিয়ার জন্য ইমোজি ব্যবহার করুন
- লাইন কমেন্টস দিয়ে কোডে লাইন রেফারেন্স করুন
- নির্দিষ্ট পয়েন্টে সাড়া দিতে কোট ব্লক ব্যবহার করুন
উইকি
- নেস্টেড পেজ দিয়ে কন্টেন্ট সংগঠিত করুন
- স্ট্রাকচার্ড ডেটার জন্য টেবিল ব্যবহার করুন
- সিনট্যাক্স হাইলাইটিং সহ কোড উদাহরণ অন্তর্ভুক্ত করুন
সেরা অনুশীলন
1. কোড স্টাইল
<!-- ✅ ভালো -->
```javascript
// বর্ণনামূলক ফাংশন নাম ব্যবহার করুন
function calculateTotal(items) {
return items.reduce((sum, item) => sum + item.price, 0);
}function f(i){return i.reduce((a,b)=>a+b.p,0)}```2. টেবিল ডিজাইন
<!-- ✅ ভালো -->
| ফিচার | বিবরণ | স্ট্যাটাস |
|---------|-------------|--------|
| ফিচার 1 | সংক্ষিপ্ত বিবরণ | ✅ |
| ফিচার 2 | অন্য বিবরণ | 🚧 |
<!-- ❌ এড়িয়ে চলুন -->
| ফিচার | বিবরণ | স্ট্যাটাস | | | |
|---------|-------------|--------|---|---|---|
| ফিচার 1 | এই বিবরণটি অনেক দীর্ঘ এবং মোবাইল ডিভাইসে টেবিলটি পড়া কঠিন করে তোলে | ✅ | | | |3. টাস্ক লিস্ট ব্যবহার
<!-- ✅ ভালো -->
## স্প্রিন্ট ব্যাকলগ
- [x] ব্যবহারকারী প্রোফাইল পেজ সম্পূর্ণ করুন
- [ ] অনুসন্ধান ফাংশনালিটি ইমপ্লিমেন্ট করুন
- [x] ব্যাকএন্ড API
- [ ] ফ্রন্টএন্ড কম্পোনেন্ট
- [ ] ডকুমেন্টেশন লিখুন
<!-- ❌ এড়িয়ে চলুন -->
- [ ] টাস্ক 1
- [ ] টাস্ক 2
- [ ] টাস্ক 3
- [ ] টাস্ক 4
- [ ] টাস্ক 5
(সংগঠন ছাড়া খুব বেশি টাস্ক)GFM বনাম স্ট্যান্ডার্ড মার্কডাউন
| ফিচার | স্ট্যান্ডার্ড মার্কডাউন | GitHub Flavored Markdown |
|---|---|---|
| ফেন্সড কোড ব্লক | ❌ | ✅ |
| সিনট্যাক্স হাইলাইটিং | ❌ | ✅ |
| টাস্ক লিস্ট | ❌ | ✅ |
| টেবিল | ❌ | ✅ |
| স্ট্রিকথ্রু | ❌ | ✅ |
| ইমোজি | ❌ | ✅ |
| মেনশন | ❌ | ✅ |
| অটোমেটিক লিঙ্কিং | সীমিত | ব্যাপক |
GFM-এর সাথে কাজ করার টুলস
লোকাল এডিটর
- Visual Studio Code - GFM প্রিভিউ এবং এক্সটেনশন
- Typora - রিয়েল-টাইম GFM রেন্ডারিং
- Mark Text - GFM সাপোর্ট
অনলাইন টুলস
- GitHub Gist - GFM স্নিপেট তৈরি এবং শেয়ার করুন
- Dillinger - অনলাইন GFM এডিটর
- StackEdit - ক্লাউড সিঙ্ক সহ GFM সাপোর্ট
কমান্ড-লাইন টুলস
- glow - টার্মিনাল GFM রেন্ডারার
- pandoc - GFM কে অন্যান্য ফরম্যাটে রূপান্তর করুন
- marked - Node.js GFM পার্সার
সাধারণ সমস্যা এবং সমাধান
1. কোড ব্লক হাইলাইটিং কাজ করছে না
সমস্যা: কোড ব্লক সিনট্যাক্স হাইলাইটিং দেখাচ্ছে না
সমাধান: নিশ্চিত করুন আপনি সঠিক ভাষা উল্লেখ করছেন:
<!-- ✅ সঠিক -->
```javascript
console.log("হ্যালো");console.log("হ্যালো"); // নন-JSX কোডের জন্য jsx ব্যবহার করা হচ্ছে
### 2. টাস্ক লিস্ট চেকবক্স কাজ করছে না
**সমস্যা:** টাস্ক লিস্ট চেকবক্স ইন্টারঅ্যাক্টিভ নয়
**সমাধান:** সঠিক সিনট্যাক্স নিশ্চিত করুন (`-` এবং `[ ]` এর মধ্যে স্পেস):
```markdown
<!-- ✅ সঠিক -->
- [ ] টাস্ক
<!-- ❌ ভুল -->
-[ ] টাস্ক (স্পেস নেই)
-[x] টাস্ক (স্পেস নেই)3. টেবিল সঠিকভাবে রেন্ডার হচ্ছে না
সমস্যা: টেবিল কলাম ভুলভাবে সাজানো
সমাধান: পাইপ সঠিকভাবে সাজানো আছে কিনা নিশ্চিত করুন:
<!-- ✅ সঠিক -->
| কলাম 1 | কলাম 2 |
|----------|----------|
| ডেটা 1 | ডেটা 2 |
<!-- ❌ ভুল -->
|কলাম 1|কলাম 2|
|--|--|
|ডেটা 1|ডেটা 2|পরবর্তী ধাপ
- বেসিক মার্কডাউন সিনট্যাক্স শিখুন
- সিনট্যাক্স চিটশিট দেখুন
- GitHub Gist-এ অনুশীলন করুন
- অফিসিয়াল GitHub GFM ডকুমেন্টেশন পড়ুন
GitHub Flavored Markdown হল সফটওয়্যার ডেভেলপমেন্টে যোগাযোগ এবং সহযোগিতার জন্য একটি শক্তিশালী টুল। এই বৈশিষ্ট্যগুলি আয়ত্ত করে, আপনি আরও কার্যকর ডকুমেন্টেশন তৈরি করতে পারেন, ইস্যু ভালোভাবে ট্র্যাক করতে পারেন এবং আপনার টিমের সাথে আরও দক্ষভাবে সহযোগিতা করতে পারেন।