Skip to content

GDQuest/website

Repository files navigation

GDQuest.com

Website banner image

This is the complete source code for GDQuest.com. The website is entirely open-source.

Table of Contents:

Getting started

The website uses the static site engine hugo.

To test the site locally:

  1. Install hugo extended. On the GitHub releases page of hugo, look for an executable named hugo_extended_.... This version of Hugo includes tools to process pictures and SCSS code.
  2. Clone this repository.
  3. In your terminal, navigate to the repository's folder and run npm install. You need to have node.js installed for that.
  4. Once all node packages are installed, run hugo server --buildDrafts.

This will build the website locally, including draft pages, watch for any file changes, and make it accessible via a URL like localhost:1313.

Writing content

To create a new page, use the hugo new command. You need to give it a path to a new markdown file relative to the content/ directory.

hugo new tutorial/godot/3D/import-from-blender/index.md

The command above creates a new 3D Godot tutorial in content/tutorial/godot/3D/import-from-blender/. The file's name, index.md, is a special name for hugo that defines a page bundle. It links all other files in the directory, like images and videos, as resources of that new page. To define a new section, you want to name the file _index.md instead. Look into the content/ directory for some examples.

You can also use the --editor option to open the newly created file in a text editor:

hugo new tutorial/godot/3D/import-from-blender/index.md --editor $VISUAL

On Linux, you can use one of the special variables $EDITOR and $VISUAL to respectively open the new document in a terminal-based editor or a graphical application like Atom or Emacs.

Keeping the content as draft and publishing

Each document contains some metadata at the top, also called front-matter:

+++
title = "Importing 3D objects from Blender"
author = "nathan"
date = 2020-07-15

draft = true
+++

This metadata uses the TOML markup language. If the variable draft has the value true, the article is considered a draft and won't be published on the website. Remove the line draft = true for the article to be published.

Style guide

For SCSS code, we follow the RSCSS (Reasonable System for CSS Stylesheet Structure) style guide.

Note: some of the CSS code still doesn't follow the style guide. We're progressively moving code to that style-guide as we go.

Contributing

Help is always welcome!

Found a bug, a typo? Feel free to fix it or open a new issue for it. Also check out the existing issues.

Get in touch:

Browser support

When working on new features, keep in mind this website only supports evergreen browsers:

  • Chrome (latest version and N-1 version)
  • Edge (latest version and N-1 version)
  • Firefox (latest version, N-1 version, and latest ESR version)
  • Opera (latest version and N-1 version)
  • Safari (latest version and N-1 version)

Translating pages

The website supports translations into any language.

We are currently working on a Spanish version of the tutorials, and we're looking to support languages such as French and Japanese. If you'd like to contribute to translating tutorials or other pieces of content, you're most welcome!

There are two ways you can translate a page:

  1. Use Gitlocalize, which gives you an accessible online editor and handy tools like one-click machine translation. Watch their two-minute tutorial to get started.
  2. Translate the files on your computer and use git instead. More on that below.

We recommend using an AI-powered translation tool like DeepL to generate a translation you can then edit and refine. It will save you a lot of time and work. GitLocalize has a button to translate a document automatically.

Translating a page manually

To translate a page manually on your computer, you need to:

  1. Fork this repository.
  2. Clone your fork on your computer.
  3. Head to the page's corresponding directory inside the repository's content folder.
  4. Duplicate the index.md file you'll find there and add the target language's two-letter code to the extension.

For example, to translate the game settings tutorial to French, you need to head to the directory content/tutorial/godot/2D/character-customization/, duplicate the file index.md, which is the tutorial written in English, and name the copy index.fr.md. For Spanish, name the file index.es.md. You can call it name.ja.md for Japanese. In general, you need to add the corresponding two-letter country code to the copied markdown file's extension.

Licenses

The website uses two licenses for its content and its source code, respectively:

  • The website's content, that is to say, anything in the content/ directory, or images in the static/ directory, is available under the CC-By 4.0 license. If you reuse it, please attribute it to "GDQuest and contributors."
  • The website's source code, including the layouts/, the archetypes/, and the _src/ folder are under the MIT license.

For more information, see LICENSE.