Skip to content

Commit e896a55

Browse files
committed
feat(ktl-2781): added data for case studies page
1 parent 2d613d1 commit e896a55

File tree

8 files changed

+802
-0
lines changed

8 files changed

+802
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# CaseItem (data contract for a single case study entry)
2+
#
3+
# Required fields:
4+
# - id: string — unique identifier of the case
5+
# - description: string — markdown-enabled text (supports **bold** and [links](https://example.com))
6+
# - type: string — one of: multiplatform | server-side
7+
#
8+
# Optional fields:
9+
# - logo: list (0–2) of image paths (strings)
10+
# Use up to two logos. Paths can be absolute (starting with "/") or full URLs.
11+
#
12+
# - signature: object — author or source of the quote
13+
# line1: string — supports markdown (e.g., **Name Surname**, Role)
14+
# line2: string — plain text
15+
#
16+
# - destination: string — either internal or external
17+
# internal: the card points to an internal MDX page (see pageContentPath)
18+
# external: the card points to an external resource (see externalUrl)
19+
#
20+
# - externalLink: string — external link for the card (used when destination: external)
21+
#
22+
# - externalLinkText: string — text for the external link (used when destination: external)
23+
#
24+
# - platforms: list of strings — platform tags shown on the card
25+
# Examples: android, ios, desktop, frontend, backend, compose-multiplatform
26+
#
27+
# - media: object — media block for the card
28+
# type: youtube | image
29+
# When type: youtube
30+
# url: string — YouTube link
31+
# When type: image
32+
# path: string — image path relative to /public/ directory
33+
#
34+
# - featuredOnMainPage: boolean — mark this case to be highlighted on the main page
35+
#
36+
# - slug: string — optional URL segment for the internal case page; if omitted, id is used
37+
# Use a single URL segment (no slashes, no section prefix).
38+
#
39+
# - pageContentPath: string — path to the detailed case content in MDX (used when destination: internal)
40+
41+
items:
42+
- id: CompanyName # required: unique identifier
43+
type: server-side # required: multiplatform | server-side
44+
description: > # required: markdown-supported text
45+
**Case description** supporting [links](https://example.com) and emphasis.
46+
logo: # optional: list of 0–2 image paths (strings)
47+
- /images/case-studies/google.svg
48+
- /images/case-studies/google.svg
49+
signature: # optional
50+
line1: "**Name Surname**"
51+
line2: "Position at Company or note"
52+
destination: external # optional: internal | external
53+
externalLink: https://example.com/full-story # optional
54+
externalLinkText: Read the full story # optional
55+
platforms: # optional
56+
- android
57+
- ios
58+
- desktop
59+
- frontend
60+
- backend
61+
- compose-multiplatform
62+
media: # optional
63+
type: youtube # required: youtube | image
64+
url: https://youtu.be/o14wGByBRAQ?si=TmqJBtfZw2F8-IEw&t=7
65+
# when type: image
66+
# type: image
67+
# path: ./images/case-studies/google.svg
68+
featuredOnMainPage: false # optional: mark case as selected for the main page
69+
slug: example-slug # optional: if not set, id will be used
70+
# Specify one of the two fields (not both):
71+
pageContentPath: ./data/case-studies/_case-study.example/index.mdx # path to MDX file with page content
72+
# OR
73+
internalLink: https://kotlinlang.org/lp/server-side/case-studies/example-slug/ # direct link to existing page
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
id: unique-id-derived-from-company
3+
company: CompanyName
4+
industry: Some service
5+
size: 3000+
6+
country: USA, San Francisco
7+
---
8+
9+
# CompanyName: Kotlin for backend at scale
10+
11+
Description
12+
13+
## Context
14+
15+
- Items
16+
- Reasons
17+
- Results
18+
19+
> Cites, emphasis, links
20+
21+
![Image](/images/case-studies/google_logo.svg)
22+
23+
## Outcomes
24+
25+
CTA, links, etc.

0 commit comments

Comments
 (0)