This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a personal academic homepage for Isaia Nisoli, built with Franklin.jl — a Julia-based static site generator. Content is written in Markdown with Franklin-specific extensions. The site is deployed to GitHub Pages via the gh-pages branch.
Start a local development server (from Julia REPL):
using Pkg; Pkg.activate(".")
using Franklin
serve() Build and optimize for production (minification + prerendering):
using Pkg; Pkg.activate("."); Pkg.instantiate()
using NodeJS; run(`$(npm_cmd()) install highlight.js`)
using Franklin
optimize() The optimized site is output to __site/.
Content lives in Markdown files with Franklin front matter:
index.md — homepage
about/index.md, research/index.md — section pages
config.md — global site variables (title, URL, author, global LaTeX commands)
Templates in _layout/ are HTML files with Franklin template syntax ({{...}}):
head.html — conditionally inserts KaTeX (head_katex.html) or highlight.js (head_highlight.html) based on page variables hasmath/hascode
sidebar.html — navigation sidebar with active-page detection using {{ispage ...}}
foot.html, page_foot.html — footer partials
Static assets in _assets/: images, PDFs, and Julia scripts whose output is embedded in pages.
CSS in _css/: franklin.css (Franklin defaults) and poole_hyde.css (Hyde theme).
Libraries in _libs/: vendored KaTeX and highlight.js.
Page variables are set with @def:
@def title = "Page Title"
@def hasmath = true Global variables are defined in config.md and filled in templates with {{fill varname}}.
LaTeX commands defined in config.md (e.g., \newcommand{\R}{\mathbb R}) are available on all pages.
To add a new top-level section, create a directory with an index.md and add a link in _layout/sidebar.html.