|
12 | 12 | #
|
13 | 13 | from __future__ import annotations
|
14 | 14 | import os
|
15 |
| -import sys |
16 | 15 | from datetime import datetime
|
17 | 16 | from enum import Enum, auto
|
18 | 17 | import yaml
|
19 | 18 |
|
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) |
21 | 25 |
|
22 | 26 | # -- Project information -----------------------------------------------------
|
23 | 27 |
|
@@ -248,153 +252,7 @@ def url(self) -> str:
|
248 | 252 | }
|
249 | 253 |
|
250 | 254 | 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 |
398 | 256 |
|
399 | 257 | extensions.append('ablog')
|
400 | 258 | blog_path = 'blog'
|
@@ -468,7 +326,7 @@ def url(self) -> str:
|
468 | 326 | extensions.append('sphinx_reredirects')
|
469 | 327 | # https://documatt.gitlab.io/sphinx-reredirects/usage.html
|
470 | 328 | with open('./_conf/redirect.yml') as data:
|
471 |
| - redirects = yaml.safe_load(data) |
| 329 | + redirects = _redirects |
472 | 330 |
|
473 | 331 | # extensions.append('sphinxcontrib.images')
|
474 | 332 | # images_config = {
|
|
0 commit comments