মার্কডাউন প্লেইন মার্কাপ ল্যাংগুয়েজ। এটা সাধারণত টেক্সট ফরম্যাটিং এ ইউজ করা হয়। এটা অনেকটা HTML এর মতো, কিন্তু অনেকটা সিম্পল এবং জাস্ট কয়েকটা সিনট্যাক্স পাবেন এতে। আপনি এই মার্কাপ ল্যাংগুয়েজ বেশিরভাগ রিচ টেক্সট এডিটরগুলোয় পাবেন। তাছাড়া বিশেষ করে গিটহাবের README.md
ফাইলগুলোয় পাবেন। গিটহাবের নিজস্ব ফ্লেভারড মার্কডাউন সিনট্যাক্স আছে, যেটা আমি নিচে আলোচনা করেছি বিস্তারিত।
মার্কডাউনে বিশেষ করে .md
, .markdown
ফাইল এক্সটেনশন সাপোর্ট করে। তবে এছাড়াও আরো কিছু টাইপ সাপোর্ট করে। কিন্তু কমনলি এগুলাই ইউজ করা হয়।
আমি নিচে প্রথমে মার্কডাউনের ব্যাসিক সিনট্যাক্স নিয়ে আলোচনা করেছি। আর পরবর্তিতে গিটহাবের ফ্লেভারড মার্কডাউন নিয়েও পরে লিখেছি। গিটহাবে মার্কডাউনের মেইন সিনট্যাক্সসহ ফ্লেভারড সবগুলোই সাপোর্ট করবে।
হেডারঃ মার্কডাউনে আমরা জাস্ট এইচটিএমএল এর মতোই ৬ লেভেলের হেডিং টেক্সট লিখতে পারি। জাস্ট টেক্সট এর আগে #
দিলেই হবে। একটা #
মানে হেডিং ১ লেভেলের হেডিং, সবচেয়ে বড়। একটা #
থেকে শুরু করে এমন ##
(দুইটা), ###
(তিনটা) থেকে ######
(ছয়টা) পর্যন্ত সাপোর্ট করে।
# হেডিং এক
## হেডিং দুই
### হেডিং তিন
#### হেডিং চার
##### হেডিং পাচ
###### হেডিং ছয়
গুরুত্বপূর্ন টেক্সটঃ আমরা লেখায় গুরুত্ব বুঝাতে বিভিন্নরকম যেমন ইটালিক বা বোল্ড অক্ষরে লিখি। মার্কডাউনে ইটালিক কিংবা বোল্ড এ লিখা যায় দুইরকমভাবেঃ
*ইটালিক টেক্সট*
_এভাবেও ইটালিক টেক্সট লিখা যায়_
**মোটা টেক্সট**
__এভাবেও মোটা টেক্সট লিখা যায়__
*ইটালিক আর **মোটা** দুইটা একসাথে*
~~কাটাকাটি করতে চাইলে~~
ইটালিক টেক্সট এ আন্ডারস্কোর শুরুতে ও শেষে একটা করে। মোটা টেক্সট লিখার আগে আন্ডারস্কোর দুইটা এবং শেষে দুইটা।
সোজা লাইনঃ আমরা যদি সোজা(হরিজন্টাল) লাইন চাই তাহলে জাস্ট তিনটা ---
অথবা ___
ইউজ করে লাইন নিতে পারি।
___
---
উক্তিঃ আমরা সাধারণত অন্য কোনো সোর্স থেকে কোনো লিখা নিলে বা কারো উক্তি লিখতে ব্লককোট ইউজ করি। মার্কডাউনেও সহজেই >
দিয়ে উক্তি লিখা যায়
কেউ একজন বলেছেঃ
> সময় থাককে সময়ের মূল্য বুঝতে শিখো, নাইলে পরে পস্তাবে
কোডঃ আমরা মার্কডাউনে কোডকেও স্পেশাল ভাবে বক্সের ভিতরে করে লিখতে পারি। তবে দুইভাবে লিখা যায়। এক হচ্ছে একই লাইনের ভিতরে `
ইউজ করে। আর অনেকগুলো লাইনের ```
ইউজ করে। `
একে ব্যাকটিক বলে, ঠিক আপনার কীবোর্ডের ট্যাব কী’র উপরে পাবেন।
একই লাইনে কোডকে স্পেশালভাবে লিখতেঃ
HTML paragraphs tags start with `<p>` and ends with `</p>`
কয়েকলাইনের কোড লিখতে চাইলেঃ
```
<p>This is a HTML paragraph</p>
```
লিস্টঃ লিস্ট আকারে কিছু লিখতে চাইলেও সেটা মার্কডাউনে সাপোর্ট করে। অর্ডার, আন-অর্ডার দুইভাবেই সাপোর্ট করে
আন-অর্ডারঃ
* আইটেম এক
* আইটেম দুই
* আইটেমে আইটেম এক
* আইটেমে আইটেম দুই
অর্ডারঃ
1. আইটেম এক
2. আইটেম দুই
* আইটেমে আইটেম এক
* আইটেমে আইটেম দুই
ইমেজঃ কোনো ইমেজ ইন্সার্ট করতে চাইলে সেটাও করা যাবে।
![Markdown withing a minute](http://kirkstrobeck.github.io/whatismarkdown.com/img/markdown.png)
লিঙ্কঃ কোনো টেক্সট এ লিঙ্ক ধরাতে চাইলে এভাবে(প্রথম উদাহরণ) নরমালি লিখা যাবে। আবার যদি চাই লিঙ্ক এর উপরে মাউস ধরলে লিঙ্ক সম্পর্কে কিছু ইনফরমেশন দেখা যাবে তাহলে সেভাবেও লিখা যাবে।
[আমার ব্লগ](https://with.zonayed.me/bn)
[জুনায়েদ এর সাথে](https://with.zonayed.me/bn, "with.zonayed.me")
এসকেপঃ অনেকসময় আমাদের লেখায় মার্কডাউন এর স্পেশাল সিনট্যাক্স গুলো লিখতে হতে পারে। যেমন আমরা যদি *
লিখতে চাই তাহলে সেটা কিন্তু ইটালিক টেক্সট হয়ে যাবে। কিন্তু আমরা যদি আসলেই লেখায় *
ইউজ করতে চাই, তাহলে আমরা এসকেপ(\
) ক্যারেক্টারের সাহায্য নিতে পারি। এসকেপ ক্যারেক্টারের সাহায্যে এরকম স্পেশাল *
, **
, #
বা আরো বাকী যে সিনট্যাক্স গুলো আছে সেগুলা এসকেপ করে অরিজিনাল ক্যারেক্টারটা প্রিন্ট করা যায়।
\# হেডারের জন্যে \#
\* ইটালিক টেক্সট এর জন্যে \*
\** স্ট্রং টেক্সট এর জন্যে \**
নিচের এই ক্যারেক্টারগুলোর জন্যে মার্কডাউনের এসকেপ ক্যারেক্টার ইউজ করা যাবেঃ
\
`
*
_
{}
[]
()
#
+
-
.
!
আমাদের সাধারণত গিটহাবেই মার্কডাউন বেশী করতে হয়। গিটহাবে সব প্রোজেক্টেই README.md
নামে ফাইল পাবেন যেটা ব্যাসিকিলি মার্কডাউন ফাইল। যেহেতু এই মার্কাপ ল্যাংগুয়েজ গিটহাবে রেপিডলি ইউজ করা হয় তাই গিটহাব নিজেই একটা ফ্লেভারড ভার্শন তৈরী করেছে আরো কিছু এক্সট্রা ফিচার নিয়ে। এক্সট্রা ফিচার হিসাবে আরো যা যা পাবেন গিটহাবে মার্কডাউন দিয়ে সেগুলোই এখানে আলোচনা করবো।
কাউকে মেনশন করাঃ গিটহাবে সাধারণত আপনি আরেকজন ডেভেলপার বা ইউজারকে মেনশন করতে পারবেন সোশ্যাল মিডিয়ার মতো। এটা খুবি নরমালি করা যায়। @
ইউজ করে সাথে গিটহাব ইউজারনেম দিতে হবে।
Contributed by: @zonayedpca
মেনশন @
আপনি শুধুমাত্র README.md
তে বা প্রোজেক্টের ইস্যু, কমেন্টে ইউজ করতে পারবেন। অন্যকোনো জায়গা যেমন gist
ইউজ করা যাবে না। এর উদ্দেশ্য হচ্ছে আপনি যাকে মেনশন করবেন সে একটা নোটিফিকেশন পাবে আপনার কমেন্ট, সমস্যা বা প্রোজেক্ট দেখার জন্যে।
স্পেশাল রেফারেন্সঃ গিটহাবে এমনিতে স্পেশাল কিছু টেক্সট আছে যেগুলো লিখলে গিটহাব অটোমেটিকেলি কনভার্ট করে ফেলে। যেমন কোনো লিঙ্ক লিখলে সেটা অটোমেটিক ক্লিকেবল হয়ে যায়।
Visit https://github.com
রেন্ডার হবে এরকমঃ
Visit https://github.com
কোনো প্রোজেক্টের ইস্যুর লিঙ্ক দিলে শর্ট হয়ে শুধুমাত্র ইস্যুর নাম্বারটা দেখায়ঃ
https://github.com/jlord/sheetsee.js/issues/26
রেন্ডার হবে এরকমঃ
GH-
লিখে কারেন্ট প্রোজেক্ট এর জাস্ট ইস্যু নাম্বার লিখলেই সেই ইস্যুর লিঙ্ক অটোমেটিক অ্যাড হয়ে যায়ঃ
GH-26
যে প্রোজেক্টে ইউজ করবেন সে প্রোজেক্টের 26 নাম্বার ইস্যুর রেফারেন্স লিঙ্ক আসবেঃ
যেকোনো প্রোজেক্টের ইস্যুর লিঙ্ক পেতে প্রোজেক্ট এর লিঙ্ক(জাস্ট ইউজারনেম আর প্রোজেক্ট এর ইউনিক নেইম) দিয়ে সেই ইস্যুর রেফারেন্স লিঙ্ক পাওয়া যাবে যেটা গিটহাব অটোমেটিকই রেন্ডার করে।
jlord/sheetsee.js#26
রেন্ডার হবে এমনঃ
কোনো কমিট এর লিঙ্ক দিলে সেটা শর্ট হয়ে যাবে। জাস্ট কমিটের ইউনিক আইডির প্রথম কয়েকটা অক্ষর দেখাবেঃ
https://github.com/jlord/sheetsee.js/commit/a5c3785ed8d6a35868bc169f07e40e889087fd2e
রেন্ডার হবেঃ
এছাড়াও SHA হ্যাশও শর্ট হয়ে যাবে। এমন আজব বড় এলোমেলো অনেকগুলো অক্ষর দেখানোর চাইতে ছোটো করে ইউনিক কী দেখানোটাই বেটার। সেজন্যেই গিটহাব অটোমেটিকেলিই এগুলো শর্ট করে ফেলে।
এই স্পেশাল রেফারেন্সগুলো সবজায়গায় কাজ করবেনা। যেখানে প্রয়োজন সেখানেই কাজ করবে।
ইমোজিঃ হ্যাঁ গিটহাবে আপনি ইমোজিও ব্যবহার করতে পারবেন।
:+1: :sparkles: :camel: :tada: :rocket: :metal: :octocat:
ইমোজির ফুল লিস্ট পেতে চাইলে এখানে দেখতে পারেন।
ফ্যান্সি কোড ব্লকঃ সাধারণত মার্কডাউনে কোড ব্লক সাপোর্ট করে। কিন্তু গিটহাব এটাকে আরেকটু ডেভেলপ করে কালারফুল কোড ব্লক অ্যাড করেছে।
```javascript
function sum(a, b) {
return a + b;
}
```
এখানে আমি javascript
ইউজ করলেও আপনি পরিচিত যেকোনো প্রোগ্রামিং ল্যাংগুয়েজই ইউজ করতে পারবেন যেমন python
, java
ইত্যাদি ইত্যাদি…।
টাস্ক লিস্টঃ গিটহাবে আরো ডেভেলপড লিস্ট বানাতে পারবেন মার্কডাউন দিয়ে। সিলেক্টবক্স বানাতে পারবেন, সিলিক্টেড বা আনসিলেক্টেড অপশন ইউজ করতে পারবেন।
- [ ] Item 1
- [x] Item 2
- [x] Item 3
- [ ] Item 4
এই সিলেক্টবক্স ভিজুয়্যালি ইন্টার্যাক্টিভ না, মানে আপনি বক্স সিলেক্ট করতে চাইলে ক্লিক করে সিলেক্ট করতে পারবেন না। আপনাকে কোড মডিফাই করে সিলেক্ট আনসিলেক্ট করতে হবে।
টেবিলঃ চাইলে টেবিলও বানাতে পারবেন ইচ্ছামতো রো আর কলাম দিয়ে।
First Column | Second Column | Third Column | Fourth Column
------------ | ------------ | ------------ | ------------
Content One | Content Two | Content Three | Content Four
Content Five | Content Six | Content Seven | Content Eight
অনলাইনে Markdown to HTML নামেও কিছু কনভার্টার পাবেন। চাইলে এই মার্কডাউনগুলোকেও HTML এ কনভার্ট করে ফেলতে পারবেন ঐ টুলগুলো দিয়ে।
নোটঃ যেখানে মার্কডাউন সাপোর্ট করে সেখানে সাধারণত মার্কডাউন কোড লিখলেও চলে। তবে কোথাও যদি ফাইল হিসাবে সেইভ করতে হয় তাহলে মার্কডাউনের ফাইল এক্সটেনশন ইউজ করাই ভালো। অনেকসময় ইউজ না করলে কাজ নাও করতে পারে। নিচের ফাইলে এক্সটেনশনগুলো সাধারণত মার্কডাউনের জন্যে ইউজ করা হয়ঃ
.markdown
.mdown
.mkdn
.md
.mkd
.mdwn
.mdtxt
.mdtext
.text
.Rmd
আর গিটহাবে এগুলোর markdown, mdown, mkdn, mkd, md
যেকোনো একটা এক্সটেনশন দিয়ে ফাইল সেইভ করলে গিটহাব সেটার ভিতরের কন্টেন্টগুলো থেকে মার্কডাউন এর সিনট্যাক্স ধরে নিতে পারবে। তাছাড়াও বাই ডিফল্ট হিসাবে প্রোজেক্টের হোমপেজে যে Readme দেখায় সেটা গিটহাব README.md
নামক ফাইল থেকে অটোম্যাটিক ধরে নেয় যদি এই ফাইল আপনার প্রোজেক্টের কাঙ্ক্ষিত ডিরেক্টরিতে পাওয়া যায়।