Skip to content

Commit

Permalink
feat: add multilingual mode (websites with multiple languages side by…
Browse files Browse the repository at this point in the history
… side) (#127)

* add example content in Italian language
* add language selector
  • Loading branch information
fmaida authored Sep 25, 2023
1 parent ab16ba1 commit b7644e2
Show file tree
Hide file tree
Showing 34 changed files with 600 additions and 19 deletions.
89 changes: 80 additions & 9 deletions exampleSite/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,26 +32,33 @@ disqusShortname = ''
endLevel = 4 # ToC ends at H4
ordered = false # generates <ul> instead of <ol>

[menu]
[[menu.main]]
############################## English language ################################
[Languages.en-gb]
languageName = "English"
languageCode = "en-gb"
contentDir = "content/en"
weight = 1

[Languages.en-gb.menu]
[[Languages.en-gb.menu.main]]
# The page reference (pageRef) is useful for menu highlighting
# When pageRef is set, setting `url` is optional; it will be used as a fallback if the page is not found.
pageRef="/"
name = 'Home'
url = '/'
weight = 10
[[menu.main]]
[[Languages.en-gb.menu.main]]
pageRef="posts"
name = 'Posts'
url = '/posts/'
weight = 20
[[menu.main]]
[[Languages.en-gb.menu.main]]
pageRef="about"
name = 'About'
url = '/about/'
weight = 30

[params]
[Languages.en-gb.params]
sitename = "Awesome hugo blog"
defaultColor = "dark" # set color mode: dark, light, auto
# Setting it to 'auto' applies the color scheme based on the visitor's device color preference.If you don't specify anything, ignore this parameter, or leave it blank,
Expand All @@ -73,22 +80,87 @@ disqusShortname = ''
# full - includes full blog post in the RSS feed. Generated using Hugo .Content .
# By default (or if nothing is specified), summary is used.

[params.author]
[Languages.en-gb.params.author]
avatar = "avatar.jpg" # put the file in assets folder; also ensure that image has same height and width
# Note: image is not rendered if the resource(avatar image) is not found. No error is displayed.
intro = "Awesome hugo blog"
name = "Sidharth R"
description = "A fast, minimalistic Hugo theme with light and dark mode support, for running a personal site or blog."

# Allow to override webmanifest options
[params.webmanifest]
[Languages.en-gb.params.webmanifest]
name = "sitename" # will use "params.sitename" or "title" by default
short_name = "sitename" # same as name
start_url = "/" # will use homepage url by default
theme_color = "#434648" # default is "#434648" (base color of text). Also will override html `<meta name="theme-color" />`
background_color = "#fff" # by default depend on "params.defaultColor" for "light" or "auto" will be set to "#fff" for dark will be "#131418" (color of dark mode background)
display = "standalone"

############################## Italian language ################################
[Languages.it]
languageName = "Italian"
languageCode = "it"
contentDir = "content/it"
weight = 2
[Languages.it.menu]
[[Languages.it.menu.main]]
# The page reference (pageRef) is useful for menu highlighting
# When pageRef is set, setting `url` is optional; it will be used as a fallback if the page is not found.
pageRef="/"
name = 'Inizio'
url = '/'
weight = 10
[[Languages.it.menu.main]]
pageRef="posts"
name = 'Articoli'
url = '/posts/'
weight = 20
[[Languages.it.menu.main]]
pageRef="about"
name = 'Chi Sono'
url = '/about/'
weight = 30

[Languages.it.params]
sitename = "Awesome hugo blog"
defaultColor = "dark" # set color mode: dark, light, auto
# Setting it to 'auto' applies the color scheme based on the visitor's device color preference.If you don't specify anything, ignore this parameter, or leave it blank,
# the default value is set to 'auto'.
# You can take a look at layouts/index.html for more information.
description = "Un tema Hugo veloce e minimalista con supporto per la modalità chiara e scura, per la gestione di un sito o di un blog personale"
mainSections = ['posts']
toc = true # set to false to disable table of contents 'globally'
goToTop = true # set to false to disable 'go to top' button
additionalScripts = ['js/custom.js', 'js/custom-2.js']
# Will try to load 'assets/js/custom.js' and 'assets/js/custom-2.js'.
# Your custom scripts will be concatinated to one file `custom.js`.
# When building for production it will be minified.
# The file `custom.js` is loaded on each page (before body tag ends).
dateFormat = "2 January 2006" # default date format used on various pages
# See https://gohugo.io/functions/format/#hugo-date-and-time-templating-reference for available date formats.
rssFeedDescription = "summary" # available options: 1) summary 2) full
# summary - includes a short summary of the blog post in the RSS feed. Generated using Hugo .Summary .
# full - includes full blog post in the RSS feed. Generated using Hugo .Content .
# By default (or if nothing is specified), summary is used.

[Languages.it.params.author]
avatar = "avatar.jpg" # put the file in assets folder; also ensure that image has same height and width
# Note: image is not rendered if the resource(avatar image) is not found. No error is displayed.
intro = "Awesome hugo blog"
name = "Sidharth R"
description = "Un tema Hugo veloce e minimalista con supporto per la modalità chiara e scura, per la gestione di un sito o di un blog personale."

# Allow to override webmanifest options
[Languages.it.params.webmanifest]
name = "sitename" # will use "params.sitename" or "title" by default
short_name = "sitename" # same as name
start_url = "/" # will use homepage url by default
theme_color = "#434648" # default is "#434648" (base color of text). Also will override html `<meta name="theme-color" />`
background_color = "#fff" # by default depend on "params.defaultColor" for "light" or "auto" will be set to "#fff" for dark will be "#131418" (color of dark mode background)
display = "standalone"

###################################################################

# Allow to override `browserconfig.xml` params (configuration for windows embeded browsers)
[params.browserconfig]
TileColor = "#2d89ef" # default windows 10 blue tile color
Expand All @@ -103,5 +175,4 @@ url = "https://twitter.com"

[[params.socialIcons]]
name = "Rss"
url = "index.xml"

url = "index.xml"
Binary file added exampleSite/content/en/.DS_Store
Binary file not shown.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added exampleSite/content/it/.DS_Store
Binary file not shown.
4 changes: 4 additions & 0 deletions exampleSite/content/it/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: "Home"
author : "Hugo Authors"
---
23 changes: 23 additions & 0 deletions exampleSite/content/it/pages/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Chi Sono
description: 'Hugo, the world''s fastest framework for building websites'
author: Hugo Authors
---

Written in Go, Hugo is an open source static site generator available under the [Apache Licence 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows.

Hugo makes use of a variety of open source projects including:

* https://github.com/yuin/goldmark
* https://github.com/alecthomas/chroma
* https://github.com/muesli/smartcrop
* https://github.com/spf13/cobra
* https://github.com/spf13/viper

Hugo is ideal for blogs, corporate websites, creative portfolios, online magazines, single page applications or even a website with thousands of pages.

Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.

Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.

Learn more and contribute on [GitHub](https://github.com/gohugoio).
3 changes: 3 additions & 0 deletions exampleSite/content/it/posts/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
title: "Articoli"
---
46 changes: 46 additions & 0 deletions exampleSite/content/it/posts/emoji-support/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: Supporto Alle Emoji
date: 2023-02-01
author: Hugo Authors
description: Guide to emoji usage in Hugo
tags:
- emoji
---

Le emoji possono essere abilitate in un progetto Hugo in diversi modi.
<!--more-->
La funzione [`emojify`](https://gohugo.io/functions/emojify/) può essere richiamata direttamente nei modelli oppure negli [Shortcodes Inline](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).

Per abilitare le emoji globalmente, impostate `enableEmoji` a `true` nel file `config.toml` del vostro sito. Potete digitare a mano le scorciatoie per le emoji direttamente nei file di contenuto; es.

`:see_no_evil:` :see_no_evil: `:hear_no_evil:` :hear_no_evil: `:speak_no_evil:` :speak_no_evil:

Io :heart: Hugo! 😁

La [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) è un utile documento di riferimento per le codici di scorciatoia alle emoji.

***

**N.B.** I passi sopra menzionati abilitano gli emoji standard Unicode e le sequenze in Hugo, tuttavia il modo in cui questi glifi vengono rappresentati dipende dal browser e dalla piattaforma. Per applicare il vostro stile personale alle emoji potete a scelta utilizzare un font di terze parti per Emoji oppure un font stack; es.

{{< highlight css >}}
.emoji {
font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
}
{{< /highlight >}}

{{< css.inline >}}
<style>
.emojify {
font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
font-size: 2rem;
vertical-align: middle;
}
@media screen and (max-width:650px) {
.nowrap {
display: block;
margin: 25px 0;
}
}
</style>
{{< /css.inline >}}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
164 changes: 164 additions & 0 deletions exampleSite/content/it/posts/markdown-syntax/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
---
title: Guida Alla Sintassi Markdown
date: 2023-02-11
author: Hugo Authors
description: Sample article showcasing basic Markdown syntax and formatting for HTML elements.
---

This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.
<!--more-->

## Headings

The following HTML `<h1>``<h6>` elements represent six levels of section headings. `<h1>` is the highest section level while `<h6>` is the lowest.

# H1

## H2

### H3

#### H4

##### H5

###### H6

## Paragraph

Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.

Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.

## Image

You can use the following syntax to include an image. Path of the image should be relative to the `index.md` file.

```markdown
![Landscape](1.jpg)
```

![Landscape](1.jpg)

You can also include image from external sources.

```markdown
![Image](https://source.unsplash.com/random/600x400/?tech)
```

![Image](https://source.unsplash.com/random/600x400/?tech)

## Blockquotes

The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.

### Blockquote without attribution

> You can use Markdown syntax within a blockquote, like **bold**, _italics_, [links](https://gohugo.io/), `code`.
### Blockquote with attribution

> Don't communicate by sharing memory, share memory by communicating.<br>
> — <cite>Rob Pike[^1]</cite>
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.

## Tables

Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.

Name | Age
--------|------
Bob | 27
Alice | 23

### Markdown within tables

| Italics | Bold | Code |
| -------- | -------- | ------ |
| *italics* | **bold** | `code` |

## Code Blocks

### Code block with backticks

```html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Test</p>
</body>
</html>
```

### Code block indented with four spaces

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Test</p>
</body>
</html>

### Code block with Hugo's internal highlight shortcode

{{< highlight html >}}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Test</p>
</body>
</html>
{{< /highlight >}}

### Inline code

Use the backtick to refer to a `variable` within a sentence.

## List Types

### Ordered List

1. First item
2. Second item
3. Third item

### Unordered List

* List item
* Another item
* And another item

### Nested list

* Fruit
* Apple
* Orange
* Banana
* Dairy
* Milk
* Cheese

## Other Elements — abbr, sub, sup, kbd, mark

<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.

H<sub>2</sub>O

X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>

Press <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd> to end the session.

Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
Loading

0 comments on commit b7644e2

Please sign in to comment.