This document tracks shipyard’s progress towards supporting features from Docusaurus’s three main content plugins. Features are marked as:
routeBasePath)sidebarCollapsible)sidebarCollapsed)editUrl)showLastUpdateTime)showLastUpdateAuthor)breadcrumbs)title - Document title (used in sidebar and page <title> tag)title_meta - SEO title override for <title> and meta tagsdescription - Meta description for SEO (schema exists, not yet rendered in docs)slug - Custom URL slug (routes are generated from file paths)sidebar.label - Custom sidebar labelsidebar.position - Position in sidebarsidebar.className - Custom CSS class for sidebar itemsidebar.customProps - Custom properties for sidebar itemid - Document ID for referencinghide_title - Hide the title headinghide_table_of_contents - Hide TOC sidebartoc_min_heading_level - Minimum heading level for TOCtoc_max_heading_level - Maximum heading level for TOCpagination_next - Custom next pagepagination_prev - Custom previous pagepagination_label - Custom pagination labelkeywords - Keywords for SEOimage - Social media preview imagetags - Document tagsdraft - Mark as draft (excluded from production)last_update - Manual last update infounlisted - Hide from production but keep accessibledisplayed_sidebar - Force a specific sidebar (N/A - shipyard uses auto-generated sidebars per docs instance)sidebar_key - Unique sidebar item key for i18n (N/A - shipyard uses file paths as unique identifiers)parse_number_prefixes - Parse number prefixes from filenames (N/A - use sidebar.position frontmatter instead):::note, :::tip, :::warning, etc.)remarkNpm2Yarn plugin)doc type - Link to a specific documentcategory type - Collapsible category with nested itemslink type - External or internal link in sidebarhtml type - Custom HTML content in sidebar (via labelHtml and defaultStyle)autogenerated - Auto-generate sidebar from file structureref type - Reference to another sidebar item (N/A - shipyard uses explicit sidebar config)index.md frontmatter (sidebar.label, sidebar.position, collapsed, collapsible, sidebar.className, sidebar.customProps)sidebar.customProps in index.md frontmatter)hide_sidebar)og:title, og:description)<!--truncate-->)title - Post titletitle_meta - SEO title override for <title> and meta tagsdescription - Post description/excerptdate - Publication dateauthors - Post author(s)tags - Post tagsimage - Social card imagekeywords - SEO keywordshide_table_of_contents - Hide TOCsidebar.label - Custom label for blog sidebartoc_min_heading_level - Min TOC leveltoc_max_heading_level - Max TOC leveldraft - Mark as draftunlisted - Unlisted postlast_update - Last update infoslug - Custom URL slugrouteBasePath configuration).astro, .tsx)title - Page titledescription - Meta descriptionkeywords - SEO keywordsimage - Social preview imagewrapperClassName - Custom wrapper classcanonical_url - Custom canonical URLcustom_meta_tags - Custom meta tagshide_table_of_contents - Hide TOC (N/A - standalone pages don’t have TOC)draft - Mark as draftunlisted - Unlisted pageThe following Docusaurus features are not applicable because Astro handles them natively or they don’t fit shipyard’s architecture:
| Feature | Reason |
|---|---|
| Content collection loaders | Astro Content Collections handles this |
| Static site generation | Astro core feature |
| Plugin lifecycle hooks | Astro integrations handle this |
| Webpack/bundler config | Astro uses Vite natively |
| React hydration strategies | Astro Islands architecture handles this |
| Global data via hooks | Astro’s data fetching handles this |
| Build-time data loading | Astro’s getStaticPaths handles this |
We welcome contributions to help reach feature parity with Docusaurus! If you’d like to implement any of the unchecked features above:
Last updated: January 2026