Skip to content

Commit f802b6b

Browse files
committed
[conf] Move any schemas to _conf/schemas.py
1 parent 6f5fa89 commit f802b6b

File tree

3 files changed

+164
-150
lines changed

3 files changed

+164
-150
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
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/schemas.py

Lines changed: 153 additions & 0 deletions
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+

conf.py

Lines changed: 8 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212
#
1313
from __future__ import annotations
1414
import os
15-
import sys
1615
from datetime import datetime
1716
from enum import Enum, auto
1817
import yaml
1918

20-
sys.path.insert(0, os.path.abspath('.'))
19+
# -- Split configurations ----------------------------------------------------
20+
21+
from _conf.schemas import _schemas
22+
23+
with open('./_conf/redirect.yml') as data:
24+
_redirects = yaml.safe_load(data)
2125

2226
# -- Project information -----------------------------------------------------
2327

@@ -248,153 +252,7 @@ def url(self) -> str:
248252
}
249253

250254
extensions.append('sphinxnotes.any')
251-
from sphinxnotes.any import Schema, Field as F, DateClassifier
252-
by_date = DateClassifier([datefmt, '%Y-%m', '%Y'])
253-
any_schemas = [
254-
Schema('friend',
255-
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
256-
attrs={'avatar': F(), 'blog': F()},
257-
content=F(form=F.Forms.LINES),
258-
description_template=open('_templates/friend.rst', 'r').read(),
259-
reference_template='👤{{ title }}',
260-
missing_reference_template='👤{{ title }}',
261-
ambiguous_reference_template='👥{{ title }}'),
262-
Schema('book',
263-
name=F(required=True, ref=True, form=F.Forms.LINES),
264-
attrs={
265-
'isbn': F(uniq=True, ref=True),
266-
'status': F(ref=True),
267-
'startat': F(ref=True, form=F.Forms.WORDS),
268-
'endat': F(ref=True, form=F.Forms.WORDS),
269-
},
270-
description_template=open('_templates/book.rst', 'r').read(),
271-
reference_template='《{{ title }}》',
272-
missing_reference_template='《{{ title }}》',
273-
ambiguous_reference_template='《{{ title }}》'),
274-
Schema('artwork',
275-
name=F(ref=True),
276-
attrs={
277-
'id': F(uniq=True, ref=True, required=True),
278-
'date': F(ref=True, classifiers=[by_date]),
279-
'medium': F(ref=True, form=F.Forms.WORDS),
280-
'size': F(ref=True),
281-
'image': F(),
282-
'album': F(ref=True),
283-
},
284-
description_template=open('_templates/artwork.rst', 'r').read(),
285-
reference_template='《{% if title %}{{ title }}{% else %}{{ id }}{% endif %}》',
286-
missing_reference_template='《{{ title }}》',
287-
ambiguous_reference_template='{{ title }}'),
288-
Schema('artist',
289-
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
290-
attrs={
291-
'movement': F(ref=True, form=F.Forms.WORDS),
292-
'gallery': F(ref=True, form=F.Forms.WORDS),
293-
'enwiki': F(),
294-
'zhwiki': F(),
295-
'artwork': F(form=F.Forms.WORDS),
296-
},
297-
description_template=open('_templates/artist.rst', 'r').read(),
298-
reference_template='🧑‍🎨{{ title }}',
299-
missing_reference_template='🧑‍🎨{{ title }}',
300-
ambiguous_reference_template='🧑‍🎨{{ title }}'),
301-
Schema('gallery',
302-
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
303-
attrs={'website': F()},
304-
description_template=open('_templates/gallery.rst', 'r').read(),
305-
reference_template='🖼️{{ title }}',
306-
missing_reference_template='🖼️{{ title }}'),
307-
Schema('event',
308-
name=F(ref=True, required=True),
309-
attrs={
310-
'date': F(ref=True, form=F.Forms.WORDS, classifiers=[by_date]),
311-
'location': F(ref=True),
312-
},
313-
description_template=open('_templates/event.rst', 'r').read(),
314-
reference_template='📅{{ title }}',
315-
missing_reference_template='📅{{ title }}',
316-
ambiguous_reference_template='📅{{ title }}'),
317-
Schema('leetcode',
318-
name=F(ref=True, required=True),
319-
attrs={
320-
'id': F(uniq=True, ref=True),
321-
'diffculty': F(ref=True),
322-
'language': F(ref=True, form=F.Forms.WORDS),
323-
'key': F(ref=True, form=F.Forms.WORDS),
324-
'date': F(ref=True, form=F.Forms.WORDS, classifiers=[by_date]),
325-
'reference': F(ref=True),
326-
},
327-
description_template=open('_templates/leetcode.rst', 'r').read(),
328-
reference_template='🧮{{ title }}',
329-
missing_reference_template='🧮{{ title }}',
330-
ambiguous_reference_template='🧮{{ title }}'),
331-
Schema('term',
332-
name=F(ref=True, required=True, form=F.Forms.LINES),
333-
attrs={
334-
'field': F(ref=True),
335-
'enwiki': F(),
336-
'zhwiki': F(),
337-
},
338-
description_template=open('_templates/term.rst', 'r').read(),
339-
reference_template='#️⃣{{ title }}',
340-
missing_reference_template='#️⃣{{ title }}',
341-
ambiguous_reference_template='#️⃣{{ title }}'),
342-
Schema('jour',
343-
name=F(ref=True, required=True),
344-
attrs={
345-
'date': F(ref=True, classifiers=[by_date]),
346-
'category': F(),
347-
},
348-
description_template=open('_templates/jour.rst', 'r').read(),
349-
reference_template='📰{{ title }}',
350-
missing_reference_template='📰{{ title }}',
351-
ambiguous_reference_template='📰{{ title }}'),
352-
Schema('okr',
353-
name=F(ref=True, required=True),
354-
attrs={
355-
'id': F(uniq=True, ref=True, required=True),
356-
'krs': F(form=F.Forms.LINES),
357-
'scores': F(form=F.Forms.WORDS),
358-
'parent': F(),
359-
},
360-
description_template=open('_templates/okr.rst', 'r').read(),
361-
reference_template='🥅{{ title }}'),
362-
Schema('people',
363-
name=F(uniq=True, ref=True, required=True, form=F.Forms.LINES),
364-
attrs={
365-
'github': F(),
366-
'blog': F(),
367-
'enwiki': F(),
368-
'zhwiki': F(),
369-
'weibo': F(),
370-
},
371-
description_template=open('_templates/people.rst', 'r').read(),
372-
reference_template='👤{{ title }}'),
373-
Schema('rhythm',
374-
name=F(ref=True),
375-
attrs={
376-
'time': F(ref=True, required=True),
377-
'tempo': F(),
378-
'grid': F(),
379-
'musicca': F(),
380-
},
381-
content=F(form=F.Forms.LINES),
382-
description_template=open('_templates/rhythm.rst', 'r').read(),
383-
reference_template='🥁{{ title }}'),
384-
Schema('dev',
385-
name=F(ref=True, required=True),
386-
attrs={
387-
'id': F(uniq=True, ref=True, required=True),
388-
'type': F(ref=True),
389-
'web': F(),
390-
'man': F(),
391-
'price': F(),
392-
'startat': F(ref=True),
393-
'endat': F(ref=True),
394-
},
395-
description_template=open('_templates/dev.rst', 'r').read(),
396-
reference_template='🎛️{{ title }}'),
397-
]
255+
any_schemas = _schemas
398256

399257
extensions.append('ablog')
400258
blog_path = 'blog'
@@ -468,7 +326,7 @@ def url(self) -> str:
468326
extensions.append('sphinx_reredirects')
469327
# https://documatt.gitlab.io/sphinx-reredirects/usage.html
470328
with open('./_conf/redirect.yml') as data:
471-
redirects = yaml.safe_load(data)
329+
redirects = _redirects
472330

473331
# extensions.append('sphinxcontrib.images')
474332
# images_config = {

0 commit comments

Comments
 (0)