# core/coordinators/markdown.coordinator.ts

> 22 lines of code and 5 definitions.

Tree: GovLab Docs
Language: typescript
Layer: application
Canonical: https://banes-lab.com/anatomy/docs#file-docs-core-coordinators-markdown-coordinator-ts
Source text: https://banes-lab.com/source/docs/core/coordinators/markdown.coordinator.ts.txt

Listed in [core/coordinators](https://banes-lab.com/api/source/docs/core/coordinators.md), after [core/coordinators/index.coordinator.ts](https://banes-lab.com/source/docs/core/coordinators/index.coordinator.ts.md) and before [core/coordinators/system.coordinator.ts](https://banes-lab.com/source/docs/core/coordinators/system.coordinator.ts.md).

## Definitions

- `runFix` (lexical_declaration, line 21, exported)
- `fixDocument` (lexical_declaration, line 10)
- `source` (lexical_declaration, line 11)
- `next` (lexical_declaration, line 12)
- `fixed` (lexical_declaration, line 22, exported)

## Contained in

- [core/coordinators](https://banes-lab.com/anatomy/docs/folder-docs-core-coordinators.md)

## Uses

- [configuration/strings/finding.strings.ts](https://banes-lab.com/source/docs/configuration/strings/finding.strings.ts.md)
- [core/predicates/document.predicate.ts](https://banes-lab.com/source/docs/core/predicates/document.predicate.ts.md)
- [core/reporters/base.reporter.ts](https://banes-lab.com/source/docs/core/reporters/base.reporter.ts.md)

## Used by

- [runtime/entrypoints/document.entrypoint.ts](https://banes-lab.com/source/docs/runtime/entrypoints/document.entrypoint.ts.md)

## Linked from

- [configuration/strings](https://banes-lab.com/anatomy/docs/folder-docs-configuration-strings.md)
- [core/predicates](https://banes-lab.com/anatomy/docs/folder-docs-core-predicates.md)
- [core/reporters](https://banes-lab.com/anatomy/docs/folder-docs-core-reporters.md)
- [runtime/entrypoints](https://banes-lab.com/anatomy/docs/folder-docs-runtime-entrypoints.md)

## Source

```typescript
import { fixSummary, fixedDocument } from "#configuration/strings/finding.strings";
import type { DocsHost } from "#types/environment.types";
import { MARKDOWN_SUFFIX } from "#configuration/constants/document.constants";
import { backtickBarePaths } from "#core/converters/markdown.converter";
import { isGeneratedDoc } from "#core/predicates/document.predicate";
import { print } from "#core/reporters/base.reporter";
import { readTextSafe } from "#core/loaders/base.loader";
import { writeVerbatim } from "@govlab/canonical-write";

const fixDocument = function fixDocument(host: DocsHost, doc: string): boolean {
    const source = readTextSafe(doc) ?? "";
    const next = backtickBarePaths(source);
    if (next === source || isGeneratedDoc(source)) {
        return false;
    }
    writeVerbatim(doc, next);
    print(fixedDocument(host.relative(doc)));
    return true;
};

export const runFix = function runFix(host: DocsHost): void {
    const fixed = host.walk(host.root, MARKDOWN_SUFFIX).filter((doc) => fixDocument(host, doc));
    print(fixSummary(fixed.length));
};
```
