Skip to content

Repository Structure

Isaac edited this page Jul 23, 2026 · 3 revisions

You do not need to understand every folder before making a small change. Use this page to find the right file.

Some names begin with an underscore, such as _data. That is normal in Jekyll and tells Jekyll that the folder has a special purpose.

Find files

Top-level map

Path Purpose
index.html Homepage source.
pages/ Public pages. Each page declares an explicit permalink.
_articles/ News posts grouped into language folders. See Publishing News.
_layouts/ Reusable page frames that place content inside the shared website design.
_includes/ Smaller reusable pieces such as the navigation, footer, and cards.
_data/ Shared and localized information about games, departments, staff, interface text, languages, and links.
assets/css/style.css Main production stylesheet.
assets/css/news.css Article-specific styles.
assets/js/main.js Site-wide interaction behavior.
assets/img/ Game and general image assets.
assets/staffpfp/ Public staff profile images.
assets/mojang/ Retained font and visual asset library. Only selected font files are published.
assets/extra/ Extra assets that are not currently in use.
tools/verify-site.rb Project-specific checks that catch missing pages, information, and images.
.github/workflows/site-checks.yml Instructions GitHub follows to check a pull request automatically.
_config.yml Main Jekyll settings, including the site address and files that must not be published.
sitemap.xml The single multilingual search-engine sitemap generated at the site root.
_site/ Generated production output; never edit or commit it.

Understand the site structure

How a page is built

A page starts with a small settings block called front matter. It sits between two --- lines and tells Jekyll the page title, public address, and layout.

A layout is a reusable page frame. For example, the page layout adds the main heading and content area. It then uses the default layout, which adds the navigation, footer, styles, and scripts.

Department pages use the department layout and select a department record by key. News articles use the news layout and resolve their author through _data/staff.yml.

Shared information

  • _data/games.yml: game names, descriptions, images, public addresses, and footer links.
  • _data/departments.yml: department listings, detail content, staff grouping, and footer department links.
  • _data/staff.yml: public profiles and stable article author identifiers.
  • _data/translations.yml: shared interface text for every language.
  • _data/languages.yml: visible language names used by the switcher.
  • _data/site.yml: localized server addresses and shared external links.

These are the single official copies of shared information. If a link or person's name appears in several places, change its data record instead of editing every page separately. See Managing Site Data.

Publishing boundaries

Stable public routes

The verifier currently protects these routes:

/
/404.html
/about
/articles
/contact
/departments/
/departments/minecraft
/departments/roblox
/departments/unity
/feedback
/games
/games/obby-of-dominance
/games/sacred-cubes
/rules
/sitemap
/staff

Existing news addresses are also protected. Renaming an article file changes its public address, which can break bookmarks and shared links.

English is the default language, so these routes are served without /en-us/. Chinese versions use /zh-cn/. See Localization for the complete routing and translation rules.

Files that must not be published

_config.yml excludes repository-only material and unused font formats. In particular, the public build must not contain AGENTS.md, README.md, tools/, vendor/, or font specimen HTML pages.

Next: Creating and Editing Pages

Clone this wiki locally