នៅ​ក្នុង​កម្មវិធី Astro យើង​អាច​រក្សាទុក​នូវ​ទិន្នន័យ​ផ្សេង​ៗ​នៅ​ក្នុង​មូលដ្ឋាន​ទិន្នន័យ​ទាំងឡាយនៅ​​លើ server  ឬ​ក៏​អា​ច​បង្កើត​ឯកសារផ្សេង​ៗ​​សំរាប់​​កត់ត្រា​ទុក​នូវ​ទិន្នន័យ​ទាំងនោះ​​នៅ​ក្នុង​កម្មវិធី​គេហទំព័រ​របស់​យើង​ផ្ទាល់​ក៏​បាន​។ ឯកសារ​សំរាប់​កត់ត្រា​ទុក​នូវ​ទិន្នន័យ​អាច​ជា​ឯកសារ Markdown ដែល​មាន​ឈ្មោះ​នៅ​ចុង​ជា .md, ឯកសារ MDX (.mdx), ឯកសារ YAML (.yaml), និង​ឯកសារ JSON (.json) ។

 

ចំពោះ​កម្មវិធី​គេហទំព័រប្លក់ (blog) យើង​អាច​ប្រើប្រាស់​ឯកសារ Markdown ហៅ​កាត់ថា MD សំរាប់​កត់ត្រាទុក​នូវ​ទិន្នន័យ​ទាំងឡាយ​ដែល​នឹងត្រូវ​បកប្រែទៅ​ជា​ភាសា HTML បង្ហាញ​នៅ​លើ browser ។ ក៏​ប៉ុន្តែ​ចាំបាច់​យើង​ត្រូវ​មាន​ចំណេះដឹង​ពី​ភាសា Markdown នៅ​ក្នុង​ការកត់ត្រា​នូវ​ទិន្នន័យទុក​នៅ​ក្នុង​ឯកសារ MD  នេះ។ ដើម្បី​ទទួល​បាន​ព័ត៌មាន​ស្តី​ពី​ភាសា Markdown យើង​អាច​ចូល​អាន​គេហទំព័រ​មួយ​នេះ https://daringfireball.net/projects/markdown/basics

 

ទំរង់​នៃ​ឯកសារ MD នៅ​ក្នុង​កម្មវិធី Astro ស្រដៀង​នឹង​ឯកសារ Astro គឺ​មាន​ផ្នែក​ frontmatter ដែល​ត្រូវ​កំណត់​ដោយ​សញ្ញា​ដក​ចំនួន​បី​នៅ​ផ្នែក​ខាង​លើ និង​ផ្នែក​នៃ​ភាសា MD នៅ​ផ្នែក​ខាង​ក្រោម​។ ក៏ប៉ុន្តែ frontmatter នៅ​ក្នុង​ឯកសារ MD មិន​មែន​សំរាប់​ភាសា JavaScript នោះ​ទេ គឺ​សំរាប់​បង្កើត​សំណុំ​​ទិន្នន័យ​មានឈ្មោះ​ថា frontmatter ​សំរាប់​យក​ទៅ​ប្រើការ​នៅ​ពេល​ក្រោយ​ទៀត​។

 

---
title: ការផ្សាយដំបូង
---
<!--src/pages/posts/post-1.md-->

## ឯកសារ MD

 

ដូច​គ្នា​នឹង​ឯកសារ Astro ដែរ យើង​អាច​ប្រើប្រាស់​ឯកសារ MD នៅ​ក្នុង​ការបង្កើត​ផ្លូវ​នៅ​ក្នុងកម្មវិធី Astro ។ ជា​លទ្ធផល ​ផ្លូវ​ចូល​ទៅ​កាន់ឯកសារ​ខាង​លើ​នេះ​គឺ /posts/post-1 ។​

 

លើស​ពី​នេះ​ទៀត យើង​ក៏​អាច​បញ្ចូលអ្វី​ៗ​មាននៅ​ក្នុង​ឯកសារ MD ទៅ​ក្នុង​ឯកសារ Astro ដែល​មាន​ប្រហោង​នៅ​ក្នុង​នោះ​ ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

 

<!--src/components/Base.astro-->
---
const {frontmatter} = Astro.props
---

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
        <meta name="viewport" content="width=device-width" />
        <meta name="generator" content={Astro.generator} />
        <title>{frontmatter.title}</title>
        <link href="/fonts/setup.css" rel="stylesheet">
    </head>
    <body>
        <slot />

        <style>
            body{
                font-family: Vidaloka, OdorMeanChey;
            }
        </style>
    </body>
</html>

 

---
layout: ../../components/Base.astro
title: ការផ្សាយដំបូង
---
<!--src/pages/posts/post-1.md-->

## ឯកសារ MD

 

នៅ​ពេល​ដែល​យើង​បញ្ចូល​អ្វី​ៗ​មាន​នៅ​ក្នុង​ឯកសារ MD ទៅ​ក្នុង​ឯកសារ Astro អ្វី​ៗ​មាន​នៅ​ក្នុង​ frontmatter នឹង​ក្លាយ​ទៅ​ជា​សម្បត្តិរបស់​សំណុំ​ទិន្នន័យ frontmatter នៅ​ក្នុង​អថេរ​សកល Astro.props ហើយ​ផ្នែក​នៃ​ភាសា MD នឹង​ត្រូវ​បញ្ជូល​ទៅ​ក្នុង​ប្រហោងនៅ​ក្នុង​ឯកសារ Astro ។​ ហើយ​ការយកឯកសារ Astro មក​ប្រើ​នៅ​ក្នុង​ឯកសារ MD ត្រូវ​ធ្វើ​ឡើង​ដោយ​បង្កើតសម្បត្តិ layout មួយ​នៅ​ក្នុង​ frontmatter នៃ​ឯកសារ MD ។

 

ផ្ទុយ​ទៅ​វិញ ឯកសារ Astro ក៏​អាច​នាំ​ចូល​ឯកសារ MD មក​ស្រង់​យក​ទិន្នន័យ​ទៅ​ប្រើការ​នៅ​ក្នុង​ផ្នែកផ្សេង​ៗ​ទៀតបាន​ដែរ​។

 

<!--src/pages/index.astro-->
---
import Base from "../components/Base.astro"

// Import a single file
import * as myPost from './posts/post-1.md'
const Content = myPost.Content

// Import multiple files with Astro.glob
const posts = await Astro.glob('./posts/*.md')
---

<Base title="ទំព័រ​​ដើម">
    <p>{myPost.frontmatter.title}</p>
    <p>និពន្ធ​ដោយ: {myPost.frontmatter.author}</p>
    <p><Content /></p>

    <p>កាលនុបវត្តិ:</p>
    <ul>
        {posts.map(post => <li><a href={post.url}>{post.frontmatter.title}</a></li>)}
    </ul>
</Base>

 

<!--src/components/Base.astro-->
---
const {title} = Astro.props
---

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
        <meta name="viewport" content="width=device-width" />
        <meta name="generator" content={Astro.generator} />
        <title>{title}</title>
        <link href="/fonts/setup.css" rel="stylesheet">
    </head>
    <body>
        <slot />

        <style>
            body{
                font-family: Vidaloka, OdorMeanChey;
            }
        </style>
    </body>
</html>

 

---
title: ការផ្សាយលើក​ទី ១
author: កែវ សុភ័ក្រ
---
<!--src/pages/posts/post-1.md-->

## ឯកសារទី ១

 

---
title: ការផ្សាយលើក​ទី ២
author: កែវ សុភ័ក្រ
---
<!--src/pages/posts/post-2.md-->

## ឯកសារទី ២

 

នៅ​ពេល​ដែល​យើង​នាំ​ចូល​ស្រង់​យក​ទិន្នន័យ​នៃ​ឯកសារ MD មក​ប្រើ ទិន្នន័យ​នៃ​ផ្នែក​ភាសា MD ត្រូវ​ស្ថិត​នៅ​ក្នុង​​សមាសភាគ Content ។ យើង​អាច​ស្រង់​យក​សមាសភាគ Content នេះ​មក​ប្រើ​នៅ​ក្នុង​ផ្នែក​នៃ​ភាសា Astro ។