Slack block kit builder for generating block messages programatically.
Project description
Slack Blockkit Builder is a simple utility for developing code blocks for Slack’s Block Kit. It provides Pythonic-style blocks to allow for dynamic generation of block kits where copy-and-paste just won’t do it.
Installation
Installation is as easy as:
pip install slack_blockkit
It is currently tested on Python3+, but can be used for Python 2.7.
Usage
Categories
Slack’s Block Kit comes with 4 different block categories:
Block elements - The standard element of a block.
Composition objects - Composition objects can be used inside of block elements and certain message payload fields. They are simply common JSON object patterns that you’ll encounter frequently when building blocks or composing messages.
Interactive components - Interactive components are a subset of Block Kit elements that add interactivity to various app surfaces.
View payloads - Views are app-customized visual areas within modals and Home tabs.
Example Usage
You can access the different components by importing them from their respective package. For example, Block elements can be accessed by importing from slack_blockkit.block_element import .... A common block element is the TextObject:
from slack_blockkit.block_element import TextObject
text_object = TextObject(btype="mrkdwn", text="This is a text block")
Blocks are inserted into a list as dicts. Each component comes with a render() method which will return a dict:
text_object.render() # {'type': 'mrkdwn', 'text': 'This is a text block'}
Message Blocks
Message payloads to Slack take a list of dictionaries. The slack_blockkit.utils module has a get_blocks method that takes Block objects and returns the formatted list:
from slack_blockkit.utils import get_blocks
from slack_blockkit.text_object import TextObject
from slack_blockkit.layout_block import DividerBlock, ImageBlock
blocks = get_blocks(
TextObject(btype="mrkdwn", text="Welcome to CodeDevils!"),
DividerBlock(),
ImageBlock(image_url="https://codedevils.org/static/img/logo", alt_text="Logo")
)
Which makes blocks:
{
"type": "mrkdwn",
"text": "Welcome to CodeDevils!"
},
{
"type": "divider"
},
{
"type": "image",
"image_url": "https://codedevils.org/static/img/logo",
"alt_text": "Logo"
}
Utils
Common composite blocks are implemented for you in slack_blockkit.utils and include:
get_task_block - Returns a task block, which is comprised of a paragraph of text followed by an information link at the bottom.
get_text_block_with_image - Returns a text block with an image to the right of it.
get_text_block_with_accessory - Returns a text block with an accessory.
get_information_block - Returns an information block, which is a section with an info icon followed by linked text.
get_checkmark - Not a block, but rather an emoji string for a checkmark. Pass True for a checked mark and False for unchecked.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for slack_blockkit-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5082127cd5d13a4b676fe275f61174f0ea075e1dde25bca90d870ac68403da79 |
|
MD5 | 0a93edd695db452980edd68407ceb939 |
|
BLAKE2b-256 | feb54a62cdeb4c87c85898d4915cd3116b67e48493f8381e08813f0aa2d0477d |