Skip to content

Commit 7b30c32

Browse files
Fix links (#200)
* using/legal: fix links * Test * Test * Test * Fix broken link * Test * Test * Test * Fix exercise implementation link * Fix v3 reference doc links * Test * Fix invalid link * More fixes * More fixes * Fix link * More fixes * More fixes * More fixes * More fixes * More fixes * More fixes * More fixes * More fixes
1 parent 9e75214 commit 7b30c32

File tree

101 files changed

+482
-322
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+482
-322
lines changed

building/config.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,13 @@
519519
"title": "Analyzers",
520520
"blurb": ""
521521
},
522+
{
523+
"uuid": "48775c5f-b449-4c91-b792-b81a8ef4ec04",
524+
"slug": "tooling/analyzers/feedback-guidelines",
525+
"path": "building/tooling/analyzers/feedback-guidelines.md",
526+
"title": "Feedback Guidelines",
527+
"blurb": ""
528+
},
522529
{
523530
"uuid": "787e4243-b97a-4b55-9038-7667e5c3788a",
524531
"slug": "tooling/analyzers/comments",

building/configlet/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,28 @@
44

55
## Linting
66

7-
The primary function of configlet is to do _linting_: checking if a track's configuration files are properly structured - both syntactically and semantically. Misconfigured tracks may not sync correctly, may look wrong on the website, or may present a suboptimal user experience, so configlet's guards play an important part in maintaining the integrity of Exercism. The full list of rules that are checked by the linter can be found [here](./lint).
7+
The primary function of configlet is to do _linting_: checking if a track's configuration files are properly structured - both syntactically and semantically. Misconfigured tracks may not sync correctly, may look wrong on the website, or may present a suboptimal user experience, so configlet's guards play an important part in maintaining the integrity of Exercism. The full list of rules that are checked by the linter can be found [here](/docs/building/configlet/lint).
88

99
## Generating documents
1010

1111
The secondary function of configlet is to generate documents. There are two types of documents that configlet can generate:
1212

13-
1. A Concept Exercise's [`introduction.md` file](./generating-documents#document-concept-exercises-introductionmd-file).
14-
1. A Practice Exercise's [`instructions.md` file](./generating-documents#document-practice-exercises-instructionsmd-file).
13+
1. A Concept Exercise's [`introduction.md` file](/docs/building/configlet/generating-documents#document-concept-exercises-introductionmd-file).
14+
1. A Practice Exercise's [`instructions.md` file](/docs/building/configlet/generating-documents#document-practice-exercises-instructionsmd-file).
1515

16-
How these documents are generated can be found [here](./generating-documents).
16+
How these documents are generated can be found [here](/docs/building/configlet/generating-documents).
1717

1818
## Syncing test data
1919

20-
The tertiary function of configlet is to sync test data. Each implemented [Practice Exercise](./tracks/practice-exercises) for which test data exists in the [problem-specifications repo](https://github.com/exercism/problem-specifications) _must_ contain a `.meta/tests.toml` file. The goal of this file is to keep track of which tests are implemented by the exercise. Tests in this file are identified by their UUID and each test has a boolean value that indicates if it is implemented by that exercise.
20+
The tertiary function of configlet is to sync test data. Each implemented [Practice Exercise](/docs/building/tracks/practice-exercises) for which test data exists in the [problem-specifications repo](https://github.com/exercism/problem-specifications) _must_ contain a `.meta/tests.toml` file. The goal of this file is to keep track of which tests are implemented by the exercise. Tests in this file are identified by their UUID and each test has a boolean value that indicates if it is implemented by that exercise.
2121

22-
How to sync the contents of the `.meta/tests.toml` can be found [here](./sync)
22+
How to sync the contents of the `.meta/tests.toml` can be found [here](/docs/building/configlet/sync)
2323

2424
## Generating UUIDs
2525

2626
Exercises, tracks and concepts are identified by a UUID.
2727

28-
How to generate UUIDs can be found [here](./uuid).
28+
How to generate UUIDs can be found [here](/docs/building/configlet/uuid).
2929

3030
## Usage
3131

building/configlet/generating-documents.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Configlet generating documents
22

3-
The secondary use of [configlet](../) is generating documents.
3+
The secondary use of [configlet](/docs/building/configlet) is generating documents.
44

55
## Usage
66

@@ -12,11 +12,11 @@ These are the documents that configlet can generate.
1212

1313
### Document: Concept Exercise's introduction.md file
1414

15-
Each [Concept Exercise](../concept-exercises.md) has an [`introduction.md` file](../concept-exercises.md#docsintroductionmd). Each exercise can have an optional [`introduction.md.tpl` file](../concept-exercises.md#docsintroductionmdtploptional).
15+
Each [Concept Exercise](/docs/building/tracks/concept-exercises) has an [`introduction.md` file](/docs/building/tracks/concept-exercises#docsintroductionmd). Each exercise can have an optional [`introduction.md.tpl` file](/docs/building/tracks/concept-exercises#docsintroductionmdtploptional).
1616

1717
The template file should be treated like a regular Markdown file but with one addition: the ability to specify placeholders. The following placeholders are supported:
1818

19-
- `%{concept:<slug>}`: refers to the concept's [`introduction.md` document](../concepts.md#fileintroductionmd)
19+
- `%{concept:<slug>}`: refers to the concept's [`introduction.md` document](/docs/building/tracks/concepts#fileintroductionmd)
2020

2121
When configlet detects that a Concept Exercise has an `introduction.md.tpl` file, it will generate a `introduction.md` file from it. The generated introduction will have the same contents as the template, expect for the placeholders, which will be replaced with the contents of the documents they refer to.
2222

building/configlet/lint.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Linting
22

3-
The primary use of [configlet](./) is linting: checking if a track's configuration files are properly structured - both syntactically and semantically. Misconfigured tracks may not sync correctly, may look wrong on the website, or may present a suboptimal user experience, so configlet's guards play an important part in maintaining the integrity of Exercism.
3+
The primary use of [configlet](/docs/building/configlet) is linting: checking if a track's configuration files are properly structured - both syntactically and semantically. Misconfigured tracks may not sync correctly, may look wrong on the website, or may present a suboptimal user experience, so configlet's guards play an important part in maintaining the integrity of Exercism.
44

55
## Usage
66

@@ -184,15 +184,15 @@ The `config.json` file should have the following checks:
184184
- The `"key_features"` key is optional
185185
- The `"key_features"` value must be an array with length = 6
186186
- The `"key_features[].icon"` key is required
187-
- The `"key_features[].icon"` value must use one of the [pre-defined icon values](../tracks/config-json#keyfeatures)
187+
- The `"key_features[].icon"` value must use one of the [pre-defined icon values](/docs/building/tracks/config-json#keyfeatures)
188188
- The `"key_features[].title"` key is required
189189
- The `"key_features[].title"` value must be a non-blank string¹ with length <= 25
190190
- The `"key_features[].content"` key is required
191191
- The `"key_features[].content"` value must be a non-blank string¹ with length <= 100
192192
- The `"tags"` key is required
193193
- The `"tags"` value must be an array of strings
194194
- The `"tags"` values must not have duplicates
195-
- The `"tags"` values must use one of the [pre-defined tag values](../tracks/config-json.md#tags)
195+
- The `"tags"` values must use one of the [pre-defined tag values](/docs/building/tracks/config-json#tags)
196196

197197
### Rule: exercises/concept/&lt;slug&gt;/.meta/config.json is valid
198198

@@ -244,24 +244,24 @@ The `config.json` file should have the following checks:
244244

245245
### Rule: exercises/concept/&lt;slug&gt;/.docs/hints.md is valid
246246

247-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
247+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
248248
- All headings must be either `## General` or `## X. <task>` where `X` matches the task number heading in the `instructions.md`
249249
- All hints must be specified as Markdown list items
250250
- Links must be absolute (relative links are not allowed)
251251

252252
### Rule: exercises/concept/&lt;slug&gt;/.docs/instructions.md is valid
253253

254-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
254+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
255255
- All tasks must start with a level two heading that starts with a number followed by a dot: `## 1. Do X`
256256
- Links must be absolute (relative links are not allowed)
257257

258258
### Rule: exercises/concept/&lt;slug&gt;/.docs/instructions.md.tpl is valid (if present)
259259

260-
- Each [concept placeholders](../tracks/concept-exercises.md#file-docsintroductionmdtpl)'s concept must match the `"concepts.slug"` property of one of the concepts in the track's `config.json`.
260+
- Each [concept placeholders](/docs/building/tracks/concept-exercises#file-docsintroductionmdtpl)'s concept must match the `"concepts.slug"` property of one of the concepts in the track's `config.json`.
261261

262262
### Rule: exercises/concept/&lt;slug&gt;/.docs/introduction.md is valid
263263

264-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
264+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
265265
- Links must be absolute (relative links are not allowed)
266266

267267
### Rule: exercises/practice/&lt;slug&gt;/.meta/config.json is valid
@@ -310,29 +310,29 @@ The `config.json` file should have the following checks:
310310
### Rule: exercises/shared/.docs/debug.md is valid
311311

312312
- The file's presence is optional
313-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
313+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
314314
- Links must be absolute (relative links are not allowed)
315315

316316
### Rule: exercises/shared/.docs/help.md is valid
317317

318318
- The file's presence is required
319-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
319+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
320320
- Links must be absolute (relative links are not allowed)
321321

322322
### Rule: exercises/shared/.docs/tests.md is valid
323323

324324
- The file's presence is required
325-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
325+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
326326
- Links must be absolute (relative links are not allowed)
327327

328328
### Rule: concepts/&lt;slug&gt;/about.md is valid
329329

330-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
330+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
331331
- Links must be absolute (relative links are not allowed)
332332

333333
### Rule: concepts/&lt;slug&gt;/introduction.md is valid
334334

335-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
335+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
336336
- Links must be absolute (relative links are not allowed)
337337

338338
### Rule: concept/&lt;slug&gt;/links.json is valid
@@ -368,28 +368,28 @@ The `config.json` file should have the following checks:
368368

369369
- The file's presence is required
370370
- The file's contents must be non-blank
371-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
371+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
372372
- Links must be absolute (relative links are not allowed)
373373

374374
### Rule: docs/INSTALLATION.md is valid
375375

376376
- The file's presence is required
377377
- The file's contents must be non-blank
378-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
378+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
379379
- Links must be absolute (relative links are not allowed)
380380

381381
### Rule: docs/LEARNING.md is valid
382382

383383
- The file's presence is required
384384
- The file's contents must be non-blank
385-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
385+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
386386
- Links must be absolute (relative links are not allowed)
387387

388388
### Rule: docs/RESOURCES.md is valid
389389

390390
- The file's presence is required
391391
- The file's contents must be non-blank
392-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
392+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
393393
- Links must be absolute (relative links are not allowed)
394394

395395
### Rule: docs/SNIPPET.txt is valid
@@ -401,7 +401,7 @@ The `config.json` file should have the following checks:
401401

402402
- The file's presence is required
403403
- The file's contents must be non-blank
404-
- The Markdown must conform to the [Markdown standards](../markdown/markdown.md)
404+
- The Markdown must conform to the [Markdown standards](/docs/building/markdown/markdown)
405405
- Links must be absolute (relative links are not allowed)
406406

407407
## Glossary

building/configlet/uuid.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Generating UUIDs
22

3-
Exercises, tracks and concepts are identified by a UUID. [configlet](./) can generate new, valid UUIDs.
3+
Exercises, tracks and concepts are identified by a UUID. [configlet](/docs/building/configlet) can generate new, valid UUIDs.
44

55
## Usage
66

building/markdown/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Markdown
2+
3+
- [Internal Linking](/docs/building/markdown/internal-linking)
4+
- [Markdown Specification](/docs/building/markdown/markdown)
5+
- [Exercism's Style Guide](/docs/building/markdown/style-guide)
6+
- [Widgets](/docs/building/markdown/widgets)

building/markdown/internal-linking.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Links rendered via Exercism's Markdown parser are checked to see if they are int
44

55
A tooltip for a concept might look like this:
66

7-
<img src="../../.imgs/concept-tooltip.png" height="200">
7+
<img src="https://raw.githubusercontent.com/exercism/docs/main/.imgs/concept-tooltip.png" height="200">
88

99
## Usage
1010

@@ -21,4 +21,4 @@ We do not currently support relative URLs (e.g. those beginning with `./` or `..
2121
Rather than using normal links, you might like to render Widgets.
2222
These are generally used at the end of a document to suggest extra reading or good exercises to learn something from.
2323

24-
See [the Widgets documentation](./widgets.md) for more details.
24+
See [the Widgets documentation](/docs/building/markdown/widgets) for more details.

building/markdown/widgets.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
Concept and Exercise Widgets are used frequently throughout the site.
44
They look like this:
55

6-
<img src="../../.imgs/concept-widget.png" height="100">
7-
<img src="../../.imgs/exercise-widget.png" height="100">
6+
<img src="https://raw.githubusercontent.com/exercism/docs/main/.imgs/concept-widget.png" height="100">
7+
<img src="https://raw.githubusercontent.com/exercism/docs/main/.imgs/exercise-widget.png" height="100">
88

99
They also have user-contextual tooltips such as this:
1010

11-
<img src="../../.imgs/concept-tooltip.png" height="200">
11+
<img src="https://raw.githubusercontent.com/exercism/docs/main/.imgs/concept-tooltip.png" height="200">
1212

1313
You may like to render these widgets yourself in Markdown documents, for example at the end of a document to suggest extra reading or good exercises to learn something from.
1414

15-
**Note:** You can also use normal links for inline text, which will have the tooltips added. See [the Internal Linking documentation](./internal-linking.md) for more details.
15+
**Note:** You can also use normal links for inline text, which will have the tooltips added. See [the Internal Linking documentation](/docs/building/markdown/internal-linking) for more details.
1616

1717
## Usage
1818

building/tooling/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ All tooling is deployed using the same Docker workflow.
99

1010
There are currently three pieces of tooling:
1111

12-
- **[Test Runners](./test-runners)**
13-
- **[Representers](./representers)**
14-
- **[Analyzers](./analyzers)**
12+
- **[Test Runners](/docs/building/tooling/test-runners)**
13+
- **[Representers](/docs/building/tooling/representers)**
14+
- **[Analyzers](/docs/building/tooling/analyzers)**

building/tooling/analyzers/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ Each Analyzer lives in the Exercism GitHub organization in a repository named `$
1111
You can explore the different Analyzers [here](https://github.com/exercism?q=-analyzer).
1212

1313
If you would like to get involved in helping with an existing Analyzer, please open an issue in its repository asking if there is somewhere you can help.
14-
If you would like to create an Analyzer for a language that currently does not have one, please follow the [creating a Analyzer](creating-from-scratch.md) instructions.
14+
If you would like to create an Analyzer for a language that currently does not have one, please follow the [creating a Analyzer](/docs/building/tooling/analyzers/creating-from-scratch) instructions.
1515

16-
This directory contains the following information:
16+
You can use the following documents to learn more about building an analyzer:
1717

18-
- **[`creating-from-scratch.md`](./creating-from-scratch.md):** Information on creating a Analyzer from scratch.
19-
- **[`interface.md`](./interface.md):** The Analyzer interface.
20-
- **[`docker.md`](./docker.md):** How to build a Docker image with Docker for local testing and deployment.
18+
- [Creating a Analyzer from scratch](/docs/building/tooling/analyzers/creating-from-scratch)
19+
- [The Analyzer interface.](/docs/building/tooling/analyzers/interface)
20+
- [How to build a Docker image with Docker for local testing and deployment](/docs/building/tooling/analyzers/docker)

building/tooling/analyzers/comments.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Comment Copy Guidelines
66

77
This document sets guidelines for the comments produced by the analyzer. The
8-
[Feedback guidelines][git-feedback-guidelines] talk about _when_ to comment and
8+
[Feedback guidelines](/docs/building/tooling/analyzers/feedback-guidelines) talk about _when_ to comment and
99
_what_ to comment. This document talks mostly about _how_ to comment.
1010

1111
## Working directory for contents
@@ -138,4 +138,3 @@ custom errors might be interesting.
138138
[git-website-copy]: https://github.com/exercism/website-copy/tree/main/automated-comments
139139
[issue-ci-comments]: https://github.com/exercism/automated-mentoring-support/issues/51
140140
[git-website-copy-label]: https://github.com/exercism/website-copy/pulls?q=is%3Aopen+is%3Apr+label%3Atype%2Fanalyzer-comments
141-
[git-feedback-guidelines]: https://github.com/exercism/automated-mentoring-support/blob/main/docs/guidelines.md#idiomatic-rules--language-features--stylistic-choices

building/tooling/analyzers/creating-from-scratch.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Firstly, thank you for your interest in creating an Analyzer!
55
These are the steps to get going:
66

77
1. Check [our repository list for an existing `...-analyzer`](https://github.com/exercism?q=-analyzer) to ensure that one doesn't already exist.
8-
2. Scan the [contents of this directory](./) to ensure you are comfortable with the idea of creating an Analyzer.
8+
2. Scan the [contents of this directory](/docs/building/tooling/analyzers) to ensure you are comfortable with the idea of creating an Analyzer.
99
3. Open an issue at [exercism/exercism][exercism-repo] introducing yourself and telling us which language you'd like to create a Analyzer for.
1010

1111
We have an incredibly friendly and supportive community who will be happy to help you as you work through this! If you get stuck, please speak to us on Slack or create new issues at [exercism/exercism][exercism-repo] as needed 🙂

building/tooling/analyzers/docker.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
Our Analyzers are deployed as Docker images.
44

5-
Please read the [general Tooling docker information](../docker.md) to familiarize yourself with how these work.
5+
Please read the [general Tooling docker information](/docs/building/tooling/analyzers/docker) to familiarize yourself with how these work.
66

77
When we run the Analyzer's container we execute a `run.sh` script.
88
To ensure this works properly the following rules must be following:
99

1010
- The working directory should be `/opt/analyzer`.
1111
- There should be a `/opt/analyzer/bin/run.sh` script that can be called with 3 parameters:
1212
the `exercise slug`, the path to the `solution folder`, and the path to the `output folder`.
13-
For more information see [The Interface](./interface.md).
13+
For more information see [The Interface](/docs/building/tooling/analyzers/interface).

0 commit comments

Comments
 (0)