Jupyter Notebook의 내용을 이미지를 포함하여 그대로 Qiita에 게시
Jupyter의 Markdown을 Qiita에 게시
Jupyter Notebook의 내용을 「File → Export」기능에 의해 「Markdown」형식으로 내보내면, 얻을 수 있는 .md 파일의 내용을 그대로 Qiita에 붙여 넣어 투고할 수 있으므로, 매우 편리합니다.
다만, Notebook에서 묘화한 그래프등의 화상이 있는 경우는, 화상에의 링크 주소가 Qiita에 투고하면 다르기 때문에, 재기록할 필요가 있습니다.
이미지를 포함하여 그대로 Qiita에 게시
그래서, 이미지를 Qiita에 투고·이미지의 링크 주소를 재기록, 하는 스크립트를 시작해 보겠습니다.
게시 방법
Jupyter Notebook의 내용을 "File → Export"에서 "Markdown"형식으로 내보내기.
↓
노트북에 이미지가 있으면 .zip 파일을 얻을 수 있습니다. 이 내용의 .md 파일 ①과 그 외의 이미지 파일(.png) 모두 ②를 이후에서 사용합니다.
↓
후단에 게재된 'conv_jupyter_md_pic_to_qiita.py' 파일과 같은 폴더에 .zip 안의 .md 파일①을 배치.
↓
Qiita에서 신규 투고 → 기사를 작성하고 새로운 편집 페이지 테두리 위에 .zip 안의 이미지 파일 (.png) 모두 ②를 드래그 앤 드롭.
↓
이미지가 업로드되고 Markdown의 링크 문자열이 생성되므로 이것을 모두 선택하고 잘라내고 .txt 파일 ③을 새로 준비하여 붙여넣고 저장.
↓
"conv_jupyter_md_pic_to_qiita.py"파일과 같은 폴더에 .txt 파일 ③을 배치.
↓
스크립트 "conv_jupyter_md_pic_to_qiita.py"를 실행.
↓
.md 파일 ①의 파일명에 .conv가 붙은 .md 파일 ④가 새롭게 작성되어, 이 중에는 이미지의 링크 주소가 Qiita에 투고한 이미지의 것으로 변환된 Markdown이 출력되고 있습니다.
↓
생성된 .md 파일④의 내용을 모두 복사하여 Qiita의 편집 페이지에 붙여넣습니다. Qiita 미리보기에 이미지도 함께 표시됩니다.
이미지의 링크 주소를 다시 쓰는 스크립트 .py 코드
conv_jupyter_md_pic_to_qiita.py# -*- coding: utf-8 -*-
# Jupyter Notebookでダウンロード(エクスポート)したMarkdown(.zipファイル)を
# Qiitaで公開するために、画像パスを置換。
# Markdown(.zipファイル)の中にある画像ファイルは、Qiitaの編集ページで
# すべてドラッグアンドドロップ、その時に出てくる画像表示のMarkdownを
# テキストファイルに保存して、このスクリプトで置換。
import pathlib, re
# sec: main
def main(): # 実行切替用
run__main1()
def run__main1():
# sec: path
path_md = None
for path_md in pathlib.Path(".").glob("*.md"): break
print("load:", path_md)
if path_md is None: # if: 該当なし
return
path_qi = None
for path_qi in pathlib.Path(".").glob("*.txt"): break
print("load:", path_qi)
if path_qi is None: # if: 該当なし
return
# sec: load Qiita-pic-list
with path_qi.open(mode='r', encoding="UTF8") as file:
lines_qi = file.readlines()
# sec: make list
re_pic = re.compile(r"!\[([^\]]+)\]\(([^)]+)\)") #" Qiitaコード色付けが不調の為
qi_pic_list = []
for line in lines_qi:
if len(line) <= 0:
continue
matched = re_pic.match(line)
if matched is None: # if: 画像のMarkdownと不一致
print("エラー: 画像のMarkdownと不一致", line)
return
qi_pic_list.append( (matched.group(1), matched.group(2)) )
print("conv:", len(lines_qi))
re_pic = None
lines_qi = None
# sec: conv
text_md = path_md.read_text(encoding="UTF8")
for name, addr in qi_pic_list:
text_md = text_md.replace("![png](%s)" % name, "![%s](%s)" % (name, addr))
# sec: output
path_md_out = path_md.with_name("%s.conv%s" % (path_md.stem, path_md.suffix))
path_md_out.write_text(text_md, encoding="UTF8")
print("output:", path_md_out)
# sec: entry
if __name__ == "__main__": main()
코드 개요
작성 중.
Reference
이 문제에 관하여(Jupyter Notebook의 내용을 이미지를 포함하여 그대로 Qiita에 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dl_from_scratch/items/daa99b328fba047e5adb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그래서, 이미지를 Qiita에 투고·이미지의 링크 주소를 재기록, 하는 스크립트를 시작해 보겠습니다.
게시 방법
Jupyter Notebook의 내용을 "File → Export"에서 "Markdown"형식으로 내보내기.
↓
노트북에 이미지가 있으면 .zip 파일을 얻을 수 있습니다. 이 내용의 .md 파일 ①과 그 외의 이미지 파일(.png) 모두 ②를 이후에서 사용합니다.
↓
후단에 게재된 'conv_jupyter_md_pic_to_qiita.py' 파일과 같은 폴더에 .zip 안의 .md 파일①을 배치.
↓
Qiita에서 신규 투고 → 기사를 작성하고 새로운 편집 페이지 테두리 위에 .zip 안의 이미지 파일 (.png) 모두 ②를 드래그 앤 드롭.
↓
이미지가 업로드되고 Markdown의 링크 문자열이 생성되므로 이것을 모두 선택하고 잘라내고 .txt 파일 ③을 새로 준비하여 붙여넣고 저장.
↓
"conv_jupyter_md_pic_to_qiita.py"파일과 같은 폴더에 .txt 파일 ③을 배치.
↓
스크립트 "conv_jupyter_md_pic_to_qiita.py"를 실행.
↓
.md 파일 ①의 파일명에 .conv가 붙은 .md 파일 ④가 새롭게 작성되어, 이 중에는 이미지의 링크 주소가 Qiita에 투고한 이미지의 것으로 변환된 Markdown이 출력되고 있습니다.
↓
생성된 .md 파일④의 내용을 모두 복사하여 Qiita의 편집 페이지에 붙여넣습니다. Qiita 미리보기에 이미지도 함께 표시됩니다.
이미지의 링크 주소를 다시 쓰는 스크립트 .py 코드
conv_jupyter_md_pic_to_qiita.py# -*- coding: utf-8 -*-
# Jupyter Notebookでダウンロード(エクスポート)したMarkdown(.zipファイル)を
# Qiitaで公開するために、画像パスを置換。
# Markdown(.zipファイル)の中にある画像ファイルは、Qiitaの編集ページで
# すべてドラッグアンドドロップ、その時に出てくる画像表示のMarkdownを
# テキストファイルに保存して、このスクリプトで置換。
import pathlib, re
# sec: main
def main(): # 実行切替用
run__main1()
def run__main1():
# sec: path
path_md = None
for path_md in pathlib.Path(".").glob("*.md"): break
print("load:", path_md)
if path_md is None: # if: 該当なし
return
path_qi = None
for path_qi in pathlib.Path(".").glob("*.txt"): break
print("load:", path_qi)
if path_qi is None: # if: 該当なし
return
# sec: load Qiita-pic-list
with path_qi.open(mode='r', encoding="UTF8") as file:
lines_qi = file.readlines()
# sec: make list
re_pic = re.compile(r"!\[([^\]]+)\]\(([^)]+)\)") #" Qiitaコード色付けが不調の為
qi_pic_list = []
for line in lines_qi:
if len(line) <= 0:
continue
matched = re_pic.match(line)
if matched is None: # if: 画像のMarkdownと不一致
print("エラー: 画像のMarkdownと不一致", line)
return
qi_pic_list.append( (matched.group(1), matched.group(2)) )
print("conv:", len(lines_qi))
re_pic = None
lines_qi = None
# sec: conv
text_md = path_md.read_text(encoding="UTF8")
for name, addr in qi_pic_list:
text_md = text_md.replace("![png](%s)" % name, "![%s](%s)" % (name, addr))
# sec: output
path_md_out = path_md.with_name("%s.conv%s" % (path_md.stem, path_md.suffix))
path_md_out.write_text(text_md, encoding="UTF8")
print("output:", path_md_out)
# sec: entry
if __name__ == "__main__": main()
코드 개요
작성 중.
Reference
이 문제에 관하여(Jupyter Notebook의 내용을 이미지를 포함하여 그대로 Qiita에 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dl_from_scratch/items/daa99b328fba047e5adb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
conv_jupyter_md_pic_to_qiita.py
# -*- coding: utf-8 -*-
# Jupyter Notebookでダウンロード(エクスポート)したMarkdown(.zipファイル)を
# Qiitaで公開するために、画像パスを置換。
# Markdown(.zipファイル)の中にある画像ファイルは、Qiitaの編集ページで
# すべてドラッグアンドドロップ、その時に出てくる画像表示のMarkdownを
# テキストファイルに保存して、このスクリプトで置換。
import pathlib, re
# sec: main
def main(): # 実行切替用
run__main1()
def run__main1():
# sec: path
path_md = None
for path_md in pathlib.Path(".").glob("*.md"): break
print("load:", path_md)
if path_md is None: # if: 該当なし
return
path_qi = None
for path_qi in pathlib.Path(".").glob("*.txt"): break
print("load:", path_qi)
if path_qi is None: # if: 該当なし
return
# sec: load Qiita-pic-list
with path_qi.open(mode='r', encoding="UTF8") as file:
lines_qi = file.readlines()
# sec: make list
re_pic = re.compile(r"!\[([^\]]+)\]\(([^)]+)\)") #" Qiitaコード色付けが不調の為
qi_pic_list = []
for line in lines_qi:
if len(line) <= 0:
continue
matched = re_pic.match(line)
if matched is None: # if: 画像のMarkdownと不一致
print("エラー: 画像のMarkdownと不一致", line)
return
qi_pic_list.append( (matched.group(1), matched.group(2)) )
print("conv:", len(lines_qi))
re_pic = None
lines_qi = None
# sec: conv
text_md = path_md.read_text(encoding="UTF8")
for name, addr in qi_pic_list:
text_md = text_md.replace("![png](%s)" % name, "![%s](%s)" % (name, addr))
# sec: output
path_md_out = path_md.with_name("%s.conv%s" % (path_md.stem, path_md.suffix))
path_md_out.write_text(text_md, encoding="UTF8")
print("output:", path_md_out)
# sec: entry
if __name__ == "__main__": main()
코드 개요
작성 중.
Reference
이 문제에 관하여(Jupyter Notebook의 내용을 이미지를 포함하여 그대로 Qiita에 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dl_from_scratch/items/daa99b328fba047e5adb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Jupyter Notebook의 내용을 이미지를 포함하여 그대로 Qiita에 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dl_from_scratch/items/daa99b328fba047e5adb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)