-
Notifications
You must be signed in to change notification settings - Fork 0
reference configuration
khanhthanhdev edited this page May 30, 2026
·
1 revision
All site configuration lives in _config.yml at the repository root. This page documents every setting, organized by section.
| Key | Type | Default | Description |
|---|---|---|---|
title |
string | Tran Khanh Thanh |
The website title. If blank, the full name is used. |
first_name |
string | Tran |
Author's first name. |
middle_name |
string | Khanh |
Author's middle name. |
last_name |
string | Thanh |
Author's last name. |
contact_note |
string | Please send me an email… |
Text displayed on the contact section of the about page. |
description |
string | My personal website… |
Site description used in meta tags and RSS feed. |
footer_text |
string | Powered by Jekyll… |
HTML text displayed in the site footer. |
keywords |
string | jekyll, jekyll-theme… |
Comma-separated keywords for SEO meta tags. |
lang |
string | en |
Site language code (e.g., en, fr, cn, ru). |
icon |
string | 👨🏻💻 |
Emoji used as the favicon. Alternatively, provide an image filename in /assets/img/. |
url |
string | https://khanhthanhdev.github.io |
Base hostname and protocol for the site. |
baseurl |
string | "" |
Subpath of the site (e.g., /blog/). Leave blank for root. |
last_updated |
boolean | false |
Whether to display "last updated" date in the footer. |
impressum_path |
string | (empty) | Path to an impressum page for EU GDPR conformance. Uses the same path as the page's permalink. |
back_to_top |
boolean | true |
Whether to show a "back to top" button. |
| Key | Type | Default | Description |
|---|---|---|---|
repo_theme_light |
string | default |
GitHub readme stats theme for light mode. See available themes. |
repo_theme_dark |
string | dark |
GitHub readme stats theme for dark mode. |
repo_trophies.enabled |
boolean | true |
Whether to display GitHub profile trophies on the repositories page. |
repo_trophies.theme_light |
string | flat |
Trophy theme for light mode. See trophy themes. |
repo_trophies.theme_dark |
string | gitdimmed |
Trophy theme for dark mode. |
external_services.github_readme_stats_url |
string | https://github-readme-stats.vercel.app |
Base URL for the GitHub readme stats service. |
external_services.github_profile_trophy_url |
string | https://github-profile-trophy.vercel.app |
Base URL for the GitHub profile trophy service. |
The RSS feed uses the jekyll-feed plugin and automatically picks up the title and url fields from Site settings. See the jekyll-feed documentation for additional customization options.
| Key | Type | Default | Description |
|---|---|---|---|
navbar_fixed |
boolean | true |
Whether the navigation bar is fixed at the top on scroll. |
footer_fixed |
boolean | true |
Whether the footer is fixed at the bottom. |
search_enabled |
boolean | true |
Enables the site-wide search feature. |
socials_in_search |
boolean | true |
Include social media links in search results. |
posts_in_search |
boolean | true |
Include blog posts in search results. |
bib_search |
boolean | true |
Include bibliography entries in search results. |
max_width |
string | 930px |
Maximum content width of the site. |
| Key | Type | Default | Description |
|---|---|---|---|
serve_og_meta |
boolean | true |
Include Open Graph meta tags in the HTML <head> for social media previews. |
serve_schema_org |
boolean | true |
Include Schema.org structured data in the HTML <head>. |
og_image |
string | (empty) | Site-wide default Open Graph preview image URL. Individual pages can override this. |
| Key | Type | Default | Description |
|---|---|---|---|
google_analytics |
string | (empty) | Google Analytics measurement ID (format: G-XXXXXXXXXX). |
cronitor_analytics |
string | (empty) | Cronitor RUM analytics site ID. |
pirsch_analytics |
string | (empty) | Pirsch analytics site ID (32 characters). |
openpanel_analytics |
string | (empty) | Openpanel analytics client ID (format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX). |
google_site_verification |
string | (empty) | Google Search Console verification ID. |
bing_site_verification |
string | (empty) | Bing Webmaster verification ID. |
| Key | Type | Default | Description |
|---|---|---|---|
blog_name |
string | al-folio |
Display name shown on the blog page. |
blog_description |
string | a simple whitespace theme for academics |
Description shown on the blog page. |
permalink |
string | /blog/:year/:title/ |
URL structure for blog posts. |
lsi |
boolean | false |
Produce a latent semantic index for related posts (slow build). |
pagination.enabled |
boolean | true |
Enable pagination on the blog page. |
related_blog_posts.enabled |
boolean | true |
Show related posts at the bottom of each post. |
related_blog_posts.max_related |
integer | 5 |
Maximum number of related posts to display. |
| Key | Type | Default | Description |
|---|---|---|---|
giscus.repo |
string | (empty) | GitHub repository for Giscus discussions (user/repo). |
giscus.repo_id |
string | (empty) | Giscus repo ID (from giscus.app). |
giscus.category |
string | Comments |
Discussion category name. |
giscus.category_id |
string | (empty) | Giscus category ID. |
giscus.mapping |
string | title |
How discussions are mapped to pages (title, url, etc.). |
giscus.strict |
integer | 1 |
Use strict identification mode. |
giscus.reactions_enabled |
integer | 1 |
Enable emoji reactions (1) or disable (0). |
giscus.input_position |
string | bottom |
Position of comment input form (bottom or top). |
giscus.dark_theme |
string | dark |
Dark color scheme name for Giscus. |
giscus.light_theme |
string | light |
Light color scheme name for Giscus. |
giscus.emit_metadata |
integer | 0 |
Emit discussion metadata. |
giscus.lang |
string | en |
Giscus UI language. |
| Key | Type | Default | Description |
|---|---|---|---|
disqus_shortname |
string | al-folio |
Disqus shortname for legacy comment support. |
| Key | Type | Default | Description |
|---|---|---|---|
external_sources |
array | [] |
List of external blog sources with RSS feeds or direct post URLs. Each entry can have name, rss_url or posts, categories, and tags. |
| Key | Type | Default | Description |
|---|---|---|---|
newsletter.enabled |
boolean | false |
Enable newsletter signup form. |
newsletter.endpoint |
string | (empty) | Loops.so newsletter endpoint URL. |
| Key | Type | Default | Description |
|---|---|---|---|
collections.books |
object | {output: true} |
Book review collection. |
collections.news |
object | {defaults: {layout: post}, output: true} |
News/announcements collection. |
collections.projects |
object | {output: true} |
Projects collection. |
collections.teachings |
object | {output: true} |
Teaching/courses collection. |
announcements.enabled |
boolean | true |
Display announcements on the about page. |
announcements.scrollable |
boolean | true |
Add a vertical scrollbar if more than 3 news items. |
announcements.limit |
integer | 5 |
Maximum news items to display (blank = all). |
latest_posts.enabled |
boolean | true |
Display latest blog posts on the about page. |
latest_posts.scrollable |
boolean | false |
Add a vertical scrollbar for latest posts. |
latest_posts.limit |
integer | 3 |
Maximum recent posts to display (blank = all). |
| Key | Type | Default | Description |
|---|---|---|---|
markdown |
string | kramdown |
Markdown processor. |
highlighter |
string | rouge |
Syntax highlighter. |
kramdown.input |
string | GFM |
Kramdown input mode (GitHub Flavored Markdown). |
kramdown.syntax_highlighter_opts.css_class |
string | highlight |
CSS class for code blocks. |
kramdown.syntax_highlighter_opts.span.line_numbers |
boolean | false |
Show line numbers in inline code. |
kramdown.syntax_highlighter_opts.block.line_numbers |
boolean | false |
Show line numbers in code blocks. |
kramdown.syntax_highlighter_opts.block.start_line |
integer | 1 |
Starting line number. |
| Key | Type | Default | Description |
|---|---|---|---|
include |
array | ["_pages", "_scripts"] |
Additional directories to include in the build. |
exclude |
array | (see config) | Files and directories to exclude from the build output. |
keep_files |
array | ["CNAME", ".nojekyll"] |
Files to preserve in the output directory during build. |
| Key | Type | Default | Description |
|---|---|---|---|
sass.style |
string | compressed |
Sass output style (compressed or expanded). |
The plugins array lists all Jekyll plugins loaded during the build:
| Plugin | Purpose |
|---|---|
jekyll-3rd-party-libraries |
Manages third-party JS/CSS library loading. |
jekyll-archives-v2 |
Generates archive pages for posts by year, tags, categories. |
jekyll-cache-bust |
Appends cache-busting hashes to asset URLs. |
jekyll-email-protect |
Obfuscates email addresses to prevent scraping. |
jekyll-feed |
Generates an RSS/Atom feed for the blog. |
jekyll-get-json |
Fetches external JSON data at build time. |
jekyll-imagemagick |
Generates responsive images using ImageMagick. |
jekyll-jupyter-notebook |
Renders Jupyter notebooks as pages. |
jekyll-link-attributes |
Adds attributes (e.g., target="_blank") to links. |
jekyll-minifier |
Minifies HTML, CSS, and XML output. |
jekyll-paginate-v2 |
Paginates blog listing pages. |
jekyll-regex-replace |
Provides regex-based string replacement in Liquid. |
jekyll/scholar |
BibTeX bibliography and citation management. |
jekyll-sitemap |
Generates a sitemap.xml for search engines. |
jekyll-socials |
Renders social media links from _data/socials.yml. |
jekyll-tabs |
Renders tabbed content blocks. |
jekyll-terser |
Minifies JavaScript using Terser. |
jekyll-toc |
Generates a table of contents for pages. |
jekyll-twitter-plugin |
Embeds tweets and other Twitter/X content. |
jemoji |
Converts GitHub-style emoji shortcodes to images. |
| Key | Type | Default | Description |
|---|---|---|---|
jekyll-minifier.compress_javascript |
boolean | false |
Compress JavaScript (disabled because jekyll-terser handles JS minification). |
jekyll-minifier.exclude |
array | ["robots.txt", "assets/js/search/*.js"] |
Files to exclude from minification. |
| Key | Type | Default | Description |
|---|---|---|---|
terser.compress.drop_console |
boolean | true |
Strip console.* calls from production JavaScript. |
| Key | Type | Default | Description |
|---|---|---|---|
jekyll-archives.posts.enabled |
array | [year, tags, categories] |
Archive types to generate for blog posts. |
jekyll-archives.posts.permalinks.year |
string | /blog/:year/ |
URL pattern for year archives. |
jekyll-archives.posts.permalinks.tags |
string | /blog/:type/:name/ |
URL pattern for tag archives. |
jekyll-archives.posts.permalinks.categories |
string | /blog/:type/:name/ |
URL pattern for category archives. |
jekyll-archives.books.enabled |
array | [year, tags, categories] |
Archive types to generate for books. |
display_tags |
array | ["formatting", "images", "links", "math", "code", "blockquotes"] |
Tags shown on the blog front page. |
display_categories |
array | ["external-services"] |
Categories shown on the blog front page. |
| Key | Type | Default | Description |
|---|---|---|---|
scholar.last_name |
array | [Einstein] |
Author's last name(s) for highlighting in bibliography. |
scholar.first_name |
array | [Albert, A.] |
Author's first name(s)/initials. |
scholar.style |
string | apa |
Citation style (APA, IEEE, etc.). |
scholar.locale |
string | en |
Locale for citation formatting. |
scholar.source |
string | /_bibliography/ |
Directory containing .bib files. |
scholar.bibliography |
string | papers.bib |
Main bibliography file name. |
scholar.bibliography_template |
string | bib |
Liquid template for rendering entries. |
scholar.bibtex_filters |
array | [latex, smallcaps, superscript] |
BibTeX text filters. |
scholar.replace_strings |
boolean | true |
Replace BibTeX string abbreviations. |
scholar.join_strings |
boolean | true |
Concatenate BibTeX string values. |
scholar.details_dir |
string | bibliography |
Directory for publication detail pages. |
scholar.details_link |
string | Details |
Text for the details link. |
scholar.query |
string | @* |
BibTeX query filter (all entries). |
scholar.group_by |
string | year |
Group publications by this field. |
scholar.group_order |
string | descending |
Sort order for groups. |
| Key | Type | Default | Description |
|---|---|---|---|
enable_publication_badges.altmetric |
boolean | true |
Show Altmetric badges on publications. |
enable_publication_badges.dimensions |
boolean | true |
Show Dimensions badges. |
enable_publication_badges.google_scholar |
boolean | true |
Show Google Scholar citation badges. |
enable_publication_badges.inspirehep |
boolean | true |
Show Inspire HEP badges. |
| Key | Type | Default | Description |
|---|---|---|---|
filtered_bibtex_keywords |
array | (see config) | BibTeX entry keywords that are filtered from the rendered output but used internally (e.g., abbr, abstract, arxiv, pdf, code, video, slides, poster, etc.). |
| Key | Type | Default | Description |
|---|---|---|---|
max_author_limit |
integer | 3 |
Maximum authors shown per publication before collapsing. Blank shows all. |
more_authors_animation_delay |
integer | 10 |
Animation delay (ms) for revealing hidden authors on click. |
enable_publication_thumbnails |
boolean | true |
Show thumbnails on publications if specified in the bib entry. |
| Key | Type | Default | Description |
|---|---|---|---|
external_links.enabled |
boolean | true |
Add attributes to external links. |
external_links.rel |
string | external nofollow noopener |
rel attribute value. |
external_links.target |
string | _blank |
target attribute value. |
external_links.exclude |
string | (empty) | URL patterns to exclude from attribute injection. |
| Key | Type | Default | Description |
|---|---|---|---|
imagemagick.enabled |
boolean | true |
Enable responsive image generation. Requires ImageMagick installed. |
imagemagick.widths |
array | [480, 800, 1400] |
Output widths for responsive images. |
imagemagick.input_directories |
array | ["assets/img/"] |
Directories to scan for source images. |
imagemagick.input_formats |
array | [".jpg", ".jpeg", ".png", ".tiff", ".gif"] |
Source image formats to process. |
imagemagick.output_formats.webp |
string | -auto-orient -quality 85 |
WebP output format with ImageMagick options. |
| Key | Type | Default | Description |
|---|---|---|---|
lazy_loading_images |
boolean | true |
Add loading="lazy" to all images. Set to "eager" or "auto" per-image to override. |
| Key | Type | Default | Description |
|---|---|---|---|
enable_google_analytics |
boolean | false |
Enable Google Analytics tracking. |
enable_cronitor_analytics |
boolean | false |
Enable Cronitor RUM analytics. |
enable_pirsch_analytics |
boolean | false |
Enable Pirsch analytics. |
enable_openpanel_analytics |
boolean | false |
Enable Openpanel analytics. |
enable_google_verification |
boolean | false |
Enable Google Search Console verification meta tag. |
enable_bing_verification |
boolean | false |
Enable Bing Webmaster verification meta tag. |
enable_cookie_consent |
boolean | false |
Enable GDPR-compliant cookie consent dialog. |
enable_masonry |
boolean | true |
Enable masonry layout for project cards. |
enable_math |
boolean | true |
Enable MathJax math typesetting. |
enable_tooltips |
boolean | false |
Enable automatic tooltip links on section titles. |
enable_darkmode |
boolean | true |
Enable light/dark mode toggle. |
enable_navbar_social |
boolean | true |
Show social links in the navbar on the about page. |
enable_project_categories |
boolean | true |
Enable project categorization with multiple categories. |
enable_medium_zoom |
boolean | true |
Enable Medium-style image zoom on click. |
enable_progressbar |
boolean | true |
Show a horizontal progress bar linked to scroll position. |
enable_video_embedding |
boolean | false |
Embed videos in bibtex entries. If false, opens video links in a new window. |
The third_party_libraries section defines all external JavaScript and CSS libraries loaded by the site. Each library specifies a version, CDN url (with {{version}} placeholder), and optional integrity hashes for subresource verification.
| Key | Type | Default | Description |
|---|---|---|---|
third_party_libraries.download |
boolean | false |
If true, download library files locally instead of using CDN. |
| Library | Version | Purpose |
|---|---|---|
bootstrap-table |
1.22.4 |
Interactive HTML tables with sorting, filtering, pagination. |
chartjs |
4.4.1 |
Canvas-based charts and visualizations. |
d3 |
7.8.5 |
Data-driven document manipulation and visualization. |
diff2html |
3.4.47 |
Renders unified diffs as HTML. |
echarts |
5.5.0 |
Rich interactive charts (includes dark theme). |
google_fonts |
— | Loads Roboto, Roboto Slab, and Material Icons web fonts. |
highlightjs |
11.9.0 |
Syntax highlighting themes (light: github, dark: github-dark). |
imagesloaded |
5.0.0 |
Detects when images have finished loading (used with Masonry). |
img-comparison-slider |
8.0.6 |
Before/after image comparison slider. |
jquery |
3.6.0 |
DOM manipulation library. |
leaflet |
1.9.4 |
Interactive maps. |
lightbox2 |
2.11.5 |
Overlay lightbox for image galleries. |
mathjax |
3.2.2 |
LaTeX and MathML rendering. |
masonry |
4.2.2 |
Cascading grid layout library. |
mdb |
4.20.0 |
Material Design Bootstrap components. |
medium_zoom |
1.1.0 |
Medium-style image zoom. |
mermaid |
10.7.0 |
Diagram and flowchart rendering from text. |
photoswipe |
5.4.4 |
Fullscreen image gallery/lightbox. |
photoswipe-lightbox |
5.4.4 |
Lightbox component for PhotoSwipe. |
plotly |
3.0.1 |
Interactive scientific charts. |
polyfill |
3 |
Browser polyfills for ES6+ features. |
pseudocode |
2.4.1 |
Renders algorithm pseudocode in LaTeX-style. |
spotlight |
0.7.8 |
Image gallery with lightbox. |
swiper |
11.0.5 |
Touch-enabled slider/carousel. |
vanilla-cookieconsent |
3.1.0 |
GDPR cookie consent banner. |
vega |
5.27.0 |
Declarative visualization grammar. |
vega-embed |
6.24.0 |
Embeds Vega/Vega-Lite visualizations. |
vega-lite |
5.16.3 |
High-level grammar for statistical graphics. |
venobox |
2.1.8 |
Responsive lightbox for images, videos, iframes. |
| Key | Type | Default | Description |
|---|---|---|---|
jekyll_get_json |
array | [{data: resume, json: assets/json/resume.json}] |
External JSON files to load at build time. |
jsonresume |
array | (see config) | JSON Resume sections to render (basics, work, education, publications, projects, volunteer, awards, certificates, skills, languages, interests, references). |
-
Data models — Schema documentation for
_data/YAML files - Dependencies — Ruby gems and Node.js packages
- Deployment — How the site is built and deployed