Skip to content

Commit

Permalink
Rename package name to jsx-slack
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuki Hattori committed Feb 25, 2021
1 parent 5a6c2db commit 45ee690
Show file tree
Hide file tree
Showing 19 changed files with 287 additions and 289 deletions.
297 changes: 153 additions & 144 deletions CHANGELOG.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion LICENSE
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2019- Yuki Hattori (yuki.hattori@speee.jp) and Speee, Inc.
Copyright (c) 2019- Yuki Hattori (yukihattori1116@gmail.com).

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
106 changes: 52 additions & 54 deletions README.md
@@ -1,40 +1,38 @@
<h1 align="center">
<a href="https://npm.im/@speee-js/jsx-slack">
<img src="https://raw.githubusercontent.com/speee/jsx-slack/HEAD/demo/logo.svg?sanitize=true" width="100" /><br />
<img src="https://raw.githubusercontent.com/speee/jsx-slack/HEAD/demo/logo-type.svg?sanitize=true" width="100" alt="jsx-slack" />
<a href="https://npm.im/jsx-slack">
<img src="https://raw.githubusercontent.com/yhatt/jsx-slack/HEAD/demo/logo.svg?sanitize=true" width="100" /><br />
jsx-slack
</a>
</h1>

[![CircleCI](https://img.shields.io/circleci/project/github/speee/jsx-slack/master.svg?logo=circleci)][circleci]
[![Codecov](https://img.shields.io/codecov/c/github/speee/jsx-slack/master.svg?logo=codecov)](https://codecov.io/gh/speee/jsx-slack)
[![npm](https://img.shields.io/npm/v/@speee-js/jsx-slack.svg?logo=npm)][npm]
[![LICENSE](https://img.shields.io/github/license/speee/jsx-slack.svg)][license]
[![CircleCI](https://img.shields.io/circleci/project/github/yhatt/jsx-slack/master.svg?logo=circleci)][circleci]
[![Codecov](https://img.shields.io/codecov/c/github/yhatt/jsx-slack/master.svg?logo=codecov)](https://codecov.io/gh/yhatt/jsx-slack)
[![npm](https://img.shields.io/npm/v/jsx-slack.svg?logo=npm)][npm]
[![LICENSE](https://img.shields.io/github/license/yhatt/jsx-slack.svg)][license]

[circleci]: https://circleci.com/gh/speee/jsx-slack/
[npm]: https://npm.im/@speee-js/jsx-slack
[circleci]: https://circleci.com/gh/yhatt/jsx-slack/
[npm]: https://npm.im/jsx-slack
[license]: ./LICENSE

Build JSON object for [Slack][slack] [block kit] surfaces from [JSX].

> :sparkles: **We have sparkling jsx-slack v2!** :sparkles: **[▶︎ See highlight of v2](docs/highlight/v2.md)**
[slack]: https://slack.com
[jsx]: https://reactjs.org/docs/introducing-jsx.html
[react]: https://reactjs.org/
[block kit]: https://api.slack.com/block-kit
[block kit builder]: https://api.slack.com/tools/block-kit-builder

<p align="center">
<a href="https://speee-jsx-slack.netlify.app/">
<img src="https://raw.githubusercontent.com/speee/jsx-slack/HEAD/docs/jsx.png" width="550" />
<a href="https://jsx-slack.netlify.app/">
<img src="https://raw.githubusercontent.com/yhatt/jsx-slack/HEAD/docs/jsx.png" width="550" />
</a>
<br />
<a href="https://speee-jsx-slack.netlify.app/#bkb:message">
<img src="https://raw.githubusercontent.com/speee/jsx-slack/HEAD/docs/slack-notification.png" width="532" />
<a href="https://jsx-slack.netlify.app/#bkb:message">
<img src="https://raw.githubusercontent.com/yhatt/jsx-slack/HEAD/docs/slack-notification.png" width="532" />
</a>
</p>

:point_right: **[Try our REPL demo](https://speee-jsx-slack.netlify.app/)** in https://speee-jsx-slack.netlify.app/.
:point_right: **[Try our REPL demo](https://jsx-slack.netlify.app/)** in https://jsx-slack.netlify.app/.

### Features

Expand All @@ -61,12 +59,12 @@ We require Node.js >= 10. If you are using TypeScript, we also require TS >= 3.7

```bash
# npm
npm install --save @speee-js/jsx-slack
npm install --save jsx-slack
```

```bash
# yarn
yarn add @speee-js/jsx-slack
yarn add jsx-slack
```

## Usage
Expand All @@ -80,7 +78,7 @@ It allows the template syntax almost same as JSX, powered by [HTM (Hyperscript T
This is a simple example of the template function just to say hello to someone.

```javascript
import { jsxslack } from '@speee-js/jsx-slack'
import { jsxslack } from 'jsx-slack'

export const exampleBlock = ({ name }) => jsxslack`
<Blocks>
Expand All @@ -97,7 +95,7 @@ When you want to use jsx-slack with JSX transpiler, you have to set up to use im

```jsx
/** @jsx JSXSlack.h */
import { JSXSlack, Blocks, Section } from '@speee-js/jsx-slack'
import { JSXSlack, Blocks, Section } from 'jsx-slack'

export const exampleBlock = ({ name }) => (
<Blocks>
Expand Down Expand Up @@ -135,42 +133,42 @@ It would post a simple Slack message like this:

[<img src="./docs/preview-btn.svg" width="240" />][block-kit-builder-example]

[block-kit-builder-example]: https://speee-jsx-slack.netlify.app/#bkb:jsx:eJyzccrJT84utuNSULAJTk0uyczPA7EVFDxSc3LydRRskuwiS7MzFTwSS0ryizJt9JPsFEFq9eGKbfShRgAAVeQWug==
[block-kit-builder-example]: https://jsx-slack.netlify.app/#bkb:jsx:eJyzccrJT84utuNSULAJTk0uyczPA7EVFDxSc3LydRRskuwiS7MzFTwSS0ryizJt9JPsFEFq9eGKbfShRgAAVeQWug==

## Block Kit as components

Slack has recommended to use **[Block Kit]** for building tempting messages and modals.

By using jsx-slack, you can build a template with piling up Block Kit blocks by JSX. It is feeling like using components in React or Vue.

### [For messaging](https://speee-jsx-slack.netlify.app/)
### [For messaging](https://jsx-slack.netlify.app/)

```jsx
<Blocks>
<Section>
<p>Enjoy building blocks!</p>
<blockquote>
<b>
<a href="https://github.com/speee/jsx-slack">@speee-js/jsx-slack</a>
<a href="https://github.com/yhatt/jsx-slack">jsx-slack</a>
</b>
<br />
<i>Build JSON for Slack Block Kit from JSX</i>
</blockquote>
<Image src="https://github.com/speee.png" alt="Speee, Inc." />
<img src="https://github.com/yhatt.png" alt="yhatt" />
</Section>
<Context>
Maintained by <a href="https://github.com/yhatt">Yuki Hattori</a>
<img src="https://github.com/yhatt.png" alt="yhatt" />
</Context>
<Divider />
<Actions>
<Button url="https://github.com/speee/jsx-slack">GitHub</Button>
<Button url="https://npm.im/@speee-js/jsx-slack">npm</Button>
<Button url="https://github.com/yhatt/jsx-slack">GitHub</Button>
<Button url="https://npm.im/jsx-slack">npm</Button>
</Actions>
</Blocks>
```

### [For modal](https://speee-jsx-slack.netlify.app/#modal)
### [For modal](https://jsx-slack.netlify.app/#modal)

```jsx
<Modal title="My first modal" close="Cancel">
Expand Down Expand Up @@ -199,7 +197,7 @@ By using jsx-slack, you can build a template with piling up Block Kit blocks by
</Modal>
```
### [For home tab](https://speee-jsx-slack.netlify.app/#home)
### [For home tab](https://jsx-slack.netlify.app/#home)
```jsx
<Home>
Expand Down Expand Up @@ -249,37 +247,39 @@ By using jsx-slack, you can build a template with piling up Block Kit blocks by
* **[HTML-like formatting](docs/html-like-formatting.md)**
* **[About escape and exact mode](docs/about-escape-and-exact-mode.md)**
- **[Highlight of v2](docs/highlight/v2.md)**
### Examples by use cases
Ported from templates for [Block Kit Builder].
#### [Message](https://api.slack.com/tools/block-kit-builder?mode=message&template=1)
- [Approval (New device request)](https://speee-jsx-slack.netlify.app/#messagingApprovalNewDevice)
- [Approval (Time Off request)](https://speee-jsx-slack.netlify.app/#messagingApprovalTimeOff)
- [Notification](https://speee-jsx-slack.netlify.app/#messagingNotification)
- [Onboarding (Taskbot)](https://speee-jsx-slack.netlify.app/#messagingOnboardingTaskbot)
- [Onboarding (Onboarding App)](https://speee-jsx-slack.netlify.app/#messagingOnboardingApp)
- [Poll](https://speee-jsx-slack.netlify.app/#messagingPoll)
- [Search Results (TripAgent)](https://speee-jsx-slack.netlify.app/#messagingSearchResultsTripAgent)
- [Search Results (FileCard Agent)](https://speee-jsx-slack.netlify.app/#messagingSearchResultsFileCard)
- [Newsletter](https://speee-jsx-slack.netlify.app/#messagingNewsletter)
- [Approval (New device request)](https://jsx-slack.netlify.app/#messagingApprovalNewDevice)
- [Approval (Time Off request)](https://jsx-slack.netlify.app/#messagingApprovalTimeOff)
- [Notification](https://jsx-slack.netlify.app/#messagingNotification)
- [Onboarding (Taskbot)](https://jsx-slack.netlify.app/#messagingOnboardingTaskbot)
- [Onboarding (Onboarding App)](https://jsx-slack.netlify.app/#messagingOnboardingApp)
- [Poll](https://jsx-slack.netlify.app/#messagingPoll)
- [Search Results (TripAgent)](https://jsx-slack.netlify.app/#messagingSearchResultsTripAgent)
- [Search Results (FileCard Agent)](https://jsx-slack.netlify.app/#messagingSearchResultsFileCard)
- [Newsletter](https://jsx-slack.netlify.app/#messagingNewsletter)
#### [Modal](https://api.slack.com/tools/block-kit-builder?mode=modal&template=1)
- [Poll](https://speee-jsx-slack.netlify.app/#modalPoll)
- [Search Results](https://speee-jsx-slack.netlify.app/#modalSearchResults)
- [Settings (App menu)](https://speee-jsx-slack.netlify.app/#modalSettingsAppMenu)
- [Settings (Notification settings)](https://speee-jsx-slack.netlify.app/#modalSettingsNotification)
- [List of information (Your itinerary)](https://speee-jsx-slack.netlify.app/#modalListOfInformationYourItinerary)
- [List of information (Ticket app)](https://speee-jsx-slack.netlify.app/#modalListOfInformationTicketApp)
- [Poll](https://jsx-slack.netlify.app/#modalPoll)
- [Search Results](https://jsx-slack.netlify.app/#modalSearchResults)
- [Settings (App menu)](https://jsx-slack.netlify.app/#modalSettingsAppMenu)
- [Settings (Notification settings)](https://jsx-slack.netlify.app/#modalSettingsNotification)
- [List of information (Your itinerary)](https://jsx-slack.netlify.app/#modalListOfInformationYourItinerary)
- [List of information (Ticket app)](https://jsx-slack.netlify.app/#modalListOfInformationTicketApp)
#### [App Home](https://api.slack.com/tools/block-kit-builder?mode=appHome&template=1)
- [Project Tracker](https://speee-jsx-slack.netlify.app/#appHomeProjectTracker)
- [Calendar](https://speee-jsx-slack.netlify.app/#appHomeCalendar)
- [Expense App](https://speee-jsx-slack.netlify.app/#appHomeExpenseApp)
- [Todo App](https://speee-jsx-slack.netlify.app/#appHomeTodoApp)
- [Project Tracker](https://jsx-slack.netlify.app/#appHomeProjectTracker)
- [Calendar](https://jsx-slack.netlify.app/#appHomeCalendar)
- [Expense App](https://jsx-slack.netlify.app/#appHomeExpenseApp)
- [Todo App](https://jsx-slack.netlify.app/#appHomeTodoApp)
## Fragments
Expand All @@ -291,7 +291,7 @@ Let's say about defining `<Heading>` custom block that is consisted by `<Section

```javascript
/** @jsx JSXSlack.h */
import { JSXSlack, Fragment } from '@speee-js/jsx-slack'
import { JSXSlack, Fragment } from 'jsx-slack'
const Heading = ({ children }) => (
<Fragment>
Expand All @@ -318,7 +318,7 @@ Now the defined block can use in `<Blocks>` as like as the other blocks:

[<img src="./docs/preview-btn.svg" width="240" />][custom-header-block]

[custom-header-block]: https://speee-jsx-slack.netlify.app/#bkb:jsx:eJxVjrEOgzAQQ3e-4jYmejs6Zag6duMLSIjQlZRIOEHt3xcaBphsD8-23EN0E0xFJJ13SeO8-y3ZoptT88KnQejdRC4jxTfZnRJWQy3yPIYe8GgLyH9S-FQnD1118AvxZejpUw2yWcNA35iXUns7ocLHvx9tITN_
[custom-header-block]: https://jsx-slack.netlify.app/#bkb:jsx:eJxVjrEOgzAQQ3e-4jYmejs6Zag6duMLSIjQlZRIOEHt3xcaBphsD8-23EN0E0xFJJ13SeO8-y3ZoptT88KnQejdRC4jxTfZnRJWQy3yPIYe8GgLyH9S-FQnD1118AvxZejpUw2yWcNA35iXUns7ocLHvx9tITN_

### Short syntax for fragments

Expand All @@ -327,7 +327,7 @@ Babel transpiler and TypeScript 4 can use [the short syntax `<></>` for fragment
```javascript
/** @jsx JSXSlack.h */
/** @jsxFrag JSXSlack.Fragment */
import { JSXSlack } from '@speee-js/jsx-slack'
import { JSXSlack } from 'jsx-slack'
const Header = ({ children }) => (
<>
Expand All @@ -345,7 +345,7 @@ const Header = ({ children }) => (

```javascript
// Header.js
import { jsxslack } from '@speee-js/jsx-slack'
import { jsxslack } from 'jsx-slack'
export const Header = ({ children }) => jsxslack`
<Section>
Expand All @@ -358,7 +358,7 @@ export const Header = ({ children }) => jsxslack`
A defined component may use in `jsxslack` tag as below:

```javascript
import { jsxslack } from '@speee-js/jsx-slack'
import { jsxslack } from 'jsx-slack'
import { Header } from './Header'
console.log(jsxslack`
Expand Down Expand Up @@ -405,8 +405,6 @@ FYI there are some projects based on React ([react-reconciler](https://github.co

## Author

Managed by [<img src="https://github.com/speee.png" alt="Speee, Inc." width="24" height="24" valign="bottom" /> Speee, Inc.](https://speee.jp) ([@speee](https://github.com/speee))

- <img src="https://github.com/yhatt.png" alt="@yhatt" width="24" height="24" valign="bottom" /> Yuki Hattori ([@yhatt](https://github.com/yhatt)) - Maintainer

## License
Expand Down
8 changes: 4 additions & 4 deletions demo/examples/basic.js
Expand Up @@ -6,21 +6,21 @@ export const message = `
</p>
<blockquote>
<b>
<a href="https://github.com/speee/jsx-slack">@speee-js/jsx-slack</a>
<a href="https://github.com/yhatt/jsx-slack">jsx-slack</a>
</b>
<br />
<i>Build JSON for Slack Block Kit from JSX</i>
</blockquote>
<Image src="https://github.com/speee.png" alt="Speee, Inc." />
<img src="https://github.com/yhatt.png" alt="yhatt" />
</Section>
<Context>
Maintained by <a href="https://github.com/yhatt">Yuki Hattori</a>
<img src="https://github.com/yhatt.png" alt="yhatt" />
</Context>
<Divider />
<Actions>
<Button url="https://github.com/speee/jsx-slack">GitHub</Button>
<Button url="https://npm.im/@speee-js/jsx-slack">npm</Button>
<Button url="https://github.com/yhatt/jsx-slack">GitHub</Button>
<Button url="https://npm.im/jsx-slack">npm</Button>
</Actions>
</Blocks>
`.trim()
Expand Down
22 changes: 9 additions & 13 deletions demo/index.html
Expand Up @@ -16,16 +16,16 @@
property="og:description"
content="Build JSON object for Slack Block Kit surfaces from JSX"
/>
<meta property="og:url" content="https://speee-jsx-slack.netlify.app/" />
<meta property="og:url" content="https://jsx-slack.netlify.app/" />
<meta
property="og:image"
content="https://speee-jsx-slack.netlify.app/assets/ogp.png"
content="https://jsx-slack.netlify.app/assets/ogp.png"
/>
<meta property="og:image:width" content="1280" />
<meta property="og:image:height" content="640" />
<meta name="twitter:card" content="summary_large_image" />

<link rel="canonical" href="https://speee-jsx-slack.netlify.app/" />
<link rel="canonical" href="https://jsx-slack.netlify.app/" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Fira+Mono&family=Inter:wght@400;700&display=swap"
Expand All @@ -44,7 +44,7 @@
<h1>
<a
id="logotype"
href="https://github.com/speee/jsx-slack/"
href="https://github.com/yhatt/jsx-slack/"
target="_blank"
rel="noopener"
>
Expand All @@ -64,23 +64,23 @@ <h1>
</aside>
<aside>
<a
href="https://github.com/speee/jsx-slack"
href="https://github.com/yhatt/jsx-slack"
target="_blank"
rel="noopener"
>
<img
src="https://img.shields.io/badge/GitHub-speee%2Fjsx--slack-111111.svg?logo=github"
src="https://img.shields.io/badge/GitHub-jsx--slack-111111.svg?logo=github"
alt="GitHub"
loading="lazy"
/>
</a>
<a
href="https://npm.im/@speee-js/jsx-slack"
href="https://npm.im/jsx-slack"
target="_blank"
rel="noopener"
>
<img
src="https://img.shields.io/npm/v/@speee-js/jsx-slack.svg?logo=npm"
src="https://img.shields.io/npm/v/jsx-slack.svg?logo=npm"
alt="npm"
loading="lazy"
/>
Expand Down Expand Up @@ -199,15 +199,11 @@ <h2>
<a href="https://github.com/yhatt" target="_blank" rel="noopener"
>Yuki Hattori</a
>
and
<a href="https://speee.jp/" target="_blank" rel="noopener"
>Speee, Inc.</a
>
</p>
<p>
<small>
<a
href="https://github.com/speee/jsx-slack/blob/master/LICENSE"
href="https://github.com/yhatt/jsx-slack/blob/master/LICENSE"
target="_blank"
rel="noopener"
>MIT License</a
Expand Down
4 changes: 2 additions & 2 deletions docs/about-escape-and-exact-mode.md
Expand Up @@ -23,7 +23,7 @@ To battle against breaking message, we provide `<Escape>` component to keep spec
</Blocks>
```

[<img src="./preview-btn.svg" width="240" />](https://speee-jsx-slack.netlify.app/#bkb:jsx:eJyzccrJT84utuNSULAJTk0uyczPs1NLL7FW0ErKz0nRUojPLEnMyUyOV6grLinKzE4tySjKL03PqFNISM5PSU2w0YdpQjYAyAbyXIuTEwtSSTMNqgdkGMJkG32oIwHZUDpP)
[<img src="./preview-btn.svg" width="240" />](https://jsx-slack.netlify.app/#bkb:jsx:eJyzccrJT84utuNSULAJTk0uyczPs1NLL7FW0ErKz0nRUojPLEnMyUyOV6grLinKzE4tySjKL03PqFNISM5PSU2w0YdpQjYAyAbyXIuTEwtSSTMNqgdkGMJkG32oIwHZUDpP)

_By using `<Escape>`, please notice that it might change characters on the contents by replacement and insertion._ jsx-slack leaves mrkdwn by default to avoid unintended content breaking.

Expand Down Expand Up @@ -93,7 +93,7 @@ However, Slack renders as:

> Super_cali_fragilistic\*expiali\*docious
[<img src="./preview-btn.svg" width="240" />](https://speee-jsx-slack.netlify.app/#bkb:jsx:eJyzccrJT84utuNSULAJTk0uyczPA7EVFIJLC1KLbDLtkhNzMm30M-3SihLTM3Myi0syk22S7FIrCjLBEkl2KfnJmfmlxSAD9OEm2OhDzQUA7gMfzA==)
[<img src="./preview-btn.svg" width="240" />](https://jsx-slack.netlify.app/#bkb:jsx:eJyzccrJT84utuNSULAJTk0uyczPA7EVFIJLC1KLbDLtkhNzMm30M-3SihLTM3Myi0syk22S7FIrCjLBEkl2KfnJmfmlxSAD9OEm2OhDzQUA7gMfzA==)

You can deal workaround via `JSXSlack.exactMode(true)`. It can enable formatting forcibly by inserting zero-width space around special chars.

Expand Down

0 comments on commit 45ee690

Please sign in to comment.