-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add math plugins * Handle module plugins * Load katex style
- Loading branch information
1 parent
3e38f3b
commit 419fed6
Showing
3 changed files
with
370 additions
and
126 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,155 +5,166 @@ | |
// But unsafe-eval should NOT be in production builds | ||
// Also, put GTM first because sometimes the ';' in the escaped single quotes causes the browser to think it's the end | ||
const scriptSrc = process.env.NODE_ENV === 'development' ? | ||
`https://*.googletagmanager.com 'self' 'unsafe-inline' 'unsafe-eval'` | ||
: `https://*.googletagmanager.com 'self' 'unsafe-inline'`; | ||
`https://*.googletagmanager.com https://cdn.jsdelivr.net 'self' 'unsafe-inline' 'unsafe-eval'` | ||
: `https://*.googletagmanager.com https://cdn.jsdelivr.net 'self' 'unsafe-inline'`; | ||
|
||
const contentSecurityPolicy = ` | ||
default-src 'none'; | ||
base-uri 'self'; | ||
manifest-src 'self'; | ||
script-src ${scriptSrc}; | ||
style-src 'self' 'unsafe-inline'; | ||
font-src 'self'; | ||
style-src https://cdn.jsdelivr.net 'self' 'unsafe-inline'; | ||
font-src https://cdn.jsdelivr.net 'self'; | ||
img-src 'self' https://*.googletagmanager.com https://*.google-analytics.com data:; | ||
media-src 'self'; | ||
form-action 'self'; | ||
connect-src 'self' https://*.algolia.net https://*.algolianet.com https://*.googletagmanager.com https://*.google-analytics.com https://*.analytics.google.com; | ||
frame-src https://tezosbot.vercel.app;`; | ||
|
||
/** @type {import('@docusaurus/types').Config} */ | ||
const config = { | ||
title: 'Tezos Developer Documentation', | ||
tagline: 'Get started developing on Tezos by learning about its features, going through application development tutorials, and exploring the tools that are available to Tezos developers.', | ||
favicon: 'img/favicon.ico', | ||
url: 'https://docs.tezos.com', | ||
baseUrl: '/', | ||
organizationName: 'trilitech', | ||
projectName: 'tezos-developer-docs', | ||
onBrokenLinks: 'warn', | ||
onBrokenMarkdownLinks: 'warn', | ||
onBrokenAnchors: 'warn', | ||
i18n: { | ||
defaultLocale: 'en', | ||
locales: ['en'], | ||
}, | ||
markdown: { | ||
mermaid: true, | ||
}, | ||
noIndex: process.env.BUILD_ENV == 'staging' ? true : false, | ||
module.exports = async function createConfigAsync() { | ||
return { | ||
title: 'Tezos Developer Documentation', | ||
tagline: 'Get started developing on Tezos by learning about its features, going through application development tutorials, and exploring the tools that are available to Tezos developers.', | ||
favicon: 'img/favicon.ico', | ||
url: 'https://docs.tezos.com', | ||
baseUrl: '/', | ||
organizationName: 'trilitech', | ||
projectName: 'tezos-developer-docs', | ||
onBrokenLinks: 'warn', | ||
onBrokenMarkdownLinks: 'warn', | ||
onBrokenAnchors: 'warn', | ||
i18n: { | ||
defaultLocale: 'en', | ||
locales: ['en'], | ||
}, | ||
markdown: { | ||
mermaid: true, | ||
}, | ||
noIndex: process.env.BUILD_ENV == 'staging' ? true : false, | ||
|
||
headTags: [ | ||
{ | ||
tagName: 'meta', | ||
attributes: { | ||
'http-equiv': 'Content-Security-Policy', | ||
content: contentSecurityPolicy, | ||
headTags: [ | ||
{ | ||
tagName: 'meta', | ||
attributes: { | ||
'http-equiv': 'Content-Security-Policy', | ||
content: contentSecurityPolicy, | ||
}, | ||
}, | ||
}, | ||
], | ||
], | ||
|
||
themes: ['@docusaurus/theme-mermaid'], | ||
themes: ['@docusaurus/theme-mermaid'], | ||
|
||
presets: [ | ||
[ | ||
'classic', | ||
/** @type {import('@docusaurus/preset-classic').Options} */ | ||
({ | ||
docs: { | ||
sidebarPath: require.resolve('./sidebars.js'), | ||
routeBasePath: '/', // Serve the docs at the site's root | ||
showLastUpdateTime: true, | ||
}, | ||
blog: false, | ||
theme: { | ||
customCss: require.resolve('./src/css/custom.css'), | ||
}, | ||
googleTagManager: { | ||
containerId: 'GTM-56M3FZ8', | ||
}, | ||
}), | ||
presets: [ | ||
[ | ||
'classic', | ||
/** @type {import('@docusaurus/preset-classic').Options} */ | ||
({ | ||
docs: { | ||
sidebarPath: require.resolve('./sidebars.js'), | ||
routeBasePath: '/', // Serve the docs at the site's root | ||
remarkPlugins: [(await import('remark-math')).default], | ||
rehypePlugins: [(await import('rehype-katex')).default], | ||
showLastUpdateTime: true, | ||
}, | ||
blog: false, | ||
theme: { | ||
customCss: require.resolve('./src/css/custom.css'), | ||
}, | ||
googleTagManager: { | ||
containerId: 'GTM-56M3FZ8', | ||
}, | ||
}), | ||
], | ||
], | ||
], | ||
|
||
plugins: [ | ||
'plugin-image-zoom', | ||
], | ||
plugins: [ | ||
'plugin-image-zoom', | ||
], | ||
|
||
themeConfig: | ||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */ | ||
({ | ||
colorMode: { | ||
defaultMode: 'light', | ||
disableSwitch: true, | ||
respectPrefersColorScheme: false, | ||
}, | ||
// Replace with your project's social card | ||
image: 'img/docusaurus-social-card.jpg', | ||
navbar: { | ||
style: 'primary', | ||
title: 'Tezos Docs', | ||
logo: { | ||
alt: 'Developer Docs for Tezos', | ||
src: 'img/logo-tezos.svg', | ||
themeConfig: | ||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */ | ||
({ | ||
colorMode: { | ||
defaultMode: 'light', | ||
disableSwitch: true, | ||
respectPrefersColorScheme: false, | ||
}, | ||
items: [ | ||
{ | ||
type: 'docSidebar', | ||
sidebarId: 'documentationSidebar', | ||
position: 'left', | ||
label: 'Documentation' | ||
}, | ||
{ | ||
type: 'docSidebar', | ||
sidebarId: 'tutorialsSidebar', | ||
position: 'left', | ||
label: 'Tutorials', | ||
// Replace with your project's social card | ||
image: 'img/docusaurus-social-card.jpg', | ||
navbar: { | ||
style: 'primary', | ||
title: 'Tezos Docs', | ||
logo: { | ||
alt: 'Developer Docs for Tezos', | ||
src: 'img/logo-tezos.svg', | ||
}, | ||
{ | ||
href: 'https://github.com/trilitech/tezos-developer-docs', | ||
label: 'GitHub', | ||
position: 'right', | ||
items: [ | ||
{ | ||
type: 'docSidebar', | ||
sidebarId: 'documentationSidebar', | ||
position: 'left', | ||
label: 'Documentation' | ||
}, | ||
{ | ||
type: 'docSidebar', | ||
sidebarId: 'tutorialsSidebar', | ||
position: 'left', | ||
label: 'Tutorials', | ||
}, | ||
{ | ||
href: 'https://github.com/trilitech/tezos-developer-docs', | ||
label: 'GitHub', | ||
position: 'right', | ||
}, | ||
], | ||
}, | ||
prism: { | ||
theme: require('prism-react-renderer/themes/github'), | ||
additionalLanguages: ['csharp', 'toml', 'ocaml'], | ||
}, | ||
// https://github.com/flexanalytics/plugin-image-zoom | ||
// Enable click to zoom in to large images | ||
imageZoom: { | ||
// CSS selector to apply the plugin to, defaults to '.markdown img' | ||
selector: '.markdown img', | ||
// Optional medium-zoom options | ||
// see: https://www.npmjs.com/package/medium-zoom#options | ||
options: { | ||
margin: 24, | ||
scrollOffset: 0, | ||
}, | ||
], | ||
}, | ||
prism: { | ||
theme: require('prism-react-renderer/themes/github'), | ||
additionalLanguages: ['csharp', 'toml', 'ocaml'], | ||
}, | ||
// https://github.com/flexanalytics/plugin-image-zoom | ||
// Enable click to zoom in to large images | ||
imageZoom: { | ||
// CSS selector to apply the plugin to, defaults to '.markdown img' | ||
selector: '.markdown img', | ||
// Optional medium-zoom options | ||
// see: https://www.npmjs.com/package/medium-zoom#options | ||
options: { | ||
margin: 24, | ||
scrollOffset: 0, | ||
}, | ||
algolia: { | ||
// The application ID provided by Algolia | ||
appId: process.env.NEXT_PUBLIC_DOCSEARCH_APP_ID || "QRIAHGML9Q", | ||
// Public API key: it is safe to commit it | ||
apiKey: process.env.NEXT_PUBLIC_DOCSEARCH_API_KEY || "57d6a376a3528866784a143809cc7427", | ||
indexName: process.env.NEXT_PUBLIC_DOCSEARCH_INDEX_NAME || "tezosdocs", | ||
// Optional: see doc section below | ||
contextualSearch: true, | ||
// Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them. | ||
// externalUrlRegex: 'external\\.com|domain\\.com', | ||
// Optional: Replace parts of the item URLs from Algolia. Useful when using the same search index for multiple deployments using a different baseUrl. You can use regexp or string in the `from` param. For example: localhost:3000 vs myCompany.com/docs | ||
// replaceSearchResultPathname: { | ||
// from: '/docs/', // or as RegExp: /\/docs\// | ||
// to: '/', | ||
// }, | ||
// Optional: Algolia search parameters | ||
// searchParameters: {}, | ||
// Optional: path for search page that enabled by default (`false` to disable it) | ||
searchPagePath: false, | ||
//... other Algolia params | ||
}, | ||
}), | ||
stylesheets: [ | ||
{ | ||
href: 'https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css', | ||
type: 'text/css', | ||
integrity: | ||
'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM', | ||
crossorigin: 'anonymous', | ||
}, | ||
algolia: { | ||
// The application ID provided by Algolia | ||
appId: process.env.NEXT_PUBLIC_DOCSEARCH_APP_ID || "QRIAHGML9Q", | ||
// Public API key: it is safe to commit it | ||
apiKey: process.env.NEXT_PUBLIC_DOCSEARCH_API_KEY || "57d6a376a3528866784a143809cc7427", | ||
indexName: process.env.NEXT_PUBLIC_DOCSEARCH_INDEX_NAME || "tezosdocs", | ||
// Optional: see doc section below | ||
contextualSearch: true, | ||
// Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them. | ||
// externalUrlRegex: 'external\\.com|domain\\.com', | ||
// Optional: Replace parts of the item URLs from Algolia. Useful when using the same search index for multiple deployments using a different baseUrl. You can use regexp or string in the `from` param. For example: localhost:3000 vs myCompany.com/docs | ||
// replaceSearchResultPathname: { | ||
// from: '/docs/', // or as RegExp: /\/docs\// | ||
// to: '/', | ||
// }, | ||
// Optional: Algolia search parameters | ||
// searchParameters: {}, | ||
// Optional: path for search page that enabled by default (`false` to disable it) | ||
searchPagePath: false, | ||
//... other Algolia params | ||
}, | ||
}), | ||
], | ||
}; | ||
}; | ||
|
||
module.exports = config; |
Oops, something went wrong.