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에 따라 라이센스가 부여됩니다.