Python에서 Markdown을 로드하는 방법
설치
pypi에 있으므로 pip를 사용하여 가상 환경에 설치할 수 있습니다.
python -m pip install python-frontmatter
🙋 프론트매터란?
Frontmatter는 일반 텍스트 파일에 메타데이터를 추가하는 편리한 방법입니다. markdown에서 yaml frontmatter를 사용하는 것은 매우 일반적입니다. 내 모든 블로그 게시물에는 게시 날짜, 태그, 제목 및 템플릿과 같은 게시물 메타데이터를 제공하는 yaml frontmatter가 있습니다. dev.to는 마크다운 및 yaml frontmatter로 모든 게시물을 빌드하는 인기 있는 개발자 블로깅 플랫폼입니다.
예를 보자
내 사이트에서 읽고 있는 이 게시물의 정확한 전문은 다음과 같습니다.
---
date: 2022-03-24 03:18:48.631729
templateKey: til
title: How I load Markdown in Python
tags:
- linux
- python
---
This is where the markdown content for the post goes.
그래서 얌이야
yaml이 가장 일반적이지만 python-frontmatter은 toml 및 json에 대한 Handlers도 지원합니다.
좋은 yaml 예제 세트learnxinyminutes를 원하는 경우 한 페이지에 환상적인 예제 세트가 있습니다.
Python에서 yaml frontmatter를 로드하는 방법
다음은 python-frontmatter을 사용하여 이 게시물을 Python에 로드하는 방법입니다.
import frontmatter inspect(frontmatter.load("pages/til/python-frontmatter.md"))
rich을 사용하여 Post 객체를 검사하여 포함된 모든 항목을 확인할 수 있습니다.
❯ inspect(frontmatter.load("pages/til/python-frontmatter.md"))
╭────────────────────────────────────────────────────────── <class 'frontmatter.Post'> ───────────────────────────────────────────────────────────╮
│ A post contains content and metadata from Front Matter. This is what gets │
│ returned by :py:func:`load <frontmatter.load>` and :py:func:`loads <frontmatter.loads>`. │
│ Passing this to :py:func:`dump <frontmatter.dump>` or :py:func:`dumps <frontmatter.dumps>` │
│ will turn it back into text. │
│ │
│ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ <frontmatter.Post object at 0x7f03c4c23ca0> │ │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ content = "I use a package\n[eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter)\nto load files with frontmatter in │
│ them. Its a handy package that allows you to\nload files with structured frontmatter (yaml, json, or toml).\n\n## Install\n\nIt's │
│ on pypi, so you can install it into your virtual environment with pip.\n\n```
{% endraw %}
bash\npython -m pip install │
│ python-frontmatter\n
{% raw %}
```\n\n## 🙋 What's Frontmatter\n\nFrontmatter is a handy way to add metadata to your plain text files. │
│ It's\nquite common to have yaml frontmatter in markdown. All of my blog posts have\nyaml frontmatter to give the post metadata such │
│ as post date, tags, title, and\ntemplate. dev.to is a popular developer blogging platform that also builds all\nof its posts with │
│ markdown and yaml frontmatter.\n\n## Let's see an example\n\nHere is the exact frontmatter for this post you are reading on my │
│ site.\n\n```
{% endraw %}
markdown\n---\ndate: 2022-03-24 03:18:48.631729\ntemplateKey: til\ntitle: How I load Markdown in Python\ntags:\n - │
│ linux\n - python\n\n---\n\nThis is where the markdown content for the post goes.\n
{% raw %}
```\n\n## So it's yaml\n\nyaml is the most │
│ commmon, but\n[eyeseast/python-frontmatter](https://github.com/eyeseast/python-frontmatter)\nalso │
│ supports\n[Handlers](https://python-frontmatter.readthedocs.io/en/latest/handlers.html?highlight=toml#module-frontmatter.default_ha… │
│ toml and json.\n\nIf you want a good set of examples of yaml\n[learnxinyminutes](https://learnxinyminutes.com/docs/yaml/) has a │
│ fantastic set\nof examples in one page.\n\n## How to load yaml frontmatter in python" │
│ handler = <frontmatter.default_handlers.YAMLHandler object at 0x7f03bffbd910> │
│ metadata = { │
│ 'date': datetime.datetime(2022, 3, 24, 3, 18, 48, 631729), │
│ 'templateKey': 'til', │
│ 'title': 'How I load Markdown in Python', │
│ 'tags': ['linux', 'python', 'python'] │
│ } │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
my personal site handled this a bit better than dev.to https://waylonwalker.com/til/python-frontmatter/#how-to-load-yaml-frontmatter-in-python
메타데이터 가져오기
사전에서와 마찬가지로 게시물 메타데이터에서 항목을 가져올 수 있습니다.
post = frontmatter.load("pages/til/python-frontmatter.md") post['date']
# datetime.datetime(2022, 3, 24, 3, 18, 48, 631729)
post.get('date')
# datetime.datetime(2022, 3, 24, 3, 18, 48, 631729)
I have recently become fond of the
.get
method to give it an easy default value. 👉 full post
내용은 내용이다
문서의 내용은
.content
에 저장됩니다.post.content
연결
Reference
이 문제에 관하여(Python에서 Markdown을 로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/waylonwalker/how-i-load-markdown-in-python-2paf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)