나만의 Markdown 변환기 만들기(새로운 기능 포함) - 1부
10605 단어 regexmarkdownprogrammingpython
이것은
how to make your own Markdown parser
에 대한 간단한 게시물입니다. 2부에서는 멋진 마크다운 파서/기능을 만들 것입니다.Markdown 변환기 작동 방식
우리는 게시물의이 부분에서 간단한 것을 잘 알고 있습니다 (기본 사항, 두 번째 부분 준비)
1- 제목
2- 이미지 포함
3- 링크
제목 #
큰 글꼴로 제목을
#
씩 추가할 수 있습니다.첫째: 줄의 첫 번째 단어(
#
)를 가져오고 by space
을 세고 #
태그에 #
의 수를 추가합니다. 예를 들어<h>
### Hello
으로 변환됩니다.
data = '### Hello'
def geth(txt):
c = txt.split(' ')[0].count('#')
if c == 0 or c > 6:
return txt
else:
v = f'<h{c}>{"".join(txt.split(" ")[1:])}</h{c}>'
return v
results = geth(data)
print(results)
이미지/링크 포함
<h3>Hello</h3>
까지 이미지를 추가할 수 있습니다.![ALT TEXT](IMAGE LINK)
의 콘텐츠를 가져오고 []
태그의 alt
변수에 추가합니다. <img>
과 동일하지만 ()
변수에 추가합니다. 링크가 있는 것과 동일하지만 src
전에 !
을 제거해야 합니다[]
슬프게도 이것을 파싱하려면 Regex가 필요합니다 :)
Regex는 배우기에 너무 게을러서(또는 코드에 갇혀 있을 때 배우기 때문에) 많은 프로그래머(나 같은)에게 무서운 것입니다.
여기서 우리가 사용할 정규식은
<a href=LINK>NAME</a>
입니다.import re
def getlnk(txt):
sub = ''
r = re.search(r'\[[^\]]*\](.*?)\s*("(?:.*[^"])")?\s*\)',txt)
if r:
c = r.group()
# get the content of []
name = re.findall(r'!\[(.*?)\](|. .)[(].*[)]',c)
# get the content of ()
link = re.findall(r'[(].*[)]',c)[0]
link = link.replace(link[0],'').replace(link[-1],'')
# add the link and name
sub += f'<a href="{link}">{name}</a>'
return sub
# like getlnk function but with ! and <img> Tag
def getimg(txt):
sub = ''
r = re.search(r'!\[[^\]]*\](.*?)\s*("(?:.*[^"])")?\s*\)',txt)
if r:
c = r.group()
alt = re.findall(r'!\[(.*?)\](|. .)[(].*[)]',c)
link = re.findall(r'[(].*[)]',c)[0]
link = link.replace(link[0],'').replace(link[-1],'')
sub += f"<img src='{link}' alt='{alt[0][0]}' />"
return sub
print(getlnk('[Google](http://google.com)'))
print(getimg('![Google Logo](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/1280px-Google_2015_logo.svg.png)'))
# Results
# <a href="http://google.com">Google</a>
# <img src="https%3A//upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/1280px-Google_2015_logo.svg.png" alt="Google Logo" />
2부에서 만나요
안녕 :D
Reference
이 문제에 관하여(나만의 Markdown 변환기 만들기(새로운 기능 포함) - 1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/knassar702/make-your-own-markdown-converter-with-new-features-part-1-1p95텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)