299 lines
11 KiB
JavaScript
299 lines
11 KiB
JavaScript
// @ts-check
|
|
// Note: type annotations allow type checking and IDEs autocompletion
|
|
|
|
/** @typedef { import('prism-react-renderer').PrismTheme['styles'] } PrismThemeStyle */
|
|
/** @typedef { import('prism-react-renderer').PrismTheme['styles'][number]['style'] } PrismThemeEntry */
|
|
|
|
/**
|
|
Updates styles array from prisma theme based off token type
|
|
@type {(theme: PrismThemeStyle, replace: Record<string, PrismThemeEntry>) => PrismThemeStyle}
|
|
*/
|
|
const updateThemeStyles = (styles, replace) => {
|
|
const copy = structuredClone(styles)
|
|
|
|
const types = Object.keys(replace)
|
|
copy.forEach(style => {
|
|
types.forEach((type) => {
|
|
if (style.types.includes(type)) {
|
|
style.style = { ...style.style, ...replace[type]}
|
|
}
|
|
})
|
|
})
|
|
|
|
return copy
|
|
}
|
|
|
|
const lightCodeTheme = require('prism-react-renderer/themes/github');
|
|
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
|
|
|
|
const math = require('remark-math');
|
|
const katex = require('rehype-katex');
|
|
|
|
/** @type {import('@docusaurus/types').Config} */
|
|
const config = {
|
|
title: 'SheetJS Community Edition',
|
|
tagline: 'Get Sheet Done',
|
|
url: 'https://docs.sheetjs.com',
|
|
baseUrl: '/',
|
|
onBrokenLinks: 'throw',
|
|
onBrokenMarkdownLinks: 'warn',
|
|
favicon: 'img/favicon.ico',
|
|
|
|
// Even if you don't use internalization, you can use this field to set useful
|
|
// metadata like html lang. For example, if your site is Chinese, you may want
|
|
// to replace "en" with "zh-Hans".
|
|
i18n: {
|
|
defaultLocale: 'en',
|
|
locales: ['en'],
|
|
},
|
|
|
|
presets: [
|
|
[
|
|
'classic',
|
|
/** @type {import('@docusaurus/preset-classic').Options} */
|
|
({
|
|
docs: {
|
|
sidebarPath: require.resolve('./sidebars.js'),
|
|
showLastUpdateTime: true,
|
|
editUrl: 'https://git.sheetjs.com/sheetjs/docs.sheetjs.com/src/branch/master/docz',
|
|
remarkPlugins: [math],
|
|
rehypePlugins: [katex /* , { strict: false } */],
|
|
},
|
|
//blog: {
|
|
// showReadingTime: true,
|
|
// Please change this to your repo.
|
|
// Remove this to remove the "edit this page" links.
|
|
// editUrl: 'https://git.sheetjs.com/sheetjs/docs.sheetjs.com/src/branch/master/docz/',
|
|
//},
|
|
theme: {
|
|
customCss: require.resolve('./src/css/custom.css'),
|
|
},
|
|
googleAnalytics: {
|
|
trackingID: 'UA-36810333-1',
|
|
anonymizeIP: true
|
|
},
|
|
gtag: {
|
|
trackingID: 'G-0TSXVXRHM6',
|
|
anonymizeIP: true
|
|
}
|
|
}),
|
|
],
|
|
],
|
|
|
|
themeConfig:
|
|
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
|
({
|
|
mermaid: {
|
|
options: {
|
|
themeVariables: {
|
|
edgeLabelBackground: ""
|
|
}
|
|
}
|
|
},
|
|
navbar: {
|
|
title: 'SheetJS CE Docs',
|
|
logo: {
|
|
alt: 'SheetJS Logo',
|
|
src: 'img/logo.svg',
|
|
},
|
|
items: [
|
|
{
|
|
type: 'doc',
|
|
docId: 'index',
|
|
position: 'left',
|
|
label: 'Docs',
|
|
},
|
|
//{to: '/blog', label: 'Blog', position: 'left'},
|
|
{
|
|
href: 'https://sheetjs.com',
|
|
label: 'SheetJS',
|
|
position: 'right',
|
|
},
|
|
{
|
|
href: 'https://git.sheetjs.com/sheetjs/sheetjs/issues',
|
|
label: 'Source',
|
|
position: 'right',
|
|
},
|
|
],
|
|
},
|
|
footer: {
|
|
style: 'dark',
|
|
links: [
|
|
{
|
|
title: 'Docs',
|
|
items: [
|
|
{
|
|
label: 'Intro',
|
|
to: '/docs',
|
|
},
|
|
{
|
|
label: 'Examples',
|
|
to: '/docs/getting-started/examples',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Community',
|
|
items: [
|
|
{
|
|
label: 'Discord',
|
|
href: 'https://discord.gg/sheetjs',
|
|
},
|
|
{
|
|
label: 'Twitter',
|
|
href: 'https://twitter.com/sheetjs',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'More',
|
|
items: [
|
|
//{
|
|
// label: 'Blog',
|
|
// to: '/blog',
|
|
//},
|
|
{
|
|
label: 'SheetJS Pro',
|
|
href: 'https://sheetjs.com/pro',
|
|
},
|
|
{
|
|
label: 'Source',
|
|
href: 'https://git.sheetjs.com/sheetjs/sheetjs',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
copyright: `Copyright © ${new Date().getFullYear()} SheetJS LLC.`,
|
|
},
|
|
prism: {
|
|
theme: lightCodeTheme,
|
|
darkTheme: {
|
|
// Dracula dark theme by default has keyword and variable font style set to italic
|
|
// reset to normal to be consistent with the light theme (github)
|
|
...darkCodeTheme,
|
|
styles: updateThemeStyles(/** @type {any} */ (darkCodeTheme.styles), {
|
|
'keyword': {
|
|
fontStyle: "normal"
|
|
},
|
|
'variable': {
|
|
fontStyle: "normal"
|
|
}
|
|
})
|
|
},
|
|
additionalLanguages: [ "visual-basic", "swift", "java", "php", "csharp", "perl", "ruby", "cpp", "applescript", "liquid", "rust", "dart", "wolfram", "matlab", "stata", "zig" ],
|
|
},
|
|
liveCodeBlock: {
|
|
playgroundPosition: 'top'
|
|
}
|
|
}),
|
|
themes: [
|
|
"@docusaurus/theme-live-codeblock",
|
|
"@docusaurus/theme-mermaid"
|
|
],
|
|
markdown: {
|
|
mermaid: true
|
|
},
|
|
scripts: [
|
|
{
|
|
src: "https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js",
|
|
async: true
|
|
}
|
|
],
|
|
stylesheets: [
|
|
{
|
|
href: '/katex/katex.min.css',
|
|
type: 'text/css',
|
|
crossorigin: 'anonymous',
|
|
},
|
|
],
|
|
plugins: [
|
|
require.resolve("@cmfcmf/docusaurus-search-local"),
|
|
[ '@docusaurus/plugin-client-redirects', {
|
|
redirects: [
|
|
{ from: '/docs/example', to: '/docs/getting-started/examples/export/' },
|
|
{ from: '/docs/getting-started/example', to: '/docs/getting-started/examples/export/' },
|
|
{ from: '/docs/installation', to: '/docs/getting-started/' },
|
|
{ from: '/docs/interface', to: '/docs/api/' },
|
|
{ from: '/docs/demos/excel', to: '/docs/demos/' },
|
|
{ from: '/docs/getting-started/demos/', to: '/docs/demos/' },
|
|
{ from: '/docs/getting-started/demos/excel', to: '/docs/demos/' },
|
|
{ from: '/docs/demos/content', to: '/docs/demos/static/' },
|
|
{ from: '/docs/demos/git', to: '/docs/demos/cloud/github/' },
|
|
{ from: '/docs/demo/grid', to: '/docs/demos/grid/' },
|
|
/* frontend */
|
|
{ from: '/docs/demos/angular', to: '/docs/demos/frontend/angular/' },
|
|
{ from: '/docs/demos/react', to: '/docs/demos/frontend/react/' },
|
|
{ from: '/docs/demos/svelte', to: '/docs/demos/frontend/svelte/' },
|
|
{ from: '/docs/demos/vue', to: '/docs/demos/frontend/vue/' },
|
|
{ from: '/docs/demos/bundler', to: '/docs/demos/frontend/bundler/' },
|
|
{ from: '/docs/demos/legacy', to: '/docs/demos/frontend/legacy/' },
|
|
{ from: '/docs/demos/rollup', to: '/docs/demos/frontend/bundler/rollup/' },
|
|
{ from: '/docs/getting-started/demos/legacy', to: '/docs/demos/frontend/legacy/' },
|
|
{ from: '/docs/getting-started/demos/bundler', to: '/docs/demos/frontend/bundler/' },
|
|
/* cloud */
|
|
{ from: '/docs/demos/salesforce', to: '/docs/demos/cloud/salesforce/' },
|
|
{ from: '/docs/getting-started/demos/salesforce', to: '/docs/demos/cloud/salesforce/' },
|
|
{ from: '/docs/demos/aws', to: '/docs/demos/cloud/aws/' },
|
|
{ from: '/docs/demos/azure', to: '/docs/demos/cloud/azure/' },
|
|
{ from: '/docs/demos/netsuite', to: '/docs/demos/cloud/netsuite/' },
|
|
{ from: '/docs/demos/gsheet', to: '/docs/demos/cloud/gsheet/' },
|
|
{ from: '/docs/demos/airtable', to: '/docs/demos/cloud/airtable/' },
|
|
/* extensions */
|
|
{ from: '/docs/demos/extendscript', to: '/docs/demos/extensions/extendscript/' },
|
|
{ from: '/docs/demos/excelapi', to: '/docs/demos/extensions/excelapi/' },
|
|
{ from: '/docs/demos/chromium', to: '/docs/demos/extensions/chromium/' },
|
|
{ from: '/docs/getting-started/demos/chromium', to: '/docs/demos/extensions/chromium/' },
|
|
/* cloud */
|
|
{ from: '/docs/demos/cloudata', to: '/docs/demos/cloud/' },
|
|
{ from: '/docs/demos/cloudata/gsheet', to: '/docs/demos/cloud/gsheet/' },
|
|
{ from: '/docs/demos/cloudata/airtable', to: '/docs/demos/cloud/airtable/' },
|
|
{ from: '/docs/getting-started/demos/netsuite', to: '/docs/demos/cloud/netsuite/' },
|
|
/* hosting */
|
|
{ from: '/docs/demos/hosting/dropbox', to: '/docs/demos/cloud/dropbox/' },
|
|
{ from: '/docs/demos/hosting/github', to: '/docs/demos/cloud/github/' },
|
|
/* data */
|
|
{ from: '/docs/getting-started/demos/database', to: '/docs/demos/data/' },
|
|
{ from: '/docs/demos/database', to: '/docs/demos/data/' },
|
|
{ from: '/docs/demos/nosql', to: '/docs/demos/data/' },
|
|
{ from: '/docs/getting-started/demos/nosql', to: '/docs/demos/data/' },
|
|
/* net */
|
|
{ from: '/docs/demos/headless', to: '/docs/demos/net/headless/' },
|
|
{ from: '/docs/demos/server', to: '/docs/demos/net/server/' },
|
|
{ from: '/docs/demos/network', to: '/docs/demos/net/network/' },
|
|
{ from: '/docs/getting-started/demos/network', to: '/docs/demos/net/network/' },
|
|
/* local */
|
|
{ from: '/docs/demos/clipboard', to: '/docs/demos/local/clipboard/' },
|
|
{ from: '/docs/getting-started/demos/clipboard', to: '/docs/demos/local/clipboard/' },
|
|
{ from: '/docs/demos/localfile', to: '/docs/demos/local/file/' },
|
|
{ from: '/docs/demos/data/indexeddb', to: '/docs/demos/local/indexeddb/' },
|
|
{ from: '/docs/demos/data/storageapi', to: '/docs/demos/local/storageapi/' },
|
|
{ from: '/docs/demos/data/websql', to: '/docs/demos/local/websql/' },
|
|
/* desktop */
|
|
{ from: '/docs/getting-started/demos/desktop', to: '/docs/demos/desktop/' },
|
|
/* cli */
|
|
{ from: '/docs/getting-started/demos/cli', to: '/docs/demos/cli/' },
|
|
{ from: '/docs/demos/desktop/cli', to: '/docs/demos/cli/' },
|
|
/* bigdata */
|
|
{ from: '/docs/demos/worker', to: '/docs/demos/bigdata/worker/' },
|
|
{ from: '/docs/demos/stream', to: '/docs/demos/bigdata/stream/' },
|
|
/* math */
|
|
{ from: '/docs/demos/ml', to: '/docs/demos/math/' },
|
|
{ from: '/docs/demos/bigdata/ml', to: '/docs/demos/math/' },
|
|
{ from: '/docs/demos/engines/pandas', to: '/docs/demos/math/pandas/' },
|
|
/* installation */
|
|
{ from: '/docs/installation/standalone', to: '/docs/getting-started/installation/standalone/' },
|
|
{ from: '/docs/installation/frameworks', to: '/docs/getting-started/installation/frameworks/' },
|
|
{ from: '/docs/installation/nodejs', to: '/docs/getting-started/installation/nodejs/' },
|
|
{ from: '/docs/installation/amd', to: '/docs/getting-started/installation/amd/' },
|
|
{ from: '/docs/installation/extendscript', to: '/docs/getting-started/installation/extendscript/' },
|
|
{ from: '/docs/installation/deno', to: '/docs/getting-started/installation/deno/' },
|
|
{ from: '/docs/installation/bun', to: '/docs/getting-started/installation/bun/' },
|
|
/* misc */
|
|
{ from: '/demos/datagrid', to: '/docs/demos/grid/' },
|
|
]
|
|
}]
|
|
]
|
|
};
|
|
|
|
module.exports = config;
|