Markdownファイルをアップロードしてチャンネルのフォーマット済み投稿にする方法を理解しようとしています。これを行うためのAPI呼び出しはありますか?
Files.uploadはMarkdown rawアップロードのみをサポートしているようです。
「Markdown raw upload」と「Markdown file」の意味が100%わかりませんが、 files.upload は.md
ファイル。これが機能するようになっているようです:
curl -F filetype=post -F content="# [like this](https://someurl)" -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload
...今スワップcontent="..."
ために [email protected]
curl -F filetype=post -F [email protected] -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload
これにより、標準のMDファイル(githubなどから)がSlack Postドキュメントに変換されます。見出しやコードなど、すべてのフォーマットを維持しようとします。
ただし、SlackはMDのサブセットのみをサポートするため、テーブルは正しく表示されません。
私は 以下のPythonスクリプト を使用して、Markdownの最も有用なサブセットをSlack形式に変換しています。
**
、単一アスタリスク*
#
と太字のマーカーアスタリスク*
このスクリプトは、リストが2つのスペースでインデントされ、単一のアンダースコア_
がMarkdownの斜体に使用され、Slackと既に互換性があることを前提としています。
import re
import sys
REGEX_REPLACE = (
(re.compile('^- ', flags=re.M), '• '),
(re.compile('^ - ', flags=re.M), ' ◦ '),
(re.compile('^ - ', flags=re.M), ' ⬩ '),
(re.compile('^ - ', flags=re.M), ' ◽ '),
(re.compile('^#+ (.+)$', flags=re.M), r'*\1*'),
(re.compile('\*\*'), '*'),
)
def main(i, o):
s = i.read()
for regex, replacement in REGEX_REPLACE:
s = regex.sub(replacement, s)
o.write(s)
if __name__ == '__main__':
with open(sys.argv[1], encoding='utf-8') as i, \
open(sys.argv[1] + '.slack', 'w', encoding='utf-8') as o:
main(i, o)
結果はほとんどの目的で十分に良いかもしれません。
でスクリプトを実行する
python markdown-to-slack.py filename.md
結果はfilename.md.slack
になります。
いいえのように見えます。
Slackヘルプ から、リストをフォーマットする正しい方法は、Shift + Enterを使用し、実際の箇条書き記号(•)を貼り付けることです。アスタリスクは変換されません(たとえば)。
Slackがsomeマークダウン機能をどのように使用しているか、およびSlackの使用がどれだけ広範囲に使用されているかを考えると、奇妙なほど基本的です。機能のリクエストを行う必要があると思いますか?