Skip to content

Make description.md self contained. #767

@Insti

Description

@Insti

Proposal

The problem description given in description.md should be complete and self contained, and not require the addition of the blurb to make sense.

Components

The description of each exercise is made up of two components:

  1. the Blurb
  2. the description

The description is appended to the blurb to make the complete problem specification.

(Using pascals-triangle as an example.)

Description

from description.md

In Pascal's Triangle each number is computed by adding the numbers to the right and left of the current position in the previous row.

This is nice but it doesn't say what I am supposed to do.

Blurb

found in metadata.yml

blurb: "Compute Pascal's triangle up to a given number of rows."

Specification

The problem specification becomes:

Compute Pascal's triangle up to a given number of rows.

In Pascal's Triangle each number is computed by adding the numbers to the right and left of the current position in the previous row.

Current Usage

  • Blurb is used when giving a short description of the problem. e.g. problems list
  • Blurb is combined with the description when creating the track specific readme for a file. e.g. problem readme
  • Description is always displayed with the blurb prepended.

Benefits

  • The description.md is complete self contained.
  • Description pull requests are easier because they only need to edit one file.
  • Pull request reviews are easier.
  • The blurb contents can be independent of the problem description and can provide an alternate summary if necessary.

Questions and Answers

Q:

Will http://exercism.io/languages/[track]/exercises end up showing the first lines from the description.md files instead of the blurb from the metadata.yml files?

A: No, the description shown on that page will still come from the blurb in metadata.yml

Edit: Added Q&A section

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions