39 |
40 |
41 |
42 |
43 | )}
44 | {title}
} 48 | {description && ( 49 |{description}
50 | )} 51 |
28 |
29 | Notes: Some more notes go here
30 |
31 | ---
32 |
33 | # Let's practice!
34 |
35 | Notes: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tristique
36 | libero at est congue, sed vestibulum tortor laoreet. Aenean egestas massa non
37 | commodo consequat. Curabitur faucibus, sapien vitae euismod imperdiet, arcu erat
38 | semper urna, in accumsan sapien dui ac mi. Pellentesque felis lorem, semper nec
39 | velit nec, consectetur placerat enim.
40 |
--------------------------------------------------------------------------------
/src/styles/index.module.sass:
--------------------------------------------------------------------------------
1 | .logo
2 | width: 300px
3 | height: auto
4 | max-width: 100%
5 | margin: 0 auto 6rem
6 | display: block
7 | color: var(--color-theme)
8 |
9 | .subtitle
10 | font-family: var(--font-display)
11 | width: 600px
12 | height: auto
13 | max-width: 100%
14 | margin: 0 auto 1rem
15 | display: block
16 | text-align: center
17 |
18 | .introduction
19 | width: var(--width-container)
20 | max-width: 100%
21 | padding: 1rem
22 | margin: 0 auto
23 | display: block
24 | text-align: left
25 |
26 | .chapter
27 | width: var(--width-container)
28 | max-width: 100%
29 | margin: 0 auto
30 | padding: 2rem
31 | border: 1px solid var(--color-subtle-medium)
32 | border-radius: var(--border-radius)
33 | margin-bottom: 2rem
34 |
35 | .chapter-title
36 | font-family: var(--font-display)
37 | font-size: var(--font-size-lg)
38 | margin-bottom: 1.5rem
39 |
40 | .chapter-desc
41 | font-size: var(--font-size-sm)
42 | color: var(--color-subtle-dark)
43 | margin-bottom: 0
44 |
--------------------------------------------------------------------------------
/src/components/hint.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useCallback } from 'react'
2 |
3 | import classes from '../styles/hint.module.sass'
4 |
5 | export const Hint = ({ expanded = false, actions = [], children }) => {
6 | const [isExpanded, setIsExpanded] = useState(expanded)
7 | const handleExpand = useCallback(() => setIsExpanded(!isExpanded), [isExpanded])
8 | return (
9 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (C) 2019 Ines Montani
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 |
3 | # Logs
4 | logs
5 | *.log
6 | npm-debug.log*
7 | yarn-debug.log*
8 | yarn-error.log*
9 |
10 | # Runtime data
11 | pids
12 | *.pid
13 | *.seed
14 | *.pid.lock
15 |
16 | # Directory for instrumented libs generated by jscoverage/JSCover
17 | lib-cov
18 |
19 | # Coverage directory used by tools like istanbul
20 | coverage
21 |
22 | # nyc test coverage
23 | .nyc_output
24 |
25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
26 | .grunt
27 |
28 | # Bower dependency directory (https://bower.io/)
29 | bower_components
30 |
31 | # node-waf configuration
32 | .lock-wscript
33 |
34 | # Compiled binary addons (http://nodejs.org/api/addons.html)
35 | build/Release
36 |
37 | # Dependency directories
38 | node_modules/
39 | jspm_packages/
40 |
41 | # Typescript v1 declaration files
42 | typings/
43 |
44 | # Optional npm cache directory
45 | .npm
46 |
47 | # Optional eslint cache
48 | .eslintcache
49 |
50 | # Optional REPL history
51 | .node_repl_history
52 |
53 | # Output of 'npm pack'
54 | *.tgz
55 |
56 | # dotenv environment variables file
57 | .env
58 |
59 | # gatsby files
60 | .cache/
61 | public
62 |
63 | # Mac files
64 | .DS_Store
65 |
66 | # Yarn
67 | yarn-error.log
68 | .pnp/
69 | .pnp.js
70 | # Yarn Integrity file
71 | .yarn-integrity
72 |
--------------------------------------------------------------------------------
/exercises/bookquotes.json:
--------------------------------------------------------------------------------
1 | [
2 | [
3 | "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.",
4 | { "author": "Franz Kafka", "book": "Metamorphosis" }
5 | ],
6 | [
7 | "I know not all that may be coming, but be it what it will, I'll go to it laughing.",
8 | { "author": "Herman Melville", "book": "Moby-Dick or, The Whale" }
9 | ],
10 | [
11 | "It was the best of times, it was the worst of times.",
12 | { "author": "Charles Dickens", "book": "A Tale of Two Cities" }
13 | ],
14 | [
15 | "The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn like fabulous yellow roman candles exploding like spiders across the stars.",
16 | { "author": "Jack Kerouac", "book": "On the Road" }
17 | ],
18 | [
19 | "It was a bright cold day in April, and the clocks were striking thirteen.",
20 | { "author": "George Orwell", "book": "1984" }
21 | ],
22 | [
23 | "Nowadays people know the price of everything and the value of nothing.",
24 | { "author": "Oscar Wilde", "book": "The Picture Of Dorian Gray" }
25 | ]
26 | ]
27 |
--------------------------------------------------------------------------------
/chapters/chapter1.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: 'Chapter 1: Getting started'
3 | description:
4 | 'This chapter will teach you about many cool things and introduce you to the
5 | most important concepts of the course.'
6 | prev: null
7 | next: /chapter2
8 | type: chapter
9 | id: 1
10 | ---
11 |
12 | 
160 | ```
161 |
162 | ### Custom Elements
163 |
164 | When using custom elements, make sure to place a newline between the
165 | opening/closing tags and the children. Otherwise, Markdown content may not
166 | render correctly.
167 |
168 | #### `