Skip to content

Commit fe82b3a

Browse files
Alexandre Oliveiraclaude
andcommitted
feat(turing): redesign landing page with PDF banner, feature cards and nav grid
- Convert index.md β†’ index.mdx for rich MDX/JSX components - Add versioned PDF download banner (turing-es-2026.1-documentation.pdf) with brand styling, icon and hover button β€” prominent above the fold - Add Key Capabilities feature grid (Semantic Navigation, GenAI, Integration, Security) with icon cards - Add Quick Start 4-step guide with hover cards - Replace plain markdown tables with NavCard grid components for all documentation sections (Administration, Enterprise Search, Management, GenAI, Technical Reference, Other) - Add SectionLabel divider component for visual hierarchy - Rename PDF output to turing-es-2026.1-documentation.pdf in package.json and deploy.yml so downloaded file clearly shows version Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 20fca33 commit fe82b3a

4 files changed

Lines changed: 239 additions & 88 deletions

File tree

β€Ž.github/workflows/deploy.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
run: npm run gen-pdf
5050

5151
- name: Copy PDF into build folder
52-
run: cp turing-documentation.pdf build/
52+
run: cp turing-es-2026.1-documentation.pdf build/
5353

5454
- name: Upload artifact
5555
uses: actions/upload-pages-artifact@v3

β€Ždocs-turing/index.mdβ€Ž

Lines changed: 0 additions & 86 deletions
This file was deleted.

β€Ždocs-turing/index.mdxβ€Ž

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
---
2+
sidebar_position: 1
3+
title: Turing ES
4+
description: Viglet Turing ES β€” Enterprise Search with Semantic Navigation and Generative AI
5+
slug: /
6+
---
7+
8+
import Link from '@docusaurus/Link';
9+
10+
export const VERSION = "2026.1";
11+
export const PDF_FILENAME = `turing-es-${VERSION}-documentation.pdf`;
12+
13+
export const Pill = ({ children, color = "var(--color-brand)" }) => (
14+
<span style={{
15+
display: "inline-flex", alignItems: "center", gap: "6px",
16+
background: "var(--color-brand-bg)", color: color,
17+
border: "1px solid var(--color-brand-border)",
18+
borderRadius: "999px", padding: "2px 12px",
19+
fontSize: "0.75rem", fontWeight: 600, letterSpacing: "0.02em",
20+
}}>
21+
{children}
22+
</span>
23+
);
24+
25+
export const FeatureCard = ({ icon, title, children }) => (
26+
<div style={{
27+
background: "var(--color-card)", border: "1px solid var(--color-border)",
28+
borderRadius: "12px", padding: "1.25rem 1.5rem",
29+
display: "flex", flexDirection: "column", gap: "6px",
30+
}}>
31+
<div style={{ fontSize: "1.75rem", lineHeight: 1 }}>{icon}</div>
32+
<div style={{ fontWeight: 700, fontSize: "0.9375rem", color: "var(--color-foreground)" }}>{title}</div>
33+
<div style={{ fontSize: "0.875rem", color: "var(--color-muted-foreground)", lineHeight: 1.6 }}>{children}</div>
34+
</div>
35+
);
36+
37+
export const NavCard = ({ icon, title, description, href }) => (
38+
<Link to={href} style={{ textDecoration: "none" }}>
39+
<div style={{
40+
background: "var(--color-card)", border: "1px solid var(--color-border)",
41+
borderRadius: "10px", padding: "1rem 1.25rem",
42+
display: "flex", gap: "12px", alignItems: "flex-start",
43+
transition: "box-shadow 0.15s, transform 0.15s",
44+
cursor: "pointer",
45+
}}
46+
onMouseEnter={e => { e.currentTarget.style.transform = "translateY(-2px)"; e.currentTarget.style.boxShadow = "0 4px 20px rgba(0,0,0,0.08)"; }}
47+
onMouseLeave={e => { e.currentTarget.style.transform = ""; e.currentTarget.style.boxShadow = ""; }}
48+
>
49+
<div style={{
50+
width: "36px", height: "36px", borderRadius: "8px", flexShrink: 0,
51+
background: "var(--color-brand-bg)", display: "flex", alignItems: "center",
52+
justifyContent: "center", fontSize: "1.1rem",
53+
}}>{icon}</div>
54+
<div>
55+
<div style={{ fontWeight: 600, fontSize: "0.9rem", color: "var(--color-foreground)", marginBottom: "2px" }}>{title}</div>
56+
<div style={{ fontSize: "0.8125rem", color: "var(--color-muted-foreground)", lineHeight: 1.5 }}>{description}</div>
57+
</div>
58+
</div>
59+
</Link>
60+
);
61+
62+
export const SectionLabel = ({ children }) => (
63+
<div style={{ display: "flex", alignItems: "center", gap: "10px", margin: "2.5rem 0 1rem" }}>
64+
<div style={{ height: "1px", flex: 1, background: "var(--color-border)" }} />
65+
<span style={{
66+
fontSize: "0.7rem", fontWeight: 700, letterSpacing: "0.1em",
67+
textTransform: "uppercase", color: "var(--color-muted-foreground)", whiteSpace: "nowrap",
68+
}}>{children}</span>
69+
<div style={{ height: "1px", flex: 1, background: "var(--color-border)" }} />
70+
</div>
71+
);
72+
73+
{/* ── Header ──────────────────────────────────────────────────────────────── */}
74+
75+
<div style={{ display: "flex", alignItems: "center", gap: "10px", marginBottom: "1rem", flexWrap: "wrap" }}>
76+
<Pill>v{VERSION}</Pill>
77+
<Pill>Open Source</Pill>
78+
<Pill>Apache 2.0</Pill>
79+
</div>
80+
81+
# Viglet Turing ES
82+
83+
**Viglet Turing ES** is an open-source enterprise search platform combining **Semantic Navigation**, **content integration**, and **Generative AI**. Index content from any source, deliver faceted search experiences, and deploy conversational AI grounded in your own data.
84+
85+
{/* ── PDF Download Banner ─────────────────────────────────────────────────── */}
86+
87+
<div style={{
88+
display: "flex", alignItems: "center", justifyContent: "space-between",
89+
flexWrap: "wrap", gap: "16px",
90+
background: "linear-gradient(135deg, var(--color-brand-bg) 0%, #fff7ed 100%)",
91+
border: "1px solid var(--color-brand-border)",
92+
borderLeft: "4px solid var(--color-brand)",
93+
borderRadius: "10px", padding: "1.1rem 1.5rem",
94+
margin: "1.75rem 0",
95+
}}>
96+
<div style={{ display: "flex", alignItems: "center", gap: "14px" }}>
97+
<div style={{
98+
width: "44px", height: "44px", borderRadius: "10px", flexShrink: 0,
99+
background: "var(--color-brand)", display: "flex", alignItems: "center",
100+
justifyContent: "center", fontSize: "1.4rem",
101+
}}>πŸ“„</div>
102+
<div>
103+
<div style={{ fontWeight: 700, fontSize: "0.9375rem", color: "var(--color-foreground)" }}>
104+
Complete Documentation β€” v{VERSION}
105+
</div>
106+
<div style={{ fontSize: "0.8125rem", color: "var(--color-muted-foreground)", marginTop: "2px" }}>
107+
All guides, API reference and configuration in a single portable PDF Β· generated on every release
108+
</div>
109+
</div>
110+
</div>
111+
<a
112+
href={`/${PDF_FILENAME}`}
113+
target="_blank"
114+
rel="noopener noreferrer"
115+
style={{
116+
display: "inline-flex", alignItems: "center", gap: "7px",
117+
background: "var(--color-brand)", color: "#fff",
118+
borderRadius: "8px", padding: "9px 20px",
119+
fontWeight: 600, fontSize: "0.875rem", textDecoration: "none",
120+
whiteSpace: "nowrap", transition: "opacity 0.15s",
121+
}}
122+
onMouseEnter={e => e.currentTarget.style.opacity = "0.85"}
123+
onMouseLeave={e => e.currentTarget.style.opacity = "1"}
124+
>
125+
⬇&nbsp; Download PDF
126+
</a>
127+
</div>
128+
129+
{/* ── Feature highlights ──────────────────────────────────────────────────── */}
130+
131+
<SectionLabel>Key Capabilities</SectionLabel>
132+
133+
<div style={{
134+
display: "grid", gap: "12px",
135+
gridTemplateColumns: "repeat(auto-fit, minmax(220px, 1fr))",
136+
marginBottom: "0.5rem",
137+
}}>
138+
<FeatureCard icon="πŸ”" title="Semantic Navigation">
139+
Faceted search, autocomplete, spotlights, targeting rules, result ranking and per-site AI insights.
140+
</FeatureCard>
141+
<FeatureCard icon="πŸ€–" title="Generative AI">
142+
RAG over your indexed content, LLM instances, AI agents, tool calling and MCP server integration.
143+
</FeatureCard>
144+
<FeatureCard icon="πŸ”Œ" title="Content Integration">
145+
REST API connectors, AEM, web crawler, delta tracking, merge providers and indexing rules.
146+
</FeatureCard>
147+
<FeatureCard icon="πŸ”’" title="Security">
148+
Native session auth, REST API key tokens and production-grade Keycloak OAuth2/OIDC SSO.
149+
</FeatureCard>
150+
</div>
151+
152+
{/* ── Quick Start ─────────────────────────────────────────────────────────── */}
153+
154+
<SectionLabel>Quick Start</SectionLabel>
155+
156+
<div style={{
157+
display: "grid", gap: "10px",
158+
gridTemplateColumns: "repeat(auto-fit, minmax(180px, 1fr))",
159+
marginBottom: "0.5rem",
160+
}}>
161+
{[
162+
{ step: "01", title: "Install", desc: "Docker, standalone JAR or from source", href: "/turing/installation-guide" },
163+
{ step: "02", title: "Configure", desc: "application.yaml properties reference", href: "/turing/configuration-reference" },
164+
{ step: "03", title: "Understand", desc: "SN Sites, connectors and the data model", href: "/turing/getting-started/core-concepts" },
165+
{ step: "04", title: "Search", desc: "REST API, search params and response format", href: "/turing/rest-api" },
166+
].map(({ step, title, desc, href }) => (
167+
<Link key={step} to={href} style={{ textDecoration: "none" }}>
168+
<div style={{
169+
background: "var(--color-card)", border: "1px solid var(--color-border)",
170+
borderRadius: "10px", padding: "1rem 1.25rem",
171+
transition: "box-shadow 0.15s, transform 0.15s",
172+
}}
173+
onMouseEnter={e => { e.currentTarget.style.transform = "translateY(-2px)"; e.currentTarget.style.boxShadow = "0 4px 20px rgba(0,0,0,0.08)"; }}
174+
onMouseLeave={e => { e.currentTarget.style.transform = ""; e.currentTarget.style.boxShadow = ""; }}
175+
>
176+
<div style={{ fontSize: "0.7rem", fontWeight: 800, letterSpacing: "0.1em", color: "var(--color-brand)", marginBottom: "6px" }}>
177+
STEP {step}
178+
</div>
179+
<div style={{ fontWeight: 700, fontSize: "0.9375rem", color: "var(--color-foreground)", marginBottom: "4px" }}>{title}</div>
180+
<div style={{ fontSize: "0.8125rem", color: "var(--color-muted-foreground)", lineHeight: 1.5 }}>{desc}</div>
181+
</div>
182+
</Link>
183+
))}
184+
</div>
185+
186+
{/* ── Navigation cards ────────────────────────────────────────────────────── */}
187+
188+
<SectionLabel>Administration & Development</SectionLabel>
189+
190+
<div style={{ display: "grid", gap: "10px", gridTemplateColumns: "repeat(auto-fit, minmax(260px, 1fr))" }}>
191+
<NavCard icon="βš™οΈ" title="Administration Guide" description="Users, roles, API tokens, global settings and system information" href="/turing/administration-guide" />
192+
<NavCard icon="πŸ› οΈ" title="Developer Guide" description="Tech stack, dev environment, Java SDK and contribution guide" href="/turing/developer-guide" />
193+
<NavCard icon="πŸ“‘" title="REST API Reference" description="Search, autocomplete, spell check, GenAI chat and token usage endpoints" href="/turing/rest-api" />
194+
</div>
195+
196+
<SectionLabel>Enterprise Search</SectionLabel>
197+
198+
<div style={{ display: "grid", gap: "10px", gridTemplateColumns: "repeat(auto-fit, minmax(260px, 1fr))" }}>
199+
<NavCard icon="πŸ—„οΈ" title="Search Engine" description="Manage Solr, Elasticsearch and Lucene backends, cores and monitoring" href="/turing/search-engine" />
200+
<NavCard icon="🧭" title="Semantic Navigation" description="Configure SN Sites β€” fields, facets, spotlights, targeting rules, result ranking and GenAI" href="/turing/semantic-navigation" />
201+
<NavCard icon="πŸ”—" title="Integration" description="Connect AEM and web crawler sources with indexing rules and monitoring" href="/turing/integration" />
202+
</div>
203+
204+
<SectionLabel>Management</SectionLabel>
205+
206+
<div style={{ display: "grid", gap: "10px", gridTemplateColumns: "repeat(auto-fit, minmax(260px, 1fr))" }}>
207+
<NavCard icon="πŸ—‚οΈ" title="Assets" description="File manager backed by MinIO β€” upload, organise and train the RAG knowledge base" href="/turing/assets" />
208+
</div>
209+
210+
<SectionLabel>Generative AI</SectionLabel>
211+
212+
<div style={{ display: "grid", gap: "10px", gridTemplateColumns: "repeat(auto-fit, minmax(260px, 1fr))" }}>
213+
<NavCard icon="🧠" title="GenAI & LLM Configuration" description="RAG architecture, embedding pipeline and core GenAI concepts" href="/turing/genai-llm" />
214+
<NavCard icon="⚑" title="LLM Instances" description="Configure provider connections β€” vendors, models, API keys and capabilities" href="/turing/llm-instances" />
215+
<NavCard icon="πŸ—ƒοΈ" title="Embedding Stores & Models" description="ChromaDB, PgVector and Milvus backends with embedding model selection" href="/turing/embedding-stores" />
216+
<NavCard icon="πŸ”§" title="Tool Calling" description="27 native tools across 7 categories available to AI Agents" href="/turing/tool-calling" />
217+
<NavCard icon="🌐" title="MCP Servers" description="Extend agents with external tools via the Model Context Protocol" href="/turing/mcp-servers" />
218+
<NavCard icon="πŸ€–" title="AI Agents" description="Compose and deploy purpose-built AI assistants with custom tools and personas" href="/turing/ai-agents" />
219+
<NavCard icon="πŸ’¬" title="Chat" description="Chat interface β€” direct LLM, Semantic Navigation and AI Agent views" href="/turing/chat" />
220+
<NavCard icon="πŸ“Š" title="Token Usage" description="Monitor and analyse LLM token consumption by model and day" href="/turing/token-usage" />
221+
</div>
222+
223+
<SectionLabel>Technical Reference</SectionLabel>
224+
225+
<div style={{ display: "grid", gap: "10px", gridTemplateColumns: "repeat(auto-fit, minmax(260px, 1fr))" }}>
226+
<NavCard icon="πŸ—οΈ" title="Architecture Overview" description="Component diagram, indexing and search flows, deployment topologies" href="/turing/architecture-overview" />
227+
<NavCard icon="πŸ”‘" title="Authentication" description="Native session login and REST API Key authentication" href="/turing/security-authentication" />
228+
<NavCard icon="πŸ›‘οΈ" title="Security & Keycloak" description="Full OAuth2/OIDC production setup with Keycloak, Apache proxy and SSL" href="/turing/security-keycloak" />
229+
<NavCard icon="πŸ“š" title="SN Concepts" description="Targeting Rules, Spotlights, Merge Providers, Facets and search response structure" href="/turing/sn-concepts" />
230+
</div>
231+
232+
<SectionLabel>Other</SectionLabel>
233+
234+
<div style={{ display: "grid", gap: "10px", gridTemplateColumns: "repeat(auto-fit, minmax(260px, 1fr))" }}>
235+
<NavCard icon="πŸ“" title="Release Notes" description="Release history and changelog" href="/turing/release-notes" />
236+
<NavCard icon="β˜•" title="Javadoc" description="Java API Reference β€” full source-level documentation" href="https://turing.viglet.com/latest/javadoc/" />
237+
</div>

β€Žpackage.jsonβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"deploy": "docusaurus deploy",
1313
"clear": "docusaurus clear",
1414
"serve": "docusaurus serve",
15-
"gen-pdf": "mr-pdf --initialDocURLs=\"http://localhost:3000/turing/getting-started/intro\" --contentSelector=\"article\" --paginationSelector=\"a.pagination-nav__link--next\" --pdfOptions=\"{\\\"format\\\":\\\"A4\\\",\\\"margin\\\":{\\\"top\\\":\\\"20mm\\\",\\\"bottom\\\":\\\"20mm\\\",\\\"left\\\":\\\"15mm\\\",\\\"right\\\":\\\"15mm\\\"}}\" --outputFileName=\"turing-documentation.pdf\"",
15+
"gen-pdf": "mr-pdf --initialDocURLs=\"http://localhost:3000/turing/getting-started/intro\" --contentSelector=\"article\" --paginationSelector=\"a.pagination-nav__link--next\" --pdfOptions=\"{\\\"format\\\":\\\"A4\\\",\\\"margin\\\":{\\\"top\\\":\\\"20mm\\\",\\\"bottom\\\":\\\"20mm\\\",\\\"left\\\":\\\"15mm\\\",\\\"right\\\":\\\"15mm\\\"}}\" --outputFileName=\"turing-es-2026.1-documentation.pdf\"",
1616
"write-translations": "docusaurus write-translations",
1717
"write-heading-ids": "docusaurus write-heading-ids"
1818
},

0 commit comments

Comments
Β (0)