PlainTasks 및 JSON 플러그인 개발
9864 단어 json
나의 최근 업무는 플러그인을 개발하여 JSON 파일에서 todo 파일로 전환할 수 있도록 하는 것이다.
JSON의 포맷은 이렇습니다.
1: { 2: "project2":[ 3: { 4: "finish_time":"", 5: "status":0, 6: "name":"marking a sublime demo" 7: }, 8: { 9: "finish_time":"", 10: "status":0, 11: "name":"testing" 12: }, 13: { 14: "finish_time":"", 15: "status":0, 16: "name":"programing" 17: } 18: ], 19: "project1":[ 20: { 21: "finish_time":"", 22: "status":0, 23: "name":"writing a blog" 24: }, 25: { 26: "finish_time":"", 27: "status":0, 28: "name":"reading a book" 29: }, 30: { 31: "finish_time":"", 32: "status":0, 33: "name":"go to home" 34: } 35: ] 36: } .csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
다음은 부분 코드 단편입니다.python의 문법을 매우 좋아하지만 저는 깊이 파고들지 못합니다. 고수께서 바로잡아 주시기 바랍니다.
1: def conver_todo_json(self): 2: file_name = self.window.active_view().file_name() 3: if not ".todo" in file_name: 4: return 5: 6: rom = '^\s*☐\s*(.*)$' 7: rdm = '\s*\✔\s*(.+?)\s*@done?([\(\)\d\w,\.:\-/ ]*)\s*' 8: rpm = '([^\b\(]*?)(?=\:)' 9: 10: json_data = {} 11: json_file = re.sub("\.todo", '.json', file_name) 12: project = 'other' 13: 14: with open(file_name, "r+", encoding="utf-8") as f: 15: for line in f: 16: prj = re.match(rpm, line) 17: if prj: 18: project = prj.groups()[0] 19: json_data[project] = [] 20: task_open = re.match(rom, line) 21: if task_open: 22: task_item = {"name": task_open.groups()[0] ,"status":0,"finish_time":""} 23: json_data[project].append(task_item) 24: task_done = re.match(rdm, line) 25: if task_done: 26: task_item = {"name":task_done.groups()[0],"status":1,"finish_time":task_done.groups()[1] } 27: json_data[project].append(task_item) 28: 29: with open(json_file, "w+", encoding="utf-8") as f: 30: json.dump(json_data, f) 31: 32: self.window.open_file(json_file) .csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
자세한 내용은 여기.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘텐츠 SaaS | JSON 스키마 양식 빌더Bloomreach Content를 위한 JSON Form Builder 맞춤형 통합을 개발합니다. 최근 Bloomreach Content SaaS는 내장 앱 프레임워크를 사용하여 혁신적인 콘텐츠 유형 필드를 구축할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.