@puregram/markup
simple yet powerful markup system for puregram
package
introduction
you all know how you need to provide parse_mode
every time you
send a message with a markdown or html, right? it might get a
little boring after first few hundreds of times, so i present
to you @puregram/markup
!
example
const { format, bold, italic, code, hooks: formatHooks } = require('@puregram/markup')
const { Telegram } = require('puregram')
const telegram = Telegram.fromToken(process.env.TOKEN)
telegram.useHooks(formatHooks())
telegram.updates.on('message', (context) => {
return context.send(
format`hey! this ${bold('message')} is ${italic('formatted')} without ${code('parse_mode')}!`
)
})
telegram.updates.startPolling()
installation
$ yarn add @puregram/markup
$ npm i -S @puregram/markup
usage
all of the functions except those that require two or more arguments
can be called either via template strings or like basic functions
bold`foo ${italic`bar`}`
bold(italic('bar'))
there's literally no distinction between them, however if you are going
to do embedded markup, you should use template strings:
bold`foo ${italic`bar`}`
bold`${italic`bar`}`
bold(italic('bar'))
bold(`foo ${italic('bar')}`)
bold(`${italic('foo')}`)
the last one does not work simply because javascript compiles foo ${italic('bar')}
into a single string which becomes 'foo [object Object]' soo yeah
available functions
bold(text: string)
bold('hey!')
bold`hey!`
italic(text: string)
italic('hey!')
italic`hey!`
code(code: string)
code('const x = 5')
code`const x = 5`
underline(text: string)
underline('hey!')
underline`hey!`
strikethrough(text: string)
strikethrough('hey!')
strikethrough`hey!`
spoiler(text: string)
spoiler('hey!')
spoiler`hey!`
mention(text: string)
mention('@username')
mention`@username`
pre(text: string, language?: string)
pre('im cool')
pre('im cool but in bash', 'sh')
link(text: string, url: string)
link('epic!', 'https://github.puregram.cool')
mentionUser(text: string, userId: number)
mentionUser('dude', 398859857)
mentionBot(text: string, userId: number)
mentionUser('robodude', telegram.bot.id)
textMention(text: string, user: Interfaces.TelegramUser)
mentionUser('dude', { id: 398859857, is_bot: false, first_name: 'dude' })
customEmoji(text: string, id: string)
customEmoji('😁', '...')