MkDocs upgrade: migrate to class-based config schemas

This commit is contained in:
Oleh Prypin
2022-09-24 13:07:09 +02:00
committed by Martin Donath
parent 593a3464c5
commit b6d2eb19fd
4 changed files with 44 additions and 42 deletions

View File

@@ -28,7 +28,8 @@ from collections import defaultdict
from hashlib import md5 from hashlib import md5
from io import BytesIO from io import BytesIO
from mkdocs.commands.build import DuplicateFilter from mkdocs.commands.build import DuplicateFilter
from mkdocs.config.config_options import Type from mkdocs.config.base import Config
from mkdocs.config import config_options as opt
from mkdocs.plugins import BasePlugin from mkdocs.plugins import BasePlugin
from shutil import copyfile from shutil import copyfile
from tempfile import TemporaryFile from tempfile import TemporaryFile
@@ -45,20 +46,19 @@ except ImportError:
# Class # Class
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Social plugin
class SocialPlugin(BasePlugin):
# Configuration scheme # Configuration scheme
config_scheme = ( class SocialPluginConfig(Config):
("enabled", Type(bool, default = True)), enabled = opt.Type(bool, default = True)
("cache_dir", Type(str, default = ".cache/plugin/social")), cache_dir = opt.Type(str, default = ".cache/plugin/social")
# Options for social cards # Options for social cards
("cards", Type(bool, default = True)), cards = opt.Type(bool, default = True)
("cards_dir", Type(str, default = "assets/images/social")), cards_dir = opt.Type(str, default = "assets/images/social")
("cards_color", Type(dict, default = {})), cards_color = opt.Type(dict, default = {})
("cards_font", Type(str, default = None)), cards_font = opt.Optional(opt.Type(str))
)
# Social plugin
class SocialPlugin(BasePlugin[SocialPluginConfig]):
# Retrieve configuration # Retrieve configuration
def on_config(self, config): def on_config(self, config):

View File

@@ -26,20 +26,21 @@ from collections import defaultdict
from markdown.extensions.toc import slugify from markdown.extensions.toc import slugify
from mkdocs import utils from mkdocs import utils
from mkdocs.commands.build import DuplicateFilter from mkdocs.commands.build import DuplicateFilter
from mkdocs.config.config_options import Type from mkdocs.config.base import Config
from mkdocs.config import config_options as opt
from mkdocs.plugins import BasePlugin from mkdocs.plugins import BasePlugin
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Class # Class
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Tags plugin
class TagsPlugin(BasePlugin):
# Configuration scheme # Configuration scheme
config_scheme = ( class TagsPluginConfig(Config):
("tags_file", Type(str, required = False)), tags_file = opt.Optional(opt.Type(str))
)
# Tags plugin
class TagsPlugin(BasePlugin[TagsPluginConfig]):
# Initialize plugin # Initialize plugin
def on_config(self, config): def on_config(self, config):

View File

@@ -28,7 +28,8 @@ from collections import defaultdict
from hashlib import md5 from hashlib import md5
from io import BytesIO from io import BytesIO
from mkdocs.commands.build import DuplicateFilter from mkdocs.commands.build import DuplicateFilter
from mkdocs.config.config_options import Type from mkdocs.config.base import Config
from mkdocs.config import config_options as opt
from mkdocs.plugins import BasePlugin from mkdocs.plugins import BasePlugin
from shutil import copyfile from shutil import copyfile
from tempfile import TemporaryFile from tempfile import TemporaryFile
@@ -45,20 +46,19 @@ except ImportError:
# Class # Class
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Social plugin
class SocialPlugin(BasePlugin):
# Configuration scheme # Configuration scheme
config_scheme = ( class SocialPluginConfig(Config):
("enabled", Type(bool, default = True)), enabled = opt.Type(bool, default = True)
("cache_dir", Type(str, default = ".cache/plugin/social")), cache_dir = opt.Type(str, default = ".cache/plugin/social")
# Options for social cards # Options for social cards
("cards", Type(bool, default = True)), cards = opt.Type(bool, default = True)
("cards_dir", Type(str, default = "assets/images/social")), cards_dir = opt.Type(str, default = "assets/images/social")
("cards_color", Type(dict, default = {})), cards_color = opt.Type(dict, default = {})
("cards_font", Type(str, default = None)), cards_font = opt.Optional(opt.Type(str))
)
# Social plugin
class SocialPlugin(BasePlugin[SocialPluginConfig]):
# Retrieve configuration # Retrieve configuration
def on_config(self, config): def on_config(self, config):

View File

@@ -26,20 +26,21 @@ from collections import defaultdict
from markdown.extensions.toc import slugify from markdown.extensions.toc import slugify
from mkdocs import utils from mkdocs import utils
from mkdocs.commands.build import DuplicateFilter from mkdocs.commands.build import DuplicateFilter
from mkdocs.config.config_options import Type from mkdocs.config.base import Config
from mkdocs.config import config_options as opt
from mkdocs.plugins import BasePlugin from mkdocs.plugins import BasePlugin
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Class # Class
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Tags plugin
class TagsPlugin(BasePlugin):
# Configuration scheme # Configuration scheme
config_scheme = ( class TagsPluginConfig(Config):
("tags_file", Type(str, required = False)), tags_file = opt.Optional(opt.Type(str))
)
# Tags plugin
class TagsPlugin(BasePlugin[TagsPluginConfig]):
# Initialize plugin # Initialize plugin
def on_config(self, config): def on_config(self, config):