# types/markdown.types.ts

> 52 lines of code and 13 definitions.

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

Listed in [types](https://banes-lab.com/api/source/docs/types.md), after [types/manifest.types.ts](https://banes-lab.com/source/docs/types/manifest.types.ts.md) and before [types/metadata.types.ts](https://banes-lab.com/source/docs/types/metadata.types.ts.md).

## Definitions

- `Fence` (interface_declaration, line 1, exported)
- `FenceRun` (interface_declaration, line 7, exported)
- `MaskState` (interface_declaration, line 12, exported)
- `TextSpan` (interface_declaration, line 19, exported)
- `TokenSpan` (interface_declaration, line 24, exported)
- `PathSpan` (interface_declaration, line 29, exported)
- `ConventionCode` (type_alias_declaration, line 34, exported)
- `ConventionHit` (interface_declaration, line 36, exported)
- `BannedHit` (interface_declaration, line 43, exported)
- `ConcernLayer` (interface_declaration, line 49, exported)
- `LayerDefectCode` (type_alias_declaration, line 54, exported)
- `LayerDefect` (interface_declaration, line 56, exported)
- `LayerSplit` (interface_declaration, line 61, exported)

## Contained in

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

## Source

```typescript
export interface Fence {
    open: boolean;
    char: string;
    len: number;
}

export interface FenceRun {
    char: string;
    len: number;
}

export interface MaskState {
    prevBlank: boolean;
    inIndentedCode: boolean;
    listContentIndent: number;
    fence: Fence;
}

export interface TextSpan {
    text: string;
    next: number;
}

export interface TokenSpan {
    start: number;
    next: number;
}

export interface PathSpan {
    span: [number, number] | null;
    next: number;
}

export type ConventionCode = "bare-path" | "unlabeled-code-fence" | "untagged-code-fence";

export interface ConventionHit {
    code: ConventionCode;
    line: number;
    col: number;
    token: string;
}

export interface BannedHit {
    term: string;
    line: number;
    col: number;
}

export interface ConcernLayer {
    id: string;
    body: string;
}

export type LayerDefectCode = "duplicate-marker" | "orphan-close" | "unclosed-marker";

export interface LayerDefect {
    code: LayerDefectCode;
    id: string;
}

export interface LayerSplit {
    layers: ConcernLayer[];
    defects: LayerDefect[];
}
```
