Sphinx 扩展可在 Sphinx 中使用 GitHub markdown 表情符号吗?

2024-03-30

Problem

我一直在使用(Python) Sphinx 文档 http://www.sphinx-doc.org/, 随着通用标志 http://commonmark.org/解析器,用于编写包含以 reStructuredText 和 Markdown 编写的文件的 Sphinx 文档。到目前为止一切顺利,效果非常好(请参阅 Sphinx 示例中的这一行conf.py file https://bitbucket.org/lbesson/web-sphinx/src/master/conf.py?fileviewer=file-view-default#conf.py-157).

然而,CommonMark 对 GitHub 风格的 Markdown (GFM) 的支持并不完美,它缺少的一个重要功能是emoji。 我搜索了其他 Markdown 解析器,例如更具体的 GFMpy-gfm https://py-gfm.readthedocs.io/en/latest/,但似乎都不支持表情符号。

For instance, the screenshot below shows the Sphinx output on the left, and the GitHub rendered version on the right: an example

所以我的问题是:

  • 有谁知道 Sphinx 扩展可以在 rST 和/或 Markdown 中添加对类似 GFM 的表情符号的支持? (即,表情符号写成:boom: this).
  • 或者我可以用来转换任何表情符号的技巧,例如,:boom:,到小图像? (无论如何,这就是 GitHub 正在做的事情,请参见例如the :boom: image https://assets-cdn.github.com/images/icons/emoji/unicode/1f4a5.png)这个技巧可能应该在 Sphinx 创建的 HTML 页面上,而不是在源 Markdown 文件上(我希望它们仍然可以通过 GitHub 文件查看器读取)。

提前致谢。 问候。


2 部分解决方案

  • 部分解决方案是这个Python小脚本 https://bitbucket.org/lbesson/bin/src/master/emojize.py我写的,使用carpedm20 的表情符号 https://github.com/carpedm20/emoji/包裹。 如果可能的话,它会将任何 :emoji: 别名(写为 :like_this:)转换为其 UTF-8 版本。

  • 我也尝试使用pymdownx.emoji https://facelessuser.github.io/pymdown-extensions/extensions/emoji/封装,写第二个脚本 https://bitbucket.org/lbesson/bin/src/master/emojize_pngorsvg.py。 它将任何 :emoji: 别名转换为一段 HTML 代码,加载远程 PNG(或 SVG)版本(来自 JsDelivr 的 CDN)。仍然不完美,尺寸/缩放比例不好,甚至...中的表情符号都被替换了。 (我会改进这一点)。

两者都可以与这个小型 Bash for 循环一起使用:

BUILDDIR=_build/html  # Adapt to the location of your Sphinx output
for i in "$BUILDDIR"/*.html; do
    emojize.py "$i" > "$i".new
    # or emojize_pngorsvg.py "$i" > "$i".new
    wdiff -3 "$i" "$i".new;
    mv -vf "$i".new "$i"
done

Demo:

  • With UTF-8 codes for emojis: an example 2
  • With PNG images for emojis (still not perfect): an example 3

没有找到任何东西,所以结束了创建扩展 https://github.com/sphinx-contrib/emojicodes.

安装它:

pip install sphinxemoji

然后,在你的狮身人面像中conf.py:

extensions = [
    '...',
    'sphinxemoji.sphinxemoji',
]

然后您可以开始在文档中使用表情符号代码(但请注意,您需要在表情符号代码周围使用横线):

This text includes a smily face |:smile:| and a snake too! |:snake:|

Don't you love it? |:heart_eyes:|

如果你想要一致的表情符号风格,你可以将其添加到你的conf.py:

sphinxemoji_style = 'twemoji'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sphinx 扩展可在 Sphinx 中使用 GitHub markdown 表情符号吗? 的相关文章

  • 如何避免 ReST 表中的水平滚动条?

    我在 ReST 标记中有这个表 Option Line Kind Distinguishing Characteristic Reference The option name is call
  • 如何转义“#”,使其不会在 GitHub 评论中引用问题?

    相对于参考一个问题 https stackoverflow com questions 1687262 link to the issue number on github within a commit message 我只想输出文本 5
  • 如何在不向下移动行的情况下将表情符号插入到 NSTextView 中?

    如何将表情符号插入NSTextView不向下移动线 如果我将表情符号字符插入NSTextView 整条线将向下移动几个像素 如果我删除表情符号字符 它会移回到原来的位置 另一方面 如果我将表情符号插入NSTextField 即使该行中的文本
  • 如何让 sphinx 在构建 html 时查找 virtualenv 中的模块?

    我想使用 virtualenv 而不是我机器上的本机环境来构建 html 文档 我已经进入 virtualenv 但当我运行时make html我收到错误消息 提示模块无法导入 Iknow这些错误是由于该模块在我的本机环境中不可用造成的 如
  • 如何从文本中删除除文字和表情符号之外的所有内容?

    作为文本分类问题的一部分 我正在尝试清理文本数据集 到目前为止 我删除了除文本之外的所有内容 标点符号 数字 表情符号 一切都被删除了 现在我尝试使用表情符号作为特征 因此我想保留单词和表情符号 首先 我在文本中搜索表情符号 并将它们与其他
  • 如何在 reStructuredText (reST) 中写入乘号?

    我正在编写将使用 Sphinx 呈现为 HTML 和 PDF 的 reST 文档 我的源文件是 UTF 8 并且期望我的 HTML 显示为 UTF 8 书写乘号的最佳做法是什么 即 而不是x 我知道我可以将它作为 Unicode 字符插入
  • 如何将自定义表情符号上传到我的 Discord 机器人

    我已经制作了一个不和谐的机器人 现在我想开始添加自定义表情符号 我看过很多关于如何使用 client cache 或其他东西来输入表情符号的教程 但如何上传它们并获取它们的 ID 以在我的不和谐机器人中使用 我希望得到快速而简单的答案 lt
  • Python 2.7:从文本中检测表情符号

    我希望能够检测文本中的表情符号并查找它们的名字 我没有使用 unicodedata 模块 我怀疑我不是 了解 UTF 8 约定 我猜想我需要将我的文档加载为 utf 8 然后将 unicode 字符串 分解为 unicode 符号 迭代这些
  • sphinx,重组文本:表格的颜色单元格/行

    有没有办法为 sphinx 中表格中的特定行着色 我尝试使用 role 它与 CSS 文件相关 如中讨论的sphinx restructedtext 为单个单词设置颜色 https stackoverflow com questions 3
  • 表情符号取值范围

    我试图从字符串中取出所有表情符号 就像消毒剂一样 但我找不到完整的表情符号值集 表情符号字符的 UTF16 值的完整集合是什么 Unicode 标准的Unicode 技术报告 51 http www unicode org reports
  • 在 php 中将 emoji 字符转换为 Unicode 代码点数字

    我正在尝试使用 php 将表情符号转换为 unicode 更多信息 https unicode org emoji charts full emoji list html https unicode org emoji charts ful
  • PyCharm 和 reStructuredText (Sphinx) 文档弹出窗口

    让我们想象一下 我想看到一个简单方法的文档字符串弹出窗口PyCharm4 5 社区版 也在 5 0 中尝试过 我在两个文件中都写下了这些文档字符串epytext语法 自 2008 年起不再支持 Epydoc 生成器 并且仅适用于 Pytho
  • 使 viewcode 显示模块源

    我正在尝试使用 Sphinx 用一些 Python 片段制作一本食谱 每个片段都是一个独立的 Python 脚本 并且有一个教程类型的文档 我希望在生成的文档中有一个源链接来显示脚本内容 但viewcode https www sphinx
  • 如何搜索包含表情符号的文本?

    我们有一个 MySQL InnoDB 表 带有一个文本字段COLLATE utf8mb4 unicode ci 我需要搜索包含任何表情符号字符的行 我搜索了相当多的问题 但人们似乎有一个他们正在搜索的表情符号列表 我实际上正在寻找一种可以找
  • Python 文档的 reStructuredText 有真正的替代品吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我很快就要开始一个开源 Python 项目 并且我试图提前决定如何编写我的文档字符串 显而易见的答案是
  • 单词和表情符号计数器

    我有一个包含 clear message 列的数据框 并且创建了一个用于计算每行中所有单词的列 history word count history clear message apply lambda x Counter x split
  • 在 R 中的轴标签中绘制表情符号/自定义图像

    我正在尝试在 R 中绘制表情符号和自定义图像作为 X 轴的标签 我读过类似的帖子并且问题 https stackoverflow com questions 47730589 plot emojis emoticons in r with
  • javascript检测字符串是否只包含unicode表情符号[重复]

    这个问题在这里已经有答案了 我正在使用以下函数来替换字符串中的表情符号 并且效果很好 function doEmoji s var ranges ud83c udf00 udfff U 1F300 to U 1F3FF ud83d udc0
  • 在 Sphinx 中的引用中保留内联代码

    在 Sphinx 中 如果我有以下标题声明 somestuff this is code this is not 它呈现如下 this is code 这不是 这很好 但是 如果我使用参考 例如 Have a look at ref som
  • 用于将一个文档包含到另一个文档中的 sphinx 指令是什么?

    在我的文档中我有一个examples我可以说的目录 literalinclude examples 1 basic usage py language python linenos 效果很好 因为它们是代码 并且它们的格式正确为代码 但是

随机推荐