diff --git a/.bundle/config b/.bundle/config deleted file mode 100644 index 9bc01b4c..00000000 --- a/.bundle/config +++ /dev/null @@ -1,3 +0,0 @@ ---- -BUNDLE_PATH: "vendor/bundle" -BUNDLE_DISABLE_SHARED_GEMS: "true" diff --git a/.envrc b/.envrc deleted file mode 100644 index 3550a30f..00000000 --- a/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 9ac02859..00000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Announcing official Typelevel events requires explicit mod approval -/collections/_events/ @typelevel/steering diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index e5903e0b..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: -- package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb69b063..9e6ccd3f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,20 +1,30 @@ -name: nix-flake-check +name: Continuous Integration on: pull_request: + branches: ['**'] push: - branches: - - main - - reboot + branches: ['main'] jobs: build: + name: Build and Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.1 - - - name: "Install Nix️" - uses: samueldr/lix-gha-installer-action@v1 - - - name: "Nix Flake Check" - run: nix -L flake check + - uses: actions/checkout@v6 + - uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 25 + - uses: coursier/cache-action@v6 + - uses: VirtusLab/scala-cli-setup@main + with: + scala-cli-version: 1.12.2 + - run: scala-cli fmt --check . + - run: scala-cli --server=false build.scala + - if: github.event_name != 'pull_request' + uses: peaceiris/actions-gh-pages@v4.0.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: target + cname: typelevel.org diff --git a/.gitignore b/.gitignore index c1184a03..1ef06c8e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,17 +4,3 @@ .vscode target/ - -_site -*.sw? -.idea -/vendor/bundle -css/main.css -.sass-cache -target -.deploy -.jekyll-metadata -.jekyll-cache/ -.metals -.DS_Store -.direnv/ diff --git a/.scalafmt.conf b/.scalafmt.conf new file mode 100644 index 00000000..c0db800d --- /dev/null +++ b/.scalafmt.conf @@ -0,0 +1,2 @@ +version = "3.10.0" +runner.dialect = scala3 \ No newline at end of file diff --git a/CNAME b/CNAME deleted file mode 100644 index 8442604a..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -typelevel.org \ No newline at end of file diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 0c11fce1..00000000 --- a/Gemfile +++ /dev/null @@ -1,10 +0,0 @@ -source "https://rubygems.org" - -gem "jekyll", "~> 4.2" - -group :jekyll_plugins do - gem "jekyll-paginate" - gem "jekyll-feed" - end - -gem "webrick", "~> 1.8" diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 4c45d681..00000000 --- a/Gemfile.lock +++ /dev/null @@ -1,79 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - colorator (1.1.0) - concurrent-ruby (1.1.9) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - ffi (1.15.4) - forwardable-extended (2.6.0) - http_parser.rb (0.8.0) - i18n (1.8.11) - concurrent-ruby (~> 1.0) - jekyll (4.2.1) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (~> 1.0) - jekyll-sass-converter (~> 2.0) - jekyll-watch (~> 2.0) - kramdown (~> 2.3) - kramdown-parser-gfm (~> 1.0) - liquid (~> 4.0) - mercenary (~> 0.4.0) - pathutil (~> 0.9) - rouge (~> 3.0) - safe_yaml (~> 1.0) - terminal-table (~> 2.0) - jekyll-feed (0.15.1) - jekyll (>= 3.7, < 5.0) - jekyll-paginate (1.1.0) - jekyll-sass-converter (2.1.0) - sassc (> 2.0.1, < 3.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - kramdown (2.3.1) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.3) - listen (3.7.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.4.0) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (4.0.6) - rb-fsevent (0.11.0) - rb-inotify (0.10.1) - ffi (~> 1.0) - rexml (3.3.9) - rouge (3.26.1) - safe_yaml (1.0.5) - sassc (2.4.0) - ffi (~> 1.9) - terminal-table (2.0.0) - unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.8.0) - webrick (1.8.2) - -PLATFORMS - arm64-darwin-21 - arm64-darwin-24 - x86_64-darwin-17 - x86_64-darwin-18 - x86_64-darwin-21 - x86_64-linux - -DEPENDENCIES - jekyll (~> 4.2) - jekyll-feed - jekyll-paginate - webrick (~> 1.8) - -BUNDLED WITH - 2.5.22 diff --git a/README.md b/README.md index afa167e5..f5a67f68 100644 --- a/README.md +++ b/README.md @@ -1,163 +1,73 @@ -typelevel website -================= +# typelevel.org -This is the website of typelevel.scala. It is built on Jekyll and served at [typelevel.org](https://typelevel.org). +This is the source of typelevel.org. It is built with [Laika] and deployed to GitHub Pages. -## Getting Started (the short version) +## Get Started -If you just want to add a blog post or fix a typo in the content, here's how to get started. +To work on the website, you will need: +* Scala 3.5 or later +* Java 21 or later -### Creating a blog post +### Preview Server -1. Create a new file in the [`./collections/_posts`](./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 ``) 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: +For the best experience, serve the website to immediately see your changes in a live preview. -```scala -def yourCode: Here +```bash +scala build.scala -- serve ``` -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](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` +Within a few seconds, a preview server will be available at http://localhost:8000/. Press `Ctrl+C` to stop the server. In case you need to use a different port, you may pass it as an option. +```bash +scala run build.scala -- serve --port 8080 ``` -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 +### Write a blog post -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). +Blog posts (including event announcements) are added to the `src/blog/` directory. Content is written using [GitHub-flavored Markdown][gfm]. Code blocks support syntax highlighting in Scala and [several other languages][syntax]. Rendering of mathematical expressions is enabled for any document by setting `katex: true` in the configuration header and using the `@:math` directive. -```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. +@:math +\forall a,b,c \in S : (a \cdot b) \cdot c = a \cdot (b \cdot c) +@:@ ``` - - -## 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 `_sass` directories. -It is being processed/compiled into regular CSS by Jekyll. - +If this is your first blog post, be sure to add your author info to `src/directory.conf`. + +```hocon +toolkitty { + name: Toolkitty + pronouns: "they/them" + avatar: "https://github.com/toolkitty.png" + github: toolkitty + bluesky: toolkitty.bsky.social + bio: "I am the mascot of the Scala Toolkit!" +} ``` -├── 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: +Note that event announcements use a custom template with additional fields specified in the configuration header. -```yml -- 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 +``` +{% + laika.html.template: event.template.html + date: "2025-08-15" # the date the post is published + event-date: "August 22, 2025" # the actual date of the event + event-location: "École Polytechnique Fédérale de Lausanne" + tags: [events] +%} ``` -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.) +## Development -Sample front matter for a page: +The build machinery is defined in `build.scala`. It implements several customizations, including an RSS feed generator and integrations with Protosearch, KaTeX, and Font Awesome. -```yml -layout: page -title: "Code of Conduct" -``` +To learn more about how you can develop and customize the website please reference the extensive [Laika] documentation. -### Help, CI is failing on a Dependabot PR +## Support -We need to update the gemset as well. +We are happy to help you contribute to our website! Please [create a discussion][discussion] or message the [#website][discord] channel on the Typelevel Discord. -```sh -nix run nixpkgs#bundix -git commit -am "Update gemset" -``` +[Laika]: https://typelevel.org/Laika +[syntax]: https://typelevel.org/Laika/latest/03-preparing-content/05-syntax-highlighting.html#supported-languages +[gfm]: https://github.github.com/gfm/ +[discussion]: https://github.com/typelevel/typelevel.github.com/discussions/new/choose +[discord]: https://discord.gg/krrdNdSDFf diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 9b25a120..00000000 --- a/_config.yml +++ /dev/null @@ -1,76 +0,0 @@ -# Ttitle, description... -# --------------------------------------------------------------- -name: Typelevel -title: Typelevel -description: Typelevel is an ecosystem of projects and a community of people united to foster an inclusive, welcoming, and safe environment around functional programming in Scala. -author: Israel Pérez -keywords: theme, jekyll, unstyle - -# Where things are (styles, site...) -# --------------------------------------------------------------- -sass: - sass_dir: _sass - sourcemap: never - -permalink: pretty - -highlighter: none - -# Serving, url -# --------------------------------------------------------------- -baseurl: "/typelevel.github.com" -url: "" - -# Conversion -# --------------------------------------------------------------- -markdown: kramdown - -kramdown: - syntax_highlighter_opts: - disable: true - -# Handling Reading -# --------------------------------------------------------------- -include: - - .well-known - -exclude: - [ - "config.ru", - "Gemfile", - "Gemfile.lock", - "vendor", - "Procfile", - "Rakefile", - ".bundle", - "extra", - ] - -# Collections -# --------------------------------------------------------------- -collections: - events: - output: true - permalink: /event/:year-:month-:title/ - layout: event - projects: - output: true - staff_members: - output: true - abouts: - output: true - posts: - output: true - permalink: /blog/:year/:month/:day/:title.html - -collections_dir: collections - - -# paginate: 5 -# paginate_path: "/blog/:num/" - -# PLUGIN -# --------------------------------------------------------------- - -plugins: - - jekyll-paginate diff --git a/_data/about.yml b/_data/about.yml deleted file mode 100644 index ee24e7c2..00000000 --- a/_data/about.yml +++ /dev/null @@ -1,23 +0,0 @@ -- title: "Open source" - description: "Independent, free/libre, and open-source software" - icon: /img/assets/icon-about-open-source.svg - -- title: "Functional" - description: "Pure, typeful, functional programming in Scala" - icon: /img/assets/icon-about-functional.svg - -- title: "Shared" - description: "A desire to share ideas and code" - icon: /img/assets/icon-about-shared.svg - -- title: "Resources" - description: "Accessible and idiomatic learning resources" - icon: /img/assets/icon-about-resources.svg - -- title: "Friendly" - description: "An inclusive, welcoming, and safe environment" - icon: /img/assets/icon-about-friendly.svg - -- title: "Modular" - description: "Focused, separate modules designed to work together" - icon: /img/assets/icon-about-modular.svg diff --git a/_data/authors.yml b/_data/authors.yml deleted file mode 100644 index 3b34520e..00000000 --- a/_data/authors.yml +++ /dev/null @@ -1,424 +0,0 @@ -typelevel: - full_name: "Typelevel" - portrait: "/img/logo-twitter.png" - twitter: "typelevel" -larsrh: - full_name: "Lars Hupel" - twitter: "larsr_h" - github: "larsrh" -non: - full_name: "Erik Osheim" - portrait: "/img/media/speakers/erikosheim.jpg" - twitter: "d6" - github: "non" - bio: "Erik Osheim is one of the founders of Typelevel, and maintains several Scala libraries including Cats, Spire, and others. He hacks Scala for a living at Stripe, and is committed to having his cake and eating it too when it comes to functional programming. Besides programming he spends time playing music, drinking tea, and cycling around Providence, Rhode Island." -milessabin: - full_name: "Miles Sabin" - twitter: "milessabin" - github: "milessabin" -tixxit: - full_name: "Tom Switzer" - twitter: "tixxit" - github: "tixxit" -S11001001: - full_name: "Stephen Compall" - twitter: "S11001001" - github: "S11001001" -adelbertc: - full_name: "Adelbert Chang" - portrait: "/img/media/speakers/adelbertchang.jpeg" - twitter: "adelbertchang" - github: "adelbertc" - bio: "Adelbert is an engineer at Box where he attempts to reliably copy bytes from one machine to another. He enjoys writing pure functional programs, teaching functional programming, and learning more about computing." -channingwalton: - full_name: "Channing Walton" - twitter: "channingwalton" - github: "channingwalton" -puffnfresh: - full_name: "Brian McKenna" - twitter: "puffnfresh" - github: "puffnfresh" -davegurnell: - full_name: "Dave Gurnell" - portrait: "/img/media/speakers/davegurnell.jpg" - twitter: "davegurnell" - github: "davegurnell" - bio: "Dave Gurnell is a Scala consultant and developer working for Underscore in London, UK. He has been a Scala developer since 2010 and a functional programmer for nearly a decade." -sweirich: - full_name: "Stephanie Weirich" - portrait: "/img/media/speakers/sweirich.jpg" - github: "sweirich" - twitter: "fancytypes" - bio: "Stephanie Weirich is a Professor at the University of Pennsylvania. Her research centers on programming languages, type theory and machine-assisted reasoning. In particular, she studies generic programming, metaprogramming, dependent type systems, and type inference in the context of functional programming languages. She is currently an Editor of the Journal of Functional Programming and served as the program chair for ICFP in 2010 and the Haskell Symposium in 2009." -cvogt: - full_name: "Chris Vogt" - portrait: "/img/media/speakers/chrisvogt.jpg" - github: "cvogt" - twitter: "cvogt" - bio: "Slick co-author, Compossible records author, frequent Scala conference/user group speaker, former member of Martin's team at LAMP/EPFL, based in NYC, Senior Software Engineer at x.ai" -clhodapp: - full_name: "Chris Hodapp" - portrait: "/img/media/speakers/chrishodapp.jpg" - github: "clhodapp" - twitter: "clhodapp" - bio: "Several-time Scala GSOC student and eventually mentor, author of the ill-fated Comprehensive Comprehensions project. He's hoping to see tooling and techniques from the FP/Typelevel community improve the leverage of the average developer. Based in the SF Bay Area." -raulraja: - full_name: "Raúl Raja Martínez" - portrait: "/img/media/speakers/raulraja.jpg" - github: "raulraja" - twitter: "raulraja" - bio: "Raul Raja is a functional programming enthusiast, CTO and Co-founder at 47 Degrees, a functional programming consultancy specialized in Scala." -noelwelsh: - full_name: "Noel Welsh" - portrait: "/img/media/speakers/noelwelsh.png" - github: "noelwelsh" - bio: "Noel Welsh is a partner at Underscore, a consultancy that specializes in Scala. He’s been using Scala for 6 years in all sorts of applications. He’s the author of Advanced Scala, which is in the process of being rewritten to use Cats." -dreadedsoftware: - full_name: "Marcus Henry, Jr." - portrait: "/img/media/speakers/marcushenry.jpg" - twitter: "dreadedsoftware" - github: "dreadedsoftware" - bio: "Marcus Henry, Jr. is a Software Developer for Integrichain, a company which provides actionable data insights for the life sciences. He develops mostly in functional Scala to deliver responsive, multi threaded solutions using Akka, FS2 and shapeless." -sellout: - full_name: "Greg Pfeil" - portrait: "/img/media/speakers/gregpfeil.jpg" - twitter: "sellout" - github: "sellout" - bio: "Greg Pfeil is a compiler writer and programming language designer. At this point they have written four recursion scheme libraries in three languages, with the goal of getting to half a recursion scheme library for all languages. Greg works at Formation, writing Haskell, using only the purest artisanal FP." -mpilquist: - full_name: "Michael Pilquist" - portrait: "/img/media/speakers/michaelpilquist.png" - twitter: "mpilquist" - github: "mpilquist" - bio: "Michael Pilquist is the author of Scodec, a suite of open source Scala libraries for working with binary data, and Simulacrum, a library that simplifies working with type classes. He is also a committer on a number of other projects in the Scala ecosystem, including Cats and FS2. He is also the chief software architect at Combined Conditional Access Development (CCAD), a joint venture between Comcast and ARRIS, Inc., where he is responsible for the design and development of control systems that manage tens of millions of cable system devices, including set-top boxes and head-end equipment." -fthomas: - full_name: "Frank Thomas" - portrait: "/img/media/speakers/frankthomas.png" - github: "fthomas" - bio: "Frank is a physicist by education and a programmer by profession, currently working in a telecommunications company. He started programming in Scala in 2011 and is a contributor to scalaz-stream and cats. Most of his Scala work is done in his free time." -cheng: - full_name: "Dr Eugenia Cheng" - portrait: "/img/media/speakers/eugeniacheng.jpg" - twitter: "DrEugeniaCheng" - bio: "Eugenia Cheng is a Senior Lecturer (Associate Professor) of Pure Mathematics in the School of Mathematics and Statistics, University of Sheffield, UK." -alexandru: - full_name: "Alexandru Nedelcu" - portrait: "/img/media/speakers/alexandrunedelcu.jpg" - github: "alexandru" - bio: "Alexandru is a software developer living in Bucharest, Romania. A startup guy, he's dividing his time between work, family and his personal projects, fueled by his work on the Monix project and his increased contributions to Typelevel Cats. He's also a proud father, husband, has a very unhealthy sleep schedule and appreciates talking about programming over coffee. Sometimes he blogs at: https://alexn.org" -cwmyers: - full_name: "Chris Myers" - portrait: "/img/media/speakers/chrismyers.jpg" - bio: "Chris is an experienced FP/Scala dev working at REA Group, Australia's largest Property website. He uses Scala daily in building the next generation APIs for our business. He also curates http://functionaltalks.org and is the creator of Monet.js (http://cwmyers.github.io/monet.js/), a powerful monad library for JS." -jqno: - full_name: "Jan Ouwens" - portrait: "/img/media/speakers/janouwens.jpg" - bio: "Jan Ouwens is a Scala developer at Codestar and has worked and experimented with Scala and Akka for the past five years. He has worked on a wide variety of projects over the years in the fields of service management, electron microscopes, banking, and the operation of trains. He has a polyglot mindset, having worked with a wide variety of languages such as Java, C#, Jess/Clips and yes, even VBscript." -jmerritt: - full_name: "Jonathan Merritt" - portrait: "/img/media/speakers/jonathanmerritt.jpg" - bio: "Jonathan Merritt is a software engineer in the finance sector in Australia, writing code in Haskell and Scala to support data scientists to develop large-scale predictive models. Before joining the tech industry 2 years ago, he completed a PhD on equine biomechanics followed by 10 years on the post-doc treadmill; dissecting human cadavers, building photogrammetrically-guided robots, testing horseshoes that had an in-built inertial navigation system, and doing motion capture in horses." -dialelo: - full_name: "Alejandro Gómez" - portrait: "/img/media/speakers/alejandrogomez.jpg" - bio: "Alejandro is a functional programing enthusiast with a lot of experience with dynamic languages, specially Clojure. He's the author of the Clojure cats library (https://github.com/funcool/cats) which predates Scala's cats, and has been trying to map pure FP concepts to Clojure as an experiment for quite some time. He recently started working for 47degrees writing Scala and has started the Fetch project, similar to Facebook's Haxl project (Haskell, open source) and Twitter's Stitch (Scala, not open sourced)." -smarter: - full_name: "Guillaume Martres" - portrait: "/img/media/speakers/guillaumemartres.jpg" - bio: "Compiler Engineer at EPFL working on Dotty. He's currently working on incremental compilation support using sbt." -dwijnand: - full_name: "Dale Wijnand" - portrait: "/img/media/speakers/dalewijnand.jpg" - bio: "Dale is an active OSS contributor, typically in Scala, and an sbt maintainer." -InTheNow: - full_name: "Alistair Johnson" - portrait: "/img/logo-twitter.png" - bio: "Alistair has been programming for far too long, for far too many companies, but is still passionate about promoting the integration of maths, science and engineering into everyday programming life." -chrisokasaki: - full_name: "Chris Okasaki" - github: "chrisokasaki" -sofiacole: - full_name: "Sofia Cole" - portrait: "/img/media/speakers/sofiacole.jpg" - bio: "Sofia Cole is a Scala Developer at ITV and associate at Underscore consulting. She is also a keen contributor to the Scala and tech communities, mostly focusing on making things more approachable and accessible. One of her goals in 2017 is to visit more schools introducing the wonders of programming, especially helping young girls realise their potential. Her favourite things at the moment are reading about dystopian futures, eating pancakes and watching House for the second time through." -oweinreese: - full_name: "Owein Reese" - portrait: "/img/media/speakers/oweinreese.jpg" - twitter: "oweinreese" - github: "wheaties" - bio: "Owein is the Director of Creatives Engineering at MediaMath, an adtech company. His teams have built systems in Scala which handle over 1M req/s with under 10ms latency daily. Originally starting out as a mathematical programmer working in infrared countermeasures, he moved on to become a full fledged software developer involved first with NASA satellite systems and then with hedge fund analytics. Since discovering the joys of functional programming, he’s looked for ways to incorporate higher powered abstractions in all the code he writes, when he gets to write code." -danielasfregola: - full_name: "Daniela Sfregola" - portrait: "/img/media/speakers/danielasfregola.png" - twitter: "DanielaSfregola" - github: "DanielaSfregola" - bio: "Daniela Sfregola is a Software Consultant based in London, UK. She is an active contributor to the Scala Community and a passionate blogger at danielasfregola.com." -dscleaver: - full_name: "Dave Cleaver" - portrait: "/img/media/speakers/davecleaver.jpg" - twitter: "dscleaver" - github: "dscleaver" - bio: "Dave Cleaver is a Senior Principal Engineer at Comcast designing and implementing scalable Web Services and Platforms. He has spent the last two years developing and championing solutions in Scala. His interests include AI planning, distributed systems, programming languages, and type systems." -longcao: - full_name: "Long Cao" - portrait: "/img/media/speakers/longcao.jpg" - twitter: "oacgnol" - github: "longcao" - bio: "Long Cao is a software engineer focusing on Scala, Spark, and data engineering and has been in New York for the last 5 years. He cares deeply about showing newcomers the benefits of Scala and functional programming. On his off time likes to enjoy climbing, Rocket League, music, sports, and coffee." -ratan: - full_name: "Ratan Sebastian" - portrait: "/img/media/speakers/ratansebastian.jpg" - twitter: "ratansebastian" - github: "rjsvaljean" - bio: "Ratan is a software developer at x.ai where they’re building a meeting scheduling personal assistant. He’s been programming in Scala for about 5 years and is interested in learning more about pure functional programming and type systems through Scala." -edmundnoble: - full_name: "Edmund Noble" - portrait: "/img/media/speakers/edmundnoble.jpg" - github: "edmundnoble" - twitter: "edmund_noble" - bio: "Edmund loves Scala and code in general, and he is intimately interested in how people code. Purely functional programming is his passion; he is particularly interested in new ways to constrain and abstract in programs. He contributes to a couple of the libraries under the typelevel umbrella, including cats and eff, the last of which he maintains." -igstan: - full_name: "Ionuț G. Stan" - portrait: "/img/media/speakers/ionutstan.png" - github: "igstan" - twitter: "igstan" - bio: "Ionuț G. Stan is a software developer at Eloquentix, where he works on backend services using Scala. His current interests revolve around functional programming techniques, programming languages and compilers." -nikivazou: - full_name: "Niki Vazou" - portrait: "/img/media/speakers/nikivazou.jpg" - github: "nikivazou" - twitter: "nikivazou" - bio: "Niki Vazou is a postdoctoral fellow at University of Maryland. She recently got her Ph.D. at University of California, San Diego, supervised by Ranjit Jhala. She works in the area of programming languages, with the goal of building usable program verifiers that will naturally integrate formal verification techniques into the mainstream software development chain. Niki Vazou received the Microsoft Research Ph.D. fellowship in 2014 and her BS from National Technical University of Athens, Greece in 2011." -TomasMikula: - full_name: "Tomas Mikula" - github: "TomasMikula" - twitter: "tomas_mikula" -roundcrisis: - full_name: "Andrea Magnorsky" - portrait: "/img/media/speakers/andreamagnorsky.jpg" -marina: - full_name: "Marina Sigaeva" - portrait: "/img/media/speakers/marinasigaeva.jpg" - twitter: "besseifunction" - bio: "I'm a physicist. And I'm in love with fashion, ballet and beauty." -julienrf: - full_name: "Julien Richard-Foy" - portrait: "/img/media/speakers/julienrf.jpg" - twitter: "julienrf" - bio: "Julien Richard-Foy likes writing programs. In particular, he likes leveraging programming language features to solve engineering problems. He is fascinated by languages that make it easy to turn ideas into programs that are executable by machines and easy to reason about by humans. He writes tools and MOOCs for the good of the community, at Scala Center." -kenbot: - full_name: "Ken Scambler" - portrait: "/img/media/speakers/kenscambler.jpg" - twitter: "KenScambler" - bio: "I'm an FP enthusiast based in Melbourne, Australia, with 15-odd years of programming under the belt, including 7 of Scala. I help out with the YOW Lambda Jam and Compose :: Melbourne FP conferences, and the Melbourne Scala User Group. I work at REA Group, where I was one of the hands hoisting the Scala flag 4 years ago, Iwo Jima-style. My job is mostly to prevent people from writing more software." -zainabali: - full_name: "Zainab Ali" - portrait: "/img/media/speakers/zainabali.jpg" - bio: "Zainab is a functional programmer who converted from object oriented design. A physicist at heart, she was excited to find an application of dimensional analysis and dependent types to real world problems. She is the author of Libra and a contributor to many typelevel libraries, such as cats and fs2." -aaronmblevin: - full_name: "Aaron Levin" - portrait: "/img/media/speakers/aaronlevin.jpg" - bio: "Aaron Levin is a mathematician who fell in love with programming and now manages Data Science teams at SoundCloud." -djspiewak: - full_name: "Daniel Spiewak" - github: "djspiewak" - twitter: "djspiewak" - portrait: "/img/media/speakers/danielspiewak.jpg" -harrylaou: - full_name: "Harry Laoulakos" - portrait: "/img/media/speakers/harrylaoulakos.png" - bio: "Functional programmer, enjoying programming in Scala, Play framework, Akka, Typelevel stack: cats, shapeless, etc" -vlovgr: - full_name: "Viktor Lövgren" - portrait: "/img/media/speakers/viktorloevgren.png" - bio: "Viktor is a Software engineer at Ovo Energy in London, working on the platform powering energy meter readings and consumption data. He’s an advocate of strongly typed functional programming, and Scala in particular, which has been his professional focus the past three years." - twitter: vlovgr - github: vlovgr -data_fly: - full_name: "Zhenhao Li" - portrait: "/img/media/speakers/zhenhaoli.jpg" - bio: "Zhenhao Li is a data engineer and data scientist at Connecterra, a data science and IoT startup. He is responsible for making scalable data processing jobs and pipelines and making sure data science insights are generated and delivered in real time. Before joining Connecterra, Zhenhao worked for Accenture in the area of big data and IoT technology consulting, helping major clients to adapt new technologies such as Kafka and Flink, the immutable data paradigm, and functional programming to gain business value faster. He holds a bachelor degree in software engineering and a master degree in logic. He was doing a PhD in mathematical logic at the University of Amsterdam when decided to change his career path to big data and data science. He loves functional programming, and Scala is his primary language for engineering work." -kailuowang: - full_name: "Kailuo Wang" - twitter: "kailuowang" - github: "kailuowang" -lukajcb: - full_name: "Luka Jacobowitz" - portrait: "/img/media/speakers/lukajacobowitz.jpg" - bio: "Luka is a functional programmer in love with finding great abstractions to engineering problems. He’s also a maintainer of several typelevel projects and seeks to make learning of pure functional programming as easy as possible." - twitter: LukaJacobowitz - github: LukaJCB -rossabaker: - full_name: "Ross Baker" - portrait: "/img/media/speakers/rossbaker.jpg" - bio: "Ross is a Senior Software Engineer at Takt. He began his open source journey on the Scalatra project in 2009, and has gotten purer, more functional, and more typeful with each passing year. He now contributes to http4s and cats among others, and is a member of Typelevel. He is a co-organizer of IndyScala." -dordogh: - full_name: "Dorothy Ordogh" - portrait: "/img/media/speakers/dorothyordogh.jpg" - bio: "I’m a member of the Build team at Twitter, meaning it is my full-time job to contribute to Pants. I’ve been working at Twitter for 1.5 years, the first 11 months I spent on a team building integration test frameworks, and then switched to the Build team after realizing how interesting it was. My favorite part is learning how things work under the surface! I broke into computer science in my early twenties after earning a degree in psychology. Chocolate makes the world a better place." -fabio: - full_name: "Fabio Labella" - portrait: "/img/media/speakers/fabiolabella.jpeg" - bio: "I'm a Principal Software Engineer at Ovo Energy in London, specialised in distributed systems and purely functional programming. I'm also an Open Source author and speaker as SystemFw: I'm one of the maintainers of fs2, cats-effect and http4s, and a contributor to cats, shapeless and several other libraries in the Scala FP ecosystem. Passionate about learning and teaching." -jozic: - full_name: "Eugene Platonov" - portrait: "/img/media/speakers/eugeneplatonov.jpg" - bio: "I’m a Scala Dev at eBay Inc, working commercially with Scala as my main programming language since early 2011, Java Dev in my past life. Occasional contributor to variety of Scala related OS projects. Scala evangelist who successfully converted individuals and teams to Scala from Java." -lucabelli: - full_name: "Luca Belli" - portrait: "/img/media/speakers/lucabelli.jpg" - bio: "Luca Belli is a Senior Software Engineer at Twitter Cortex, the centralized deep learning hub within the company. Previously he was a Senior Scientist at Conversant Media where he helped bootstrapping image classification using deep learning. His first job was at Wolfram Alpha in Boston. He got his Ph.D. in Mathematics from Tor Vergata University in Rome." -umasrinivasan: - full_name: "Uma Srinivasan" - portrait: "/img/logo-twitter.png" - bio: "Uma is a Staff Software Engineer in the Advanced Scala Tools team at Twitter. She brings with her multiple decades of experience and expertise in the area of compilers, code generation and related hardware/software co-design. Prior to joining Twitter she worked at Intel and Hewlett Packard. She has a Bachelor’s degree in Electrical Engineering and a Master’s in CS. She holds several patents and technical publications in her field of expertise." -kathifisler: - full_name: "Kathi Fisler" - portrait: "/img/media/speakers/kathifisler.jpg" - bio: "Kathi Fisler is a Research Professor in Computer Science at Brown University, and co-director of Bootstrap, a national-scale K-12 project that integrates introductory CS into existing middle- and high-school classes. She spent many years doing software and security verification research before deciding that people were harder (and more interesting) to model than systems. She is currently on a mission (with partner-in-crime Shriram Krishnamurthi) to explore how classical CSEd studies might have turned out differently had they considered functional programming. She's teaching with Scala for the first time this semester." -pheymann: - full_name: "Paul Heymann" - portrait: "/img/media/speakers/paulheymann.jpg" - bio: "Paul entered the realm of functional and type-level programming three years ago when he was caught by a Scala meetup. After that, he started doing Scala professionally as a Data Engineer for the social network XING. There he works on recommender systems and the ontology infrastructure which are serving requests of millions of users every day." - github: "pheymann" -keikonakata: - full_name: "Keiko Nakata" - portrait: "/img/logo-twitter.png" - bio: "Keiko Nakata works at SAP Innovation Center Network as a Scala programmer. She holds a PhD in computer science from Kyoto University, Japan. She has served on numerous program committees for international conferences and workshops on programming languages, and currently chairs a working group “Types for Verification” at an EU COST Action EUTypes. She loves topology and intuitionistic logics and their application to programming languages." -propensive: - full_name: "Jon Pretty" - portrait: "/img/media/speakers/jonpretty.jpg" - bio: "Jon has been having fun riding the bleeding edge of Scala for over a decade, and he's not finished yet. While he's not travelling the world attending Scala conferences, or organizing Scala World, Jon spends his time working on a variety of open-source Scala libraries, and providing professional Scala training services." -stefanschneider: - full_name: "Stefan Schneider" - portrait: "/img/media/speakers/stefanschneider.jpg" -itrvd: - full_name: "Itamar Ravid" - portrait: "/img/media/speakers/itamarravid.jpg" - bio: "Itamar is a freelance software engineer and has been working with Scala and functional programming for the last few years. He's been mentoring and helping teams move to functional programming in Scala, and loves finding cool use cases for functional abstractions." -cameronjoannidis: - full_name: "Cameron Joannidis" - portrait: "/img/media/speakers/cameronjoannidis.jpg" - bio: "Machine Learning / Big Data Engineer working with Scala and Functional Programming. Currently working at Simple Machines, an Australian consultancy specialising in Big Data/Machine Learning/Scala/Functional Programming." -guillaumebort: - full_name: "Guillaume Bort" - portrait: "/img/media/speakers/guillaumebort.jpg" - bio: "Creator of @playframework - Previously @Inria, @zengularity, @lightbend, @prismicio - Now working on the petabytes of analytics data at @Criteo" -sasharomijn: - full_name: "Sasha Romijn" - portrait: "/img/media/speakers/sasharomijn.jpg" - bio: "Sasha is the co-founder and CTO of a small Django development company in Amsterdam. Sasha is deeply involved in the community around Django, a popular Python web framework, being a Django team member, chair of the Dutch Django Association and co-organiser of various conferences. She cares about building communities and conferences in which everyone feels welcome, valued and at home, regardless of their background. Sasha has a specific interest in well-being and ethical issues around communities and development. Some of her side projects are the Less Obvious Conference Checklist, with many less obvious suggestions for event organisers, and Happiness Packets, to spread more gratitude and kindness in open source communities." -annettebieniusa: - full_name: "Annette Bieniusa" - portrait: "/img/media/speakers/annettebieniusa.jpg" - bio: "Annette is a lecturer and senior researcher at the Technische Universität Kaiserslautern. Her research interests include semantics of concurrent and distributed programming, with a focus on replication, synchronization, and how they are reflected on programming language level. Annette was involved in several national and international research projects, most recently the in the EU-Projects “SyncFree: Large-scale Computation without Synchronization” and “Lightkone: Lightweight computation for networks at the edge“." -gvolpe: - full_name: "Gabriel Volpe" - portrait: "/img/media/speakers/gvolpe.jpg" - github: "gvolpe" - twitter: "volpegabriel87" -ceedubs: - full_name: "Cody Allen" - twitter: "FouriersTrick" - github: "ceedubs" -etorreborre: - full_name: "Eric Torreborre" - portrait: "/img/media/speakers/etorreborre.jpg" - twitter: "etorreborre" - github: "etorreborre" -mtomko: - full_name: "Mark Tomko" - twitter: "oxbsharp" - github: "mtomko" - bio: "Mark is a senior software engineer at the Broad Institute of MIT and Harvard. He lives in Bellingham, Washington." -battermann: - full_name: "Leif Battermann" - twitter: "leifbattermann" - github: "battermann" - portrait: "/img/media/speakers/battermann.jpg" -justin: - full_name: "Justin du Coeur (Mark Waks)" - twitter: "jducoeur" - bio: "I’m a second-generation programmer, starting out on my father’s PDP-8 back in the mid-70s, and I’ve been a language geek ever since, working professionally in everything from LISP to Ada to assembly to C# to JavaScript to C++ to (heaven help me) COBOL, and pretty much everything in between. I picked up Scala back in 2007 (after trying to build a company in Java and winding up in a rage over its limitations); I’ve been working in Scala full-time since 2012. I’ve been doing “light FP” since picking up the style from Ruby around 2002, but am just now getting into the pure stuff. During the day, I work at Artima, doing Scala training and consulting and helping with ScalaTest. In my spare time, I’m the CEO and Architect of Querki, a wiki/database hybrid designed to make it easier for individuals and communities to manage and collaborate on their data." - portrait: "/img/logo-twitter.png" -adamrosien: - full_name: "Adam Rosien" - bio: "Adam Rosien is a Principal at Inner Product, focused on building systems using functional programming. He previously helped various startups in many domains develop back-end systems and implement continuous deployment practices, and also spent five years as a developer at Xerox PARC." - portrait: "/img/logo-twitter.png" -davenpcm: - full_name: "Christopher Davenport" - bio: "Chris is a Senior Software Engineer at Banno. He is a firm advocate of Functional Programming. He maintains http4s and cats-effect libraries and contributes regularly to the Open Source Community." - portrait: "/img/media/speakers/chrisdavenport.jpg" -ryanwilliams: - full_name: "Ryan Williams" - bio: "Ryan develops software for analyzing genome- and single-cell-sequencing data at the Icahn School of Medicine at Mount Sinai Hospital in NYC. He has been pushing a snowball of increasingly portable, typelevel, and FP Scala OSS libraries for several years, from dependency-management and testing DSLs to collections algorithms for Spark RDDs and genomic-analysis tools." - portrait: "/img/media/speakers/ryanwilliams.jpg" -kristinasojakova: - full_name: "Kristina Sojakova" - bio: "Kristina Sojakova is a postdoctoral researcher at Cornell University working with Greg Morrisett on the verification of cryptographic protocols. She received her PhD in 2016 from Carnegie Mellon University, where she worked on homotopy type theory, developing a universal mapping characterization of higher inductive types." - portrait: "/img/media/speakers/kristinasojakova.jpg" -stephaniebalzer: - full_name: "Stephanie Balzer" - bio: "Stephanie Balzer is a research faculty in the Principles of Programming group in the Computer Science Department at Carnegie Mellon University. Stephanie obtained her PhD from ETH Zurich under the supervision of Thomas R. Gross. In her PhD work, Stephanie developed the object-based programming language Rumer, which uses the abstraction of a relationship to make explicit the collaborations between objects, rather than representing them implicitly in terms of references. Stephanie demonstrated the benefits of relationships for program verification, by developing an invariant-based, visible-state semantics verification technique for Rumer. During her postdoc, Stephanie enriched her expertise with a more theoretical approach to programming language research based on type theory and logic, which resulted in her work on manifest sharing and manifest deadlock freedom." - portrait: "/img/media/speakers/stephaniebalzer.jpg" -denisrosset: - full_name: "Denis Rosset" - bio: "I’m a researcher in quantum physics with a strong interest in convex optimization and numerical/symbolical computing. I’ve been using Scala&Play since I wanted to build a database of research results, and Play seemed to be a reasonable solution. I fell in love with the Scala language since then, and am contributing to its open source ecosystem (Spire + personal libraries for mathematical computations)." - portrait: "/img/media/speakers/denisrosset.png" -buggymcbugfix: - full_name: "Vilem-Benjamin Liepelt" - bio: "I believe in static types & thoughtfully crafted APIs, good communication & documentation, and open-mindedness & fearless prototyping" - portrait: "/img/media/speakers/vilemliepelt.jpg" -oronport: - full_name: "Oron Port" - bio: "I am a third year Electrical Engineering Ph.D. student at Technion – Israel Institute of Technology. My research topic is “DFiant: A Dataflow Hardware Description Language”, a Scala-based DSL. I’m involved in and contribute to the Scala ecosystem and especially to the singleton-ops library." - portrait: "/img/logo-twitter.png" -romac: - full_name: "Romain Ruetschi" - bio: "I earned a MSc degree in Computer Science from EPFL in February 2018, and I have since been working at the Laboratory for Automated Reasoning and Analysis (LARA) at EPFL, under the supervision of Prof. Viktor Kunčak. I discovered Scala directly from Prof. Martin Ordersky during my Bachelor at EPFL a few years ago, and have never stopped learning more of it, alongside other languages such as Haskell, Rust or Idris. I am mainly interested in pure functional programming, type systems and formal methods." - portrait: "/img/media/speakers/romainruetschi.jpg" -diesalbla: - full_name: "Diego E. Alonso" - bio: "" - portrait: "/img/media/speakers/diegoalonso.png" -jefersonossa: - full_name: "Jeferson David Ossa" - bio: "I am a software engineer living in Medellin, Colombia. Scala and distributed systems enthusiast interested in FP, software architecture and infrastructure. Scuba diver wannabe." - portrait: "/img/media/speakers/jefersonossa.jpg" -yifanxing: - full_name: "Yifan Xing" - bio: "Yifan is a software engineer, ScalaBridge organizer, and open-source contributor. Her work involves many distributed systems related topics, including network protocols, consensus, network security, etc. Yifan contributed to the message queue systems and asynchronous APIs for a Scala open source project Shared Health Research Information Network (SHRINE) at Harvard Medical School. The system uses concepts of parallel processing/multi-threading, non-blocking asynchronous, distributed systems, etc." - portrait: "/img/logo-twitter.png" -aleksander: - full_name: "Aleksander Boruch-Gruszecki" - bio: "I’m Martin Odersky’s freshest PhD student, interested in GADTs, typelevel programming and effect systems. Before coming to EPFL, I spent four years working in the industry on back- and front-ends of web applications and dealing with the abomination known as TeamSite. Also, I drink frankly absurd amounts of coffee." - portrait: "/img/logo-twitter.png" -felixmulder: - full_name: "Felix Mulder" - bio: "Former Scala 3 Compiler Engineer at LAMP, EPFL. Currently writes code for Snoop Dogg, building the next generation of banking at the Swedish payments company Klarna." - portrait: "/img/media/speakers/felixmulder.jpg" -martinodersky: - full_name: "Martin Odersky" - bio: "Martin Odersky is professor at EPFL, coordinating the LAMP group." - portrait: "/img/media/speakers/martinodersky.jpg" -rahsan: - full_name: "Raas Ahsan" - twitter: "RaasAhsan" - github: "RaasAhsan" -armanbilge: - full_name: "Arman Bilge" - twitter: "armanbilge" - github: "armanbilge" -matthicks: - full_name: "Matt Hicks" - twitter: "darkfrog26" - github: "darkfrog26" -zetashift: - full_name: "Rishad Sewnarain" - github: "zetashift" -chingles: - full_name: "Ching Hian Chew" - github: "Chingles2404" -valencik: - full_name: "Andrew Valencik" - github: "valencik" diff --git a/_data/cta.yml b/_data/cta.yml deleted file mode 100644 index fb6d4126..00000000 --- a/_data/cta.yml +++ /dev/null @@ -1,14 +0,0 @@ -newsTitle: Newsletter -newsDescription: Learn more about the organization. Here you can see the main goals we are pursuing. - -submittingTitle: Submitting -submittingDescription: Are you interested in submitting your library to the Typelevel Ecosystem? - -blogTitle: Contribute to the blog -blogDescription: If you want to share something about a library or Scala topics in general (e.g. type classes), case studies, examples, or other related content, please do not hesitate to contact us. - -conductTitle: Typelevel Code of Conduct -conductDescription: We are committed to providing a friendly, safe and welcoming environment for all, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, sexual identity and orientation, or other such characteristics. - -steeringTitle: Steering Committee -steeringDescription: The Typelevel Steering Committee is a group of volunteers that govern Typelevel. \ No newline at end of file diff --git a/_data/description.yml b/_data/description.yml deleted file mode 100644 index 89f6f40f..00000000 --- a/_data/description.yml +++ /dev/null @@ -1,12 +0,0 @@ -aboutTitle: About -aboutDescription: Learn more about the organization, including our main goals, code of conduct, and governance. - -projectsTitle: Projects -projectsDescription: Our projects cover a wide range of domains, from general functional programming to tooling. - -blogTitle: Latest blog posts -blogDescription: In addition to org-level announcements, here we show you how to use our libraries in your code, provide examples, collect learning resources, and explore implementation details. - -eventsTitle: Events - -licenseTitle: License diff --git a/_data/filter-about.yml b/_data/filter-about.yml deleted file mode 100644 index 22f8d2b8..00000000 --- a/_data/filter-about.yml +++ /dev/null @@ -1,4 +0,0 @@ -- title: Overview - url: /about/ -- title: Contributing - url: /about/contributing/ diff --git a/_data/filter-blog.yml b/_data/filter-blog.yml deleted file mode 100644 index 320886e3..00000000 --- a/_data/filter-blog.yml +++ /dev/null @@ -1,15 +0,0 @@ -- 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: Summits - url: /blog/summits/ - category: summits diff --git a/_data/filter-gsoc.yml b/_data/filter-gsoc.yml deleted file mode 100644 index 99f05ff4..00000000 --- a/_data/filter-gsoc.yml +++ /dev/null @@ -1,6 +0,0 @@ -- title: Guidance - url: /gsoc/ -- title: Ideas - url: /gsoc/ideas/ -- title: Past Projects - url: /gsoc/projects/ diff --git a/_data/filter-platforms.yml b/_data/filter-platforms.yml deleted file mode 100644 index 3ea0cf04..00000000 --- a/_data/filter-platforms.yml +++ /dev/null @@ -1,12 +0,0 @@ -- title: All - url: /platforms/ - category: all -- title: JS - url: /platforms/js/ - category: js -- title: JVM - url: /platforms/jvm/ - category: jvm -- title: Native - url: /platforms/native/ - category: native diff --git a/_data/filter-projects.yml b/_data/filter-projects.yml deleted file mode 100644 index 0d4eab90..00000000 --- a/_data/filter-projects.yml +++ /dev/null @@ -1,9 +0,0 @@ -- title: All Projects - url: /projects/ - category: allProjects -- title: Organization - url: /projects/organization/ - category: organization -- title: Affiliate - url: /projects/affiliate/ - category: affiliate diff --git a/_data/gsoc-ideas.yml b/_data/gsoc-ideas.yml deleted file mode 100644 index a5ab1ca9..00000000 --- a/_data/gsoc-ideas.yml +++ /dev/null @@ -1,120 +0,0 @@ -# title -# description: What is it about? What need does it address? What is its final goal? -# prereqs: necessary prior knowledge (typically knowing Scala, and maybe other things) -# difficulty: Easy / Medium / Hard. what will the tricky parts be? -# length: short / medium / long (90 / 175 / 350 hours) -# mentors: github handles -# categories: AI / data / dev tools / apps / cloud / media / operating systems / programming languages / science / security / social / web -# repolinks: reference links to respective github repos - -- title: Serverless integrations for Feral - description: - Feral is a Typelevel library for building serverless functions that currently supports AWS Lambda and Google Cloud Run Functions. We want to add support for more types of serverless events and more cloud providers. - prereqs: Scala, ideally experience with serverless - difficulty: Medium. - length: medium - mentors: [armanbilge, bpholt, Chingles2404] - categories: [cloud, programming languages] - repolinks: - - name: feral - url: https://github.com/typelevel/feral - -- title: Native I/O backend for FS2 JVM - description: - FS2 on the JVM currently implements its networking API using JDK NIO. Unfortunately this indirection incurs a non-trivial performance penalty. We want to replace the use of JDK NIO with direct calls to system I/O APIs such as `epoll` and `kqueue`. - prereqs: Scala, ability to read C - difficulty: Medium. - length: long - mentors: [antoniojimeneznieto, djspiewak, mpilquist, armanbilge] - categories: [operating systems, programming languages] - repolinks: - - name: fs2 - url: https://github.com/typelevel/fs2 - -- title: FS2 Connection API - description: - TCP-based protocols are common (e.g. HTTP, Postgres, Redis) and are implemented by clients to interface with these services (e.g. Ember, Skunk, Rediculous). The goal of this project is to create a "connection" API that supports pooling, error conditions, and metrics and can be shared by all of our client libraries. - prereqs: Scala, ideally some knowledge of networking - difficulty: Hard. - length: long - mentors: [mpilquist, armanbilge] - categories: [operating systems, programming languages] - repolinks: - - name: fs2 - url: https://github.com/typelevel/fs2 - -- title: Web Components for Calico - description: - Calico is a reactive UI library built with Cats Effect and FS2. Web Components are a standard for creating framework-agnostic, reusable UI elements. The goal of this project is to enable Calico users to access the vast array of web components available by improving its DSL and code-generation. - prereqs: Scala, ideally experience with Web APIs - difficulty: Medium. - length: long - mentors: [armanbilge] - categories: [web, programming languages] - repolinks: - - name: calico - url: https://github.com/armanbilge/calico - -- title: Upgrade sbt-typelevel to sbt 2 - description: - sbt-typelevel is a plugin for sbt, the Scala build tool, used by hundreds of open source and enterprise projects. sbt 2 is in the final stages of development. We want to upgrade sbt-typelevel to sbt 2 and adopt its new features, such as "project matrix" for cross-building. - prereqs: Scala - difficulty: Medium. - length: long - mentors: [mzuehlke, armanbilge] - categories: [development tools] - repolinks: - - name: sbt-typelevel - url: https://github.com/typelevel/sbt-typelevel - -- title: Refresh Davenverse projects - description: - The Davenverse is a collection of several popular Typelevel libraries, including Mules and cats-scalacheck. Unfortunately, we have fallen behind on their maintenance. We want to move these libraries under the Typelevel org, refresh their build tooling, and bring them up-to-date to ensure their longevity. - prereqs: Scala - difficulty: Medium. - length: medium - mentors: [armanbilge, valencik] - categories: [development tools, programming languages] - repolinks: - - name: davenverse - url: https://github.com/davenverse - -- title: Cats Effect & FS2 on Wasm/WASI - description: - Web Assembly and its System Interface are emerging technologies for deploying secure, modular applications. The goal of this project is to prototype porting the Cats Effect runtime and FS2 streaming I/O to the Wasm/WASI platform, also possibly generating feedback for the Scala WASM and WASI teams. - prereqs: Scala, ideally some experience with Wasm/WASI - difficulty: Hard. Wasm/WASI support in Scala is experimental. - length: long - mentors: [armanbilge, tanishiking, valencik] - categories: [web, cloud, operating systems, programming languages] - repolinks: - - name: cats-effect - url: https://github.com/typelevel/cats-effect - - name: fs2 - url: https://github.com/typelevel/fs2 - -- title: Laika enhancements for typelevel.org - description: - Laika is a purely functional site and e-book generator and customizable text markup transformer. We recently migrated the Typelevel website from Jekyll to Laika. The goal of this project is improve and streamline Laika's support for generating non-documentation websites, such as blogs. - prereqs: Scala - difficulty: Medium. - length: medium - mentors: [armanbilge, valencik] - categories: [web, programming languages] - repolinks: - - name: Laika - url: https://github.com/typelevel/Laika - - name: typelevel.org - url: https://github.com/typelevel/typelevel.github.com - -- title: A faster immutable list datatype - description: - Immutable linked lists are a core datatype in functional programming languages. The goal of this project is to explore implementing a list-like datatype with enhanced performance. Along the way, you will learn about immutable datatypes, Cats typeclasses, and mechanical sympathy. - prereqs: Interest in functional programming - difficulty: Medium. This is a good project for beginners! - length: long - mentors: [armanbilge, johnynek] - categories: [web, programming languages] - repolinks: - - name: Cats Collections - url: https://github.com/typelevel/cats-collections diff --git a/_data/gsoc-projects.yml b/_data/gsoc-projects.yml deleted file mode 100644 index a2683003..00000000 --- a/_data/gsoc-projects.yml +++ /dev/null @@ -1,32 +0,0 @@ -- title: "I/O polling with io_uring" - description: "Integrated Cats Effect and FS2 with Linux kernel APIs, making http4s Ember benchmark 3x faster!" - permalink: "https://github.com/armanbilge/fs2-io_uring/pull/78" - categories: [operating systems] -- title: "Ember Web Sockets" - description: "Implemented the Websocket network protocol in http4s Ember, unblocking JS/Native support for a Kubernetes client." - permalink: "https://github.com/http4s/http4s/pull/7261" - categories: [web] -- title: "Pure Scala Open Telemetry APIs" - description: "Designed Scala APIs for Open Telemetry Specifications and opened the door to a pure Scala SDK." - permalink: "https://github.com/typelevel/otel4s/pull/236" - categories: [tracing] -- title: "Going Feral on the Cloud" - description: "Introduced a Google Cloud Run Functions integration for Feral to deploy http4s apps in Google's serverless platform." - permalink: "/blog/2024/12/22/gsoc24-going-feral-on-the-cloud.html" - categories: [cloud, programming languages] -- title: "Catscript" - description: "Designed a new library for easy scripting with files and processes, for inclusion in the Typelevel Toolkit." - permalink: "https://github.com/typelevel/governance/issues/149" - categories: [programming languages] -- title: "Scaladoc search in Protosearch" - description: "Integrated Protosearch with Scaladocs, enabling a unified search experience across a project's written and API docs." - permalink: "https://github.com/cozydev-pink/protosearch/pull/241" - categories: [data, web] -- title: "Efficient Machine Learning Inference in Cats Effect via Scala Native and mlpack" - description: "Created an ONNX to IO compiler for running machine learning inference within a web service." - permalink: https://github.com/armanbilge/vilcacora - categories: [AI, web, programming languages] -- title: Polling-based I/O in FS2 - description: "Implemented network socket and datagram APIs in FS2 using Cats Effect I/O polling on the JVM and Native platforms." - permalink: https://github.com/typelevel/fs2 - categories: [operating systems, programming languages] diff --git a/_data/nav-scala.yml b/_data/nav-scala.yml deleted file mode 100644 index fe399404..00000000 --- a/_data/nav-scala.yml +++ /dev/null @@ -1,8 +0,0 @@ -- title: Code of Conduct - url: /code-of-conduct - -- title: License - url: /license - -- title: Steering Committee - url: /steering-committee diff --git a/_data/nav-social.yml b/_data/nav-social.yml deleted file mode 100644 index b535dab3..00000000 --- a/_data/nav-social.yml +++ /dev/null @@ -1,19 +0,0 @@ -- title: Github - url: https://github.com/typelevel - icon: "fab fa-github" - -- title: Twitter - url: https://twitter.com/typelevel - icon: "fab fa-twitter" - -- title: Mastodon - url: https://fosstodon.org/@typelevel - icon: "fab fa-mastodon" - -- title: Discord - url: https://discord.gg/XF3CXcMzqD - icon: "fab fa-discord" - -- title: Email - url: "mailto:info@typelevel.org" - icon: "fas fa-envelope" diff --git a/_data/nav.yml b/_data/nav.yml deleted file mode 100644 index 7f353a33..00000000 --- a/_data/nav.yml +++ /dev/null @@ -1,46 +0,0 @@ -navMain: - - title: Home - url: / - - - title: Projects - url: /projects/ - - - title: Platforms - url: /platforms/ - - - title: Blog - url: /blog/ - - - title: Events - url: /events/ - - - title: About - url: /about/ - -navSocial: - - title: Github - url: https://github.com/typelevel - icon: "fab fa-github" - - - title: Twitter - url: https://twitter.com/typelevel - icon: "fab fa-twitter" - - - title: Mastodon - url: https://fosstodon.org/@typelevel - icon: "fab fa-mastodon" - - - title: Discord - url: https://discord.gg/XF3CXcMzqD - icon: "fab fa-discord" - - - title: Email - url: "mailto:info@typelevel.org" - icon: "fas fa-envelope" - -navScala: - - title: Code of Conduct - url: /code-of-conduct - - - title: License - url: /license diff --git a/_data/projects.yml b/_data/projects.yml deleted file mode 100644 index 6581c251..00000000 --- a/_data/projects.yml +++ /dev/null @@ -1,402 +0,0 @@ -- title: "argonaut-shapeless" - description: "Automatic derivation for argonaut" - github: "https://github.com/alexarchambault/argonaut-shapeless" - affiliate: true - platforms: [jvm] -- title: "banana-rdf" - description: "RDF, SPARQL and Linked Data technologies" - github: "https://github.com/banana-rdf/banana-rdf" - affiliate: true - platforms: [js, jvm] -- title: "calico" - description: "Pure, reactive UI library for building web applications with Cats Effect + FS2" - github: "https://github.com/armanbilge/calico" - permalink: "https://armanbilge.github.io/calico" - affiliate: true - platforms: [js] -- title: "cats-actors" - description: "An Actor Model implementation built on top of Cats-Effect, providing a higher-level abstraction for managing concurrency." - github: "https://github.com/suprnation/cats-actors" - affiliate: true - platforms: [jvm] -- title: "case-insensitive" - description: "A case-insensitive string for Scala" - github: "https://github.com/typelevel/case-insensitive" - platforms: [js, jvm, native] -- title: "catapult" - description: "A thin wrapper for the Launch Darkly Java server SDK using cats-effect and fs2" - github: "https://github.com/typelevel/catapult" - platforms: [jvm] -- title: "catbird" - description: "Cats instances for various Twitter Open Source Scala projects" - github: "https://github.com/typelevel/catbird" - platforms: [jvm] -- 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." - permalink: "https://typelevel.org/cats/" - github: "https://github.com/typelevel/cats" - platforms: [js, jvm, native] -- title: "Cats Collections" - description: "Data structures that facilitate pure functional programming with cats" - github: "https://github.com/typelevel/cats-collections" - platforms: [js, jvm, native] -- title: Cats-Effect - description: "The IO Monad for Scala, plus type classes for general effect types." - github: "https://github.com/typelevel/cats-effect/" - platforms: [js, jvm, native] -- title: "Cats MTL" - description: "Monad transformers made easy" - github: "https://github.com/typelevel/cats-mtl/" - platforms: [js, jvm, native] -- title: "cats-parse" - description: "A parsing library for the cats ecosystem" - github: "https://github.com/typelevel/cats-parse" - platforms: [js, jvm, native] -- title: "cats-scalatest" - description: "Scalatest bindings for Cats." - github: "https://github.com/IronCoreLabs/cats-scalatest" - affiliate: true - platforms: [js, jvm] -- title: "cats-stm" - description: "A STM implementation for Cats Effect" - github: "https://github.com/TimWSpence/cats-stm" - affiliate: true - platforms: [js, jvm, native] -- title: "Cats Tagless" - description: "A library of utilities for tagless final algebras" - github: "https://github.com/typelevel/cats-tagless/" - platforms: [js, jvm, native] -- title: "Cats-Time" - description: "Instances for Cats Typeclasses for Java 8 Time" - github: "https://github.com/typelevel/cats-time/" - platforms: [js, jvm, native] -- title: "Circe" - description: "Yet another JSON library for Scala" - github: "https://github.com/circe/circe" - affiliate: true - platforms: [js, jvm, native] -- title: "Ciris" - description: "Functional Configurations for Scala" - github: "https://github.com/vlovgr/ciris" - affiliate: true - platforms: [js, jvm, native] -- title: "coulomb" - description: "A statically typed unit analysis library for Scala" - github: "https://github.com/erikerlandson/coulomb" - affiliate: true - platforms: [js, jvm, native] -- title: "cron4s" - description: "Cross-platform CRON expression parsing for Scala" - github: "https://github.com/alonsodomin/cron4s" - affiliate: true - platforms: [js, jvm] -- title: "decline" - description: "A composable command-line parser for Scala." - github: "https://github.com/bkirwi/decline" - affiliate: true - platforms: [js, jvm, native] -- title: "discipline" - description: "Originally intended for internal use in spire, this library helps libraries declaring type classes to precisely state the laws which instances need to satisfy, and takes care of not checking derived laws multiple times." - github: "https://github.com/typelevel/discipline" - platforms: [js, jvm, native] -- title: "doobie" - description: "A pure functional JDBC layer for Scala. It is not an ORM, nor is it a relational algebra; it just provides a principled way to construct programs (and higher-level libraries) that use JDBC." - github: "https://github.com/typelevel/doobie" - platforms: [jvm] -- title: "edomata" - description: "Event-driven automata for Scala, Scala.js and scala native. This library provides purely functional state machines that can be used to create event sourced and/or CQRS style applications. It also includes production ready backends." - github: "https://github.com/hnaderi/edomata" - permalink: "https://edomata.ir/" - affiliate: true - platforms: [js, jvm, native] -- title: "eff" - description: "Extensible effects are an alternative to monad transformers for computing with effects in a functional way. This library is based on the “free-er” monad and an “open union” of effects described by Oleg Kiselyov in “Freer monads, more extensible effects”" - - permalink: "http://atnos-org.github.io/eff" - github: "https://github.com/atnos-org/eff" - affiliate: true - platforms: [js, jvm, native] -- title: "endless4s" - description: "Sharded and event-sourced entities using tagless-final algebras" - permalink: "https://endless4s.github.io/" - github: "https://github.com/endless4s/endless" - affiliate: true - platforms: [jvm] -- title: "Extruder" - description: "Populate case classes from any configuration source" - github: "https://github.com/janstenpickle/extruder" - affiliate: true - platforms: [jvm] -- title: "fabric" - description: "Object-Notation Abstraction for JSON, binary, HOCON, etc." - github: "https://github.com/typelevel/fabric" - platforms: [js, jvm, native] -- title: "Feral" - description: "Feral cats are homeless, feral functions are serverless" - github: "https://github.com/typelevel/feral" - platforms: [js, jvm] -- title: "ff4s" - description: "A purely functional web frontend framework for Scala.js." - github: "https://github.com/buntec/ff4s" - affiliate: true - platforms: [js] -- title: "Fetch" - description: "Library built on top of Cats that provides efficient data access from heterogeneous dataurces" - github: "https://github.com/47deg/fetch" - affiliate: true - platforms: [js, jvm] -- title: "Finch" - description: "Purely functional basic blocks atop of Finagle for building composable HTTP APIs" - github: "https://github.com/finagle/finch" - affiliate: true - platforms: [jvm] -- title: "Frameless" - description: "Frameless is a library for working with Spark using more expressive types." - github: "https://github.com/typelevel/frameless" - platforms: [jvm] -- title: "fs2-aes" - description: "Micro library providing AES encryption/decryption of fs2.Stream[F, Byte]." - github: "https://github.com/jwojnowski/fs2-aes" - affiliate: true - platforms: [jvm] -- title: "fs2-compress" - description: "Compression Algorithms for Fs2 " - github: "https://github.com/lhns/fs2-compress" - affiliate: true - platforms: [jvm] -- title: "fs2-data" - description: "Parse and transform data (CBOR, CSV, JSON, XML) in a streaming manner" - github: "https://github.com/gnieh/fs2-data" - affiliate: true - platforms: [js, jvm, native] -- title: "fs2-dom" - description: "Idiomatic Cats Effect + FS2 integrations for Web APIs" - github: "https://github.com/armanbilge/fs2-dom" - affiliate: true - platforms: [js] -- title: "fs2-grpc" - description: "gRPC implementation for FS2/cats-effect" - github: "https://github.com/typelevel/fs2-grpc" - platforms: [jvm] -- title: "fs2" - description: "FS2 is a library for purely functional, effectful, and polymorphic stream processing library in the Scala programming language. Its design goals are compositionality, expressiveness, resource safety, and speed. The name is a modified acronym for Functional Streams for Scala (FSS, or FS2)." - github: "https://github.com/typelevel/fs2" - platforms: [js, jvm, native] -- title: "Grackle" - description: "Functional GraphQL server for the Typelevel stack" - github: "https://github.com/typelevel/grackle" - platforms: [js, jvm, native] -- title: "Hammock" - description: "Purely functional HTTP client" - github: "https://github.com/pepegar/hammock" - affiliate: true - platforms: [jvm] -- title: "http4s" - description: "A typeful, purely functional HTTP library for client and server applications" - github: "https://github.com/http4s/http4s" - affiliate: true - platforms: [js, jvm, native] -- title: "imp" - description: "Summoning implicit values" - github: "https://github.com/non/imp" - affiliate: true - platforms: [js, jvm] -- title: "jawn-fs2" - description: "Integration of jawn and fs2 for streaming, incremental JSON parsing" - github: "https://github.com/typelevel/jawn-fs2" - platforms: [js, jvm, native] -- title: "keypool" - description: "A Keyed Pool Implementation for Scala" - github: "https://github.com/typelevel/keypool" - platforms: [js, jvm, native] -- title: "kind-projector" - description: "Plugin for nicer type-lambda syntax" - github: "https://github.com/typelevel/kind-projector" - platforms: [jvm] -- title: "Kittens" - description: "Automatic type class derivation" - github: "https://github.com/typelevel/kittens" - platforms: [js, jvm, native] -- title: "Laika" - description: "Site and e-book generator and customizable text markup transformer for sbt, Scala and Scala.js" - github: "https://github.com/typelevel/Laika" - platforms: [js, jvm] -- title: "LDBC" - description: "Pure functional JDBC layer with Cats Effect 3 and Scala 3" - github: "https://github.com/takapi327/ldbc" - affiliate: true - platforms: [js, jvm, native] -- title: "Lepus" - description: "Purely functional, non-blocking RabbitMQ client for scala, scala js and scala native built on top of fs2." - github: "https://github.com/hnaderi/lepus" - permalink: "https://lepus.hnaderi.dev/" - affiliate: true - platforms: [js, jvm, native] -- title: "Libra" - description: "Compile time dimensional analysis for any problem domain" - github: "https://github.com/to-ithaca/libra" - affiliate: true - platforms: [js, jvm] -- title: "literally" - description: "Compile time validation of literal values built from strings" - github: "https://github.com/typelevel/literally" - platforms: [js, jvm, native] -- title: "log4cats" - description: "Logging Tools For Interaction with cats-effect" - github: "https://github.com/typelevel/log4cats" - platforms: [js, jvm, native] -- title: "Monix" - description: "High-performance library for composing asynchronous, event-based programs, exposing a Reactive Streams implementation along with primitives for dealing with concurrency and side-effects." - github: "https://github.com/monix/monix" - permalink: "https://monix.io" - affiliate: true - platforms: [js, jvm] -- title: "Monocle" - description: "Optics library offering a simple yet powerful API to access and transform immutable data" - github: "https://github.com/optics-dev/Monocle" - affiliate: true - platforms: [js, jvm, native] -- title: "Mouse" - description: "Enrichments to standard library classes to ease functional programming" - github: "https://github.com/typelevel/mouse/" - platforms: [js, jvm, native] -- title: "Natchez" - description: "functional tracing for cats " - github: "https://github.com/typelevel/natchez" - platforms: [js, jvm, native] -- title: "otel4s" - description: "An OpenTelemetry library based on cats-effect" - github: "https://github.com/typelevel/otel4s" - platforms: [js, jvm, native] -- title: "Outwatch" - description: "The Functional and Reactive Web-Frontend Library for Scala.js" - github: "https://github.com/outwatch/outwatch" - affiliate: true - platforms: [js] -- title: "parsley-cats" - description: "The parsley-cats library exposes Cats instances for Parsley parsing library." - github: "https://github.com/j-mie6/parsley-cats" - affiliate: true - platforms: [js, jvm, native] -- title: "Peloton" - description: "An actor library for Cats Effect" - github: "https://github.com/killaitis/peloton" - affiliate: true - platforms: [jvm] -- title: "perspective" - description: "Provides tools for generic programming, and typeclasses for monad transformers and higher kinded data." - github: "https://github.com/Katrix/perspective" - affiliate: true - platforms: [js, jvm] -- title: "PureConfig" - description: "A boilerplate-free library for loading configuration files" - github: "https://github.com/pureconfig/pureconfig" - affiliate: true - platforms: [jvm] -- title: "refined" - description: "Tools for refining types with type-level predicates which constrain the set of values described by the refined type, for example restricting to positive or negative numbers." - github: "https://github.com/fthomas/refined" - affiliate: true - platforms: [js, jvm, native] -- title: "ScalaCheck" - description: "ScalaCheck is a library for automated property-based testing. It contains generators for randomized test data and combinators for properties." - github: "https://github.com/typelevel/scalacheck" - permalink: "http://scalacheck.org/" - platforms: [js, jvm, native] -- title: "scalacheck-shapeless" - description: "Automatic derivation for ScalaCheck" - github: "https://github.com/alexarchambault/scalacheck-shapeless" - affiliate: true - platforms: [js, jvm, native] -- title: "Scala Exercises" - description: "Platform and framework for Scala devs to learn about Scala libraries" - github: "https://github.com/scala-exercises/scala-exercises" - affiliate: true - platforms: [js, jvm] -- title: "scala-steward" - description: "A robot that helps keeping Scala projects up-to-date" - github: "https://github.com/fthomas/scala-steward" - affiliate: true - platforms: [jvm] -- title: "scodec" - description: "scodec is a combinator library for working with binary data. It focuses on contract-first and pure functional encoding and decoding of binary data and provides integration with shapeless." - github: "https://github.com/scodec/scodec" - affiliate: true - platforms: [js, jvm, native] -- title: "Scoverage" - description: "Code coverage tool for Scala" - github: "https://github.com/scoverage/scalac-scoverage-plugin" - affiliate: true - platforms: [js, jvm, native] -- title: "Shapeless" - description: "Shapeless is a generic programming library. Starting with implementations of Scrap your boilerplate and higher rank polymorphism in Scala, it quickly grew to provide advanced abstract tools like heterogenous lists and automatic instance derivation for type classes." - github: "https://github.com/milessabin/shapeless" - affiliate: true - platforms: [js, jvm, native] -- title: "simulacrum" - description: "First-class syntax for type classes" - github: "https://github.com/typelevel/simulacrum" - platforms: [js, jvm, native] -- title: "Simulacrum Scalafix" - description: "Simulacrum as Scalafix rules" - github: "https://github.com/typelevel/simulacrum-scalafix" - platforms: [js, jvm] -- title: "singleton-ops" - description: "Operations for primitive and String singleton types" - github: "https://github.com/fthomas/singleton-ops" - affiliate: true - platforms: [js, jvm] -- title: "Skunk" - description: "A data access library for Scala + Postgres" - github: "https://github.com/typelevel/skunk" - platforms: [js, jvm, native] -- title: "sonic" - description: "Property-based testing with integrated shrinking" - github: "https://github.com/melrief/sonic" - affiliate: true - platforms: [jvm] -- title: "specs2" - description: "specs2 is a library for writing executable software specifications, aiming for conciseness, readability and extensibility." - github: "https://github.com/etorreborre/specs2" - permalink: "http://specs2.org/" - affiliate: true - platforms: [js, jvm, native] -- title: "spire" - description: "Spire is a numeric library for Scala which is intended to be generic, fast, and precise. Using features such as specialization, macros, type classes, and implicits, Spire works hard to defy conventional wisdom around performance and precision trade-offs." - github: "https://github.com/typelevel/spire" - platforms: [js, jvm, native] -- title: "Squants" - description: "The Scala API for Quantities, Units of Measure and Dimensional Analysis" - github: "https://github.com/typelevel/squants" - platforms: [js, jvm, native] -- title: "Twiddles" - description: "Micro-library for building effectful protocols" - github: "https://github.com/typelevel/twiddles" - platforms: [js, jvm, native] -- title: "TwoTails" - description: "A compiler plugin adding support for mutual tail recursion" - github: "https://github.com/wheaties/TwoTails" - affiliate: true - platforms: [jvm] -- title: "typelevel.g8" - description: "A Giter8 template for sbt-typelevel" - github: "https://github.com/typelevel/typelevel.g8" - platforms: [js, jvm] -- title: "typelevel-nix" - description: "Development tools for Typelevel projects" - github: "https://github.com/typelevel/typelevel-nix" - platforms: [js, jvm, native] -- title: "uniform-scala" - description: "Functional user journeys" - github: "https://github.com/ltbs/uniform-scala" - affiliate: true - platforms: [js, jvm] -- title: "upperbound" - description: "A purely functional, interval based rate limiter" - github: "https://github.com/SystemFw/upperbound" - affiliate: true - platforms: [js, jvm, native] -- title: "vault" - description: "Type-safe, persistent storage for values of arbitrary types" - github: "https://github.com/typelevel/vault" - platforms: [js, jvm, native] diff --git a/_includes/_code-of-conduct.html b/_includes/_code-of-conduct.html deleted file mode 100644 index 5042da3f..00000000 --- a/_includes/_code-of-conduct.html +++ /dev/null @@ -1,98 +0,0 @@ -## Code of Conduct - -The Typelevel community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. -It is through these differences that our community experiences great successes and continued growth. -When you're working with members of the community, this Code of Conduct will help steer your interactions and keep Typelevel a positive, successful, and growing community. -Whether you are new or familiar with our community, we care about making it a welcoming and safe place for you and we're here to support you. - - -### Our Community - -Members of the Typelevel community are open, considerate, and respectful. -Behaviors that reinforce these values contribute to a positive environment, and include: - -- **Being kind.** We treat our fellow community members with the empathy, respect and dignity all people deserve. -- **Focusing on what is best for the community.** We're respectful of the processes set forth in the community, and we work within them. -- **Showing empathy towards other community members.** We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views. -- **Acknowledging time and effort.** We're respectful of the volunteer efforts that permeate the Typelevel community. We're thoughtful when addressing the efforts of others, keeping in mind that often the labor was completed simply for the good of the community. -- **Being respectful of differing viewpoints and experiences.** We remember that everyone was new to Scala at some point. We want to encourage newcomers to join our community and learn the Scala language and ecosystem. Always assume good intentions and a willingness to learn, just as you are willing to evolve your own opinion as you gain new insights. -- **Being considerate.** Members of the community are considerate of their peers -- other Scala users. -- **Being respectful.** We're respectful of others, their positions, their skills, their commitments, and their efforts. -- **Gracefully accepting constructive criticism.** When we disagree, we are courteous in raising our issues. -- **Using welcoming and inclusive language.** We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference. - - -### Our Standards - -Every member of our community has the right to have their identity respected. -The Typelevel community is dedicated to providing a positive experience for everyone, regardless of age, gender identity and expression, sexual orientation, disability, neurodivergence, physical appearance, body size, ethnicity, nationality, race, or religion (or lack thereof), education, or socio-economic status. - - -#### Inappropriate Behavior - -Examples of unacceptable behavior by participants include: - -- Harassment of any participants in any form -- Deliberate intimidation, stalking, or following -- Logging or taking screenshots of online activity for harassment purposes -- Publishing others' private information, such as a physical or electronic address, without explicit permission -- Violent threats or language directed against another person -- Incitement of violence or harassment towards any individual, including encouraging a person to commit suicide or to engage in self-harm -- Creating additional online accounts in order to harass another person or circumvent a ban -- Sexual language and imagery in online communities or in any conference venue, including talks -- Insults, put downs, or jokes that are based upon stereotypes, that are exclusionary, or that hold others up for ridicule -- Excessive swearing -- Unwelcome sexual attention or advances -- Unwelcome physical contact, including simulated physical contact (eg, textual descriptions like "hug" or "backrub") without consent or after a request to stop -- Pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy with others -- Sustained disruption of online community discussions, in-person presentations, or other in-person events -- Spamming, trolling, flaming, baiting or other attention-stealing behavior -- Continued one-on-one communication after requests to cease -- Other conduct that is inappropriate for a professional audience - -Community members asked to stop any inappropriate behavior are expected to comply immediately. - - -#### Consequences - -If a participant engages in behavior that violates our standards, the Typelevel Code of Conduct Committee will take any action they deem appropriate, including but not limited to: warning the offender, or expelling them from the community or current community events with no refund of event tickets. - -The full list of consequences for inappropriate behavior is listed in the [Enforcement Procedures]. - - - -### Scope - -The enforcement policies listed above apply to all official Typelevel channels, including but not limited to the following: mailing lists, both organization and affiliate GitHub repositories, Typelevel Discord server, and Typelevel venues and events. -If unaffiliated projects adopt the Typelevel Code of Conduct, please contact the maintainers of those projects for enforcement. - - -### Contact - -For questions related to our code of conduct, or to report possible violations, please immediately contact a member of the Typelevel Code of Conduct Committee: - -<!-- TODO single CoC email address --> - * [Sam Pillsworth](mailto:sam@blerf.ca) - * [Andrew Valencik](mailto:andrew.valencik@gmail.com) - * [Kateu Herbert](mailto:hkateu@gmail.com) - * [Arman Bilge](mailto:armanbilge@gmail.com) - * [Lucas Satabin](mailto:lucas.satabin@gnieh.org) - - -## Attribution - -This code of conduct is a modified version of the [Python Software Foundation Code of Conduct](https://www.python.org/psf/conduct), licensed under the [Creative Commons Attribution-ShareAlike 3.0 Unported License](https://creativecommons.org/licenses/by-sa/3.0/). - -Additional language was incorporated from the following: - -* [Otter Tech](https://otter.technology/code-of-conduct-training/) resources, licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/). -* [Scala Code of Conduct](https://www.scala-lang.org/conduct/), licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/). -* [Affect Conf Code of Conduct](https://affectconf.com/coc/), licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/). -* [Citizen Code of Conduct](http://citizencodeofconduct.org/), licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/). -* [Contributor Covenant version 1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct), licensed[ Creative Commons Attribution 4.0 License](https://github.com/ContributorCovenant/contributor_covenant/blob/master/LICENSE.md). -* [Django Project Code of Conduct](https://www.djangoproject.com/conduct/), licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/). -* [LGBTQ in Tech Slack Code of Conduct](https://lgbtq.technology/coc.html), licensed under a [Creative Commons Zero License](https://creativecommons.org/publicdomain/zero/1.0/). -* [PyCon 2018 Code of Conduct](https://us.pycon.org/2018/about/code-of-conduct/), licensed under a [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/). -* [Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html) - -[Enforcement Procedures]: https://github.com/typelevel/governance/blob/main/ENFORCEMENT-POLICY.md diff --git a/_includes/_contact-btn.html b/_includes/_contact-btn.html deleted file mode 100644 index 0f7d7390..00000000 --- a/_includes/_contact-btn.html +++ /dev/null @@ -1,5 +0,0 @@ -{% for item in site.data.nav-social %} -{% if item.title == "Email" %} -<a class="button button-secondary" href="{{ item.url | relative_url }}">contact us</a> -{% endif %} -{% endfor %} \ No newline at end of file diff --git a/_includes/_cta-blog.html b/_includes/_cta-blog.html deleted file mode 100644 index d1a4925f..00000000 --- a/_includes/_cta-blog.html +++ /dev/null @@ -1,9 +0,0 @@ -<section id="section-cta" class="section-large"> - <div class="container"> - <div class="section-header"> - <h2><span>{{site.data.cta.blogTitle}}</span></h2> - <p>{{site.data.cta.blogDescription}}</p> - {% include _contact-btn.html %} - </div> - </div> -</section> \ No newline at end of file diff --git a/_includes/_cta-conduct.html b/_includes/_cta-conduct.html deleted file mode 100644 index 659d3d46..00000000 --- a/_includes/_cta-conduct.html +++ /dev/null @@ -1,13 +0,0 @@ -<section id="section-cta" class="section-large"> - <div class="container"> - <div class="section-header"> - <h2><span>{{site.data.cta.conductTitle}}</span></h2> - <p>{{site.data.cta.conductDescription}}</p> - {% for item in site.data.nav-scala %} - {% if item.title == "Code of Conduct" %} - <a class="button button-secondary" href="{{item.url | relative_url }}">Read full Code of Conduct</a> - {% endif %} - {% endfor %} - </div> - </div> -</section> \ No newline at end of file diff --git a/_includes/_cta-gsoc.html b/_includes/_cta-gsoc.html deleted file mode 100644 index 052e294b..00000000 --- a/_includes/_cta-gsoc.html +++ /dev/null @@ -1,10 +0,0 @@ -<section id="section-cta" class="section-large"> - <div class="container"> - <div class="section-header"> - <h2><span>Submit Your Proposal</span></h2> - <p>Are you interested in working on a GSoC project with Typelevel mentors?</p> - - <a class="button button-secondary" href="mailto:gsoc@typelevel.org">send us an email</a> - </div> - </div> -</section> diff --git a/_includes/_cta-newsletter.html b/_includes/_cta-newsletter.html deleted file mode 100644 index e69de29b..00000000 diff --git a/_includes/_cta-projects.html b/_includes/_cta-projects.html deleted file mode 100644 index 4d3e52fa..00000000 --- a/_includes/_cta-projects.html +++ /dev/null @@ -1,10 +0,0 @@ -<section id="section-cta" class="section-large"> - <div class="container"> - <div class="section-header"> - <h2><span>{{site.data.cta.submittingTitle}}</span></h2> - <p>{{site.data.cta.submittingDescription}}</p> - - <a class="button button-secondary" href="https://github.com/typelevel/governance/issues/new/choose">Open a ticket!</a> - </div> - </div> -</section> diff --git a/_includes/_cta-steering.html b/_includes/_cta-steering.html deleted file mode 100644 index 422a2b26..00000000 --- a/_includes/_cta-steering.html +++ /dev/null @@ -1,15 +0,0 @@ -<section id="section-blog" class="section-large"> - <div class="container"> - <div class="section-header"> - <h2><span>{{site.data.cta.steeringTitle}}</span></h2> - <p>{{site.data.cta.steeringDescription}}</p> - {% for item in site.data.nav-scala %} - {% if item.title == "Steering Committee" %} - <p><br /> - <a class="button button-primary" href="{{item.url | relative_url }}">About the Committee</a> - </p> - {% endif %} - {% endfor %} - </div> - </div> -</section> \ No newline at end of file diff --git a/_includes/_footer.html b/_includes/_footer.html deleted file mode 100644 index 6f232a62..00000000 --- a/_includes/_footer.html +++ /dev/null @@ -1,37 +0,0 @@ -<div id="footer"> - <div class="container"> - <div class="footer-container"> - <div class="footer-brand"> - <a href="/"><img src="{{ site.baseurl }}/img/assets/typelevel-brand.svg" - title="{{ site.title }}" /></a> - </div> - - <ul class="footer-nav"> - <h3>Typelevel</h3> - {% for item in site.data.nav.navMain %} - <li> - <a href="{{ item.url | relative_url }}">{{item.title}}</a> - </li> - {% endfor %} - </ul> - <ul class="footer-nav-scala"> - <h3>Scala</h3> - {% for item in site.data.nav.navScala %} - <li> - <a href="{{ item.url | relative_url }}">{{item.title}}</a> - </li> - {% endfor %} - </ul> - <ul class="footer-social"> - - {% for item in site.data.nav.navSocial %} - <li> - <a rel="me" href="{{ item.url | relative_url }}" target="_blank"> - <i class="{{ item.icon }}"></i> - </a> - </li> - {% endfor %} - </ul> - </div> - </div> -</div> \ No newline at end of file diff --git a/_includes/_gsoc_idea_card.html b/_includes/_gsoc_idea_card.html deleted file mode 100644 index 9f34e4cc..00000000 --- a/_includes/_gsoc_idea_card.html +++ /dev/null @@ -1,45 +0,0 @@ -<div class="gsoc-item"> - <div class="gsoc-item-content"> - <div> - <img src="{{ site.baseurl }}/img/assets/icon-about-open-source.svg" alt=""> - <h3>{{ project.title }}</h3> - </div> - <p>{{ project.description | markdownify }}</p> - - <h5>Prerequisites</h5> - <p>{{ project.prereqs | markdownify }}</p> - - <h5>Expected Difficulty</h5> - <p>{{ project.difficulty | markdownify }}</p> - - <h5>Expected Length</h5> - <p> - {% if project.length == "short" %} - Short (~ 90 hours) - {% elsif project.length == "medium" %} - Medium (~ 175 hours) - {% elsif project.length == "long" %} - Long (~ 350 hours) - {% endif %} - </p> - - <h5>Mentors</h5> - <p> - {% for mentor in project.mentors %} - <a href="https://github.com/{{ mentor }}">@{{ mentor }}</a> - {% endfor %} - </p> - - <h5>Related Repos</h5> - <p> - {% for repolink in project.repolinks %} - <a href="{{ repolink.url }}">{{ repolink.name }}</a> - {% endfor %} - </p> - </div> - <div class="project-item-tag"> - {% for category in project.categories %} - <p>{{ category }}</p> - {% endfor %} - </div> -</div> diff --git a/_includes/_gsoc_project_card.html b/_includes/_gsoc_project_card.html deleted file mode 100644 index 7bcff357..00000000 --- a/_includes/_gsoc_project_card.html +++ /dev/null @@ -1,12 +0,0 @@ -<a href="{{ project.permalink }}" class="gsoc-item"> - <div class="gsoc-item-content"> - <div> - <img src="{{ site.baseurl }}/img/assets/icon-about-modular.svg" alt=""> - <h3>{{ project.title }}</h3> - </div> - <p>{{ project.description }}</p> - </div> - <div class="project-item-tag"> - <p>{{ project.categories | join: " / "}}</p> - </div> -</a> diff --git a/_includes/_head.html b/_includes/_head.html deleted file mode 100644 index 722344ef..00000000 --- a/_includes/_head.html +++ /dev/null @@ -1,31 +0,0 @@ -<head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <title>{{ site.name }} | {% if page.path contains '_event' %}{{ page.short_title }}{% else %}{{ page.title }}{% endif %} - - - - - - - - - - - - - - - {% if page.meta.mathjax %} - - - {% endif %} - diff --git a/_includes/_js-bottom.html b/_includes/_js-bottom.html deleted file mode 100644 index c0fe83d4..00000000 --- a/_includes/_js-bottom.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - + + +@:@ + +We also accept donations on [GitHub Sponsors] and [Open Collective]. + +**German donors**: we have partnered with the [Maecenata Foundation] to accept tax-deductible donations from Germany. Please use their [donation form][maecenata] and be sure to designate **TG26017 Typelevel Foundation** as the recipient organization. -We have partnered with the [Swiss Philanthropy Foundation](https://www.swissphilanthropy.ch/) to accept tax-deductible donations from Switzerland. Please contact them at international@swissphilanthropy.ch to facilitate a donation to us. +**Swiss donors**: we have partnered with the [Swiss Philanthropy Foundation] to accept tax-deductible donations from Switzerland. Please contact them at international@swissphilanthropy.ch to facilitate a donation to us. + +**European donors**: if your country participates in the [Giving Europe] network, we can accept tax-efficient donations from you. Please contact us to arrange this. Have questions or specific needs? Please email us at donate@typelevel.org. -@:@ + +[GitHub Sponsors]: https://github.com/sponsors/typelevel +[Open Collective]: https://opencollective.com/typelevel-foundation +[Maecenata Foundation]: https://www.maecenata.eu/ +[maecenata]: https://www.maecenata.eu/en/international-donations/) +[Swiss Philanthropy Foundation]: https://www.swissphilanthropy.ch/ +[Giving Europe]: https://giving.eu/ diff --git a/src/foundation/about.template.html b/src/foundation/about.template.html index 06d3ef08..ec7d919f 100644 --- a/src/foundation/about.template.html +++ b/src/foundation/about.template.html @@ -3,18 +3,9 @@ ${cursor.currentDocument.content} -
-
- Donate - -
-
- - ${cursor.currentDocument.fragments.platforms} -

- + @:svg(fa-link) Board of Directors

@@ -28,7 +19,7 @@

- + @:svg(fa-link) Foundation Sponsors

diff --git a/src/foundation/people.template.html b/src/foundation/people.template.html index 9723e5ad..9fdde355 100644 --- a/src/foundation/people.template.html +++ b/src/foundation/people.template.html @@ -5,7 +5,7 @@

- + @:svg(fa-link) Board of Directors

@@ -22,7 +22,7 @@

- + @:svg(fa-link) Technical Steering Committee

@@ -39,7 +39,7 @@

- + @:svg(fa-link) Code of Conduct Committee

@@ -56,7 +56,7 @@

- + @:svg(fa-link) Security Team

diff --git a/src/funding.json b/src/funding.json new file mode 100644 index 00000000..6bab7ea7 --- /dev/null +++ b/src/funding.json @@ -0,0 +1,67 @@ +{ + "version": "v1.1.0", + "entity": { + "type": "organisation", + "role": "owner", + "name": "Typelevel Foundation", + "email": "donate@typelevel.org", + "description": "The Typelevel Foundation is a nonprofit 501(c)(3) public charity (EIN: 39-3611111). Our mission is to ensure the long-term sustainability of the Typelevel ecosystem, advance research and education in functional programming, and grow our community of curious and passionate developers.", + "webpageUrl": { + "url": "https://typelevel.org" + } + }, + "projects": [ + { + "guid": "cats-effect", + "name": "Cats Effect", + "description": "Use functional programming to write a concurrent application and execute it on a high-performance, asynchronous runtime targeting the platform of your choice.", + "webpageUrl": { + "url": "https://typelevel.org" + }, + "repositoryUrl": { + "url": "https://github.com/typelevel/cats-effect" + }, + "licenses": [ + "spdx:Apache-2.0" + ], + "tags": [ + "functional-programming", + "effect-systems", + "concurrency", + "async", + "runtimes", + "scala" + ] + } + ], + "funding": { + "channels": [ + { + "guid": "github-sponsors", + "type": "payment-provider", + "address": "https://github.com/sponsors/typelevel/" + }, + { + "guid": "every-org", + "type": "payment-provider", + "address": "https://www.every.org/typelevel-foundation" + } + ], + "plans": [ + { + "guid": "supporter", + "status": "active", + "name": "Supporter", + "description": "Enjoy free virtual admission to Typelevel Summits.", + "amount": 75, + "currency": "USD", + "frequency": "yearly", + "channels": [ + "github-sponsors", + "every-org" + ] + } + ], + "history": [] + } +} diff --git a/src/img/media/berlin-thumb.jpg b/src/img/places/berlin-thumb.jpg similarity index 100% rename from src/img/media/berlin-thumb.jpg rename to src/img/places/berlin-thumb.jpg diff --git a/src/img/media/berlin.jpg b/src/img/places/berlin.jpg similarity index 100% rename from src/img/media/berlin.jpg rename to src/img/places/berlin.jpg diff --git a/src/img/places/berlin.md b/src/img/places/berlin.md new file mode 100644 index 00000000..496efff5 --- /dev/null +++ b/src/img/places/berlin.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/berlin.jpg) +"[Berlin-Brandenburg Gate overview](https://commons.wikimedia.org/wiki/File:Berlin-Brandenburg_Gate_overview.jpg)" by [Cezary Piwowarski](https://en.wikipedia.org/wiki/pl:User:Cezary_p) is licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/). +@:@ diff --git a/src/img/media/cadiz-thumb.jpg b/src/img/places/cadiz-thumb.jpg similarity index 100% rename from src/img/media/cadiz-thumb.jpg rename to src/img/places/cadiz-thumb.jpg diff --git a/src/img/media/cadiz.jpg b/src/img/places/cadiz.jpg similarity index 100% rename from src/img/media/cadiz.jpg rename to src/img/places/cadiz.jpg diff --git a/src/img/places/cadiz.md b/src/img/places/cadiz.md new file mode 100644 index 00000000..685dbc30 --- /dev/null +++ b/src/img/places/cadiz.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/cadiz.jpg) +"[Cádiz](https://www.flickr.com/photos/michalo/6931278196/)" by [Anna & Michal](https://www.flickr.com/people/michalo/) is licensed under [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/). +@:@ diff --git a/src/img/media/cambridge-thumb.jpg b/src/img/places/cambridge-thumb.jpg similarity index 100% rename from src/img/media/cambridge-thumb.jpg rename to src/img/places/cambridge-thumb.jpg diff --git a/src/img/media/cambridge.jpg b/src/img/places/cambridge.jpg similarity index 100% rename from src/img/media/cambridge.jpg rename to src/img/places/cambridge.jpg diff --git a/src/img/places/cambridge.md b/src/img/places/cambridge.md new file mode 100644 index 00000000..61224008 --- /dev/null +++ b/src/img/places/cambridge.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/cambridge.jpg) +"View from Prudential Tower, Boston" by yeowatzup is licensed under [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/). +@:@ diff --git a/src/img/media/copenhagen-thumb.jpg b/src/img/places/copenhagen-thumb.jpg similarity index 100% rename from src/img/media/copenhagen-thumb.jpg rename to src/img/places/copenhagen-thumb.jpg diff --git a/src/img/media/copenhagen.jpg b/src/img/places/copenhagen.jpg similarity index 100% rename from src/img/media/copenhagen.jpg rename to src/img/places/copenhagen.jpg diff --git a/src/img/places/copenhagen.md b/src/img/places/copenhagen.md new file mode 100644 index 00000000..152997ea --- /dev/null +++ b/src/img/places/copenhagen.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/copenhagen.jpg) +"[Nyhavn panorama](https://commons.wikimedia.org/wiki/File:Nyhavn-panorama.jpg)" by Scythian is licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/). +@:@ diff --git a/src/img/media/lakedistrict-thumb.jpg b/src/img/places/lakedistrict-thumb.jpg similarity index 100% rename from src/img/media/lakedistrict-thumb.jpg rename to src/img/places/lakedistrict-thumb.jpg diff --git a/src/img/media/lakedistrict.jpg b/src/img/places/lakedistrict.jpg similarity index 100% rename from src/img/media/lakedistrict.jpg rename to src/img/places/lakedistrict.jpg diff --git a/src/img/places/lakedistrict.md b/src/img/places/lakedistrict.md new file mode 100644 index 00000000..9a55b03b --- /dev/null +++ b/src/img/places/lakedistrict.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/lakedistrict.jpg) +Image under commercial license. All rights reserved. +@:@ diff --git a/src/img/media/lausanne-thumb.jpg b/src/img/places/lausanne-thumb.jpg similarity index 100% rename from src/img/media/lausanne-thumb.jpg rename to src/img/places/lausanne-thumb.jpg diff --git a/src/img/media/lausanne.jpg b/src/img/places/lausanne.jpg similarity index 100% rename from src/img/media/lausanne.jpg rename to src/img/places/lausanne.jpg diff --git a/src/img/places/lausanne.md b/src/img/places/lausanne.md new file mode 100644 index 00000000..00919a89 --- /dev/null +++ b/src/img/places/lausanne.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/lausanne.jpg) +"[lauvax](https://www.flickr.com/photos/harmishhk/15052138480)" by [harmishhk](https://www.flickr.com/people/harmishhk/) is licensed under [CC BY-SA 2.0](https://creativecommons.org/licenses/by-sa/2.0/). +@:@ diff --git a/src/img/media/london-thumb.jpg b/src/img/places/london-thumb.jpg similarity index 100% rename from src/img/media/london-thumb.jpg rename to src/img/places/london-thumb.jpg diff --git a/src/img/media/london.jpg b/src/img/places/london.jpg similarity index 100% rename from src/img/media/london.jpg rename to src/img/places/london.jpg diff --git a/src/img/places/london.md b/src/img/places/london.md new file mode 100644 index 00000000..2c539476 --- /dev/null +++ b/src/img/places/london.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/london.jpg) +Image by John Nuttall is licensed under [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/). +@:@ diff --git a/src/img/media/lyon-thumb.jpg b/src/img/places/lyon-thumb.jpg similarity index 100% rename from src/img/media/lyon-thumb.jpg rename to src/img/places/lyon-thumb.jpg diff --git a/src/img/media/lyon.jpg b/src/img/places/lyon.jpg similarity index 100% rename from src/img/media/lyon.jpg rename to src/img/places/lyon.jpg diff --git a/src/img/places/lyon.md b/src/img/places/lyon.md new file mode 100644 index 00000000..e85bdc12 --- /dev/null +++ b/src/img/places/lyon.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/lyon.jpg) +"[Saone River](https://www.flickr.com/photos/archer10/15941037949/)" by [Dennis Jarvis](https://www.flickr.com/people/archer10/) is licensed under [CC BY-SA 2.0](https://creativecommons.org/licenses/by-sa/2.0/). +@:@ diff --git a/src/img/media/nyc-thumb.jpg b/src/img/places/nyc-thumb.jpg similarity index 100% rename from src/img/media/nyc-thumb.jpg rename to src/img/places/nyc-thumb.jpg diff --git a/src/img/media/nyc.jpg b/src/img/places/nyc.jpg similarity index 100% rename from src/img/media/nyc.jpg rename to src/img/places/nyc.jpg diff --git a/src/img/media/oslo-thumb.jpg b/src/img/places/oslo-thumb.jpg similarity index 100% rename from src/img/media/oslo-thumb.jpg rename to src/img/places/oslo-thumb.jpg diff --git a/src/img/media/oslo.jpg b/src/img/places/oslo.jpg similarity index 100% rename from src/img/media/oslo.jpg rename to src/img/places/oslo.jpg diff --git a/src/img/places/oslo.md b/src/img/places/oslo.md new file mode 100644 index 00000000..2fa0ed9d --- /dev/null +++ b/src/img/places/oslo.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/oslo.jpg) +"Oslo opera house" by [Tobias Van Der Elst](https://www.flickr.com/people/79899037@N04/) is licensed under [CC BY-SA 2.0](https://creativecommons.org/licenses/by-sa/2.0/). +@:@ diff --git a/src/img/media/philly-thumb.jpg b/src/img/places/philly-thumb.jpg similarity index 100% rename from src/img/media/philly-thumb.jpg rename to src/img/places/philly-thumb.jpg diff --git a/src/img/media/philly.jpg b/src/img/places/philly.jpg similarity index 100% rename from src/img/media/philly.jpg rename to src/img/places/philly.jpg diff --git a/src/img/places/philly.md b/src/img/places/philly.md new file mode 100644 index 00000000..9269e61d --- /dev/null +++ b/src/img/places/philly.md @@ -0,0 +1,5 @@ +{% laika.targetFormats = [] %} + +@:figure(/img/places/philly.jpg) +"[I wish I was a little bit taller](https://www.flickr.com/photos/ryanhallock/18138606858/)" by [Ryan Hallock](https://www.flickr.com/people/ryanhallock/) is licensed under [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/). +@:@ diff --git a/src/img/sponsors/spotify.png b/src/img/sponsors/spotify.png deleted file mode 100644 index 5b07b5c3..00000000 Binary files a/src/img/sponsors/spotify.png and /dev/null differ diff --git a/src/img/sponsors/spotify.svg b/src/img/sponsors/spotify.svg new file mode 100644 index 00000000..52fa5a65 --- /dev/null +++ b/src/img/sponsors/spotify.svg @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.css b/src/main.css index 31cf8b83..1997647d 100644 --- a/src/main.css +++ b/src/main.css @@ -40,11 +40,12 @@ a.anchor-link { position: absolute; display: inline-block; width: 1.4em; - margin-top: -3px; + margin-top: 0.3em; text-align: right; text-decoration: none; margin-left: -1.2em; padding-right: 0.5em; + font-size: 0.7em; } h1:hover > a.anchor-link, @@ -57,10 +58,6 @@ h6:hover > a.anchor-link { text-decoration: none; } -.anchor-link .fa-link { - font-size: 0.6em; -} - img.sponsor { max-height: 48px; } @@ -128,3 +125,12 @@ img.legacy-event-sponsor { .schedule-byline { display: block; } + +.bulma-icon > svg { + box-sizing: content-box; + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} diff --git a/src/projects/default.template.html b/src/projects/default.template.html index 07c6fdd4..8da2408d 100644 --- a/src/projects/default.template.html +++ b/src/projects/default.template.html @@ -11,11 +11,11 @@

Project Index

${_.title}

- + @:svg(fa-github) @:for(_.permalink) - + @:svg(fa-book) @:@ diff --git a/src/templates/bio.template.html b/src/templates/bio.template.html index b22ab92f..96bfe218 100644 --- a/src/templates/bio.template.html +++ b/src/templates/bio.template.html @@ -28,32 +28,32 @@
@:for(_.email) - + @:svg(fa-envelope) @:@ @:for(_.url) - + @:svg(fa-globe) @:@ @:for(_.github) - + @:svg(fa-github) @:@ @:for(_.bluesky) - + @:svg(fa-bluesky) @:@ @:for(_.mastodon) - + @:svg(fa-mastodon) @:@ @:for(_.linkedin) - + @:svg(fa-linkedin) @:@
diff --git a/src/templates/footer.template.html b/src/templates/footer.template.html index b491b8f8..c8fc983e 100644 --- a/src/templates/footer.template.html +++ b/src/templates/footer.template.html @@ -21,25 +21,25 @@
Find us on ...
-
+
diff --git a/src/templates/main.template.html b/src/templates/main.template.html index 67d73daf..487ed001 100644 --- a/src/templates/main.template.html +++ b/src/templates/main.template.html @@ -9,15 +9,14 @@ - - + + @:if(katex) + @:@ - ${cursor.currentDocument.title} diff --git a/src/templates/nav.template.html b/src/templates/nav.template.html index 5deb6d4b..2b97b99c 100644 --- a/src/templates/nav.template.html +++ b/src/templates/nav.template.html @@ -19,13 +19,14 @@
+ @@ -41,7 +42,7 @@

- + @:svg(fa-magnifying-glass)

diff --git a/src/templates/redirect.template.html b/src/templates/redirect.template.html new file mode 100644 index 00000000..1491e3c1 --- /dev/null +++ b/src/templates/redirect.template.html @@ -0,0 +1,4 @@ + + + + diff --git a/src/todo/README.md b/src/todo/README.md deleted file mode 100644 index 823e1199..00000000 --- a/src/todo/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# TODO - -Sorry, this link is currently broken, we hope to fix it shortly. diff --git a/steering-committee.md b/steering-committee.md deleted file mode 100644 index d2d7b39f..00000000 --- a/steering-committee.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: coc -title: "Typelevel Steering Committee" -permalink: /steering-committee.html ---- - -The Typelevel Steering Committee is a group of volunteers that -govern Typelevel. The membership is kept in [the Typelevel -Governance repository][steering-committee] and described in the -[Typelevel Charter][charter]. - -[steering-committee]: https://github.com/typelevel/governance/blob/main/STEERING-COMMITTEE.md -[charter]: https://github.com/typelevel/governance/blob/main/CHARTER.md -