尝试找出将Markdown文件上传为频道中格式化帖子的方法。是否有API调用来执行此操作?
files.upload似乎只支持Markdown原始上传。
答案 0 :(得分:5)
不是100%肯定你的意思" Markdown原始上传" vs" Markdown文件"但是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="..."
file=@post.md
curl -F filetype=post -F file=@post.md -F channels=C1.....7L -F token=xoxp-... https://slack.com/api/files.upload
这样做是将标准MD文件(例如从github)转换为Slack Post文档。它会尝试保留所有格式,例如标题,代码等。
但是,请记住,Slack仅支持MD的子集,例如,表格无法正确显示。
答案 1 :(得分:1)
看起来没有。
从Slack help开始,格式化列表的正确方法是使用Shift + Enter,并粘贴实际的项目符号字符(•)。它不会为你转换你的星号(例如)。
看起来非常基本,考虑到Slack如何使用一些降价功能,以及Slack的使用范围有多广泛!我想我应该提出功能请求?
答案 2 :(得分:1)
我正在使用following Python script将Markdown最有用的子集转换为Slack格式。它代替:
**
的双粗体星号*
#
(带有粗体星号*
该脚本假定列表缩进两个空格,并且在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
中。