diff --git a/rendercv/data_models.py b/rendercv/data_models.py index e19796b..b93f17a 100644 --- a/rendercv/data_models.py +++ b/rendercv/data_models.py @@ -641,15 +641,15 @@ Entry = ( | BulletEntry | str ) -ListOfEntries = ( - list[OneLineEntry] - | list[NormalEntry] - | list[ExperienceEntry] - | list[EducationEntry] - | list[PublicationEntry] - | list[BulletEntry] - | list[str] -) +ListOfEntries = list[ + OneLineEntry + | NormalEntry + | ExperienceEntry + | EducationEntry + | PublicationEntry + | BulletEntry + | str +] entry_types = Entry.__args__[:-1] # a tuple of all the entry types except str entry_type_names = [entry_type.__name__ for entry_type in entry_types] + ["TextEntry"] @@ -1767,27 +1767,16 @@ def generate_json_schema() -> dict[str, Any]: # already have the required field. Moreover, we would like to warn # users if they provide null values. They can remove the fields if they # don't want to provide them. - null_type_dict = {} - null_type_dict["type"] = "null" + null_type_dict = { + "type": "null", + } for field_name, field in value["properties"].items(): if "anyOf" in field: - if ( - len(field["anyOf"]) == 2 - and null_type_dict in field["anyOf"] - ): - field["oneOf"] = [field["anyOf"][0]] - del field["anyOf"] + if null_type_dict in field["anyOf"]: + field["anyOf"].remove(null_type_dict) - # for sections field of CurriculumVitae: - if "additionalProperties" in field["oneOf"][0]: - field["oneOf"][0]["additionalProperties"]["oneOf"] = ( - field["oneOf"][0]["additionalProperties"]["anyOf"] - ) - del field["oneOf"][0]["additionalProperties"]["anyOf"] - - else: - field["oneOf"] = field["anyOf"] - del field["anyOf"] + field["oneOf"] = field["anyOf"] + del field["anyOf"] return json_schema diff --git a/schema.json b/schema.json index eab021b..af6e23d 100644 --- a/schema.json +++ b/schema.json @@ -20,14 +20,37 @@ "additionalProperties": false, "description": "This class is the data model of the theme options for the `classic` theme.", "properties": { - "theme": { - "const": "classic", - "enum": [ - "classic" + "color": { + "default": "rgb(0,79,144)", + "description": "The primary color of the theme. \nThe color can be specified either with their name (https://www.w3.org/TR/SVG11/types.html#ColorKeywords), hexadecimal value, RGB value, or HSL value. The default value is rgb(0,79,144).", + "examples": [ + "Black", + "7fffd4", + "rgb(0,79,144)", + "hsl(270, 60%, 70%)" ], - "title": "Theme", + "format": "color", + "title": "Primary Color", "type": "string" }, + "disable_external_link_icons": { + "default": false, + "description": "If this option is set to true, then the external link icons will not be shown next to the links. The default value is false.", + "title": "Disable External Link Icons", + "type": "boolean" + }, + "disable_last_updated_date": { + "default": false, + "description": "If this option is set to true, then the last updated date will not be shown in the header. The default value is false.", + "title": "Disable Last Updated Date", + "type": "boolean" + }, + "disable_page_numbering": { + "default": false, + "description": "If this option is set to true, then the page numbering will not be shown. The default value is false.", + "title": "Disable Page Numbering", + "type": "boolean" + }, "font": { "default": "Source Sans 3", "description": "The font family of the CV. The default value is Source Sans 3.", @@ -52,6 +75,62 @@ "title": "Font Size", "type": "string" }, + "header_font_size": { + "default": "30 pt", + "description": "The font size of the header (the name of the person). The default value is 30 pt.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Header Font Size", + "type": "string" + }, + "last_updated_date_style": { + "default": "Last updated in TODAY", + "description": "The style of the last updated date. The following placeholder can be used:\n- TODAY: Today's month and year (April 2024)\nThe default value is Last updated in TODAY.", + "title": "Last Updated Date Style", + "type": "string" + }, + "margins": { + "allOf": [ + { + "$ref": "#/$defs/MarginsForClassic" + } + ], + "default": { + "entry_area": { + "date_and_location_width": "4.5 cm", + "education_degree_width": "1 cm", + "left_and_right": "0.2 cm", + "vertical_between": "0.2 cm" + }, + "header": { + "bottom": "0.3 cm", + "horizontal_between_connections": "0.5 cm", + "vertical_between_name_and_connections": "0.3 cm" + }, + "highlights_area": { + "left": "0.4 cm", + "top": "0.10 cm", + "vertical_between_bullet_points": "0.10 cm" + }, + "page": { + "bottom": "2 cm", + "left": "2 cm", + "right": "2 cm", + "top": "2 cm" + }, + "section_title": { + "bottom": "0.2 cm", + "top": "0.3 cm" + } + }, + "description": "Page, section title, entry field, and highlights field margins.", + "title": "Margins" + }, + "page_numbering_style": { + "default": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", + "description": "The style of the page numbering. The following placeholders can be used:\n- NAME: The name of the person\n- PAGE_NUMBER: The current page number\n- TOTAL_PAGES: The total number of pages\nThe default value is NAME - Page PAGE_NUMBER of TOTAL_PAGES.", + "title": "Page Numbering Style", + "type": "string" + }, "page_size": { "default": "letterpaper", "description": "The page size of the CV. It can be a4paper or letterpaper. The default value is letterpaper.", @@ -62,55 +141,14 @@ "title": "Page Size", "type": "string" }, - "color": { - "default": "rgb(0,79,144)", - "description": "The primary color of the theme. \nThe color can be specified either with their name (https://www.w3.org/TR/SVG11/types.html#ColorKeywords), hexadecimal value, RGB value, or HSL value. The default value is rgb(0,79,144).", - "examples": [ - "Black", - "7fffd4", - "rgb(0,79,144)", - "hsl(270, 60%, 70%)" - ], - "format": "color", - "title": "Primary Color", - "type": "string" - }, - "disable_external_link_icons": { - "default": false, - "description": "If this option is set to true, then the external link icons will not be shown next to the links. The default value is false.", - "title": "Disable External Link Icons", - "type": "boolean" - }, - "disable_page_numbering": { - "default": false, - "description": "If this option is set to true, then the page numbering will not be shown. The default value is false.", - "title": "Disable Page Numbering", - "type": "boolean" - }, - "page_numbering_style": { - "default": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", - "description": "The style of the page numbering. The following placeholders can be used:\n- NAME: The name of the person\n- PAGE_NUMBER: The current page number\n- TOTAL_PAGES: The total number of pages\nThe default value is NAME - Page PAGE_NUMBER of TOTAL_PAGES.", - "title": "Page Numbering Style", - "type": "string" - }, - "disable_last_updated_date": { - "default": false, - "description": "If this option is set to true, then the last updated date will not be shown in the header. The default value is false.", - "title": "Disable Last Updated Date", - "type": "boolean" - }, - "last_updated_date_style": { - "default": "Last updated in TODAY", - "description": "The style of the last updated date. The following placeholder can be used:\n- TODAY: Today's month and year (April 2024)\nThe default value is Last updated in TODAY.", - "title": "Last Updated Date Style", - "type": "string" - }, - "header_font_size": { - "default": "30 pt", - "description": "The font size of the header (the name of the person). The default value is 30 pt.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Header Font Size", - "type": "string" + "show_timespan_in": { + "default": [], + "description": "The time span will be shown in the date and location column in these sections. The input should be a list of section titles as strings (case-sensitive). The default value is an empty list, which means the time span will not be shown in any section.", + "items": { + "type": "string" + }, + "title": "Show Time Span in These Sections", + "type": "array" }, "text_alignment": { "default": "justified", @@ -123,51 +161,13 @@ "title": "Text Alignment", "type": "string" }, - "margins": { - "allOf": [ - { - "$ref": "#/$defs/MarginsForClassic" - } + "theme": { + "const": "classic", + "enum": [ + "classic" ], - "default": { - "page": { - "bottom": "2 cm", - "left": "2 cm", - "right": "2 cm", - "top": "2 cm" - }, - "section_title": { - "bottom": "0.2 cm", - "top": "0.3 cm" - }, - "entry_area": { - "date_and_location_width": "4.5 cm", - "education_degree_width": "1 cm", - "left_and_right": "0.2 cm", - "vertical_between": "0.2 cm" - }, - "highlights_area": { - "left": "0.4 cm", - "top": "0.10 cm", - "vertical_between_bullet_points": "0.10 cm" - }, - "header": { - "bottom": "0.3 cm", - "horizontal_between_connections": "0.5 cm", - "vertical_between_name_and_connections": "0.3 cm" - } - }, - "description": "Page, section title, entry field, and highlights field margins.", - "title": "Margins" - }, - "show_timespan_in": { - "default": [], - "description": "The time span will be shown in the date and location column in these sections. The input should be a list of section titles as strings (case-sensitive). The default value is an empty list, which means the time span will not be shown in any section.", - "items": { - "type": "string" - }, - "title": "Show Time Span in These Sections", - "type": "array" + "title": "Theme", + "type": "string" } }, "required": [ @@ -180,51 +180,50 @@ "additionalProperties": false, "description": "This class is the data model of the CV.", "properties": { - "name": { - "default": null, - "description": "The name of the person.", - "title": "Name", - "oneOf": [ - { - "type": "string" - } - ] - }, - "label": { - "default": null, - "description": "The label of the person.", - "title": "Label", - "oneOf": [ - { - "type": "string" - } - ] - }, - "location": { - "default": null, - "description": "The location of the person.", - "title": "Location", - "oneOf": [ - { - "type": "string" - } - ] - }, "email": { "default": null, "description": "The email of the person.", - "title": "Email", "oneOf": [ { "format": "email", "type": "string" } - ] + ], + "title": "Email" + }, + "label": { + "default": null, + "description": "The label of the person.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Label" + }, + "location": { + "default": null, + "description": "The location of the person.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Location" + }, + "name": { + "default": null, + "description": "The name of the person.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Name" }, "phone": { "default": null, "description": "The phone number of the person.", - "title": "Phone", "oneOf": [ { "format": "phone", @@ -232,25 +231,50 @@ "minLength": 7, "type": "string" } - ] + ], + "title": "Phone" }, - "website": { + "sections": { "default": null, - "description": "The website of the person.", - "title": "Website", + "description": "The sections of the CV.", "oneOf": [ { - "format": "uri", - "maxLength": 2083, - "minLength": 1, - "type": "string" + "additionalProperties": { + "items": { + "anyOf": [ + { + "$ref": "#/$defs/OneLineEntry" + }, + { + "$ref": "#/$defs/NormalEntry" + }, + { + "$ref": "#/$defs/ExperienceEntry" + }, + { + "$ref": "#/$defs/EducationEntry" + }, + { + "$ref": "#/$defs/PublicationEntry" + }, + { + "$ref": "#/$defs/BulletEntry" + }, + { + "type": "string" + } + ] + }, + "type": "array" + }, + "type": "object" } - ] + ], + "title": "Sections" }, "social_networks": { "default": null, "description": "The social networks of the person.", - "title": "Social Networks", "oneOf": [ { "items": { @@ -258,63 +282,21 @@ }, "type": "array" } - ] + ], + "title": "Social Networks" }, - "sections": { + "website": { "default": null, - "description": "The sections of the CV.", - "title": "Sections", + "description": "The website of the person.", "oneOf": [ { - "additionalProperties": { - "oneOf": [ - { - "items": { - "$ref": "#/$defs/OneLineEntry" - }, - "type": "array" - }, - { - "items": { - "$ref": "#/$defs/NormalEntry" - }, - "type": "array" - }, - { - "items": { - "$ref": "#/$defs/ExperienceEntry" - }, - "type": "array" - }, - { - "items": { - "$ref": "#/$defs/EducationEntry" - }, - "type": "array" - }, - { - "items": { - "$ref": "#/$defs/PublicationEntry" - }, - "type": "array" - }, - { - "items": { - "$ref": "#/$defs/BulletEntry" - }, - "type": "array" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - }, - "type": "object" + "format": "uri", + "maxLength": 2083, + "minLength": 1, + "type": "string" } - ] + ], + "title": "Website" } }, "title": "CurriculumVitae", @@ -324,16 +306,28 @@ "additionalProperties": false, "description": "This class is the data model of `EducationEntry`.", "properties": { - "institution": { - "description": "The institution name.", - "title": "Institution", - "type": "string" - }, "area": { "description": "The area of study.", "title": "Area", "type": "string" }, + "date": { + "default": null, + "description": "The date field can be filled in YYYY-MM-DD, YYYY-MM, or YYYY formats or as an arbitrary string like \"Fall 2023\".", + "examples": [ + "2020-09-24", + "Fall 2023" + ], + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "title": "Date" + }, "degree": { "default": null, "description": "The type of the degree.", @@ -343,65 +337,12 @@ "PhD", "MS" ], - "title": "Degree", "oneOf": [ { "type": "string" } - ] - }, - "date": { - "default": null, - "description": "The date field can be filled in YYYY-MM-DD, YYYY-MM, or YYYY formats or as an arbitrary string like \"Fall 2023\".", - "examples": [ - "2020-09-24", - "Fall 2023" ], - "title": "Date", - "oneOf": [ - { - "type": "integer" - }, - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "location": { - "default": null, - "description": "The location of the event.", - "examples": [ - "Istanbul, Türkiye" - ], - "title": "Location", - "oneOf": [ - { - "type": "string" - } - ] - }, - "start_date": { - "default": null, - "description": "The start date of the event in YYYY-MM-DD, YYYY-MM, or YYYY format.", - "examples": [ - "2020-09-24" - ], - "title": "Start Date", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "\\d{4}-\\d{2}(-\\d{2})?", - "type": "string" - }, - { - "type": "null" - } - ] + "title": "Degree" }, "end_date": { "default": null, @@ -410,7 +351,6 @@ "2020-09-24", "present" ], - "title": "End Date", "oneOf": [ { "const": "present", @@ -425,11 +365,9 @@ { "pattern": "\\d{4}-\\d{2}(-\\d{2})?", "type": "string" - }, - { - "type": "null" } - ] + ], + "title": "End Date" }, "highlights": { "default": null, @@ -438,7 +376,6 @@ "Did this.", "Did that." ], - "title": "Highlights", "oneOf": [ { "items": { @@ -446,7 +383,43 @@ }, "type": "array" } - ] + ], + "title": "Highlights" + }, + "institution": { + "description": "The institution name.", + "title": "Institution", + "type": "string" + }, + "location": { + "default": null, + "description": "The location of the event.", + "examples": [ + "Istanbul, Türkiye" + ], + "oneOf": [ + { + "type": "string" + } + ], + "title": "Location" + }, + "start_date": { + "default": null, + "description": "The start date of the event in YYYY-MM-DD, YYYY-MM, or YYYY format.", + "examples": [ + "2020-09-24" + ], + "oneOf": [ + { + "type": "integer" + }, + { + "pattern": "\\d{4}-\\d{2}(-\\d{2})?", + "type": "string" + } + ], + "title": "Start Date" } }, "required": [ @@ -460,14 +433,37 @@ "additionalProperties": false, "description": "This class is the data model of the theme options for the `engineeringresumes`\ntheme.", "properties": { - "theme": { - "const": "engineeringresumes", - "enum": [ - "engineeringresumes" + "color": { + "default": "rgb(0,0,0)", + "description": "The primary color of the theme. \nThe color can be specified either with their [name](https://www.w3.org/TR/SVG11/types.html#ColorKeywords), hexadecimal value, RGB value, or HSL value. The default value is rgb(0,0,0).", + "examples": [ + "Black", + "7fffd4", + "rgb(0,79,144)", + "hsl(270, 60%, 70%)" ], - "title": "Theme", + "format": "color", + "title": "Primary Color", "type": "string" }, + "disable_external_link_icons": { + "default": true, + "description": "If this option is set to true, then the external link icons will not be shown next to the links. The default value is true.", + "title": "Disable External Link Icons", + "type": "boolean" + }, + "disable_last_updated_date": { + "default": true, + "description": "If this option is set to true, then the last updated date will not be shown in the header. The default value is true.", + "title": "Disable Last Updated Date", + "type": "boolean" + }, + "disable_page_numbering": { + "default": true, + "description": "If this option is set to true, then the page numbering will not be shown. The default value is true.", + "title": "Disable Page Numbering", + "type": "boolean" + }, "font": { "default": "Charter", "description": "The font family of the CV. The default value is Charter.", @@ -492,6 +488,61 @@ "title": "Font Size", "type": "string" }, + "header_font_size": { + "default": "25 pt", + "description": "The font size of the header (the name of the person). The default value is 25 pt.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Header Font Size", + "type": "string" + }, + "last_updated_date_style": { + "default": "Last updated in TODAY", + "description": "The style of the last updated date. The following placeholder can be used:\n- TODAY: Today's month and year (April 2024)\nThe default value is Last updated in TODAY.", + "title": "Last Updated Date Style", + "type": "string" + }, + "margins": { + "allOf": [ + { + "$ref": "#/$defs/MarginsForEngineeringresumes" + } + ], + "default": { + "entry_area": { + "date_and_location_width": "4.5 cm", + "left_and_right": "0 cm", + "vertical_between": "0.2 cm" + }, + "header": { + "bottom": "5 pt", + "horizontal_between_connections": "10 pt", + "vertical_between_name_and_connections": "5 pt" + }, + "highlights_area": { + "left": "0 cm", + "top": "0.10 cm", + "vertical_between_bullet_points": "0.10 cm" + }, + "page": { + "bottom": "2 cm", + "left": "2 cm", + "right": "2 cm", + "top": "2 cm" + }, + "section_title": { + "bottom": "0.2 cm", + "top": "0.3 cm" + } + }, + "description": "Page, section title, entry field, and highlights field margins.", + "title": "Margins" + }, + "page_numbering_style": { + "default": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", + "description": "The style of the page numbering. The following placeholders can be used:\n- NAME: The name of the person\n- PAGE_NUMBER: The current page number\n- TOTAL_PAGES: The total number of pages\nThe default value is NAME - Page PAGE_NUMBER of TOTAL_PAGES.", + "title": "Page Numbering Style", + "type": "string" + }, "page_size": { "default": "letterpaper", "description": "The page size of the CV. It can be a4paper or letterpaper. The default value is letterpaper.", @@ -502,56 +553,6 @@ "title": "Page Size", "type": "string" }, - "color": { - "default": "rgb(0,0,0)", - "description": "The primary color of the theme. \nThe color can be specified either with their [name](https://www.w3.org/TR/SVG11/types.html#ColorKeywords), hexadecimal value, RGB value, or HSL value. The default value is rgb(0,0,0).", - "examples": [ - "Black", - "7fffd4", - "rgb(0,79,144)", - "hsl(270, 60%, 70%)" - ], - "format": "color", - "title": "Primary Color", - "type": "string" - }, - "disable_external_link_icons": { - "default": true, - "description": "If this option is set to true, then the external link icons will not be shown next to the links. The default value is true.", - "title": "Disable External Link Icons", - "type": "boolean" - }, - "disable_page_numbering": { - "default": true, - "description": "If this option is set to true, then the page numbering will not be shown. The default value is true.", - "title": "Disable Page Numbering", - "type": "boolean" - }, - "page_numbering_style": { - "default": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", - "description": "The style of the page numbering. The following placeholders can be used:\n- NAME: The name of the person\n- PAGE_NUMBER: The current page number\n- TOTAL_PAGES: The total number of pages\nThe default value is NAME - Page PAGE_NUMBER of TOTAL_PAGES.", - "title": "Page Numbering Style", - "type": "string" - }, - "disable_last_updated_date": { - "default": true, - "description": "If this option is set to true, then the last updated date will not be shown in the header. The default value is true.", - "title": "Disable Last Updated Date", - "type": "boolean" - }, - "last_updated_date_style": { - "default": "Last updated in TODAY", - "description": "The style of the last updated date. The following placeholder can be used:\n- TODAY: Today's month and year (April 2024)\nThe default value is Last updated in TODAY.", - "title": "Last Updated Date Style", - "type": "string" - }, - "header_font_size": { - "default": "25 pt", - "description": "The font size of the header (the name of the person). The default value is 25 pt.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Header Font Size", - "type": "string" - }, "text_alignment": { "default": "left-aligned", "description": "The alignment of the text. The default value is left-aligned.", @@ -563,41 +564,13 @@ "title": "Text Alignment", "type": "string" }, - "margins": { - "allOf": [ - { - "$ref": "#/$defs/MarginsForEngineeringresumes" - } + "theme": { + "const": "engineeringresumes", + "enum": [ + "engineeringresumes" ], - "default": { - "page": { - "bottom": "2 cm", - "left": "2 cm", - "right": "2 cm", - "top": "2 cm" - }, - "section_title": { - "bottom": "0.2 cm", - "top": "0.3 cm" - }, - "entry_area": { - "date_and_location_width": "4.5 cm", - "left_and_right": "0 cm", - "vertical_between": "0.2 cm" - }, - "highlights_area": { - "left": "0 cm", - "top": "0.10 cm", - "vertical_between_bullet_points": "0.10 cm" - }, - "header": { - "bottom": "5 pt", - "horizontal_between_connections": "10 pt", - "vertical_between_name_and_connections": "5 pt" - } - }, - "description": "Page, section title, entry field, and highlights field margins.", - "title": "Margins" + "title": "Theme", + "type": "string" } }, "required": [ @@ -607,37 +580,16 @@ "type": "object" }, "EntryAreaMargins": { + "additionalProperties": false, "description": "This class is a data model for the entry area margins.", "properties": { - "left_and_right": { - "default": "0.2 cm", - "description": "The left margin of entry areas. The default value is 0.2 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Left Margin", - "type": "string" - }, - "vertical_between": { - "default": "0.2 cm", - "description": "The vertical margin between entry areas. The default value is 0.2 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Vertical Margin Between Entry Areas", - "type": "string" - }, "date_and_location_width": { "default": "4.5 cm", "description": "The width of the date and location column. The default value is 4.5 cm.", "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Date and Location Column Width", "type": "string" - } - }, - "title": "EntryAreaMargins", - "type": "object", - "additionalProperties": false - }, - "EntryAreaMarginsForClassic": { - "description": "This class is a data model for the entry area margins.", - "properties": { + }, "left_and_right": { "default": "0.2 cm", "description": "The left margin of entry areas. The default value is 0.2 cm.", @@ -651,7 +603,15 @@ "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Vertical Margin Between Entry Areas", "type": "string" - }, + } + }, + "title": "EntryAreaMargins", + "type": "object" + }, + "EntryAreaMarginsForClassic": { + "additionalProperties": false, + "description": "This class is a data model for the entry area margins.", + "properties": { "date_and_location_width": { "default": "4.5 cm", "description": "The width of the date and location column. The default value is 4.5 cm.", @@ -665,15 +625,36 @@ "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Date and Location Column Width", "type": "string" + }, + "left_and_right": { + "default": "0.2 cm", + "description": "The left margin of entry areas. The default value is 0.2 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Left Margin", + "type": "string" + }, + "vertical_between": { + "default": "0.2 cm", + "description": "The vertical margin between entry areas. The default value is 0.2 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Vertical Margin Between Entry Areas", + "type": "string" } }, "title": "EntryAreaMarginsForClassic", - "type": "object", - "additionalProperties": false + "type": "object" }, "EntryAreaMarginsForEngineeringresumes": { + "additionalProperties": false, "description": "This class is a data model for the entry area margins.", "properties": { + "date_and_location_width": { + "default": "4.5 cm", + "description": "The width of the date and location column. The default value is 4.5 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Date and Location Column Width", + "type": "string" + }, "left_and_right": { "default": "0 cm", "description": "The left margin of entry areas. The default value is 0 cm.", @@ -687,18 +668,10 @@ "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Vertical Margin Between Entry Areas", "type": "string" - }, - "date_and_location_width": { - "default": "4.5 cm", - "description": "The width of the date and location column. The default value is 4.5 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Date and Location Column Width", - "type": "string" } }, "title": "EntryAreaMarginsForEngineeringresumes", - "type": "object", - "additionalProperties": false + "type": "object" }, "ExperienceEntry": { "additionalProperties": false, @@ -709,11 +682,6 @@ "title": "Company", "type": "string" }, - "position": { - "description": "The position.", - "title": "Position", - "type": "string" - }, "date": { "default": null, "description": "The date field can be filled in YYYY-MM-DD, YYYY-MM, or YYYY formats or as an arbitrary string like \"Fall 2023\".", @@ -721,51 +689,15 @@ "2020-09-24", "Fall 2023" ], - "title": "Date", "oneOf": [ { "type": "integer" }, { "type": "string" - }, - { - "type": "null" } - ] - }, - "location": { - "default": null, - "description": "The location of the event.", - "examples": [ - "Istanbul, Türkiye" ], - "title": "Location", - "oneOf": [ - { - "type": "string" - } - ] - }, - "start_date": { - "default": null, - "description": "The start date of the event in YYYY-MM-DD, YYYY-MM, or YYYY format.", - "examples": [ - "2020-09-24" - ], - "title": "Start Date", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "\\d{4}-\\d{2}(-\\d{2})?", - "type": "string" - }, - { - "type": "null" - } - ] + "title": "Date" }, "end_date": { "default": null, @@ -774,7 +706,6 @@ "2020-09-24", "present" ], - "title": "End Date", "oneOf": [ { "const": "present", @@ -789,11 +720,9 @@ { "pattern": "\\d{4}-\\d{2}(-\\d{2})?", "type": "string" - }, - { - "type": "null" } - ] + ], + "title": "End Date" }, "highlights": { "default": null, @@ -802,7 +731,6 @@ "Did this.", "Did that." ], - "title": "Highlights", "oneOf": [ { "items": { @@ -810,7 +738,43 @@ }, "type": "array" } - ] + ], + "title": "Highlights" + }, + "location": { + "default": null, + "description": "The location of the event.", + "examples": [ + "Istanbul, Türkiye" + ], + "oneOf": [ + { + "type": "string" + } + ], + "title": "Location" + }, + "position": { + "description": "The position.", + "title": "Position", + "type": "string" + }, + "start_date": { + "default": null, + "description": "The start date of the event in YYYY-MM-DD, YYYY-MM, or YYYY format.", + "examples": [ + "2020-09-24" + ], + "oneOf": [ + { + "type": "integer" + }, + { + "pattern": "\\d{4}-\\d{2}(-\\d{2})?", + "type": "string" + } + ], + "title": "Start Date" } }, "required": [ @@ -821,15 +785,9 @@ "type": "object" }, "HeaderMargins": { + "additionalProperties": false, "description": "This class is a data model for the header margins.", "properties": { - "vertical_between_name_and_connections": { - "default": "0.3 cm", - "description": "The vertical margin between the name of the person and the connections. The default value is 0.3 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Vertical Margin Between the Name and Connections", - "type": "string" - }, "bottom": { "default": "0.3 cm", "description": "The bottom margin of the header, i.e., the vertical margin between the connections and the first section title. The default value is 0.3 cm.", @@ -843,22 +801,22 @@ "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Space Between Connections", "type": "string" - } - }, - "title": "HeaderMargins", - "type": "object", - "additionalProperties": false - }, - "HeaderMarginsForEngineeringresumes": { - "description": "This class is a data model for the header margins.", - "properties": { + }, "vertical_between_name_and_connections": { - "default": "5 pt", - "description": "The vertical margin between the name of the person and the connections. The default value is 5 pt.", + "default": "0.3 cm", + "description": "The vertical margin between the name of the person and the connections. The default value is 0.3 cm.", "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Vertical Margin Between the Name and Connections", "type": "string" - }, + } + }, + "title": "HeaderMargins", + "type": "object" + }, + "HeaderMarginsForEngineeringresumes": { + "additionalProperties": false, + "description": "This class is a data model for the header margins.", + "properties": { "bottom": { "default": "5 pt", "description": "The bottom margin of the header, i.e., the vertical margin between the connections and the first section title. The default value is 5 pt.", @@ -872,22 +830,22 @@ "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Space Between Connections", "type": "string" + }, + "vertical_between_name_and_connections": { + "default": "5 pt", + "description": "The vertical margin between the name of the person and the connections. The default value is 5 pt.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Vertical Margin Between the Name and Connections", + "type": "string" } }, "title": "HeaderMarginsForEngineeringresumes", - "type": "object", - "additionalProperties": false + "type": "object" }, "HighlightsAreaMargins": { + "additionalProperties": false, "description": "This class is a data model for the highlights area margins.", "properties": { - "top": { - "default": "0.10 cm", - "description": "The top margin of highlights areas. The default value is 0.10 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Top Margin", - "type": "string" - }, "left": { "default": "0.4 cm", "description": "The left margin of highlights areas. The default value is 0.4 cm.", @@ -895,6 +853,13 @@ "title": "Left Margin", "type": "string" }, + "top": { + "default": "0.10 cm", + "description": "The top margin of highlights areas. The default value is 0.10 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Top Margin", + "type": "string" + }, "vertical_between_bullet_points": { "default": "0.10 cm", "description": "The vertical margin between bullet points. The default value is 0.10 cm.", @@ -904,19 +869,12 @@ } }, "title": "HighlightsAreaMargins", - "type": "object", - "additionalProperties": false + "type": "object" }, "HighlightsAreaMarginsForEngineeringresumes": { + "additionalProperties": false, "description": "This class is a data model for the highlights area margins.", "properties": { - "top": { - "default": "0.10 cm", - "description": "The top margin of highlights areas. The default value is 0.10 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Top Margin", - "type": "string" - }, "left": { "default": "0 cm", "description": "The left margin of highlights areas. The default value is 0 cm.", @@ -924,6 +882,13 @@ "title": "Left Margin", "type": "string" }, + "top": { + "default": "0.10 cm", + "description": "The top margin of highlights areas. The default value is 0.10 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Top Margin", + "type": "string" + }, "vertical_between_bullet_points": { "default": "0.10 cm", "description": "The vertical margin between bullet points. The default value is 0.10 cm.", @@ -933,73 +898,12 @@ } }, "title": "HighlightsAreaMarginsForEngineeringresumes", - "type": "object", - "additionalProperties": false + "type": "object" }, "LocaleCatalog": { "additionalProperties": false, "description": "This class is the data model of the locale catalog. The values of each field\nupdates the `locale_catalog` dictionary.", "properties": { - "month": { - "default": "month", - "description": "Translation of the word \"month\" in the locale.", - "title": "Translation of \"Month\"", - "oneOf": [ - { - "type": "string" - } - ] - }, - "months": { - "default": "months", - "description": "Translation of the word \"months\" in the locale.", - "title": "Translation of \"Months\"", - "oneOf": [ - { - "type": "string" - } - ] - }, - "year": { - "default": "year", - "description": "Translation of the word \"year\" in the locale.", - "title": "Translation of \"Year\"", - "oneOf": [ - { - "type": "string" - } - ] - }, - "years": { - "default": "years", - "description": "Translation of the word \"years\" in the locale.", - "title": "Translation of \"Years\"", - "oneOf": [ - { - "type": "string" - } - ] - }, - "present": { - "default": "present", - "description": "Translation of the word \"present\" in the locale.", - "title": "Translation of \"Present\"", - "oneOf": [ - { - "type": "string" - } - ] - }, - "to": { - "default": "to", - "description": "Translation of the word \"to\" in the locale.", - "title": "Translation of \"To\"", - "oneOf": [ - { - "type": "string" - } - ] - }, "abbreviations_for_months": { "default": [ "Jan.", @@ -1016,7 +920,6 @@ "Dec." ], "description": "Abbreviations of the months in the locale.", - "title": "Abbreviations of Months", "oneOf": [ { "items": { @@ -1026,43 +929,77 @@ "minItems": 12, "type": "array" } - ] + ], + "title": "Abbreviations of Months" + }, + "month": { + "default": "month", + "description": "Translation of the word \"month\" in the locale.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Translation of \"Month\"" + }, + "months": { + "default": "months", + "description": "Translation of the word \"months\" in the locale.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Translation of \"Months\"" + }, + "present": { + "default": "present", + "description": "Translation of the word \"present\" in the locale.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Translation of \"Present\"" + }, + "to": { + "default": "to", + "description": "Translation of the word \"to\" in the locale.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Translation of \"To\"" + }, + "year": { + "default": "year", + "description": "Translation of the word \"year\" in the locale.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Translation of \"Year\"" + }, + "years": { + "default": "years", + "description": "Translation of the word \"years\" in the locale.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Translation of \"Years\"" } }, "title": "LocaleCatalog", "type": "object" }, "Margins": { + "additionalProperties": false, "description": "This class is a data model for the margins.", "properties": { - "page": { - "allOf": [ - { - "$ref": "#/$defs/PageMargins" - } - ], - "default": { - "top": "2 cm", - "bottom": "2 cm", - "left": "2 cm", - "right": "2 cm" - }, - "description": "Page margins.", - "title": "Page Margins" - }, - "section_title": { - "allOf": [ - { - "$ref": "#/$defs/SectionTitleMargins" - } - ], - "default": { - "top": "0.3 cm", - "bottom": "0.2 cm" - }, - "description": "Section title margins.", - "title": "Section Title Margins" - }, "entry_area": { "allOf": [ { @@ -1070,27 +1007,13 @@ } ], "default": { + "date_and_location_width": "4.5 cm", "left_and_right": "0.2 cm", - "vertical_between": "0.2 cm", - "date_and_location_width": "4.5 cm" + "vertical_between": "0.2 cm" }, "description": "Entry area margins.", "title": "Entry Area Margins" }, - "highlights_area": { - "allOf": [ - { - "$ref": "#/$defs/HighlightsAreaMargins" - } - ], - "default": { - "top": "0.10 cm", - "left": "0.4 cm", - "vertical_between_bullet_points": "0.10 cm" - }, - "description": "Highlights area margins.", - "title": "Highlights Area Margins" - }, "header": { "allOf": [ { @@ -1098,21 +1021,27 @@ } ], "default": { - "vertical_between_name_and_connections": "0.3 cm", "bottom": "0.3 cm", - "horizontal_between_connections": "0.5 cm" + "horizontal_between_connections": "0.5 cm", + "vertical_between_name_and_connections": "0.3 cm" }, "description": "Header margins.", "title": "Header Margins" - } - }, - "title": "Margins", - "type": "object", - "additionalProperties": false - }, - "MarginsForClassic": { - "description": "This class is a data model for the margins.", - "properties": { + }, + "highlights_area": { + "allOf": [ + { + "$ref": "#/$defs/HighlightsAreaMargins" + } + ], + "default": { + "left": "0.4 cm", + "top": "0.10 cm", + "vertical_between_bullet_points": "0.10 cm" + }, + "description": "Highlights area margins.", + "title": "Highlights Area Margins" + }, "page": { "allOf": [ { @@ -1120,10 +1049,10 @@ } ], "default": { - "top": "2 cm", "bottom": "2 cm", "left": "2 cm", - "right": "2 cm" + "right": "2 cm", + "top": "2 cm" }, "description": "Page margins.", "title": "Page Margins" @@ -1135,12 +1064,20 @@ } ], "default": { - "top": "0.3 cm", - "bottom": "0.2 cm" + "bottom": "0.2 cm", + "top": "0.3 cm" }, "description": "Section title margins.", "title": "Section Title Margins" - }, + } + }, + "title": "Margins", + "type": "object" + }, + "MarginsForClassic": { + "additionalProperties": false, + "description": "This class is a data model for the margins.", + "properties": { "entry_area": { "allOf": [ { @@ -1148,28 +1085,14 @@ } ], "default": { - "left_and_right": "0.2 cm", - "vertical_between": "0.2 cm", "date_and_location_width": "4.5 cm", - "education_degree_width": "1 cm" + "education_degree_width": "1 cm", + "left_and_right": "0.2 cm", + "vertical_between": "0.2 cm" }, "description": "Entry area margins.", "title": "Entry Area Margins" }, - "highlights_area": { - "allOf": [ - { - "$ref": "#/$defs/HighlightsAreaMargins" - } - ], - "default": { - "top": "0.10 cm", - "left": "0.4 cm", - "vertical_between_bullet_points": "0.10 cm" - }, - "description": "Highlights area margins.", - "title": "Highlights Area Margins" - }, "header": { "allOf": [ { @@ -1177,21 +1100,27 @@ } ], "default": { - "vertical_between_name_and_connections": "0.3 cm", "bottom": "0.3 cm", - "horizontal_between_connections": "0.5 cm" + "horizontal_between_connections": "0.5 cm", + "vertical_between_name_and_connections": "0.3 cm" }, "description": "Header margins.", "title": "Header Margins" - } - }, - "title": "MarginsForClassic", - "type": "object", - "additionalProperties": false - }, - "MarginsForEngineeringresumes": { - "description": "This class is a data model for the margins.", - "properties": { + }, + "highlights_area": { + "allOf": [ + { + "$ref": "#/$defs/HighlightsAreaMargins" + } + ], + "default": { + "left": "0.4 cm", + "top": "0.10 cm", + "vertical_between_bullet_points": "0.10 cm" + }, + "description": "Highlights area margins.", + "title": "Highlights Area Margins" + }, "page": { "allOf": [ { @@ -1199,10 +1128,10 @@ } ], "default": { - "top": "2 cm", "bottom": "2 cm", "left": "2 cm", - "right": "2 cm" + "right": "2 cm", + "top": "2 cm" }, "description": "Page margins.", "title": "Page Margins" @@ -1214,12 +1143,20 @@ } ], "default": { - "top": "0.3 cm", - "bottom": "0.2 cm" + "bottom": "0.2 cm", + "top": "0.3 cm" }, "description": "Section title margins.", "title": "Section Title Margins" - }, + } + }, + "title": "MarginsForClassic", + "type": "object" + }, + "MarginsForEngineeringresumes": { + "additionalProperties": false, + "description": "This class is a data model for the margins.", + "properties": { "entry_area": { "allOf": [ { @@ -1227,27 +1164,13 @@ } ], "default": { + "date_and_location_width": "4.5 cm", "left_and_right": "0 cm", - "vertical_between": "0.2 cm", - "date_and_location_width": "4.5 cm" + "vertical_between": "0.2 cm" }, "description": "Entry area margins.", "title": "Entry Area Margins" }, - "highlights_area": { - "allOf": [ - { - "$ref": "#/$defs/HighlightsAreaMarginsForEngineeringresumes" - } - ], - "default": { - "top": "0.10 cm", - "left": "0 cm", - "vertical_between_bullet_points": "0.10 cm" - }, - "description": "Highlights area margins.", - "title": "Highlights Area Margins" - }, "header": { "allOf": [ { @@ -1255,60 +1178,63 @@ } ], "default": { - "vertical_between_name_and_connections": "5 pt", "bottom": "5 pt", - "horizontal_between_connections": "10 pt" + "horizontal_between_connections": "10 pt", + "vertical_between_name_and_connections": "5 pt" }, "description": "Header margins.", "title": "Header Margins" + }, + "highlights_area": { + "allOf": [ + { + "$ref": "#/$defs/HighlightsAreaMarginsForEngineeringresumes" + } + ], + "default": { + "left": "0 cm", + "top": "0.10 cm", + "vertical_between_bullet_points": "0.10 cm" + }, + "description": "Highlights area margins.", + "title": "Highlights Area Margins" + }, + "page": { + "allOf": [ + { + "$ref": "#/$defs/PageMargins" + } + ], + "default": { + "bottom": "2 cm", + "left": "2 cm", + "right": "2 cm", + "top": "2 cm" + }, + "description": "Page margins.", + "title": "Page Margins" + }, + "section_title": { + "allOf": [ + { + "$ref": "#/$defs/SectionTitleMargins" + } + ], + "default": { + "bottom": "0.2 cm", + "top": "0.3 cm" + }, + "description": "Section title margins.", + "title": "Section Title Margins" } }, "title": "MarginsForEngineeringresumes", - "type": "object", - "additionalProperties": false + "type": "object" }, "ModerncvThemeOptions": { "additionalProperties": false, "description": "This class is the data model of the theme options for the `moderncv` theme.", "properties": { - "theme": { - "const": "moderncv", - "enum": [ - "moderncv" - ], - "title": "Theme", - "type": "string" - }, - "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": "letterpaper", - "description": "The page size of the CV. The default value is \"letterpaper\".", - "enum": [ - "a4paper", - "letterpaper" - ], - "examples": [ - "a4paper", - "letterpaper" - ], - "title": "Page Size", - "type": "string" - }, "color": { "default": "blue", "description": "The primary color of the CV. The default value is \"blue\".", @@ -1322,7 +1248,6 @@ "purple", "red" ], - "title": "Primary Color", "oneOf": [ { "const": "blue", @@ -1380,7 +1305,14 @@ ], "type": "string" } - ] + ], + "title": "Primary Color" + }, + "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" }, "date_width": { "default": "3.8 cm", @@ -1389,11 +1321,41 @@ "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" + "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" + }, + "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": "letterpaper", + "description": "The page size of the CV. The default value is \"letterpaper\".", + "enum": [ + "a4paper", + "letterpaper" + ], + "examples": [ + "a4paper", + "letterpaper" + ], + "title": "Page Size", + "type": "string" }, "show_only_years": { "default": false, @@ -1401,11 +1363,13 @@ "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" + "theme": { + "const": "moderncv", + "enum": [ + "moderncv" + ], + "title": "Theme", + "type": "string" } }, "required": [ @@ -1418,11 +1382,6 @@ "additionalProperties": false, "description": "This class is the data model of `NormalEntry`.", "properties": { - "name": { - "description": "The name of the NormalEntry.", - "title": "Name", - "type": "string" - }, "date": { "default": null, "description": "The date field can be filled in YYYY-MM-DD, YYYY-MM, or YYYY formats or as an arbitrary string like \"Fall 2023\".", @@ -1430,51 +1389,15 @@ "2020-09-24", "Fall 2023" ], - "title": "Date", "oneOf": [ { "type": "integer" }, { "type": "string" - }, - { - "type": "null" } - ] - }, - "location": { - "default": null, - "description": "The location of the event.", - "examples": [ - "Istanbul, Türkiye" ], - "title": "Location", - "oneOf": [ - { - "type": "string" - } - ] - }, - "start_date": { - "default": null, - "description": "The start date of the event in YYYY-MM-DD, YYYY-MM, or YYYY format.", - "examples": [ - "2020-09-24" - ], - "title": "Start Date", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "\\d{4}-\\d{2}(-\\d{2})?", - "type": "string" - }, - { - "type": "null" - } - ] + "title": "Date" }, "end_date": { "default": null, @@ -1483,7 +1406,6 @@ "2020-09-24", "present" ], - "title": "End Date", "oneOf": [ { "const": "present", @@ -1498,11 +1420,9 @@ { "pattern": "\\d{4}-\\d{2}(-\\d{2})?", "type": "string" - }, - { - "type": "null" } - ] + ], + "title": "End Date" }, "highlights": { "default": null, @@ -1511,7 +1431,6 @@ "Did this.", "Did that." ], - "title": "Highlights", "oneOf": [ { "items": { @@ -1519,7 +1438,43 @@ }, "type": "array" } - ] + ], + "title": "Highlights" + }, + "location": { + "default": null, + "description": "The location of the event.", + "examples": [ + "Istanbul, Türkiye" + ], + "oneOf": [ + { + "type": "string" + } + ], + "title": "Location" + }, + "name": { + "description": "The name of the NormalEntry.", + "title": "Name", + "type": "string" + }, + "start_date": { + "default": null, + "description": "The start date of the event in YYYY-MM-DD, YYYY-MM, or YYYY format.", + "examples": [ + "2020-09-24" + ], + "oneOf": [ + { + "type": "integer" + }, + { + "pattern": "\\d{4}-\\d{2}(-\\d{2})?", + "type": "string" + } + ], + "title": "Start Date" } }, "required": [ @@ -1532,15 +1487,15 @@ "additionalProperties": false, "description": "This class is the data model of `OneLineEntry`.", "properties": { - "label": { - "description": "The label of the OneLineEntry.", - "title": "Name", - "type": "string" - }, "details": { "description": "The details of the OneLineEntry.", "title": "Details", "type": "string" + }, + "label": { + "description": "The label of the OneLineEntry.", + "title": "Name", + "type": "string" } }, "required": [ @@ -1551,15 +1506,9 @@ "type": "object" }, "PageMargins": { + "additionalProperties": false, "description": "This class is a data model for the page margins.", "properties": { - "top": { - "default": "2 cm", - "description": "The top margin of the page with units. The default value is 2 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Top Margin", - "type": "string" - }, "bottom": { "default": "2 cm", "description": "The bottom margin of the page with units. The default value is 2 cm.", @@ -1580,21 +1529,22 @@ "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Right Margin", "type": "string" + }, + "top": { + "default": "2 cm", + "description": "The top margin of the page with units. The default value is 2 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Top Margin", + "type": "string" } }, "title": "PageMargins", - "type": "object", - "additionalProperties": false + "type": "object" }, "PublicationEntry": { "additionalProperties": false, "description": "This class is the data model of `PublicationEntry`.", "properties": { - "title": { - "description": "The title of the publication.", - "title": "Title of the Publication", - "type": "string" - }, "authors": { "description": "The authors of the publication in order as a list of strings.", "items": { @@ -1603,29 +1553,6 @@ "title": "Authors", "type": "array" }, - "doi": { - "default": null, - "description": "The DOI of the publication.", - "examples": [ - "10.48550/arXiv.2310.03138" - ], - "title": "DOI", - "oneOf": [ - { - "type": "string" - } - ] - }, - "journal": { - "default": null, - "description": "The journal or the conference name.", - "title": "Journal", - "oneOf": [ - { - "type": "string" - } - ] - }, "date": { "default": null, "description": "The date field can be filled in YYYY-MM-DD, YYYY-MM, or YYYY formats or as an arbitrary string like \"Fall 2023\".", @@ -1633,18 +1560,43 @@ "2020-09-24", "Fall 2023" ], - "title": "Date", "oneOf": [ { "type": "integer" }, { "type": "string" - }, - { - "type": "null" } - ] + ], + "title": "Date" + }, + "doi": { + "default": null, + "description": "The DOI of the publication.", + "examples": [ + "10.48550/arXiv.2310.03138" + ], + "oneOf": [ + { + "type": "string" + } + ], + "title": "DOI" + }, + "journal": { + "default": null, + "description": "The journal or the conference name.", + "oneOf": [ + { + "type": "string" + } + ], + "title": "Journal" + }, + "title": { + "description": "The title of the publication.", + "title": "Title of the Publication", + "type": "string" } }, "required": [ @@ -1658,14 +1610,37 @@ "additionalProperties": false, "description": "This class is the data model of the theme options for the `sb2nov` theme.", "properties": { - "theme": { - "const": "sb2nov", - "enum": [ - "sb2nov" + "color": { + "default": "rgb(0,79,144)", + "description": "The primary color of the theme. \nThe color can be specified either with their name (https://www.w3.org/TR/SVG11/types.html#ColorKeywords), hexadecimal value, RGB value, or HSL value. The default value is rgb(0,79,144).", + "examples": [ + "Black", + "7fffd4", + "rgb(0,79,144)", + "hsl(270, 60%, 70%)" ], - "title": "Theme", + "format": "color", + "title": "Primary Color", "type": "string" }, + "disable_external_link_icons": { + "default": false, + "description": "If this option is set to true, then the external link icons will not be shown next to the links. The default value is false.", + "title": "Disable External Link Icons", + "type": "boolean" + }, + "disable_last_updated_date": { + "default": false, + "description": "If this option is set to true, then the last updated date will not be shown in the header. The default value is false.", + "title": "Disable Last Updated Date", + "type": "boolean" + }, + "disable_page_numbering": { + "default": false, + "description": "If this option is set to true, then the page numbering will not be shown. The default value is false.", + "title": "Disable Page Numbering", + "type": "boolean" + }, "font": { "default": "Latin Modern Serif", "description": "The font family of the CV. The default value is Latin Modern Serif.", @@ -1690,6 +1665,61 @@ "title": "Font Size", "type": "string" }, + "header_font_size": { + "default": "24 pt", + "description": "The font size of the header (the name of the person). The default value is 24 pt. Unfortunately, sb2nov does not support font sizes bigger than 24 pt.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Header Font Size", + "type": "string" + }, + "last_updated_date_style": { + "default": "Last updated in TODAY", + "description": "The style of the last updated date. The following placeholder can be used:\n- TODAY: Today's month and year (April 2024)\nThe default value is Last updated in TODAY.", + "title": "Last Updated Date Style", + "type": "string" + }, + "margins": { + "allOf": [ + { + "$ref": "#/$defs/Margins" + } + ], + "default": { + "entry_area": { + "date_and_location_width": "4.5 cm", + "left_and_right": "0.2 cm", + "vertical_between": "0.2 cm" + }, + "header": { + "bottom": "0.3 cm", + "horizontal_between_connections": "0.5 cm", + "vertical_between_name_and_connections": "0.3 cm" + }, + "highlights_area": { + "left": "0.4 cm", + "top": "0.10 cm", + "vertical_between_bullet_points": "0.10 cm" + }, + "page": { + "bottom": "2 cm", + "left": "2 cm", + "right": "2 cm", + "top": "2 cm" + }, + "section_title": { + "bottom": "0.2 cm", + "top": "0.3 cm" + } + }, + "description": "Page, section title, entry field, and highlights field margins.", + "title": "Margins" + }, + "page_numbering_style": { + "default": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", + "description": "The style of the page numbering. The following placeholders can be used:\n- NAME: The name of the person\n- PAGE_NUMBER: The current page number\n- TOTAL_PAGES: The total number of pages\nThe default value is NAME - Page PAGE_NUMBER of TOTAL_PAGES.", + "title": "Page Numbering Style", + "type": "string" + }, "page_size": { "default": "letterpaper", "description": "The page size of the CV. It can be a4paper or letterpaper. The default value is letterpaper.", @@ -1700,56 +1730,6 @@ "title": "Page Size", "type": "string" }, - "color": { - "default": "rgb(0,79,144)", - "description": "The primary color of the theme. \nThe color can be specified either with their name (https://www.w3.org/TR/SVG11/types.html#ColorKeywords), hexadecimal value, RGB value, or HSL value. The default value is rgb(0,79,144).", - "examples": [ - "Black", - "7fffd4", - "rgb(0,79,144)", - "hsl(270, 60%, 70%)" - ], - "format": "color", - "title": "Primary Color", - "type": "string" - }, - "disable_external_link_icons": { - "default": false, - "description": "If this option is set to true, then the external link icons will not be shown next to the links. The default value is false.", - "title": "Disable External Link Icons", - "type": "boolean" - }, - "disable_page_numbering": { - "default": false, - "description": "If this option is set to true, then the page numbering will not be shown. The default value is false.", - "title": "Disable Page Numbering", - "type": "boolean" - }, - "page_numbering_style": { - "default": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", - "description": "The style of the page numbering. The following placeholders can be used:\n- NAME: The name of the person\n- PAGE_NUMBER: The current page number\n- TOTAL_PAGES: The total number of pages\nThe default value is NAME - Page PAGE_NUMBER of TOTAL_PAGES.", - "title": "Page Numbering Style", - "type": "string" - }, - "disable_last_updated_date": { - "default": false, - "description": "If this option is set to true, then the last updated date will not be shown in the header. The default value is false.", - "title": "Disable Last Updated Date", - "type": "boolean" - }, - "last_updated_date_style": { - "default": "Last updated in TODAY", - "description": "The style of the last updated date. The following placeholder can be used:\n- TODAY: Today's month and year (April 2024)\nThe default value is Last updated in TODAY.", - "title": "Last Updated Date Style", - "type": "string" - }, - "header_font_size": { - "default": "24 pt", - "description": "The font size of the header (the name of the person). The default value is 24 pt. Unfortunately, sb2nov does not support font sizes bigger than 24 pt.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Header Font Size", - "type": "string" - }, "text_alignment": { "default": "justified", "description": "The alignment of the text. The default value is justified.", @@ -1761,41 +1741,13 @@ "title": "Text Alignment", "type": "string" }, - "margins": { - "allOf": [ - { - "$ref": "#/$defs/Margins" - } + "theme": { + "const": "sb2nov", + "enum": [ + "sb2nov" ], - "default": { - "page": { - "bottom": "2 cm", - "left": "2 cm", - "right": "2 cm", - "top": "2 cm" - }, - "section_title": { - "bottom": "0.2 cm", - "top": "0.3 cm" - }, - "entry_area": { - "date_and_location_width": "4.5 cm", - "left_and_right": "0.2 cm", - "vertical_between": "0.2 cm" - }, - "highlights_area": { - "left": "0.4 cm", - "top": "0.10 cm", - "vertical_between_bullet_points": "0.10 cm" - }, - "header": { - "bottom": "0.3 cm", - "horizontal_between_connections": "0.5 cm", - "vertical_between_name_and_connections": "0.3 cm" - } - }, - "description": "Page, section title, entry field, and highlights field margins.", - "title": "Margins" + "title": "Theme", + "type": "string" } }, "required": [ @@ -1805,26 +1757,26 @@ "type": "object" }, "SectionTitleMargins": { + "additionalProperties": false, "description": "This class is a data model for the section title margins.", "properties": { - "top": { - "default": "0.3 cm", - "description": "The top margin of section titles. The default value is 0.3 cm.", - "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", - "title": "Top Margin", - "type": "string" - }, "bottom": { "default": "0.2 cm", "description": "The bottom margin of section titles. The default value is 0.3 cm.", "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", "title": "Bottom Margin", "type": "string" + }, + "top": { + "default": "0.3 cm", + "description": "The top margin of section titles. The default value is 0.3 cm.", + "pattern": "\\d+\\.?\\d* *(cm|in|pt|mm|ex|em)", + "title": "Top Margin", + "type": "string" } }, "title": "SectionTitleMargins", - "type": "object", - "additionalProperties": false + "type": "object" }, "SocialNetwork": { "additionalProperties": false, @@ -1861,6 +1813,8 @@ "type": "object" } }, + "$id": "https://raw.githubusercontent.com/sinaatalay/rendercv/main/schema.json", + "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "description": "RenderCV data model.", "properties": { @@ -1875,18 +1829,14 @@ }, "design": { "default": { - "theme": "classic", - "font": "Source Sans 3", - "font_size": "10pt", - "page_size": "letterpaper", "color": "#004f90", "disable_external_link_icons": false, - "disable_page_numbering": false, - "page_numbering_style": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", "disable_last_updated_date": false, - "last_updated_date_style": "Last updated in TODAY", + "disable_page_numbering": false, + "font": "Source Sans 3", + "font_size": "10pt", "header_font_size": "30 pt", - "text_alignment": "justified", + "last_updated_date_style": "Last updated in TODAY", "margins": { "entry_area": { "date_and_location_width": "4.5 cm", @@ -1915,7 +1865,11 @@ "top": "0.3 cm" } }, - "show_timespan_in": [] + "page_numbering_style": "NAME - Page PAGE_NUMBER of TOTAL_PAGES", + "page_size": "letterpaper", + "show_timespan_in": [], + "text_alignment": "justified", + "theme": "classic" }, "description": "The design information of the CV. The default is the classic theme.", "discriminator": { @@ -1961,7 +1915,5 @@ "cv" ], "title": "RenderCV", - "type": "object", - "$id": "https://raw.githubusercontent.com/sinaatalay/rendercv/main/schema.json", - "$schema": "http://json-schema.org/draft-07/schema#" + "type": "object" } \ No newline at end of file