An open API service indexing awesome lists of open source software.

https://github.com/realign/markdown-it-copy

🔌 A markdown-it-plugin that copy code and others.
https://github.com/realign/markdown-it-copy

markdown-it markdown-it-plugin markdown-it-plugins

Last synced: about 1 month ago
JSON representation

🔌 A markdown-it-plugin that copy code and others.

Awesome Lists containing this project

README

        

# markdown-it-copy

[![NPM version][npm-image]][npm-url]
[![download][downloads-image]][github-url]

[![NPM][nodei-image]][npm-url]

> A markdown-it-plugin that copy code and others.

## Todo

* [ ] 复制内容尾部增加版权说明

## Example

[🔗 example](https://realign.github.io/markdown-it-copy/)

![image_png](https://img.alicdn.com/tfs/TB1fcYbrhD1gK0jSZFKXXcJrVXa-1764-830.png)

## Installation

```bash
npm install markdown-it-copy -S
```

## Usage

### Plugin

```js
const options = {
btnText: String, // 'copy' | button text
failText: String, // 'copy fail' | copy-fail text
successText: String, // 'copy success' | copy-success text
successTextDelay: Number, // 2000 | successText show time [ms]
extraHtmlBeforeBtn: String, // '' | a html-fragment before
extraHtmlAfterBtn: String, // '' | a html-fragment after
showCodeLanguage: Boolean, // false | show code language before [btn || extraHtmlBeforeBtn] | [add-after-1.1.0]
attachText: String, // '' | some text append copyText, Such as: copyright | [add-after-1.2.0]
};

const md = require('markdown-it')()
.use(require('markdown-it-copy'), options);

md.render(`${mdText}`);

// Tips: you may need to highlight your code, as follow:

const hljs = require('highlight.js');
const hlOpts = {
highlight(str, lang) {
if (lang && hljs.getLanguage(lang)) {
try {
return hljs.highlight(lang, str).value;
} catch (__) {
console.log(__);
}
}
return '';
},
};

require('markdown-it')(hlOpts);
```

### Style of Button and Notify

Normal-theme:

* css: [default.css](https://github.com/ReAlign/markdown-it-copy/blob/master/theme/default.css)
* stylus: [default.styl](https://github.com/ReAlign/markdown-it-copy/blob/master/theme/default.styl)

also, you can write style by yourself.

the html structure and class as follow:

```html



${codeLang}
${extraHtmlBeforeBtn}

${successText}


${btnText}

${extraHtmlAfterBtn}

```

## Releases

### 1.0.x

#### 1.0.0、1.0.1

* [new function]
* Support basic copy function

### 1.1.x

#### 1.1.0

* [new function]
* Support show `code-language` before `btn` or `extraHtmlBeforeBtn`

#### 1.1.1

* [fix bug]
* Compatible with a variety of templates
* `

`
* ``
* `
`

* etc.

#### 1.1.2

* [fix bug]
* `Single quotes` encode
* error: `'` -> `'`
* ok: `'` -> `\'`

### 1.2.x

#### 1.2.0

* [new function]
* Support append text behind to copy content, such as: Copyright info.

[github-url]: https://github.com/ReAlign/markdown-it-copy
[npm-url]: https://www.npmjs.com/package/markdown-it-copy
[npm-image]: https://img.shields.io/npm/v/markdown-it-copy.svg
[downloads-image]: https://img.shields.io/npm/dt/markdown-it-copy.svg
[nodei-image]: https://nodei.co/npm/markdown-it-copy.png?downloads=true&downloadRank=true&stars=true