作業記録をコラム型日記に変換するPythonスクリプト
code:script.py
# -*- coding: utf-8 -*-
import re
file_path = "2022/20221009.md"
with open(file_path,mode="r") as f:
l = f.readlines()
title = ""
onBlock = False
tempBlock = []
taskBlock = []
refBlock = []
expenseBlock = []
pubBlock = []
block = []
for s in l:
isTitle = re.match(r'\d{4}-\d{2}-\d{2}:(.*)?$', s)
if (isTitle):
title = s
continue
isTask = re.match(r'^\*|\| \x|s|\s .*?$', s) if(isTask):
taskBlock.append(s)
continue
isRef = re.match(r'>> あとで読む:(.*)$', s)
if (isRef):
refBlock.append("* " + isRef.group(1))
continue
isExpense = re.match(r'^¥ (.*)$', s)
if (isExpense):
expenseBlock.append("* " + isExpense.group(1))
continue
isPublish = re.match(r'>> publish:(.*)?', s)
if (isPublish):
pubBlock.append("* " + isPublish.group(1))
continue
isTime = re.match(r'## (.*)?$', s)
if (isTime):
if (onBlock):
onBlock = False
continue
isHeader = re.match(r'### (.*)?$', s)
if (isHeader):
if (tempBlock != []):
tempBlock.append("</div>\n")
block.append("".join(tempBlock))
tempBlock = []
onBlock = True
tempBlock.append("<div class='dbox' data-type='project'>\n\n" + s)
continue
isBlank = re.match(r'^$', s)
if (isBlank and (onBlock == True)):
tempBlock.append(s)
continue
elif (isBlank and (onBlock == False)):
continue
if (tempBlock == []):
tempBlock.append("<div class='dbox'>\n\n")
tempBlock.append(s)
else:
if (tempBlock != []) :
block.append("".join(tempBlock) + "</div>")
block.insert(0,"<div class='dbox' id='refBlock'>\n\n## 注目した記事\n\n" +"".join(refBlock)+ "</div>")
block.insert(0,"<div class='dbox' id='pubBlock'>\n\n### 更新リスト\n\n" +"".join(pubBlock)+ "</div>")
block.insert(0,"<div class='dbox' id='expenseBlock'>\n\n### 出費リスト\n\n" +"".join(expenseBlock)+ "</div>")
block.insert(0,"<div class='dbox' id='taskBlock'>\n\n### タスクリスト\n\n" +"".join(taskBlock) + "</div>")
block.insert(0,'<div style="width:90%;display:flex;flex-wrap : wrap;">')
block.append('</div>')
block.append('<link rel="stylesheet" type="text/css" href="css/diary.css">')
block.insert(0,title)
print("".join(block))
yesterdayDiaryFilePath = "/Users/Tadanori/Dropbox/textbox/list/2022-10-09.md"
with open(yesterdayDiaryFilePath,mode="w") as f:
f.writelines(block)
ref.