최근 제작된 Sphinx 확장에 대해 간단히 소개(2022년 04월 편)

9102 단어 Sphinxtech
평소 스핑크스용 확장고를 자주 만들지만, 이번 달에는 약간의 동력 상승이 있어 평소보다 많이 만들었다.
홍보와 함께 무엇을 할 수 있는지 간단히 소개해 드리겠습니다.

이마


주로'영입 후 할 수 있는 일'을 소개한다.
프로그램 라이브러리를 소개할 때 기재된 URL로 이동하면 README를 참조할 수 있으므로 설치 방법 등을 개별적으로 보십시오.

본편을 소개하다


sphinxcontrib-budoux


https://github.com/attakei-lab/sphinxcontrib-budoux
Google이 공개한 BudouX 를 이용하여 Sphinx 문서의 일본어 문장을 적당한 위치에 삽입하는 확장입니다.
이러한 reStructuredText 문서의 경우
index.rst
あなたに寄り添う最先端のテクノロジー
====================================
일반적으로 내보낼 때 다음 HTML을 내보냅니다.
before.html
<h1>あなたに寄り添う最先端のテクノロジー</h1>
sphinxcontrib-budoux를 유효하게 설정하면 이런 출력이 발생합니다.
after.html
<h1 style="word-break: keep-all; overflow-wrap: break-word;">あなたに<wbr/>寄り添う<wbr/>最先端の<wbr/>テクノロジー</h1>
BudouX가 문장으로 판단되는 곳에 탭<wbr>을 삽입하고 속성style을 추가하면 브라우저는 필요할 때 줄을 바꾸어 표시합니다.

sphinxcontrib-external-link


https://github.com/attakei-lab/sphinxcontrib-external-link
외부 링크로 판단되는 인용 요소를 중단 처리target="_blank"하고rel="noreferrer"의 확장입니다.
일반 Sphinx 문서는 같은 창/탭에서 모든 링크로 이동합니다.
이 확장을 사용하면 모든 URL에 지정된 내용이 다른 창/태그에 열립니다.
※ 속성을 무조건 추가하기 위해서는 길고 짧은 시간이 필요합니다.

sphinxcontrib-oembed


https://github.com/attakei-lab/sphinxcontrib-oembed
포함된 형식.. oembed:: URL만 있으면 HTML 생성 시 oEmbed API를 통해 얻은 iframe을 포함할 수 있습니다.
.. oembed:: https://twitter.com/attakei/status/1517152841550376961
위의reST원본에서 ↓의 충전을 간단하게 실현할 수 있다.
사이트 축소판 그림에 게재된 공급업체 일람 JSON를 이용했기 때문에 상당 종류의 URL을 표준으로 대응할 수 있다.

sphinxcontrib-mixed-builder


https://github.com/attakei-lab/sphinxcontrib-mixed-builder
HTML 출력 시 여러 빌더를 혼합할 수 있는 확장자입니다.
conf.py
mixed_builders = ["html", "revealjs"]
mixed_rules = [
    {
        "equal": "index",
        "builder": "html",
    },
    {
        "start": "slides/",
        "builder": "revaljs"
    },
]
예를 들어 상기 설정을 사용하여 실행make mixed하면 다음과 같은 규칙에 따라 파일을 생성한다.
  • index의 문서는 컴파일러에 일반 HTML
  • 을 생성합니다.
  • html로 시작하는 문서는 slides/ 구조기에서 Revel입니다.js 형식의 HTML 생성
  • 문서에 속하지 않는 문서revealjs에서 컴파일러에 일반 HTML 생성
  • "이곳에서만 미끄러지고 싶다"는 HTML을 섞으면 편리하다.

    외국 편


    googlefonts-markup


    https://github.com/attakei-lab/googlefonts-markup
    Pytohon에서 Google Fonts의 URL을 쉽게 처리할 수 있는 프로그램 라이브러리입니다.
    >>> from googlefonts_markup import Font
    >>> noto_sans_jp = Font(family_name="Noto Sans JP")
    >>> noto_sans_jp.css_url()
    'https://fonts.googleapis.com/css2?family=Noto+Sans+JP'
    >>> noto_sans_jp.css_tag()
    '<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP" rel="stylesheet">'
    
    html는 클래스를 제공하기 때문에 Google Fonts의 CSS를 관리할 때 가독성을 약간 높일 수 있습니다.
    conf.py
    # Sphinxでの利用例
    from googlefonts_markup import Font
    
    html_css_files = [
        Font(family_name="Noto Sans JP").css_url(),
    ]
    

    cookiecutter-sphinxcontrib


    https://github.com/attakei-lab/cookiecutter-sphinxcontrib
    위의 Sphinx 확장을 작성하는 동안 직접 사용한 쿠키cutter 템플릿을 정리한 것입니다.
    다음과 같은 내용이 첨부되어 있다.
  • Poetry
  • Pytest
  • Black
  • GitHub Actions
  • 좋은 웹페이지 즐겨찾기