Skip to content

Runtime API Examples

This page demonstrates usage of some of the runtime APIs provided by VitePress.

The main useData() API can be used to access site, theme, and page data for the current page. It works in both .md and .vue files:

md
<script setup>
import { useData } from 'vitepress'

const { theme, page, frontmatter } = useData()
</script>

## Results

### Theme Data
<pre>{{ theme }}</pre>

### Page Data
<pre>{{ page }}</pre>

### Page Frontmatter
<pre>{{ frontmatter }}</pre>

Results

Theme Data

{
  "outline": [
    2,
    4
  ],
  "nav": [
    {
      "text": "Home",
      "link": "/"
    },
    {
      "text": "About",
      "link": "/about/about"
    },
    {
      "text": "Assignments",
      "link": "/assignments/week1/week01"
    }
  ],
  "sidebar": {
    "/assignments/": [
      {
        "items": [
          {
            "text": "Student Agreement",
            "link": "/student_agreement/student_agreement"
          }
        ]
      },
      {
        "text": "Group woking Assignments",
        "items": [
          {
            "text": "Week 1. Project management",
            "link": "/assignments/week1/week01"
          },
          {
            "text": "Week 2. Computer Aided design",
            "link": "/assignments/week2/week02"
          },
          {
            "text": "Week 3. Computer controlled cutting",
            "link": "/assignments/week3/week03"
          },
          {
            "text": "Week 4. Embedded programming",
            "link": "/assignments/week4/week04"
          },
          {
            "text": "Week 5. 3D Scanning and printing",
            "link": "/assignments/week5/week05"
          },
          {
            "text": "Week 6. Electronics design",
            "link": "/assignments/week6/week06"
          },
          {
            "text": "Week 7. Computer controlled machining",
            "link": "https://fabacademy.org/2025/labs/oshanghai/students/shuijiao-li/assignments/week07/"
          },
          {
            "text": "Week 8. Electronics production",
            "link": "/assignments/week8/week08"
          },
          {
            "text": "Week 9. Input devices",
            "link": "/assignments/week9/week09"
          },
          {
            "text": "Week 10. Output devices",
            "link": "/assignments/week10/week10"
          },
          {
            "text": "Week 11. Networking and communications",
            "link": "/assignments/week11/week11"
          },
          {
            "text": "Week 12. Mechanical design, Machine design",
            "link": "/assignments/week12/week12"
          },
          {
            "text": "Week 13. Break, midterm review",
            "link": "/assignments/week13/week13"
          },
          {
            "text": "Week 14. Modeling and casting",
            "link": "/assignments/week14/week14"
          },
          {
            "text": "Week 15. Interface and application programming",
            "link": "/assignments/week15/week15"
          },
          {
            "text": "Week 16. System Integration",
            "link": "/assignments/week16/week16"
          },
          {
            "text": "Week 17. Wildcard week",
            "link": "/assignments/week17/week17"
          },
          {
            "text": "Week 18. Applications and implications",
            "link": "/assignments/week18/week18"
          },
          {
            "text": "Week 19. Invention, intellectual property and income",
            "link": "/assignments/week19/week19"
          }
        ]
      }
    ]
  }
}

Page Data

{
  "title": "Runtime API Examples",
  "description": "",
  "frontmatter": {
    "outline": "deep"
  },
  "headers": [],
  "relativePath": "api-examples.md",
  "filePath": "api-examples.md"
}

Page Frontmatter

{
  "outline": "deep"
}

More

Check out the documentation for the full list of runtime APIs.