0.02
No release in over 3 years
Low commit activity in last 3 years
Convert markdown to Slack's message format 'mrkdwn'.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

>= 3.5.1
 Project Readme

SlackMrkdwn

Build Status Gem Version

Converts markdown to Slack's message format 'mrkdwn' (See Slack API docs: https://api.slack.com/docs/message-formatting).

Installation

Add the gem to your gemfile: gem 'slack_mrkdwn', then run bundle install.

Or install the gem by running: gem install slack_mrkdwn.

Usage

require 'slack_mrkdwn'

slack_formatted_text = SlackMrkdwn.from('My markdown formatted text')

Note: Requires Ruby version above or equal to v1.9.2 (because it uses Redcarpet to render Markdown).

What is being converted?

It will first encode Slack's restricted characters to HTML entities (<, > and &). Then it will convert:

  • Italics emphasis
  • Strong emphasis
  • Strike-through
  • Headings (to bold text)
  • Codeblocks
  • Single line codeblocks
  • Blockquotes
  • Unordered lists
  • Ordered lists
  • Images
  • Links (Classic-style and reference-style)

It will also strip any trailing whitespace once it's done the conversion.

Contributing

Testing

To run the test suite, execute:

rake test

Integration tests

The test runner reads integration test fixtures from the spec/fixtures directory. To add a new integration test fixture:

  • Add the markdown formatted text content in the spec/fixtures/source directory
  • Add a corresponding expectation fixture in the spec/fixtures/expectation directory

The expectation fixture should have the same name as the source fixture and end with _expectation.

The test runner supports a nested file structure for the fixture directories. For example, adding the source fixture spec/fixtures/source/my_org_name/integration_fixture, would test it against the expectation fixture found in spec/fixtures/expectation/my_org_name/integration_fixture_expecation.

Source fixtures that do not have a corresponding expectation fixture will log a test failure.

Changelog

2.2.1

  • Bumped RedCarpet version due to security vulnerability in version <3.5.1

2.2.0

  • Fixed paragraph and list spacing
  • Added better integration test support

2.1.0

  • Added list support

2.0.0

  • Now using Redcarpet markdown renderer to convert text.