Skip to content

Commit f78aceb

Browse files
authored
Merge pull request #23 from SilverRainZ/refactor/conf
`conf.py` refactor
2 parents cd8d7f7 + b9ed727 commit f78aceb

12 files changed

+247
-228
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@ ronin
1313

1414
# sphinxnotes-any
1515
.any*
16+
17+
# Python
18+
__pycache__

_conf/deploy.py

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import os
2+
from enum import Enum, auto
3+
4+
class Deployment(Enum):
5+
Github = auto()
6+
Gitee = auto()
7+
Raspi = auto() # Raspberry Pi
8+
Local = auto()
9+
10+
@classmethod
11+
def current(cls) -> 'Deployment':
12+
if os.environ.get('GITHUB_REPOSITORY') == 'SilverRainZ/ronin':
13+
return Deployment.Raspi
14+
if os.environ.get('GITHUB_WORKFLOW') == 'Publish Github Pages':
15+
return Deployment.Github
16+
if os.environ.get('GITHUB_WORKFLOW') == 'Publish Gitee Pages':
17+
return Deployment.Gitee
18+
return Deployment.Local
19+
20+
def is_private(self) -> bool:
21+
return not self.is_public()
22+
23+
def is_public(self) -> bool:
24+
return self in [Deployment.Github, Deployment.Gitee]
25+
26+
def is_mirror(self) -> bool:
27+
return self is not Deployment.Github
28+
29+
def url(self) -> str:
30+
if self == Deployment.Github:
31+
return 'https://silverrainz.me/'
32+
elif self == Deployment.Gitee:
33+
return 'https://silverrainz.gitee.io/'
34+
elif self == Deployment.Raspi:
35+
return 'https://rpi3/bullet'
36+
else:
37+
# file:///build_dir/html/index.html
38+
return 'TODO'
39+
40+
41+
D = Deployment.current()
42+
print('Deployment:', D)

_conf/redirect.yml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# sphinx_reredirects configuration for HTML builder.
2+
# See also: https://documatt.com/sphinx-reredirects/usage.html
3+
4+
# source (docname): target (html page)
5+
notes/6-lectures-on-sketch: /notes/zxsys/6-lectures-on-sketch.html
6+
notes/leetcode/index: /notes/writeups/leetcode/index.html
7+
notes/2021-interview/index: /notes/writeups/2021-interview/index.html
8+
notes/nintendo-switch/zelda-breath-of-the-wild: /p/zelda-breath-of-the-wild.html
9+
notes/nju-static-program-analysis: /p/nju-static-program-analysis.html

_conf/schemas.py

+153
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Definition of any domain's object schemas.
2+
# See also https://sphinx.silverrainz.me/any/.
3+
4+
from sphinxnotes.any import Schema, Field as F, DateClassifier
5+
6+
by_date = DateClassifier(['%Y-%m-%d', '%Y-%m', '%Y'])
7+
8+
_schemas = [
9+
Schema('friend',
10+
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
11+
attrs={'avatar': F(), 'blog': F()},
12+
content=F(form=F.Forms.LINES),
13+
description_template=open('_templates/friend.rst', 'r').read(),
14+
reference_template='👤{{ title }}',
15+
missing_reference_template='👤{{ title }}',
16+
ambiguous_reference_template='👥{{ title }}'),
17+
Schema('book',
18+
name=F(required=True, ref=True, form=F.Forms.LINES),
19+
attrs={
20+
'isbn': F(uniq=True, ref=True),
21+
'status': F(ref=True),
22+
'startat': F(ref=True, form=F.Forms.WORDS),
23+
'endat': F(ref=True, form=F.Forms.WORDS),
24+
},
25+
description_template=open('_templates/book.rst', 'r').read(),
26+
reference_template='《{{ title }}》',
27+
missing_reference_template='《{{ title }}》',
28+
ambiguous_reference_template='《{{ title }}》'),
29+
Schema('artwork',
30+
name=F(ref=True),
31+
attrs={
32+
'id': F(uniq=True, ref=True, required=True),
33+
'date': F(ref=True, classifiers=[by_date]),
34+
'medium': F(ref=True, form=F.Forms.WORDS),
35+
'size': F(ref=True),
36+
'image': F(),
37+
'album': F(ref=True),
38+
},
39+
description_template=open('_templates/artwork.rst', 'r').read(),
40+
reference_template='《{% if title %}{{ title }}{% else %}{{ id }}{% endif %}》',
41+
missing_reference_template='《{{ title }}》',
42+
ambiguous_reference_template='{{ title }}'),
43+
Schema('artist',
44+
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
45+
attrs={
46+
'movement': F(ref=True, form=F.Forms.WORDS),
47+
'gallery': F(ref=True, form=F.Forms.WORDS),
48+
'enwiki': F(),
49+
'zhwiki': F(),
50+
'artwork': F(form=F.Forms.WORDS),
51+
},
52+
description_template=open('_templates/artist.rst', 'r').read(),
53+
reference_template='🧑‍🎨{{ title }}',
54+
missing_reference_template='🧑‍🎨{{ title }}',
55+
ambiguous_reference_template='🧑‍🎨{{ title }}'),
56+
Schema('gallery',
57+
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
58+
attrs={'website': F()},
59+
description_template=open('_templates/gallery.rst', 'r').read(),
60+
reference_template='🖼️{{ title }}',
61+
missing_reference_template='🖼️{{ title }}'),
62+
Schema('event',
63+
name=F(ref=True, required=True),
64+
attrs={
65+
'date': F(ref=True, form=F.Forms.WORDS, classifiers=[by_date]),
66+
'location': F(ref=True),
67+
},
68+
description_template=open('_templates/event.rst', 'r').read(),
69+
reference_template='📅{{ title }}',
70+
missing_reference_template='📅{{ title }}',
71+
ambiguous_reference_template='📅{{ title }}'),
72+
Schema('leetcode',
73+
name=F(ref=True, required=True),
74+
attrs={
75+
'id': F(uniq=True, ref=True),
76+
'diffculty': F(ref=True),
77+
'language': F(ref=True, form=F.Forms.WORDS),
78+
'key': F(ref=True, form=F.Forms.WORDS),
79+
'date': F(ref=True, form=F.Forms.WORDS, classifiers=[by_date]),
80+
'reference': F(ref=True),
81+
},
82+
description_template=open('_templates/leetcode.rst', 'r').read(),
83+
reference_template='🧮{{ title }}',
84+
missing_reference_template='🧮{{ title }}',
85+
ambiguous_reference_template='🧮{{ title }}'),
86+
Schema('term',
87+
name=F(ref=True, required=True, form=F.Forms.LINES),
88+
attrs={
89+
'field': F(ref=True),
90+
'enwiki': F(),
91+
'zhwiki': F(),
92+
},
93+
description_template=open('_templates/term.rst', 'r').read(),
94+
reference_template='#️⃣{{ title }}',
95+
missing_reference_template='#️⃣{{ title }}',
96+
ambiguous_reference_template='#️⃣{{ title }}'),
97+
Schema('jour',
98+
name=F(ref=True, required=True),
99+
attrs={
100+
'date': F(ref=True, classifiers=[by_date]),
101+
'category': F(),
102+
},
103+
description_template=open('_templates/jour.rst', 'r').read(),
104+
reference_template='📰{{ title }}',
105+
missing_reference_template='📰{{ title }}',
106+
ambiguous_reference_template='📰{{ title }}'),
107+
Schema('okr',
108+
name=F(ref=True, required=True),
109+
attrs={
110+
'id': F(uniq=True, ref=True, required=True),
111+
'krs': F(form=F.Forms.LINES),
112+
'scores': F(form=F.Forms.WORDS),
113+
'parent': F(),
114+
},
115+
description_template=open('_templates/okr.rst', 'r').read(),
116+
reference_template='🥅{{ title }}'),
117+
Schema('people',
118+
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
119+
attrs={
120+
'github': F(),
121+
'blog': F(),
122+
'enwiki': F(),
123+
'zhwiki': F(),
124+
'weibo': F(),
125+
},
126+
description_template=open('_templates/people.rst', 'r').read(),
127+
reference_template='👤{{ title }}'),
128+
Schema('rhythm',
129+
name=F(ref=True),
130+
attrs={
131+
'time': F(ref=True, required=True),
132+
'tempo': F(),
133+
'grid': F(),
134+
'musicca': F(),
135+
},
136+
content=F(form=F.Forms.LINES),
137+
description_template=open('_templates/rhythm.rst', 'r').read(),
138+
reference_template='🥁{{ title }}'),
139+
Schema('dev',
140+
name=F(ref=True, required=True),
141+
attrs={
142+
'id': F(uniq=True, ref=True, required=True),
143+
'type': F(ref=True),
144+
'web': F(),
145+
'man': F(),
146+
'price': F(),
147+
'startat': F(ref=True),
148+
'endat': F(ref=True),
149+
},
150+
description_template=open('_templates/dev.rst', 'r').read(),
151+
reference_template='🎛️{{ title }}'),
152+
]
153+

_utils/migrate-to-permnotes

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
1-
#!/bin/sh
1+
#!/bin/bash
22
# set -x
33

44
root=$(git rev-parse --show-toplevel)
55
cd $root
66

77
eval "$(snippet integration --sh)"
8-
id=$(snippet_list --tags d --docname 'ronin/inbox/**')
8+
id=$(snippet_list --tags d)
99
file=$(snippet get $id --file)
10+
docname=$(snippet get $id --docname)
1011

11-
mv $file $root/p/$(basename $file)
12+
new_file="$root/p/$(basename $file)"
13+
new_docname="p/$(basename $docname)"
14+
15+
mv $file $new_file
16+
if [[ "$docname" != "ronin"* ]]; then
17+
echo "$docname: /$new_docname.html" >> ./_conf/redirect.yml
18+
fi
19+
20+
git add $file $new_file ./_conf/redirect.yml
21+
git diff HEAD

0 commit comments

Comments
 (0)