Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b32fe56

Browse files
committedMar 21, 2022
add new page - Add New Guides/Tutorials
1 parent ef8f171 commit b32fe56

File tree

12 files changed

+237
-185
lines changed

12 files changed

+237
-185
lines changed
 

‎README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ For more details on the Docker option, see [this issue](https://github.com/scala
2727

2828
## Contributing ##
2929

30-
Please have a look at [https://docs.scala-lang.org/contribute.html](https://docs.scala-lang.org/contribute.html) before making a contribution.
30+
Please have a look at [Add New Guides/Tutorials](https://docs.scala-lang.org/overviews/contribute/add-guides.html) before making a contribution.
3131
This document gives an overview of the type of documentation contained within the Scala Documentation repository and the repository's structure.
3232

3333
Small changes, or corrected typos will generally be pulled in right away. Large changes, like the addition of new documents, or the rewriting of

‎_contribute_resources/1-documentation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ title: Documentation
33
link: /overviews/contribute/documentation.html
44
icon: fa fa-book
55
---
6-
[Scaladoc (API)](/overviews/contribute/scala-standard-library-api-documentation.html), [docs.scala-lang.org](/contribute.html) and [scala-lang.org](https://github.com/scala/scala-lang).
6+
[Scaladoc (API)](/overviews/contribute/scala-standard-library-api-documentation.html), [docs.scala-lang.org](/overviews/contribute/add-guides.html) and [scala-lang.org](https://github.com/scala/scala-lang).

‎_overviews/contribute/add-guides.md

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
---
2+
title: Add New Guides/Tutorials
3+
layout: multipage-overview
4+
num: 7
5+
partof: scala-contribution
6+
overview-name: Contributing to Scala
7+
---
8+
9+
## Why Contribute New Learning Material?
10+
11+
As [Heather Miller writes](/contribute.html), contributing to [docs.scala-lang.org](https://docs.scala-lang.org) is
12+
critical to making Scala accessible to newcomers, experience programmers, and anyone who is curious.
13+
It is also a fantastic way to contribute for anyone who is comfortable using Scala, but maybe does not want to get
14+
involved with complex tools like the compiler.
15+
16+
## Architecture
17+
18+
This documentation website is backed by an open-source [github repository](https://github.com/scala/docs.scala-lang),
19+
and is always contribution-ready.
20+
21+
### Content
22+
23+
Currently, the _types_ of documentation supported in this repository are:
24+
25+
- **Guides/Overviews**: Definitive guides/overviews of specific language features. Often long, detailed documents,
26+
often produced by members of the Scala team. An example is the excellent [Collections][collections-overview] overview.
27+
- **Tutorials**: Bite-size, example-rich, and concise articles meant to get a developer up to speed quickly.
28+
- **Cheatsheets**: Quick reference of Scala syntax and behaviors.
29+
30+
### Implementation
31+
32+
The website is statically generated from [Markdown](https://en.wikipedia.org/wiki/Markdown) source using
33+
[Jekyll](https://github.com/mojombo/jekyll), and hosted on [GitHub Pages](https://pages.github.com/).
34+
This workflow was chosen so as to make it as easy as possible for core committers and the community alike
35+
to produce HTML documentation, and as easy as possible to publish it in a central location.
36+
37+
The markdown syntax being used supports [Maruku](https://github.com/bhollis/maruku) extensions, and has automatic
38+
syntax highlighting, without the need for any tags.
39+
40+
Additionally [mdoc](https://github.com/scalameta/mdoc) is used during pull requests to validate Scala code blocks.
41+
To use this feature you must use the backtick notation as documented by mdoc. Note that only validation is done.
42+
The output files from mdoc are not used in the building of the tutorial. Use `mdoc` or `mdoc:fail` for your code blocks.
43+
44+
## Submitting Docs
45+
46+
For one to contribute a document, one must simply
47+
[fork](https://help.github.com/articles/fork-a-repo/) the
48+
[repo](https://github.com/scala/docs.scala-lang), write their article in
49+
[Markdown](https://daringfireball.net/projects/markdown/syntax) (example below), and submit a pull request. That's it.
50+
Likely after some edits and discussion, your document will be made live
51+
on [docs.scala-lang.org](https://docs.scala-lang.org).
52+
53+
---
54+
layout: overview
55+
title: My Awesome Title
56+
---
57+
58+
## An h2 Header in Markdown
59+
60+
And a paragraph, with a [link](https://www.scala-lang.org).
61+
62+
One can contribute code in a markdown document by either
63+
- indenting it by 4 spaces
64+
- surrounding by triple backticks, as shown below
65+
- in-line by putting backticks around it, e.g. `def foo`.
66+
67+
```scala
68+
println("hello")
69+
```
70+
71+
Everything else is automatically generated for you; tables of contents, and most index pages. And of course, the
72+
styling is already taken care of for you.
73+
74+
### Criteria for Docs to be Accepted
75+
76+
The goal of this documentation repository is to be tighter and more organized than other community-driven documentation platforms, like wikis. As such, any document pulled in for inclusion on
77+
[docs.scala-lang.org](https://docs.scala-lang.org) must:
78+
79+
- **"fit in"** to the repository ( _i.e.,_ it should not be a complete duplicate of another article),
80+
- **be polished** it must be thorough, complete, correct, organized, and "article-like" (personal programming notes
81+
don't quite fit.)
82+
- **be maintained** if the document might require revisions from time to time, be prepared to keep it up to date, or
83+
nominate someone to take ownership.
84+
85+
If you have something you're thinking about contributing, or that you're thinking about writing in order to contribute
86+
-- we'd love to consider it! Please don't hesitate to use GitHub issues and pull requests and the
87+
\#scala-contributors room [on Discord](https://discord.com/invite/scala) for any questions, concerns,
88+
clarifications, etc.
89+
90+
## Document Templates
91+
92+
> **Note:** These templates will soon change slightly as a result of necessary refactoring.
93+
94+
### Guides/Overviews
95+
96+
A guide or an overview that can be logically placed on **one** page must be placed in the directory
97+
`_overviews/RELEVANT-CATEGORY/_posts` with the file name in the format `YYYY-MM-dd-title-separated-by-dashes.md`,
98+
and header:
99+
100+
---
101+
layout: overview
102+
title: YOUR TITLE
103+
---
104+
105+
The rest of the document should, of course, be written in [Markdown](https://en.wikipedia.org/wiki/Markdown).
106+
107+
At the moment, `RELEVANT-CATEGORY` corresponds to only a single category, "core," because we are currently focusing on
108+
building up documentation of core libraries. However, expect more categories here in the future.
109+
110+
If your document consists of **multiple** pages, like the [Collections][collections-overview] overview, an ordering
111+
must be specified, by numbering documents in their logical order with `num`, and a name must be assigned to the
112+
collection of pages using `partof`. For example, the following header might be used for a document in the collections
113+
overview:
114+
115+
---
116+
layout: overview
117+
title: YOUR TITLE
118+
119+
partof: collections
120+
num: 10
121+
---
122+
123+
A **single** document in the collection must contain a tag in the header, `outof`, that indicates the total number of
124+
documents in the large overview. Putting it on the last page in the overview is often best:
125+
126+
---
127+
layout: overview
128+
title: YOUR TITLE
129+
130+
partof: collections
131+
num: 15
132+
outof: 15
133+
---
134+
135+
Index pages, such as [docs.scala-lang.org/overviews/index.html](https://docs.scala-lang.org/overviews/index.html) are
136+
generated, by reading data from a configuration file, such as `_data/overviews.yml`, so your overview should be
137+
placed into a category there.
138+
139+
### Tutorials
140+
141+
At the moment, tutorials are written the same as Guides/Overviews, except that their link must be added to
142+
the metadata of `/tutorials.md`. e.g. for the [Scala With Maven][scala-with-maven] tutorial, the
143+
metadata of `/tutorials.md` looks like
144+
145+
---
146+
layout: inner-page-parent
147+
title: Tutorials
148+
149+
tutorials:
150+
...
151+
- title: "Scala with Maven"
152+
url: "/tutorials/scala-with-maven.html"
153+
description: "Create a Scala project with Maven."
154+
icon: code
155+
---
156+
157+
For a single-page tutorial, the typical directory to place them in is `_overviews/tutorials`.
158+
159+
### Cheatsheets
160+
161+
For now, cheatsheets are assumed to be in the form of tables. To contribute a cheatsheet, one must simply produce their
162+
cheatsheet as a Markdown table, with the following header:
163+
164+
---
165+
layout: cheatsheet
166+
title: YOUR TITLE
167+
by: YOUR NAME
168+
about: SOME TEXT ABOUT THE CHEAT SHEET.
169+
---
170+
171+
### Code blocks
172+
173+
The site build process uses [mdoc](https://scalameta.org/mdoc/) to typecheck
174+
code snippets in markdown. This is a great way to ensure the code snippets that
175+
you're including typecheck and are valid. Here are a few quick types to get
176+
started.
177+
178+
To get started, add `mdoc` after `scala` when you are creating a
179+
code block. The `mdoc` modifier here will make sure that `mdoc` runs the code
180+
snippet and ensures that it's valid.
181+
182+
```scala mdoc
183+
val a = 1
184+
```
185+
If you have a snippet that you expect to fail, you can also account for this by
186+
using `mdoc:fail` for a compile error `mdoc:crash` for a runtime-error.
187+
188+
```scala mdoc:fail
189+
val b: String = 3 // won't compile
190+
```
191+
Keep in mind that a single file is all compiled as a single unit, so you can't
192+
redefine a variable that was defined above in another code snippet. _However_
193+
there are a couple ways to get around this. Firstly, you can use the `mdoc:nest`
194+
modifier with will wrap the snippet in a `scala.Predef.locally{...}`. This will
195+
essentially "hide" the snippet from the others. Another way around this is to
196+
use the `mdoc:reset` modifier, which _resets_ and forgets about everything up
197+
above. Here is an example using the various modifiers.
198+
199+
```scala mdoc
200+
import java.time.Instant
201+
202+
def now() = Instant.now()
203+
object Foo {}
204+
```
205+
206+
```scala mdoc:nest
207+
case class Foo(a: Int) // conflicts with Foo above, but it's nested so it's fine
208+
```
209+
210+
```scala mdoc
211+
val a = s"The time is ${now()}" // still have access to the now method from above
212+
```
213+
```scala mdoc:reset
214+
case class Foo(a: String) // forget the previous Foo's and start fresh
215+
```
216+
```scala mdoc
217+
val myFoo = Foo("hi") // now we only have access to the last Foo
218+
```
219+
220+
[collections-overview]: {% link _overviews/collections-2.13/introduction.md %}
221+
[scala-with-maven]: {% link _overviews/tutorials/scala-with-maven.md %}

‎_overviews/contribute/bug-reporting-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Bug Reporting Guide
33
layout: multipage-overview
4-
num: 7
4+
num: 8
55
partof: scala-contribution
66
overview-name: Contributing to Scala
77
---

‎_overviews/contribute/documentation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ without creating an issue, but please look to see if there is an issue already s
4444
* SIP (Scala Improvement Process) Proposals
4545
and more
4646

47-
Please read [contributing to the docs.scala-lang.org site](/contribute.html) through before embarking on changes. The site uses
47+
Please read [Add New Guides/Tutorials](/overviews/contribute/add-guides.html) through before embarking on changes. The site uses
4848
the [Jekyll](https://jekyllrb.com/) markdown engine so you will need to follow the instructions to get that running as well.
4949

5050
### Updating scala-lang.org
@@ -55,4 +55,4 @@ to Scala and related projects) is provided on the main
5555
[scala-lang GitHub project](https://github.com/scala/scala-lang) which may be forked to create pull requests.
5656

5757
Please read both the
58-
[docs.scala-lang.org contribution](/contribute.html) document and the [scala-lang.org GitHub README](https://github.com/scala/scala-lang#scala-langorg) before embarking on any changes to the Scala language site, as it uses the same Jekyll markdown tool and many of the same conventions as the Scala documentation site.
58+
[Add New Guides/Tutorials](/overviews/contribute/add-guides.html) document and the [scala-lang.org GitHub README](https://github.com/scala/scala-lang#scala-langorg) before embarking on any changes to the Scala language site, as it uses the same Jekyll markdown tool and many of the same conventions as the Scala documentation site.

‎_overviews/contribute/guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Contributing guide
33
layout: multipage-overview
4-
num: 9
4+
num: 10
55
partof: scala-contribution
66
overview-name: Contributing to Scala
77
---

‎_overviews/contribute/hacker-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Scala hacker guide
33
by: Eugene Burmako
44
layout: multipage-overview
5-
num: 11
5+
num: 12
66
partof: scala-contribution
77
overview-name: Contributing to Scala
88
---

‎_overviews/contribute/partest-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Running the Test Suite
33
layout: multipage-overview
4-
num: 12
4+
num: 13
55
partof: scala-contribution
66
overview-name: Contributing to Scala
77
---

‎_overviews/contribute/scala-internals.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Scala Contributors Forum
33
layout: multipage-overview
4-
num: 8
4+
num: 9
55
partof: scala-contribution
66
overview-name: Contributing to Scala
77
---

‎_overviews/contribute/scala-standard-library-api-documentation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ sometimes referred to as Scaladoc contributions.
1313

1414
For contributions to tutorial and guide-style documentation on
1515
[docs.scala-lang.org](/),
16-
see the ["doc-site"'s contribution guide](/contribute.html).
16+
see [Add New Guides/Tutorials](/overviews/contribute/add-guides.html).
1717

1818
*Please note, these instructions cover documentation contributions Scala core
1919
libraries only. For other Scala projects please check those projects for the

‎_overviews/contribute/tools.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: IDE and Build Tool Contributions
33
layout: multipage-overview
4-
num: 10
4+
num: 11
55
partof: scala-contribution
66
overview-name: Contributing to Scala
77

‎contribute.md

Lines changed: 5 additions & 174 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
layout: contribute
3-
title: Contribute
2+
layout: singlepage-overview
3+
title: Why Contribute to docs.scala-lang.org?
44
---
55

6-
###### Heather Miller
6+
###### A note from Heather Miller
77

88
## A Place to Build Documentation Together
99

@@ -21,175 +21,6 @@ If we want Scala to be accessible to more programmers, clear, easy-to-find docum
2121

2222
If you're interested in contributing to the Scala project in general, I argue that one of the most meaningful ways that you can, is to help us improve this transfer of information- let's make it easier and faster for people to _get_ core concepts, and to answer their own questions so they can progress to _Scala-proficient_ quickly. Each line that you contribute has the potential to affect the entire Scala community as a whole-- current, and future.
2323

24-
## About docs.scala-lang.org
24+
## How Can I Contribute?
2525

26-
### Content
27-
28-
Currently, the _types_ of documentation supported in this repository are:
29-
30-
- **Guides/Overviews**: Definitive guides/overviews of specific language features. Often long, detailed documents, often produced by members of the Scala team. An example is the excellent [Collections]({{ site.baseurl }}/overviews/collections-2.13/introduction.html) overview.
31-
- **Tutorials**: Bite-size, example-rich, and concise articles meant to get a developer up to speed quickly.
32-
- **Cheatsheets**: Quick reference of Scala syntax and behaviors.
33-
34-
### Implementation
35-
36-
This documentation repository is open-source, it lives in [github repository](https://github.com/scala/docs.scala-lang), and is always contribution-ready.
37-
38-
It's statically generated from [Markdown](https://en.wikipedia.org/wiki/Markdown) source using [Jekyll](https://github.com/mojombo/jekyll), and hosted on [GitHub Pages](https://pages.github.com/). This workflow was chosen so as to make it as easy as possible for core committers and the community alike to produce HTML documentation, and as easy as possible to publish it in a central location.
39-
40-
The markdown syntax being used supports [Maruku](https://github.com/bhollis/maruku) extensions, and has automatic syntax highlighting, without the need for any tags.
41-
42-
Additionally [mdoc](https://github.com/scalameta/mdoc) is used during pull requests to validate Scala code blocks. To use this feature you must use the backtick notation as documented by mdoc. Note that only validation is done. The output files from mdoc are not used in the building of the tutorial. Use `mdoc` or `mdoc:fail` for your code blocks.
43-
44-
## Submitting Docs
45-
46-
For one to contribute a document, one must simply
47-
[fork](https://help.github.com/articles/fork-a-repo/) the
48-
[repo](https://github.com/scala/docs.scala-lang), write their article in
49-
[Markdown](https://daringfireball.net/projects/markdown/syntax) (example below), and submit a pull request. That's it. Likely after some edits and discussion, your document will be made live on [docs.scala-lang.org](https://docs.scala-lang.org).
50-
51-
---
52-
layout: overview
53-
title: My Awesome Title
54-
---
55-
56-
## An h2 Header in Markdown
57-
58-
And a paragraph, with a [link](https://www.scala-lang.org).
59-
60-
One can contribute code by indenting it 4 spaces, or in-line by putting backticks around it like so, `def foo`
61-
62-
Everything else is automatically generated for you; tables of contents, and most index pages. And of course, the styling is already taken care of for you.
63-
64-
### Criteria for Docs to be Accepted
65-
66-
The goal of this documentation repository is to be tighter and more organized than other community-driven documentation platforms, like wikis. As such, any document pulled in for inclusion on [https://docs.scala-lang.org](https://docs.scala-lang.org) must:
67-
68-
- **"fit in"** to the repository ( _i.e.,_ it should not be a complete duplicate of another article),
69-
- **be polished** it must be thorough, complete, correct, organized, and "article-like" (personal programming notes don't quite fit.)
70-
- **be maintained** if the document might require revisions from time to time, it should come with an owner
71-
72-
If you have something you're thinking about contributing, or that you're thinking about writing in order to contribute-- we'd love to consider it! Please don't hesitate to use GitHub issues and pull requests and the \#scala-contributors room [on Discord](https://discord.com/invite/scala) for any questions, concerns, clarifications, etc.
73-
74-
## Document Templates
75-
76-
<div class="alert-message info">
77-
<p><strong>Note:</strong> These templates will soon change slightly as a result of necessary refactoring.</p>
78-
</div>
79-
80-
### Guides/Overviews
81-
82-
A guide or an overview that can be logically placed on **one** page must be placed in the directory `overviews/RELEVANT-CATEGORY/_posts` with the file name in the format `YYYY-MM-dd-title-separated-by-dashes.md`, and header:
83-
84-
---
85-
layout: overview
86-
title: YOUR TITLE
87-
---
88-
89-
The rest of the document should, of course, be written in [Markdown](https://en.wikipedia.org/wiki/Markdown).
90-
91-
At the moment, `RELEVANT-CATEGORY` corresponds to only a single category, "core," because we are currently focusing on building up documentation of core libraries. However, expect more categories here in the future.
92-
93-
If your document consists of **multiple** pages, like the [Collections]({{ site.baseurl }}/overviews/collections-2.13/introduction.html) overview, an ordering must be specified, by numbering documents in their logical order with `num`, and a name must be assigned to the collection of pages using `partof`. For example, the following header might be used for a document in the collections overview:
94-
95-
---
96-
layout: overview
97-
title: YOUR TITLE
98-
99-
partof: collections
100-
num: 10
101-
---
102-
103-
A **single** document in the collection must contain a tag in the header, `outof`, that indicates the total number of documents in the large overview. Putting it on the last page in the overview is often best:
104-
105-
---
106-
layout: overview
107-
title: YOUR TITLE
108-
109-
partof: collections
110-
num: 15
111-
outof: 15
112-
---
113-
114-
Index pages, such as [https://docs.scala-lang.org/overviews/index.html](https://docs.scala-lang.org/overviews/index.html) are automatically generated, assuming documents are properly placed under the correct `RELEVANT-CATEGORY`. So, simply drop your document into the correct folder, and you're done.
115-
116-
### Tutorials
117-
118-
At the moment, a tutorial that can be logically placed on **one** page must be placed in the directory `tutorials/` with the file name in the format `title-separated-by-dashes.md`. For the moment, single-page tutorials use the same layout as single-page overviews:
119-
120-
---
121-
layout: overview
122-
title: YOUR TITLE
123-
---
124-
125-
If you have a **multiple-page** tutorial, like in the case of multiple-page overviews, you must both specify an ordering for your document, and a name must be assigned to the collection of tutorial pages. For example, the following header is used for the [Tour of Scala]({{ site.baseurl }}/tour/tour-of-scala.html) series of tutorial articles:
126-
127-
---
128-
layout: inner-page-no-masthead
129-
title: YOUR TITLE
130-
131-
tutorial: scala-tour
132-
num: 4
133-
---
134-
135-
At the moment, only indexes for multiple-page tutorials are automatically generated.
136-
137-
### Cheatsheets
138-
139-
For now, cheatsheets are assumed to be in the form of tables. To contribute a cheatsheet, one must simply produce their cheatsheet as a Markdown table, with the following header:
140-
141-
---
142-
layout: cheatsheet
143-
title: YOUR TITLE
144-
by: YOUR NAME
145-
about: SOME TEXT ABOUT THE CHEAT SHEET.
146-
---
147-
148-
### Code blocks
149-
150-
The site build process uses [mdoc](https://scalameta.org/mdoc/) to typecheck
151-
code snippets in markdown. This is a great way to ensure the code snippets that
152-
you're including typecheck and are valid. Here are a few quick types to get
153-
started.
154-
155-
To get started, you can simply add `mdoc` behind `scala` when you are creating a
156-
code block. The `mdoc` modifier here will make sure that `mdoc` runs the code
157-
snippet and ensures that it's valid.
158-
159-
```scala mdoc
160-
val a = 1
161-
```
162-
If you have a snippet that you expect to fail, you can also account for this by
163-
using `mdoc:fail` for a compile error `mdoc:crash` for a runtime-error.
164-
165-
```scala mdoc:fail
166-
val b: String = 3 // won't compile
167-
```
168-
Keep in mind that a single file is all compiled as a single unit, so you can't
169-
redefine a variable that was defined above in another code snippet. _However_
170-
there are a couple ways to get around this. Firstly, you can use the `mdoc:nest`
171-
modifier with will wrap the snippet in a `scala.Predef.locally{...}`. This will
172-
essentially "hide" the snippet from the others. Another way around this is to
173-
use the `mdoc:reset` modifier, which _resets_ and forgets about everything up
174-
above. Here is an example using the various modifiers.
175-
176-
```scala mdoc
177-
import java.time.Instant
178-
179-
def now() = Instant.now()
180-
object Foo {}
181-
```
182-
183-
```scala mdoc:nest
184-
case class Foo(a: Int) // conflicts with Foo above, but it's nested so it's fine
185-
```
186-
187-
```scala mdoc
188-
val a = s"The time is ${now()}" // still have access to the now method from above
189-
```
190-
```scala mdoc:reset
191-
case class Foo(a: String) // forget the previous Foo's and start fresh
192-
```
193-
```scala mdoc
194-
val myFoo = Foo("hi") // now we only have access to the last Foo
195-
```
26+
Please read: [Add New Guides/Tutorials](/overviews/contribute/add-guides.html)

0 commit comments

Comments
 (0)
Please sign in to comment.