Skip to content

Commit

Permalink
Implement Learn UI from Figma Part 1 (ocaml#1798)
Browse files Browse the repository at this point in the history
* Figma colors tailwind.config.js, old colors->legacy, tutorial block, hero section
* split hero background in background and camel, scale background
* remove featured+rating on book, book difficulty variant type, lang manual banner draft, books block draft
* add two more book recommendations
* exercises block
* language manual banner background
* better book recommendation text
* move industrial user success story card to template
* platform tools section learn landing, rename legacy cards class
* update border color from Figma, adjust card hover shadow, transform paper cards to new class
* refactor footer
* refactor learn_sidebar into learn_layout
* buttons from design system, substitute legacy primary by new primary, books page
* exercises.eml
* legacy primary-600 and primary-700 to new primary color
  • Loading branch information
sabine authored and oyenuga17 committed Jan 8, 2024
1 parent c615747 commit 9f6668d
Show file tree
Hide file tree
Showing 177 changed files with 1,215 additions and 1,067 deletions.
Binary file removed asset/img/home/ocaml_camel.png
Binary file not shown.
49 changes: 49 additions & 0 deletions asset/img/learn/banner-background.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asset/img/learn/dune_logo.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions asset/img/learn/hero-background.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions asset/img/learn/hero-camel.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asset/img/learn/language_manual_camel.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added asset/img/learn/opam_logo.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion data/books/apprendre-a-programmer-avec-ocaml.md
Expand Up @@ -20,7 +20,6 @@ isbn: "2-21213-678-1"
links:
- description: Buy on Amazon.fr
uri: https://www.amazon.fr/Apprendre-programmer-avec-Ocaml-Algorithmes/dp/2212136781/
featured: false
difficulty: beginner
pricing: paid
---
Expand Down
1 change: 0 additions & 1 deletion data/books/apprentissage-de-la-programmation-avec-ocaml.md
Expand Up @@ -18,7 +18,6 @@ isbn: "2-7462-0819-9"
links:
- description: Buy on Amazon.fr
uri: https://www.amazon.com/apprentissage-programmation-avec-ocaml/dp/2746208199
featured: false
difficulty: beginner
pricing: paid
---
Expand Down
Expand Up @@ -20,7 +20,6 @@ links:
uri: https://caml.inria.fr/pub/docs/oreilly-book/
- description: Order at Amazon.fr
uri: https://www.amazon.fr/exec/obidos/ASIN/2841771210
featured: false
difficulty: intermediate
pricing: free
---
Expand Down
Expand Up @@ -14,7 +14,6 @@ isbn: "9782332978400"
links:
- description: Website
uri: https://www.edilivre.com/initiation-a-la-programmation-fonctionnelle-en-ocaml-mohammed-said-habet.html
featured: false
difficulty: beginner
pricing: paid
---
Expand Down
Expand Up @@ -16,8 +16,6 @@ links:
uri: https://github.com/uds-psl/Prog
- description: PDF download
uri: https://www.ps.uni-saarland.de/~smolka/drafts/prog2021.pdf
rating: 5
featured: false
difficulty: beginner
pricing: free
---
Expand Down
1 change: 0 additions & 1 deletion data/books/introduzione-alla-programmazione-funzionale.md
Expand Up @@ -14,7 +14,6 @@ isbn: "88-7488-031-6"
links:
- description: Order at Amazon.it
uri: https://www.amazon.it/Introduzione-programmazione-funzionale-Marta-Cialdea/dp/8874880316
featured: false
difficulty: beginner
pricing: paid
---
4 changes: 1 addition & 3 deletions data/books/more-ocaml-algorithms-methods-diversions.md
Expand Up @@ -6,7 +6,7 @@ description: >
programming with OCaml, introducing various language features and describing
some classic algorithms.
recommendation: >
This book covers topics like laziness, compression, generating PDFs, and more. A basic understanding of OCaml is required.
"More OCaml" by John Whitington explores OCaml's functional programming and algorithms, concluding with a PDF file project. Tailored for both existing OCaml programmers and those new to the language, it includes exercises with answers. The book starts with an OCaml fundamentals summary, making it accessible and informative for a diverse readership.
authors:
- John Whitington
published: 2014-08-26
Expand All @@ -16,8 +16,6 @@ language:
links:
- description: Buy on Amazon
uri: https://www.amazon.com/gp/product/0957671113
rating: 5
featured: false
difficulty: intermediate
pricing: paid
---
Expand Down
1 change: 0 additions & 1 deletion data/books/nyumon-ocaml.md
Expand Up @@ -11,7 +11,6 @@ language:
links:
- description: Order at Amazon.co.jp
uri: https://www.amazon.co.jp/%E5%85%A5%E9%96%80OCaml-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%9F%BA%E7%A4%8E%E3%81%A8%E5%AE%9F%E8%B7%B5%E7%90%86%E8%A7%A3-OCaml-Nagoya/dp/4839923116
featured: false
difficulty: beginner
pricing: paid
---
5 changes: 2 additions & 3 deletions data/books/ocaml-from-the-very-beginning.md
Expand Up @@ -5,7 +5,8 @@ description: >
In "OCaml from the Very Beginning" John Whitington takes a
no-prerequisites approach to teaching a modern general-purpose
programming language.
recommendation: "Suitable for formal use within an academic curriculum, and for the interested amateur."
recommendation: >
John Whitington's "OCaml from the Very Beginning" is a beginner-friendly guide to learning OCaml, a modern programming language. The book gradually introduces concepts in concise chapters, with exercises and answers. It's suitable for both novice and experienced programmers, and can be used in academic settings or for self-study.
authors:
- John Whitington
published: 2013-06-07
Expand All @@ -17,8 +18,6 @@ links:
uri: https://ocaml-book.com/
- description: Buy on Amazon
uri: https://www.amazon.com/gp/product/0957671105
rating: 4
featured: true
difficulty : beginner
pricing: free
---
Expand Down
5 changes: 2 additions & 3 deletions data/books/ocaml-programming-correct-beautiful-efficient.md
Expand Up @@ -5,7 +5,8 @@ description: >
A textbook on functional programming and data structures in OCaml, with an
emphasis on semantics and software engineering. This book is the textbook for
CS 3110 Data Structures and Functional Programming at Cornell University.
recommendation: "Basic experience in some imperative programming language is helpful. Includes over 200 videos."
recommendation: >
This textbook, used in a third-semester Cornell course, teaches functional programming and data structures in OCaml, emphasizing semantics and software engineering. Suitable for students with Python and Java backgrounds, it requires some imperative language skills and basic discrete mathematics. The book includes over 200 YouTube videos as supplementary or alternative learning resources.
authors:
- Michael R. Clarkson
published: 2023-08-14
Expand All @@ -15,8 +16,6 @@ language:
links:
- description: Read Online
uri: https://cs3110.github.io/textbook/
rating: 5
featured: true
difficulty: beginner
pricing: free
---
Expand Down
3 changes: 2 additions & 1 deletion data/books/ocaml-scientific-computing.md
Expand Up @@ -4,6 +4,8 @@ slug: "ocaml-scientific-computing"
description: >
Shows how the expressiveness of OCaml allows for fast and safe
development of data science applications.
recommendation: >
This book merges functional programming in OCaml with numerical computation, tailored for data science and AI. It's ideal for those familiar with functional programming, offering a mix of foundational concepts and advanced cloud computing techniques. The structure allows readers to choose topics of interest, making it a versatile guide for learning and applying scientific computing.
authors:
- Liang Wang
- Jianxin Zhao
Expand All @@ -17,7 +19,6 @@ links:
uri: https://link.springer.com/book/10.1007/978-3-030-97645-3
- description: Buy on Amazon
uri: https://www.amazon.com/gp/product/3030976440
featured: true
difficulty: advanced
pricing: paid
---
Expand Down
1 change: 0 additions & 1 deletion data/books/ocaml-yuyan-biancheng-jichu-jiaocheng.md
Expand Up @@ -11,7 +11,6 @@ language:
links:
- description: Order at Epubit.com
uri: https://www.epubit.com/bookDetails?id=N18159
featured: false
difficulty: beginner
pricing: paid
---
Expand Up @@ -13,6 +13,6 @@ isbn: "978-2-916466-05-7"
links:
- description: Order on Paracamplus
uri: https://www.decitre.fr/livres/programmation-de-droite-a-gauche-et-vice-versa-9782916466064.html
featured: false
difficulty: intermediate
pricing: paid
---
2 changes: 1 addition & 1 deletion data/books/puroguramingu-in-ocaml.md
Expand Up @@ -11,6 +11,6 @@ language:
links:
- description: Order at Amazon.co.jp
uri: https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-OCaml-%E3%80%9C%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89GUI%E6%A7%8B%E7%AF%89%E3%81%BE%E3%81%A7%E3%80%9C-%E4%BA%94%E5%8D%81%E5%B5%90%E6%B7%B3-ebook/dp/B00QRPI1AS
featured: false
difficulty: intermediate
pricing: paid
---
4 changes: 1 addition & 3 deletions data/books/real-world-ocaml.md
Expand Up @@ -6,7 +6,7 @@ description: >
computation, system scripting, and database-driven web applications with
the OCaml multi-paradigm programming language.
recommendation: >
Suitable for people with some imperative programming experience. Hands-on code examples using real world scenerios.
This practical book guides through using OCaml for real-world problems in data processing and web applications, covering its various programming styles with real examples. It starts with basics and advances to topics like the module system and foreign-function interface, focusing on efficient coding using the Jane Street core library.
authors:
- Anil Madhavapeddy
- Yaron Minsky
Expand All @@ -17,8 +17,6 @@ language:
links:
- description: Read Online
uri: https://realworldocaml.org/
rating: 4
featured: true
difficulty: intermediate
pricing: free
---
Expand Down
Expand Up @@ -13,7 +13,6 @@ language:
links:
- description: Read Online
uri: https://greenteapress.com/thinkocaml/thinkocaml.pdf
featured: false
difficulty : beginner
pricing: free
---
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/001_tail.md
@@ -1,6 +1,6 @@
---
title: Tail of a List
number: "1"
slug: "1"
difficulty: beginner
tags: [ "list" ]
description: "Write a function that returns the last element of a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/002_tail_penultimate.md
@@ -1,6 +1,6 @@
---
title: Last Two Elements of a List
number: "2"
slug: "2"
difficulty: beginner
tags: [ "list" ]
description: "Find the last and penultimate elements of a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/003_nth_element.md
@@ -1,6 +1,6 @@
---
title: N'th Element of a List
number: "3"
slug: "3"
difficulty: beginner
tags: [ "list" ]
description: "Find the N'th element of a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/004_length_of_list.md
@@ -1,6 +1,6 @@
---
title: Length of a List
number: "4"
slug: "4"
difficulty: beginner
tags: [ "list" ]
description: "Find the number of elements of a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/005_reverse_list.md
@@ -1,6 +1,6 @@
---
title: Reverse a List
number: "5"
slug: "5"
difficulty: beginner
tags: [ "list" ]
description: "Write a function to reverse a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/006_palindrome.md
@@ -1,6 +1,6 @@
---
title: Palindrome
number: "6"
slug: "6"
difficulty: beginner
tags: [ "list" ]
description: "Find out whether a list is a palindrome."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/007_flatten_list.md
@@ -1,6 +1,6 @@
---
title: Flatten a List
number: "7"
slug: "7"
difficulty: intermediate
tags: [ "list" ]
description: "Write a function that flattens a nested list structure represented by the 'a node type."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/008_remove_duplicates.md
@@ -1,6 +1,6 @@
---
title: Eliminate Duplicates
number: "8"
slug: "8"
difficulty: intermediate
tags: [ "list" ]
description: "Eliminate consecutive duplicates of list elements."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/009_pack_duplicates.md
@@ -1,6 +1,6 @@
---
title: Pack Consecutive Duplicates
number: "9"
slug: "9"
difficulty: intermediate
tags: [ "list" ]
description: "Pack consecutive duplicates of list elements into sublists."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/010_run_length_encoding.md
@@ -1,6 +1,6 @@
---
title: Run-Length Encoding
number: "10"
slug: "10"
difficulty: beginner
tags: [ "list" ]
description: "Performs run-length encoding on a list"
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/011_modified_run_length.md
@@ -1,6 +1,6 @@
---
title: Modified Run-Length Encoding
number: "11"
slug: "11"
difficulty: beginner
tags: [ "list" ]
description: "Modify run-length encoding to include single elements and (count, element) pairs."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/012_run_length_decoding.md
@@ -1,6 +1,6 @@
---
title: Decode a Run-Length Encoded List
number: "12"
slug: "12"
difficulty: intermediate
tags: [ "list" ]
description: "Reconstruct the uncompressed list from a run-length code list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/013_run_decoding_direct.md
@@ -1,6 +1,6 @@
---
title: Run-Length Encoding of a List (Direct Solution)
number: "13"
slug: "13"
difficulty: intermediate
tags: [ "list" ]
description: "Perform run-length encoding directly by counting duplicates and simplifying the result list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/014_duplicate_elements.md
@@ -1,6 +1,6 @@
---
title: Duplicate the Elements of a List
number: "14"
slug: "14"
difficulty: beginner
tags: [ "list" ]
description: "Write a function that duplicates the elements of a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/015_replicate_elements.md
@@ -1,6 +1,6 @@
---
title: Replicate the Elements of a List a Given Number of Times
number: "15"
slug: "15"
difficulty: intermediate
tags: [ "list" ]
description: "Write a function that replicates the elements of a list a given number of times."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/016_drop_elements.md
@@ -1,6 +1,6 @@
---
title: Drop Every N'th Element From a List
number: "16"
slug: "16"
difficulty: intermediate
tags: [ "list" ]
description: "Write a function that drops every N'th element from a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/017_split_list.md
@@ -1,6 +1,6 @@
---
title: Split a List Into Two Parts; The Length of the First Part Is Given
number: "17"
slug: "17"
difficulty: beginner
tags: [ "list" ]
description: "Split a list into two parts, with the length of the first part specified."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/018_extract_slice.md
@@ -1,6 +1,6 @@
---
title: Extract a Slice From a List
number: "18"
slug: "18"
difficulty: intermediate
tags: [ "list" ]
description: "Extract a slice of a list between indices i and k, both inclusive, using 0-based indexing."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/019_rotate_list.md
@@ -1,6 +1,6 @@
---
title: Rotate a List N Places to the Left
number: "19"
slug: "19"
difficulty: intermediate
tags: [ "list" ]
description: "Write a function that rotates a list N places to the left."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/020_remove_nth_element.md
@@ -1,6 +1,6 @@
---
title: Remove the K'th Element From a List
number: "20"
slug: "20"
difficulty: beginner
tags: [ "list" ]
description: "Create a function to remove the K'th element from a list (0-based index)."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/021_insert_element.md
@@ -1,6 +1,6 @@
---
title: Insert an Element at a Given Position Into a List
number: "21"
slug: "21"
difficulty: beginner
tags: [ "list" ]
description: "Insert an element at a specified position (0-based index) within a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/022_create_list.md
@@ -1,6 +1,6 @@
---
title: Create a List Containing All Integers Within a Given Range
number: "22"
slug: "22"
difficulty: beginner
tags: [ "list" ]
description: "Generate a list of integers in ascending order from A to B, and in descending order if A is greater than B."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/023_extract_random.md
@@ -1,6 +1,6 @@
---
title: Extract a Given Number of Randomly Selected Elements From a List
number: "23"
slug: "23"
difficulty: intermediate
tags: [ "list" ]
description: "Randomly select N elements from a list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/024_lotto.md
@@ -1,6 +1,6 @@
---
title: "Lotto: Draw N Different Random Numbers From the Set 1..M"
number: "24"
slug: "24"
difficulty: beginner
tags: [ "list" ]
description: "Draw N different random numbers from the set 1..M."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/025_generate_permutations.md
@@ -1,6 +1,6 @@
---
title: Generate a Random Permutation of the Elements of a List
number: "25"
slug: "25"
difficulty: beginner
tags: [ "list" ]
description: "Generate a random permutation of the elements in the given list."
Expand Down
2 changes: 1 addition & 1 deletion data/exercises/026_generate_combinations.md
@@ -1,6 +1,6 @@
---
title: Generate the Combinations of K Distinct Objects Chosen From the N Elements of a List
number: "26"
slug: "26"
difficulty: intermediate
tags: [ "list" ]
description: "Generate all possible combinations of K distinct objects chosen from a list of N elements."
Expand Down

0 comments on commit 9f6668d

Please sign in to comment.