커스텀 프로필 링크 컴포넌트의 포크를 설정하던 중, 서로 다른 사이트 링크를 위해 두 개가 필요했습니다. 하지만 현재는 두 사이트 모두에 사용자명이 설정된 사용자만 표시됩니다. 다른 복사본이 작동하지 않더라도 두 개가 모두 표시되도록 보장하려면 어떻게 해야 할까요?
솔직히 데이터 템플릿이 아닐 수도 있지만, 잠시 살펴본 결과 그게 아닐까 추측해 보았을 뿐입니다.
무엇을 하시는지 완전히 이해하지는 못했지만, 같은 Handlebars 템플릿에 두 번 작성하는 것이 아니라 한 번만 작성하면서 두 개의 필드를 사용하는 것이 원인일 수도 있습니다.
저도 같은 의심이 들었지만, 이를 우회하는 방법을 정확히 알지 못하겠습니다.
템플릿을 하나로 통일해서 사용할 수는 없나요? 두 개의 필드를 설정할 수 있을 것 같은데, 혹시 제가 의도를 잘못 이해하고 있는 건가요? 링크 필드 하나를 제대로 동작하게 만들 수 있었나요? 만약 성공했다면 정말 좋습니다 ![]()
하나의 템플릿은 사용자 카드용이고, 다른 하나는 사용자 프로필용이므로 불가능하다고 생각합니다.
다음 두 가지 조건 중 하나가 충족될 때 작동합니다:
- 두 개의 복사본, 두 개의 필드가 있고, 보고 있는 사용자의 두 이름이 모두 입력되어 있는 경우
- 하나의 복사본, 하나의 필드가 있고, 보고 있는 사용자의 이름이 입력되어 있는 경우
아, 알겠어요. 제가 오해했네요. 사용자 카드에 서로 다른 링크 두 개를 넣는 줄 알았어요. 이제 이해가 됩니다. 네, 템플릿이 두 개군요.
어떤 의미에서는 그렇습니다. Theme 컴포넌트의 각 복사본마다 링크 하나를 사용하고 있는데, 이것이 문제의 근본 원인일 것 같거든요. 물론 제 추측이 틀릴 수도 있지만요.
해당 코드 조각을 아무런 맥락 없이 Lola 봇에 입력했는데, 이렇게 답변을 받았습니다:
테마를 포크한 뒤, 포크한 버전과 원본을 모두 포함하는 것이 맞나요? 변수에 대한 모든 참조와 modify 클래스에 전달되는 id를 변경해야 합니다.
원본이 더 이상 Discourse에서 제대로 작동하지 않아 포크를 생성하고 작동할 때까지 수정했습니다. 현재 포크의 두 사본을 설치했는데, 서로 충돌하는 것 같습니다.
제가 말한 게 바로 그겁니다. 충돌하지 않도록 이름을 바꿔야 합니다.
두 개의 사본을 사용하는 것보다는 하나의 테마로 두 가지를 모두 처리하도록 하는 것이 더 나을 것입니다.
정확히 어떻게 해야 하나요? TC의 ID를 핸들바에 추가하는 방안을 생각해 봤는데, 어떻게 해야 할지 잘 모르겠습니다.
그렇게 하면 이 테마 컴포넌트의 원래 사용 사례가 어긋나는 것 아닌가요?
잘 모르겠지만, 이미 깨져 있는 거 아닌가요? ![]()
커스텀 필드를 사용해 링크를 추가하고, 두 개를 추가하려면 커스텀 필드로 여러 개의 링크를 포함하도록 설정할 수 있게 작성하는 건가요?
원본의 버그를 수정하기 위해 포크를 만들었으니, 제 포크는 고장 나지 않았기를 바랍니다.
그렇게 하면 작동할 수 있지만, 어떻게 해야 하는지 잘 모르겠습니다.
이 작업에 착수했습니다. 여기서 첫 번째 막막한 부분은 여러 ID를 처리하는 것입니다. foreach 루프(코드 상단에서 사용한 방식처럼)를 사용하여 처리할 것 같지만, Handlebars에서 이를 어떻게 구현해야 하는지 확신이 서지 않습니다.
Handlebars에서 어떻게 해야 할지 잘 모르겠어요.
좋은 방향으로 가고 있는 것 같습니다.
저는 항상 기억을 못 해서 "handlebars for loop"라고 검색해서 예제를 찾아봅니다.
약 1시간 동안 이 문제로 씨름해 보았지만, 결국 답을 찾지 못했습니다. 다음 코드입니다:
{{#each this.customProfileLink as |links|}}
<a href="{{link.[2]}}{{link.[0]}}" target="_blank">{{link.[1]}}</a>
<p>{{link}}--{{link.content}}</p>
{{/each}}
직감상은 동작할 것 같지만, #each에 대해 찾아본 자료들은 제각각이었고, 결국 이 코드는 작동하지 않았습니다. 혹시 이 부분에 대해 통찰을 주실 수 있는 분이 있을까요?
그리고 그건 제가 이중으로 실수한 것이었습니다.
항목에는 links를, 프로세서에는 link를 사용했거든요. 그리고 사용자 프로필은 확인하지 않고 사용자 카드만 확인했습니다(사용자 프로필은 왜인지 정상이었습니다)