MEP29: 텍스트 라이트 마크업 #
상태 번호
논의
브랜치 및 풀 리퀘스트 #
현재는 없으며 개념 증명만 가능합니다.
초록 #
이 MEP는 텍스트 아티스트에 경량 마크업을 추가할 것을 제안합니다.
자세한 설명 #
text
방법이 크기/색상/가족/무게/등에 대한 인수를 허용 하기 때문에 텍스트 주석에서 다른 크기/색상/가족을 사용하는 것은 어렵습니다
. 전체 텍스트에 사용됩니다. 그러나 예를 들어 다른 색상을 원할 경우 다음과 같은 예가 제공되는 갤러리를 살펴봐야 합니다.
레인보우 텍스트
이 예제는 문자열 목록과 사용하기 번거로운 색상 목록을 사용합니다. 대안은 제한된 pango 유사 마크업 세트를 사용하고 이 마크업을 해석하는 것입니다.
몇 가지 마크업 예제:
Hello <b>world!</b>`
Hello <span color="blue">world!</span>
구현 #
개념 증명은 markup_example.py 에서 제공 되지만 현재는 가로 방향만 처리합니다.
개선 #
이 개념 증명은 정규식을 사용하여 텍스트를 구문 분석하지만 표준 라이브러리의 html.parser를 사용하는 것이 더 나을 수 있습니다.
텍스트 조각 위치 계산은 OffsetFrom 클래스의 이점을 얻을 수 있습니다. 예를 들어 주석과 함께 복잡한 좌표 사용 의 항목 5를 참조하십시오.
문제 #
한 가지 심각한 문제는 LaTeX와 HTML과 같은 태그가 모두 있는 텍스트를 처리하는 방법입니다. 예를 들어 다음을 고려하십시오.
$<b>Bold$</b>
권장 사항은 상호 배제하는 것입니다.
이전 버전과의 호환성 #
개념 증명일 뿐이므로 현재로서는 없음
대안 #
@anntzer가 제안한 대로 이것은 mathtext의 개선으로 구현될 수도 있습니다. 예를 들어:
r"$\text{Hello \textbf{world}}$"
r"$\text{Hello \textcolor{blue}{world}}$"
r"$\text{Hello \textsf{\small world}}$"