• Stars
    star
    166
  • Rank 226,358 (Top 5 %)
  • Language
    HTML
  • Created over 13 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Website of kivy.org
# Kivy.org Website (https://www.kivy.org)

## Folder structure
- `configs` : contains the configurations needed to build the page templates via the **build** tool (during development and also distribution).
- `content` : This folder will be copied as-is to the website distribution (`dist`) during **build**. _Please make sure that everything included in this folder is expected to be publicly accessible via kivy.org._
- `templates` : All the HTML templates needed to build the Kivy website are here.
- `tools`: Contains `build.py`, which is needed in order to build the website.


## How do we generate the page from templates?

The **build tool** (`tools/build.py`) uses the `config/config.json` file in order to know which pages should be built and how to build them.

Multiple pages are defined in `config/config.json`, and each page has its own `template` and `env`.

### But in `templates/index.html`, there's an `[[ include "components/header.html" ]]`. What that does mean? And how we should use `env`?

The **build tool** uses [Renoir](https://github.com/emmett-framework/renoir) under the hood as a templating engine. Renoir is easy, production-ready and has quite complete [documentation](https://github.com/emmett-framework/renoir/blob/master/docs/quickstart.md).

`env` should contain all the variables that need to be accessed during the page generation.

As an example, with the following configuration:
```json
...
{
    "template": "index.html",
    "env": {
        "name": "Kivy"
    }
}
...
```
And the following snippet in `index.html`
```html
<p>Hi, [[ =name ]]</p>
```

Will produce the following output, when the template has been built:

```html
<p>Hello, Kivy</p>
```

## How about the styling (CSS)?

Writing CSS code from scratch can be boring and stressful, and sometimes it is a pain to maintain.

[TailwindCSS](https://github.com/tailwindlabs/tailwindcss) fills this gap, marking itself as a utility-first CSS framework for rapidly building custom user interfaces. It also comes with an extensive documentation and offers a lot of examples: [Getting Started with Tailwind CSS](https://tailwindcss.com/docs).

## Quick start:

### First-time setup
- Clone the `kivy-website` repository and move into the `kivy-website` folder
    ```bash
    git clone https://github.com/kivy/kivy-website.git
    cd kivy-website
    ```
-  Install `node` requirements (`tailwindcss`)
    ```bash
    npm install
    ```
- Install the required `python` deps to build the website templates. (a virtualenv is recommended)
    ```bash
    pip install -r requirements.txt
    ```

## Building the website (output is placed in the `dist` folder)

### Development mode

Both **tailwindcss** and the **build tool** come with auto-reload options in order to speed up site development.

```bash
npm run develop
```

```bash
python tools/build.py --watch
```

### Building for production

```bash
npm run build
```

```bash
python tools/build.py
```

More Repositories

1

kivy

Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS
Python
17,477
star
2

python-for-android

Turn your Python application into an Android APK
Python
8,263
star
3

buildozer

Generic Python packager for Android and iOS
Python
1,708
star
4

plyer

Plyer is a platform-independent Python wrapper for platform-dependent APIs
Python
1,589
star
5

pyjnius

Access Java classes from Python
Python
1,384
star
6

kivy-designer

UI designer for Kivy - DEPRECATED
Python
815
star
7

kivy-ios

Toolchain for compiling Python / Kivy / other libraries for iOS
Python
771
star
8

kivent

KivEnt is an entity-based game engine for Kivy
Python
573
star
9

audiostream

Audio API for streaming raw data to speakers
Python
190
star
10

pyobjus

Access Objective-C classes from Python
Python
177
star
11

kivy-remote-shell

Remote SSH + Python interactive shell in Kivy
Python
110
star
12

oscpy

An efficient OSC implementation compatible with python2.7 and 3.5+
Python
109
star
13

kivy-launcher

Reboot of the older Kivy launcher
Python
107
star
14

pythonar

python auto reloader
Python
44
star
15

kivy-sdk-packager

Scripts for Kivy SDK generation on Windows, OS X and Linux
Python
38
star
16

kivy-berkelium

Berkelium extension for Kivy - DEPRECATED, use https://github.com/kivy-garden/garden.cefpython instead.
Python
25
star
17

p4a-cloud

Build cloud for Python for android - DEPRECATED
HTML
22
star
18

piki

kivy games for raspberry pi
Python
18
star
19

aprofiler

Simple tool that allow you to emit start/end event, and marks
Python
17
star
20

kivy-server

Docker configuration for the Kivy server
Shell
12
star
21

pycon2013

pycon 2013 kivy presentation
JavaScript
9
star
22

kivy-ideas

Various ideas related to the Kivy project.
9
star
23

condiment

Conditionally include or remove code, according to the environment variables
Python
7
star
24

kivy-translations

This is the repository where Kivy translations are managed - DEPRECATED
Python
7
star
25

plyer_demo

an android app to showcase all plyer features
Python
4
star
26

kivy-design

Graphical elements used by the Kivy Organization
4
star
27

ncis

Python
4
star
28

angle-builder

Build and releases ANGLE binaries for different platforms
Python
4
star
29

ncis-inspector

A Kivy app to interact with the NCIS module in Kivy apps
Python
3
star
30

p4a-pygame-bootstrap-components

The jni components of the python-for-android pygame bootstrap
C
3
star
31

kivy_pong_demo

Demo kivy pong-game app
Python
3
star
32

templates

This is a template repository, supposed to help developers with getting a quick setup of a kivy app repository that uses GitHub actions to build packages for various platforms.
Python
2
star
33

ncis-kivy

an ncis module to inspect kivy applications
Python
1
star
34

ncis-python

Python
1
star
35

kivy-website-docs

1
star
36

mcnotify

GitHub App that comments on predefined issues after certain events
JavaScript
1
star