현재의 티스토리 에디터는 직접 markdown 편집도 지원을 하고 있지만, 구 버전의 편집기 사용시에 다음과 같은 markdown 소스를 작성하여 HTML 변환을 한 후 티스토리 소스에 붙여넣을 경우,
PS2. 추가 작업 후보 : 소스 md에 줄바꿈이 있을 때만 추가적인 줄바꿈 삽입
## 제목1 본문 ## 제목2 - 리스트1 - 리스트2 본문 ## 제목2 본문 - 리스트1 - 리스트2
제목1
본문
제목2
- 리스트1
- 리스트2
본문
제목2
본문
- 리스트1
- 리스트2
## 제목1 <p><br></p> 본문 <p><br></p> <p><br></p> ## 제목2 - 리스트1 - 리스트2 본문 <p><br></p> <p><br></p> ## 제목2 <p><br></p> 본문 - 리스트1 - 리스트2
제목1
본문
제목2
- 리스트1
- 리스트2
본문
제목2
본문
- 리스트1
- 리스트2
변환기 소스
md_convert.py:
# -*- coding: utf-8 -*- #!/usr/bin/python import sys DOUBLE_BR_BEFORE_HEADER = True STATUS_START = 0 STATUS_NONE = 1 STATUS_LIST = 2 STATUS_PRE = 3 STATUS_HEADER = 4 LINE_BR = "<p><br></p>\n" def print_usage(): print("usage: python md_convert.py [option]") print("Options:") print("-i input-file : 지정된 입력 파일을 사용하여 변환을 하고 입력 파일을 덮어씁니다.") print("-i input-file output-file : 지정된 입력 파일과 출력 파일을 사용하여 변환을 합니다.") def is_ol_item(str): pos = str.find(". ") if pos == -1: return False return str[:pos].isdigit() def go_convert(config): filename_in = config["filename_in"] filename_out = config["filename_in"] if "filename_out" in config: filename_out = config["filename_out"] print("\nconverting %s.." % filename_in) file_in = open(filename_in, 'r', encoding = "utf-8") all_line = [] for line in file_in: all_line.append(line) file_in.close() all_line_new = [] insidePre = False status = STATUS_START status_old = status for line in all_line: status_old = status line_strip = line.lstrip() if len(line_strip) > 0: if insidePre: if line_strip[:5] == "</pre": insidePre = False else: if line_strip[:4] == "<pre": insidePre = True status = STATUS_PRE elif line_strip[:1] == "-" or is_ol_item(line_strip): status = STATUS_LIST elif line_strip[:1] == "#": status = STATUS_HEADER else: status = STATUS_NONE if DOUBLE_BR_BEFORE_HEADER and status == STATUS_HEADER and status_old != STATUS_START: all_line_new.append(LINE_BR) if status_old == STATUS_NONE: if status == STATUS_HEADER: all_line_new.append(LINE_BR) elif status_old == STATUS_HEADER: if status == STATUS_NONE: all_line_new.append(LINE_BR) if status == STATUS_HEADER: all_line_new.append(LINE_BR) all_line_new.append(line) file_out = open(filename_out, 'w', encoding = "utf-8") for line in all_line_new: file_out.write(line) file_out.close() print("end") config = {} if len(sys.argv) >= 2: if sys.argv[1] == "-i": if len(sys.argv) == 3: config['filename_in'] = sys.argv[2] go_convert(config) else: config['filename_in'] = sys.argv[2] config['filename_out'] = sys.argv[3] go_convert(config) else: print_usage() else: print_usage()
사용 방법
사용 방법: python md_convert.py [옵션] 옵션: -i input-file : 지정된 입력 파일을 사용하여 변환을 하고 입력 파일을 덮어씁니다. -i input-file output-file : 지정된 입력 파일과 출력 파일을 사용하여 변환을 합니다.
PS2. 추가 작업 후보 : 소스 md에 줄바꿈이 있을 때만 추가적인 줄바꿈 삽입
'1. 연구 모듈 > Python' 카테고리의 다른 글
[Python] 인스턴스 메소드 vs. 정적 메소드 vs. 클래스 메소드 요약 (0) | 2020.09.21 |
---|---|
[Python] 클래스 변수 vs. 인스턴스 변수 요약 (0) | 2020.08.31 |
[Python] Pymunk 사용 예제 - 2. PyMunk + pyGame 기본 예제 (1) (0) | 2018.09.03 |
[Python] Pymunk 사용 예제 - 1. 기본 예제 (0) | 2018.09.01 |
[Python] 파이썬 3에서 문자열 처리 (0) | 2018.02.07 |