スキーマリファレンス
このページは takuhon.json スキーマのすべてのフィールド(各セクション、型、必須かどうか、
制約、用途)を記載します。ドキュメント全体のやさしい導入は
takuhon.json ファイル を参照してください。
以下の表は canonical なスキーマ(バージョン 1.4.0)から生成しています。各フィールドの説明は、canonical な契約として英語で維持されているスキーマからそのまま転記しています。
トップレベルドキュメント
Section titled “トップレベルドキュメント”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
schemaVersion | string | 必須 | pattern ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?$ | Semantic version of the takuhon schema this document conforms to. |
profile | Profile | 必須 | — | — |
links | Link の配列 | 任意 | ≤ 100 件 | — |
careers | Career の配列 | 任意 | ≤ 50 件 | — |
projects | Project の配列 | 任意 | ≤ 100 件 | — |
skills | Skill の配列 | 任意 | ≤ 200 件 | — |
certifications | Certification の配列 | 任意 | ≤ 50 件 | — |
memberships | Membership の配列 | 任意 | ≤ 50 件 | — |
volunteering | Volunteering の配列 | 任意 | ≤ 50 件 | — |
honors | Honor の配列 | 任意 | ≤ 50 件 | — |
education | Education の配列 | 任意 | ≤ 30 件 | — |
publications | Publication の配列 | 任意 | ≤ 100 件 | — |
languages | Language の配列 | 任意 | ≤ 30 件 | — |
courses | Course の配列 | 任意 | ≤ 100 件 | — |
patents | Patent の配列 | 任意 | ≤ 50 件 | — |
testScores | TestScore の配列 | 任意 | ≤ 30 件 | — |
recommendations | Recommendation の配列 | 任意 | ≤ 50 件 | — |
highlights | Highlight の配列 | 任意 | ≤ 50 件 | — |
contact | Contact | 必須 | — | — |
settings | Settings | 必須 | — | — |
meta | Meta | 必須 | — | — |
上記以外のプロパティは許可されません。
定義 (Definitions)
Section titled “定義 (Definitions)”LocaleTag
Section titled “LocaleTag”BCP-47 language tag (e.g., ‘en’, ‘ja’, ‘zh-Hant’, ‘pt-BR’).
- 型:
string - 制約: pattern
^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$; 2–35 文字
Iso3166Alpha2
Section titled “Iso3166Alpha2”ISO 3166-1 alpha-2 country code (uppercase, two letters).
- 型:
string - 制約: pattern
^[A-Z]{2}$
YearMonth
Section titled “YearMonth”Year-month in ‘YYYY-MM’ format (Gregorian calendar).
- 型:
string - 制約: pattern
^[0-9]{4}-(0[1-9]|1[0-2])$
IsoDateTime
Section titled “IsoDateTime”ISO 8601 date-time (e.g., 2026-05-11T12:34:56Z).
- 型:
string - 制約: format
date-time
- 型:
string - 制約: format
uri; ≤ 2048 文字
- 型:
string - 制約: format
email; ≤ 254 文字
URL-safe identifier (lowercase alphanumerics and hyphens, must start with alphanumeric).
- 型:
string - 制約: pattern
^[a-z0-9][a-z0-9-]*$; 1–64 文字
Visibility
Section titled “Visibility”Per-item public visibility (added in 0.7.0). ‘private’ removes the item from every public surface via applyPublicPrivacyFilter; an absent value or ‘public’ keeps the item public.
- 型:
string - 制約: いずれか:
public,private
LocalizedTitle
Section titled “LocalizedTitle”Map of BCP-47 locale tag to short title-like string (max 200 chars per value). Each value must contain at least one non-whitespace character.
- 型: object (マップ)
- キー: pattern
^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$ - 値:
string(pattern\S; 1–200 文字) - 制約: 1 件以上
LocalizedBody
Section titled “LocalizedBody”Map of BCP-47 locale tag to body-length string (max 5000 chars per value). Each value must contain at least one non-whitespace character.
- 型: object (マップ)
- キー: pattern
^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$ - 値:
string(pattern\S; 1–5000 文字) - 制約: 1 件以上
LinkType
Section titled “LinkType”Identifies the kind of link. ‘custom’ requires iconUrl.
- 型:
string - 制約: いずれか:
website,blog,github,gitlab,linkedin,x,mastodon,bluesky,instagram,youtube,threads,facebook,email,rss,custom
Profile
Section titled “Profile”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
displayName | LocalizedTitle | 必須 | — | — |
tagline | LocalizedTitle | 任意 | — | — |
bio | LocalizedBody | 任意 | — | — |
avatar | Avatar | 任意 | — | — |
location | Address | 任意 | — | — |
上記以外のプロパティは許可されません。
Avatar
Section titled “Avatar”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
url | string | 必須 | format uri-reference; ≤ 2048 文字 | URL or path to the avatar image. |
alt | LocalizedTitle | 任意 | — | — |
上記以外のプロパティは許可されません。
Address
Section titled “Address”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
country | Iso3166Alpha2 | 任意 | — | — |
region | string | 任意 | ≤ 100 文字 | — |
locality | LocalizedTitle | 任意 | — | — |
display | LocalizedTitle | 任意 | — | — |
上記以外のプロパティは許可されません。
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
type | LinkType | 必須 | — | — |
label | LocalizedTitle | 任意 | — | — |
url | Url | 必須 | — | — |
featured | boolean | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
iconUrl | Url | 任意 | — | — |
type が custom の場合、iconUrl を必須とします。
上記以外のプロパティは許可されません。
Career
Section titled “Career”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
organization | LocalizedTitle | 必須 | — | — |
role | LocalizedTitle | 必須 | — | — |
description | LocalizedBody | 任意 | — | — |
startDate | YearMonth | 必須 | — | — |
endDate | YearMonth または null | 任意 | — | — |
isCurrent | boolean | 任意 | — | — |
url | Url | 任意 | — | — |
location | Address | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Project
Section titled “Project”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
role | LocalizedTitle | 任意 | — | The owner’s role/relationship on this project (added in 1.4.0), e.g. “Author & lead maintainer”, “Contributor”, “Product owner”. Rendered as a short line under the project title. Localized, like the section-entry roles in Career/Membership/Volunteering. |
description | LocalizedBody | 任意 | — | — |
url | Url | 任意 | — | — |
tags | string の配列 | 任意 | ≤ 30 件; 件: 1–50 文字 | — |
relatedCareerId | Slug | 任意 | — | — |
startDate | YearMonth | 任意 | — | — |
endDate | YearMonth または null | 任意 | — | — |
highlighted | boolean | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
label | string または LocalizedTitle | 必須 | — | Skill name. A plain string is locale-independent; a localized map (added in 1.4.0) resolves per request locale. Existing single-string labels stay valid — the map form is purely additive. |
category | string | 任意 | 1–64 文字 | Recommended values (extensible): programming, design, business, communication, language, music, art, sports, other. |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
SkillCategory
Section titled “SkillCategory”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | string | 必須 | 1–64 文字 | Matches the category value on the skills that belong to this group. |
label | LocalizedTitle | 必須 | — | Localized display heading for the group. |
上記以外のプロパティは許可されません。
Contact
Section titled “Contact”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
email | 任意 | — | — | |
showEmail | boolean | 任意 | default false | — |
formUrl | Url | 任意 | — | — |
上記以外のプロパティは許可されません。
Settings
Section titled “Settings”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
defaultLocale | LocaleTag | 必須 | — | — |
fallbackLocale | LocaleTag | 任意 | — | — |
availableLocales | LocaleTag の配列 | 必須 | 1–50 件; 重複なし | — |
theme | string | 任意 | 1–64 文字 | UI theme identifier. ‘default’ is the built-in theme; adapters may add more. |
showPoweredBy | boolean | 任意 | default true | Display the ‘Powered by takuhon’ attribution in the rendered profile. |
enableJsonLd | boolean | 任意 | default true | Emit Schema.org JSON-LD on the rendered profile page. |
enableApi | boolean | 任意 | default true | Expose the public read API endpoints (GET /api/profile, /api/jsonld, /api/schema, /takuhon.json). |
enableAnalytics | boolean | 任意 | default false | Opt-in flag for first-party analytics. Default is false to keep takuhon privacy-respecting by default. |
activity | ActivitySettings | 任意 | — | — |
publicVisibility | PublicVisibility | 任意 | — | — |
contact | ContactSettings | 任意 | — | — |
appearance | AppearanceSettings | 任意 | — | — |
skillCategories | SkillCategory の配列 | 任意 | ≤ 50 件 | Ordered skill-category display groups (added in 1.3.0). When present, the rendered profile groups skills by their category under these localized headings, in array order; absent = the flat skill list. A skill whose category is not listed here (or which has none) renders in a trailing group so nothing is dropped. |
sectionOrder | any の配列 | 任意 | ≤ 18 件; 重複なし; 件: いずれか: about, careers, projects, volunteering, skills, activity, education, certifications, publications, honors, memberships, courses, patents, testScores, languages, recommendations, highlights, contact | Explicit section display order (added in 1.4.0). A partial list is allowed — any renderable section not named here follows, in the default order. Absent = the default order. |
sectionLabels | SectionLabelOverrides | 任意 | — | — |
highlightsIntro | LocalizedTitle | 任意 | — | Optional localized intro line shown under the highlights section heading (added in 1.4.0). Absent = no intro line. |
上記以外のプロパティは許可されません。
SectionLabelOverrides
Section titled “SectionLabelOverrides”Localized overrides for section headings and chrome labels (added in 1.4.0). Each present key retitles that label; the renderer merges these over its built-in locale pack. Absent keys keep the built-in label.
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
about | LocalizedTitle | 任意 | — | — |
careers | LocalizedTitle | 任意 | — | — |
projects | LocalizedTitle | 任意 | — | — |
volunteering | LocalizedTitle | 任意 | — | — |
skills | LocalizedTitle | 任意 | — | — |
activity | LocalizedTitle | 任意 | — | — |
education | LocalizedTitle | 任意 | — | — |
certifications | LocalizedTitle | 任意 | — | — |
publications | LocalizedTitle | 任意 | — | — |
honors | LocalizedTitle | 任意 | — | — |
memberships | LocalizedTitle | 任意 | — | — |
courses | LocalizedTitle | 任意 | — | — |
patents | LocalizedTitle | 任意 | — | — |
testScores | LocalizedTitle | 任意 | — | — |
languages | LocalizedTitle | 任意 | — | — |
recommendations | LocalizedTitle | 任意 | — | — |
highlights | LocalizedTitle | 任意 | — | — |
contact | LocalizedTitle | 任意 | — | — |
skipLink | LocalizedTitle | 任意 | — | — |
localeNav | LocalizedTitle | 任意 | — | — |
featuredLinks | LocalizedTitle | 任意 | — | — |
otherLinks | LocalizedTitle | 任意 | — | — |
poweredBy | LocalizedTitle | 任意 | — | — |
上記以外のプロパティは許可されません。
AppearanceSettings
Section titled “AppearanceSettings”Opt-in design tokens for the rendered profile (added in 1.2.0). A declarative re-skin seam: owners override the standard renderer’s built-in color and font defaults. This is a token map only, not arbitrary CSS — every value is length- and pattern-constrained so it cannot break out of the inline
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
fontFamily | string | 任意 | pattern ^[A-Za-z0-9\s,'"._-]+$; 1–256 文字 | CSS font-family stack for the page body, e.g. “Inter, system-ui, sans-serif”. Quotes and commas are allowed; CSS-structural characters (; { } < >) are not. |
colors | AppearanceColors | 任意 | — | Light-mode (:root) color overrides. |
colorsDark | AppearanceColors | 任意 | — | Dark-mode (prefers-color-scheme: dark) color overrides. Note: until the standard renderer ships a default dark palette, only the keys set here change in dark mode. |
上記以外のプロパティは許可されません。
AppearanceColors
Section titled “AppearanceColors”A set of overridable color tokens. Each value is a CSS color (hex, rgb()/rgba(), hsl()/hsla(), or a named color); CSS-structural characters (; { } < > ” ’ ) are disallowed so a value cannot escape the inline
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
bg | CssColor | 任意 | — | Page background. |
surface | CssColor | 任意 | — | Raised surfaces such as skill/tag chips. |
text | CssColor | 任意 | — | Primary body text. |
textMuted | CssColor | 任意 | — | Secondary/muted text (taglines, meta, captions). |
border | CssColor | 任意 | — | Hairline borders and rules. |
accent | CssColor | 任意 | — | Accent color for emphasis and focus affordances. |
primary | CssColor | 任意 | — | Primary interactive color, e.g. links. |
primaryContrast | CssColor | 任意 | — | Foreground color used on top of the primary color. |
heading | CssColor | 任意 | — | Heading color for the “About” section’s Markdown sub-headings (##/###). |
上記以外のプロパティは許可されません。
CssColor
Section titled “CssColor”A CSS color value, restricted to a safe allowlist: a hex color (#rgb/#rgba/#rrggbb/#rrggbbaa), a bare keyword (named colors, currentColor, transparent), or a color function (rgb/rgba/hsl/hsla/hwb/lab/lch/oklab/oklch/color). url(), image-set(), var(), and other fetch- or reference-bearing functions are intentionally excluded so a value can never trigger an external request or escape the inline
- 型:
string - 制約: pattern
^(?:#[0-9A-Fa-f]{3,8}|[A-Za-z]+|(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color)\([A-Za-z0-9.,%/\s-]*\))$; 1–64 文字
ContactSettings
Section titled “ContactSettings”Opt-in contact form configuration (added in 1.1.0). Only public values live here; the Turnstile site key is safe to embed in the page. The Turnstile secret, the recipient address, and the From label are provisioned out of band as environment configuration and are never stored in takuhon.json. Adapters that support the form mount the widget and a POST endpoint when ‘enabled’ is true.
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
enabled | boolean | 任意 | default false | Master switch. When false (the default), no contact form is mounted even if a site key is present. |
turnstileSiteKey | string | 任意 | 1–128 文字 | Public Cloudflare Turnstile site key, safe to embed in the page. Without it the widget is not mounted. |
endpoint | string | 任意 | 1–2048 文字 | Override the POST endpoint the widget submits to. Defaults to /api/contact on the same origin. |
subjectPrefix | string | 任意 | 1–128 文字 | Subject prefix for the delivered email, e.g. ‘[example.com contact]’. |
上記以外のプロパティは許可されません。
PublicVisibility
Section titled “PublicVisibility”Per-section public visibility (added in 0.6.0). Each key is a content section; setting it to false hides that whole section from every public surface (GET /, /api/profile, /api/jsonld, /takuhon.json, MCP, and the derived CV) via the shared applyPublicPrivacyFilter. An absent key — or an absent object — means the section is public, so the default is all-visible and omitting this block is fully backwards-compatible. The profile identity (profile.displayName, …) is always public and is intentionally not a key here. Field-level controls (contact.showEmail, meta.privacy.*) still apply within a visible section: visibility is the AND of the feature toggle, this section flag, and the field flag.
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
links | boolean | 任意 | — | Default true. When false, links[] is emitted empty on public surfaces. |
careers | boolean | 任意 | — | Default true. When false, careers[] is emitted empty on public surfaces. |
projects | boolean | 任意 | — | Default true. When false, projects[] is emitted empty on public surfaces. |
skills | boolean | 任意 | — | Default true. When false, skills[] is emitted empty on public surfaces. |
certifications | boolean | 任意 | — | Default true. When false, certifications[] is emitted empty on public surfaces. |
memberships | boolean | 任意 | — | Default true. When false, memberships[] is emitted empty on public surfaces. |
volunteering | boolean | 任意 | — | Default true. When false, volunteering[] is emitted empty on public surfaces. |
honors | boolean | 任意 | — | Default true. When false, honors[] is emitted empty on public surfaces. |
education | boolean | 任意 | — | Default true. When false, education[] is emitted empty on public surfaces. |
publications | boolean | 任意 | — | Default true. When false, publications[] is emitted empty on public surfaces. |
languages | boolean | 任意 | — | Default true. When false, languages[] is emitted empty on public surfaces. |
courses | boolean | 任意 | — | Default true. When false, courses[] is emitted empty on public surfaces. |
patents | boolean | 任意 | — | Default true. When false, patents[] is emitted empty on public surfaces. |
testScores | boolean | 任意 | — | Default true. When false, testScores[] is emitted empty on public surfaces. |
recommendations | boolean | 任意 | — | Default true. When false, recommendations[] is emitted empty on public surfaces. |
highlights | boolean | 任意 | — | Default true. When false, highlights[] is emitted empty on public surfaces. |
contact | boolean | 任意 | — | Default true. When false, the contact section (email, formUrl) is emitted empty on public surfaces. |
上記以外のプロパティは許可されません。
ActivitySettings
Section titled “ActivitySettings”Opt-in developer-activity dashboard configuration (GitHub / WakaTime). Only the owner-curated settings live here; secrets are provisioned out of band and the synced metrics are stored in a separate document, never in takuhon.json.
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
enabled | boolean | 任意 | default false | Master switch. When false (the default), the activity section is not rendered even if a snapshot exists. |
github | object | 任意 | — | — |
wakatime | object | 任意 | — | — |
showRank | boolean | 任意 | default true | Display the derived activity rank / badge. |
refreshHintHours | integer | 任意 | 1–168 | Advisory refresh cadence in hours. The real cadence is how often the sync step (CLI command or scheduled job) runs. |
上記以外のプロパティは許可されません。
ActivitySettings.github
Section titled “ActivitySettings.github”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
username | string | 必須 | 1–39 文字 | GitHub login whose public activity is summarized. |
showLanguages | boolean | 任意 | default true | — |
showContributions | boolean | 任意 | default true | — |
上記以外のプロパティは許可されません。
ActivitySettings.wakatime
Section titled “ActivitySettings.wakatime”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
username | string | 必須 | 1–255 文字 | WakaTime username whose coding-time stats are summarized. |
showCodingTime | boolean | 任意 | default true | — |
上記以外のプロパティは許可されません。
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
createdAt | IsoDateTime | 任意 | — | — |
updatedAt | IsoDateTime | 任意 | — | — |
generator | string | 任意 | 1–100 文字 | Tool that produced this document (e.g. ‘Takuhon’, ‘create-takuhon@0.1.0’). |
contentLicense | ContentLicense | 必須 | — | — |
privacy | MetaPrivacy | 任意 | — | — |
上記以外のプロパティは許可されません。
ContentLicense
Section titled “ContentLicense”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
spdxId | string | 必須 | 1–64 文字 | SPDX identifier (e.g., ‘CC-BY-4.0’, ‘CC0-1.0’) or ‘Proprietary’. No default; the profile owner must choose explicitly. |
url | Url | 任意 | — | — |
attribution | object | 任意 | — | — |
rights | string | 任意 | 1–1000 文字 | Free-form rights statement (used when spdxId=‘Proprietary’ or for additional notices). |
上記以外のプロパティは許可されません。
ContentLicense.attribution
Section titled “ContentLicense.attribution”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
name | string | 任意 | 1–200 文字 | — |
url | Url | 任意 | — | — |
上記以外のプロパティは許可されません。
MetaPrivacy
Section titled “MetaPrivacy”Opt-out flags that strip personally identifying fields from public API output (GET /api/profile, /api/jsonld, /takuhon.json). Admin endpoints (PUT /api/admin/*, GET /api/admin/export) ignore these flags. Privacy-by-default: omitting the object or individual flags is equivalent to true.
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
hideCredentialIds | boolean | 任意 | default true | When true (default), strip certifications[*].credentialId from public responses. |
hideEducationGrades | boolean | 任意 | default true | When true (default), strip education[*].grade from public responses. |
上記以外のプロパティは許可されません。
Certification
Section titled “Certification”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
issuingOrganization | LocalizedTitle | 必須 | — | — |
issueDate | YearMonth | 必須 | — | — |
expirationDate | YearMonth または null | 任意 | — | null = explicitly ‘no expiration’. Omit if unknown/unstated. |
credentialId | string | 任意 | 1–100 文字 | License or certificate number. Public exposure controlled by meta.privacy.hideCredentialIds. |
url | Url | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Membership
Section titled “Membership”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
organization | LocalizedTitle | 必須 | — | — |
role | LocalizedTitle | 任意 | — | — |
description | LocalizedBody | 任意 | — | — |
startDate | YearMonth | 必須 | — | — |
endDate | YearMonth または null | 任意 | — | null = ongoing. Omit if unknown. |
isCurrent | boolean | 任意 | — | — |
url | Url | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Volunteering
Section titled “Volunteering”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
organization | LocalizedTitle | 必須 | — | — |
role | LocalizedTitle | 必須 | — | — |
cause | LocalizedTitle | 任意 | — | — |
description | LocalizedBody | 任意 | — | — |
startDate | YearMonth | 必須 | — | — |
endDate | YearMonth または null | 任意 | — | — |
isCurrent | boolean | 任意 | — | — |
url | Url | 任意 | — | — |
secondaryLink | SecondaryLink | 任意 | — | An optional second link for this entry (added in 1.4.0), rendered as a small pill beside the description — e.g. the organization’s GitHub org page next to its main site. The brand glyph is resolved from the URL host; no vendor name is hard-coded. |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
SecondaryLink
Section titled “SecondaryLink”A supplementary link with an optional localized label (added in 1.4.0). When the label is absent the renderer shows the URL host. The brand glyph is resolved from the URL host.
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
url | Url | 必須 | — | The link target. |
label | LocalizedTitle | 任意 | — | Localized display label. When absent, the renderer derives a label from the URL host. |
上記以外のプロパティは許可されません。
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
issuer | LocalizedTitle | 必須 | — | — |
description | LocalizedBody | 任意 | — | — |
date | YearMonth | 必須 | — | — |
url | Url | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Education
Section titled “Education”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
institution | LocalizedTitle | 必須 | — | — |
degree | LocalizedTitle | 任意 | — | — |
fieldOfStudy | LocalizedTitle | 任意 | — | — |
description | LocalizedBody | 任意 | — | — |
grade | string | 任意 | 1–50 文字 | Free-form grade / class / GPA. Public exposure controlled by meta.privacy.hideEducationGrades. |
startDate | YearMonth | 必須 | — | — |
endDate | YearMonth または null | 任意 | — | null = currently enrolled. |
isCurrent | boolean | 任意 | — | — |
url | Url | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Publication
Section titled “Publication”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
publisher | LocalizedTitle | 任意 | — | — |
description | LocalizedBody | 任意 | — | — |
date | YearMonth | 必須 | — | — |
url | Url | 任意 | — | — |
doi | string | 任意 | 1–200 文字 | DOI identifier (e.g. ‘10.1145/3548643.3548644’). The full URL goes in ‘url’. |
coAuthors | string の配列 | 任意 | ≤ 50 件; 件: 1–100 文字 | Co-author names in original script. Excludes the profile owner. |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Language
Section titled “Language”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
language | LocaleTag | 必須 | — | — |
displayName | LocalizedTitle | 任意 | — | — |
proficiency | string | 必須 | いずれか: native, fluent, professional, intermediate, basic | LinkedIn-compatible 5-level proficiency. |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Course
Section titled “Course”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
provider | LocalizedTitle | 任意 | — | — |
courseNumber | string | 任意 | 1–50 文字 | — |
description | LocalizedBody | 任意 | — | — |
completionDate | YearMonth | 任意 | — | — |
certificateUrl | Url | 任意 | — | — |
relatedEducationId | Slug | 任意 | — | Optional reference to an education[].id (e.g. for university coursework). |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Patent
Section titled “Patent”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
patentNumber | string | 必須 | 1–100 文字 | — |
office | string | 任意 | ≤ 100 文字 | Patent office name (e.g. ‘USPTO’, ‘JPO’, ‘EPO’). |
status | string | 必須 | いずれか: pending, issued, expired, abandoned | — |
description | LocalizedBody | 任意 | — | — |
filingDate | YearMonth | 任意 | — | — |
grantDate | YearMonth | 任意 | — | — |
url | Url | 任意 | — | — |
coInventors | string の配列 | 任意 | ≤ 20 件; 件: 1–100 文字 | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
TestScore
Section titled “TestScore”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
title | LocalizedTitle | 必須 | — | — |
score | string | 必須 | 1–50 文字 | Free-form score string (e.g. ‘112 / 120’, ‘330’, ‘N1 Pass’, or a percentile). The validator does not interpret its contents. |
date | YearMonth | 必須 | — | — |
relatedEducationId | Slug | 任意 | — | Optional reference to an education[].id (e.g. for a university course exam). |
description | LocalizedBody | 任意 | — | — |
url | Url | 任意 | — | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
Recommendation
Section titled “Recommendation”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
body | LocalizedBody | 必須 | — | — |
author | RecommendationAuthor | 必須 | — | — |
relationship | LocalizedTitle | 任意 | — | How the recommender relates to the profile owner (e.g. ‘managed directly’, ‘worked together’). |
date | YearMonth | 任意 | — | — |
relatedCareerId | Slug | 任意 | — | Optional reference to a careers[].id (the position the recommendation pertains to). |
relatedEducationId | Slug | 任意 | — | Optional reference to an education[].id (e.g. a recommendation from a professor). |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。
RecommendationAuthor
Section titled “RecommendationAuthor”| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
name | string | 必須 | 1–100 文字 | Recommender’s name, in its original script. Owner-curated; takuhon does not verify it. |
headline | LocalizedTitle | 任意 | — | Recommender’s title / role / organization at the time of the recommendation. |
url | Url | 任意 | — | Link to the recommender’s profile, for external verification by the reader. |
上記以外のプロパティは許可されません。
Highlight
Section titled “Highlight”One curated “selected post” (added in 1.4.0), rendered as a card in the highlights carousel. A hand-picked link to an off-site post (Instagram, X, a blog, a talk, …) with a self-hosted thumbnail — deliberately not an automated social feed. Appears on the public page, /api/profile, /takuhon.json, and MCP; it is intentionally omitted from JSON-LD and the derived CV (no natural vocabulary/résumé slot).
| フィールド | 型 | 必須 | 制約 | 説明 |
|---|---|---|---|---|
id | Slug | 必須 | — | — |
visibility | Visibility | 任意 | — | — |
platform | string | 必須 | 1–64 文字 | Free-form source platform (e.g. ‘instagram’, ‘x’, ‘github’, ‘blog’, ‘event’). A value with a matching brand glyph renders a badge icon; others fall back to a text badge. Not an enum, so new platforms need no schema change. |
url | Url | 必須 | — | Permalink to the original post; the card links here. |
image | string | 必須 | format uri-reference; ≤ 2048 文字 | Self-hosted thumbnail, as an absolute URL or a root-relative path (like avatar). Serving the asset is the deployment’s responsibility (a static build does not copy it; a Cloudflare deploy serves it via its assets binding / /assets/*). Do not point at a third-party CDN URL — those can be signed/expiring and leak visitor data. |
alt | LocalizedTitle | 必須 | — | Required alt text for the thumbnail — the card must not depend on the image alone. |
title | LocalizedTitle | 必須 | — | Localized card title / caption. |
description | LocalizedBody | 任意 | — | Optional localized supporting text shown under the title. |
postedAt | string | 任意 | format date; pattern ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ | Optional post date, ISO ‘YYYY-MM-DD’ (full date, unlike the YYYY-MM dates used elsewhere — a post has a specific day). |
tags | string の配列 | 任意 | ≤ 30 件; 件: 1–50 文字 | — |
order | integer | 任意 | ≥ 0 | — |
上記以外のプロパティは許可されません。