# markdown-it-conditional-render

> Plugin for creating if-else conditional blocks for markdown-it markdown parser.

Latest version **0.1.0** (published 2022-08-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install markdown-it-conditional-render
pnpm add markdown-it-conditional-render
yarn add markdown-it-conditional-render
bun add markdown-it-conditional-render
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2022-08-06 |
| First published | 2022-08-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 15 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Palm Civet <palmcivet_email@qq.com> |
| Maintainers | palmcivet |
| Keywords | markdown-it, markdown-it-plugin, markdown-it-condition, conditional-rendering |

## Links

- npm: https://www.npmjs.com/package/markdown-it-conditional-render
- Repository: https://github.com/palmcivet/markdown-it-conditional-render.git
- Homepage: https://palmcivet.github.io/markdown-it-conditional-render
- Issues: https://github.com/palmcivet/markdown-it-conditional-render/issues
- npm.io page: https://npm.io/package/markdown-it-conditional-render

## Alternatives

- [@mdxeditor/editor](https://npm.io/package/@mdxeditor/editor.md) — 962.4K weekly downloads
- [mmdb-lib](https://npm.io/package/mmdb-lib.md) — 680.9K weekly downloads
- [playcanvas](https://npm.io/package/playcanvas.md) — 36.2K weekly downloads
- [@glw907/cairn-cms](https://npm.io/package/@glw907/cairn-cms.md) — 967 weekly downloads
- [markdown-to-confluence](https://npm.io/package/markdown-to-confluence.md) — 103 weekly downloads

## Recent versions

- 0.1.0 (latest) — 2022-08-06

## README

# markdown-it-conditional-render

[![build](https://github.com/palmcivet/markdown-it-conditional-render/actions/workflows/build.yml/badge.svg)](https://github.com/palmcivet/markdown-it-conditional-render/actions/workflows/build.yml)

English | [中文](./README.zh-CN.md)

Markdown It conditional rendering plugin, inspired by [markdown-it-condition](https://www.npmjs.com/package/markdown-it-condition), the original repository has been removed or moved, but the compiled and compressed code is still available in NPM and has been extracted from [lib/markdown-it-condition.js](./lib/markdown-it-condition.js).

[Demo](https://palmcivet.github.io/markdown-it-conditional-render/)

## ⚙️ Options

- `ruleName`：*string*
  - Default: `condition`
  - Custom rule name
- `ifMarker`：*string*
  - Default: `::if`
  - Judging from here, *if* branching condition
- `elseIfMarker`：*string*
  - Default: `::elseif`
  - *else if* branching condition
- `elseMarker`：*string*
  - Default: `::else`
  - *else* branching condition
- `endIfMarker`：*string*
  - Default: `::endif`
  - End of judgment
- `validate(condition: string): boolean`
  - Preprocess the original text and verify the branching conditions in the text
  - Default returns `true`
- `evaluate(condition: string, value: any): boolean`
  - Parse the actual parameters and remove the text that does not meet the conditions
  - The default processing is as follows：

	```ts
	function evaluate(condition: string, value: any) {
		let element = value;
		condition.split(".").forEach((field) => {
			element = element[field];
		});

		if (!!element) {
			return true;
		}

		return false;
	}
	```

> The full usage of each parameter by default is shown in the [example](#-example)

## 📚 Example

```js
const MarkdownIt = require("markdown-it")
const markdownItEngine = new MarkdownIt();
const markdownItConditionalRender = require("markdown-it-conditional-render");

markdownItEngine.use(markdownItConditionalRender);

const res = markdownItEngine.render(
  `
::if flag.value

*This text will be shown*

::else

*This text won't

::endif
`,
{
  flag: {
    value: true,
  },
});

console.log(res);
```

## 🔧 Develop

```bash
$ git clone https://github.com/palmcivet/markdown-it-conditional-render.git
$ cd ./markdown-it-conditional-render
$ pnpm add
$ pnpm run build
```

## ⚖️ License

MIT

---
_Source: https://npm.io/package/markdown-it-conditional-render · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
