YAMLResume

Tipos

Este documento descreve os tipos de TypeScript que definem a estrutura de um currículo no YAMLResume. Como projeto TypeScript, o YAMLResume emprega tipagem estática para garantir a consistência dos dados. Aqui é apresentada uma visão geral das estruturas núcleo para representar a informação do currículo, incluindo dados pessoais, educação, experiência, competências e muito mais.

Podes consultar types/index.ts para a fonte de verdade.

Compreender estes tipos é essencial para contribuir ou estender a funcionalidade do YAMLResume.

Este documento serve como referência definitiva para criar um YAMLResume válido, esclarecendo a diferença entre campos opcionais e obrigatórios. Para compilar com sucesso, um currículo mínimo deve incluir:

  • content.basics.name
  • education[number].area
  • education[number].degree
  • education[number].institution
  • education[number].startDate

Exemplo mínimo viável:

content:
  basics:
    name: Xiao Hanyu
  education:
    - area: Computer Science and Technology
      degree: Bachelor
      institution: Zhejiang University
      startDate: Sep, 2007

Resume

Define a estrutura global do currículo (conteúdo e layout).

PropTipoObrigatórioDescrição
contentContentEstrutura do conteúdo completo do currículo.
layouts?Layouts⬜️Configuração geral do layout.
locale?Locale⬜️Configuração geral de localização.

Diagrama de alto nível:

Content

Estrutura do conteúdo completo do currículo.

PropTipoObrigatórioDescrição
basicsBasicsItemInformação pessoal e de contacto principal.
educationEducationItem[]Conjunto de experiências educativas.
awards?AwardItem[]⬜️Conjunto de prémios e reconhecimentos.
certificates?CertificateItem[]⬜️Conjunto de certificações e credenciais.
interests?InterestItem[]⬜️Interesses, hobbies ou atividades pessoais.
languages?LanguageItem[]⬜️Competências linguísticas.
location?LocationItem⬜️Informação de localização.
projects?ProjectItem[]⬜️Projetos.
profiles?ProfileItem[]⬜️Perfis online.
publications?PublicationItem[]⬜️Publicações.
references?ReferenceItem[]⬜️Referências.
skills?SkillItem[]⬜️Competências.
volunteer?VolunteerItem[]⬜️Experiências de voluntariado.
work?WorkItem[]⬜️Experiências laborais e historial de emprego.

AwardItem

Representa um prémio ou honra recebida.

PropTipoObr.Descrição
awarderstringOrganização que atribui o prémio.
titlestringNome do prémio.
date?string⬜️Data (ex: "2020", "Oct 2020").
summary?string⬜️Breve descrição.

BasicsItem

Informação pessoal principal.

PropTipoObr.Descrição
namestringNome completo.
email?string⬜️Email.
headline?string⬜️Título profissional (ex: "Software Engineer").
phone?string⬜️Telefone.
summary?string⬜️Resumo profissional.
url?string⬜️Site ou portfólio.

CertificateItem

PropTipoObr.Descrição
issuerstringEntidade emissora.
namestringNome do certificado.
date?string⬜️Data de obtenção.
url?string⬜️Hiperligação de verificação.

EducationItem

PropTipoObr.Descrição
areastringÁrea de estudo.
degreeDegreeTipo de grau.
institutionstringInstituição.
startDatestringData de início.
courses?string[]⬜️Disciplinas.
endDate?string⬜️Data de fim (vazio implica "Atual").
summary?string⬜️Descrição/conquistas.
score?string⬜️Classificação/GPA.
url?string⬜️Hiperligação relacionada.

InterestItem

PropTipoObr.Descrição
namestringNome do interesse.
keywords?string[]⬜️Palavras-chave relacionadas.

LanguageItem

PropTipoObr.Descrição
fluencyFluencyNível de competência.
languageLanguageIdioma.
keywords?string[]⬜️Palavras-chave relacionadas.

LocationItem

PropTipoObr.Descrição
citystringCidade.
address?string⬜️Morada.
country?Country⬜️País.
postalCode?string⬜️Código postal.
region?string⬜️Região/província/estado.

ProfileItem

PropTipoObr.Descrição
networkNetworkRede ou plataforma.
usernamestringUtilizador.
url?string⬜️URL do perfil.

ProjectItem

PropTipoObr.Descrição
namestringNome.
startDatestringInício.
summarystringConquistas/detalhes.
description?string⬜️Descrição.
endDate?string⬜️Fim.
keywords?string[]⬜️Tecnologias/palavras-chave.
url?string⬜️Hiperligação (repo/demo).

PublicationItem

PropTipoObr.Descrição
namestringTítulo da publicação.
publisherstringEditora.
releaseDate?string⬜️Data de publicação.
summary?string⬜️Resumo/abstract.
url?string⬜️Hiperligação (DOI/outro).

ReferenceItem

PropTipoObr.Descrição
namestringNome da referência.
summarystringBreve nota.
email?string⬜️Email.
phone?string⬜️Telefone.
relationship?string⬜️Relação (ex: "Gestor").

SkillItem

PropTipoObr.Descrição
levelLevelNível da competência.
namestringNome da competência.
keywords?string[]⬜️Palavras-chave relacionadas.

VolunteerItem

PropTipoObr.Descrição
organizationstringOrganização.
positionstringFunção/posição.
startDatestringInício.
summarystringResponsabilidades/conquistas.
endDate?string⬜️Fim.
url?string⬜️Hiperligação relacionada.

WorkItem

PropTipoObr.Descrição
namestringEmpresa.
positionstringCargo.
startDatestringInício.
summarystringResumo de responsabilidades/conquistas.
endDate?string⬜️Fim.
keywords?string[]⬜️Palavras-chave/tecnologias.
url?string⬜️Hiperligação relacionada.

Locale

Define a configuração de localização para internacionalização.

PropTipoObrigatórioDescrição
language?LocaleLanguage⬜️Idioma do currículo.

Layouts

Array de configurações de layout suportando múltiplos formatos de saída.

PropTipoObrigatórioDescrição
layouts[]LatexLayout | MarkdownLayout⬜️Configurações de layout.

Tipos de Layout Comuns

Margins

Define as margens de página para o documento.

PropTipoObrigatórioDescrição
top?string⬜️Margem superior.
bottom?string⬜️Margem inferior.
left?string⬜️Margem esquerda.
right?string⬜️Margem direita.
Sections

Define aliases de secções para personalizar nomes.

PropTipoObrigatórioDescrição
aliases?Record<SectionID, string>⬜️Alias personalizados para nomes de secções.
order?OrderableSectionID[]⬜️Ordem personalizada para secções na saída final.

HtmlLayout

Configuração de layout HTML.

PropTipoObrigatórioDescrição
engine'html'Motor para gerar o currículo.
advanced?HtmlAdvanced⬜️Configuração avançada do layout.
sections?Sections⬜️Configuração de secções.
template?HtmlTemplate⬜️Modelo selecionado.
typography?HtmlTypography⬜️Configuração tipográfica.
HtmlAdvanced

Define opções de configuração avançada para HTML.

PropTipoObrigatórioDescrição
showIcons?boolean⬜️Indica se devem ser mostrados ícones para hiperligações e perfis.
title?string⬜️Título personalizado para o documento HTML.
footer?string⬜️Rodapé personalizado para o documento HTML.
description?string⬜️Meta descrição para o documento HTML.
keywords?string⬜️Meta palavras-chave para o documento HTML.
HtmlTypography

Define opções tipográficas para formato de documento HTML.

PropTipoObrigatórioDescrição
fontFamily?string⬜️Uma lista de famílias de fontes separada por vírgulas.
fontSize?HtmlFontSize⬜️Tamanho base de fonte para o documento.

LatexLayout

Configuração de layout LaTeX.

PropTipoObrigatórioDescrição
advanced?LatexAdvanced⬜️Configuração avançada.
engine'latex'Motor para gerar o currículo.
page?LatexPage⬜️Configuração ao nível de página.
sections?Sections⬜️Configuração de secções.
template?LatexTemplate⬜️Modelo selecionado.
typography?LatexTypography⬜️Configuração tipográfica.
LatexAdvanced

Define opções de configuração avançada para LaTeX.

PropTipoObrigatórioDescrição
fontspec?{ numbers?: LatexFontspecNumbers }⬜️Configuração do pacote fontspec.
showIcons?boolean⬜️Indica se devem ser mostrados ícones para hiperligações e perfis.
LatexPage

Define opções ao nível de página para LaTeX.

PropTipoObrigatórioDescrição
margins?Margins⬜️Margens de página.
paperSize?PaperSize⬜️Define o tamanho de papel.
showPageNumbers?boolean⬜️Mostrar números de página.
LatexTypography

Define opções tipográficas para LaTeX.

PropTipoObrigatórioDescrição
fontSize?LatexFontSize⬜️Tamanho base de fonte.
fontFamily?string⬜️Uma lista de famílias de fontes separada por vírgulas.
links?{ underline?: boolean }⬜️Estilo de hiperligações.

MarkdownLayout

Configuração de layout Markdown.

PropTipoObrigatórioDescrição
engine'markdown'Motor para gerar o currículo.
sections?Sections⬜️Configuração de secções.

Tipos de Enumeração

Enums de Conteúdo

Country

Tipo união que inclui todos os possíveis países e regiões do mundo.

Degree

Tipo união que inclui todos os possíveis graus académicos.

  • Associate
  • Bachelor
  • Diploma
  • Doctor
  • High School
  • Master
  • Middle School

Fluency

Tipo união que inclui todos os possíveis níveis de competência linguística.

  • Elementary Proficiency
  • Full Professional Proficiency
  • Limited Working Proficiency
  • Minimum Professional Proficiency
  • Native or Bilingual Proficiency

Language

Tipo união que inclui todos os idiomas suportados.

Level

Tipo união que inclui todos os possíveis níveis de domínio de competências.

  • Advanced
  • Beginner
  • Expert
  • Intermediate
  • Master
  • Novice

Network

Tipo união que inclui todas as possíveis opções de redes sociais.

Enums de Layout

HtmlFontSize

Tipo união de opções de tamanho de fonte HTML.

O motor HTML suporta tamanhos de 14px a 20px:

  • 14px, 15px, 16px (por defeito), 17px, 18px, 19px, 20px

HtmlTemplate

Tipo união de opções de modelo HTML.

Ver também: templates

  • calm

LatexFontSize

Tipo união que inclui todas as possíveis opções de tamanho de fonte LaTeX.

Por agora apenas são suportadas 3 opções:

  • 10pt - tamanho de fonte de 10pt (por defeito)
  • 11pt - tamanho de fonte de 11pt
  • 12pt - tamanho de fonte de 12pt

LatexFontspecNumbers

Tipo união que inclui todas as possíveis opções de números de fontspec de LaTeX.

  • Auto - permite que o estilo seja determinado automaticamente segundo o LocaleLanguage selecionado (por defeito)
  • Lining - cifras lining padrão (por defeito para idiomas CJK)
  • OldStyle - cifras old style com alturas variáveis (por defeito para idiomas latinos)

LatexTemplate

Tipo união que inclui todas as possíveis opções de modelo LaTeX.

Ver também: templates

  • moderncv-banking
  • moderncv-casual
  • moderncv-classic

PaperSize

Tipo união que inclui todas as possíveis opções de tamanho de papel LaTeX.

  • a4 (por defeito)
  • letter

Enums de Localização

LocaleLanguage

Tipo união que inclui todos os possíveis códigos de língua local.

Ver também: multi-languages

  • en
  • es
  • zh-hans
  • zh-hant-hk
  • zh-hant-tw
Edit on GitHub

Last updated on