korean-syllable-search-highlight

1.0.3 • Public • Published

Korean Syllable Search and Highlight Engine

  • 한국어 초성 검색 & 하이라이트 엔진
  • Pure javascirpt로 개발 되어있습니다.

Sample

  • Clone this repository and run npm install to ready to run sample
node sample
// import 
const SyllableSearchEngine = require('./index.js');

// search data
const testList = [
  {name:'동해물과', phone:'02-1234-0000'},
  {name:'백두산이'},
  {name:'마르고'},
  {name:'닳도록'},
  {name:'하느님이'},
  {name:'보우하사'},
  {name:'우리나라만세'},
  {name:'무궁화'},
  {name:'삼천리'},
  {name:'화려강산'},
  {name:'대한사람'},
  {name:'대한으로'},
  {name:'길이 보전하세'},
  {name:'잠진적인 가능성 족적'},
];

// define decorator
const _decorator = ( element, isMatched )=>{
  if( isMatched ) return element.red.bgWhite;
  return element;
}

// genrate engine instance with query 
const searchEngine = new SyllableSearchEngine( query, {multi:true} );

// do search
const filteredList = testList.filter( searchEngine.search( item=>{
  return [
    item.name, 
    item.phone && item.phone
  ].filter(e=>e);
}));

// highlighting
const _renderItem = ( searchEngine, item )=>{
  let name = searchEngine.decorator(item.name, _decorator ).join(''), phone;
  if( item.phone ){
    phone = searchEngine.decorator(item.phone, _decorator ).join('');
    return `${name} (${phone})`;
  }
  return name;
}

console.log( filteredList.map(_renderItem.bind(this, searchEngine)).join('\n') );

Readme

Keywords

none

Package Sidebar

Install

npm i korean-syllable-search-highlight

Weekly Downloads

1

Version

1.0.3

License

ISC

Unpacked Size

8.6 kB

Total Files

4

Last publish

Collaborators

  • alexkang