@sup39/markdown-it-cjk-breaks

1.2.0 • Public • Published

markdown-it-cjk-breaks

sup39's additional features

Provide an optional option either(default: false, which works as original version) to determine whether allowing removing linebreak when either the character before OR after the linebreak is east asian character.

var md = require('markdown-it')();
var cjk_breaks = require('markdown-it-cjk-breaks');

md.use(cjk_breaks, {either: true}); // << set either to true

md.render(`
あおえ
うい
aoe
ui
`);

// returns:
//
//<p>あおえういaoe <!-- linebreak between `い` and `a` is removed -->
//ui</p>

Original

Build Status NPM version Coverage Status

Plugin for markdown-it that suppresses linebreaks between east asian characters.

Normally newlines in a markdown text get rendered as newlines in output html text. Then browsers will usually render those newlines as whitespace (more smart behavior is included in w3c drafts, but not actually implemented by vendors).

This plugin finds and removes newlines that cannot be converted to space, algorithm matches CSS Text Module Level 3:

  • If the character immediately before or immediately after the segment break is the zero-width space character (U+200B), then the break is removed, leaving behind the zero-width space.
  • Otherwise, if the East Asian Width property [UAX11] of both the character before and after the segment break is F, W, or H (not A), and neither side is Hangul, then the segment break is removed.
  • Otherwise, the segment break is converted to a space (U+0020).

Install

yarn add markdown-it-cjk-breaks

Usage

var md = require('markdown-it')();
var cjk_breaks = require('markdown-it-cjk-breaks');

md.use(cjk_breaks);

md.render(`
あおえ
うい
aoe
ui
`);

// returns:
//
//<p>あおえうい
//aoe
//ui</p>

License

MIT MIT

Package Sidebar

Install

npm i @sup39/markdown-it-cjk-breaks

Weekly Downloads

0

Version

1.2.0

License

MIT

Unpacked Size

32 kB

Total Files

7

Last publish

Collaborators

  • sup39