SublimeText 마크 다운 확장 로마 숫자 강조 표시 추가


2

질문 에서는 둘 이상의 마크 다운 목록 문장 부호 항목을 강조 표시하는 방법에 대해 문의했습니다. Pandoc의 확장 프로그램이 지원하기 때문에 강조 표시를 로마 숫자로 확장하고 싶습니다. 마크 독 소스에서 PDF를 만드는 데 사용합니다.

Markdown Extended syntax definition,에 line 1180, 나는 다음은 삽입 한 regex:

^\s{0,4}([0-9]+|[ivxlcdm]+|[IVXLCDM]+)\.(?=\s\w)

이제 다음과 같이 보입니다 :

list-paragraph:
- match: \G\s+(?=\S)
    push:
        - meta_scope: meta.paragraph.list.markdown
        - match: ^\s*$
            pop: true
        - match: '^\s{0,4}([*+-])(?=\s)'
            scope: punctuation.definition.list_item.markdown
        - match: '^\s{0,4}([0-9]+|[ivxlcdm]+|[IVXLCDM]+)\.(?=\s\w)'
            captures:
                1: punctuation.definition.list_item.markdown punctuation.definition.list_item.number.markdown
                2: punctuation.definition.list_item.markdown
        - include: inline

로마 숫자의 유효성을 고려하지는 않지만 어쨌든 올바르게 입력 할 것이므로 다른 로마 숫자도 강조 표시하지 않습니다. 또한 마크 다운 목록이 유효한 숫자 (일반적으로 i., Pandoc에서 자동으로 계산 된 번호 매기기로 PDF를 작성할 때 PDF를 작성할 때 i.10 번을 입력 할 수 있으며 PDF에서 1부터 10까지의 로마 숫자 임)로 시작하면 .

온라인 정규식 테스터 및 디버거를 사용 하여이 정규 표현식을 확인했습니다 . SublimeText 웹 사이트mg 에서 다음을 읽었으므로 내가 사용한 모드는입니다 .

정규식은 한 번에 한 줄의 텍스트에 대해서만 실행됩니다.

g일치하는 것을 찾은 후 일치를 진행시킵니다. m일치 ^는 줄의 시작과 줄 $의 끝으로 간주합니다.

이것이 SublimeText가 내부적으로 수행하는 것으로 이해합니다.

내 테스트 텍스트는 다음과 같습니다.

## Normal Equation

When the number of features for an $x^{(i)}$ of the training data is not too high, maybe lower than $9000$, an alternative way to [gradient descent](#gradient-descent-algorithm) for solving the optimization problem of the [cost function](#cost-function), using the normal equation, is feasible.

The vector $\theta$, which contains the coefficients for the hypothesis function can be optimized in one step using the following formula:

$$\theta = (X^T X)^{-1} X^T y$$

Where $X$ is a matrix, is constructed as follows:


+as
+ as
-as
-asa
* asas
* asas

asas

1. 
2. 1212
3. 1212

qqq

I. asas
II. asa
III. asa

qqq

i. sa
ii. 1212
iii. asas

asdasd *asasas* 1. sadqwqe. *This is fat text!* **double** ewwrew ass a as as asa aas  asasasas  1. ewr34 43543

정규식 테스트는 성공적으로 완료되었으며 원하는대로 정확하게 강조 표시됩니다. 그러나 Markdown Extended의 구문 정의에 붙여 넣으면 로마 숫자가 흰색으로 유지되고 강조 표시되지 않습니다.

스크린 샷 예 :

로마 숫자를 강조 표시하지 않는 숭고한 텍스트의 스크린 샷

그래서 정규식에 어떤 문제가 있는지 모르겠습니다. 로마 숫자 (정확하고 정확한 로마 숫자는 아님)도 포함 시키려면 어떻게 변경해야합니까?

추가 정보

  • SublimeText 버전 : 3103
  • 운영체제 : Xubuntu 14.04

답변:


2

정규 표현식 자체는 제대로 작동하지만 번호가 매겨진 목록에서는 트리거되지 않습니다. 또한 정규식을에 맞게 조정해야 693합니다 '^[ ]{0,3}([0-9]+|[ivxlcdm]+|[IVXLCDM]+)(\.)(?=\s)'. 이 줄에서 list-paragraph컨텍스트가 푸시됩니다. 그러나이 또한 강조 표시됩니다 (이미 강조 표시됨).

1. ...
ii. ...

이것을 피하려면 컨텍스트를 추가하고 list-paragraph-roman로마 숫자로 푸시하십시오.


와, 고마워, 바로 일 했어 이 답변을 통해이 yaml 파일이 실제로 어떻게 작동하는지 또는 Sublime Text에서 어떻게 사용되는지에 대해 더 많이 배웁니다. 설명서를 이해하고 명확하지 않은 것으로 보았습니다.
Zelphir Kaltstahl

@Zelphir이 문서 는 잘 작성되어 있고 매우 유용 하다고 생각 합니다.
r-stein

어쩌면 당신이 문제에 처했을 때, 그것이 내가 문제가 된 것입니다. 예를 들어 : 어떤 스택이 푸시됩니까? Sublime Text는 언제 팝업 요소입니까? 내가 어딘가에 팝을 쓸 때만? 내적 또는 익명의 맥락이란 무엇입니까? 어쩌면 이것들은 구문 분석을 많이하는 사람들에게 잘 알려진 용어 일 수도 있지만, 저에게는 설명이 약간
부족합니다 :)

1
내가 이해하는 한 스택은 컨텍스트로 구성되며 최상위 (마지막 푸시) 컨텍스트 만 코드와 일치합니다. 그러나 다른 요소는 meta_scopes를 추가하여 더 나은 범위를 지정할 수 있습니다. 컨텍스트는 팝을 쓸 때만 나타납니다. 따라서 항상 푸시 내부에서 컨텍스트를 표시하기 위해 항상 match 문을 직접 작성하는 것이 좋습니다. 인라인 익명 컨텍스트는 새로운 컨텍스트 이름을 지정하는 대신 푸시 뒤에 일치 항목을 직접 작성하는 것입니다.
r-stein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.