Technology moves fast! ⚡ Don't get left behind.🚶 Subscribe to our mailing list to keep up with latest and greatest in open source projects! 🏆


Subscribe to our mailing list

kotlin-web-site

The Kotlin Programming Language Website

Subscribe to updates I use kotlin-web-site


Statistics on kotlin-web-site

Number of watchers on Github 496
Number of open issues 18
Main language JavaScript
Average time to merge a PR 1 day
Open pull requests 44+
Closed pull requests 82+
Last commit over 1 year ago
Repo Created over 5 years ago
Repo Last Updated over 1 year ago
Size 71 MB
Homepage http://kotlinlang...
Organization / Authorjetbrains
Contributors141
Page Updated
Do you use kotlin-web-site? Leave a review!
View open issues (18)
View kotlin-web-site activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating kotlin-web-site for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Kotlin website

Official project Slack

This is the source for the http://kotlinlang.org.

Installation

  1. You will need Docker to run site lifecycle tasks. Installation for macOS and Windows.
  2. If you want to develop frontend Yarn package manager is also needed (installation instructions). Don't forget to install frontend dependencies - yarn install.
  3. All specific app parameters stored in env-file. Copy sample file .env.sample and rename it to .env. Change variables values if needed.

How to run

  • All in one option (suitable for content authors/writers):
    • docker-compose up. It will build all stuff and create site on localhost:5000.
  • Developer has 2-step option:
    • docker-compose up website will run only site at localhost:5000.
    • yarn start will run webpack-dev-server on localhost:9000. This address should be used for development. All pages from origin server will be proxied.

Project structure & overview

Data

All data is stored in the *.yml files in folder _data:

  • _nav.yml site navigation and PDF building.
  • releases.yml info about releases.
  • videos.yml data for the Videos page. The content property is used to create categories. It contains a list of videos or other categories. Maximum tree depth level is 3.
  • events.yml event data.

Templates

Kotlinlang uses Jinja2 templates that can be found in templates folder. Note that all Markdown files are processed as Jinja templates before being converted to HTML. This allows you to use all Jinja power inside Markdown (for example, build urls with url_for function).

Page metadata

Every page can have an unlimited number of metadata fields. More information here. The most important of them are the page template (e.g. layout: reference) and its type (e.g. type: tutorial). category and title fields are added for future development.

Kotlin grammar reference

The Kotlin grammar reference (grammar.xml) is generated by the Kotlin grammar generator from the Kotlin grammar definition.

Writing content

Markup

kramdown with some additions (like GitHub fenced code blocks) is used as Markdown parser. See the complete syntax reference at the kramdown site.

Specifying page element attributes

With kramdown you can assign HTML attributes to page elements via {:%param%}. E.g.:

  • *important text*{:.important} - produces <em class="important">important text</em>
  • *important text*{:#id} - produces <em id="id">important text</em>

For block elements this instruction must be specified on the line following element definition:

This is a paragraph
{:.important}

This is a paragraph

More information about attributes can be found here.

Custom element styles

Inline elements

  • {:.keyword} highlights a keyword.
  • {:.error} highlights an error.
  • {:.warning} highlights a warning.

Tables

  • {:.wide} stretches a table to occupy the entire width of a page.
  • {:.zebra} interleaves table rows.

E.g.:

| Expression | Translated to |
|------------|---------------|
| `a++` | `a.inc()` + see below |
| `a--` | `a.dec()` + see below |
{:.wide.zebra}

Quotation blocks

They're used in a slightly other manner that they were originally designed for: as universal block container elements.

  • {:.note} highlights a note block.

E.g.:

> **`inc()/dec()` shouldn't mutate the receiver object**.
>
> By "changing the receiver" we mean `the receiver-variable`, not the receiver object.
{:.note}

Filing Bugs

We use YouTrack for bug reports and suggestions. Click here to report an issue.

kotlin-web-site open pull requests (View All Pulls)
  • added `data classes` and `read-only collections` as kotlin features
  • remove unsupported example for nonlocal return from a local function
  • add minimum Java version question to FAQ
  • Invert parameters in reflection/`compose` example.
  • Added Kotlin-Cli library
  • Updates to OSS Projects and Companies Using Kotlin
  • "kotlin community" section
  • Please update a list of supported nullability annotations
  • Fix mistakes and remove subjective opinions in Comparison to Scala for fair comarison.
  • Collections and Pattern Matching
  • add-design-patterns-section
  • Add maven example without using process-sources
  • Added Datawire to Companies and OSS Projects Data
  • Update oss-projects.yml
  • Remove comment about Option ...
  • Adapt collections
  • Remove actors
  • corrected some sentences; removed ref to obsolete plugin
  • Rename Elvis Operator
  • Kotlin workshop in Mexico City
  • Singapore added to list of cities
  • Talk in Singapore about Kotlin
  • Extended books in index.md
  • KT-16141: Spread markers around the city location
  • Clarify the meaning of `===` for non-object types; reorder sections
  • interop c // fix markdown and convert cpointer to KString
  • New Tutorial: Gradle for Kotlin/Native
  • New Tutorial: Kotlin/Native with CLion
  • New Tutorial: KLib
  • Updated data class documentation to explain excluding properties.
  • Removed broken link to Kotlin-X umbrella. All projects are in https:/…
  • object declarations clarifications
  • Syntax Highlighting
  • Public Review: Procedures around Kotlin Language Evolution
  • Remove trailing whitespace
  • Small fixes of using-maven.md
  • make code more precise
  • Added table of Kotlin visibility modifiers
  • Added fix for kotlin tests in mixed builds.
  • Clarification on inheritance of `expect` declarations
  • Add snap install instructions
  • New Tutorial: Kotlin native memory management
  • Improve FP docs
  • add code-highlighting to kotlin native tutorials
kotlin-web-site list of languages used
Other projects in JavaScript