แแแแฌแงแแ แแแ แขแแแ แแแแกแแแขแ แแแแแแ (แแแแแแขแ แฏแแแแกแแ แแแขแแก แแแ แแจแ)
แกแขแแขแแแฃแ แ แแแแกแแแขแแก แแแแแ แแขแแ แ
แ แ แแแแแกแฎแแแแแแก แกแขแแขแแแฃแ แกแแแขแก แแแแแแแแฃแ แแกแแแ? แแแแแแแแฃแ แ แกแแแขแแแ แแแแแ แแแแแแ แแ แแแแ แแแ แแแแก แแแแฎแแแ แแแแแก แฅแแแแแแแแแก แกแแคแฃแซแแแแแ. แคแ แแแขแแแ แคแ แแแแแแ แฅแแแ, แ แแแแ แแชแแ React, Angular แแ Vue แแงแแแแแแ แฏแแแแกแแ แแแขแก, แ แแ แแแแแแแแฃแ แแ แแแแแ HTML แแ CSS แแ แแฃแแแ แจแ. แฎแจแแ แจแแแแฎแแแแแจแ, HTML แกแแฌแงแแก แแแแแแแชแแแจแ (แแแ แแแ แแแแแกแแแฃแแแจแ, แ แแชแ แแแก แแแแฎแแแ แแแแแ แแแฎแกแแแก) แกแแแ แแแ แแ แแ แกแแแแแก, แแแก แฏแแแแกแแ แแแขแ แแแแแแ แแ แแแก โ แแก แแ แแแแแ แแแแแ แแแ แแแแแแแชแแแแแกแแแแกแแ แแแแแฎแแกแแแแแแแแ. แแแแกแแแแแแ แแ แกแแแแแก แกแแ แแแ แแก แแฎแ แแแแ แแแ แแแแแ แแแฃแแ แกแแแขแแแ, แ แแแแแแแช, แแแแแแแแแ PHP-แกแ แแ NodeJS-แแก แกแแจแฃแแแแแแ แแแแแแแฃแจแแแแแแ แแแแฎแแแ แแแแแก แแแแฎแแแแแก, แกแแ แแแ แแ แจแแฅแแแแแ แกแแแแกแฃแฎแแ แแแ แแแแก แแ แแแก แแแ แฃแแแแแ. แกแขแแขแแแฃแ แ แกแแแขแแแ, แแ แงแแแแแคแ แแก แกแแแแ แแกแแแ แแ, แแ แแก แฌแแแแกแฌแแ แแแฌแแ แแแ แแ แฃแชแแแแแ (แแแฃ แกแขแแขแแแฃแ แ) แคแแแแแแ. แกแขแแขแแแฃแ แ แกแแแขแ แฃแคแ แ แแแ แขแแแ แแ แกแ แฌแ แแคแ แแกแแฌแงแแแแ, แแแกแ แจแแแแฎแแแช แแแแ แฎแแ แฏแก แแ แแแแแฎแแแก. แแก แแกแแแ แฃแคแ แ แแแ แขแแแแ SEO-แกแแแแก (Search Engine Optimization). แ แแชแ แกแขแแขแแแฃแ แ แกแแแขแแก แ แแฆแแช แแแฌแแแ แแแแแแ แ แแ แแแแแแแแฃแ แ แแงแแก, แแแแกแแแแก แแ แแ แแฃแชแแแแแแแ แแซแแแ แแ แขแแแแ แแแก แแแแแงแแแแแ, แจแแแแแซแแแ แฃแแ แแแแ แกแขแแขแแแฃแ แ แกแแแขแแก แแแแแ แแขแแ แแก แแแแแงแแแแแ, แ แแแแแแช แแแแแแแแฃแ แ แแแแแชแแแแแแกแแแ แฌแแแแกแฌแแ แแแแ แแแแแ แแแก แกแขแแขแแแฃแ แคแแแแแแก.
แฉแแแ แแแแแแแงแแแแแ 11ty-แก แฉแแแแ แแแแกแแแขแแก แแกแแฌแงแแแแ, แ แแแแแแแช แแแแแแแแแกแแแ แแแแแก. แฉแแแ แกแแแขแก แแแแแแ แแแแฃแจแแแแ Netlify-แก แกแแจแฃแแแแแแ, แ แแแแแแช แแแแฐแแแแก แ แแแแแแขแแ แแแกแแแ แแฅแแแแ แแแแแแจแแ แแแฃแแ แแ แงแแแแ แแฎแแ แฅแแแแแแ แแแแกแแแขแก แแแแแกแแ แแแแ แแแแแ แแแก. แแกแ แฉแแแ แจแแแซแแแแ แ แแแแแแขแแ แแแจแ แแฎแแแ แแแแ-แแแกแขแแแแก แแแแแขแแแแก แแแ แแแแฃแแแก แคแแแแแแแก แกแแฎแแ, แ แแแแแแแกแแแแแช แฉแแแแ แแแแแ แแขแแ แ แจแแฅแแแแก แแฎแแ แกแขแแขแแแฃแ แแแแ แแแแก.
แกแฎแแแแแจแแ แแก, แแก แกแแแขแแช, แ แแแแแแแช แแฅแแแ แแ แขแแฅแกแขแก แแแแฎแฃแแแแ, 11ty-แแ แแ แแก แแฌแงแแแแแ!
แแแแแแแแแแ แแ แแแฅแขแ
แจแแแฅแแแแ แแฎแแแ แคแแแแแ แ แแ แแแกแจแ แแแแฃแจแแแ แแ แซแแแแแแแ:
npm init -y
git init
แแฅแแ แจแแแฅแแแแ .gitignore แคแแแแ, แกแแแแช แแแ แกแแแก แแแแขแ แแแก แแแแแแแแแ แแแแแแแ แแ แแกแแญแแ แ แคแแแแแแก:
/.gitignore
node_modules
public
แแแแแแแกแขแแแแ แแ 11ty-แแก แแแแแขแ.
npm i --save-dev @11ty/eleventy
แแแแก แจแแแแแ package.json-แจแ แ แแแแแแแแ แกแแ แแแขแ แแแแแแแแแแ:
/package.json
{
"scripts": {
"start": "eleventy --serve",
"build": "eleventy"
}
}
แแแ แแแแ แแ แซแแแแแ แกแแแแแแแแแแแแขแ แกแแ แแแ แก แแแฃแจแแแแก, แ แแแ แแก แแแขแแแแขแฃแ แแ แแแ แแคแ แแจแแแก แงแแแแ แชแแแแแแแแแ. แแแแ แ แแ แซแแแแแ แแ แแฎแแ แแแแแแก แฉแแแ แแแแกแแแขแก โ แแ แแ แซแแแแแแก แแแแแงแแแแแก Netlify แ แแชแ แกแแแขแก แแแแแจแ แแแแแแแแแกแแแ.
11ty แแแแแกแแแแแ แแแแแแแแฃแ แแแแ แแแแคแแแฃแ แแ แแแฃแแ แแ แฎแจแแ แจแแแแฎแแแแแจแ แแแแ แแแแคแแแฃแ แแชแแแกแแช แแ แกแแญแแ แแแแก. แแแกแ แแแแคแแแฃแ แแชแแแก แคแแแแ แแ แแแฅแขแแก แคแแแแแ แแก แแแแ แแแแแแ แฃแแ แแแแแแแกแแแก, แกแแฎแแแแ .eleventy.js
(แฌแแ แขแแแแ แแแกแแฌแงแแกแจแ!).
/.eleventy.js
module.exports = function (eleventyConfig) {
return {
dir: {
input: "src",
output: "public",
},
};
};
แฉแแแ แแแแคแแแฃแ แแชแแแก แคแฃแแฅแชแแแก แแแแฅแกแแแ แขแแแ. แคแฃแแฅแชแแแก แแแ แแแแขแ แ eleventyConfig
แซแแแแแ แแซแแแแ แ แแแแคแแแฃแ แแชแแแก แฎแแแกแแฌแงแแ, แ แแแแแกแแช แแแแแแแแแแแ แแแแแแแงแแแแแ. แแแฏแแ แแ แคแฃแแฅแชแแแ แแแแ แฃแแแแ แแแแคแแแฃแ แแชแแแก แแแแแฅแขแก, แกแแแแช แแแแฃแแแแแแ, แ แแ แแแแแก แฌแงแแ แ แแฅแแแแ src
แคแแแแแ แ แแ eleventy แแ แแแแแกแแแ แแแแแแแแ แแ แแแก แกแขแแขแแแฃแ แแแแกแแแขแก public
แคแแแแแ แจแ (แแแแคแแแฃแ แแชแแแก แแแ แแจแ, แแแแกแแแขแ แแฅแแแแ _site
แคแแแแแ แจแ). แกแฌแแ แแ แแ แฃแแแแแกแแแแแก แแงแแแแแก แกแแแแแแแแแแแแขแ แกแแ แแแ แ แแ, แ แ แแฅแแ แฃแแแ, Netlify, แ แแแแแแช แแแแกแแแขแก แฐแแกแขแแแก.
แแแแคแแแแแแกแแแแก แฉแแแ แแแแแแแงแแแแแ nunjucks-แก, แแฃแแชแ แแแแแกแฃแคแแแ แจแแแแซแแแแ แแแแแแงแแแแ แแแแแกแแแแ แ แแแแคแแแแแแก แแแ. แแแแ แฃแแแขแแกแแแ แแแขแแแ แแ แแแฃแแแ 11ty-แจแ แแ แจแแกแแซแแแแแแแ แงแแแแ แแแแแแแแก แแ แแแ แแฃแแแ แแแแแงแแแแแแช! แแฎแแแแ HTML-แแก แแแแแงแแแแแ แฃแแแ แ แแฅแแแแแแ, แ แแแแแ แฉแแแ แแแแแแ eleventy-แก แแแแแแแแฃแ แแ แแแแแแแแแกแแแแแแ แแแแแชแแแแแ.
แจแแแแจแแแ: แแฃ แแงแแแแแ vscode-แก, แแแแงแแแแ แคแแแแแแ โNunjucks Templateโ.
/src/index.njk
---
title: "Home"
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
แฏแแ แฏแแ แแแแ แแแแฏแแแกแแก แกแแแขแแฅแกแ แแ แแแแแแแแงแแแแแแ, แแแแ แแ แแแแแก แแ แแช แแแแ! แคแแแแแก แแแแแ แฉแแแ แแแแฌแแ แแ แ.แฌ โfront matterโ แ แแแแแกแแช 11ty แฌแแแแแแฎแแแก แแ แแแแแแฅแชแแแก แฏแแแแกแแ แแแขแแก แแแแแฅแขแแ. แแแ แฉแแแแแแแก แแฅแแแแ แฎแแแแแกแแฌแแแแแ แกแฎแแแแแกแฎแแ แแแแแ แแแแจแ. Front matter แฉแแแฃแแแแ แแ YAML แคแแ แแแขแแกแแ, แแฃแแชแ แจแแแแซแแแแ JSON แคแแ แแแขแแก แฎแแแ แแแแช แแฃแแ แแแ แแแแ แแแคแแกแแแแก แกแแแแฃแแก แแแฃแฌแแ แ json-แก:
---json
{
"title": "Home"
}
---
แแชแแแแ แแ แแแแแแแแแ แกแแแขแ:
npm run start
แฉแแแแ แกแแฌแงแแกแ แแแแ แแ แแ แแฃแแแ แจแ แฃแแแ แแแแแฉแแแแก.
แแแแแแแแแขแแแ แแ แแแแแฃแแแแ
แแฎแแ แแแแแแแงแแแแ 11ty-แก แแแแแฃแแแแ. 11ty แแแแคแแแแแแแแก แแแแก แแแแจแแแแแแแแ แแกแแแฅแขแก แแงแแแแแก, แแแกแ แกแแจแฃแแแแแแ แจแแแแแซแแแ แแ แแแแ แแแแแกแแแฆแแ แแ แแแ แแแแ แแ แแก แแแแ แกแฎแแแแแกแฎแแ แแแแแแแก แแแแแแแงแแแแ. แจแแแฅแแแแ _includes
แคแแแแแ แ แแ แแแกแจแ แคแแแแ base.njk
. แแก แแฅแแแแ แฉแแแแ แแแแแแ แ แแแแแฃแแ.
/src/_includes/base.njk
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{# แแแแ #}
<link rel="icon" type="image/png" href="/assets/icons/11ty-logo.png" />
{# แกแขแแแแแ #}
<link rel="stylesheet" href="/styles/main.css" />
<title>{{ title }}</title>
</head>
<body>
<h1>แแก แขแแฅแกแขแ แแ แแก base.njk-แแแ</h1>
<main>{{ content | safe }}</main>
</body>
</html>
index.njk
-แจแ แแแแฃแแแแแ, แ แแแแ แแแแแฃแแจแ แแแแแแ แจแแคแแฃแแแ แงแแแแแคแแ แ, แ แแช แแ แคแแแแจแ แแแแฅแแแแ.
---
layout: "base.njk"
title: "Home"
---
<div class="home-container">
<h1>Hello World!</h1>
</div>
แ แแแแแ index.njk-แจแ แฉแแแ layout-แก แแแแแชแแ แแแแจแแแแแแแ, 11ty แแแขแแแแขแฃแ แแ แแแซแแแแแก แจแแกแแแแแแกแ แกแแฎแแแแก แคแแแแก _includes แคแแแแแ แจแ. แแก แแแคแแ แแแชแแ, แ แแแแแแช แฉแแแ front matter-แจแ แแแแฌแแ แแ แแแ แแแแแ แแ แฎแแแแแกแแฌแแแแแ แแแแแฃแแจแ. แแแกแ แแแแแแแกแแแ แจแแแแแซแแแ แแแแฏแแแกแแก แกแแแขแแฅแกแแ. แแแแกแแแขแแก แกแแแแฃแ แ แกแฌแแ แแ แแแแก แกแแจแฃแแแแแแ แแแแแแแแแกแแ head-แจแ. content
แแ แแก แแแแแแแฃแ แ แแแแแฅแขแ, แ แแแแแแช แแ แจแแแแฎแแแแแจแ แแ แแก index.njk-แก แจแแแแแแกแ, แแแแแแแแ แขแแ แแแฃแแ HTML-แจแ. แฉแแแ แแแก safe
แคแแแขแ แจแ แแแขแแ แแแ |
-แกแแแแแแแแ, แ แแแ html แแแขแแ แแ แแขแแ แแแก. แกแฎแแ แจแแแแฎแแแแแจแ, แแแ แแแแ แแแ แแแแแ แแแ แแแแแ แแแแ แ แแแแ แช แขแแฅแกแขแ (แแก แแแแฏแแแกแแก แกแแแชแแคแแแแ).
แ แแแแแแขแแ แแแแแ แฉแแแแฌแแ แแ แฌแแแแกแฌแแ แแแแแแแแแฃแแ แกแขแแแแแแก แคแแแแ แแ แแแแกแแแขแแก แแแแ. แกแขแแแแแ แแแแแแแแแกแแ /src/styles/main.css-แจแ, แฎแแแ แแแแ โ /src/assets/icons/11ty-logo.png. แฉแแแ แแฎแแแแ แแฅ แแแแแแฌแแแก แกแขแแแแแแก แแแแแแแแ แแ แแแแแกแแแแ แ แคแแแแ, แ แแแแแแช แแ แแแแแฃแแก แแแแแแงแแแแแก, แจแแกแแแแแแก แกแขแแแแแกแแช แแแแฆแแแก.
แแฅแแ แแแแแญแแ แแแแ 11ty-แแก แแฃแแฎแ แแ, แ แแ แกแแแขแแก แแแแแแก แแ แแก แแแแแขแแแแแ แคแแแแแแแช แแแแแแขแแแแก public แคแแแแแ แจแ, แแแ แแ แแแแแกแแแแแ แแแแคแแแแแแก แคแแแแแแแก แแแ แแ แแแก แกแฎแแ แแ แแคแแ แ แแแแแแฅแแก:
/.eleventy.js
module.exports = function (eleventyConfig) {
// แแแแแแขแแแก แแฆแแแจแแฃแ แคแแแแแแก public แคแแแแแ แจแ
eleventyConfig.addPassthroughCopy("./src/styles");
eleventyConfig.addPassthroughCopy("./src/assets");
return {
dir: {
input: "src",
output: "public",
},
};
};
แแฎแแ แจแแแฅแแแแ แแแแแแแชแแแก แแแแแแแแแขแ.
/src/_includes/header.njk
<header>
<h3>My Blog</h3>
<nav>
<ul>
<li><a href="/" class="{{ "active" if page.url === "/" }}">Home</a></li>
<li><a href="/blog" class="{{ "active" if "/blog" in page.url }}">Blog</a></li>
</ul>
</nav>
</header>
11ty แแแแฌแแแแก แแแแแแแฃแ แแแแแฅแขแก page
, แ แแแแแแแช แฉแแแ แจแแแแแซแแแ แแฅแขแแฃแ แ แแแแแแก แแแฎแแแแแ แแแแแ แแขแฃแแ แแแแกแ แแแแแแแญแแ แแแแแแแชแแแก แแแแแแฃแ แแแแแแแขแก.
แแแแกแกแจแ แฉแแแ แแแแฏแแแกแแก แกแแแขแแฅแกแแก แแ แญแงแแแแแก แแฎแกแแแ แแ แแฌแแ แ แแแแแแแก. แฉแแแ แแแแแแ แ แแ แแแแแแ แ แแแแ แแแก แฆแแแแแก แแแแแแญแแก active
แแแแกแ, แแฃแแ แแแแ แแแก แแแแแ แแ แแก โ/โ. แแแแ แ แฆแแแแแ แแ แแแจแแ แฃแแแ แแงแแก แแฅแขแแฃแ แ, แแฃแแ แแแแ แแแก แแแแแ แจแแแชแแแก โ/blogโ-แก (แแแแขแแ แแแงแแแแแ in
แแแแ แแขแแ แก). แแก แแแแก แแแจแแแแก, แ แแ แฆแแแแแก active
แแแแกแ แแแจแแแแช แแแแแแญแแแ, แแฃ แแแแแ แแฃแกแขแแ โ/blogโ แแ แแ แแก (แแแแแแแแแ โ/blog/my-blog-titleโ).
11ty-แจแ แแแแแแแชแแแก แฃแแแ แแแกแแแแ แแแแแ แจแแแแซแแแแ แแแแชแแแ แแคแแชแแแแฃแ แแแแฃแแแแขแแชแแแก.
แแแแแแแชแแ แแแแแแแแแกแแ base.njk
-แจแ.
/src/_includes/base.njk
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/png" href="/assets/icons/11ty-logo.png" />
<link rel="stylesheet" href="/styles/main.css" />
<title>{{ title }}</title>
</head>
<body>
{% include "header.njk" %}
<main>{{ content | safe }}</main>
</body>
</html>
แแฅแแ แฃแแแ แจแแแฅแแแแ blog แแแแ แแ. แฉแแแฃแแแแ แแ, src-แจแ แฉแแแ แ แ แแแแคแแแแ แคแแแแกแแช แจแแแฅแแแแ, แแแแแแฅแชแแแ แจแแกแแแแแแกแ แกแแฎแแแแก แแฅแแแ แแแแ แแแ public แคแแแแแ แจแ. แแฅแแช แฉแแแ base.njk
-แก แแแงแแแแแ แแแแแฃแแแ แแ แจแแแชแแแแ แแฎแแแแ แกแแแแฃแ แก.
/src/blog.njk
---
layout: "base.njk"
title: "Blog"
---
<div class="blogs">
<h1>แแฅ แแฅแแแแ แแแแ-แแแกแขแแแ</h1>
</div>
แแฎแแ แแแแแแแชแแแจแ Blog แฆแแแแแแ แฃแแแ แแแแแแแแงแแแแแก แกแแแแแแแ แแแแ แแแ, แฎแแแ แแแกแ แคแแ แ แฃแแแ แจแแแชแแแแแก.
แแแแแฅแชแแแแ - แแแแ-แแแกแขแแแ markdown-แแ
แแแ แแแแฃแแแก แจแแกแแฎแแ แแฃ แแแแ แ แแ แแคแแ แ แแชแแ, แแแแชแแแแ แแ แกแขแแขแแแก. แฉแแแ แแแแ-แแแกแขแแแแก แแแกแแฌแแ แแ แแแแแแแงแแแแแ แแ แแแ แขแแ แแ แแแฎแแ แฎแแแฃแ แแแ แแแแแก แกแแกแขแแแแก. แแแแแแฃแแ แแแกแขแ แแฅแแแแ แชแแแแแฃแแ แคแแแแ, แ แแแแแจแแช แแแแแแแกแแแแ front matter, แ แแแ 11ty-แแ แกแแญแแ แ แแแคแแ แแแชแแ แแแแแ แแแแแ แแ แแ, แ แ แแฅแแ แฃแแแ, แแแแแแ แแแ แแแแฃแแ โ แแแแแแก แขแแฅแกแขแ. แ แแชแ แแแแกแแแขแก แแแแแจแ แแแแฃแจแแแแ, แแฎแแแ แแแกแขแแก แแแกแแแแขแแแแแ แฃแแ แแแแ แแฎแแ แแแ แแแแฃแแแก แคแแแแก แแแแแแแขแแแ แ แแแแแแขแแ แแแจแ แแ แแแฅแแแแแแแแก แจแแแแแ Netlify แแ 11ty แงแแแแแคแแ แก แแแแแกแแ แแแแแแแ แแแแ.
แแแแแแแแ แฉแแแ แแแแแแ, แ แแ แแแกแขแแแ แแแแฅแชแแก blog-แแก แแแแแแ (website.com/blog/blogname), แฉแแแ แฃแแแ แจแแแฅแแแแ แคแแแแแ แ แกแแฎแแแแ blog (src-แจแ) แแ แแฅ แแแแแแแแแกแแ แ แแแแแแแแ แแแ แแแแฃแแแก แคแแแแ.
src แคแแแแแก แแแแแแแแแแแ แกแขแ แฃแฅแขแฃแ แ (แชแแขแแฎแแแ แแแแแแแแ แแ blog.json).
src
โโโ assets
โ โโโ icons
โ โ โโโ 11ty-logo.png
โ โโโ images # แกแฃแ แแแแแ, แ แแแแแกแแช แแแกแขแจแ แแแงแแแแแ
โ โโโ my-cat-1.jpg
โ โโโ my-cat-2.jpg
โ โโโ my-cat-3.jpg
โโโ blog
โ โโโ blog.json # แแแแคแแแฃแ แแชแแแก แคแแแแ
โ โโโ first-post.md
โ โโโ second-post.md
โ โโโ third-post.md
โโโ blog.njk
โโโ _includes
โโโ index.njk
โโโ styles
โโโ main.css
แแแแแแแแแกแแ แกแแแ แแแ แแแแแ แแแกแขแ. แแแแ แกแแฎแแแแก แแแฎแแแแแ 11ty แแแแแแก แแแฃแแก, แ แแแแแแแช แแ แแแกแขแก แแแแแแแแแ. แแแแแแแแแ, แแแ แแแแ แแแกแขแแก แแแแแ แแฅแแแแ localhost:8080/blog/first-post/
.
แแแกแขแแแแก แจแแแแแแกแ แแแแฌแแแแ แแ แแแแแ แแ:
/src/blog/first-post.md
---
title: "First Post"
date: 2022-09-01
description: "This is the first post on my 11ty site"
image: "/assets/images/my-cat-1.jpg"
imageAlt: "Picture of a cat"
tags: ["featured", "cat"]
---
## Habet arisque nec puer ipse ab adflatuque
Lorem markdownum silvis cecidit magnis Bacchi, est tenebas; est atque ita videt
mensuraque senectus multis quoniam et! Digitos palato Epidauria ea illos
committere Phinea trepidantem quare; tempora corpus ipsoque! Primis aequantibus
leto blanditur, contigero dixerat templisque undas promisistis inque, dant.
Utrumque es suas attulerat incubuit sum fabula ungues et pectus Enipeus frigida!
Iaculum inpositum ululatibus geminos inplet secura Aetnaea, per turbam superos
linguam tenuere: et concolor nimium!
<!-- แขแแฅแกแขแแก แแแแ แซแแแแแ... -->
front matter-แจแ แแแแแขแแแแแ แแแแแชแแแแแ แแแแฃแแแแแ: แกแแแแฃแ แ, แแแ แแฆแ (แ แแแแแกแแช 11ty Date แแแแแฅแขแแ แแแแแแแแแ แขแแ แแแก), แแฆแฌแแ แ, แกแฃแ แแแ, แกแฃแ แแแแก แแฆแฌแแ แ แแ แแแแแแ. แแแแแแ แกแแญแแ แแ แแแแขแแแขแแก แแแกแแคแแแขแ แแ. 11ty แกแแจแฃแแแแแแก แแแแซแแแแก แ แแ แแแแแแแก แแแฎแแแแแ แแแแฆแแ แแ แแแแแแแแแกแแ แแแแแฅแชแแแแแ แแแแแแแ. แแฃ แแ แกแแแแแก แแแแแชแแแ, แ แแแแแแช แแแแแแ แ แแ แแแกแแแฃแขแฃแ แแ แงแแแแ แแแแแฅแชแแแก แแแแแแญแแก, แแ แแ แกแแญแแ แ แแแแแแฃแแ แแแแแแแแกแแแแก แแ แแแแแชแแแแก แแแฌแแ แ front matter-แจแ. แจแแแแแจแแแ แแแแแ แคแแแแแ แจแ แจแแแฅแแแแ (แคแแแแแ แแก แกแแฎแแแแก แแฅแแแ) แแแแคแแแฃแ แแชแแแก แคแแแแ:
/src/blog/blog.json
{
"tags": "post"
}
แแ แแแแคแแแฃแ แแชแแแ แฉแแแ แแแฃแแแแแแ 11ty-แก, แ แแ แงแแแแ แคแแแแก blog-แจแ, แแแแแแญแแก แแแแ โpostโ-แแก แแแแจแแแแแแแแ. แ แแชแ 11ty แฉแแแแ แแแ แแแแฃแแแก แคแแแแแแแกแแแ แแแแแฅแชแแแก แจแแฅแแแแก, แฉแแแ แจแแแแแซแแแ แงแแแแ แแแกแขแก แฉแแแฌแแแแ แกแฌแแ แแ แแ post แแแแแก แกแแจแฃแแแแแแ, แ แแแแแแช แงแแแแ แแแ แแแแฃแแแก แคแแแแก แแฅแแแแ blogs แคแแแแแ แจแ. แแแแแแแแแกแแ blog แแแแ แแแ แแแกแขแแก แแแแแแแ, แแแแแกแ แแแ แแแแแแก แกแฃแ แแแแ, แกแแแแฃแ แแ, แแแ แแฆแแแ แแ แแฆแฌแแ แแ:
/src/blog.njk
---
layout: "base.njk"
title: "Blog"
---
<div class="blogs">
<ul>
{%- for post in collections.post | reverse -%}
<li class="blog-preview">
<img src="{{ post.data.image }}" alt="{{ post.data.imageAlt }}" />
<div class="blog-preview__details">
<div>
<h1>{{ post.data.title }}</h1>
<p class="blog-preview__date">{{ post.data.date }}</p>
<p>{{ post.data.description }}</p>
</div>
<div class="blog-preview__actions">
<a href="{{ post.url }}">
<h3>READ</h3>
</a>
</div>
</div>
</li>
{%- endfor -%}
</ul>
</div>
แฉแแแ แแฃแแก แแแแแแแแ แแแแแฅแชแแแก แกแแแแ. 11ty แแแแแแแฃแ แแแแแฅแขแก (collections) แแ แแแแแก แกแแฎแแแแ แแแฃแฉแแแก แแแแแฅแชแแแก แกแแแก, แ แแแแแกแแช แฉแแแ front matter-แจแ, แแ แแแแคแแแฃแ แแชแแแจแ แแแแฃแแแแแแ. แแแแแแแแ blogs แคแแแแแ แจแ แงแแแแ แแแแแฅแชแแแก แแแแฉแแแ post แแแแ, collections.post
แแแแแแฌแแแแก แกแแแก แแแคแแ แแแชแแแ แงแแแแ แคแแแแแก แจแแกแแฎแแ.
แแก แกแแ แจแแแแแแ แแแขแแ แแแฃแแแ reverse
แคแแแขแ แจแ, แ แแแแแ แแแแแกแแแแแ แแแแแฅแชแแ แแแแแแแแฃแแ แฃแซแแแแแกแแแแ แฃแแฎแแแกแแแแ, แฉแแแ แแ แแแ แแฅแแ แแแแแแ โ แฃแแฎแแแกแ แฃแแแ แแงแแก แแแแจแ.
แแก แแแแแชแแแแแ, แ แแแแแแแช แแแแกแแแฃแแ แแแฃแ แคแฃแแฅแชแแแก แแ แแกแ แฃแแแแแ front matter-แจแ (แแแแกแแแฃแแ แแแฃแแ แคแฃแแฅแชแแแก แแแแแแแแแ layout แแ tags), แฉแแแแแแแก แฎแแแแแกแแฌแแแแแแ data
แคแ แแคแแ แแแก แฅแแแจ. แแแแแแแแแ แกแแแแฃแ แ แแแแแแฃแแ แแแกแขแแกแแแแก แแฅแแแแ post.data.title. แแแแแ แแฎแแแ แแฆแฌแแ แแกแ, แแแ แแฆแก, แกแฃแ แแแกแ แแ แกแฃแ แแแแก แแฆแฌแแ แแก, แ แแแแแกแแช แฉแแแ แแแแแแแแฃแ แแ แแแแแแแแแกแแแ แแแแคแแแแแจแ. แ แแฆแแชแแแก 11ty แแแแแกแแ แแแแแแ แแ แแแก, แแแแแแแแแ, แแแแแฅแชแแแก แแแแแก (post.url
) แ แแแแแแช แฉแแแ a
แแแแจแ แฃแแแ แแแแแแแแแกแแ แ แแแ แแ แแแกแขแแก แแแแแแ แแแแแกแแแ แจแแแซแแแ. แแ แแแแแแแฌแงแแแ, แ แแ แแฃแแ แแฃแชแแแแแแแ แฃแแแ แแแแฎแฃแ แแก {%- endfor -%}
-แแ.
แแแแแฅแชแแแแแก แจแแกแแฎแแ แแแขแแก แแแกแแแแแแ แแแแชแแแแ แแคแแชแแแแฃแ แแแแฃแแแแขแแชแแแก.
แฉแแแแ แแแกแขแแแแก แกแแแก แจแแแฎแแแแ แแแฃแแแ localhost:8080/blog/
.
แชแฃแแ แแ แแ, แแแแ แแ แแแ แแฆแแแ, แชแแขแ แแ แแงแแก, แฃแจแแแ. แแแแก แชแแขแ แฎแแแจแ แแแแแแแแ แแแ. แฏแแ แแแกแขแแแแก แแแฎแกแแ แแ แฌแแแแแฎแแ แแฅแแแแแแ แแแ แแ. แกแแฅแแ แแกแแ, แ แแ แฉแแแแ แแแกแขแแแ แแแแแฃแแแแก แแ แแงแแแแแก. แฉแแแ แแแแแแ แ แแ แงแแแแ แแแกแขแแ แแ แแ แแแแแฃแแ แแแแแแงแแแแก. แจแแแฅแแแแ แแฎแแแ แแแแแฃแแ:
/src/_includes/blog.njk
---
layout: "base.njk"
---
<article>
<img src="{{ image }}" alt="{{ imageAlt }}" />
<h1>{{ title }}</h1>
{{ content | safe }}
</article>
แแฅ แ แแฆแแช แกแแแแขแแ แแกแ แฎแแแแ: แฉแแแ แแฎแแ แแแแแฃแแจแ แแแแฃแแแแแแ, แ แแ แแแ, แแแแแก แแฎแ แแ, แแแแแแงแแแแก base.njk
แแแแแฃแแ. แงแแแแ แกแแญแแ แ แแแขแ แแแแแแ, body แแ main แแแแแแ แฃแแ แฃแแแแแงแแคแแแ แแฅแแแแ แแ แฃแแแแแกแแแแแแก แแแแ , แแ แฉแแแ แแ main แแแแแก แจแแแแแ แจแแแฅแแแแ แแแแแฃแแแก แแ แฃแแแแแแฃแ แแแฌแแแก, แ แแแแแแช แกแแกแฃแ แแแแ แแฅแแแแ แแฎแแแแ แแแแ-แแแกแขแแแแกแแแแก.
แ แแแ แแแ แแแแ แกแแแแแขแแแฃแ แแ แแแแแ แแฃแแ แแงแแก, แฉแแแ แขแแฅแกแขแ แฃแแแ แแแแแฅแชแแแ article
แแแแจแ. แแฅแแ แแแแแแแแแกแแ แกแแแแฃแ แ แแ แแแกแขแแก แกแฃแ แแแแช.
แแฎแแ blog แคแแแแแ แแก แแแแคแแแฃแ แแชแแแจแ แแแแฃแแแแแ แกแแกแฃแ แแแแ แแแแแฃแแ:
/src/blog/blog.json
{
"layout": "blog.njk",
"tags": "post"
}
แแฎแแ แฉแแแ แแแแแกแฃแคแแแ แฃแแแ แจแแแซแแแ แกแแแแแ แแแกแขแแแแก แแแฎแกแแ! แ แแแแ แช แฎแแแแแ, แแแแแฃแแแแแ แฉแแแ แแแแคแแแแแจแ แกแฃแ แแแ แแ แกแแแแฃแ แแช แแแแแแแแแกแแ (แแกแแแ แกแแแแฃแ แ แแแแฃแแแแขแแก แแแแจแ, แ แแแแแแช แแ แแฃแแแ แแก แขแแแแ แฃแแแ แแแแแฉแแแแก). แแแแ-แแแกแขแ แแแแแฃแแแ แแงแแแแแก blog.njk
-แก, แ แแแแแแช แขแแฅแกแขแก แแแแขแแแก แกแฃแ แแแกแ แแ แกแแแแฃแ แก, แฎแแแ แแ แงแแแแแคแแ แก article
แแแแแแจแ แแฅแชแแแก. แแแแแก แแฎแ แแ แแก แแแแแฃแแ แแงแแแแแก base.njk
-แก, แ แแแแแแช แจแแคแฃแแแแก แแ แงแแแแแคแแ แก แกแฎแแ แกแแญแแ แ แแแ แแแแแ.
แแแแแ, แแแ แแ, แฉแแแแ แแแแแแแแก แกแแแก แแแแแแฃแแ แแแแแแก แแแแแแ แชแแแแ แคแแแแจแ แแแแแแแขแแแแ แแ แแกแ แแแแแแแแแ แขแแ blog.njk-แจแ. แแกแ แจแแแซแแแแ แ แแ แแแแแแก preview แกแฎแแแแแกแฎแแ แแแแแแแก แแแแฎแแแแ แฎแแแแแกแแฌแแแแแ.
/src/_includes/post-preview.njk
<li class="blog-preview">
<img src="{{ post.data.image }}" alt="{{ post.data.imageAlt }}" />
<div class="blog-preview__details">
<div>
<h1>{{ post.data.title }}</h1>
<p class="blog-preview__date">{{ post.data.date | dateString }}</p>
<p>{{ post.data.description }}</p>
</div>
<div class="blog-preview__actions">
<a href="{{ post.url }}">
<h3>READ</h3>
</a>
</div>
</div>
</li>
/src/blog.njk
---
layout: "base.njk"
title: "Blog"
---
<div class="blogs">
<ul>
{%- for post in collections.post | reverse -%}
{% include "post-preview.njk" %}
{%- endfor -%}
</ul>
</div>
แแแฅแแแ, แแแแแแ แแแแ แแแ แแแแแแ, แ แแ แแก แแแกแขแแแ แแแแแฉแแแแก, แ แแแแแกแแช แ แแแแ แกแฎแแ แแแแ แแฅแแก แแแแแญแแแฃแแ, แแแแแแแแแ, featured
. แแแ แแแ แแแแแก, แแฃ แแแแแ แแแแแแแแฌแแแแ, แกแฌแแ แแ แแก แแแแ แแแแแแแญแแ.
/src/index.njk
---
layout: "base.njk"
title: "Home"
---
<div class="home-container">
<h1>Featured Posts</h1>
<ul>
{%- for post in collections.featured -%}
{% include "post-preview.njk" %}
{%- endfor -%}
</ul>
</div>
แแฃแกแขแแ แแแแแ แแ แแแชแแแแ, แแแแแฃแแแ แแแฏแแ แแ featured
แแแแแฅแชแแแแ, แ แแแแแจแแช แแฎแแแแ แแก แแแ แแแแ แแแกแขแแ. แแฃแแจแ แแแแแแแแแ แขแแแ แแฃแกแขแแ แแแแแ แแแแแแแแแขแก, แ แแกแแช แแแแแแก แแแแ แแแ, แ แแแแแแช แแแแแฅแชแแแก แแแแแชแแแแแแ แแฎแแแแซแฆแแแแแแแแก แแ แแแแแแก preview-แก แแแแฉแแแก.
Filters & Shortcodes
Filters
แแฎแแ แฃแจแแ แแแ แแฆแแแก แแแแฎแแแแ แแแแแแแแก แกแแแจแ. แแแแกแแแแแก แจแแแแแซแแแ แจแแแฅแแแแ แคแแแขแ แ, แ แแแแแแช แแแ แแฆแก แแแ แแแฅแแแแก.
/.eleventy.js
const { DateTime } = require("luxon");
module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy("./src/styles");
eleventyConfig.addPassthroughCopy("./src/assets");
// แแแ แแฆแแก แแแ แแแฅแแแแก แคแแแขแ แ
eleventyConfig.addFilter("dateString", (dateObj) => {
return DateTime.fromJSDate(dateObj).toLocaleString();
});
return {
dir: {
input: "src",
output: "public",
},
};
};
luxon
แแแแแแแแแแแ, แ แแแแแแช 11ty-แก แแแงแแแแ. แฉแแแ แแแก แแแแแแแ แขแแแ แแ แแแแคแแแฃแ แแชแแแก API-แก แแแฎแแแ แแแแ แแแ แแแแกแขแ แแ แแแ แแฎแแ แคแแแขแ แก. addFilter
แคแฃแแฅแชแแ แแแ แแแ แแ แแฃแแแแขแแ แแฆแแแก แคแแแขแ แแก แกแแฎแแแก, แฎแแแ แแแแ แ แแ แแฃแแแแขแแ แคแแแขแ แแก แแแแแแแก แฅแแแแแฅ แคแฃแแฅแชแแแจแ. แฅแแแแแฅแแก แแแ แแแแขแ แ แแ แแก แแก, แ แแกแแช แแ แคแแแขแ แจแ แแแแแขแแ แแแ แแแแคแแแแแแแแ. แแแแแแแแ 11ty แฉแแแ แแแ แแฆแก Date แแแแแฅแขแแ แแแแฎแแแก, แกแฌแแ แแ แแ แคแแ แแแ แแแแแฆแแแ แแแก แคแฃแแฅแชแแแจแแช. แแแแแแแ แขแแแฃแแ แแแแแแแแแแแ แแแแ แฃแแแแ แแแ แแแฅแแแแ แแแ แแฆแก, แกแขแ แแแแแก แคแแ แแแ.
แแฎแแ แจแแแแแซแแแ แแก แคแแแขแ แ แแแแแแแงแแแแ:
/src/_includes/post-preview.njk
<li class="blog-preview">
<img src="{{ post.data.image }}" alt="{{ post.data.imageAlt }}" />
<div class="blog-preview__details">
<div>
<h1>{{ post.data.title }}</h1>
<p class="blog-preview__date">{{ post.data.date | dateString }}</p>
<p>{{ post.data.description }}</p>
</div>
<div class="blog-preview__actions">
<a href="{{ post.url }}">
<h3>READ</h3>
</a>
</div>
</div>
</li>
post.data.date
-แก |
-แกแแแแแแแแ แแแขแแ แแแ แฉแแแ แแแแ แแแแกแแแฆแแ แฃแ แคแแแขแ แจแ: dateString
.
แแแแแแแแแกแฌแแแแ: แ แแชแ แชแแแแแแแ แจแแแแแฅแแก .eleventy.js แคแแแแจแ, แกแแญแแ แแ แกแแ แแแ แแก แแแ แแกแขแแ แขแแแ, แ แแแ แแก แชแแแแแแแแแ แแแกแแฎแแก.
แแฎแแ แแแกแขแแก แแแ แแฆแ แฃแแแ แฃแแแ แแแแแแงแฃแ แแแแแแก.
Shortcodes
แจแแ แแแแแแแ 11ty-แแก แแแ แแแ แฎแแแกแแฌแงแแ, แ แแแแแแแช แจแแแแแซแแแ แฏแแแแกแแ แแแขแแก แคแฃแแฅแชแแแก แแฃแแคแฃแแ แแแแแแกแแฎแแ แแแแคแแแแแจแ. แแแฅแแแ แแแแแแ แจแแแฅแแแแ footer-แ, แ แแแแแแช แงแแแแแแแแก แแฉแแแแแแก แแแแแแแแ แ แฌแแแก.
แฏแแ แจแแแฅแแแแ แจแแ แแแแแ, แ แแแแแแช แแแแแแแ แฃแแแแก แแแแแแแแ แ แฌแแแก แกแขแ แแแแแก แคแแ แแแ. แแ แจแแ แแแแแก แแแแแแแญแแ แกแแฎแแแ year
.
/.eleveny.js
module.exports = function (eleventyConfig) {
// ... แกแฎแแ แ แแฆแแชแแแ
eleventyConfig.addShortcode("year", () => `${new Date().getFullYear()}`);
return {
dir: {
input: "src",
output: "public",
},
};
};
แแฎแแ แจแแแฅแแแแ แคแฃแขแแ แแก แแแแแแแแแขแ, แกแแแแช แแ แจแแ แแแแแก แแแแแแแงแแแแแ:
/src/_includes/footer.njk
<footer>
<span> © แแแฆแแช แแแฆแแชแแซแ {% year %} </span>
</footer>
แแ แแแแแแแแแกแแ แแก แคแฃแขแแ แ แฉแแแแก แแแแแแ แแแแแฃแแจแ (base.njk), body แแแแแก แแแฎแฃแ แแแแแ.
/src/_includes/base.njk
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/png" href="/assets/icons/11ty-logo.png" />
<link rel="stylesheet" href="/styles/main.css" />
<title>{{ title }}</title>
</head>
<body>
{% include "header.njk" %}
<main>{{ content | safe }}</main>
{% include "footer.njk" %}
</body>
</html>
แแแแแ แแกแขแแ แขแแ แกแแ แแแ แ แแ แแแแขแแแแ แจแแแแแแ!
SEO
แ แแแ แกแแซแแแแ แกแแกแขแแแแแแ แฃแแแ แแแแคแแฅแกแแ แแ แฉแแแแ แแแแกแแแขแ, แแแ แแ แแฅแแแแ แแฃ แ แแแแแแแแ แแแขแ แแแแก แแแแฃแแแขแแแ แแแแกแแแขแก. แแกแแแแ Open Graph Tags. แแแแกแแแแแก แจแแแฅแแแแ แชแแแแ แแแแแแแแแขแ, แกแแแแช แแแแแแแแฃแ แแ แแแแแแแแแกแแแ แแแแแชแแแแแก, แ แแแแแกแแช แแแแแแฃแแ แแแกแขแแแแ แแแฆแแแ:
/src/_includes/og-tags.njk
<meta property="og:title" content="{{ title }}" />
<meta property="og:description" content="{{ description }}" />
<meta property="og:image" content="{{ image }}" />
แแ แจแแแแแ แแก แแแแแแแแแ แขแแ แฉแแแแ แแแแแแ แ แแแแแฃแแแก head
-แจแ.
/src/_includes/base.njk
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/png" href="/assets/icons/11ty-logo.png" />
<link rel="stylesheet" href="/styles/main.css" />
{% include "og-tags.njk" %}
<title>{{ title }}</title>
</head>
<body>
{% include "header.njk" %}
<main>{{ content | safe }}</main>
{% include "footer.njk" %}
</body>
</html>
แแกแ แกแแชแแแแฃแ แ แฅแกแแแแแ แแฅแแแแ แแแแแแ แแแฃแแ แแแแแแก แแแแแแแแกแแแ แจแแฅแแแแแ แแแแแ preview-แแแก. แแแแแแแแแ, แแฅแแแแ แแแฐแแกแขแแแ แกแแแขแแก แแแแแแแ แจแแแแซแแแแ แจแแแแแแ แจแแแแแฌแแแ Facebook Debugger-แแ.
แแกแแแ, แแแ แแ แแฅแแแแ, แแฃ แแแแแแ แแแแ แแกแ แแ แแแแแแแแก แกแแแก แแแแ แแกแแช แแแฃแแแขแแแ แแแ แ แแฆแฌแแ แแกแ แแ แกแฃแ แแแก. แแ แกแแฅแแแก แแฅแแแ แแแแแแแแแ.
แแแแกแแแขแแก แแแฐแแกแขแแ แแ แแแกแขแแแแก แแแแแขแแแ
แ แแแแ แแแแแแแขแแ แแฎแแแ แแแกแขแ? แจแแแฅแแแแ แแฎแแแ แแแ แแแแฃแแแก แคแแแแ blog แคแแแแแ แจแ แแ, แ แแแแแ แแแแแช แกแแขแแกแขแ แ แแแแแจแ แแแ แ, แแแแแแแแ แแ แแ แกแแแฃแแ แคแแแแ, แจแแฃแชแแแแแ แกแแฎแแแ แแ แจแแแแแแกแ แแ แจแแฎแแแแ แแ แแฃแแแ แก. แฌแแกแแ, แแฎแแแ แแแกแขแแก preview แฃแแแ แแแแแฉแแแแก. แแแแ แแแแกแแแขแแแช แงแแแแแคแแ แ แแกแแแแกแ แแ แแแชแแแแ แแแฃแจแแแแแก.
แแก แแ แแแฅแขแ แจแแแแแแฎแแ แแแแฐแแแแก แ แแแแแแขแแ แแแแ. แจแแแแแแ, แแแขแแ แแแแชแแ แแแแแแ แแ Netlify-แแ แแ แจแแแฅแแแแ แแฎแแแ แแแแกแแแขแ, แ แแแแแกแแช แแแแฃแแแแจแแ แแแ แแ แฉแแแแ แแแแฐแแแแก แ แแแแแแขแแ แแแก. Add a new site > import existing project > github > your_github_repo. แแฅ Netlify แฎแแแแแ, แ แแ 11ty-แก แแแงแแแแแ แแ แแแแคแแแฃแ แแชแแแก แแแแแแ แแแแแแแก, แแฃแแชแ แ แแฆแแชแแแ แฉแแแ แแแแกแฎแแแแแแฃแแแ แแแแฅแแก แแ แแแฅแขแจแ, แแแแขแแ แจแแแแกแฌแแ แแ: publish directory-แแก แแ แแคแแจแ _site-แก แแแแแแ แแ แฉแแแฌแแ แแ public, แ แแแแแ แแแแแ แแ แแแฃแแ แกแแแขแ, แฉแแแแ แแแแคแแแฃแ แแชแแแก แแแฎแแแแแ, แแแแ แแแแฎแแแ. แแฃ แแก แแแแคแแแฃแ แแชแแ แแ แแแฅแขแจแ แแ แแแแแแแแแแแแ, _site แแแขแแแแ. แแแแก แจแแแแแ แแแแญแแ แแ deploy site-แก. 11ty แกแแแแแแ แแกแฃแแฃแฅแ แแ แกแฌแ แแคแแ, แแแแขแแ build-แก แแแแ แแ แ แแ แแแกแญแแ แแแแ.
แแแก แจแแแแแ แ แแช แกแแแฃแแแ แ แแแจแ แแแแ แขแแแแแแก แแแ แฉแแแแ, แจแแแแซแแแแ แแฎแแแ แแแแแแก แแขแแแ แแแ แกแชแแแแ. แแแฎแกแแแแ แแฅแแแแ แแแแแแฃแ แ แแ แแแฅแขแแก แคแแแแ แแแแขแแ แแ (แแ แแฃแแแแช แแ แแฃแแแ แแแแ แแแฎแกแแแแ แแแแฐแแแแก แ แแแแแแขแแ แแ แแ แแแแญแแ แแ .
-แก แ แแแ remote editor แแแฎแกแแแ). blog แคแแแแแ แจแ แจแแฅแแแแแ แแฎแแแ แแแ แแแแฃแแแก แคแแแแ, แแแฌแแ แแ แขแแฅแกแขแ, แแแฃแแแแแ front matter-แจแ แแแแแชแแแแแ แแแแแ แแ แแแชแแแแ, แ แแแแ แช แกแฎแแ แแแกแขแแแจแ แแ แจแแแแแ แแแแฅแแแแแแ แแฎแแแ แคแแแแ:
git add .
git commit -m "added a new post"
git push
(แแกแแแ แจแแแแซแแแแ vscode-แแ git-แแก แแแแแฃแแ แแแแฅแแแแแแ แแ แแแแกแแแฅแ แแแแแแ แแ แ แแแแแแขแแ แแ)
แ แแชแ แชแแแแแแแแแก แแแแฐแแแแ แแกแแฎแแแ, Netlify แแ แชแแแแแแแแแก แแแขแแแแขแฃแ แแ แแแแคแแฅแกแแ แแแก แแ แกแแแขแก แฎแแแแฎแแ แแแฃแแแแแแก build-แก, แแแฏแแ แแ แแฎแแแ แแแกแขแแ. แแแแก Netlify แแแฎแแแแ แฌแฃแแกแแช แแ แแแแแแแแแแก.
แแกแ แแแ แขแแแแ แจแแแแซแแแแ แแแฌแงแแ แแแแกแแแขแ แแแแแแ แแ แแแแกแแแแก แแ แแ แแก แกแแญแแ แ แแแแ แแ แแซแแแ แคแ แแแแแแ แฅแแแ. Netlify แแกแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแขแแแ แแ แแ แแแแขแแแขแแก แแแแแฏแแแแขแแก แกแแกแขแแแ (CMS), แ แแแแแก แกแแจแฃแแแแแแแแช แแแกแขแแแแก แแแแแขแแแ แแ แ แแแแฅแขแแ แแแ แจแแแแซแแแแ แแ แแฃแแแ แจแแแ. Netlify-แก แกแแจแฃแแแแแแ แจแแแแซแแแแ แแแแแแแแก แจแแซแแแแช, แแ แแ แกแแแฃแแ แแแแแแแแก แแแแแแจแแ แแแแช. แแกแแ แแ, แแแ แขแแแ แแแแกแแแขแแก แกแ แฃแแคแแกแแแแแ แแแแแแกแ แแ แแ แฐแแกแขแแแก แแแแ แ แแ แแคแแ แ แฃแแแ!