543 lines
12 KiB
JavaScript
543 lines
12 KiB
JavaScript
// tina/config.ts
|
|
import { defineConfig } from "tinacms";
|
|
var branch = "master";
|
|
var config_default = defineConfig({
|
|
clientId: process.env.TINA_PUBLIC_CLIENT_ID,
|
|
token: process.env.TINA_TOKEN,
|
|
branch,
|
|
build: {
|
|
outputFolder: "admin",
|
|
publicFolder: "static"
|
|
},
|
|
media: {
|
|
tina: {
|
|
mediaRoot: "uploads",
|
|
publicFolder: "assets"
|
|
}
|
|
},
|
|
schema: {
|
|
collections: [
|
|
{
|
|
name: "about",
|
|
label: "A propos",
|
|
path: "content/about",
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "slug",
|
|
label: "Slug"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "description",
|
|
label: "Description"
|
|
},
|
|
{
|
|
type: "rich-text",
|
|
name: "body",
|
|
label: "Body",
|
|
isBody: true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "post",
|
|
label: "Articles",
|
|
path: "content/posts",
|
|
ui: {
|
|
filename: {
|
|
// if disabled, the editor can not edit the filename
|
|
readonly: true,
|
|
// Example of using a custom slugify function
|
|
slugify: (values) => {
|
|
return `${values?.title?.toLowerCase().replace(/ /g, "-") + "/index.md"}`;
|
|
}
|
|
}
|
|
},
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "summary",
|
|
label: "Sommaire"
|
|
},
|
|
{
|
|
type: "boolean",
|
|
name: "toc",
|
|
label: "Toc"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "description",
|
|
label: "Description"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "slug",
|
|
label: "Slug"
|
|
},
|
|
{
|
|
type: "image",
|
|
name: "image",
|
|
label: "Ajout image"
|
|
},
|
|
{
|
|
type: "datetime",
|
|
name: "date",
|
|
label: "Date"
|
|
},
|
|
{
|
|
label: "Auteur",
|
|
name: "author",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "obsidian",
|
|
label: "Obsidian"
|
|
},
|
|
{
|
|
value: "betameche",
|
|
label: "Betameche"
|
|
},
|
|
{
|
|
value: "veko",
|
|
label: "Veko"
|
|
},
|
|
{
|
|
value: "kikyoe",
|
|
label: "Kikyoe"
|
|
},
|
|
{
|
|
value: "Seum",
|
|
label: "seum"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: "Tags",
|
|
name: "tags",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "mmo",
|
|
label: "MMO"
|
|
},
|
|
{
|
|
value: "fps",
|
|
label: "FPS"
|
|
},
|
|
{
|
|
value: "multi",
|
|
label: "Multijoueur"
|
|
},
|
|
{
|
|
value: "strategy",
|
|
label: "Strat\xE9gie"
|
|
},
|
|
{
|
|
value: "rpg",
|
|
label: "RPG"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: "Cat\xE9gories",
|
|
name: "categories",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "jeux",
|
|
label: "Jeux"
|
|
},
|
|
{
|
|
value: "musique",
|
|
label: "Musique"
|
|
},
|
|
{
|
|
value: "art",
|
|
label: "Art"
|
|
},
|
|
{
|
|
value: "cinema",
|
|
label: "Cinema"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: "rich-text",
|
|
name: "body",
|
|
label: "Body",
|
|
isBody: true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "projets",
|
|
label: "Projets",
|
|
path: "content/projets",
|
|
ui: {
|
|
filename: {
|
|
// if disabled, the editor can not edit the filename
|
|
readonly: true,
|
|
// Example of using a custom slugify function
|
|
slugify: (values) => {
|
|
return `${values?.title?.toLowerCase().replace(/ /g, "-") + "/index.md"}`;
|
|
}
|
|
}
|
|
},
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "summary",
|
|
label: "Sommaire"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "description",
|
|
label: "Description"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "slug",
|
|
label: "Slug"
|
|
},
|
|
{
|
|
type: "boolean",
|
|
name: "toc",
|
|
label: "Table de contenu ?"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "feature_image",
|
|
label: "Image tuile"
|
|
},
|
|
{
|
|
type: "image",
|
|
name: "image",
|
|
label: "Ajout image"
|
|
},
|
|
{
|
|
type: "datetime",
|
|
name: "date",
|
|
label: "Date"
|
|
},
|
|
{
|
|
label: "Auteur",
|
|
name: "author",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "jeux",
|
|
label: "Jeux"
|
|
},
|
|
{
|
|
value: "musique",
|
|
label: "Musique"
|
|
},
|
|
{
|
|
value: "art",
|
|
label: "Art"
|
|
},
|
|
{
|
|
value: "cinema",
|
|
label: "Cinema"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: "Type de projet",
|
|
name: "project_types",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "obsidian",
|
|
label: "Obsidian"
|
|
},
|
|
{
|
|
value: "seum",
|
|
label: "Seum"
|
|
},
|
|
{
|
|
value: "veko",
|
|
label: "Veko"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: "Technologies",
|
|
name: "tech_stack",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "foundry",
|
|
label: "Foundry"
|
|
},
|
|
{
|
|
value: "c#",
|
|
label: "C#"
|
|
},
|
|
{
|
|
value: "js",
|
|
label: "JS"
|
|
},
|
|
{
|
|
value: "obs",
|
|
label: "OBS"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: "rich-text",
|
|
name: "body",
|
|
label: "Body",
|
|
isBody: true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "contact",
|
|
label: "Contact",
|
|
path: "content/contact",
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "description",
|
|
label: "Description"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "jdb",
|
|
label: "Journal de bord",
|
|
path: "content/JDB",
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "description",
|
|
label: "Description"
|
|
},
|
|
{
|
|
type: "rich-text",
|
|
name: "body",
|
|
label: "Body",
|
|
isBody: true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "createurs",
|
|
label: "Createurs",
|
|
path: "content/createurs",
|
|
ui: {
|
|
filename: {
|
|
// if disabled, the editor can not edit the filename
|
|
readonly: true,
|
|
// Example of using a custom slugify function
|
|
slugify: (values) => {
|
|
return `${values?.title?.toLowerCase().replace(/ /g, "-") + "/index.md"}`;
|
|
}
|
|
}
|
|
},
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "summary",
|
|
label: "Sommaire"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "slug",
|
|
label: "Slug"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "feature_image",
|
|
label: "Image principale"
|
|
},
|
|
{
|
|
type: "rich-text",
|
|
name: "body",
|
|
label: "Body",
|
|
isBody: true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
name: "jeux",
|
|
label: "Jeux",
|
|
path: "content/jeux",
|
|
ui: {
|
|
filename: {
|
|
// if disabled, the editor can not edit the filename
|
|
readonly: true,
|
|
// Example of using a custom slugify function
|
|
slugify: (values) => {
|
|
return `${values?.title?.toLowerCase().replace(/ /g, "-") + "/index.md"}`;
|
|
}
|
|
}
|
|
},
|
|
fields: [
|
|
{
|
|
type: "string",
|
|
name: "title",
|
|
label: "Titre",
|
|
isTitle: true,
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "seo_title",
|
|
label: "Titre SEO",
|
|
required: true
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "summary",
|
|
label: "Sommaire"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "description",
|
|
label: "Description"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "slug",
|
|
label: "Slug"
|
|
},
|
|
{
|
|
type: "string",
|
|
name: "feature_image",
|
|
label: "Image principale"
|
|
},
|
|
{
|
|
type: "datetime",
|
|
name: "date",
|
|
label: "Date"
|
|
},
|
|
{
|
|
label: "Tags",
|
|
name: "tags",
|
|
type: "string",
|
|
list: true,
|
|
options: [
|
|
{
|
|
value: "mmo",
|
|
label: "MMO"
|
|
},
|
|
{
|
|
value: "fps",
|
|
label: "FPS"
|
|
},
|
|
{
|
|
value: "multi",
|
|
label: "Multijoueur"
|
|
},
|
|
{
|
|
value: "strategy",
|
|
label: "Strat\xE9gie"
|
|
},
|
|
{
|
|
value: "rpg",
|
|
label: "RPG"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: "rich-text",
|
|
name: "body",
|
|
label: "Body",
|
|
isBody: true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
});
|
|
export {
|
|
config_default as default
|
|
};
|