디스코urs에 처음 온 사람으로서, 어떤 부분을 커스터마이징할 수 있는지, 그리고 어떻게 해야 하는지 이해하려고 노력하고 있습니다. 다양한 테마와 테마 컴포넌트가 사용 가능하다는 것을 알고 있으며, admin -> customize -> Themes -> [선택한 테마 클릭] -> edit CSS/HTML 경로로 들어가면 이론상 html, css, javascript를 편집할 수 있다는 것도 이해하고 있습니다.
"edit CSS/HTML"을 시도할 때 나타나는 대시보드를 어떻게 사용해야 하는지 파악하려고 하고 있습니다. 거기에는 </head> Header After Header <body> Footer Embedded CSS가 표시됩니다.
html을 실제로 편집하는 방법에 대한 예제가 포함된 가이드가 있을까요? 메타 포럼에 제안 사항들이 있다는 것은 알지만, 제 관점으로는 그 내용들이 포럼 전체의 다양한 주제에 걸쳐 흩어져 있는 것 같습니다.
제게 혼란을 주는 예시를 하나 들자면, 이 글에서는 열 순서를 변경할 수 있는지 묻고 있는데, 이는 상당히 기본적인 html 변경 사항입니다. 그러나 답변은 기본적으로 깊은 오버라이드(deep overrides)를 하지 않는 한 불가능하다는 것입니다.
그래서 저는 이 "edit CSS/HTML"을 통해 내 포럼을 커스터마이징할 수 있는 범위가 무엇인지 정리해 보려고 합니다.
좋은 정보를 주셔서 감사합니다. 오픈 스페이스에 HTML을 추가하는 것, 그리고 CSS를 사용하여 기존 HTML을 숨기는 것(예: 관련 div 클래스에 display: none을 적용하는 것. 이는 인스펙터로 해당 요소를 찾아 적용하면 되는 것으로 이해하고 있습니다)은 이해할 수 있습니다.
하지만 HTML을 오버라이드하여 컴포넌트를 이동하는 등의 작업은 어떻게 해야 할까요? 간단한 예시가 있을까요?
<script type="text/x-handlebars" data-template-name="components/navigation-bar">
{{#each navItems as |navItem|}}
{{navigation-item content=navItem filterMode=filterMode category=category}}
{{/each}}
<div style="background: red; padding: 10px; float: left;">I added this block in the navigation bar template</div>
{{custom-html name="extraNavItem" tagName="li"}}
{{!- this is done to avoid DIV in the UL, originally {{plugin-outlet name="extra-nav-item"}}
{{#each connectors as |c|}}
{{plugin-connector connector=c class=c.classNames tagName="li" args=(hash category=category filterMode=filterMode)}}
{{/each}}
</script>
아웃렛의 이름과 위치를 찾으려면, 위에서 링크한 플러그인이 가장 좋은 방법이라고 생각합니다.
수정하려는 페이지의 특정 부분에 해당하는 템플릿을 찾는 것은… 좀 더 까다롭습니다.
쉬운 방법을 잘 모르겠네요. 비슷한 플러그인이 있다면 좋겠습니다.
때로는 페이지 HTML을 살펴보고 CSS 클래스처럼 고유할 것 같은 코드를 찾아서 모든 템플릿 파일에서 검색합니다. 제 개인 컴퓨터에 Discourse 저장소를 클론해 두고 Sublime Text를 사용해 이 모든 파일에서 검색하지만, 더 나은 방법이 분명히 있을 거라고 생각합니다.
때로는 제가 커스터마이즈하고 싶은 페이지 위치를 수정하는 기존 테마 컴포넌트의 코드를 살펴보기도 합니다.
네, 어렵긴 합니다. 하지만 저는 전문가가 아니라고 생각하며, 이 작업을 수행하는 더 효율적인 방법이 더 있을 거라고 추측합니다!
네.
Wordpress나 phpBB에서 온 경우, 해당 디렉터리에서 템플릿 파일을 직접 편집하는 데 익숙하다면, Discourse는 다소 난해하게 느껴질 수 있습니다…