有没有办法将Markdown文件上传为Slack帖子?

kic*_*gas 14 slack-api

试图找出一种方法来上传Markdown文件,使其成为频道中的格式化帖子.是否有API调用来执行此操作?

files.upload似乎只支持Markdown原始上传.

Reu*_*ben 6

不是100%确定"Markdown原始上传"与"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
Run Code Online (Sandbox Code Playgroud)

...现在换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
Run Code Online (Sandbox Code Playgroud)

这样做是将标准MD文件(例如从github)转换为Slack Post文档.它会尝试保留所有格式,例如标题,代码等.

但是,请记住,Slack仅支持MD的子集,因此例如表格将无法正确显示.


mrt*_*rts 5

我正在使用以下 Python 脚本将 Markdown 最有用的子集转换为 Slack 格式。它取代:

\n\n
    \n
  • 带有项目符号的连字符列表
  • \n
  • 双粗体标记星号**和单星号*
  • \n
  • 标头#带有粗体标记星号的*
  • \n
\n\n

该脚本假设列表缩进两个空格并且单个下划线_Markdown 中的斜体使用单下划线,因此它已经与 Slack 兼容。

\n\n
import re\nimport sys\n\nREGEX_REPLACE = (\n  (re.compile(\'^- \', flags=re.M), \'\xe2\x80\xa2 \'),\n  (re.compile(\'^  - \', flags=re.M), \'  \xe2\x97\xa6 \'),\n  (re.compile(\'^    - \', flags=re.M), \'    \xe2\xac\xa9 \'),\n  (re.compile(\'^      - \', flags=re.M), \'    \xe2\x97\xbd \'),\n  (re.compile(\'^#+ (.+)$\', flags=re.M), r\'*\\1*\'),\n  (re.compile(\'\\*\\*\'), \'*\'),\n)\n\ndef main(i, o):\n  s = i.read()\n  for regex, replacement in REGEX_REPLACE:\n    s = regex.sub(replacement, s)\n  o.write(s)\n\nif __name__ == \'__main__\':\n  with open(sys.argv[1], encoding=\'utf-8\') as i, \\\n       open(sys.argv[1] + \'.slack\', \'w\', encoding=\'utf-8\') as o:\n    main(i, o)\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于大多数目的来说,结果可能已经足够好了。

\n\n

运行脚本

\n\n
python markdown-to-slack.py filename.md\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果将在filename.md.slack.

\n


Ian*_*ger 3

看起来没有。

\n\n

Slack 帮助中,格式化列表的正确方法是使用 Shift+Enter,并粘贴实际的项目符号点字符 (\xe2\x80\xa2)。它不会为您转换星号(例如)。

\n\n

考虑到 Slack 如何使用一些Markdown 功能,以及 Slack 的使用有多广泛,这看起来有点奇怪!我想我应该提出一个功能请求?

\n