Skip to content

মার্কডাউনে ফ্রন্টম্যাটার ব্যবহার

ফ্রন্টম্যাটার হল ফাইলের শুরুতে YAML, TOML, বা JSON ব্যবহার করে আপনার মার্কডাউন ডকুমেন্টে মেটাডেটা যোগ করার একটি উপায়। এটি স্ট্যাটিক সাইট জেনারেটর এবং কন্টেন্ট ম্যানেজমেন্ট সিস্টেমে ব্যাপকভাবে ব্যবহৃত হয়।

ফ্রন্টম্যাটার কী?

ফ্রন্টম্যাটার হল মার্কডাউন ফাইলের শুরুতে মেটাডেটার একটি ব্লক, যা ডিলিমিটার দ্বারা আবদ্ধ। এটি ডকুমেন্ট সম্পর্কে এমন তথ্য প্রদান করে যা মূল কন্টেন্টের অংশ নয়।

YAML ফ্রন্টম্যাটার

সবচেয়ে সাধারণ ফরম্যাট, তিনটি ড্যাশ ডিলিমিটার হিসেবে ব্যবহার করে:

markdown
---
title: আমার আর্টিকেল শিরোনাম
date: 2024-01-15
author: জন ডো
tags: [মার্কডাউন, টিউটোরিয়াল, ওয়েব]
---

# আর্টিকেল কন্টেন্ট এখানে শুরু হয়

আপনার নিয়মিত মার্কডাউন কন্টেন্ট অনুসরণ করে...

TOML ফ্রন্টম্যাটার

তিনটি প্লাস সাইন ব্যবহার করে:

markdown
+++
title = "আমার আর্টিকেল শিরোনাম"
date = 2024-01-15
author = "জন ডো"
tags = ["মার্কডাউন", "টিউটোরিয়াল", "ওয়েব"]
+++

# আর্টিকেল কন্টেন্ট

JSON ফ্রন্টম্যাটার

তিনটি সেমিকোলন বা কার্লি ব্রেস ব্যবহার করে:

markdown
;;;
{
  "title": "আমার আর্টিকেল শিরোনাম",
  "date": "2024-01-15",
  "author": "জন ডো",
  "tags": ["মার্কডাউন", "টিউটোরিয়াল", "ওয়েব"]
}
;;;

# আর্টিকেল কন্টেন্ট

সাধারণ ফ্রন্টম্যাটার ফিল্ড

বেসিক মেটাডেটা

yaml
---
title: আর্টিকেল শিরোনাম
description: কন্টেন্টের সংক্ষিপ্ত বিবরণ
author: জন ডো
date: 2024-01-15
updated: 2024-01-20
---

SEO এবং সোশ্যাল মিডিয়া

yaml
---
title: মার্কডাউনের সম্পূর্ণ গাইড
description: মার্কডাউন সিনট্যাক্স এবং ব্যবহার সম্পর্কে সবকিছু শিখুন
keywords: মার্কডাউন, টিউটোরিয়াল, সিনট্যাক্স, গাইড
og:image: /images/markdown-guide.jpg
og:type: article
twitter:card: summary_large_image
---

সংগঠন

yaml
---
categories: [ওয়েব-ডেভেলপমেন্ট, টিউটোরিয়াল]
tags: [মার্কডাউন, html, css]
series: মার্কডাউন-মাস্টারি
part: 3
---

লেআউট এবং স্টাইলিং

yaml
---
layout: post
template: article
theme: dark
sidebar: true
toc: true
---

স্ট্যাটিক সাইট জেনারেটর ইন্টিগ্রেশন

Jekyll

yaml
---
layout: post
title: "আমার ব্লগ পোস্ট"
date: 2024-01-15 14:30:00 +0000
categories: jekyll update
permalink: /my-custom-url/
published: true
---

Hugo

yaml
---
title: "আমার পেজ শিরোনাম"
date: 2024-01-15
draft: false
weight: 10
menu:
  main:
    weight: 10
---

Gatsby

yaml
---
title: আমার পোস্ট শিরোনাম
date: "2024-01-15"
description: "পোস্ট বিবরণ"
featuredImage: "./featured-image.jpg"
---

Next.js (MDX)

yaml
---
title: 'আমার MDX পোস্ট'
publishedAt: '2024-01-15'
summary: 'এটি আমার পোস্ট সারসংক্ষেপ'
---

VuePress

yaml
---
title: ডকুমেন্টেশন পেজ
lang: en-US
meta:
  - name: description
    content: পেজ বিবরণ
  - name: keywords
    content: মার্কডাউন vuepress ডকুমেন্টেশন
---

অ্যাডভান্সড ফ্রন্টম্যাটার বৈশিষ্ট্য

অ্যারে এবং লিস্ট

yaml
---
tags:
  - javascript
  - react
  - tutorial

authors:
  - name: জন ডো
    email: john@example.com
  - name: জেন স্মিথ
    email: jane@example.com
---

নেস্টেড অবজেক্ট

yaml
---
seo:
  title: কাস্টম SEO শিরোনাম
  description: SEO বিবরণ
  keywords: [seo, মার্কডাউন]
  
social:
  twitter:
    card: summary
    creator: "@username"
  facebook:
    app_id: "123456789"
---

কাস্টম ফিল্ড

yaml
---
# অ্যাপ্লিকেশন-স্পেসিফিক ফিল্ড
difficulty: intermediate
reading_time: 15
code_examples: true
video_url: https://youtube.com/watch?v=example

# ফিচার ফ্ল্যাগ
enable_comments: true
show_table_of_contents: true
show_related_posts: true
---

তারিখ ফরম্যাট

yaml
---
# ISO 8601 ফরম্যাট (সুপারিশকৃত)
date: 2024-01-15T14:30:00Z

# টাইমজোন সহ
date: 2024-01-15T14:30:00+08:00

# শুধু তারিখ
date: 2024-01-15

# কাস্টম ফরম্যাট (পার্সারের উপর নির্ভরশীল)
date: January 15, 2024
---

বুলিয়ান মান

yaml
---
published: true
draft: false
featured: yes
pinned: no
comments_enabled: true
---

মাল্টিলাইন স্ট্রিং

yaml
---
# লিটারেল ব্লক স্কেলার (নিউলাইন সংরক্ষণ করে)
description: |
  এটি একটি মাল্টিলাইন
  বিবরণ যা সংরক্ষণ করে
  লাইন ব্রেক।

# ফোল্ডেড ব্লক স্কেলার (নিউলাইন ফোল্ড করে)
summary: >
  এটি একটি ফোল্ডেড
  মাল্টিলাইন স্ট্রিং যা
  একটি সিঙ্গেল লাইনে পরিণত হয়।
---

প্রোগ্রামাটিক অ্যাক্সেস

JavaScript/Node.js

javascript
const fs = require('fs');
const matter = require('gray-matter');

// ফ্রন্টম্যাটার পড়ুন এবং পার্স করুন
const file = fs.readFileSync('article.md', 'utf8');
const { data, content } = matter(file);

console.log(data.title);     // ফ্রন্টম্যাটার অ্যাক্সেস করুন
console.log(content);         // মার্কডাউন কন্টেন্ট অ্যাক্সেস করুন

Python

python
import frontmatter

# ফ্রন্টম্যাটার লোড করুন
with open('article.md') as f:
    post = frontmatter.load(f)
    
print(post['title'])          // ফ্রন্টম্যাটার অ্যাক্সেস করুন
print(post.content)           // মার্কডাউন কন্টেন্ট অ্যাক্সেস করুন

Ruby

ruby
require 'front_matter_parser'

# ফ্রন্টম্যাটার পার্স করুন
parsed = FrontMatterParser::Parser.parse_file('article.md')

puts parsed['title']          // ফ্রন্টম্যাটার অ্যাক্সেস করুন
puts parsed.content           // মার্কডাউন কন্টেন্ট অ্যাক্সেস করুন

ভ্যালিডেশন এবং স্কিমা

JSON স্কিমা উদাহরণ

json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": ["title", "date"],
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

সেরা অনুশীলন

  1. সামঞ্জস্যপূর্ণ হোন: ডকুমেন্ট জুড়ে একই ফ্রন্টম্যাটার স্ট্রাকচার ব্যবহার করুন
  2. প্রয়োজনীয় ফিল্ড: সর্বদা শিরোনাম এবং তারিখের মতো অপরিহার্য ফিল্ড অন্তর্ভুক্ত করুন
  3. স্ট্যান্ডার্ড ব্যবহার করুন: তারিখের জন্য ISO ফরম্যাট অনুসরণ করুন
  4. স্কিমা ডকুমেন্ট করুন: আপনার ফ্রন্টম্যাটার স্কিমার ডকুমেন্টেশন বজায় রাখুন
  5. ভ্যালিডেট করুন: ত্রুটি ধরতে স্কিমা ভ্যালিডেশন ব্যবহার করুন
  6. ডিফল্ট মান: ঐচ্ছিক ফিল্ড থাকলে যুক্তিসঙ্গত ডিফল্ট প্রদান করুন

সাধারণ ব্যবহারের ক্ষেত্রে

ব্লগ পোস্ট

yaml
---
title: "JavaScript-এ Async/Await বোঝা"
date: 2024-01-15
author: জন ডো
categories: [javascript, tutorials]
tags: [async, promises, es6]
excerpt: পরিষ্কার অ্যাসিনক্রোনাস কোড লেখা শিখুন
featured_image: /images/async-await.jpg
reading_time: 8
---

ডকুমেন্টেশন

yaml
---
title: API রেফারেন্স
section: ডকুমেন্টেশন
order: 3
toc: true
api_version: "2.0"
last_updated: 2024-01-15
contributors: [john, jane]
---

ই-কমার্স পণ্য

yaml
---
title: "প্রিমিয়াম চামড়ার ওয়ালেট"
sku: "WLT-001"
price: 79.99
currency: USD
in_stock: true
categories: [অ্যাক্সেসরিজ, ওয়ালেট]
colors: [black, brown, tan]
sizes: [standard]
---

সমস্যা সমাধান

সাধারণ সমস্যা

অবৈধ YAML সিনট্যাক্স

yaml
# ভুল: বিশেষ ক্যারেক্টার সহ আনকোটেড স্ট্রিং
title: My Article: A Guide

# সঠিক: বিশেষ ক্যারেক্টার সহ স্ট্রিং কোট করুন
title: "My Article: A Guide"

ভুল ডিলিমিটার

yaml
# ভুল: ক্লোজিং ডিলিমিটার অনুপস্থিত
---
title: My Article

# সঠিক: উভয় ডিলিমিটার উপস্থিত
---
title: My Article
---

ইন্ডেন্টেশন ত্রুটি

yaml
# ভুল: অসামঞ্জস্যপূর্ণ ইন্ডেন্টেশন
tags:
  - tag1
    - tag2

# সঠিক: সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন
tags:
  - tag1
  - tag2

উপসংহার

ফ্রন্টম্যাটার হল মার্কডাউন ডকুমেন্টে স্ট্রাকচার্ড মেটাডেটা যোগ করার একটি শক্তিশালী উপায়। এটি স্ট্যাটিক সাইট, ব্লগ এবং ডকুমেন্টেশন সিস্টেমের জন্য অপরিহার্য, নমনীয়তা এবং সংগঠন প্রদান করে।

অতিরিক্ত রিসোর্স

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