import type {Config} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; import { EnumChangefreq } from 'sitemap'; import remarkGithub from 'remark-github'; import remarkGfm from 'remark-gfm'; import { DISCORD_URL } from './constants'; import { GITHUB_URL } from './constants'; import { MASTODON_URL } from './constants'; import { TWITTER_URL } from './constants'; import lightCodeTheme from './src/themes/prismLight'; import darkCodeTheme from './src/themes/prismDark'; import { getTranslationProgress } from './src/api/crowdin.js'; const translationProgress = getTranslationProgress(); const config: Config = { title: 'Task', tagline: 'A task runner / simpler Make alternative written in Go ', url: 'https://taskfile.dev', baseUrl: '/', onBrokenLinks: 'warn', onBrokenMarkdownLinks: 'warn', favicon: 'img/favicon.ico', organizationName: 'go-task', projectName: 'task', deploymentBranch: 'gh-pages', i18n: { defaultLocale: 'en', locales: ['en'], localeConfigs: { en: { label: 'English', direction: 'ltr', htmlLang: 'en-US' } } }, presets: [ [ 'classic', { docs: { routeBasePath: '/', sidebarPath: './sidebars.ts', remarkPlugins: [remarkGithub, remarkGfm], includeCurrentVersion: true, versions: { current: { label: `Next 🚧`, path: 'next', badge: false }, latest: { label: 'Latest', badge: false } } }, blog: {}, theme: { customCss: [ './src/css/custom.css', './src/css/carbon.css', ] }, gtag: { trackingID: 'G-4RT25NXQ7N', anonymizeIP: true }, sitemap: { changefreq: EnumChangefreq.WEEKLY, priority: 0.5, ignorePatterns: ['/tags/**'] } } satisfies Preset.Options, ] ], scripts: [ { src: '/js/carbon.js', async: true } ], themeConfig:{ metadata: [ { name: 'og:image', content: 'https://taskfile.dev/img/og-image.png' } ], navbar: { title: 'Task', logo: { alt: 'Task Logo', src: 'img/logo.svg' }, items: [ { type: 'doc', docId: 'intro', position: 'left', label: 'Docs' }, { to: 'blog', label: 'Blog', position: 'left' }, { to: '/donate', position: 'left', label: 'Donate' }, { type: 'docsVersionDropdown', position: 'right', dropdownActiveClassDisabled: true, }, { href: GITHUB_URL, position: 'right', className: "header-icon-link icon-github", }, { href: DISCORD_URL, position: 'right', className: "header-icon-link icon-discord", }, { href: TWITTER_URL, position: 'right', className: "header-icon-link icon-twitter", }, { href: MASTODON_URL, rel: 'me', position: 'right', className: "header-icon-link icon-mastodon", } ] }, footer: { style: 'dark', links: [ { title: 'Pages', items: [ { label: 'Installation', to: '/installation/' }, { label: 'Usage', to: '/usage/' }, { label: 'Donate', to: '/donate/' } ] }, { title: 'Community', items: [ { label: 'GitHub', href: GITHUB_URL }, { label: 'Twitter', href: TWITTER_URL }, { label: 'Mastodon', href: MASTODON_URL, rel: 'me' }, { label: 'Discord', href: DISCORD_URL }, { label: 'OpenCollective', href: 'https://opencollective.com/task' } ] }, { items: [ { html: 'Deploys by Netlify' } ] } ] }, prism: { theme: lightCodeTheme, darkTheme: darkCodeTheme, additionalLanguages: [ "bash", // aka. shell "json", "powershell" ] }, // NOTE(@andreynering): Don't worry, these keys are meant to be public =) algolia: { appId: '7IZIJ13AI7', apiKey: '34b64ae4fc8d9da43d9a13d9710aaddc', indexName: 'taskfile' } } satisfies Preset.ThemeConfig, }; export default config;