blob: 9f95cda159d2a4d39624c654197be28b958f494e [file] [log] [blame]
const path = require("path");
module.exports = {
title: 'Apache Teaclave (incubating)',
description: 'Apache Teaclave (incubating) is an open source universal secure computing platform, making computation on privacy-sensitive data safe and simple.',
base: '/',
patterns: [
'*.md',
'api-docs/*.md',
'blog/*.md',
'teaclave/**/*.md',
'teaclave-sgx-sdk/documents/*.md',
'teaclave-trustzone-sdk/docs',
'!teaclave/sdk/rust/target/**',
'!node_modules/**',
'!teaclave-trustzone-sdk/optee-utee/target/**',
'!teaclave-trustzone-sdk/optee-teec/target/**',
],
head: [],
configureWebpack: {
resolve: {
alias: {
'@assets': path.resolve(__dirname, '../assets')
}
}
},
themeConfig: {
search: false,
smoothScroll: true,
lastUpdated: 'Last Updated',
twitter: '@ApacheTeaclave',
domain: 'https://teaclave.apache.org',
dateFormat: 'MMMM D, YYYY',
logo: '/assets/img/logo.svg',
nav: [
{ text: 'ABOUT', link: '/' },
{ text: 'POWERED BY', link: '/powered-by/' },
{ text: 'COMMUNITY', link: '/community/' },
{ text: 'DOWNLOAD', link: '/download/' },
{ text: 'CONTRIBUTORS', link: '/contributors/' },
{
text: 'DOCS',
link: '/docs/',
items: [
{ text: 'Teaclave', link: '/docs/' },
{ text: 'Teaclave SGX SDK', link: '/sgx-sdk-docs/' },
{ text: 'Teaclave TrustZone SDK', link: '/trustzone-sdk-docs/' },
{
text: 'APIS',
items: [
{ text: 'Teaclave Client SDK (Rust)', link: 'https://teaclave.apache.org/api-docs/client-sdk-rust/', target: '_self', rel: '' },
{ text: 'Teaclave Client SDK (Python)', link: 'https://teaclave.apache.org/api-docs/client-sdk-python/', target: '_self', rel: '' },
{ text: 'Teaclave SGX SDK', link: 'https://teaclave.apache.org/api-docs/sgx-sdk/', target: '_self', rel: '' },
{ text: 'Teaclave TrustZone SDK (Host)', link: 'https://teaclave.apache.org/api-docs/trustzone-sdk/optee-teec', target: '_self', rel: '' },
{ text: 'Teaclave TrustZone SDK (TA)', link: 'https://teaclave.apache.org/api-docs/trustzone-sdk/optee-utee', target: '_self', rel: '' },
{ text: 'Crates in Teaclave (Enclave)', link: 'https://teaclave.apache.org/api-docs/crates-enclave/', target: '_self', rel: '' },
{ text: 'Crates in Teaclave (App)', link: 'https://teaclave.apache.org/api-docs/crates-app/', target: '_self', rel: '' },
]
},
]
},
{ text: 'BLOG', link: '/blog/' },
{
text: 'REPOS',
link: 'https://github.com/apache/incubator-teaclave',
items: [
{ text: 'Teaclave', link: 'https://github.com/apache/incubator-teaclave'},
{ text: 'Teaclave SGX SDK', link: 'https://github.com/apache/incubator-teaclave-sgx-sdk'},
{ text: 'Teaclave TrustZone SDK', link: 'https://github.com/apache/incubator-teaclave-trustzone-sdk'},
{ text: 'Teaclave Java TEE SDK', link: 'https://github.com/apache/incubator-teaclave-java-tee-sdk'},
{ text: 'Teaclave Website', link: 'https://github.com/apache/incubator-teaclave-website'},
]
},
{
text: 'ASF',
ariaLabel: 'Apache Software Foundation',
items: [
{ text: 'ASF Homepage', link: 'https://www.apache.org/' },
{ text: 'License', link: 'https://www.apache.org/licenses/' },
{ text: 'Sponsorship', link: 'https://www.apache.org/foundation/sponsorship.html' },
{ text: 'Security', link: 'https://www.apache.org/security/' },
{ text: 'Privacy', link: 'https://privacy.apache.org/policies/privacy-policy-public.html' },
{ text: 'Thanks', link: 'https://www.apache.org/foundation/thanks.html' },
{ text: 'Events', link: 'https://www.apache.org/events/current-event.html' },
]
}
],
sidebar: {
'/teaclave/':
[
{
title: 'Try',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave/docs/my-first-function',
'/teaclave/docs/functions-in-python',
'/teaclave/docs/builtin-functions',
'/teaclave/docs/azure-confidential-computing',
'/teaclave/docs/executing-wasm',
'/teaclave/docs/inference-with-tvm',
],
},
{
title: 'Design',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave/docs/threat-model',
'/teaclave/docs/mutual-attestation',
'/teaclave/docs/access-control',
'/teaclave/docs/build-system',
'/teaclave/docs/service-internals',
'/teaclave/docs/adding-executors',
'/teaclave/docs/papers-talks',
],
},
{
title: 'Contribute',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave/docs/release-guide',
'/teaclave/docs/development-tips',
'/teaclave/docs/rust-guideline',
],
},
{
title: 'Codebase',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave/attestation/',
'/teaclave/binder/',
'/teaclave/cli/',
'/teaclave/common/',
'/teaclave/config/',
'/teaclave/crypto/',
'/teaclave/dcap/',
'/teaclave/docker/',
'/teaclave/examples/',
'/teaclave/executor/',
'/teaclave/file_agent/',
'/teaclave/function/',
'/teaclave/keys/',
'/teaclave/rpc/',
'/teaclave/runtime/',
'/teaclave/sdk/',
'/teaclave/services/',
'/teaclave/tests/',
'/teaclave/third_party/',
'/teaclave/tools/',
'/teaclave/types/',
'/teaclave/worker/',
],
},
],
'/teaclave-sgx-sdk/': [
{
title: 'Development',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave-sgx-sdk/documents/environment-setup',
'/teaclave-sgx-sdk/documents/is_x86_feature_detected-in-sgx-sdk',
'/teaclave-sgx-sdk/documents/developing-with-vscode',
'/teaclave-sgx-sdk/documents/debugging-a-local-rust-sgx-enclave-in-docker-with-sgx-gdb',
'/teaclave-sgx-sdk/documents/public-cloud-for-rust-sgx-development',
],
},
{
title: 'Tutorial',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave-sgx-sdk/documents/sgxtime',
'/teaclave-sgx-sdk/documents/performance-optimization-tips',
],
},
{
title: 'Security',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave-sgx-sdk/documents/everything-about-cve-2020-5499',
'/teaclave-sgx-sdk/documents/mitigation-of-intel-sa-00219-in-rust-sgx',
],
},
],
'/teaclave-trustzone-sdk/': [
{
title: 'Development',
collapsable: false,
sidebarDepth: 0,
children: [
'/teaclave-trustzone-sdk/docs/overview-of-optee-rust-examples',
'/teaclave-trustzone-sdk/docs/debugging-optee-ta',
],
},
]
}
},
plugins: [
'@vuepress/medium-zoom',
'@vuepress/plugin-back-to-top',
[
'feed',
{
canonical_base: 'https://teaclave.apache.org',
}
],
[
'sitemap',
{
hostname: 'https://teaclave.apache.org'
}
],
[
'@vuepress/blog',
{
directories: [
{
id: 'blog',
dirname: 'blog',
path: '/blog/',
layout: 'IndexPost',
pagination: {
lengthPerPage: 100,
},
itemPermalink: '/blog/:year-:month-:day-:slug',
},
],
},
],
[
'vuepress-plugin-clean-urls',
{
normalSuffix: '/',
indexSuffix: '/',
notFoundPath: '/404.html',
},
],
[
'seo',
{
customMeta: (add, context) => {
const {
$site, // Site configs provided by Vuepress
$page, // Page configs provided by Vuepress
// All the computed options from above:
siteTitle, title, description, author, tags,
twitterCard, type, url, image, publishedAt, modifiedAt,
} = context;
add('twitter:site', $site.themeConfig.twitter);
},
}
]
],
markdown: {
extendMarkdown(md) {
md.use(require('markdown-it-toc-done-right'))
md.use(require('markdown-it-footnote'))
}
},
chainMarkdown(config) {
const { PLUGINS } = require('@vuepress/markdown')
const originalLinkPlugin = require('@vuepress/markdown/lib/link.js');
config
.plugins
.delete(PLUGINS.CONVERT_ROUTER_LINK)
const linkPlugin = function (md) {
const result = originalLinkPlugin.apply(this, arguments);
const close = md.renderer.rules.link_close;
md.renderer.rules.link_close = function() {
return close.apply(this, arguments).replace('<OutboundLink/>', '');
}
return result;
};
config
.plugin(PLUGINS.CONVERT_ROUTER_LINK)
.use(linkPlugin, [{
// The config.markdown.externalLinks options https://vuepress.vuejs.org/config/#markdown-externallinks
target: '_blank',
rel: 'noopener noreferrer'
}])
},
}