Git Product home page Git Product logo

typelevel.github.com's Introduction

typelevel website

This is the website of typelevel.scala. It is built on Jekyll and served at 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 ./collections/_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:
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.

Previewing your changes

Bundler

To preview your changes, you have to install Bundler first. To download and set up all necessary dependencies, run

$ 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

$ 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 and enabled flakes. You may optionally use the Typelevel Cachix.

$ 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:

$ 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.

Development

CSS

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

โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ main.scss # Custom CSS, brings all stylesheets together
โ”œโ”€โ”€ _sass/
โ”‚   โ”œโ”€โ”€ base/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ utils/

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 three types of projects: organization projects, affiliate projects, and core/featured projects.

To add an organization project, insert a new entry, alphabetically, in the _data/projects.yml file with the following keys:

- title: "Cats"
  description: "A library intended to provide abstractions for functional programming in Scala, leveraging its unique features. Design goals are approachability, modularity, documentation and efficiency."
  github: "https://github.com/typelevel/cats"
  platforms: [js, jvm, native]
  permalink: "https://typelevel.org/cats/" # optional

Right now nothing more than the correct front matter is required.

To add

  • an affiliate project, add affiliate: true to the project entry
  • a core project, add core: true to the project entry

Adding a page

To add a page,

  1. Create a directory in the root of the project, with at least an index.html file in that directory.
  2. Update _data/nav.yml to add it to the navigation. (The site navigation is not fully dynamic for simplification.)

Sample front matter for a page:

layout: page
title: "Code of Conduct"

Help, CI is failing on a Dependabot PR

We need to update the gemset as well.

nix run nixpkgs#bundix
git commit -am "Update gemset"

typelevel.github.com's People

Contributors

adelbertc avatar alexandru avatar armanbilge avatar ceedubs avatar christopherdavenport avatar darkfrog26 avatar dependabot[bot] avatar djspiewak avatar fabe avatar fthomas avatar guizmaii avatar gvolpe avatar jarrodu avatar jasnamrb avatar jducoeur avatar jorgegalindocruces avatar kailuowang avatar larsrh avatar lukajcb avatar milessabin avatar non avatar pthariensflame avatar puffnfresh avatar rossabaker avatar s11001001 avatar samspills avatar stew avatar taig avatar valencik avatar zetashift avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

typelevel.github.com's Issues

Content on the events page

(original issue: larsrh/typelevel-beta#1)

Amongst other things we need,

  • Travel info
  • Accommodation info
  • Info on apply for attendance assistance
  • Sponsor logos
  • Call for sponsors/donations

The call for speakers needs,

  • Info about mentoring availability
  • Number and length(s) of speaker slots

The call for participation needs,

  • Vague outline of activity on day 2 (Philly only).

compiler-verified blog code

It would be nice if tut (or something similar) were used to verify that the code examples in blog posts actually compiles and (when relevant) produces the expected output.

cc @tpolecat

Blog post images

Most of the blog posts have the same placeholder image. Not an ideal look.

Sorting of projects

The "above the fold" projects are alphabetical. Defining "core" projects is tough, but we should do something.

Clarify "community staff" in the Code of Conduct

It would be useful to list who, specifically, counts as a "member of the community staff."

There's a link to the [email protected] address, but I can see that being problematic if, for example, someone wanted to report a person who's well-known in the community. Without knowing who has access to the [email protected] address, the reporter couldn't be certain that the person they're reporting wouldn't see the message first and retaliate.

That's problematic if the goal is to empower people to stop inappropriate behavior.

Provide info on typelevel project membership

We have this handy writeup regarding typelevel membership: https://github.com/typelevel/general/blob/master/governance/membership.md

However I don't see any way to get to this information from the typelevel website. People browsing the list of typelevel projects may wonder "how do I get my project on this list?". I think that it would be nice to at least link to this document from the website.

More generally it also might make sense for the website to link to https://github.com/typelevel/general . It's possible that it already does that somewhere and I'm missing it, but if so it's not very prominent.

Curated projects

This is partly prompted by some thoughts after my tweet in response to the question of how to improve Scala adoption.

Trusted cohesive library ecosystem. A lot of library usage is built on trust, most folks have been bitten at one points by a lib with some gotchas. This is why I think building trust and branding of libs with shared ethos is very important.

It feels like the typelevel projects page could benefit by curating the functionality provided by the libraries in question. An example of the type of curation I think could be beneficial would be https://github.com/lauris/awesome-scala or https://github.com/rust-unofficial/awesome-rust, in that libraries are grouped based on functionality provided.

An example hierarchy could be:

"Web Server":
  - "http4s"
  - "Finch"
"HTTP Client":
  - "fetch"
  - "Hammock"
  - "http4s"
"JSON":
  - "argonaut-shapeless"
"Functional Reactive Programming":
  - "cats-effect"
  - "fs2"
  - "monix"
Database:
  - "doobie"
"Front End":
  - "OutWatch"
Configuration:
  - "Ciris"
  - "Extruder"
  - "PureConfig"
Serialization:
  - "scodec"
"Science and Data Analysis":
  - "Algebird"
  - "coulomb"
  - "Frameless"
  - "Libra"
  - "spire"
  - "squants"
"Testing":
  - "cats-scalatest"
  - "ScalaCheck"
  - "scalacheck-shapeless"
  - "Specs2"
  - "discipline"
"Linked Data":
  - "banana-rdf"
"Generic Programming":
  - "shapeless"
"Command Line":
  - "decline"
"Extensions":
  - "cats"
  - "cats-tagless"
  - "eff"
  - "kittens"
  - "monocle"
  - "mouse"
  - "refined"
  - "singleton-ops"
"Misc":
  - "algebra"
  - "paiges"
  - "scala-steward"
  - "scala-exercises"
  - "Scoverage"
"Macros and Compiler Plugins":
  - "export-hook"
  - "imp"
  - "kind-projector"
  - "Machinist"
  - "macro-compat"
  - "simulacrum"
  - "TwoTails"

Hopefully this would make it easier to navigate the typelevel ecosystem and find the correct library for the job.

The following projects have been removed, based on lacking recent commits, or being known to be unsupported:

  • Alleycats - redirects to cats.
  • shapeless-contrib - no commits in 3 years.
  • catalysts - can't decipher what the intended use of this project is? Is it a way of know which scala version is being used at runtime?
  • structures - not updated in 5 years.
  • tut - README suggests using mdoc tut is deprecated. Please switch to mdoc. See the migration guide..
  • CaseClassy - project abandoned.
  • Sonic - 3 years since last commit.

Notes

If there are any analytics available for the typelevel website. It would be very useful to know how much the projects page is used.

Blog post search

I often want to show someone a specific blog post from the Typelevel blog but paginating through the posts is a bit of a pain. I was wondering how easy it might be to add some search functionality. If nothing else we could just link to a google search that starts with site:typelevel.org/blog.

Event images should be centered on home page

These are currently shifted about 20px to the right, which offsets them from the centered text beneath, and (noticeably) from the edges of the viewport when viewing on a phone.

giter8 templates

Hi,

Would it be possible to have some giter8 templates for typelevel? I tend to create a lot of smaller projects and creating the build.sbt etc... each time is quite annoying.

link

Add RSS feed

It would be nice to have an RSS feed for the blog. I assume we can't use Jekyll plugins; can we flip a switch in github pages or something?

Maybe this.

Terrible font contrast.

It's of course subjective but the current color is a pain for eyes. Below is a screenshot where current font is on the right side and updated (I'm forced to do it every time) on the left.

image

Logo has minor glitches

When watching closely, you can see that the edges of the symbol aren't properly aligned everywhere. It caught my eye when I saw the twitter version of the logo.

Here is a zoomed in screenshot that highlights the problem better:
Screenshot

Synchronize to site

This charter is relevant to the website. Consider a GitHub workflow to synchronize it (and other important documents) to the typelevel.github.io repository.

Add CI

I broke the jekylls because nothing is testing the site build. Would be nice to make sure the site builds on PRs.

Render Pygments in an RSS-reader-friendly way

As noted in #148, RSS readers don't handle code blocks correctly; most likely this is due to their reference to CSS classes that don't exist in the RSS output. Can we output a "CSS-free" version of the code blocks for RSS, or somehow include the relevant CSS in a way understood to RSS readers?

screenshot_20170305-175559

Badges for typelevel projects

As discussed on gitter. It might be nice to have recommended badges for typelevel projects (and incubator projects).

There's an example in the matryoshka readme that looks like Typelevel incubator. I think that in this context the typelevel red looks a bit too much like a build failure icon. @larsrh has suggested using a pinkish shade from the typelevel logo.

Resurrect mdoc

Because of the impending Bintraypocalypse I've removed all traces of tut from this repository, by "simply" generating the Markdown files once and for all. The resulting files are then committed to the _posts directory (commit 2df8047).

If anyone would like to take a stab at reverting parts of that and switching to mdoc, feel free to. I opened this ticket so that future generations will know what happened on April 14, 2021.

Create a section with curated content from the community

For me, one of the biggest issues in the Typelevel ecosystem is that most of the community wisdom is scattered around the internet, in the form of blog posts, conference talks, books and community chats among others.

For this reason, I suggest having a section in the Typelevel or Cats sites with a collection of resources for anyone who wants to expand its knowledge with community resources that anyone can contribute to with a mere PR.

In case of general approval, I wouldn't mind creating a PR in any of the repos with such page.

What do you think?

Clarify "community venues" in the Code of Conduct

The current Code of Conduct states,

We expect participants to follow these rules at all community venues (including online venues) and social events associated with the community.

We should clarify which venues and events this line refers to--the Github repos? Google Group? IRC channel? Other places not listed on the "About" page? What venues, specifically, fall under the Typelevel umbrella? We should provide a comprehensive list of (online and offline) venues within the Code of Conduct itself.

Or, alternatively, if we created this list as a separate page within the website--then linked to it from the Code of Conduct--it would be helpful not only in enforcing the Code of Conduct, but in serving as a place to point newcomers who are seeking assistance.

Document process for access control to Typelevel repositories

Ref https://gitter.im/typelevel/general?at=57222f544cd0ac7a27ed46a2

Summary:

"For bintray, ie sbt-catalysts, currently on @milessabin @larsrh and myself have access there. Technically, this enough, but I feel at least one extra is needed to do releases.
Any thoughts..? ref https://bintray.com/typelevel

This is a job for a typelevel/general issue ... we need a list of people who currently have permissions (both Sonatype and Bintray) and the skeleton of a process for how someone gets on or off that list.

I have extended this to include Typelevel based github repositories too, as they are very much related.

Provide Insight into Typelevel Organization

We're rather abstract in how we describe our organization.

  • What is our concrete mission, not merely the big abstract things we care about?
  • What sort of organization are we?
  • Who are we?
  • Who's on the steering committee?
  • What does the steering committee do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.