본문 바로가기

개발 기록/자동 포스팅 프로그램

posting content 파트 완성!!

저번 회차에서는 코드 블록을 추가하는 시스템을 만든다고 하였다.

 

그를 위해서는 별도로 코드 파일을 불러와 해당 내용을 읽어줄 필요가 있었다.

 

title_pattern = re.compile(r'# \[.*\] (.*) - \d+')
    title_match = title_pattern.match(markdown_content.split('\n')[0])
    problem_type = title_match.group(1) if title_match else "Untitled"

 

기존 .md 파일에 있는 타이틀 항목에서 앞의 형식과 기호 그리고 번호를 제거한 것이 확장자를 제외한 파일의 이름이다.

 

따라서 이를 problem_type 이라는 변수에 저장하였다.

#코드 읽어오기
    with open(problem_type + '.cc', 'r', encoding='utf-8') as file:
        code_file = file.read()
        
    parsed_data['code_content']= code_file

 

이후 해당 변수를 기반으로 확장자를 추가하여 읽어준 다음 해당 내용을 기존에 있던 딕셔너리에 추가해주었다.

 

    for category, content in parsed_data.items():
        if category not in ["title", "problem_link", "code_content"]:
            tistory_formatted_content += f'<p><strong>### {category}</strong></p>\n<p>{content}</p>\n\n'

   
    #코드 블록 추가
    tistory_formatted_content += f'<p><b>### 작성한 코드</b></p>\n<p></p>'
    tistory_formatted_content += f'<pre><code>{parsed_data["code_content"]}</code></pre>'

 

이렇게 딕셔너리에 추가된 내용이 일반 포스팅에 섞여 들어가지 않도록 예외처리를 해준 다음 코드 블록은 별도로 포스팅 내용에 추가해주었다.

 

아래가 그 결과물이다.

포스팅의 내용을 자동화하는데 성공하였으므로 다음에는 커밋을 자동으로 감지하여 이를 다운 받는 것을 목표로 하겠다.

 

그렇다면 해당 파일을 바탕으로 자동 포스팅하는 것이 목적이다.