You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 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
Copy file name to clipboardExpand all lines: building/configlet/README.md
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -4,28 +4,28 @@
4
4
5
5
## Linting
6
6
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).
8
8
9
9
## Generating documents
10
10
11
11
The secondary function of configlet is to generate documents. There are two types of documents that configlet can generate:
12
12
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).
15
15
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).
17
17
18
18
## Syncing test data
19
19
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.
21
21
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)
23
23
24
24
## Generating UUIDs
25
25
26
26
Exercises, tracks and concepts are identified by a UUID.
27
27
28
-
How to generate UUIDs can be found [here](./uuid).
28
+
How to generate UUIDs can be found [here](/docs/building/configlet/uuid).
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).
16
16
17
17
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:
18
18
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)
20
20
21
21
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.
Copy file name to clipboardExpand all lines: building/configlet/lint.md
+17-17Lines changed: 17 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Linting
2
2
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.
4
4
5
5
## Usage
6
6
@@ -184,15 +184,15 @@ The `config.json` file should have the following checks:
184
184
- The `"key_features"` key is optional
185
185
- The `"key_features"` value must be an array with length = 6
186
186
- 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)
188
188
- The `"key_features[].title"` key is required
189
189
- The `"key_features[].title"` value must be a non-blank string¹ with length <= 25
190
190
- The `"key_features[].content"` key is required
191
191
- The `"key_features[].content"` value must be a non-blank string¹ with length <= 100
192
192
- The `"tags"` key is required
193
193
- The `"tags"` value must be an array of strings
194
194
- 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)
196
196
197
197
### Rule: exercises/concept/<slug>/.meta/config.json is valid
198
198
@@ -244,24 +244,24 @@ The `config.json` file should have the following checks:
244
244
245
245
### Rule: exercises/concept/<slug>/.docs/hints.md is valid
246
246
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)
248
248
- All headings must be either `## General` or `## X. <task>` where `X` matches the task number heading in the `instructions.md`
249
249
- All hints must be specified as Markdown list items
250
250
- Links must be absolute (relative links are not allowed)
251
251
252
252
### Rule: exercises/concept/<slug>/.docs/instructions.md is valid
253
253
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)
255
255
- All tasks must start with a level two heading that starts with a number followed by a dot: `## 1. Do X`
256
256
- Links must be absolute (relative links are not allowed)
257
257
258
258
### Rule: exercises/concept/<slug>/.docs/instructions.md.tpl is valid (if present)
259
259
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`.
261
261
262
262
### Rule: exercises/concept/<slug>/.docs/introduction.md is valid
263
263
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)
265
265
- Links must be absolute (relative links are not allowed)
266
266
267
267
### Rule: exercises/practice/<slug>/.meta/config.json is valid
@@ -310,29 +310,29 @@ The `config.json` file should have the following checks:
310
310
### Rule: exercises/shared/.docs/debug.md is valid
311
311
312
312
- 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)
314
314
- Links must be absolute (relative links are not allowed)
315
315
316
316
### Rule: exercises/shared/.docs/help.md is valid
317
317
318
318
- 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)
320
320
- Links must be absolute (relative links are not allowed)
321
321
322
322
### Rule: exercises/shared/.docs/tests.md is valid
323
323
324
324
- 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)
326
326
- Links must be absolute (relative links are not allowed)
327
327
328
328
### Rule: concepts/<slug>/about.md is valid
329
329
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)
331
331
- Links must be absolute (relative links are not allowed)
332
332
333
333
### Rule: concepts/<slug>/introduction.md is valid
334
334
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)
336
336
- Links must be absolute (relative links are not allowed)
337
337
338
338
### Rule: concept/<slug>/links.json is valid
@@ -368,28 +368,28 @@ The `config.json` file should have the following checks:
368
368
369
369
- The file's presence is required
370
370
- 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)
372
372
- Links must be absolute (relative links are not allowed)
373
373
374
374
### Rule: docs/INSTALLATION.md is valid
375
375
376
376
- The file's presence is required
377
377
- 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)
379
379
- Links must be absolute (relative links are not allowed)
380
380
381
381
### Rule: docs/LEARNING.md is valid
382
382
383
383
- The file's presence is required
384
384
- 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)
386
386
- Links must be absolute (relative links are not allowed)
387
387
388
388
### Rule: docs/RESOURCES.md is valid
389
389
390
390
- The file's presence is required
391
391
- 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)
393
393
- Links must be absolute (relative links are not allowed)
394
394
395
395
### Rule: docs/SNIPPET.txt is valid
@@ -401,7 +401,7 @@ The `config.json` file should have the following checks:
401
401
402
402
- The file's presence is required
403
403
- 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)
405
405
- Links must be absolute (relative links are not allowed)
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.
14
14
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.
Copy file name to clipboardExpand all lines: building/tooling/analyzers/README.md
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -11,10 +11,10 @@ Each Analyzer lives in the Exercism GitHub organization in a repository named `$
11
11
You can explore the different Analyzers [here](https://github.com/exercism?q=-analyzer).
12
12
13
13
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.
15
15
16
-
This directory contains the following information:
16
+
You can use the following documents to learn more about building an analyzer:
17
17
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 fromscratch](/docs/building/tooling/analyzers/creating-from-scratch)
Copy file name to clipboardExpand all lines: building/tooling/analyzers/creating-from-scratch.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ Firstly, thank you for your interest in creating an Analyzer!
5
5
These are the steps to get going:
6
6
7
7
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.
9
9
3. Open an issue at [exercism/exercism][exercism-repo] introducing yourself and telling us which language you'd like to create a Analyzer for.
10
10
11
11
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 🙂
0 commit comments