2025-11-14 20:48:21 +01:00
import { themes as prismThemes } from 'prism-react-renderer' ;
import type { Config } from '@docusaurus/types' ;
import type * as Preset from '@docusaurus/preset-classic' ;
const config : Config = {
2025-11-22 23:42:51 +01:00
themes : [
[
'@easyops-cn/docusaurus-search-local' ,
{
hashed : true ,
language : [ 'fr' , 'en' ] ,
indexDocs : true ,
indexBlog : true ,
indexPages : true ,
docsRouteBasePath : '/docs' ,
blogRouteBasePath : '/blog' ,
searchBarShortcutHint : false ,
highlightSearchTermsOnTargetPage : true ,
explicitSearchResultPath : true ,
} ,
] ,
] ,
2025-11-25 17:13:03 +01:00
plugins : [
'docusaurus-plugin-image-zoom' ,
2025-12-03 11:57:18 +01:00
'./plugins/docusaurus-plugin-unified-tags' ,
2025-12-03 21:32:31 +01:00
'./plugins/docusaurus-plugin-recent-articles' ,
2025-12-06 09:33:43 +01:00
'./plugins/docusaurus-plugin-rss-aggregator' ,
2025-12-04 17:48:57 +01:00
[
'./plugins/docusaurus-plugin-plausible-custom' ,
{
domain : 'docs.tellserv.fr' ,
scriptSrc : 'https://plausible.tellserv.fr/js/script.js' ,
} ,
] ,
2025-12-06 09:33:43 +01:00
'./docusaurus.config.webpack.js' ,
2025-11-25 17:13:03 +01:00
] ,
2025-11-14 20:48:21 +01:00
title : 'TellServ Tech Blog' ,
tagline : 'Recherches et réflexions sur les défis techniques' ,
2025-12-03 21:32:31 +01:00
favicon : 'img/logo.png' ,
2025-11-14 20:48:21 +01:00
2025-12-05 11:11:49 +01:00
2025-11-14 20:48:21 +01:00
url : 'https://docs.tellserv.fr' ,
baseUrl : '/' ,
organizationName : 'Tellserv' ,
projectName : 'blog_technique' ,
onBrokenLinks : 'throw' ,
2025-11-15 14:57:36 +01:00
onBrokenAnchors : 'warn' ,
2025-11-14 20:48:21 +01:00
markdown : {
2025-11-15 14:57:36 +01:00
format : 'mdx' ,
mermaid : true ,
2025-11-14 20:48:21 +01:00
hooks : {
onBrokenMarkdownLinks : 'warn' ,
} ,
} ,
i18n : {
defaultLocale : 'fr' ,
locales : [ 'fr' , 'en' ] ,
localeConfigs : {
fr : {
label : 'Français' ,
direction : 'ltr' ,
htmlLang : 'fr-FR' ,
} ,
en : {
label : 'English' ,
direction : 'ltr' ,
htmlLang : 'en-US' ,
} ,
} ,
} ,
presets : [
[
'classic' ,
{
docs : {
sidebarPath : './sidebars.ts' ,
2025-11-15 15:08:50 +01:00
editUrl : 'https://forgejo.tellserv.fr/Tellsanguis/blog_tech/src/branch/main/' ,
2025-11-15 14:57:36 +01:00
showLastUpdateAuthor : true ,
showLastUpdateTime : true ,
2025-11-14 20:48:21 +01:00
} ,
blog : {
showReadingTime : true ,
2025-11-15 14:57:36 +01:00
feedOptions : {
type : [ 'rss' , 'atom' ] ,
title : 'TellServ Tech Blog' ,
description : 'Recherches et réflexions sur les défis techniques' ,
copyright : ` Copyright © ${ new Date ( ) . getFullYear ( ) } TellServ. ` ,
language : 'fr' ,
} ,
2025-11-15 15:08:50 +01:00
editUrl : 'https://forgejo.tellserv.fr/Tellsanguis/blog_tech/src/branch/main/' ,
2025-11-14 20:48:21 +01:00
blogSidebarTitle : 'Articles récents' ,
blogSidebarCount : 'ALL' ,
} ,
theme : {
customCss : './src/css/custom.css' ,
} ,
2025-11-15 14:57:36 +01:00
sitemap : {
lastmod : 'date' ,
changefreq : 'weekly' ,
priority : 0.5 ,
ignorePatterns : [ '/tags/**' ] ,
filename : 'sitemap.xml' ,
} ,
2025-11-14 20:48:21 +01:00
} satisfies Preset . Options ,
] ,
] ,
themeConfig : {
2025-12-05 11:11:49 +01:00
image : 'img/social-card.png' ,
2025-11-15 14:57:36 +01:00
metadata : [
2025-12-05 11:11:49 +01:00
{ name : 'description' , content : 'Blog technique sur le homelab, DevOps, Kubernetes et l\'infrastructure as code. Documentation et tutoriels sur Docker, OpenTofu, Ansible et K3s.' } ,
2025-11-15 14:57:36 +01:00
{ name : 'keywords' , content : 'homelab, kubernetes, docker, devops, opentofu, ansible, k3s, infrastructure as code' } ,
{ name : 'author' , content : 'TellServ' } ,
] ,
colorMode : {
defaultMode : 'light' ,
disableSwitch : false ,
respectPrefersColorScheme : true ,
} ,
2025-11-14 20:48:21 +01:00
navbar : {
title : 'TellServ Tech Blog' ,
logo : {
alt : 'TellServ Logo' ,
2025-11-15 18:39:20 +01:00
src : 'img/logo.png' ,
2025-11-14 20:48:21 +01:00
} ,
items : [
{
type : 'docSidebar' ,
sidebarId : 'tutorialSidebar' ,
position : 'left' ,
label : 'Documentation' ,
} ,
{ to : '/blog' , label : 'Blog' , position : 'left' } ,
2025-12-03 11:57:18 +01:00
{ to : '/tags' , label : 'Tags' , position : 'left' } ,
2025-12-06 09:33:43 +01:00
{ to : '/veille' , label : 'Veille' , position : 'left' } ,
2025-12-03 16:03:04 +01:00
{ to : '/about' , label : 'À propos' , position : 'right' } ,
2025-11-15 14:57:36 +01:00
{
type : 'localeDropdown' ,
position : 'right' ,
} ,
2025-11-14 20:48:21 +01:00
{
2025-11-15 15:08:50 +01:00
href : 'https://github.com/Tellsanguis' ,
2025-11-14 20:48:21 +01:00
position : 'right' ,
2025-11-22 23:42:51 +01:00
className : 'header-github-link' ,
'aria-label' : 'GitHub profile' ,
2025-11-14 20:48:21 +01:00
} ,
2025-11-22 23:26:39 +01:00
{
href : 'https://forgejo.tellserv.fr/Tellsanguis' ,
position : 'right' ,
2025-11-22 23:42:51 +01:00
className : 'header-forgejo-link' ,
'aria-label' : 'Forgejo profile' ,
2025-11-22 23:26:39 +01:00
} ,
2025-12-06 09:33:43 +01:00
{
href : 'https://docs.tellserv.fr/blog/atom.xml' ,
position : 'right' ,
className : 'header-rss-link' ,
'aria-label' : 'RSS Feed' ,
} ,
2025-11-14 20:48:21 +01:00
] ,
} ,
footer : {
style : 'dark' ,
links : [
{
title : 'Documentation' ,
items : [
{
2025-12-03 16:03:04 +01:00
label : 'À propos' ,
to : '/about' ,
2025-11-14 20:48:21 +01:00
} ,
] ,
} ,
{
title : 'Blog' ,
items : [
{
label : 'Articles' ,
to : '/blog' ,
} ,
] ,
} ,
{
title : 'Liens' ,
items : [
{
label : 'GitHub' ,
2025-11-15 15:08:50 +01:00
href : 'https://github.com/Tellsanguis' ,
2025-11-14 20:48:21 +01:00
} ,
{
label : 'Forgejo' ,
2025-11-15 15:08:50 +01:00
href : 'https://forgejo.tellserv.fr/Tellsanguis' ,
2025-11-14 20:48:21 +01:00
} ,
] ,
} ,
] ,
copyright : ` Copyright © ${ new Date ( ) . getFullYear ( ) } TellServ. Built with Docusaurus. ` ,
} ,
prism : {
theme : prismThemes.github ,
darkTheme : prismThemes.dracula ,
2025-11-15 14:57:36 +01:00
additionalLanguages : [ 'bash' , 'yaml' , 'hcl' , 'docker' ] ,
} ,
tableOfContents : {
minHeadingLevel : 2 ,
maxHeadingLevel : 5 ,
2025-11-14 20:48:21 +01:00
} ,
2025-11-25 17:13:03 +01:00
zoom : {
selector : '.markdown :not(em) > img' ,
background : {
light : 'rgb(255, 255, 255)' ,
dark : 'rgb(50, 50, 50)'
} ,
config : {
// options from medium-zoom: https://github.com/francoischalifour/medium-zoom#options
}
} ,
2025-11-14 20:48:21 +01:00
} satisfies Preset . ThemeConfig ,
} ;
export default config ;