<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404: Not Found | Ruby</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="The requested page does not exist.You might try and start from the [home page](/).">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.ruby-lang.org/404.html">
<meta property="og:title" content="404: Not Found | Ruby">
<meta property="og:description" content="The requested page does not exist.You might try and start from the [home page](/).">
<meta property="og:image" content="https://www.ruby-lang.org/images/og-image.png">
<meta property="og:site_name" content="Ruby Programming Language">
<meta property="og:locale" content="en">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary">
<meta name="twitter:url" content="https://www.ruby-lang.org/404.html">
<meta name="twitter:title" content="404: Not Found | Ruby">
<meta name="twitter:description" content="The requested page does not exist.You might try and start from the [home page](/).">
<meta name="twitter:image" content="https://www.ruby-lang.org/images/twitter-card-square.png">
<!-- Schema.org -->
<meta itemprop="name" content="404: Not Found | Ruby">
<meta itemprop="description" content="The requested page does not exist.You might try and start from the [home page](/).">
<meta itemprop="image" content="https://www.ruby-lang.org/images/og-image.png">
<link rel="stylesheet" type="text/css" href="/stylesheets/compiled.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Sans+KR:wght@100..900&family=Noto+Sans+SC:wght@100..900&family=Noto+Sans+TC:wght@100..900&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&family=Material+Icons&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..24,200..700,0,0&display=swap" rel="stylesheet">
<link rel="canonical" href="https://www.ruby-lang.org/404.html">
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/images/icon-192.png" type="image/png" sizes="192x192">
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
<link href="" rel="alternate" title="" type="application/rss+xml">
<!-- Apply theme immediately to prevent flash -->
<script>
(function() {
const theme = localStorage.getItem('theme-preference') || 'auto';
if (theme === 'dark') {
document.documentElement.classList.add('dark');
} else if (theme === 'light') {
document.documentElement.classList.remove('dark');
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.classList.add('dark');
}
})();
</script>
<!-- Detect icon font loading to prevent FOUT -->
<script>
(function() {
if (document.fonts && document.fonts.load) {
document.fonts.load('24px "Material Symbols Rounded"').then(function() {
document.documentElement.classList.add('fonts-loaded');
}).catch(function() {
document.documentElement.classList.add('fonts-loaded');
});
} else {
document.documentElement.classList.add('fonts-loaded');
}
})();
</script>
<script type="text/javascript" src="/javascripts/navigation-toggle.js" defer></script>
<script type="text/javascript" src="/javascripts/header-navigation.js" defer></script>
<script type="text/javascript" src="/javascripts/toc.js" defer></script>
<script type="text/javascript" src="/javascripts/theme-toggle.js" defer></script>
</head>
<body>
<header class="fixed top-0 left-0 right-0 w-full bg-white dark:bg-stone-900 border-b border-stone-200 dark:border-stone-700 z-50">
<div class="container mx-auto">
<div class="flex items-center justify-between h-20 lg:px-4">
<!-- Logo -->
<div class="flex items-center gap-2">
<a href="/en/" class="flex items-center gap-2 hover:opacity-80 transition-opacity">
<img src="/images/header-ruby-logo.svg" alt="Ruby" class="h-10 w-10 sm:h-12 sm:w-12">
<span class="text-3xl sm:text-4xl font-extrabold font-logo text-stone-900 dark:text-stone-50">Ruby</span>
</a>
</div>
<!-- Desktop Navigation -->
<nav class="hidden lg:flex items-stretch gap-1 h-20">
<!-- Simple link (no dropdown) -->
<a href="/en/documentation/installation/"
class="flex items-center px-3 xl:px-5 h-full text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
Install
</a>
<!-- Simple link (no dropdown) -->
<a href="/en/documentation/"
class="flex items-center px-3 xl:px-5 h-full text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
Docs
</a>
<!-- Simple link (no dropdown) -->
<a href="/en/libraries/"
class="flex items-center px-3 xl:px-5 h-full text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
Libraries
</a>
<!-- Simple link (no dropdown) -->
<a href="/en/community/ruby-core/"
class="flex items-center px-3 xl:px-5 h-full text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
Contribution
</a>
<!-- Simple link (no dropdown) -->
<a href="/en/community/"
class="flex items-center px-3 xl:px-5 h-full text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
Community
</a>
<!-- Simple link (no dropdown) -->
<a href="/en/news/"
class="flex items-center px-3 xl:px-5 h-full text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
News
</a>
</nav>
<!-- Right section: Language selector + Theme toggle + Mobile menu button -->
<div class="flex items-center gap-0.5 sm:gap-2">
<!-- Language Selector -->
<div class="relative group">
<button class="flex items-center gap-1 px-3 py-1.5 text-sm border border-stone-300 dark:border-stone-600 rounded-md hover:bg-stone-100 dark:hover:bg-stone-800 transition-colors">
<span class="text-stone-700 dark:text-stone-300">
English<span class="hidden sm:inline"> (<span lang="und-Latn">en</span>)</span>
</span>
<span class="icon-dropdown text-base" aria-hidden="true"></span>
</button>
<!-- Language dropdown -->
<div class="absolute right-0 mt-1 w-56 max-h-[80vh] overflow-y-auto bg-white dark:bg-stone-800 rounded-lg shadow-lg border border-stone-200 dark:border-stone-700 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50">
<div class="py-2">
<a href="/bg404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="bg">Български</span>
(<span lang="und-Latn">bg</span>)
</span>
</a>
<a href="/de404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="de">Deutsch</span>
(<span lang="und-Latn">de</span>)
</span>
</a>
<a href="/en404.html"
class="flex items-center justify-between px-4 py-2 text-sm bg-stone-100 dark:bg-stone-700 text-stone-900 dark:text-stone-50 font-medium hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="en">English</span>
(<span lang="und-Latn">en</span>)
</span>
<span class="icon-check" aria-hidden="true"></span>
</a>
<a href="/es404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="es">Español</span>
(<span lang="und-Latn">es</span>)
</span>
</a>
<a href="/fr404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="fr">Français</span>
(<span lang="und-Latn">fr</span>)
</span>
</a>
<a href="/id404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="id">Indonesia</span>
(<span lang="und-Latn">id</span>)
</span>
</a>
<a href="/it404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="it">Italiano</span>
(<span lang="und-Latn">it</span>)
</span>
</a>
<a href="/ja404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="ja">日本語</span>
(<span lang="und-Latn">ja</span>)
</span>
</a>
<a href="/ko404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="ko">한국어</span>
(<span lang="und-Latn">ko</span>)
</span>
</a>
<a href="/pl404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="pl">polski</span>
(<span lang="und-Latn">pl</span>)
</span>
</a>
<a href="/pt404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="pt">Português</span>
(<span lang="und-Latn">pt</span>)
</span>
</a>
<a href="/ru404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="ru">Русский</span>
(<span lang="und-Latn">ru</span>)
</span>
</a>
<a href="/tr404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="tr">Türkçe</span>
(<span lang="und-Latn">tr</span>)
</span>
</a>
<a href="/uk404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="uk">Українська</span>
(<span lang="und-Latn">uk</span>)
</span>
</a>
<a href="/vi404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="vi">Tiếng Việt</span>
(<span lang="und-Latn">vi</span>)
</span>
</a>
<a href="/zh_cn404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="zh-CN">简体中文</span>
(<span lang="und-Latn">zh_cn</span>)
</span>
</a>
<a href="/zh_tw404.html"
class="flex items-center justify-between px-4 py-2 text-sm text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span>
<span lang="zh-TW">繁體中文</span>
(<span lang="und-Latn">zh_tw</span>)
</span>
</a>
</div>
</div>
</div>
<!-- Theme Toggle -->
<button id="theme-toggle"
type="button"
aria-label="Theme: Auto"
title="Theme: Auto (System)"
class="ml-1 sm:ml-0 p-2 text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors">
<span class="icon-theme-auto text-xl" aria-hidden="true"></span>
</button>
<!-- Mobile menu button -->
<button id="mobile-menu-toggle" class="lg:hidden p-2 text-stone-700 dark:text-stone-300 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md">
<span class="icon-menu" aria-hidden="true"></span>
</button>
</div>
</div>
</div>
<!-- Mobile Navigation Menu -->
<div id="mobile-menu" class="hidden lg:hidden border-t border-stone-200 dark:border-stone-700">
<nav class="container mx-auto px-4 py-4">
<a href="/en/documentation/installation/"
class="block px-5 py-2 text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors mb-2">
Install
</a>
<a href="/en/documentation/"
class="block px-5 py-2 text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors mb-2">
Docs
</a>
<a href="/en/libraries/"
class="block px-5 py-2 text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors mb-2">
Libraries
</a>
<a href="/en/community/ruby-core/"
class="block px-5 py-2 text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors mb-2">
Contribution
</a>
<a href="/en/community/"
class="block px-5 py-2 text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors mb-2">
Community
</a>
<a href="/en/news/"
class="block px-5 py-2 text-sm font-bold text-stone-900 dark:text-stone-300 hover:text-semantic-text-hovered dark:hover:text-ruby-400 hover:bg-stone-100 dark:hover:bg-stone-800 rounded-md transition-colors mb-2">
News
</a>
</nav>
</div>
</header>
<div id="page" class="pt-20">
<!-- Mobile Navigation Panel (collapsible, full width) -->
<div class="md:hidden bg-stone-50 dark:bg-stone-800 border-b border-stone-200 dark:border-stone-700">
<!-- Navigation toggle header -->
<button id="nav-toggle" class="flex items-center justify-between w-full px-4 py-3 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span class="flex items-center gap-2 text-sm font-bold text-stone-900 dark:text-stone-100">
<span class="icon-menu text-base relative top-0.5" aria-hidden="true"></span>
<span id="nav-section-title"></span>
</span>
<span id="nav-chevron" class="icon-dropdown text-base text-stone-500 dark:text-stone-400 transition-transform"></span>
</button>
<!-- Navigation content panel -->
<div id="nav-mobile-panel" class="hidden border-t border-stone-200 dark:border-stone-700">
<div class="px-4 pb-6">
<div class="md:bg-transparent md:dark:bg-transparent md:p-0 md:border-0">
<div class="mb-1 hidden md:block border-b border-stone-200 dark:border-stone-700 pb-3">
<h3 class="text-xs font-semibold text-stone-500 dark:text-stone-400">Docs</h3>
</div>
<nav class="space-y-0">
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
Documentation
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/about/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
What's Ruby
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/quickstart/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
Ruby in Twenty Minutes
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/ruby-from-other-languages/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
Ruby from Other Languages
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
<ul class="space-y-2 list-disc pl-5 pb-6 marker:text-stone-400 dark:marker:text-stone-500">
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-c-and-cpp/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From C and C++
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-java/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From Java
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-perl/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From Perl
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-php/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From PHP
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-python/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From Python
</a>
</li>
</ul>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/faq/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
FAQ
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="pt-6 mt-6 border-b border-stone-200 dark:border-stone-700 pb-6">
<h4 class="text-xs font-semibold text-stone-500 dark:text-stone-400 mb-4 pl-1">Get Started & Explore</h4>
<ul class="space-y-2 list-disc pl-5 marker:text-stone-400 dark:marker:text-stone-500">
<li class="list-item">
<a href="https://try.ruby-lang.org/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
target="_blank" rel="noopener noreferrer">
TryRuby<span class="icon-external text-xs inline-block align-baseline ml-0.5" aria-hidden="true"></span>
</a>
</li>
<li class="list-item">
<a href="https://docs.ruby-lang.org/en/3.4/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
target="_blank" rel="noopener noreferrer">
Ruby Reference Manual<span class="icon-external text-xs inline-block align-baseline ml-0.5" aria-hidden="true"></span>
</a>
</li>
<li class="list-item">
<a href="https://rubybib.org/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
target="_blank" rel="noopener noreferrer">
The Ruby Bibliography<span class="icon-external text-xs inline-block align-baseline ml-0.5" aria-hidden="true"></span>
</a>
</li>
</ul>
</div>
</nav>
<div class="pt-6">
<p class="pl-1">
<a href="/en/feeds/news.rss" target="_blank" rel="noopener noreferrer" class="text-sm font-normal text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 transition-colors inline-flex items-center gap-1">
<span class="icon-rss-feed" aria-hidden="true"></span>
Recent News (RSS)<span class="icon-external text-xs" aria-hidden="true"></span>
</a>
</p>
</div>
</div>
</div>
</div>
</div>
<div class="container px-4 md:px-6 lg:px-8 py-6 md:py-8 lg:py-12">
<!-- Other pages: 3-column layout -->
<div class="flex flex-col md:flex-row gap-6 md:gap-8 lg:gap-8">
<!-- Desktop Navigation (hidden on mobile) -->
<div class="hidden md:block md:w-40 lg:w-44 xl:w-56 flex-shrink-0 sticky top-24 self-start max-h-[calc(100vh-6rem)] overflow-y-auto">
<div class="md:bg-transparent md:dark:bg-transparent md:p-0 md:border-0">
<div class="mb-1 hidden md:block border-b border-stone-200 dark:border-stone-700 pb-3">
<h3 class="text-xs font-semibold text-stone-500 dark:text-stone-400">Docs</h3>
</div>
<nav class="space-y-0">
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
Documentation
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/about/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
What's Ruby
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/quickstart/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
Ruby in Twenty Minutes
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/ruby-from-other-languages/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
Ruby from Other Languages
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
<ul class="space-y-2 list-disc pl-5 pb-6 marker:text-stone-400 dark:marker:text-stone-500">
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-c-and-cpp/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From C and C++
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-java/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From Java
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-perl/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From Perl
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-php/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From PHP
</a>
</li>
<li class="list-item">
<a href="/en/documentation/ruby-from-other-languages/to-ruby-from-python/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
>
To Ruby From Python
</a>
</li>
</ul>
</div>
<div class="border-b border-stone-200 dark:border-stone-700">
<a href="/en/documentation/faq/"
class="flex items-center justify-between py-4 pl-1 text-base group text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-bold transition-colors"
>
<span class="">
FAQ
</span>
<svg class="w-3 h-3 text-stone-400 dark:text-stone-500 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
</svg>
</a>
</div>
<div class="pt-6 mt-6 border-b border-stone-200 dark:border-stone-700 pb-6">
<h4 class="text-xs font-semibold text-stone-500 dark:text-stone-400 mb-4 pl-1">Get Started & Explore</h4>
<ul class="space-y-2 list-disc pl-5 marker:text-stone-400 dark:marker:text-stone-500">
<li class="list-item">
<a href="https://try.ruby-lang.org/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
target="_blank" rel="noopener noreferrer">
TryRuby<span class="icon-external text-xs inline-block align-baseline ml-0.5" aria-hidden="true"></span>
</a>
</li>
<li class="list-item">
<a href="https://docs.ruby-lang.org/en/3.4/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
target="_blank" rel="noopener noreferrer">
Ruby Reference Manual<span class="icon-external text-xs inline-block align-baseline ml-0.5" aria-hidden="true"></span>
</a>
</li>
<li class="list-item">
<a href="https://rubybib.org/"
class="block py-1 text-sm text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 font-normal transition-colors"
target="_blank" rel="noopener noreferrer">
The Ruby Bibliography<span class="icon-external text-xs inline-block align-baseline ml-0.5" aria-hidden="true"></span>
</a>
</li>
</ul>
</div>
</nav>
<div class="pt-6">
<p class="pl-1">
<a href="/en/feeds/news.rss" target="_blank" rel="noopener noreferrer" class="text-sm font-normal text-stone-900 dark:text-stone-100 hover:text-semantic-text-link-hovered dark:hover:text-ruby-400 transition-colors inline-flex items-center gap-1">
<span class="icon-rss-feed" aria-hidden="true"></span>
Recent News (RSS)<span class="icon-external text-xs" aria-hidden="true"></span>
</a>
</p>
</div>
</div>
</div>
<!-- Main content and TOC wrapper -->
<div class="flex-1 min-w-0 flex flex-col gap-6">
<!-- TOC Section (Mobile/Tablet) -->
<div class="lg:hidden mb-6 md:ml-4">
<!-- Mobile/Tablet TOC (collapsible) -->
<div class="toc-wrapper bg-stone-50 dark:bg-stone-800 rounded-lg border border-stone-200 dark:border-stone-700 overflow-hidden lg:bg-transparent lg:dark:bg-transparent lg:border-0 lg:rounded-none lg:overflow-visible">
<!-- TOC toggle header (mobile only) -->
<button id="toc-toggle" class="lg:hidden flex items-center justify-between w-full px-4 py-3 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span class="flex items-center gap-2 font-bold text-stone-900 dark:text-stone-100">
<span class="icon-lists" aria-hidden="true"></span>
Table of Contents
</span>
<span id="toc-chevron" class="icon-dropdown text-stone-500 dark:text-stone-400 transition-transform" aria-hidden="true"></span>
</button>
<!-- Desktop heading (desktop only) -->
<h3 class="hidden lg:flex font-bold text-stone-900 dark:text-stone-100 items-center gap-2 mb-6">
<span class="icon-lists" aria-hidden="true"></span>
Table of Contents
</h3>
<!-- TOC content panel -->
<div id="toc-mobile-panel" class="hidden lg:block border-t border-stone-200 dark:border-stone-700 lg:border-0">
<div class="px-4 pt-4 pb-6 lg:px-0 lg:pt-0 lg:pb-0">
<div class="toc-content not-prose">
<!-- TOC will be dynamically generated here -->
</div>
</div>
</div>
</div>
</div>
<!-- Main content -->
<article id="content-wrapper" class="prose md:px-4 lg:px-6">
<h1>404: Not Found</h1>
<div id="content">
<script>
(function() {
// Detect language from URL path
var path = window.location.pathname;
var match = path.match(/^\/(bg|de|en|es|fr|id|it|ja|ko|pl|pt|ru|tr|ua|vi|zh_cn|zh_tw)\//);
if (match && match[1] !== 'en') {
var lang = match[1];
// Redirect to language-specific 404 page
window.location.href = '/' + lang + '/404.html';
}
})();
</script>
<p>The requested page does not exist.</p>
<p>You might try and start from the <a href="/">home page</a>.</p>
</div>
</article>
</div>
<!-- Desktop TOC (hidden below lg) -->
<div class="hidden lg:block lg:w-56 xl:w-64 flex-shrink-0 sticky top-24 self-start max-h-[calc(100vh-6rem)] overflow-y-auto">
<!-- Mobile/Tablet TOC (collapsible) -->
<div class="toc-wrapper bg-stone-50 dark:bg-stone-800 rounded-lg border border-stone-200 dark:border-stone-700 overflow-hidden lg:bg-transparent lg:dark:bg-transparent lg:border-0 lg:rounded-none lg:overflow-visible">
<!-- TOC toggle header (mobile only) -->
<button id="toc-toggle" class="lg:hidden flex items-center justify-between w-full px-4 py-3 hover:bg-stone-100 dark:hover:bg-stone-700 transition-colors">
<span class="flex items-center gap-2 font-bold text-stone-900 dark:text-stone-100">
<span class="icon-lists" aria-hidden="true"></span>
Table of Contents
</span>
<span id="toc-chevron" class="icon-dropdown text-stone-500 dark:text-stone-400 transition-transform" aria-hidden="true"></span>
</button>
<!-- Desktop heading (desktop only) -->
<h3 class="hidden lg:flex font-bold text-stone-900 dark:text-stone-100 items-center gap-2 mb-6">
<span class="icon-lists" aria-hidden="true"></span>
Table of Contents
</h3>
<!-- TOC content panel -->
<div id="toc-mobile-panel" class="hidden lg:block border-t border-stone-200 dark:border-stone-700 lg:border-0">
<div class="px-4 pt-4 pb-6 lg:px-0 lg:pt-0 lg:pb-0">
<div class="toc-content not-prose">
<!-- TOC will be dynamically generated here -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Footer Section -->
<footer class="bg-gold-150 dark:bg-stone-770 mt-12 md:mt-16 pt-2 pb-8 md:pb-12 relative">
<!-- Wave Border at top -->
<div class="absolute -top-[23px] md:-top-[31px] left-0 right-0 h-6 md:h-8 text-gold-150 dark:text-stone-770">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 20" preserveAspectRatio="none" class="w-full h-full">
<path d="M0,10 C20,0 40,20 60,10 C80,0 100,20 120,10 C140,0 160,20 180,10 C200,0 220,20 240,10 C260,0 280,20 300,10 C320,0 340,20 360,10 C380,0 400,20 400,10 L400,20 L0,20 Z" fill="currentColor"/>
</svg>
</div>
<!-- Illustration Pattern Band -->
<div class="w-full h-10 mb-12 bg-repeat-x bg-center bg-[url('/images/footer/illust-pattern.svg')] bg-[length:auto_40px]" aria-hidden="true"></div>
<div class="container mx-auto px-4 md:px-6 lg:px-8">
<!-- Happy Hacking! and Footer Links -->
<div class="flex flex-col xl:flex-row xl:items-start xl:justify-between gap-6 xl:gap-8 mb-10">
<!-- Happy Hacking! (Matz's handwriting) -->
<div class="mb-3 xl:mb-0 relative">
<img src="/images/footer/happy-hacking.svg" alt="Happy Hacking!" class="h-24 md:h-28 w-auto dark:invert relative z-10">
<img src="/images/home/why_ruby/line.svg" alt="" class="w-72 h-auto absolute bottom-2 md:bottom-3 left-0 z-0" aria-hidden="true">
</div>
<!-- Footer Links -->
<nav class="flex flex-wrap items-center gap-x-3 gap-y-2 text-sm font-bold leading-none xl:pt-2">
<a href="/en/security/"
class="mb-2 sm:mb-0 border-r border-stone-300 dark:border-stone-700 pr-3 text-stone-900 hover:text-ruby-600 dark:text-stone-300 dark:hover:text-ruby-400 transition-colors">
Security
</a>
<a href="/en/about/website/"
class="mb-2 sm:mb-0 border-r border-stone-300 dark:border-stone-700 pr-3 text-stone-900 hover:text-ruby-600 dark:text-stone-300 dark:hover:text-ruby-400 transition-colors">
About This Website
</a>
<a href="/en/about/logo/"
class="mb-2 sm:mb-0 border-r border-stone-300 dark:border-stone-700 pr-3 text-stone-900 hover:text-ruby-600 dark:text-stone-300 dark:hover:text-ruby-400 transition-colors">
About the Logo
</a>
<a href="/en/feeds/news.rss"
class="mb-2 sm:mb-0 border-r border-stone-300 dark:border-stone-700 pr-3 text-stone-900 hover:text-ruby-600 dark:text-stone-300 dark:hover:text-ruby-400 transition-colors">
News RSS
</a>
<a href="/en/about/license.txt"
class="mb-2 sm:mb-0 text-stone-900 hover:text-ruby-600 dark:text-stone-300 dark:hover:text-ruby-400 transition-colors">
Ruby License
</a>
</nav>
</div>
<!-- Credits -->
<div class="credits text-sm text-stone-900 dark:text-stone-300">
<a href="/en/about/website/">This website</a> is proudly maintained by members of the Ruby community.
</div>
</div>
</footer>
</body>
</html>