问题

我一直在使用(Python) Sphinx docCommonMark解析器来编写Sphinx文档,其中包含用reStructuredText和Markdown编写的文件。到目前为止,一切都很好,它确实可以正常工作(see this line in an example of Sphinx conf.py file)。

但是,CommonMark对GitHub风格的Markdown(GFM)的支持并不完美,它缺少的一个重要功能是 emoji
我搜索了其他Markdown解析器,更特定于GFM,例如py-gfm,但它们似乎都不支持表情符号。



所以我的问题是:

  • 是否有人知道Sphinx扩展可以在rST和/或Markdown中增加对类似于GFM的表情符号的支持? (即,像:boom:这样写的表情符号)。
  • 还是我可以用来将任何表情符号(例如:boom:)转换为小图像的技巧? (因为这正是GitHub所做的,例如参见the :boom: image)。该技巧可能应该在Sphinx创建的HTML页面上,而不是在源Markdown文件上(我希望它们仍然可以在GitHub File Viewer上读取)。

  • 提前致谢。
    问候。

    2部分解决方案
  • 一个局部解决方案是我使用this small Python script包编写的carpedm20's emoji
    如果可能的话,它将把任何:emoji:别名(写成:like_this :)转换成它的UTF-8版本。
  • 我也尝试使用pymdownx.emoji包来编写this second script
    它将把任何: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
    

    演示:
  • 带有用于表情符号的UTF-8代码:
  • 带有表情符号的PNG图像(仍然不够完美):
  • 最佳答案

    那里什么都没找到,所以最终变成creating an extension

    通过以下方式安装:

    pip install sphinxemoji
    

    然后,在您的Sphinx的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'
    

    关于python-sphinx - Sphinx扩展在Sphinx中使用GitHub markdown表情符号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42087466/

    10-14 03:11