Markdown ã HTML ã«å€æããæ¹æ³ïŒå®å šã¬ã€ã
Markdown ã HTML ã«å€æããæ¹æ³
Markdown ã¯å·ççšã«èšèšãããŠããŸããããŠã§ã㯠HTML ã§åäœããŸãããã©ãŠã¶ãŒã衚瀺ããåã«ããã¹ãŠã® Markdown ããã¥ã¡ã³ãã HTML ã«å€æããå¿ èŠããããŸãããã®ã¬ã€ãã§ã¯ãMarkdown ã HTML ã«å€æããäž»ãªæ¹æ³ã説æããŸãã
æ¹æ³ 1ïŒã³ãã³ãã©ã€ã³ããŒã«
Pandoc
Pandoc ã¯ãæ°åçš®é¡ã®åœ¢åŒã«å¯Ÿå¿ããæ±çšããã¥ã¡ã³ã倿ããŒã«ã§ãã
# åºæ¬çãªå€æ
pandoc input.md -o output.html
# <html> ãš <body> ã¿ã°ãå«ãã¹ã¿ã³ãã¢ãã³ HTML
pandoc input.md -o output.html -s
# ç®æ¬¡ä»ã
pandoc input.md -o output.html -s --toc
Python-Markdown
pip install markdown
python -m markdown input.md > output.html
import markdown
with open("input.md", "r") as f:
text = f.read()
html = markdown.markdown(text, extensions=["fenced_code", "tables"])
CommonMarkïŒJavaScriptïŒ
npm install commonmark
const commonmark = require("commonmark");
const reader = new commonmark.Parser();
const writer = new commonmark.HtmlRenderer();
const parsed = reader.parse("# Hello\nThis is **bold**.");
const html = writer.render(parsed);
æ¹æ³ 2ïŒéçãµã€ããžã§ãã¬ãŒã¿ãŒ
Jekyll
Jekyll 㯠GitHub Pages ãæ¯ããŠããŸãã_posts ãã³ã¬ã¯ã·ã§ã³ã® Markdown ãã¡ã€ã«ã HTML ã«å€æããŸãã
gem install jekyll bundler
jekyll new my-site
jekyll build
jekyll serve
åçãªã³ã³ãã³ãã«ã¯ãLiquid ãã³ãã¬ãŒããšãšãã« Kramdown ããã»ããµãŒã䜿çšããŸãã
Hugo
Hugo ã¯ãããªç§åäœã®ãã«ãé床ã§ç¥ããã Go 補ã®éçãµã€ããžã§ãã¬ãŒã¿ãŒã§ãã
hugo new site my-site
hugo new posts/my-first-post.md
hugo server -D
ããã©ã«ãã® Markdown ã¬ã³ãã©ãŒãšã㊠Goldmark ã䜿çšããããŒãã«ããã§ã³ã¹ä»ãã³ãŒããããã¯ãèæ³šã«å¯Ÿå¿ããŠããŸãã
Next.jsïŒMDXïŒ
Next.js 㯠MDX ããµããŒãããŠãããMarkdown å ã« React ã³ã³ããŒãã³ããåã蟌ãããšãã§ããŸãã
npm install next @next/mdx @mdx-js/loader
MDX ã䜿ããšãããã¥ã¡ã³ãã«åäœããã³ãŒãäŸããã£ãŒãããã©ãŒã ãçµã¿èŸŒããŸãã
æ¹æ³ 3ïŒãªã³ã©ã€ã³å€æããŒã«
ããŒã«ãã€ã³ã¹ããŒã«ããã«äžåºŠã ã倿ããå Žåããã©ãŠã¶ãŒããŒã¹ã®å€æããŒã«ã§å³åº§ã«çµæãåŸãããŸãïŒ
- ãšãã£ã¿ãŒããã«ã« Markdown ã貌ãä»ãããå ¥åããŸãã
- HTML åºåããªã¢ã«ã¿ã€ã ã§è¡šç€ºãããŸãã
- çæããã HTML ãã³ããŒããŠãä»»æã®ãŠã§ãããŒãžã CMS ã§äœ¿çšããŸãã
Markdown ãã¬ãã¥ãŒããŒã«ã¯ãGitHub Flavored MarkdownïŒããŒãã«ãã³ãŒããããã¯ãã¿ã¹ã¯ãªã¹ããåãæ¶ãç·ïŒããã¹ãŠãã©ãŠã¶ãŒå ã§åŠçããŸãã
æ¹æ³ 4ïŒãšãã£ã¿ãŒãã©ã°ã€ã³
| ãšãã£ã¿ãŒ | æ©èœ | ã³ãã³ã |
|--------|---------|---------|
| VS Code | å
èµãã¬ãã¥ãŒ | Ctrl+Shift+V |
| Sublime Text | MarkdownPreview | Alt+M |
| IntelliJ IDEA | å
èµãµããŒã | Quick Documentation |
| Vim | vim-markdown | :MarkdownPreview |
åŠçãã€ãã©ã€ã³
éçãµã€ããžã§ãã¬ãŒã¿ãŒã Markdown ã HTML ã«å€æãããšããæ¬¡ã®ãã€ãã©ã€ã³ã«åŸããŸãïŒ
Markdown â Parse to AST â Apply extensions â Render to HTML â Apply template â Output page
æ©èœãæåŸ ã©ããã«ã¬ã³ããªã³ã°ãããªãå Žåãåé¡ã¯éåžžãããŒãµãŒïŒæ§æããµããŒãããŠããªãïŒãŸãã¯ã¬ã³ãã©ãŒïŒäºæããªã HTML ãåºåããïŒã«ãããŸãã
Markdown ã HTML ã«ãªã³ã©ã€ã³å€æ
Markdown ãã¬ãã¥ãŒããŒã«ã䜿ãã°ãMarkdown ã HTML ã«å³åº§ã«å€æã§ããŸãããšãã£ã¿ãŒã« Markdown ãå ¥åãŸãã¯è²Œãä»ãããšãã¬ã³ããªã³ã°ããããã¬ãã¥ãŒããªã¢ã«ã¿ã€ã ã§æŽæ°ãããŸãã