Plugin Turndown para Showdown
Este plugin tem a finalidade de fazer com que a conversão de html, realizada pela biblioteca Turndown, aceite algumas opções presente na biblioteca Showdown.
As opções presentes são:
- parseImgDimension
- strikethrough
- ghMentions
- emoji
- automaticLinks
- underline
- tables
- taskLists
Get Start
Instale a biblioteca turndown e o plugin com o npm:
/* prompt */ $ npm install turndown$ npm install turndown-plugin-showdown
Cole o seguinte código em um arquivo index.js:
/* index.js */ const TurndownService = showdownPg = turndownService = ; let html = '<p> Get Start Plugin 😄 </p>'; console;// Output Get Start Plugin :smile:
Opções
Abaixo vou explicar e dar um exemplo de como utilizar cada opção.
parseImgDimensions
Esta opção realização a converção de uma tag img com dimensionamento como específicado na funcionalidade da biblioteca Showdown.
/* index.js */ const TurndownService = parseImgDimension = turndownService = ; let html = '<img src="foo.jpg" alt="foo" width="100" height="80" />'; console;// Output ![foo](foo.jpg =100x80)
strikethrough
Esta opção realiza a converção de tags 'del', 's' e 'strike' provenientes da sintaxe de taxado.
/* index.js */ const TurndownService = strikethrough = turndownService = ; let html = '<strike>Strikethrough</strike>'; console;// Output ~~Strikethrough~~
tables
Esta opção realiza a conversão das tags de tabelas em sintaxe de tabela utilizada pela biblioteca Showdown.
/* index.js */ const TurndownService = tables = turndownService = ; let html = ` <table> <tr> <th>Teste 1</th> <th>Teste 2</th> <th>Teste 3</th> </tr> <tr> <td>Teste 1</td> <td>Teste 2</td> <td>Teste 3</td> </tr> <tr> <td>Teste 1</td> <td>Teste 2</td> <td>Teste 3</td> </tr> </table> `; console;// Output// | Teste 1 | Teste 2 | Teste 3 |// | --- | --- | --- |// | Teste 1 | Teste 2 | Teste 3 |// | Teste 1 | Teste 2 | Teste 3 |
taskLists
Esta funcionalidade realiza a conversão de tags "inputs" com "type" igual "checkbox" dentro listas na sintaxe de taskslists definida pela biblioteca Showdown.
/* index.js */ const TurndownService = taskLists = turndownService = ; let html = ` <ul> <li><input type="checkbox" checked> Checado</li> <li><input type="checkbox"> Não Checado</li> </ul> `; console;//Output //* [x] Checado//* [ ] Não Checado
ghMentions
Esta opção faz a converção de tags "A" com "href" definido na opção "ghMentionsLink" em sintaxe padrão ghMentions específicada na biblioteca Showdown. Por padrão o "ghMentionsLink" é "https://github.com/{u}" quando utilizada a funcionalidade "ghMentions", mas pode ser alterado.
/* index.js */ const TurndownService = ghMentions = turndownService = ; turndownServiceoptionsghMentionsLink = 'https://github.com/{u}'; let html = '<a href="https://github.com/FelipeRhoden">@FelipeRhoden</a>'; console;// Output @FelipeRhoden
automaticLinks
Esta opção faz a converção de tags "A" com o "href" igual do seu conteudo, converte também quando o "href" inicia com a palavara "mailto:" e o restante é igual ao conteudo da tag. Isso garante que a reconverção do códiog gerado de markdown para html mantenha o encode de e-mails, caso contrario os links de e-mail seriam convertidos para sintaxe de link normal que não realiza o enconde na reconverção.
/* index.js */ const TurndownService = automaticLinks = turndownService = ; let html = '<a href="https://github.com/FelipeRhoden">https://github.com/FelipeRhoden</a>'; console;// Output <https://github.com/FelipeRhoden>
emoji
Esta opção faz a converção de unicode de emojis em sintaxe de emoji especificada na biblioteca Showdown. A lista suportada de emojis pode ser encontrada no seguinte link: https://github.com/showdownjs/showdown/wiki/Emojis
/* index.js */ const TurndownService = emoji = turndownService = ; let html = '💃🤳'; console;//Output :dancer::selfie:
underline
Esta opção faz a converção da tag "U" em sintaxe underline definida pela biblioteca Showdown. Quando utiliza a upção underline as opçãos da biblioteca Turndown "emDelimiter" e "strongDelimiter" ficarão respectivamente travadas na utilização de "*" "**" por conta da incoerencia que poderia ser gerada na reconverção do conteudo utilizando a biblioteca Showdown.
/* index.js */ const TurndownService = underline = turndownService = ; let html = '<u>underline</u>'; console;//Output __underline__
showdownPg
Esta opção faz a utilização de todas as outras opções juntas.
Lincença
Este plugin é liberado sob a linceça MIT
Copyright © 2020 Felipe Rhoden