diff --git a/schema.json b/schema.json index 7ff52ed..26fd5c8 100644 --- a/schema.json +++ b/schema.json @@ -779,6 +779,161 @@ "title": "ExperienceEntry", "type": "object" }, + "McdowellThemeOptions": { + "description": "", + "properties": { + "theme": { + "const": "mcdowell", + "title": "Theme" + } + }, + "required": [ + "theme" + ], + "title": "McdowellThemeOptions", + "type": "object", + "additionalProperties": false + }, + "ModerncvThemeOptions": { + "description": "", + "properties": { + "theme": { + "const": "moderncv", + "title": "Theme" + }, + "font_size": { + "default": "10pt", + "description": "The font size of the CV. The default value is \"10pt\".", + "enum": [ + "10pt", + "11pt", + "12pt" + ], + "examples": [ + "10pt", + "11pt", + "12pt" + ], + "title": "Font Size", + "type": "string" + }, + "page_size": { + "default": "a4paper", + "description": "The page size of the CV. The default value is \"a4paper\".", + "enum": [ + "a4paper", + "letterpaper" + ], + "examples": [ + "a4paper", + "letterpaper" + ], + "title": "Page Size", + "type": "string" + }, + "moderncv_style": { + "default": "classic", + "description": "The style of the moderncv theme. The default value is \"classic\".", + "examples": [ + "casual", + "classic", + "banking", + "oldstyle", + "fancy" + ], + "title": "ModernCV Style", + "oneOf": [ + { + "const": "casual" + }, + { + "const": "classic" + }, + { + "const": "banking" + }, + { + "const": "oldstyle" + }, + { + "const": "fancy" + } + ] + }, + "color": { + "default": "blue", + "description": "The primary color of the CV. The default value is \"blue\".", + "examples": [ + "blue", + "black", + "burgundy", + "green", + "grey", + "orange", + "purple", + "red" + ], + "title": "Primary Color", + "oneOf": [ + { + "const": "blue" + }, + { + "const": "black" + }, + { + "const": "burgundy" + }, + { + "const": "green" + }, + { + "const": "grey" + }, + { + "const": "orange" + }, + { + "const": "purple" + }, + { + "const": "red" + } + ] + }, + "date_width": { + "default": "3.8 cm", + "description": "The width of the date column. The default value is \"3.8 cm\".", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Date and Location Column Width", + "type": "string" + }, + "content_scale": { + "default": 0.75, + "description": "The scale of the content with respect to the page size. The default value is \"0.75\".", + "title": "Content Scale", + "type": "number" + }, + "show_only_years": { + "default": false, + "description": "If \"True\", only the years will be shown in the date column. The default value is \"False\".", + "title": "Show Only Years", + "type": "boolean" + }, + "disable_page_numbers": { + "default": false, + "description": "If \"True\", the page numbers will be disabled. The default value is \"False\".", + "title": "Disable Page Numbers", + "type": "boolean" + } + }, + "required": [ + "theme" + ], + "title": "ModerncvThemeOptions", + "type": "object", + "additionalProperties": false + }, "NormalEntry": { "additionalProperties": false, "description": "This class is the data model of `NormalEntry`.", @@ -1239,6 +1394,30 @@ "title": "Curriculum Vitae" }, "design": { + "anyOf": [ + { + "discriminator": { + "mapping": { + "classic": "#/$defs/ClassicThemeOptions", + "mcdowell": "#/$defs/McdowellThemeOptions", + "moderncv": "#/$defs/ModerncvThemeOptions" + }, + "propertyName": "theme" + }, + "oneOf": [ + { + "$ref": "#/$defs/ClassicThemeOptions" + }, + { + "$ref": "#/$defs/ModerncvThemeOptions" + }, + { + "$ref": "#/$defs/McdowellThemeOptions" + } + ] + }, + {} + ], "default": { "theme": "classic", "font": "SourceSans3", @@ -1277,17 +1456,6 @@ } }, "description": "The design information of the CV.", - "discriminator": { - "mapping": { - "classic": "#/$defs/ClassicThemeOptions" - }, - "propertyName": "theme" - }, - "oneOf": [ - { - "$ref": "#/$defs/ClassicThemeOptions" - } - ], "title": "Design" } },