아이피니비로 Zenn의 기사를 써주세요.

이 글은 노트북으로 쓴 것이다.
원래 아이피니비는...
https://github.com/fereria/zenn_ipynb/blob/master/ipynb/sample-ipynb.ipynb
여기에 ipynb Push를 Giit에 연결하면 Giithub Actions가 실행됩니다
mardown→push md로 자동 변환됩니다.

HeaderFormater의 쓰기



Markedown으로 쓸 수 있지만, 노트북처럼 파이톤으로 쓸 수 있습니다.
# -*- coding: utf-8 -*-

import glob
import os.path
import os
import codecs

import nbconvert
import nbformat

os.makedirs('articles', exist_ok=True)


for ipynb in glob.glob("./ipynb/*.ipynb"):

    with codecs.open(ipynb, 'r', 'utf-8') as f:
        lines = f.readlines()
    f = nbformat.reads("".join(lines), as_version=4)
    cell = f['cells'].pop(0)
    exec(cell['source'])
    header = ["---",
              f'title: "{title}"',
              f'emoji: "{emoji}"',
              f'type: "{text_type}"',
              "topics: " + "[" + ",".join([f"\"{x}\"" for x in topics]) + "]",
              "published: " + ("true" if published else "false"),
              "---"]

    exporter = nbconvert.TemplateExporter(template_file="template/markdown.tpl")
    (body, resources) = exporter.from_notebook_node(f)

    with codecs.open(f'articles/{os.path.splitext(os.path.basename(ipynb))[0]}.md', 'w', 'utf-8') as f:
        f.write("\n".join(header) + "\n" + body)
명령줄 대신 파이톤 스크립트를 사용합니다.
첫 번째 단원은 Formater입니다. 그리고 Cell Pop을 시작하세요.
나는 그 내용을 헤더로 썼다.
그리고 nbconvert의 Template Exporter를 사용하면 마크다운을 만들 수 있습니다.
print("Hello World!!!")
print("hoge hoge hoge")
>> Result
Hello World!!!
hoge hoge hoge

Python의 실행 결과의 예를 표시합니다.
Notebook을 사용하는 장점으로 이렇게 즉석에서 명령을 실행합니다
그 집행 결과는 아마 남아 있을 것이다.
시험을 보면서 직접 기사를 쓰면 좋을 것 같아요.
문장은 VScode로 쓰거나 JuptyterLab로 쓸 수 있다.

JupytrerLab로 작성된 경우의 참조 예입니다.
이쪽도 문제 없이 기사를 쓸 수 있다.

JupytherLab의 환경은 Docker 컨테이너로 구축됩니다.
이 컨테이너는 GiithubAction이 글을 반영할 때 사용하는 용기와 같다.
https://github.com/fereria/zenn_ipynb/tree/master/docker
docker-compose -f "docker\docker-compose.yml" up -d --build
docker-compose를 사용하면 USD의 집필 환경에 들어가면 JuptysterNotebook이 시작됩니다.
http://localhost:8888
를 참고하십시오.

총결산


일반적인 기사라면, Macdown으로 VScode에 쓰는 것이 비교적 쉽다
스크립트를 검증하면서 글을 쓰면 노트북에서 글을 만들 수 있다
매우 좋은 점이 있다.
당분간 여러 가지 검증을 해서 쓰기 쉬운 환경으로 업데이트했으면 좋겠어요.
https://github.com/fereria/zenn_ipynb
공개용 지허브 여기 있습니다.

좋은 웹페이지 즐겨찾기