@rmdes/indiekit-endpoint-homepage 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,118 @@
1
+ # @rmdes/indiekit-endpoint-homepage
2
+
3
+ Homepage builder endpoint for [Indiekit](https://getindiekit.com). Provides a visual admin UI for configuring your site's homepage layout, content sections, sidebar widgets, and footer columns.
4
+
5
+ ## Features
6
+
7
+ - **Layout options** — Single-column, two-column, or full-width hero layouts
8
+ - **Drag-and-drop sections** — Arrange content sections from any registered plugin
9
+ - **Sidebar widgets** — Author card, search, categories, blogroll, social activity, and more
10
+ - **Footer columns** — Up to 3 configurable footer columns
11
+ - **Layout presets** — Quick-start presets for Blog, CV/Portfolio, or Hybrid layouts
12
+ - **Plugin discovery** — Automatically discovers sections/widgets from other Indiekit plugins
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @rmdes/indiekit-endpoint-homepage
18
+ ```
19
+
20
+ ## Configuration
21
+
22
+ Add to your `indiekit.config.js`:
23
+
24
+ ```javascript
25
+ import HomepageEndpoint from "@rmdes/indiekit-endpoint-homepage";
26
+
27
+ const homepage = new HomepageEndpoint({
28
+ mountPath: "/homepage",
29
+ contentDir: "/app/data/content"
30
+ });
31
+
32
+ export default {
33
+ plugins: [homepage],
34
+ // ... other config
35
+ };
36
+ ```
37
+
38
+ ## Usage
39
+
40
+ Once installed, navigate to `/homepage` in your Indiekit admin panel. The homepage builder lets you:
41
+
42
+ 1. **Choose a layout** — Select single-column, two-column, or full-width hero
43
+ 2. **Apply a preset** — Quick-start with Blog, CV/Portfolio, or Hybrid
44
+ 3. **Add sections** — Drag content sections into the main area
45
+ 4. **Configure sidebar** — Add widgets to the sidebar (two-column layout)
46
+ 5. **Set up footer** — Add up to 3 footer columns
47
+
48
+ Changes are saved to MongoDB and written as a JSON file that triggers an Eleventy rebuild.
49
+
50
+ ## Plugin Discovery
51
+
52
+ The homepage builder automatically discovers content sections and sidebar widgets from other installed Indiekit plugins. Any plugin that exports `homepageSections` or `homepageWidgets` will have its sections available in the builder.
53
+
54
+ ### Registering Sections from Your Plugin
55
+
56
+ ```javascript
57
+ class MyEndpoint {
58
+ get homepageSections() {
59
+ return [
60
+ {
61
+ id: "my-section",
62
+ label: "My Section",
63
+ description: "Displays my content",
64
+ dataEndpoint: "/my-plugin/api/data.json"
65
+ }
66
+ ];
67
+ }
68
+ }
69
+ ```
70
+
71
+ ## Built-in Content
72
+
73
+ ### Sections
74
+ - **Hero** — Author intro with avatar, name, and bio
75
+ - **Recent Posts** — Latest posts from your site
76
+ - **Custom HTML** — Freeform content block
77
+
78
+ ### Widgets
79
+ - **Author Card** — h-card with author info
80
+ - **Recent Posts** — Latest posts sidebar
81
+ - **Categories** — Tag cloud
82
+ - **Search** — Site search box
83
+ - **Social Activity** — Bluesky/Mastodon feeds
84
+ - **GitHub Repos** — Featured repositories
85
+ - **Funkwhale** — Listening activity
86
+ - **Blogroll** — Blog recommendations
87
+
88
+ ## Integration
89
+
90
+ ### With indiekit-eleventy-theme
91
+
92
+ The theme reads `homepage.json` (generated by this plugin) to render the configured homepage layout. No additional theme configuration is needed.
93
+
94
+ ### With indiekit-endpoint-cv
95
+
96
+ The CV plugin registers 5 homepage sections: experience, skills, education, projects, and interests. Install both plugins to build a CV-style homepage.
97
+
98
+ ### With other plugins
99
+
100
+ Any plugin that exports `homepageSections` or `homepageWidgets` is automatically discovered:
101
+ - `@rmdes/indiekit-endpoint-github` — GitHub activity
102
+ - `@rmdes/indiekit-endpoint-funkwhale` — Funkwhale listening
103
+ - `@rmdes/indiekit-endpoint-lastfm` — Last.fm scrobbles
104
+ - `@rmdes/indiekit-endpoint-blogroll` — Blogroll
105
+ - `@rmdes/indiekit-endpoint-podroll` — Podcast roll
106
+ - `@rmdes/indiekit-endpoint-youtube` — YouTube videos
107
+
108
+ ## API Endpoints
109
+
110
+ | Endpoint | Auth | Description |
111
+ |----------|------|-------------|
112
+ | `GET /homepage/api/config.json` | Public | Current homepage configuration |
113
+ | `GET /homepage/api/sections` | Protected | List all available sections |
114
+ | `GET /homepage/api/widgets` | Protected | List all available widgets |
115
+
116
+ ## License
117
+
118
+ MIT
package/index.js CHANGED
@@ -34,7 +34,7 @@ export default class HomepageEndpoint {
34
34
  get navigationItems() {
35
35
  return {
36
36
  href: this.options.mountPath,
37
- text: "homepage.title",
37
+ text: "homepageBuilder.title",
38
38
  requiresDatabase: true,
39
39
  };
40
40
  }
@@ -42,7 +42,7 @@ export default class HomepageEndpoint {
42
42
  get shortcutItems() {
43
43
  return {
44
44
  url: this.options.mountPath,
45
- name: "homepage.title",
45
+ name: "homepageBuilder.title",
46
46
  iconName: "home",
47
47
  requiresDatabase: true,
48
48
  };
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "Homepage-Builder",
4
+ "description": "Konfigurieren Sie das Layout Ihrer Homepage, Abschnitte, Sidebar-Widgets und Fußzeile.",
5
+ "presets": {
6
+ "title": "Schnellstart",
7
+ "description": "Wählen Sie eine Vorlage, um Ihre Homepage schnell zu konfigurieren. Sie können sie unten weiter anpassen.",
8
+ "apply": "Anwenden",
9
+ "active": "Aktiv",
10
+ "custom": "Benutzerdefiniert",
11
+ "customDescription": "Ihr eigenes angepasstes Layout"
12
+ },
13
+ "saved": "Konfiguration erfolgreich gespeichert. Aktualisieren Sie Ihre Homepage, um die Änderungen zu sehen.",
14
+ "save": "Konfiguration speichern",
15
+ "layout": {
16
+ "title": "Layout",
17
+ "singleColumn": "Einzelne Spalte",
18
+ "twoColumn": "Zwei Spalten mit Sidebar",
19
+ "fullWidthHero": "Volle Breite Hero + Raster"
20
+ },
21
+ "hero": {
22
+ "title": "Hero-Bereich",
23
+ "enabled": "Hero-Bereich mit Autoreninfo anzeigen",
24
+ "showSocial": "Soziale Links im Hero anzeigen"
25
+ },
26
+ "sections": {
27
+ "title": "Inhaltsbereiche",
28
+ "description": "Fügen Sie Abschnitte hinzu und ordnen Sie sie im Hauptinhaltsbereich an.",
29
+ "add": "Abschnitt hinzufügen",
30
+ "empty": "Keine Abschnitte konfiguriert. Fügen Sie Abschnitte aus der Auswahl unten hinzu."
31
+ },
32
+ "sidebar": {
33
+ "title": "Sidebar-Widgets",
34
+ "description": "Konfigurieren Sie Widgets, die in der Sidebar erscheinen (nur mit zweispaltigem Layout sichtbar).",
35
+ "add": "Widget hinzufügen",
36
+ "empty": "Keine Widgets konfiguriert. Fügen Sie Widgets aus der Auswahl unten hinzu."
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "Blog-Listen-Sidebar",
40
+ "description": "Konfigurieren Sie Widgets für die Sidebar auf Blog-Listenseiten (/blog/, /notes/, /articles/...). Leer lassen für Standard-Widgets.",
41
+ "add": "Widget hinzufügen",
42
+ "empty": "Keine Widgets konfiguriert — Standard-Sidebar wird verwendet."
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "Blog-Beitrags-Sidebar",
46
+ "description": "Konfigurieren Sie Widgets für die Sidebar auf einzelnen Beitragsseiten. Leer lassen für Standard-Widgets.",
47
+ "add": "Widget hinzufügen",
48
+ "empty": "Keine Widgets konfiguriert — Standard-Sidebar wird verwendet."
49
+ },
50
+ "footer": {
51
+ "title": "Fußzeile (3-spaltig)",
52
+ "description": "Ein responsiver 3-spaltiger Bereich unterhalb des Hauptinhalts — fügen Sie bis zu 3 Blöcke hinzu (einen pro Spalte). Ideal für Webrings, Links oder benutzerdefinierten Inhalt.",
53
+ "add": "Fußzeilen-Spalte hinzufügen",
54
+ "empty": "Keine Fußzeilen-Spalten konfiguriert.",
55
+ "full": "Alle 3 Fußzeilen-Spalten sind gefüllt."
56
+ },
57
+ "customContent": {
58
+ "editTitle": "Benutzerdefinierten Inhalt bearbeiten",
59
+ "titleLabel": "Titel (optional)",
60
+ "contentLabel": "Inhalt (HTML oder Text)",
61
+ "save": "Anwenden",
62
+ "cancel": "Abbrechen"
63
+ }
64
+ }
65
+ }
package/locales/en.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "homepage": {
2
+ "homepageBuilder": {
3
3
  "title": "Homepage Builder",
4
4
  "description": "Configure your homepage layout, sections, sidebar widgets, and footer.",
5
5
  "presets": {
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "Constructor de página de inicio",
4
+ "description": "Configura el diseño de tu página de inicio, secciones, widgets de la barra lateral y pie de página.",
5
+ "presets": {
6
+ "title": "Inicio rápido",
7
+ "description": "Elige una plantilla para configurar rápidamente tu página de inicio. Puedes personalizarla más abajo.",
8
+ "apply": "Aplicar",
9
+ "active": "Activo",
10
+ "custom": "Personalizado",
11
+ "customDescription": "Tu propio diseño personalizado"
12
+ },
13
+ "saved": "Configuración guardada correctamente. Actualiza tu página de inicio para ver los cambios.",
14
+ "save": "Guardar configuración",
15
+ "layout": {
16
+ "title": "Diseño",
17
+ "singleColumn": "Una columna",
18
+ "twoColumn": "Dos columnas con barra lateral",
19
+ "fullWidthHero": "Hero a ancho completo + Cuadrícula"
20
+ },
21
+ "hero": {
22
+ "title": "Sección Hero",
23
+ "enabled": "Mostrar sección hero con información del autor",
24
+ "showSocial": "Mostrar enlaces sociales en hero"
25
+ },
26
+ "sections": {
27
+ "title": "Secciones de contenido",
28
+ "description": "Agrega y organiza secciones que aparecen en el área de contenido principal.",
29
+ "add": "Agregar sección",
30
+ "empty": "No hay secciones configuradas. Agrega secciones desde el selector a continuación."
31
+ },
32
+ "sidebar": {
33
+ "title": "Widgets de la barra lateral",
34
+ "description": "Configura widgets que aparecen en la barra lateral (solo visible con diseño de dos columnas).",
35
+ "add": "Agregar widget",
36
+ "empty": "No hay widgets configurados. Agrega widgets desde el selector a continuación."
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "Barra lateral del listado de blog",
40
+ "description": "Configura widgets que aparecen en la barra lateral de las páginas de listado del blog (/blog/, /notes/, /articles/...). Deja vacío para usar widgets predeterminados.",
41
+ "add": "Agregar widget",
42
+ "empty": "No hay widgets configurados — usando barra lateral predeterminada."
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "Barra lateral de entrada de blog",
46
+ "description": "Configura widgets que aparecen en la barra lateral en páginas de entradas individuales. Deja vacío para usar widgets predeterminados.",
47
+ "add": "Agregar widget",
48
+ "empty": "No hay widgets configurados — usando barra lateral predeterminada."
49
+ },
50
+ "footer": {
51
+ "title": "Pie de página (3 columnas)",
52
+ "description": "Un área adaptable de 3 columnas debajo del contenido principal — agrega hasta 3 bloques (uno por columna). Ideal para webrings, enlaces o contenido personalizado.",
53
+ "add": "Agregar columna de pie",
54
+ "empty": "No hay columnas de pie configuradas.",
55
+ "full": "Las 3 columnas de pie están llenas."
56
+ },
57
+ "customContent": {
58
+ "editTitle": "Editar contenido personalizado",
59
+ "titleLabel": "Título (opcional)",
60
+ "contentLabel": "Contenido (HTML o texto)",
61
+ "save": "Aplicar",
62
+ "cancel": "Cancelar"
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "Constructor de página de inicio",
4
+ "description": "Configure el diseño de su página de inicio, secciones, widgets de la barra lateral y pie de página.",
5
+ "presets": {
6
+ "title": "Inicio rápido",
7
+ "description": "Elija una plantilla para configurar rápidamente su página de inicio. Puede personalizarla más abajo.",
8
+ "apply": "Aplicar",
9
+ "active": "Activo",
10
+ "custom": "Personalizado",
11
+ "customDescription": "Su propio diseño personalizado"
12
+ },
13
+ "saved": "Configuración guardada correctamente. Actualice su página de inicio para ver los cambios.",
14
+ "save": "Guardar configuración",
15
+ "layout": {
16
+ "title": "Diseño",
17
+ "singleColumn": "Una columna",
18
+ "twoColumn": "Dos columnas con barra lateral",
19
+ "fullWidthHero": "Hero a ancho completo + Cuadrícula"
20
+ },
21
+ "hero": {
22
+ "title": "Sección Hero",
23
+ "enabled": "Mostrar sección hero con información del autor",
24
+ "showSocial": "Mostrar enlaces sociales en hero"
25
+ },
26
+ "sections": {
27
+ "title": "Secciones de contenido",
28
+ "description": "Añada y organice secciones que aparecen en el área de contenido principal.",
29
+ "add": "Añadir sección",
30
+ "empty": "No hay secciones configuradas. Añada secciones desde el selector a continuación."
31
+ },
32
+ "sidebar": {
33
+ "title": "Widgets de la barra lateral",
34
+ "description": "Configure widgets que aparecen en la barra lateral (solo visible con diseño de dos columnas).",
35
+ "add": "Añadir widget",
36
+ "empty": "No hay widgets configurados. Añada widgets desde el selector a continuación."
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "Barra lateral del listado de blog",
40
+ "description": "Configure widgets que aparecen en la barra lateral de las páginas de listado del blog (/blog/, /notes/, /articles/...). Deje vacío para usar widgets predeterminados.",
41
+ "add": "Añadir widget",
42
+ "empty": "No hay widgets configurados — usando barra lateral predeterminada."
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "Barra lateral de entrada de blog",
46
+ "description": "Configure widgets que aparecen en la barra lateral en páginas de entradas individuales. Deje vacío para usar widgets predeterminados.",
47
+ "add": "Añadir widget",
48
+ "empty": "No hay widgets configurados — usando barra lateral predeterminada."
49
+ },
50
+ "footer": {
51
+ "title": "Pie de página (3 columnas)",
52
+ "description": "Un área adaptable de 3 columnas debajo del contenido principal — añada hasta 3 bloques (uno por columna). Ideal para webrings, enlaces o contenido personalizado.",
53
+ "add": "Añadir columna de pie",
54
+ "empty": "No hay columnas de pie configuradas.",
55
+ "full": "Las 3 columnas de pie están llenas."
56
+ },
57
+ "customContent": {
58
+ "editTitle": "Editar contenido personalizado",
59
+ "titleLabel": "Título (opcional)",
60
+ "contentLabel": "Contenido (HTML o texto)",
61
+ "save": "Aplicar",
62
+ "cancel": "Cancelar"
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "Constructeur de page d'accueil",
4
+ "description": "Configurez la mise en page de votre page d'accueil, les sections, les widgets de la barre latérale et le pied de page.",
5
+ "presets": {
6
+ "title": "Démarrage rapide",
7
+ "description": "Choisissez un modèle pour configurer rapidement votre page d'accueil. Vous pouvez la personnaliser davantage ci-dessous.",
8
+ "apply": "Appliquer",
9
+ "active": "Actif",
10
+ "custom": "Personnalisé",
11
+ "customDescription": "Votre propre mise en page personnalisée"
12
+ },
13
+ "saved": "Configuration enregistrée avec succès. Actualisez votre page d'accueil pour voir les modifications.",
14
+ "save": "Enregistrer la configuration",
15
+ "layout": {
16
+ "title": "Mise en page",
17
+ "singleColumn": "Colonne unique",
18
+ "twoColumn": "Deux colonnes avec barre latérale",
19
+ "fullWidthHero": "Hero pleine largeur + Grille"
20
+ },
21
+ "hero": {
22
+ "title": "Section Hero",
23
+ "enabled": "Afficher la section hero avec les informations sur l'auteur",
24
+ "showSocial": "Afficher les liens sociaux dans le hero"
25
+ },
26
+ "sections": {
27
+ "title": "Sections de contenu",
28
+ "description": "Ajoutez et organisez les sections qui apparaissent dans la zone de contenu principal.",
29
+ "add": "Ajouter une section",
30
+ "empty": "Aucune section configurée. Ajoutez des sections depuis le sélecteur ci-dessous."
31
+ },
32
+ "sidebar": {
33
+ "title": "Widgets de la barre latérale",
34
+ "description": "Configurez les widgets qui apparaissent dans la barre latérale (visible uniquement avec la mise en page à deux colonnes).",
35
+ "add": "Ajouter un widget",
36
+ "empty": "Aucun widget configuré. Ajoutez des widgets depuis le sélecteur ci-dessous."
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "Barre latérale des listes de blog",
40
+ "description": "Configurez les widgets qui apparaissent dans la barre latérale des pages de listes de blog (/blog/, /notes/, /articles/...). Laissez vide pour utiliser les widgets par défaut.",
41
+ "add": "Ajouter un widget",
42
+ "empty": "Aucun widget configuré — utilisation de la barre latérale par défaut."
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "Barre latérale des articles",
46
+ "description": "Configurez les widgets qui apparaissent dans la barre latérale des pages d'articles individuels. Laissez vide pour utiliser les widgets par défaut.",
47
+ "add": "Ajouter un widget",
48
+ "empty": "Aucun widget configuré — utilisation de la barre latérale par défaut."
49
+ },
50
+ "footer": {
51
+ "title": "Pied de page (3 colonnes)",
52
+ "description": "Une zone responsive à 3 colonnes sous le contenu principal — ajoutez jusqu'à 3 blocs (un par colonne). Idéal pour les webrings, liens ou contenu personnalisé.",
53
+ "add": "Ajouter une colonne de pied de page",
54
+ "empty": "Aucune colonne de pied de page configurée.",
55
+ "full": "Les 3 colonnes de pied de page sont remplies."
56
+ },
57
+ "customContent": {
58
+ "editTitle": "Modifier le contenu personnalisé",
59
+ "titleLabel": "Titre (facultatif)",
60
+ "contentLabel": "Contenu (HTML ou texte)",
61
+ "save": "Appliquer",
62
+ "cancel": "Annuler"
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "होमपेज बिल्डर",
4
+ "description": "अपने होमपेज का लेआउट, सेक्शन, साइडबार विजेट और फुटर कॉन्फ़िगर करें।",
5
+ "presets": {
6
+ "title": "त्वरित शुरुआत",
7
+ "description": "अपने होमपेज को तुरंत कॉन्फ़िगर करने के लिए एक प्रीसेट चुनें। आप इसे नीचे और अनुकूलित कर सकते हैं।",
8
+ "apply": "लागू करें",
9
+ "active": "सक्रिय",
10
+ "custom": "कस्टम",
11
+ "customDescription": "आपका अपना अनुकूलित लेआउट"
12
+ },
13
+ "saved": "कॉन्फ़िगरेशन सफलतापूर्वक सहेजा गया। परिवर्तन देखने के लिए अपना होमपेज रीफ्रेश करें।",
14
+ "save": "कॉन्फ़िगरेशन सहेजें",
15
+ "layout": {
16
+ "title": "लेआउट",
17
+ "singleColumn": "एकल कॉलम",
18
+ "twoColumn": "साइडबार के साथ दो कॉलम",
19
+ "fullWidthHero": "पूर्ण-चौड़ाई Hero + ग्रिड"
20
+ },
21
+ "hero": {
22
+ "title": "Hero सेक्शन",
23
+ "enabled": "लेखक जानकारी के साथ hero सेक्शन दिखाएं",
24
+ "showSocial": "Hero में सोशल लिंक दिखाएं"
25
+ },
26
+ "sections": {
27
+ "title": "सामग्री सेक्शन",
28
+ "description": "मुख्य सामग्री क्षेत्र में दिखाई देने वाले सेक्शन जोड़ें और व्यवस्थित करें।",
29
+ "add": "सेक्शन जोड़ें",
30
+ "empty": "कोई सेक्शन कॉन्फ़िगर नहीं किए गए। नीचे पिकर से सेक्शन जोड़ें।"
31
+ },
32
+ "sidebar": {
33
+ "title": "साइडबार विजेट",
34
+ "description": "साइडबार में दिखाई देने वाले विजेट कॉन्फ़िगर करें (केवल दो-कॉलम लेआउट के साथ दृश्यमान)।",
35
+ "add": "विजेट जोड़ें",
36
+ "empty": "कोई विजेट कॉन्फ़िगर नहीं किए गए। नीचे पिकर से विजेट जोड़ें।"
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "ब्लॉग लिस्टिंग साइडबार",
40
+ "description": "ब्लॉग लिस्टिंग पेज (/blog/, /notes/, /articles/...) पर साइडबार में दिखाई देने वाले विजेट कॉन्फ़िगर करें। डिफ़ॉल्ट विजेट उपयोग करने के लिए खाली छोड़ें।",
41
+ "add": "विजेट जोड़ें",
42
+ "empty": "कोई विजेट कॉन्फ़िगर नहीं किए गए — डिफ़ॉल्ट साइडबार उपयोग किया जा रहा है।"
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "ब्लॉग पोस्ट साइडबार",
46
+ "description": "व्यक्तिगत पोस्ट पेज पर साइडबार में दिखाई देने वाले विजेट कॉन्फ़िगर करें। डिफ़ॉल्ट विजेट उपयोग करने के लिए खाली छोड़ें।",
47
+ "add": "विजेट जोड़ें",
48
+ "empty": "कोई विजेट कॉन्फ़िगर नहीं किए गए — डिफ़ॉल्ट साइडबार उपयोग किया जा रहा है।"
49
+ },
50
+ "footer": {
51
+ "title": "फुटर (3-कॉलम)",
52
+ "description": "मुख्य सामग्री के नीचे एक रेस्पॉन्सिव 3-कॉलम क्षेत्र — 3 ब्लॉक तक जोड़ें (प्रति कॉलम एक)। webrings, लिंक या कस्टम सामग्री के लिए आदर्श।",
53
+ "add": "फुटर कॉलम जोड़ें",
54
+ "empty": "कोई फुटर कॉलम कॉन्फ़िगर नहीं किए गए।",
55
+ "full": "सभी 3 फुटर कॉलम भरे हुए हैं।"
56
+ },
57
+ "customContent": {
58
+ "editTitle": "कस्टम सामग्री संपादित करें",
59
+ "titleLabel": "शीर्षक (वैकल्पिक)",
60
+ "contentLabel": "सामग्री (HTML या टेक्स्ट)",
61
+ "save": "लागू करें",
62
+ "cancel": "रद्द करें"
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "Pembuat Beranda",
4
+ "description": "Konfigurasi tata letak beranda, bagian, widget sidebar, dan footer Anda.",
5
+ "presets": {
6
+ "title": "Mulai Cepat",
7
+ "description": "Pilih preset untuk mengkonfigurasi beranda Anda dengan cepat. Anda dapat menyesuaikannya lebih lanjut di bawah.",
8
+ "apply": "Terapkan",
9
+ "active": "Aktif",
10
+ "custom": "Kustom",
11
+ "customDescription": "Tata letak kustom Anda sendiri"
12
+ },
13
+ "saved": "Konfigurasi berhasil disimpan. Refresh beranda Anda untuk melihat perubahan.",
14
+ "save": "Simpan Konfigurasi",
15
+ "layout": {
16
+ "title": "Tata Letak",
17
+ "singleColumn": "Kolom Tunggal",
18
+ "twoColumn": "Dua Kolom dengan Sidebar",
19
+ "fullWidthHero": "Hero Lebar Penuh + Grid"
20
+ },
21
+ "hero": {
22
+ "title": "Bagian Hero",
23
+ "enabled": "Tampilkan bagian hero dengan info penulis",
24
+ "showSocial": "Tampilkan tautan sosial di hero"
25
+ },
26
+ "sections": {
27
+ "title": "Bagian Konten",
28
+ "description": "Tambahkan dan atur bagian yang muncul di area konten utama.",
29
+ "add": "Tambah Bagian",
30
+ "empty": "Tidak ada bagian yang dikonfigurasi. Tambahkan bagian dari pemilih di bawah."
31
+ },
32
+ "sidebar": {
33
+ "title": "Widget Sidebar",
34
+ "description": "Konfigurasi widget yang muncul di sidebar (hanya terlihat dengan tata letak dua kolom).",
35
+ "add": "Tambah Widget",
36
+ "empty": "Tidak ada widget yang dikonfigurasi. Tambahkan widget dari pemilih di bawah."
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "Sidebar Daftar Blog",
40
+ "description": "Konfigurasi widget yang muncul di sidebar pada halaman daftar blog (/blog/, /notes/, /articles/...). Biarkan kosong untuk menggunakan widget default.",
41
+ "add": "Tambah Widget",
42
+ "empty": "Tidak ada widget yang dikonfigurasi — menggunakan sidebar default."
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "Sidebar Posting Blog",
46
+ "description": "Konfigurasi widget yang muncul di sidebar pada halaman posting individual. Biarkan kosong untuk menggunakan widget default.",
47
+ "add": "Tambah Widget",
48
+ "empty": "Tidak ada widget yang dikonfigurasi — menggunakan sidebar default."
49
+ },
50
+ "footer": {
51
+ "title": "Footer (3-kolom)",
52
+ "description": "Area responsif 3-kolom di bawah konten utama — tambahkan hingga 3 blok (satu per kolom). Ideal untuk webring, tautan, atau konten kustom.",
53
+ "add": "Tambah Kolom Footer",
54
+ "empty": "Tidak ada kolom footer yang dikonfigurasi.",
55
+ "full": "Semua 3 kolom footer telah terisi."
56
+ },
57
+ "customContent": {
58
+ "editTitle": "Edit Konten Kustom",
59
+ "titleLabel": "Judul (opsional)",
60
+ "contentLabel": "Konten (HTML atau teks)",
61
+ "save": "Terapkan",
62
+ "cancel": "Batal"
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "homepageBuilder": {
3
+ "title": "Costruttore Homepage",
4
+ "description": "Configura il layout della tua homepage, sezioni, widget della barra laterale e footer.",
5
+ "presets": {
6
+ "title": "Avvio rapido",
7
+ "description": "Scegli un preset per configurare rapidamente la tua homepage. Puoi personalizzarla ulteriormente di seguito.",
8
+ "apply": "Applica",
9
+ "active": "Attivo",
10
+ "custom": "Personalizzato",
11
+ "customDescription": "Il tuo layout personalizzato"
12
+ },
13
+ "saved": "Configurazione salvata con successo. Aggiorna la tua homepage per vedere le modifiche.",
14
+ "save": "Salva Configurazione",
15
+ "layout": {
16
+ "title": "Layout",
17
+ "singleColumn": "Colonna Singola",
18
+ "twoColumn": "Due Colonne con Barra Laterale",
19
+ "fullWidthHero": "Hero a Larghezza Intera + Griglia"
20
+ },
21
+ "hero": {
22
+ "title": "Sezione Hero",
23
+ "enabled": "Mostra sezione hero con info autore",
24
+ "showSocial": "Mostra link social nell'hero"
25
+ },
26
+ "sections": {
27
+ "title": "Sezioni Contenuto",
28
+ "description": "Aggiungi e organizza le sezioni che appaiono nell'area del contenuto principale.",
29
+ "add": "Aggiungi Sezione",
30
+ "empty": "Nessuna sezione configurata. Aggiungi sezioni dal selettore qui sotto."
31
+ },
32
+ "sidebar": {
33
+ "title": "Widget Barra Laterale",
34
+ "description": "Configura i widget che appaiono nella barra laterale (visibili solo con layout a due colonne).",
35
+ "add": "Aggiungi Widget",
36
+ "empty": "Nessun widget configurato. Aggiungi widget dal selettore qui sotto."
37
+ },
38
+ "blogListingSidebar": {
39
+ "title": "Barra Laterale Elenco Blog",
40
+ "description": "Configura i widget che appaiono nella barra laterale nelle pagine di elenco blog (/blog/, /notes/, /articles/...). Lascia vuoto per usare i widget predefiniti.",
41
+ "add": "Aggiungi Widget",
42
+ "empty": "Nessun widget configurato — usando la barra laterale predefinita."
43
+ },
44
+ "blogPostSidebar": {
45
+ "title": "Barra Laterale Post Blog",
46
+ "description": "Configura i widget che appaiono nella barra laterale nelle pagine dei singoli post. Lascia vuoto per usare i widget predefiniti.",
47
+ "add": "Aggiungi Widget",
48
+ "empty": "Nessun widget configurato — usando la barra laterale predefinita."
49
+ },
50
+ "footer": {
51
+ "title": "Footer (3 colonne)",
52
+ "description": "Un'area responsive a 3 colonne sotto il contenuto principale — aggiungi fino a 3 blocchi (uno per colonna). Ideale per webring, link o contenuto personalizzato.",
53
+ "add": "Aggiungi Colonna Footer",
54
+ "empty": "Nessuna colonna footer configurata.",
55
+ "full": "Tutte e 3 le colonne footer sono piene."
56
+ },
57
+ "customContent": {
58
+ "editTitle": "Modifica Contenuto Personalizzato",
59
+ "titleLabel": "Titolo (opzionale)",
60
+ "contentLabel": "Contenuto (HTML o testo)",
61
+ "save": "Applica",
62
+ "cancel": "Annulla"
63
+ }
64
+ }
65
+ }