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

问题描述 投票:7回答:2

问题

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

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

例如,下面的屏幕截图在左侧显示Sphinx输出,在右侧显示GitHub呈现的版本:“示例”

所以我的问题是:

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


2个部分解决方案
  • 部分解决方案是我使用the :boom: image软件包编写的:boom:。如果可能,它将把任何:emoji:别名(写成:like_this :)转换为UTF-8版本。

  • 我也尝试使用this small Python script包来写carpedm20's emoji。它将任何:emoji:别名转换为一段HTML代码,该代码加载了一个遥远的PNG(或SVG)版本(来自JsDelivr的CDN)。仍然不够完美,大小/缩放比例不好,甚至...中的表情符号也被替换了。 (我会对此进行改进)。

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

    pymdownx.emoji

    演示:

    • 带有用于表情符号的UTF-8代码:“示例2”
    • [带有用于表情符号的PNG图片(仍然不完美):“示例3”

    我一直在使用(Python)Sphinx文档以及CommonMark解析器来编写Sphinx文档的问题,其中包含以reStructuredText和Markdown编写的文件。到目前为止一切正常,... ... >>>

    找不到任何东西,所以以this second script结尾。

    安装它:

    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
    

    然后,在您的狮身人面像的creating an extension中:

    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:|
    

    您无需将表情符号转换为小图像或使用扩展名,因为Sphinx实际上支持表情符号,因为它们是直接复制粘贴的。

    [如果您复制任何表情符号并将其添加到文档文件中,则编辑器可能无法正确显示它,但是只要插入了表情符号,它便会显示在您的文档中。

    使用警笛表情符号尝试一下:

    conf.py

    我知道这适用于reStructuredText文件,因此希望它也适用于Markdown文件。

    简化操作的一件事是将要在sphinxemoji_style = 'twemoji' 中使用的所有表情符号替换为reStructuredText文件。这样,您可以在结语中使用类似的内容:

    🚨
    

    每次您要在reStructuredText文档中使用警笛时,都只需使用rst_epilog

    python-sphinx emoji github-flavored-markdown
    2个回答
    5
    投票

    找不到任何东西,所以以this second script结尾。


    4
    投票

    您无需将表情符号转换为小图像或使用扩展名,因为Sphinx实际上支持表情符号,因为它们是直接复制粘贴的。

    [如果您复制任何表情符号并将其添加到文档文件中,则编辑器可能无法正确显示它,但是只要插入了表情符号,它便会显示在您的文档中。

    © www.soinside.com 2019 - 2024. All rights reserved.