CLI and API to concatenate markdown files and modify as necessary.
MIT License
CLI and API to concatenate markdown files and modify as necessary.
# Install
$ npm install -g concat-md
or use it via npx
:
$ npx concat-md docs
If files have titles in markdown already:
$ concat-md --toc --decrease-title-levels --dir-name-as-title typedoc-api-docs > README.md
If files have titles in FrontMatter meta data:
$ concat-md --toc --decrease-title-levels --title-key title --file-name-as-title --dir-name-as-title docs > README.md
If files don't have titles:
$ concat-md --toc --decrease-title-levels --file-name-as-title --dir-name-as-title docs > README.md
FrontMatter
, file names and directory names,<a name=""></a>
) to files, if no optional titles are generated and the --hide-anchor-links
option is not enabled.Usage
$ concat-md [options] <dir>
Options
--ignore <globs csv> - Glob patterns to exclude in 'dir'.
--toc - Adds table of the contents at the beginning of file.
--decrease-title-levels - Whether to decrease levels of all titles in markdown file to set them below file and directory title levels.
--start-title-level-at <level no> - Level to start file and directory levels. Default: 1
--join-string <string> - String to be used to join concatenated files. Default: new line
--title-key <key name> - Key name to get title in 'FrontMatter' meta data in markdown headers.
--file-name-as-title - Whether to use file names as titles.
--dir-name-as-title - Whether to use directory names as titles.
--hide-anchor-links - Do not add anchor links if optional titles are not set.
--debug - Print stack trace in errors.
Examples
If files have titles in markdown already:
$ npx concat-md --toc --decrease-title-levels --dir-name-as-title typedoc-api-docs > README.md
If files have titles in FrontMatter meta data:
$ npx concat-md --toc --decrease-title-levels --title-key title --file-name-as-title --dir-name-as-title docs > README.md
If files don't have titles:
$ npx concat-md --toc --decrease-title-levels --file-name-as-title --dir-name-as-title docs > README.md
└─ Development
└─ Projects
└─ project-a
├─ docs
├─ classes
│ ├─ widget.md
│ ├─ utility.md
└─ interfaces
└─ screen.md
classes/widget.md
# Description
Widget details lorem ipsum...
classes/utility.md
# Description
Utility details lorem ipsum...
interfaces/screen.md
# Description
Screen details lorem ipsum...
$ md-merge --decrease-title-levels --file-name-as-title --dir-name-as-title docs > README.md
Above command;
Description
titles,README.md
as below:README.md
# Classes
## Widget
### Description
Widget details lorem ipsum...
## Utility
### Description
Utility details lorem ipsum...
# Interfaces
## Screen
### Description
Screen details lorem ipsum...
▸ concatMd(dir
: string, options?
: ConcatOptions): Promise<string>
Defined in index.ts:295
Scans and concatenates all markdown files in given directory.
import concatMd, { concatMdSync } from "concat-md";
Parameters:
Name | Type | Description |
---|---|---|
dir |
string | is the directory to scan markdown files in. |
options? |
ConcatOptions | are several parameters to modify concatenation behaviour. |
Returns: Promise<string>
concatenated contents of markdown files.
▸ concatMdSync(dir
: string, options?
: ConcatOptions): string
Defined in index.ts:281
Scans and concatenates all markdown files in given directory.
import concatMd, { concatMdSync } from "concat-md";
Parameters:
Name | Type | Description |
---|---|---|
dir |
string | is the directory to scan markdown files in. |
options? |
ConcatOptions | are several parameters to modify concatenation behaviour. |
Returns: string
concatenated contents of markdown files.
Concat function options.
Optional
decreaseTitleLevels• decreaseTitleLevels? : undefined | false | true
Defined in index.ts:52
Whether to decrease levels of all titles in markdown file to set them below file and directory title levels.
Optional
dirNameAsTitle• dirNameAsTitle? : undefined | false | true
Defined in index.ts:72
Whether to use directory names as titles.
Optional
fileNameAsTitle• fileNameAsTitle? : undefined | false | true
Defined in index.ts:68
Whether to use file names as titles.
Optional
hideAnchorLinks• hideAnchorLinks? : undefined | false | true
Defined in index.ts:70
Do not add anchor links.
Optional
ignore• ignore? : string | string[]
Defined in index.ts:48
Glob patterns to exclude in dir
.
Optional
joinString• joinString? : undefined | string
Defined in index.ts:60
String to be used to join concatenated files.
Optional
sorter• sorter? : undefined | (a: string, b: string) => number
Defined in index.ts:56
Custom sort function. If not set, files are sorted alphabetically.
Optional
startTitleLevelAt• startTitleLevelAt? : undefined | number
Defined in index.ts:56
Level to start file and directory levels.
Optional
titleKey• titleKey? : undefined | string
Defined in index.ts:64
Key name to get title in FrontMatter
meta data in markdown headers.
Optional
toc• toc? : undefined | false | true
Defined in index.ts:40
Whether to add a table of contents.
Optional
tocLevel• tocLevel? : undefined | number
Defined in index.ts:44
Limit TOC entries to headings only up to the specified level.