Add Multilingual support

This commit is contained in:
Hanzei 2018-06-27 02:10:46 +02:00
parent c555b2b52c
commit 389a69a6e7
No known key found for this signature in database
GPG key ID: 69A2DEFD98937BA0
32 changed files with 231 additions and 43 deletions

View file

@ -1,6 +1,6 @@
baseURL = "https://example.org/" # Your domain name. Must end with "/" baseURL = "https://example.org/" # Your domain name. Must end with "/"
languageCode = "en-us" # languageCode languageCode = "en-us" # languageCode
title = "Introduction" # Site title DefaultContentLanguage = "en"
theme = "introduction" theme = "introduction"
pygmentsStyle = "monokai" # https://help.farbox.com/pygments.html pygmentsStyle = "monokai" # https://help.farbox.com/pygments.html
pygmentsCodefences = true pygmentsCodefences = true
@ -9,8 +9,6 @@ enforce_ssl = false
# googleAnalytics = "" # Enable Google Analytics https://gohugo.io/templates/internal/#google-analytics # googleAnalytics = "" # Enable Google Analytics https://gohugo.io/templates/internal/#google-analytics
[params] [params]
firstName = "Introduction" # First name shows in introduction on main page
tagLine = "I'm a theme for Hugo." # Appears after the introduction
introHeight = "large" # Input either 'medium' or 'large' or 'fullheight' introHeight = "large" # Input either 'medium' or 'large' or 'fullheight'
themeStyle = "light" # Choose 'light' or 'dark' themeStyle = "light" # Choose 'light' or 'dark'
avatar = "img/profile.jpg" # Path to image in static folder eg. img/avatar.png, or comment out to remove avatar = "img/profile.jpg" # Path to image in static folder eg. img/avatar.png, or comment out to remove
@ -20,9 +18,7 @@ enforce_ssl = false
dateForm = "Jan 2, 2006" dateForm = "Jan 2, 2006"
dateFormFull = "Mon Jan 2 2006 15:04:05 EST" dateFormFull = "Mon Jan 2 2006 15:04:05 EST"
cacheBuster = false # Add the current unix timestamp in query string for cache busting css assets (relevant in development mode) cacheBuster = false # Add the current unix timestamp in query string for cache busting css assets (relevant in development mode)
description = "Website Description" # Max 160 characters show in search results
faviconFile = "img/fav.ico" faviconFile = "img/fav.ico"
footerText = "" # Text to override default footer text (markdown allowed)
fadeIn = true # Turn on/off the fade-in effect fadeIn = true # Turn on/off the fade-in effect
showRSSButton = true # Show rss button in navigation showRSSButton = true # Show rss button in navigation
customCSS = [] # Include custom css files e.g. ["css/foo.css", "css/bar.css"] customCSS = [] # Include custom css files e.g. ["css/foo.css", "css/bar.css"]
@ -53,3 +49,25 @@ enforce_ssl = false
[[params.social]] [[params.social]]
url = "https://linkedin.com/" url = "https://linkedin.com/"
icon = "linkedin" icon = "linkedin"
[languages]
[languages.en]
languageName = "English"
contentDir = "content/en"
weigth = 10
title = "Introduction"
firstName = "Hi, I'm Introduction" # First name shows in introduction on main page
tagLine = "I'm a theme for Hugo." # Appears after the introduction
description = "Website Description" # Max 160 characters show in search results
footerText = "" # Text to override default footer text (markdown allowed)
[languages.es]
languageName = "Español"
contentDir = "content/es"
weigth = 9
title = "Introducción"
firstName = "Hola, Soy Introducción" # First name shows in introduction on main page
tagLine = "Soy un tema para Hugo." # Appears after the introduction
description = "Descripcion del sitio web" # Max 160 characters show in search results
footerText = "" # Text to override default footer text (markdown allowed)

View file

@ -0,0 +1,16 @@
---
title: "Sobre"
date: 2017-03-09T13:19:25+08:00
---
Esto es **Introducción,** un tema mínimo con desplazamiento para sitios web hechos con [Hugo](https://gohugo.io).
### Características
* Visualización responsiva a cualquier tipo de pantalla
* Suave fade-in al cargar el sitio con CSS3
* Desplazamiento suave a las secciones de la página desde la navegación
* Temas claros y oscuros
* Seccion _Projects_ con cualquier número de proyectos: configurable como galería de fotos, popup con detalles, o links externos
* Seccion _Blog_ con la inclusión opcional de _Latest Post_, en la página principal o como una seccion separada
* Soporte para HighlightJS

View file

@ -0,0 +1,4 @@
---
title: "Blog"
date: 2017-03-09T13:19:25+08:00
---

View file

@ -0,0 +1,15 @@
---
title: "Coffee Ipsum - Español"
date: 2017-11-01T12:04:16-05:00
tags: ['coffee', 'ipsum','images']
---
Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. Americano caffeine white, con panna saucer sit, con panna eu, carajillo aftertaste kopi-luwak, body aftertaste cup single origin café au lait saucer. Macchiato java sweet arabica, turkish cup, eu flavour mug extraction white cortado saucer est white brewed instant, rich, barista breve cappuccino barista organic. Barista, beans extraction, barista mocha, roast steamed siphon cup sweet cortado, cinnamon froth milk ristretto cortado galão. Crema, milk extra brewed, lungo dripper, espresso flavour qui, variety, grinder caramelization sit, strong turkish espresso body, filter barista caramelization half and half strong. To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust.
![Sample image](/img/workday.jpg)
At, whipped extraction, wings, dark black, breve, single origin, est as irish, caffeine milk half and half, whipped, arabica filter dark a trifecta aftertaste. Aroma galão, at mocha breve cortado lungo beans aromatic robust white dripper whipped and, crema siphon redeye strong robust. Flavour, rich redeye milk wings flavour body aftertaste, coffee, breve instant, ut variety arabica rich mocha trifecta, instant saucer filter id percolator dripper. Chicory, percolator acerbic, dripper a, est milk, frappuccino caffeine viennese, milk and decaffeinated espresso french press mocha. Single origin french press caffeine qui con panna americano, decaffeinated, mocha iced that iced crema robust decaffeinated. Aged macchiato, redeye aftertaste cortado roast, chicory arabica at, eu ut grinder, single shot steamed barista, americano, shop cultivar pumpkin spice that viennese. Ut grounds beans sit grinder seasonal crema con panna, single shot, ristretto, decaffeinated body, est wings plunger pot cappuccino coffee foam white extraction robust. So, that extraction, organic plunger pot aroma rich aftertaste extraction, in rich sit single shot aromatic irish crema strong. Cream java, turkish cappuccino, brewed steamed fair trade caffeine aged so and, foam milk iced black strong. Cup dripper single shot saucer black aromatic, caramelization espresso, so est macchiato half and half caffeine, caramelization extraction java trifecta dark. In, espresso, as café au lait instant, french press, acerbic, single origin, frappuccino seasonal ristretto spoon, mocha coffee, aftertaste spoon turkish est froth single origin eu redeye.
Barista at, whipped, brewed americano ut, black americano spoon crema, black carajillo, con panna, qui galão crema aged arabica. Cup half and half white, sugar, viennese, mocha to go single shot americano crema single origin sweet strong, pumpkin spice, flavour, rich steamed shop grinder steamed latte extra to go brewed. Frappuccino, variety a flavour rich, bar caffeine carajillo, caffeine, half and half brewed half and half that con panna single origin redeye. Roast percolator, beans kopi-luwak aftertaste ut, cup java, sweet, single origin affogato, eu espresso barista cortado trifecta ristretto to go aged cortado caramelization sweet. So variety wings sit roast acerbic a saucer, cream galão foam seasonal, instant, cinnamon beans macchiato mug steamed caffeine cappuccino. To go, frappuccino, body dripper aftertaste brewed spoon ristretto redeye, black dark, bar crema whipped wings macchiato, flavour, ut rich mocha variety filter aromatic. Ut instant single shot shop turkish and, grounds, latte half and half aged breve mug percolator shop. Macchiato, at cup single origin crema affogato, mug cup, eu et ristretto espresso, viennese froth beans variety to go. Coffee caffeine spoon, macchiato strong dripper crema, macchiato espresso blue mountain, chicory con panna white bar caffeine skinny trifecta con panna. Robust, mazagran latte to go, carajillo cinnamon at and trifecta, cream body variety instant id cream so extra. Ut as iced wings saucer caramelization, affogato, coffee, froth so, brewed acerbic iced shop in sweet brewed.
Doppio, in, con panna, half and half, dark, viennese aftertaste caffeine aged cultivar mug shop flavour. Spoon to go, doppio caffeine, a latte carajillo whipped, viennese grinder carajillo whipped dark grinder espresso coffee, espresso, variety café au lait aged half and half grounds. Mazagran as, kopi-luwak viennese, dark, sit aged id at, milk, to go cup sweet, shop coffee, spoon mazagran filter, doppio at extra cup milk. Chicory id roast chicory aromatic strong, white sweet viennese, carajillo java strong a to go aftertaste, frappuccino at cinnamon dripper pumpkin spice arabica. Aged, brewed percolator, id, macchiato aroma, black bar aromatic ristretto lungo as mug grinder as mocha. Mug, medium et roast doppio, spoon so single origin french press skinny, caffeine blue mountain variety, mocha, percolator grinder café au lait kopi-luwak arabica. Caffeine, seasonal, french press steamed rich single origin cream galão brewed cinnamon, doppio java, chicory aftertaste ristretto, plunger pot aromatic, ut, plunger pot milk est whipped grinder coffee. Sweet macchiato cappuccino cup, decaffeinated macchiato cream, milk extra, ut, galão froth half and half sweet qui, siphon, et aged, skinny, siphon milk grounds strong to go. Chicory medium, ut viennese instant fair trade steamed medium café au lait, as fair trade, barista single origin, body acerbic decaffeinated lungo café au lait bar trifecta americano mazagran. Strong cortado caffeine wings cappuccino foam, saucer est cream white aftertaste body french press. Beans affogato, ristretto a plunger pot bar macchiato, froth filter seasonal doppio, siphon sit caffeine cortado redeye single shot.

View file

@ -0,0 +1,13 @@
---
title: "Hipster Ipsum - Español"
date: 2017-11-13T11:58:39-05:00
tags: ['ipsum','words']
---
Occupy mlkshk kale chips woke, listicle locavore next level fingerstache glossier aesthetic man braid before they sold out kitsch prism. Cred copper mug freegan, flannel YOLO single-origin coffee skateboard artisan four loko church-key man bun. Synth literally gastropub, kombucha chillwave helvetica offal truffaut church-key freegan pop-up gentrify narwhal. Kombucha viral vexillologist green juice. Slow-carb hoodie mumblecore tumeric tattooed meditation, lo-fi fap cred affogato forage whatever austin. Shabby chic direct trade migas, brunch gochujang sriracha chambray fanny pack 8-bit mustache letterpress. Street art umami tattooed, glossier selfies 90's kale chips cred cardigan taxidermy seitan distillery migas.
Chicharrones ethical activated charcoal cardigan vegan copper mug. Ennui messenger bag 90's street art art party etsy. Four loko freegan flannel flexitarian, slow-carb hot chicken vexillologist tote bag church-key tilde pinterest. Ethical hell of retro, mlkshk twee yr selfies asymmetrical venmo. Photo booth mixtape tattooed pop-up, synth flexitarian paleo. DIY cornhole sustainable, gochujang whatever slow-carb hexagon tilde. Bitters XOXO kombucha af.
Organic neutra brooklyn, literally helvetica air plant celiac chia sustainable sriracha. Jean shorts typewriter chambray 90's farm-to-table, man bun tofu VHS. Messenger bag paleo plaid meditation intelligentsia forage, lomo jianbing hell of. Waistcoat synth tacos direct trade truffaut kogi. Gentrify street art woke, everyday carry whatever gastropub PBR&B fixie chambray kale chips af photo booth shoreditch. Thundercats hella cold-pressed, ethical vape irony pitchfork mixtape kombucha heirloom viral hell of deep v banh mi hoodie. Craft beer slow-carb raw denim, ugh asymmetrical artisan banh mi fingerstache trust fund poke bespoke green juice man bun mustache 3 wolf moon.
Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray.

View file

@ -0,0 +1,16 @@
---
title: "Startup Ipsum - Español"
date: 2017-11-06T12:04:06-05:00
tags: ['code','ipsum','words']
---
SpaceTeam affordances quantitative vs. qualitative SpaceTeam physical computing earned media thinker-maker-doer pair programming. Bootstrapping pitch deck physical computing driven cortado human-centered design innovate human-centered design driven. Grok pitch deck fund pitch deck sticky note affordances minimum viable product integrate paradigm viral iterate. Driven fund thought leader personas workflow SpaceTeam viral pair programming physical computing intuitive 360 campaign latte bootstrapping minimum viable product. Bootstrapping physical computing responsive pitch deck SpaceTeam parallax long shadow pitch deck bootstrapping ideate.
```sh
$ complicated techie code git bash ubuntu
>>> return value init foo
```
Responsive innovate grok latte disrupt intuitive actionable insight SpaceTeam grok. Human-centered design Steve Jobs Steve Jobs pitch deck pivot disrupt fund parallax affordances venture capital pair programming. Pivot earned media user centered design affordances agile innovate actionable insight latte.
Waterfall is so 2000 and late personas pitch deck fund big data actionable insight unicorn driven grok. Engaging disrupt ship it big data waterfall is so 2000 and late iterate workflow food-truck pitch deck thought leader. Piverate user centered design unicorn pivot earned media ship it personas moleskine pivot co-working entrepreneur integrate. Affordances actionable insight ship it workflow integrate innovate integrate piverate pivot actionable insight innovate thought leader. Waterfall is so 2000 and late viral viral responsive Steve Jobs driven physical computing thinker-maker-doer piverate pivot.

View file

@ -0,0 +1,8 @@
---
title: "Contacto"
date: 2017-03-09T13:23:28+08:00
---
En la sección de Contacto de Introducción, tu puedes opcionalmente mostrar la hora actual en tu zona horaria preferida.
Esto permite a los visitantes saber que tiempo de respuesta esperan tener cuando te contactan. La zhoa horaria es facilmente configurable en el archivo de configuración.

View file

@ -0,0 +1,10 @@
---
title: "Diseño"
date: 2017-11-13T12:21:16-05:00
image: "img/plant.jpg"
external_link: ""
weight: 2
---
Este tema fue diseñado por [Vicky Lai](https://vickylai.io). Ve, explora! 💪
Si deseas usarlo en tu sitio web, revisa la sección al final de la página principal. 👍

View file

@ -0,0 +1,11 @@
---
title: "Fotografía"
date: 2017-11-13T12:21:21-05:00
image: "img/camera.jpg"
external_link: ""
weight: 1
---
## A veces tomo fotografías.
Este proyecto es sobre fotografías que tomo. A veces, son fotos de gatos.

View file

@ -0,0 +1,11 @@
---
title: "Escribiendo"
date: 2017-11-13T12:21:11-05:00
image: "img/workday.jpg"
external_link: ""
weight: 3
---
Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong.
To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust.

View file

@ -0,0 +1,4 @@
---
title: "Proyectos"
date: 2017-03-09T13:19:25+08:00
---

27
i18n/en.toml Normal file
View file

@ -0,0 +1,27 @@
[404_title]
other = "404"
[404_description]
other = "Oops! Either you've found a bug (in which case, [please tell me](mailto:{{ .Site.Params.email }})) or you're just making things up. This page doesn't exist!"
[index_avatarAlt]
other = "My profile picture"
[index_projects_allProjects]
other = "All Projects"
[index_blog_latestPosts]
other = "Latest Post"
[index_blog_allPosts]
other = "All Posts"
[index_blog_readMore]
other = "Read more"
[index_currentTime]
other = "My current local time is"
[nav_backToSection]
other = "Back to {{ .Title }}"
[nav_main]
other = "main"
[blog_readingTime]
one = "{{ .Count }} minute read"
other = "{{ .Count }} minutes read"
[blog_shareThis]
other = "Share this"
[footer_text]
other = "[Introduction](https://github.com/vickylai/hugo-theme-introduction/) theme for [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors."

25
i18n/es.toml Normal file
View file

@ -0,0 +1,25 @@
[404_title]
other = "404"
[404_description]
other = "Oops! O bien encontraste un bug (en cuyo caso, [por favor avisame](mailto:{{ .Site.Params.email }})) o simplemente estas inventando cosas. Esta página no existe!"
[index_avatarAlt]
other = "Mi foto de perfil"
[index_blog_latestPosts]
other = "Últimas Entradas"
[index_blog_allPosts]
other = "Todas las Entradas"
[index_blog_readMore]
other = "Leer más"
[index_currentTime]
other = "Mi hora local actual es"
[nav_backToSection]
other = "Volver a {{ .Title }}"
[nav_main]
other = "Principal"
[blog_readingTime]
one = "{{ .Count }} minuto de lectura"
other = "{{ .Count }} minutos de lectura"
[blog_shareThis]
other = "Comparte esto"
[footer_text]
other = "Tema [Introduction](https://github.com/vickylai/hugo-theme-introduction/) para [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors."

View file

@ -4,7 +4,9 @@
<div class="section" id="top"> <div class="section" id="top">
<!-- Begin Title --> <!-- Begin Title -->
<div class="container hero is-medium has-text-centered {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> <div class="container hero is-medium has-text-centered {{ if .Site.Params.fadeIn }} fade-in one {{ end }}">
<h1 class="bold-title is-1">404</h1> <h1 class="bold-title is-1">
{{ i18n "404_title" . }}
</h1>
</div> </div>
<!-- End Title --> <!-- End Title -->
<!-- Everything below fades in two! --> <!-- Everything below fades in two! -->
@ -12,7 +14,7 @@
{{ partial "nav.html" . }} {{ partial "nav.html" . }}
<!-- Begin blurb --> <!-- Begin blurb -->
<div class="container {{ if .Site.Params.fadeIn }} fade-in two {{ end }} top-pad"> <div class="container {{ if .Site.Params.fadeIn }} fade-in two {{ end }} top-pad">
Oops! Either you've found a bug (in which case, <a href="mailto:{{ .Site.Params.email }}">please tell me</a>) or you're just making things up. This page doesn't exist! {{ i18n "404_description" . | markdownify }}
</div> </div>
<!-- End blurb --> <!-- End blurb -->
<div class="container top-pad"> <div class="container top-pad">

View file

@ -17,24 +17,24 @@
<!-- Begin Blog container --> <!-- Begin Blog container -->
<div class="container"> <div class="container">
{{ if .Site.Params.showLatest }} {{ if .Site.Params.showLatest }}
<h2 class="title is-2 top-pad">Latest Post</h2> <h2 class="title is-2 top-pad">{{ i18n "index_blog_latestPosts" . }}</h2>
{{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }}
<div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }}
<h3 class="title is-3 strong-post-title"> <h3 class="title is-3 strong-post-title">
<a href="{{ .RelPermalink }}"> <a href="{{ .RelPermalink }}">
{{ .Title }} {{ .Title }}
</a> </a>
</h3> </h3>
<div class="markdown"> <div class="markdown">
{{ .Summary }} {{ .Summary }}
{{ if .Truncated }} {{ if .Truncated }}
<a href="{{ .RelPermalink }}">...Read More</a> <a href="{{ .RelPermalink }}">{{ i18n "index_blog_readMore" . }}</a>
{{ end }} {{ end }}
</div>
</div> </div>
{{ end }} </div>
{{ end }} {{ end }}
<h2 class="title is-2 top-pad">All Posts</h2> {{ end }}
<h2 class="title is-2 top-pad">{{ i18n "index_blog_allPosts" . }}</h2>
<ul> <ul>
{{ range .Data.Pages.ByPublishDate }} {{ range .Data.Pages.ByPublishDate }}
{{ if eq .Section "blog" }} {{ if eq .Section "blog" }}

View file

@ -4,7 +4,7 @@
<div class="section" id="top"> <div class="section" id="top">
<!-- Begin Title --> <!-- Begin Title -->
<div class="container hero {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> <div class="container hero {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}">
<h1 class="bold-title is-1">{{ (.Site.GetPage "section" "blog") .Title }}</h1> <h1 class="bold-title is-1">{{ (.Site.GetPage "section" "blog").Title }}</h1>
</div> </div>
<!-- End Title --> <!-- End Title -->
<!-- Everything below fades in two! --> <!-- Everything below fades in two! -->
@ -17,11 +17,11 @@
</h2> </h2>
<div class="post-data"> <div class="post-data">
{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} | {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} |
{{ if eq 1 .ReadingTime }}{{ .ReadingTime }} minute read{{ else }}{{ .ReadingTime }} minutes read{{ end }} {{ i18n "blog_readingTime" .ReadingTime }}
</div> </div>
{{ if .Site.Params.shareButtons }} {{ if .Site.Params.shareButtons }}
<div class="blog-share"> <div class="blog-share">
Share this: {{ i18n "blog_shareThis" . }}:
{{ if .Site.Params.shareTwitter }} {{ if .Site.Params.shareTwitter }}
<a class="twitter-share-button" href="https://twitter.com/intent/tweet?text=Read%20{{ .Title }}%20{{ .Permalink }}" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;"> <a class="twitter-share-button" href="https://twitter.com/intent/tweet?text=Read%20{{ .Title }}%20{{ .Permalink }}" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;">
<i class="fa fa-twitter"></i> <i class="fa fa-twitter"></i>

View file

@ -10,7 +10,7 @@
<div class="container has-text-centered"> <div class="container has-text-centered">
<!-- Title and tagline --> <!-- Title and tagline -->
<h1 class="bold-title {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> <h1 class="bold-title {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}">
Hi, I'm {{ .Site.Params.firstName | default "Introduction" }}. {{ .Site.Params.firstName | default "Introduction" }}.
</h1> </h1>
<h3 class="subtitle is-3 {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> <h3 class="subtitle is-3 {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}">
{{ .Site.Params.tagLine }} {{ .Site.Params.tagLine }}
@ -42,7 +42,7 @@
<div class="columns"><!-- Avatar and about.md side by side except mobile --> <div class="columns"><!-- Avatar and about.md side by side except mobile -->
{{ if .Site.Params.avatar }} {{ if .Site.Params.avatar }}
<div class="column is-one-third has-text-centered"> <div class="column is-one-third has-text-centered">
<img class="img-responsive avatar" src="{{ .Site.Params.avatar | relURL }}" alt="My profile picture"> <img class="img-responsive avatar" src="{{ .Site.Params.avatar | relURL }}" alt="{{ i18n "index_avatarAlt" . }}">
</div> </div>
{{ end }} {{ end }}
<div class="column markdown"> <div class="column markdown">
@ -74,7 +74,7 @@
</div> </div>
{{ if .Site.Params.localTime }} {{ if .Site.Params.localTime }}
<p>My current local time is <span id="time"></span>.</p> <p>{{ i18n "index_currentTime" . }} <span id='time'></span>.</p>
<script type="text/javascript" src="{{ "/js/moment.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/moment.js" | relURL }}"></script>
<script type="text/javascript" src="{{ "/js/moment-timezone.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/moment-timezone.js" | relURL }}"></script>
<script type="text/javascript" src="{{ "/js/moment-timezone-with-data-2012-2022.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/moment-timezone-with-data-2012-2022.js" | relURL }}"></script>

View file

@ -3,28 +3,30 @@
<!-- Begin Blog container --> <!-- Begin Blog container -->
<div class="container"> <div class="container">
{{ if .Site.Params.showLatest }} {{ if .Site.Params.showLatest }}
<h2 class="title is-2 has-text-centered">Latest Post</h2> <h2 class="title is-2 has-text-centered">{{ i18n "index_blog_latestPosts" . }}</h2>
{{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }}
<div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }}
<h3 class="title is-3 latest-post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3> <h3 class="title is-3 latest-post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
<div class="markdown"> <div class="markdown">
{{ .Summary }} {{ .Summary }}
{{ if .Truncated }} {{ if .Truncated }}
<a href="{{ .RelPermalink }}">...Read More</a> <a href="{{ .RelPermalink }}">{{ i18n "index_blog_readMore" . }}</a>
{{ end }} {{ end }}
</div> </div>
</div> </div>
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ if .Site.Params.showAllPosts }} {{ if .Site.Params.showAllPosts }}
<h2 class="title is-2 has-text-centered top-pad">All Posts</h2> <h2 class="title is-2 has-text-centered top-pad">{{ i18n "index_blog_allPosts" . }}</h2>
<ul> <ul>
{{ range .Pages }} {{ range .Pages }}
{{ partial "li.html" . }} {{ partial "li.html" . }}
{{ end }} {{ end }}
</ul> </ul>
{{ else }} {{ else }}
<div class="container has-text-centered top-pad"><a href={{ "/blog" | relURL }}>ALL BLOG POSTS</a></div> <div class="container has-text-centered top-pad">
<a href="{{ .RelPermalink }}">{{ i18n "index_blog_allPosts" . }}</a>
</div>
{{ end }} {{ end }}
</div> </div>
<!-- End Blog container --> <!-- End Blog container -->

View file

@ -5,7 +5,9 @@
{{ with .Site.Params.footerText }} {{ with .Site.Params.footerText }}
{{ . | markdownify }} {{ . | markdownify }}
{{ else }} {{ else }}
<span class="footer-text"><a href="https://github.com/vickylai/hugo-theme-introduction" target="_blank" rel="noopener">Introduction</a> theme for <a href="http://gohugo.io/" target="_blank" rel="noopener">Hugo</a>. Made with <a href="https://vickylai.com" target="_blank" rel="noopener"><i class="fa fa-heart"></i> and <i class="fa fa-coffee"></i></a> by open source contributors.</span> <span class="footer-text">
{{ i18n "footer_text" . | markdownify }}
</span>
{{ end }} {{ end }}
</div> </div>
<!-- End Footer container --> <!-- End Footer container -->

View file

@ -12,11 +12,11 @@
<div id="nav-menu" class="nav-left nav-menu"> <div id="nav-menu" class="nav-left nav-menu">
{{ end }} {{ end }}
{{ if not $isHome }} {{ if not $isHome }}
<a class="nav-item" href="{{ "/" | relURL }}">Main</a> <a class="nav-item" href="{{ "/" | relLangURL }}">{{ i18n "nav_main" . }}</a>
{{ end }} {{ end }}
{{ with .Site.GetPage "page" "about" }} {{ with .Site.GetPage "page" "about" }}
<a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relURL }}{{ end }}">{{ .Title }}</a> <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relLangURL }}{{ end }}">{{ .Title }}</a>
{{ end }} {{ end }}
{{ $pageIsInProjects := eq .Page.Section "projects"}} {{ $pageIsInProjects := eq .Page.Section "projects"}}
@ -25,9 +25,9 @@
{{ if $isHome }} {{ if $isHome }}
<a class="nav-item" href="#projects">{{ .Title }}</a> <a class="nav-item" href="#projects">{{ .Title }}</a>
{{ else }} {{ else }}
<a class="nav-item" href="{{ "/projects" | relURL }}"> <a class="nav-item" href="{{ .RelPermalink }}">
{{ if $pageIsInProjects }} {{ if $pageIsInProjects }}
Back to {{ .Title }} {{ i18n "nav_backToSection" . }}
{{ else }} {{ else }}
{{ .Title }} {{ .Title }}
{{ end }} {{ end }}
@ -42,7 +42,7 @@
{{ if $isHome }} {{ if $isHome }}
<a class="nav-item" href="#blog">{{ .Title }}</a> <a class="nav-item" href="#blog">{{ .Title }}</a>
{{ else }} {{ else }}
<a class="nav-item" href="{{ "/blog" | relURL }}"> <a class="nav-item" href="{{ .RelPermalink }}">
{{ if $pageIsInBlog }} {{ if $pageIsInBlog }}
Back to {{ .Title | singularize}} Back to {{ .Title | singularize}}
{{ else }} {{ else }}
@ -54,7 +54,11 @@
{{ end }} {{ end }}
{{ with .Site.GetPage "page" "contact" }} {{ with .Site.GetPage "page" "contact" }}
<a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relURL }}{{ end }}">{{ .Title }}</a> <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relLangURL }}{{ end }}">{{ .Title }}</a>
{{ end }}
{{ range $.Site.Home.AllTranslations.ByWeight }}
<a class="nav-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
{{ end }} {{ end }}
{{ if and .Site.Params.showRSSButton .Site.RSSLink }} {{ if and .Site.Params.showRSSButton .Site.RSSLink }}

View file

@ -38,7 +38,7 @@
</div> </div>
{{ if lt $numberOfProjectsToShow $totalProjects }} {{ if lt $numberOfProjectsToShow $totalProjects }}
<div class="container has-text-centered top-pad"> <div class="container has-text-centered top-pad">
<a href="{{ "/projects" | relURL }}">ALL PROJECTS</a> <a href="{{ .RelPermalink }}">{{ i18n "index_projects_allProjects" . }}</a>
</div> </div>
{{ end }} {{ end }}
</div> </div>

View file

@ -3,10 +3,10 @@ license = "GNU Affero General Public License version 3"
licenselink = "https://github.com/vickylai/hugo-theme-introduction/blob/master/LICENSE" licenselink = "https://github.com/vickylai/hugo-theme-introduction/blob/master/LICENSE"
description = "Minimal, single page, smooth scrolling theme for Hugo." description = "Minimal, single page, smooth scrolling theme for Hugo."
homepage = "https://github.com/vickylai/hugo-theme-introduction" homepage = "https://github.com/vickylai/hugo-theme-introduction"
tags = ["clean", "simple", "minimal", "minimalist", "responsive", "single page", "syntax highlighting", "projects", "starter", "white", "dark"] tags = ["clean", "simple", "minimal", "minimalist", "multilingual", "responsive", "single page", "syntax highlighting", "projects", "starter", "white", "dark"]
features = ["responsive", "blog", "portfolio"] features = ["responsive", "blog", "portfolio"]
min_version = "0.30" min_version = "0.30"
[author] [author]
name = "Vicky Lai" name = "Vicky Lai"
homepage = "https://vickylai.com" homepage = "https://vickylai.com"