⚠️ Portosaur & This docs is Work In Progress!
Skip to content

Config Reference

site

The site block contains global settings for your site identity and SEO. This information is used to generate meta tags, site titles, and social sharing previews.

KeyTypeDefaultDescription
social_cardstr(default img)Preview image used when sharing your site on social media.
urlstr"auto"Canonical URL. Use auto for automatic CI/CD detection.
pathstr"auto"Base path for sub-directory deployments.
edit_urlstrnullBase URL for "Edit this page" links (e.g., GitHub repo tree/main link).
on_broken_linksstr"throw"Behavior when a link is broken
Options: throw, warn, ignore.
on_broken_anchorsstr"throw"Behavior when a link anchor (#) is missing.
Options: throw, warn, ignore
titlestr{​{home_page.hero.title}​}The site name (tab title/headers).
taglinestr{​{home_page.hero.desc}​}A brief desc used for SEO meta tags.
faviconstr(default icon)Path to your site's favicon.
buildblocksee belowBuild settings.
rssblocksee belowRSS feed generation
robots_txtblocksee belowrobots.txt generation.
blog.dirstr"blog"Directory for blog documents. Relative to project root.
blog.routestr"blog"Custom base route/URL path for blog pages.
notes.dirstr"notes"Directory for notes documents. Relative to project root.
notes.routestr"notes"Custom base route/URL path for notes pages.
notes.topic_listbooltrueAutomatically append a list of child sub-topics to index/README pages.
head_tagslist[]Custom HTML tags to inject into <head> (see Advanced section).
markdownblocksee belowMarkdown renderer settings.

site.build

KeyTypeDefaultDescription
output_dirstr"build"Custom directory name to output the built static site.

site.rss

KeyTypeDefaultDescription
enablebooltrueToggle RSS feed generation for the blog.
copyrightstr(dynamic)Custom copyright string for the feed.
descstr{​{site.tagline}​}Description for the feed.

site.robots_txt

KeyTypeDefaultDescription
enablebooltrueToggle robots.txt file generation.
ruleslist[...]List of rules (e.g., user_agent, allow, disallow).
custom_lineslist[]Extra raw lines to append to robots.txt.

site.markdown

Configure the Markdown renderer behavior.

KeyTypeDefaultDescription
formatstr"mdx"Markdown parser format
Options: "mdx", "md", "detect".
on_broken_linksstr"throw"MD broken link behavior.
Options: "throw", "warn", "ignore".
on_broken_imagesstr"throw"MD broken image behavior.
Options: same as above.
mermaidbooltrueRender Mermaid.js diagrams.
render_emoji_shortcodesbooltrueRender emoji shortcodes like :smile:.

theme

The theme block controls the visual appearance and navigation behavior of portosaur site.

KeyTypeDefaultDescription
appearanceblocksee belowSettings related to visual appearance
footerblocksee belowSite's footer settings
navigationblocksee belowNavigation component settings

theme.appearance

Settings related to the visual theme and mode switching.

KeyTypeDefaultDescription
color_schemestr"nord"The site's color scheme. Can be a built-in theme ("nord", "dracula", "github", "gruvbox", "portosaur") or a path to a custom .css file.
custom_cssstr | listnoneInject custom CSS files. Can be a single path string or an array of paths relative to the project directory (e.g. ["./src/styles.css"]).
default_modestr"dark"Set the default theme.
Options: "dark" or "light".
show_theme_switchbooltrueShow the dark/light mode toggle.
disable_project_linkboolfalseHide the Project link in the navbar.

theme.navigation

Settings for the site's navigation components.

KeyTypeDefaultDescription
breadcrumbsbooltrueShow breadcrumb navigation in the documentation pages.
collapsable_sidebarbooltrueAllow users to collapse the side navigation.
hide_navbar_on_scrollbooltrueAutomatically hide the navbar when scrolling down.

Settings for the site footer.

KeyTypeDefaultDescription
enablebooltrueToggle the footer section.
messagestrnullCustom copyright message.
disable_project_linkboolfalseHide the Project link in the footer.

home_page

The home_page block contains the content for the primary sections of your site.

KeyTypeDefaultDescription
heroblocksee belowConfiguration for the hero banner section.
aboutblocksee belowConfiguration for the about me section.
project_shelfblocksee belowShowcase of your best projects.
experienceblocksee belowTimeline of your professional career.
socialblocksee belowSocial media presence and contact links.

home_page.hero

The hero section is the first thing visitors see. It should provide a clear and concise introduction to who you are.

KeyTypeDefaultDescription
titlestr"Your Name"The main heading.
professionstr"Your Profession"Your professional title.
descstr"Welcome to my portfolio."A short bio or mission statement.
profile_picstr(default icon)Path to your main profile image.
introstr"Hello there, I'm"Small greeting text above the title.
subtitlestr"I am a"Text displayed above your profession.
sociallist[]List of social links below the hero.
learn_more_button_txtstr"Learn More"Text for the primary call-to-action button.

home_page.about

The about section allows you to provide a more detailed biography and list your technical skills.

KeyTypeDefaultDescription
enablebooltrueToggle the About section.
headingstr"About Me"Heading for the about section.
imagestr{​{home_page.hero.profile_pic}​} -> default iconOptional bio image.
biolist[...]List of strings, each rendered as a paragraph.
skills_headingstr"My Skills"Heading for the technical skills section.
skillslist[]List of skills to display as badges.
resumestrnullLink to your resume/CV file.

home_page.project_shelf

The project shelf is a curated showcase of your best work. You can feature specific projects to give them more prominence.

KeyTypeDefaultDescription
enablebooltrueToggle the Project Shelf.
headingstr"My Projects"Heading for the project section.
subheadingstr"A collection of all my works"Subheading for the project section.
autoplaybooltrueEnable/disable automatic scrolling for the shelf.
projectslist[]List of project objects (see schema below).

home_page.project_shelf.projects

KeyTypeDefaultDescription
titlestr"Future Project"Name of the project.
imgstr(blank icon)Path to project thumbnail. Supports internal paths using {​{porto_static}​} (e.g., {​{porto_static}​}/img/project-blank.png) or external URLs.
statestr"active"Project status badge (active, completed, maintenance, paused, archived, planned). Rendered as a themed pill in the top-right.
featuredboolfalseIf true, the project gets a prominent border and is automatically sorted to the beginning of the carousel.
descstr"Coming soon..."Brief desc of the project and tech stack.
tagslist[]Tech keywords (e.g., ["React", "Node"]). Displayed as micro-glass pills inside the image container.
websitestrnullURL to the live website or production version.
repostrnullURL to the source code repository (e.g., GitHub).
demostrnullURL to a live demo or interactive preview.

home_page.experience

The experience section provides a timeline of your professional career, education, or other milestones.

KeyTypeDefaultDescription
enableboolfalseToggle the Experience section.
headingstr"Experience"Heading for the experience section.
subheadingstr"My professional journey"Subheading for the experience section.
listlist[]List of work experience objects (see schema below).

home_page.experience.list

KeyTypeDefaultDescription
companystrnullName of the organization.
rolestrnullYour job title.
durationstrnullTime period (e.g., "2022 - Present").
descstrnullSummary of your responsibilities and achievements.

home_page.social

Manage your social media presence and contact links. These are usually displayed in the footer or social section.

KeyTypeDefaultDescription
enablebooltrueToggle social media links.
headingstr"Get In Touch"Heading for the contact section.
subheadingstr"Feel free to reach out"Subheading with invitation to connect.
linkslist[]List of social platform objects (see schema below).
KeyTypeDefaultDescription
namestrnullName of the platform (e.g., "GitHub").
iconstrnullIcon identifier.
descstrnullBrief description or call-to-action text.
urlstrnullURL to your profile.

tasks

The tasks block powers a public roadmap and goal tracking system. It allows you to share what you're working on and your progress with your audience.

KeyTypeDefaultDescription
enableboolfalseToggle the public tasks page.
titlestr"Tasks"Heading for the tasks page.
subtitlestr"My current focus"Sub-heading for the page.
listlist[]List of task objects (see schema below).

tasks.list

KeyTypeDefaultDescription
titlestrnullShort name of the task.
statusstr"pending"Current progress (active, pending, completed).
descstrnullOptional details about the task.

tools

The tools block includes functional utilities that enhance your portfolio's capabilities, such as a built-in link shortener.

KeyTypeDefaultDescription
link_shortenerblocksee belowInternal link redirect utility.

A built-in utility to create short, memorable URLs that redirect to external sites.

KeyTypeDefaultDescription
enableboolfalseToggle the internal link shortener.
deploy_pathstr"/l"URL base path for redirects.
short_linksdict{}Key-value map of slugs to target URLs.

vars

Define any key-value pairs in the vars block to reference them throughout your content using the {​{vars.key}​} syntax. This is useful for centralizing information like usernames or common links.

yaml
vars:
  github: "yourusername"
  twitter: "@yourhandle"

Advanced Configuration

Custom Head Tags

Inject HTML directly into <head>. Useful for analytics, custom fonts, or verification tags.

yaml
site:
  head_tags:
    - meta:
        name: "desc"
        content: "A professional portfolio built with Portosaur."
    - script:
        src: "https://example.com/script.js"
        async: true