1- <!DOCTYPE html>
2- < html >
3- < head >
4- < meta charset ="utf-8 ">
5-
6- {% if page.title != null %}
7- {% capture homepage_path %}/{{ page.lang }}/{% endcapture %}
8- {% if page.url == homepage_path %}
9- < title > {{ page.title }}</ title >
10- {% else %}
11- < title > {{ page.title }} | Ruby</ title >
12- {% endif %}
13- {% else %}
14- < title > Ruby Programming Language</ title >
15- {% endif %}
16-
17- < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
1+ ---
2+ layout: root
3+ ---
4+ < head >
5+ < meta charset ="utf-8 ">
186
7+ {% if page.title != null %}
198 {% capture homepage_path %}/{{ page.lang }}/{% endcapture %}
209 {% if page.url == homepage_path %}
21- {% assign meta_description = "A Programmer's Best Friend" %}
22- {% elsif page.description %}
23- {% assign meta_description = page.description %}
24- {% elsif page.excerpt %}
25- {% assign meta_description = page.excerpt | strip_html | strip_newlines | truncate: 160 %}
10+ < title > {{ page.title }}</ title >
2611 {% else %}
27- {% assign meta_description = page.content | strip_html | strip_newlines | truncate: 160 %}
12+ < title > {{ page.title }} | Ruby </ title >
2813 {% endif %}
29-
30- {% if page.title %}
31- {% if page.url == homepage_path %}
32- {% assign meta_title = page.title %}
33- {% else %}
34- {% assign meta_title = page.title | append: " | Ruby" %}
35- {% endif %}
14+ {% else %}
15+ < title > Ruby Programming Language</ title >
16+ {% endif %}
17+
18+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
19+
20+ {% capture homepage_path %}/{{ page.lang }}/{% endcapture %}
21+ {% if page.url == homepage_path %}
22+ {% assign meta_description = "A Programmer's Best Friend" %}
23+ {% elsif page.description %}
24+ {% assign meta_description = page.description %}
25+ {% elsif page.excerpt %}
26+ {% assign meta_description = page.excerpt | strip_html | strip_newlines | truncate: 160 %}
27+ {% else %}
28+ {% assign meta_description = page.content | strip_html | strip_newlines | truncate: 160 %}
29+ {% endif %}
30+
31+ {% if page.title %}
32+ {% if page.url == homepage_path %}
33+ {% assign meta_title = page.title %}
3634 {% else %}
37- {% assign meta_title = "Ruby Programming Language " %}
35+ {% assign meta_title = page.title | append: " | Ruby " %}
3836 {% endif %}
39-
40- < meta name ="description " content ="{{ meta_description }} ">
41-
42- <!-- Open Graph / Facebook -->
43- < meta property ="og:type " content ="website ">
44- < meta property ="og:url " content ="{{ site.url }}{{ page.url | replace: 'index.html', '' }} ">
45- < meta property ="og:title " content ="{{ meta_title }} ">
46- < meta property ="og:description " content ="{{ meta_description }} ">
47- < meta property ="og:image " content ="{{ site.url }}/images/og-image.png ">
48- < meta property ="og:site_name " content ="Ruby Programming Language ">
49- < meta property ="og:locale " content ="{{ page.lang | default: 'en' }} ">
50-
51- <!-- Twitter Card -->
52- < meta name ="twitter:card " content ="summary ">
53- < meta name ="twitter:url " content ="{{ site.url }}{{ page.url | replace: 'index.html', '' }} ">
54- < meta name ="twitter:title " content ="{{ meta_title }} ">
55- < meta name ="twitter:description " content ="{{ meta_description }} ">
56- < meta name ="twitter:image " content ="{{ site.url }}/images/twitter-card-square.png ">
57-
58- <!-- Schema.org -->
59- < meta itemprop ="name " content ="{{ meta_title }} ">
60- < meta itemprop ="description " content ="{{ meta_description }} ">
61- < meta itemprop ="image " content ="{{ site.url }}/images/og-image.png ">
62-
63- < link rel ="stylesheet " type ="text/css " href ="/stylesheets/compiled.css ">
64- < link rel ="preconnect " href ="https://fonts.googleapis.com ">
65- < link rel ="preconnect " href ="https://fonts.gstatic.com " crossorigin >
66- < link href ="
https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Plus+Jakarta+Sans:wght@400;500;700;800&family=Rock+Salt&family=Material+Icons&family=Material+Symbols+Rounded:opsz,wght,FILL,[email protected] ,200..700,0,0&display=swap "
rel ="
stylesheet "
> 67- < link rel ="canonical " href ="{{ site.url }}{{ page.url | replace: 'index.html', '' }} ">
68-
69- < link rel ="icon " href ="/favicon.ico " sizes ="32x32 ">
70- < link rel ="icon " href ="/images/icon-192.png " type ="image/png " sizes ="192x192 ">
71- < link rel ="apple-touch-icon " href ="/images/apple-touch-icon.png ">
72- {% include rss_discovery.html %}
73-
74- <!-- Apply theme immediately to prevent flash -->
75- < script >
76- ( function ( ) {
77- const theme = localStorage . getItem ( 'theme-preference' ) || 'auto' ;
78- if ( theme === 'dark' ) {
79- document . documentElement . classList . add ( 'dark' ) ;
80- } else if ( theme === 'light' ) {
81- document . documentElement . classList . remove ( 'dark' ) ;
82- } else if ( window . matchMedia ( '(prefers-color-scheme: dark)' ) . matches ) {
83- document . documentElement . classList . add ( 'dark' ) ;
84- }
85- } ) ( ) ;
86- </ script >
87-
88- <!-- Detect icon font loading to prevent FOUT -->
89- < script >
90- ( function ( ) {
91- if ( document . fonts && document . fonts . load ) {
92- document . fonts . load ( '24px "Material Symbols Rounded"' ) . then ( function ( ) {
93- document . documentElement . classList . add ( 'fonts-loaded' ) ;
94- } ) . catch ( function ( ) {
95- document . documentElement . classList . add ( 'fonts-loaded' ) ;
96- } ) ;
97- } else {
37+ {% else %}
38+ {% assign meta_title = "Ruby Programming Language" %}
39+ {% endif %}
40+
41+ < meta name ="description " content ="{{ meta_description }} ">
42+
43+ <!-- Open Graph / Facebook -->
44+ < meta property ="og:type " content ="website ">
45+ < meta property ="og:url " content ="{{ site.url }}{{ page.url | replace: 'index.html', '' }} ">
46+ < meta property ="og:title " content ="{{ meta_title }} ">
47+ < meta property ="og:description " content ="{{ meta_description }} ">
48+ < meta property ="og:image " content ="{{ site.url }}/images/og-image.png ">
49+ < meta property ="og:site_name " content ="Ruby Programming Language ">
50+ < meta property ="og:locale " content ="{{ page.lang | default: 'en' }} ">
51+
52+ <!-- Twitter Card -->
53+ < meta name ="twitter:card " content ="summary ">
54+ < meta name ="twitter:url " content ="{{ site.url }}{{ page.url | replace: 'index.html', '' }} ">
55+ < meta name ="twitter:title " content ="{{ meta_title }} ">
56+ < meta name ="twitter:description " content ="{{ meta_description }} ">
57+ < meta name ="twitter:image " content ="{{ site.url }}/images/twitter-card-square.png ">
58+
59+ <!-- Schema.org -->
60+ < meta itemprop ="name " content ="{{ meta_title }} ">
61+ < meta itemprop ="description " content ="{{ meta_description }} ">
62+ < meta itemprop ="image " content ="{{ site.url }}/images/og-image.png ">
63+
64+ < link rel ="stylesheet " type ="text/css " href ="/stylesheets/compiled.css ">
65+ < link rel ="preconnect " href ="https://fonts.googleapis.com ">
66+ < link rel ="preconnect " href ="https://fonts.gstatic.com " crossorigin >
67+ < link href ="
https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected] &family=Noto+Sans+KR:[email protected] &family=Noto+Sans+SC:[email protected] &family=Noto+Sans+TC:[email protected] &family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap&family=Rock+Salt&family=Material+Icons&family=Material+Symbols+Rounded:opsz,wght,FILL,[email protected] ,200..700,0,0&display=swap "
rel ="
stylesheet "
> 68+ < link rel ="canonical " href ="{{ site.url }}{{ page.url | replace: 'index.html', '' }} ">
69+
70+ < link rel ="icon " href ="/favicon.ico " sizes ="32x32 ">
71+ < link rel ="icon " href ="/images/icon-192.png " type ="image/png " sizes ="192x192 ">
72+ < link rel ="apple-touch-icon " href ="/images/apple-touch-icon.png ">
73+ {% include rss_discovery.html %}
74+
75+ <!-- Apply theme immediately to prevent flash -->
76+ < script >
77+ ( function ( ) {
78+ const theme = localStorage . getItem ( 'theme-preference' ) || 'auto' ;
79+ if ( theme === 'dark' ) {
80+ document . documentElement . classList . add ( 'dark' ) ;
81+ } else if ( theme === 'light' ) {
82+ document . documentElement . classList . remove ( 'dark' ) ;
83+ } else if ( window . matchMedia ( '(prefers-color-scheme: dark)' ) . matches ) {
84+ document . documentElement . classList . add ( 'dark' ) ;
85+ }
86+ } ) ( ) ;
87+ </ script >
88+
89+ <!-- Detect icon font loading to prevent FOUT -->
90+ < script >
91+ ( function ( ) {
92+ if ( document . fonts && document . fonts . load ) {
93+ document . fonts . load ( '24px "Material Symbols Rounded"' ) . then ( function ( ) {
9894 document . documentElement . classList . add ( 'fonts-loaded' ) ;
99- }
100- } ) ( ) ;
101- </ script >
102-
103- < script type ="text/javascript " src ="/javascripts/navigation-toggle.js " defer > </ script >
104- < script type ="text/javascript " src ="/javascripts/header-navigation.js " defer > </ script >
105- < script type ="text/javascript " src ="/javascripts/toc.js " defer > </ script >
106- < script type ="text/javascript " src ="/javascripts/theme-toggle.js " defer > </ script >
107- {% if layout.javascript != null %}
108- {% for javascript in layout.javascript %}
109- < script type ="text/javascript " src ="/javascripts/{{ javascript }}.js "> </ script >
110- {% endfor %}
111- {% endif %}
112- </ head >
113-
114- {% capture homepage_url %}/{{ page.lang }}/{% endcapture %}
115-
116- < body {% if page.url == homepage_url %} id ="home-page-layout "{% endif %} >
117- {% include header.html %}
118-
119- < div id ="page " class ="pt-20 ">
120- {{ content }}
121- </ div >
122-
123- {% include footer.html %}
124- </ body >
125- </ html >
95+ } ) . catch ( function ( ) {
96+ document . documentElement . classList . add ( 'fonts-loaded' ) ;
97+ } ) ;
98+ } else {
99+ document . documentElement . classList . add ( 'fonts-loaded' ) ;
100+ }
101+ } ) ( ) ;
102+ </ script >
103+
104+ < script type ="text/javascript " src ="/javascripts/navigation-toggle.js " defer > </ script >
105+ < script type ="text/javascript " src ="/javascripts/header-navigation.js " defer > </ script >
106+ < script type ="text/javascript " src ="/javascripts/toc.js " defer > </ script >
107+ < script type ="text/javascript " src ="/javascripts/theme-toggle.js " defer > </ script >
108+ {% if layout.javascript != null %}
109+ {% for javascript in layout.javascript %}
110+ < script type ="text/javascript " src ="/javascripts/{{ javascript }}.js "> </ script >
111+ {% endfor %}
112+ {% endif %}
113+ </ head >
114+
115+ {% capture homepage_url %}/{{ page.lang }}/{% endcapture %}
116+
117+ < body {% if page.url == homepage_url %} id ="home-page-layout "{% endif %} >
118+ {% include header.html %}
119+
120+ < div id ="page " class ="pt-20 ">
121+ {{ content }}
122+ </ div >
123+
124+ {% include footer.html %}
125+ </ body >
0 commit comments