check-inline-code

Review inline code in markdown files for proper formatting and syntax highlighting. Check for missing backticks on CLI flags, filenames, and code elements. Verify that inline syntax highlighting (#!gr

SKILL.md

GitHub

Check Inline Code Formatting

Review inline code in markdown files for proper formatting and appropriate use of syntax highlighting.

See ../shared/repo-conventions.md for file conventions.

What to Check

1. Missing Backticks

The following should always be wrapped in backticks:

CLI flags and options:

  • -resume, -profile, -params-file, --input, etc.

Filenames and paths:

  • nextflow.config, .command.sh, work/, modules/, etc.

Commands:

  • nextflow run, nextflow log, docker run, etc.

Code elements:

  • Variable names: params.input, outputDir
  • Process names: SAYHELLO
  • Operators and methods: collect(), map(), view()
  • Directives: container, publishDir, memory

2. Inline Syntax Highlighting

Use `#!groovy code` for Groovy/Nextflow code that benefits from syntax colouring.

DO use #!groovy for:

  • Variable interpolation: `#!groovy ${variable}`
  • Closures: `#!groovy { meta.id }` or `#!groovy .map { it * 2 }`
  • Method chains with closures: `#!groovy channel.of(1,2,3).map { it * 2 }`
  • String interpolation: `#!groovy "${greeting}-output.txt"`
  • Type declarations: `#!groovy param: String = 'value'`

DO NOT use #!groovy for:

  • Single words or identifiers: use `outputDir` not `#!groovy outputDir`
  • Simple directives: use `container 'uri'` not `#!groovy container 'uri'`
  • Plain dot notation: use `processName.out` not `#!groovy processName.out`
  • Keywords alone: use `include` not `#!groovy include`

The rule: Only use #!groovy when there's meaningful syntax structure (braces, interpolation, operators) that highlighting will visually enhance. A single word or simple expression gains nothing from syntax highlighting.

3. Consistency

  • Similar code references should be formatted the same way throughout a document
  • Quiz answer options should have consistent formatting

Examples

Good inline code formatting

Run the workflow with `nextflow run main.nf -resume`.

The `#!groovy ${greeting}` variable is interpolated into the string.

Set memory with `#!groovy process { withName: 'FOO' { memory = '4.GB' } }`.

The `container` directive specifies the Docker image.

Access outputs with `processName.out.outputName`.

Bad inline code formatting

<!-- Missing backticks -->

Run the workflow with nextflow run main.nf -resume.

<!-- Unnecessary #!groovy on single word -->

The `#!groovy container` directive specifies the image.

<!-- Missing #!groovy on closure -->

Transform with `.map { it.toUpperCase() }`.