Skip to content

Commit

Permalink
Merge pull request #21 from rossabaker/reboot
Browse files Browse the repository at this point in the history
Merge current Typelevel version as of 2022-07-18
  • Loading branch information
israelperezglez authored Jul 19, 2022
2 parents 06edf2a + ddb00d5 commit b072e2a
Show file tree
Hide file tree
Showing 152 changed files with 1,267 additions and 94 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/cache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: cachix

on:
pull_request:
push:
branches:
- main

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
steps:
- uses: actions/[email protected]

- name: "Install Nix️"
uses: cachix/install-nix-action@v15

- name: "Install Cachix️"
uses: cachix/cachix-action@v10
with:
name: typelevel
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'

- name: "Build dev shell"
run: nix develop -c true
24 changes: 24 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: nix-flake-check

on:
pull_request:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]

- name: "Install Nix️"
uses: cachix/install-nix-action@v16

- name: "Install Cachix️"
uses: cachix/cachix-action@v10
with:
name: typelevel

- name: "Nix Flake Check"
run: nix -L flake check
3 changes: 2 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ GEM
unicode-display_width (1.8.0)

PLATFORMS
x86_64-darwin-17
x86_64-darwin-18

DEPENDENCIES
Expand All @@ -69,4 +70,4 @@ DEPENDENCIES
jekyll-paginate

BUNDLED WITH
2.2.32
2.2.24
179 changes: 179 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
typelevel website
=================

This is the website of typelevel.scala. It is built on Jekyll and served at [typelevel.org](https://typelevel.org).

## Getting Started (the short version)

If you just want to add a blog post or fix a typo in the content, here's how to get started.

### Creating a blog post

1. Create a new file in the `posts` directory or copy an existing post. Its name should have the format `YYYY-MM-DD-short_title.md`.
2. Set the `title` (short title of the post, appears as the HTML `<title>`) and `author` (your GitHub user name) in the front matter. MathJax is available via `mathjax: true` inside the front matter.
3. If this is your first blog post, please indicate if you want your name and a profile picture to appear on the post. If not, you can remove the `author` field from the front matter. Add your details in `_data/authors.yml`.
4. Write your content using Markdown. For code highlighting, use the usual GitHub syntax:

```scala
def yourCode: Here
```

If you haven't written a post before, please add yourself to `_data/authors.yml`.

That's it, we'll take care of the rest. If you wish, you can also submit just a plain Markdown file and we'll be happy to integrate it.

You can also use `tut` in posts. See `posts/2016-09-30-subtype-typeclasses.md` for an example.

### Previewing your changes

#### Bundler

To preview your changes, you have to install [Bundler](https://bundler.io/) first.
To download and set up all necessary dependencies, run

```console
$ bundle install
... lots of text ...
Bundle complete! 1 Gemfile dependency, 81 gems now installed.
Bundled gems are installed into `./vendor/bundle`
```

Then, you can generate the site by running

```console
$ bundle exec jekyll serve -wl --baseurl ''
```

The generated site will end up in the `_site` directory.

#### Nix

A fully configured Jekyll is available as a Nix app. Assumes that you have [installed Nix](https://nixos.org/download.html) and [enabled flakes](https://nixos.wiki/wiki/Flakes#Installing_flakes). You may optionally use the [Typelevel Cachix](https://app.cachix.org/cache/typelevel#pull).

```console
$ nix run github:typelevel/typelevel.github.com#jekyll build
warning: Git tree '/Users/ross.baker/src/typelevel.github.com' is dirty
Configuration file: /Users/ross.baker/src/typelevel.github.com/_config.yml
Source: /Users/ross.baker/src/typelevel.github.com
Destination: /Users/ross.baker/src/typelevel.github.com/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 3.635 seconds.
Auto-regeneration: disabled. Use --watch to enable.
```

There is also a devshell for direct invocation, and a convenient alias:

```console
$ nix develop github:typelevel/typelevel.github.com
🔨 Welcome to typelevel-org-shell

[general commands]

jekyll - a jekyll bundled with this site's dependencies
menu - prints this menu
tl-preview - preview the Jekyll site

$ tl-preview
Configuration file: /home/you/src/typelevel.github.com/_config.yml
Source: /home/you/src/typelevel.github.com
Destination: /home/you/src/typelevel.github.com/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 3.336 seconds.
Auto-regeneration: enabled for '/home/you/src/typelevel.github.com'
LiveReload address: http://127.0.0.1:35729
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
```



## License

Unless otherwise noted, all website content is licensed under a [Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/deed.en_US).

## Development

### CSS

The stylesheets are written in SASS, and can be found in the `css` and `_scss` directories.
It is being processed/compiled into regular CSS by Jekyll.

```
├── css/
│ ├── main.scss # Custom CSS, brings all stylesheets together
├── _scss/
│ ├── _fonts.scss # @font-face embedding.
│ ├── _mixins.scss # SASS mixins
│ ├── _reset.scss # Normalize stylesheet
│ ├── _syntax.scss # Syntax highlighting by Pygments
│ ├── _variables.scss # SASS variables (colors, fonts, etc.)
```

### Javascript

Javascript can be found in the `js/` folder, which also includes its dependencies.

### Templates

All templates/layouts can be found in the `_layouts` folder, except the blog layout, which is located inside its own subfolder `blog/`.

### Images

Images for styling purposes are located inside `img/`, photos inside `img/media/`.

### Adding a project

There are four types of projects: core/featured projects, regular projects, incubator projects, and macros.

To add a regular project, create a new markdown file in the `_projects` folder with the following front matter:

```yml
layout: post
title: "Cats"
category: "Functional Programming"
description: "An experimental library intended to provide abstractions for functional programming in Scala, leveraging its unique features. Design goals are approachability, modularity, documentation and efficiency."
permalink: "https://non.github.io/cats/"
github: "https://github.com/non/cats"
```
Right now nothing more than the correct front matter is required.
Do the same for a **core/featured** project, but also add `core: true`.
To add companions or extensions to these projects, use the front matter, too:

```yml
extensions:
- title: "Alleycats"
description: "Lawless classes & illegal instances"
github: "https://github.com/non/alleycats"
```

Incubator projects and macros are created a little differently. They are located in `_data/incubator.yml` and `_data/macros.yml` respectively, and look like this:

```yml
- title: "imp"
description: "Summoning implicit values"
github: "https://github.com/non/imp"
```

### Adding a page

To add a page, create a HTML or Markdown file in the root of the project. The site navigation is not fully dynamic for simplification purposes. It can be changed in the default layout (`_layouts/default.html`).

Sample front matter for a page:

```yml
layout: page
title: "Code of Conduct"
```

### Help, CI is failing on a Dependabot PR

We need to update the gemset as well.

```sh
nix run nixpkgs#bundix
git commit -am "Update gemset"
```
12 changes: 9 additions & 3 deletions _data/filter-blog.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
- title: All Posts
url: /blog/
category: allPosts
- title: Governance
url: /blog/governance/
category: governance
- title: Social
url: /blog/social/
category: social
- title: Technical
url: /blog/technical/
category: technical
- title: Social
url: /blog/social/
category: social
- title: Summits
url: /blog/summits/
category: summits
7 changes: 3 additions & 4 deletions _data/nav-social.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@
url: https://twitter.com/typelevel
icon: "fab fa-twitter"

- title: Gitter
url: https://gitter.im/typelevel/home
icon: "fab fa-gitter"
- title: Discord
url: https://discord.gg/XF3CXcMzqD
icon: "fab fa-discord"

- title: Email
url: "mailto:[email protected]"
icon: "fas fa-envelope"

6 changes: 3 additions & 3 deletions _data/nav.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ navSocial:
url: https://twitter.com/typelevel
icon: "fab fa-twitter"

- title: Gitter
url: https://gitter.im/typelevel/home
icon: "fab fa-gitter"
- title: Discord
url: https://discord.gg/XF3CXcMzqD
icon: "fab fa-discord"

- title: Email
url: "mailto:[email protected]"
Expand Down
2 changes: 0 additions & 2 deletions _includes/_code-of-conduct.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@
choose who you are talking to:
* [Ross A. Baker](mailto:[email protected])
* [Christopher Davenport](mailto:[email protected])
* [Erik Osheim](mailto:[email protected])
* [Miles Sabin](mailto:[email protected])
* [Kailuo Wang](mailto:[email protected])

### Examples of unacceptable behavior
Expand Down
2 changes: 1 addition & 1 deletion _layouts/post.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ <h1><span>{{ page.title }}</span></h1>
{% include _js-bottom.html %}
</body>

</html>
</html>
50 changes: 50 additions & 0 deletions blog/governance.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
layout: page
title: Blog
permalink: /blog/governance/
---

<div id="section-page">
<div class="container">
<div class="masthead-page">
<h1><span>{{ page.title }}</span></h1>
<p>{{site.data.description.blogDescription}}</p>
{% include _tab.html %}
</div>

<div class="blog-list">


{% for post in site.posts %}
{% if post.category == "governance" %}
<a href="{{ site.baseurl }}{{ post.url }}" class="blog-item">
<div class="blog-item-content">


{% if post.image contains ".jpg" or post.image contains ".png" %}
<img src="{{ site.baseurl }}{{ post.image }}" alt="">
{% else %}
<img src="{{ site.baseurl }}/img/blog/placeholder-typelevel.jpg" alt="">
{% endif %}


<div>
<h3>{{ post.title }}</h3>
{% assign author = site.data.authors[post.meta.author] %}
{% if author %}

by {{ author.full_name }}
{% endif %}
on {{ post.date | date: "%b %d, %Y" }}</p>
</div>
</div>
<div class="blog-item-tag">
<p>{{ post.category }}</p>
</div>
</a>
{% endif %}
{% endfor %}
</div>
</div>
</div>
{% include _cta-newsletter.html %}
4 changes: 2 additions & 2 deletions blog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ <h3>{{ post.title }}</h3>
</div>
</div>

{% if post.category == "social" or post.category == "technical" %}
{% if post.category %}
<div class="blog-item-tag">
<p>{{ post.category }}</p>
</div>
Expand All @@ -45,4 +45,4 @@ <h3>{{ post.title }}</h3>
</div>
</div>
</div>
{% include _cta-blog.html %}
{% include _cta-blog.html %}
Loading

0 comments on commit b072e2a

Please sign in to comment.