Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/effekt-lang/effekt-website

Website of the effekt language
https://github.com/effekt-lang/effekt-website

Last synced: 3 months ago
JSON representation

Website of the effekt language

Awesome Lists containing this project

README

        

# Effekt Website

Website of the effekt language

## SBT Microsites

The initial version of the website was generated by [sbt-microsites](https://47degrees.github.io/sbt-microsites/) (© 2019 [47 Degrees](https://www.47deg.com/)). We then moved to directly editing the generated Jekyll code for more flexibility.

#### Original Notice

```
sbt-microsites
Copyright (c) 2016-2020 47 Degrees. All rights reserved.

Licensed under Apache License. See [LICENSE](LICENSE) for terms.
```

#### Original License

See the MICROSITE-LICENSE file for the original sbt-microsite license.

### Building the Website Locally

The website is built with [jekyll](https://jekyllrb.com/) and requires a ruby installation.

Follow instructions on the Jekyll website to install jekyll (which requires Ruby). Afterwards, you are now able to locally deploy the website using the following command:

```
$ bundle exec jekyll serve
```

### How to Update the Effekt Compiler / LSP Server

The website features an interactive REPL and editor. In order to update the
underlying compiler, run the following commands.

1. In the effekt repo:
```
$ cd effekt/
$ sbt
sbt> project effektJS
effektJS> fullOptJS
[info] Full optimizing ./js/target/scala-2.13/effekt-opt.js
$ cd ..
```
2. Move the resulting `effekt/js/target/scala-$VERSION/effekt-opt.js` to `src/effekt.js` in the website repo:
```
$ cp effekt/effekt/js/target/scala-$VERSION/effekt-opt.js src/effekt.js
```
3. Install the neccessary other dependencies with:
```
$ npm install .
```
4. In the website's repo, run `webpack`:
```
$ npm exec webpack webpack
```
This will generate a bunch of packed js files.
1. Optionally, verify that everything functions as expected by locally deploying the website:
```
$ bundle exec jekyll serve
```