Steem Markdown to HTML <업데이트> Table, Linebreak(줄바꿈) 및 기타 오류 문제

5개월 전에 포스팅했던 https://steemit.com/steemdev/@junn/690 Markdown to HTML 에 관련된 새롭게 업데이트 된 내용을 담습니다.

당시에 개행문자(\r)를
로 강제로 변환하는 방식을 이용했습니다만, 이런 부분이 다 필요없이 옵션으로 제공되고 있었습니다.

Markdown을 HTML로 변경하는 라이브러리는 아래와 같습니다.

https://github.com/showdownjs/showdown

스팀을 받아오는 방식은 아직 그대로인것 같습니다.

https://steemit.com/steem/@junn/557

 

서버에서는 nodejs를 쓰고, 클라이언트에서는 javascript입니다만, 설명은 서버쪽으로 진행하겠습니다.

아래와 같이 설치하고,

$ npm install showdown

JS 파일에는 다음 소스가 이용됩니다.

var showdown = require(‘showdown’);

var converter = new showdown.Converter({
‘tables’:true,
‘strikethrough’:true,
‘simpleLineBreaks’:true
});

//body는 스팀에서 받아온 마크다운 본문입니다.

body = converter.makeHtml(body);

 

이전과 다른 부분은 Converter 생성자에 들어가는 옵션들입니다.

tables는 마크다운의 테이블,

strikethrough는 문자 가운데 들어가는 취소선,

simpleLineBreaks는 마크다운에서 줄바꿈을
태그로 바꾸는 기능입니다.

이외에도 http 주소만 쓰면 알아서 링크를 걸어주는 옵션, 이렇게 걸때 알아서 target=’_blank'(새창띄우기) 옵션 등등을 추가할 수 있습니다.

YouTube 엠베딩과 이미지 파일 보여주는 것은 옵션에서 못찾은 것 같아 제가 만든 소스를 그냥 계속 쓰고 있습니다.

function changeYouTubeTag( html ) {
        return html.replace(/https:\/\/youtu.be\/([\w]*)/gi, '\\