모듈 토크:끈

Module talk


교체

안녕하세요, 문제가 생겨서 도움을 주시면 감사하겠습니다.이 함수를 사용하여 문자열을 다음으로 바꾸려고 합니다.[[링크로 구문 분석을 시도하기 때문에 작동하지 않습니다.예:

  • 두 단어를 구분하여 변환하려고 합니다. - 두 개의 위키링크로:

[[{{subst:#invoke:String replace Foo-bar - ]] and [[}}]]

  • 보다시피, 이것은 작동하지 않습니다.HTML 코드로 대체[Wikilink를 생성하지 않으므로 옵션이 아닙니다.

그 출력물을 교체하는 것과 같이 "후처리"할 수 있는 것으로 알고 있습니다.[와 함께 [ 사용.{{Str rep}}하지만 그건 너무 못생겼어요 :) 그것을 피할 방법이 있나요?내가 뭔가를 놓쳤다고요?카이나마르크 (대화) 14:00, 2013년 12월 3일 (UTC) 회신 [답장]

당신의 문제는 미디어위키가 위키텍스트를 구문 분석할 때 대괄호와 대괄호를 고려하기 때문에 두 개의 잠재적인 링크(")로 본다는 것입니다.[[{{subst:#invoke:String replace Foo-bar - ]]그리고 "[[}}]]")는 하나의 파서 함수로서가 아니라 인수에 더 많은 괄호가 있는 괄호 안에 호출합니다.이것을 피할 수 있는 쉬운 방법은 없는 것 같습니다.Anomie 2013년 12월 3일 14:57, UTC 답변 [답장]
  • 여기서 궁금한 것은, 정확히 무엇을 성취하려는 것입니까?대체하지 않고 목표를 달성할 수 있는 방법이 있을 수 있습니다.-와 함께]] and [[기술 13(대화) 2013년 12월 3일 15:02(UTC) 회신 [회신]

저는 점심을 먹고, 조금 생각해 보고 해결책을 찾았습니다.

  • [{{filename:#filename:문자열 Foo-bar - ] 및 {{subst:사용자:카이나마르크/샌드박스}}}]

사용자:캐이나마르크/샌드박스에는 브래킷이 두 개만 포함되어 있습니다.[[헤헤.

기술 13, 확실히 있습니다.제가 필요한 것은 한 페이지 제목 안에 포함된 두 페이지의 위키링크를 만드는 것입니다.이러한 페이지는 다음과 같이 세미콜론과 공백으로 구분됩니다.

  • 위키페디아:Fusang/Central defusões/Im 3D; 에스테레오스코피아

이 예에서 페이지는 "Image 3D" 및 "Estreoscopia"입니다.코드는 프리로드 페이지에 있을 것이고 깨끗한 위키코드를 출력해야 합니다.subst:필요합니다.그래서 아래 코드는 제가 생각해 낸 것입니다.

  • [{{<클릭만]이벤트://클릭만]#이벤트:문자열 바꾸기 {{#제목 부분:{{PAGENAME}} 3}(; ) =] [[플레인=허위]]

괜찮은 것 같아요.제가 영어를 못해서 죄송합니다.카이나마르케스 (대화) 15:48, 2013년 12월 3일 (UTC) 응답 [응답]

아노미가 맞습니다. 모듈은 대체 가능합니다.어쨌든 위의 내 솔루션은 간단한 텍스트 "Foo-bar"가 내가 사용하고 싶은 표현으로 변경되면 작동을 멈춥니다.{{ #titleparts:{{PAGENAME}} }}그렇더라도, 노력하지 않는다면 효과가 있을 것입니다.subst:루아 모듈어느 쪽이든, 그것은 충분하지 않습니다.bugzilla:2777이 아니라면, 그것은 파이처럼 쉬울 것입니다.기술 13, 저는 PT 출신입니다.위키, 그런 건 없어요, 지원해 주셔서 감사합니다.나중에 다시 해보겠습니다.카이나마르케스 (대화) 17:52, 2013년 12월 3일 (UTC) 응답 [응답]

또 다른

{{#invoke:String len s={{#invoke:String replace source= <span style="padding-left: 0.125em;"><!-- 1em/8 : equivalent to a "fine space" -->!</span> pattern= %b<> }}}}→ 45
{{#invoke:String len s={{#invoke:String replace source= <span style="padding-left: 0.125em;">!</span> pattern= %b<> }}}}→ 45
{{#invoke:String len s={{#invoke:String replace source= <span style="padding-left:.125em;">!</span> pattern= %b<> }}}}→ 43

사용 시 동일pattern=<.->:

{{#invoke:String len s={{#invoke:String replace source= <span style="padding-left: 0.125em;"><!-- 1em/8 : equivalent to a "fine space" -->!</span> pattern= <.-> }}}}→ 45
{{#invoke:String len s={{#invoke:String replace source= {{#tag:nowiki <span style="padding-left: 0.125em;"><!-- 1em/8 : equivalent to a "fine space" -->!</span>}} pattern= %b<> }}}}→ 34

무엇을 해야 하나?저는 "1"의 결과를 얻으려고 노력하고 있습니다. -- 제롬 포츠 (대화) 19:00, 2014년 5월 28일 (UTC) 회신 [회신]

문자열 모듈의 기본값은 다음과 같습니다. plain=true즉, 검색 패턴이 일반 텍스트이며 정규식이 아닙니다.수정할 내용, 추가 plain=false상기의Johnuniq (대화) 02:38, 2014년 5월 29일 (UTC) 회신 [회신]
이런! 감사합니다. --Jerome Potts (talk) 05:05, 2014년 5월 29일 (UTC) 회신 [답장]

매개 변수 이름을 지정할 때와 지정하지 않을 때 "바꾸기"가 다르게 작동합니다.

템플릿:지정한 경우 AFC 주석/샌드박스source=또는pattern=템플릿에 표시된 결과:AfC 주석/테스트 사례는 이러한 매개 변수의 이름을 지정하든 이름을 지정하지 않든 상관없이 동일한 동작을 수행해야 한다는 문서에도 불구하고 다르게 작동합니다.왜 그럴까요? wbm1058 (talk) 2021년 2월 4일 (UTC) 17:14, 회신 [답장]

@Wbm1058:템플릿에서 명명된 매개 변수를 사용할 경우 매개 변수 값의 시작과 끝에서 빈 공백이 잘라집니다.이름이 지정된 매개변수는 시작 또는 끝에 새 줄을 "볼" 수 없습니다. source=매개 변수템플릿에서 작동하는 방법은 다음과 같습니다.AfC 주석 및 템플릿:AfC 코멘트/샌드박스({tl 문단 구분}을 보여드렸으므로 표시되는 위치를 확인할 수 있습니다):

위치 매개변수:

{{#선택사항:문자열 교체 + {{tl 문단 깨짐}} false}

결과: {{단락 구분}}

명명된 매개 변수:

{{#선택사항:문자열 바꾸기 source= pattern= + replace= twtl 문단 구분} = plain= false}

결과:

도움이 되길 바랍니다. --RexxS (대화) 17:52, 2021년 2월 4일 (UTC) 회신 [회신]

하위 문자열에서 찾는 기능?

저는 해결해야 할 복잡한 문제가 좀 있습니다.

이 코드를 템플릿에 구현하려는 첫 시도:

{{#ifexpr : {{#invoke : string find {{{SubjectPAGENAME}}} {{Search string >}} <string found > <string not found >>}}}

SubjectPagename이 템플릿을 포함하지 않기 때문에 템플릿 루프가 발생했습니다.하지만 저는 재귀적인 결론이 SUBJECTPAGENAME의 끝에 올 것이고 제가 찾고 있는 문자열이 시작에 올 것이라고 예상합니다.두 번째 시도는 템플릿 루프가 트리거되지 않도록 처음 500자만 검색하는 것입니다.

{{#ifexpr:{#filename:string find {{#filename:string sub {{}:{{SubjectPAGENAME}}} 1,500} <검색 문자열>} < 문자열 발견> < 문자열을 찾을 수 없음>}}}

이 작업은 SUBJECTPAGENAME이 실제 제목 페이지 이름으로 대체된 경우에 작동하지만 {{#invoke:string sub:}을(를) 대체하려고 하면 실패하고 다음 오류가 발생합니다.

문자열 모듈 오류: 문자열 하위 집합 인덱스가 범위를 벗어남

인덱스(500)가 원시 코드를 검색하려고 하므로 범위를 벗어납니다.{{:{{SUBJECTPAGENAME}}}}페이지 길이가 >500자이고 템플릿 루프 호출이 500번째 문자 뒤에 위치하기 때문에 제외된 페이지가 아닙니다.

{{#sub}: 문자열 하위 {{}:{{SubjectPagename}}}1,500}

단독으로 서 있을 때는 잘 작동합니다.인덱스 범위를 벗어난 오류는 이 오류가 내부에 중첩되어 있을 때만 발생합니다.{{#invoke:string find그래서 저는 이 구문이 너무 복잡하다고 생각합니다.

있나요?{{#invoke:string find-in-sub find와 sub의 기능을 결합하여 이것들을 중첩하지 않아도 되는 기능?아니면 누가 써주실 수 있나요?감사해요.wbm1058 (talk) 2022년 2월 18일 15:02 (UTC) 회신 [답장]

find에 시작 매개 변수가 있습니다.검색을 시작할 원본 문자열 내의 인덱스이며 기본값은 1입니다.
아마도 내게 필요한 것은 정지 매개변수일 것입니다.검색을 중지할 소스 문자열 내의 인덱스는 기본적으로 문자열 끝 - wbm1058 (talk) 15:17, 2022년 2월 18일 (UTC)응답[reply]
(충돌 편집)이것은 XY 문제입니다.모듈을 사용해 보십시오.페이지의 원시 위키 텍스트를 가져오는 페이지 ({{#invoke:page getContent {{SUBJECTPAGENAME}}}as=raw}}), 그리고 나서 당신이 하려고 하는 어떤 끈 마술도 합니다.그렇긴 하지만, 만약 내가 당신이 겪고 있는 직접적인 문제를 추측해야 한다면, 당신은 대체할 필요가 있습니다.{{SUBPAGENAME}} 또한, 또는 문자열 호출을 대체하려고 할 때 확장되지 않습니다.Pppery it has begun...* 15:18, 2022년 2월 18일 (UTC) 회신 [회신]
고마워요, 퍼피.저는 원시 위키 텍스트를 얻을 수 있는 기능을 몰랐습니다.이를 통해 효과적인 솔루션에 더욱 가까워졌습니다.원시 위키 텍스트를 얻는 것이 템플릿 루프를 피하는 더 깨끗한 방법이라고 생각합니다.이제 제가 대체할 때 오류가 없습니다.하지만, 문제는 제가 대체할 필요가 있다는 것입니다. 그리고 제 마법은 오직 트랜스클루젼으로만 작동할 때만 실행 가능한 해결책입니다.저의 구체적인 문제는 토크:데이비드 에이어스.범주를 채우는 중입니다.대화 페이지가 리디렉션된 기사입니다.그러나 {{substit:R from move/except/sandbox}}을(를) 입력하면 범주가 채워집니다.내 코드가 구현하려는 새 범주인 토크 페이지 리디렉션과 토론하기 위해 리디렉션합니다.저는 그 범주가 단순한 대체가 아닌 트랜스클루전으로 채워져야 합니다.저는 위에서 제안한 해결책이 그렇게 할 수 있다고 생각합니다.wbm1058 (talk) 2022년 2월 18일 16:06 (UTC) 회신 [답장]
특수 기능:Diff/1072625351 문제를 해결하시겠습니까?Pppery it has begun...* 2022년 2월 18일 16:57 (UTC) 회신 [회신]
정말 그렇습니다!처음에 검색해봤는데요#invoke:RfD하지만 결론 때문에 찾지 못했습니다!그리고.{{#invoke:page getContent {{SUBJECTPAGENAME}} as=raw}}제가 시도했던 막다른 길보다는 완벽한 해결책이었습니다.저는 지난 하루 동안 이 일을 반복해서 해왔고, 마침내 해결책을 얻게 되어 매우 기쁩니다.감사합니다! wbm1058 (talk) 2022년 2월 18일 17:55 (UTC) 회신 [답장]

추출번호

문자열에서 숫자를 추출하고 단위를 무시하려고 합니다.경우에 따라 효과가 있는 {{first word}}를 사용해 왔습니다.

  • {{첫마디 1=두께 45m}}} -> 45
  • {{첫마디 1=어플린 18.6nmi abbr=on}}} -> 18.6nmi

두 번째 경우에는 작동하지 않습니다.공간 대신 nbsp가 사용되고 있기 때문인 것 같습니다.둘 다 사용할 수 있는 템플릿이 있습니까?마틴 (MSGJ · talk) 2022년 4월 11일 08:20 (UTC) 회신 [답장]

특수 기능을 사용할 수 있습니다.템플릿을 확장하여 출력을 변환합니다.18.6&nbsp;nmi (34.4&nbsp;km; 21.4&nbsp;mi)위의 두 번째 경우에 대하여이것의 목적은 무엇입니까?변환용이고 매개 변수를 제어할 수 있는 경우 abbr= 값을 사용하면 쉽게 선택할 수 있습니다.위의 두 번째 경우에, 그것은 다음과 같습니다.18.6 (34.4; 21.4)Johnuniq (대화) 11:01, 2022년 4월 11일 (UTC) 응답 [응답]
정보 상자 필드에서 Wikidata로 데이터를 가져오기 위한 것입니다.각 기사마다 convert를 따로 사용하기 때문에 파라미터를 제어할 수 없습니다.마틴 (MSGJ · talk) 19:36, 2022년 4월 11일 (UTC) 회신 [답장]

템플릿:스트렙 패턴 일치 불규칙성

이 모듈에 관심이 있는 편집자는 다음 토론에 관심이 있을 수 있습니다.템플릿 토크:Strrep#패턴 일치가 불규칙합니다.당신의 피드백을 환영합니다.Mathglot (talk) 2022년 10월 8일 08:14 (UTC) Reply [Reply]