This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a personal academic website for Daiki Nishiyama, a Ph.D. student at Institute of Science Tokyo. The site serves as a bilingual (Japanese/English) portfolio showcasing research, publications, and professional experience. It’s built as a static website hosted on GitHub Pages with a custom domain (d-nsym.com).
index.html - Main page template with header, navigation, and content containerscript.js - Language switching, data loading, and page renderingbibtex.js - Self-contained BibTeX parser and citation formatterstyles.css - Complete styling with responsive breakpointscontent/data/*.json - All site content, edited through the CMSadmin/index.html, admin/config.yml - Sveltia CMS admin UI and schema_config.yml - Jekyll configuration (minimal, only includes sitemap plugin)Content Management (Sveltia CMS):
/admin/, backed by the Git repository itself (no database)_ja / _en pair in the same record, so both
languages are edited in one form and cannot drift apartbibtex.js.
Citation style follows the language of the work, not of the page: an English
paper reads "Title." Venue, March 2025. on both pages, a Japanese one reads
「タイトル」, 会議名, 2025年3月.. Nothing is translated.Language Switching System:
navigator.language)content/data/profile.jsonContent Loading Flow:
content/data/ in parallelmarked.js handles the free-text intro,
bibtex.js formats each publicationSince this is a static site, you can develop locally by:
python -m http.server 8000)content/data/*.json and is normally edited via /admin/学歴 / Education etc.) are not content: they live in the
LABELS table in script.jsWhen updating academic content:
/admin/ (Sveltia CMS). It commits directly to main, which triggers
a GitHub Pages rebuild.title_ja / title_en, …). Fill in
both — the renderer shows an empty string for whichever is missing.bibtex field and pick a
category. Keep it in the language the work was actually published in — the
citation is never translated.url, else doi.
The explicit link field overrides both.When adding a new content type:
admin/config.yml and create content/data/<name>.jsonDATA_FILES in script.js, a label to LABELS, and a
render call in render()