Discourse Bars 🍻 🍸 (μ‚¬μ΄λ“œλ°” ν”„λ ˆμž„μ›Œν¬)

:eyeglasses: κ°œμš”

μ»΄ν¬λ„ŒνŠΈ[1]λ₯Ό 상단 및 μ‚¬μ΄λ“œλ°” μœ„μ— λ ˆμ΄μ•„μ›ƒν•  수 μžˆλ„λ‘ ν•˜λŠ” ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈμž…λ‹ˆλ‹€.

  • Route(경둜)와 Position(μœ„μΉ˜)λ³„λ‘œ β€œμœ„μ ―β€ 집합을 λͺ…ν™•νžˆ μ§€μ •ν•©λ‹ˆλ‹€.
  • discovery[2], topic(ν† ν”½), tag(νƒœκ·Έ)[3], category(μΉ΄ν…Œκ³ λ¦¬)[3:1], categories(μΉ΄ν…Œκ³ λ¦¬ λͺ©λ‘)[3:2] λ˜λŠ” tags-intersection(νƒœκ·Έ ꡐ차)[4] 각각에 λŒ€ν•œ 섀정을 μ§€μ›ν•©λ‹ˆλ‹€.
  • "λ°”(Bars)"λŠ” top(상단), left(쒌츑), right(우츑) λ˜λŠ” λŒ€μ²΄ 우츑 μœ„μΉ˜ 쀑 ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 각 λ°”λŠ” μ ‘κΈ°(collapsed) λ˜λŠ” λ‹«κΈ°(dismissed)κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€ (닫은 μƒνƒœλ₯Ό μ΄ˆκΈ°ν™”ν•˜λ €λ©΄ λΈŒλΌμš°μ €λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•΄μ•Ό ν•©λ‹ˆλ‹€). 기본적으둜 μ΅œμ†Œν™”(minimised) μƒνƒœλ‘œ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 곡식 μ‚¬μ΄λ“œλ°”λ₯Ό μ²˜λ¦¬ν•˜μ§€λ§Œ, Bars의 쒌츑 μ‚¬μ΄λ“œλ°”λ₯Ό μ‚¬μš©ν•  κ³„νšμ΄λΌλ©΄ 곡식 μ‚¬μ΄λ“œλ°”μ˜ λ“œλ‘­λ‹€μš΄(Dropdown) λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€.
  • 일뢀 큰 글씨λ₯Ό ν‘œμ‹œν•˜λŠ” κΈ°μ‘΄ μ˜ˆμ‹œ 섀정이 ν¬ν•¨λ˜μ–΄ 있으며, μ΄λŠ” 데λͺ¨ λͺ©μ μ΄κΈ°λ„ ν•˜κ³  μ˜ˆμ‹œ 섀정을 확인할 수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•¨μ΄κΈ°λ„ ν•©λ‹ˆλ‹€. 이 섀정듀을 μ‚­μ œν•˜κ³  μžμ‹ μ˜ μ»΄ν¬λ„ŒνŠΈ μ΄λ¦„μœΌλ‘œ κ΅μ²΄ν•˜μ„Έμš”.
  • ν•˜λ‚˜μ˜ μ»΄ν¬λ„ŒνŠΈ, bars-custom-html(μ˜ˆμ‹œ μ„€μ • μ°Έκ³ )이 κΈ°λ³Έ μ œκ³΅λ˜μ§€λ§Œ, κΈ°μ‘΄ ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈ 및 ν”ŒλŸ¬κ·ΈμΈμ˜ λ§Žμ€ μ»΄ν¬λ„ŒνŠΈμ™€ ν˜Έν™˜λ©λ‹ˆλ‹€.
  • λͺ¨λ°”일 지원은 아직 κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

:link: λΉ λ₯Έ 링크

:octopus: μ½”λ“œ κ°€μ Έμ˜€κΈ° https://github.com/merefield/discourse-tc-bars
:eyes: μ½”λ“œ 보기 GitHub - merefield/discourse-tc-bars: A Theme Component that allows you to lay out Components ("widgets") on top and side bars Β· GitHub
:question: μ„€μΉ˜ κ°€μ΄λ“œ Installing a theme or theme component

이 ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈλ₯Ό 즐기고 κ³„μ‹ κ°€μš”? GitHubμ—μ„œ :star: ν•΄μ£Όμ„Έμš”! :pray:

μ˜ˆμ‹œ:

졜초 λ‘œλ“œ μ‹œ:

:warning: 이 TC에 λŒ€ν•΄ μ•Œμ•„λ‘˜ λͺ‡ κ°€μ§€ μ€‘μš”ν•œ 사항!

  • 이 ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈλŠ” ν…Œλ§ˆ κ°œλ°œμ— λŒ€ν•œ 기술적 이해가 μžˆλŠ” 개발자 및 κ΄€λ¦¬μžλ₯Ό μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. Barsλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μ΄λ“œλ°”λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데 도움이 ν•„μš”ν•˜κ³  기술적 μ—­λŸ‰μ΄ μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€λ©΄, μ €λ‚˜ Marketplace μ±„λ„μ˜ 개발자λ₯Ό κ³ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 이 ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈλŠ” μ‚¬μ΄λ“œλ°”λ₯Ό μ§€μ›ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬λ₯Ό μ œκ³΅ν•˜λŠ” 것이 λͺ©μ μž…λ‹ˆλ‹€. μ΅œμ’…μ μΈ μ‹œκ°μ  마무리(polish)λŠ” μΆ”κ°€ CSSλ₯Ό μ‚¬μš©ν•˜μ—¬ ν…Œλ§ˆμ—μ„œ 직접 μΆ”κ°€ν•΄μ•Ό ν•˜λ©°, 이 μ»΄ν¬λ„ŒνŠΈλŠ” 이λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ§Žμ€ μž‘μ—…μ„ λŒ€μ‹  μ²˜λ¦¬ν•˜μ—¬ κ³ λ €ν•  사항을 쀄여주고, μ΄μ „μ—λŠ” λΆˆκ°€λŠ₯ν–ˆλ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλŠ” λŠ₯λ ₯을 λΆ€μ—¬ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€ … :sweat_smile:

μ»΄ν¬λ„ŒνŠΈ κ³ λ € 사항

  • μ»΄ν¬λ„ŒνŠΈ 이름을 μ§€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ»΄ν¬λ„ŒνŠΈ 이름은 μ‹€μ œλ‘œ ν…Œλ§ˆ, tc λ˜λŠ” ν”ŒλŸ¬κ·ΈμΈμ˜ component 디렉터리 λ‚΄ 파일λͺ…μ—μ„œ 접미사λ₯Ό μ œμ™Έν•œ 것과 λ™μΌν•©λ‹ˆλ‹€.

    • μ»΄ν¬λ„ŒνŠΈ 이름은 ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈμ˜ 이름(μ—¬λŸ¬ 개의 Ember Glimmer μ»΄ν¬λ„ŒνŠΈλ₯Ό 포함할 수 있음)이 μ•„λ‹ˆλΌ, μ‹€μ œ Ember μ»΄ν¬λ„ŒνŠΈ 파일의 μ΄λ¦„μž…λ‹ˆλ‹€ :sweat_smile: . 예λ₯Ό λ“€μ–΄:

    λ”°λΌμ„œ layouts-tag-list

  • κΈ°μ‘΄ ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈλ‚˜ ν”ŒλŸ¬κ·ΈμΈμ—μ„œ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. κΈ°μ‘΄ μ»΄ν¬λ„ŒνŠΈκ°€ μž‘λ™ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ˜ˆμ‹œ:

  • μ»΄ν¬λ„ŒνŠΈλ₯Ό κ΅¬μΆ•ν•˜λ €λ©΄ μƒλ‹Ήν•œ μ „λ¬Έ 지식이 ν•„μš”ν•©λ‹ˆλ‹€.

    • ν•˜μ§€λ§Œ λ‹€λ₯Έ ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈμ—μ„œ μžμ‹ μ˜ μ»΄ν¬λ„ŒνŠΈλ₯Ό ꡬ좕해 보고, 두 μ»΄ν¬λ„ŒνŠΈκ°€ λ™μΌν•œ ν…Œλ§ˆμ—μ„œ λͺ¨λ‘ ν™œμ„±ν™”λ˜μ–΄ μžˆλŠ”μ§€ 확인해 λ³΄μ„Έμš”.
  • μ»΄ν¬λ„ŒνŠΈλŠ” 자체 데이터λ₯Ό μ†Œμ‹±ν•΄μ•Ό ν•©λ‹ˆλ‹€ (μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ λ ˆμ΄μ•„μ›ƒμ„ κ΅¬μ„±ν•˜λŠ” 데 ν•„μš”ν•œ νŠΉμ • ν”ŒλŸ¬κ·ΈμΈ 아웃렛 λ•Œλ¬Έμ— ν”ŒλŸ¬κ·ΈμΈ 아웃렛을 ν†΅ν•œ λͺ¨λΈ νŒ¨μŠ€μ“°λ£¨λ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€).

    • κΈ°λ³Έμ μœΌλ‘œλŠ” Discourse μ½”μ–΄ λ˜λŠ” κΈ°μ‘΄ ν”ŒλŸ¬κ·ΈμΈμ΄ μ œκ³΅ν•˜λŠ” κΈ°μ‘΄ JSON API λ°μ΄ν„°λ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ APIμ—μ„œ μ†Œμ‹±ν•  수 μ—†λŠ” 맞좀 데이터가 ν•„μš”ν•˜λ©΄ μ €λ‚˜ #marketplace의 λˆ„κ΅°κ°€λ₯Ό κ³ μš©ν•˜μ—¬ 도움을 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μ΄λ“œλ°” 및 μ»΄ν¬λ„ŒνŠΈ 경계λ₯Ό μ·¨ν–₯에 맞게 μŠ€νƒ€μΌλ§ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (λ‹€μ‹œ ν•œλ²ˆ λ§ν•˜μ§€λ§Œ, 도움이 ν•„μš”ν•˜λ©΄ 개발자 κ³ μš©μ„ κ³ λ €ν•΄ λ³΄μ„Έμš”).

    • λ°•μŠ€ μ„€λ„μš°μ™€ ν…Œλ‘λ¦¬μ˜ μ „λž΅μ μΈ μ‚¬μš©μ€ λ””μžμΈμ„ 훨씬 λ©‹μ§€κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€ - 예술적으둜 μ ‘κ·Όν•˜μ„Έμš”!

μ™œ λ§Œλ“€μ—ˆλŠ”κ°€

  • Discourse μ½”μ–΄κ°€ Ember 5둜 μ—…λ°μ΄νŠΈλ˜λ©΄μ„œ, Pavilion의 ν”ŒλŸ¬κ·ΈμΈ Layoutsκ°€ Discourse λ ˆμ΄μ•„μ›ƒμ„ μ‘°μž‘ν•˜λŠ” 데 μ‚¬μš©ν•˜λ˜ 트릭이 더 이상 μž‘λ™ν•˜μ§€ μ•Šκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이제 비ꡐ적 μ‰¬μš΄ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 ν† ν”½ κ²½λ‘œμ—μ„œ μ‚¬μ΄λ“œλ°”λ₯Ό ν‘œμ‹œν•˜λŠ” μ‰¬μš΄ 방법이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

  • λ˜ν•œ, EmberλŠ” μž‘μ—…ν•˜κΈ° 훨씬 λ‚˜μ€ Glimmer μ»΄ν¬λ„ŒνŠΈλ₯Ό λ„μž…ν–ˆμŠ΅λ‹ˆλ‹€. (LayoutsλŠ” Glimmer μ»΄ν¬λ„ŒνŠΈλ₯Ό λŒ€μ²΄ν•˜κΈ° μœ„ν•΄ λΉ„μΆ”μ²œ(deprecated)된 Widgets APIλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€).

  • λ§ˆμ§€λ§‰μœΌλ‘œ, Discourse μ½”μ–΄ νŒ€μ΄ ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈ 섀정을 μœ„ν•œ μƒˆλ‘œμš΄ JSON νŽΈμ§‘κΈ°λ₯Ό μ œκ³΅ν•˜μ—¬ 더 λ³΅μž‘ν•œ μ„€μ • 배포가 κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€ :+1: :rocket:

  • Layouts ν”ŒλŸ¬κ·ΈμΈμ„ μˆ˜μ •ν•˜λŠ” 것(Layouts μ‹œλŒ€μ—λŠ” TCκ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€)λ³΄λ‹€λŠ”, λŒ€λΆ€λΆ„μ˜ ν•„μš”ν•œ μž‘μ—…μ„ ν”„λ‘ νŠΈμ—”λ“œμ—μ„œλ§Œ 달성할 수 μžˆμœΌλ―€λ‘œ ν…Œλ§ˆ μ»΄ν¬λ„ŒνŠΈλ‘œ μž¬κ΅¬μΆ•ν•˜λŠ” 것이 ν•©λ¦¬μ μ˜€μŠ΅λ‹ˆλ‹€.

  • β€œBars” λ“±μž₯ :beers: :cocktail: Cheers!!

μ•Œλ €μ§„ 문제

  • 상단 λ°”κ°€ κ³ μ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ (ν•΄κ²°ν•  수 μ—†μœΌλ©΄ ν•΄λ‹Ή 섀정을 μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€).

ν¬λ ˆλ”§

  • μˆ˜λ…„κ°„ μœ μš©ν•˜κ²Œ μ‚¬μš©λ˜μ—ˆμœΌλ‚˜ ν˜„μž¬λŠ” κΉ¨μ§„ Layouts ν”ŒλŸ¬κ·ΈμΈμ˜ 정신적 ν›„μ†μž‘μž…λ‹ˆλ‹€. @angusκ°€ μ œμž‘ν–ˆμŠ΅λ‹ˆλ‹€ (Cheers!).
  • Right Side Blocks의 params μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€ (κ°μ‚¬ν•©λ‹ˆλ‹€ @pmusaraj!).

  1. β€˜discovery’(경둜)λΌλŠ” μš©μ–΄λŠ” νŠΉμ • 토픽에 μ§„μž…ν•˜κΈ° 전에 이용 κ°€λŠ₯ν•œ 토픽을 탐색할 수 μžˆλŠ” μ£Όμš” ν† ν”½ λͺ©λ‘ νŽ˜μ΄μ§€(예: β€œμ΅œμ‹ β€, β€œμƒˆλ‘œμ›€β€)λ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€. β†©οΈŽ

  2. κΈ°μˆ μ μœΌλ‘œλŠ” β€œdiscovery” κ²½λ‘œμ΄μ§€λ§Œ, μ„ νƒμ μœΌλ‘œ λ‹€λ₯΄κ²Œ μ·¨κΈ‰ν•  수 μžˆλ„λ‘ κ΅¬λΆ„λœ μ΄λ¦„μœΌλ‘œ λΆ„λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. β†©οΈŽ

  3. μ—¬κΈ°μ—μ„œ 더 μžμ„Έν•œ λ‚΄μš©μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  Bars μ„€μΉ˜μžκ°€ μ‚¬μš©μž μ •μ˜ ν™ˆ νŽ˜μ΄μ§€λ₯Ό μ›ν•˜μ§€λŠ” μ•ŠμœΌλ―€λ‘œ(선택 μ‚¬ν•­μœΌλ‘œ μœ μ§€ν•˜κΈ° μœ„ν•΄), BarsλŠ” about.json에 ν•„μš”ν•œ μˆ˜μ •μžλ₯Ό μΆ”κ°€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ ν™œμ„±ν™”ν•˜λ €λ©΄ μƒμœ„ ν…Œλ§ˆ λ˜λŠ” λ‹€λ₯Έ TCμ—μ„œ 이 μˆ˜μ •μžλ₯Ό 직접 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. β†©οΈŽ β†©οΈŽ β†©οΈŽ

  4. Tags Intersection ν”ŒλŸ¬κ·ΈμΈμ„ μ°Έμ‘°ν•˜μ„Έμš”. β†©οΈŽ

48개의 μ’‹μ•„μš”

와, 이건 정말 λ©‹μ§€λ„€μš”! μž˜ν•˜μ…¨μ–΄μš”, λ‘œλ²„νŠΈ. :rocket: 이걸 λ§Œλ“€μ–΄μ„œ κ³΅κ°œν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. :slight_smile:

ν¬ν¬ν–ˆμŠ΅λ‹ˆλ‹€!

11개의 μ’‹μ•„μš”

μ»€μŠ€ν…€ μœ„μ ―μ„ μΆ”κ°€ν•˜λŠ” 법을 λ°°μš°λŠ” λ‹¨κ³„μ˜ μ΄ˆλ³΄μ΄μ§€λ§Œ: λͺ¨λ°”일 λ·°μ—μ„œ μŠ€ν¬λ‘€λ˜μ§€ μ•ŠλŠ” 푸터에 μœ„μ ―μ„ μΆ”κ°€ν•  수 μžˆλŠ” μ˜΅μ…˜μ΄ 있으면 μ’‹κ² μŠ΅λ‹ˆλ‹€.
이 μ»΄ν¬λ„ŒνŠΈμ˜ ν–₯ν›„ λ²„μ „μ—μ„œ 이것이 κ°€λŠ₯ν• κΉŒμš”?

4개의 μ’‹μ•„μš”

ν˜„μž¬ λ‹¨κ³„μ—μ„œ μΆ”κ°€ "λ°”"λ₯Ό μΆ”κ°€ν•  κ³„νšμ€ μ—†μ§€λ§Œ, 상황이 μ•ˆμ •λ˜κ³  TCκ°€ λͺ…ν™•ν•˜κ²Œ μ•ˆμ •ν™”λ˜λ©΄ …

… PRμ΄λ‚˜ μŠ€ν°λ„ 항상 ν™˜μ˜ν•©λ‹ˆλ‹€ :+1:

6개의 μ’‹μ•„μš”

정말 λ©‹μ§€λ„€μš”. κ°μ‚¬ν•©λ‹ˆλ‹€! μ‚¬μ΄λ“œλ°” 쀑 ν•˜λ‚˜μ— νƒœκ·Έ λͺ©λ‘ μœ„μ ―μ„ 포함할 λ•Œ 섀정이 μ–΄λ–»κ²Œ λ³΄μ΄λŠ”μ§€ μ˜ˆμ‹œλ₯Ό μ œκ³΅ν•΄ μ£Όμ‹€ 수 μžˆλ‚˜μš”?

예λ₯Ό λ“€μ–΄, μ„€λͺ…μ„œμ— λ”°λ₯΄λ©΄ μ΄λ ‡κ²Œ ν•˜λ©΄ μž‘λ™ν•  것 같은데…

ν•˜μ§€λ§Œ μ™Όμͺ½ μ‚¬μ΄λ“œλ°”μ—λŠ” μ—¬μ „νžˆ λŒ€λ¬Έμž a만 ν‘œμ‹œλ˜κ³  μžˆμŠ΅λ‹ˆλ‹€β€¦

3개의 μ’‹μ•„μš”

두 κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€:

첫째, StarZen의 μœ μ‚¬ν•œ μ„€μ •μž…λ‹ˆλ‹€:

μ»΄ν¬λ„ŒνŠΈ 이름은 μ‹€μ œλ‘œ μ»΄ν¬λ„ŒνŠΈ 파일 이름과 λ™μΌν•©λ‹ˆλ‹€(본문에 μΆ”κ°€ν•˜κ² μŠ΅λ‹ˆλ‹€).

https://starzen.space

λ‘˜μ§Έ, 정말 어리석은 μΌμ΄μ§€λ§Œ, μ €μž₯ λ²„νŠΌμ„ λˆ„λ₯Έ ν›„ μ €μž₯ λ²„νŠΌ μ˜†μ˜ μ²΄ν¬ν‘œμ‹λ„ λˆŒλŸ¬μ•Ό ν•©λ‹ˆλ‹€.

이쀑 μ €μž₯μž…λ‹ˆλ‹€! :man_facepalming:

이것은 λ°”κ°€ μ•„λ‹Œ μ½”μ–΄μ˜ ν˜„μž¬ ν…Œλ§ˆ μ„€μ •μ˜ νŠΉμ„±μž…λ‹ˆλ‹€. 본문에 ν•΄λ‹Ή 사항에 λŒ€ν•œ 주석을 μΆ”κ°€ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

5개의 μ’‹μ•„μš”

λ„€, 이쀑 μ €μž₯을 ν–ˆμŠ΅λ‹ˆλ‹€ :slight_smile:

κ·Έλž˜λ„ κ²°κ³ΌλŠ” λ˜‘κ°™λ„€μš”. λ­”κ°€ λ†“μΉ˜κ³  μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 도움을 λ“œλ¦΄ 수 μžˆλŠ” λ‹€λ₯Έ 정보가 μžˆμ„κΉŒμš”?

1개의 μ’‹μ•„μš”

μ„€μ • JSON을 κ³΅μœ ν•΄ μ£Όμ„Έμš” (TC ν•˜λ‹¨μ˜ λ²„νŠΌ).

3개의 μ’‹μ•„μš”
[
	{
		"setting": "bar_components",
		"value": "[{\"component_name\":\"layouts-tag-list-widget\",\"route\":\"discovery\",\"position\":\"left\"},{\"component_name\":\"big-b\",\"route\":\"discovery\",\"position\":\"left\"},{\"component_name\":\"big-c\",\"route\":\"discovery\",\"position\":\"right-alt\"},{\"component_name\":\"big-d\",\"route\":\"discovery\",\"position\":\"right-alt\"},{\"component_name\":\"big-e\",\"route\":\"discovery\",\"position\":\"top\"},{\"component_name\":\"big-f\",\"route\":\"discovery\",\"position\":\"top\"},{\"component_name\":\"big-c\",\"route\":\"topic\",\"position\":\"right\"},{\"component_name\":\"big-d\",\"route\":\"topic\",\"position\":\"right\"},{\"component_name\":\"big-e\",\"route\":\"topic\",\"position\":\"top\"},{\"component_name\":\"big-a\",\"route\":\"categories\",\"position\":\"left\"},{\"component_name\":\"big-c\",\"route\":\"category\",\"position\":\"left\"},{\"component_name\":\"big-b\",\"route\":\"tag\",\"position\":\"right\"}]"
	},
	{
		"setting": "left_sidebar_width",
		"value": 300
	},
	{
		"setting": "right_sidebar_width",
		"value": 300
	},
	{
		"setting": "sticky_sidebars",
		"value": true
	},
	{
		"setting": "sidebar_sticky_top_position",
		"value": 60
	},
	{
		"setting": "sidebar_height",
		"value": 800
	},
	{
		"setting": "scrolly_sidebars",
		"value": false
	},
	{
		"setting": "top_bar_height",
		"value": 150
	},
	{
		"setting": "top_bar_sticky_top_position",
		"value": 60
	},
	{
		"setting": "sidebar_gap",
		"value": 5
	},
	{
		"setting": "rightalt_sidebar_gap",
		"value": 5
	}
]

μ—¬λŸ¬λΆ„μ˜ component_name은(λŠ”) μ—¬μ „νžˆ 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 제 예λ₯Ό μ°Έκ³ ν•΄ λ³΄μ‹œκ³ , λ‚˜λ¨Έμ§€ 뢀뢄은 μ‚­μ œν•˜λŠ” 것이 쒋을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

흠… μ•Œκ² μŠ΅λ‹ˆλ‹€. 첫 번째 ν•­λͺ©μ„ μ œμ™Έν•œ λ‚˜λ¨Έμ§€λ₯Ό λͺ¨λ‘ μ‚­μ œν•˜κ³ , 이름을 λ‹Ήμ‹ μ˜ 것과 μΌμΉ˜ν•˜λ„λ‘ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€ (μ»΄ν¬λ„ŒνŠΈ 이름은 TC GitHub - merefield/discourse-tc-bars-tag-list-component: The Tag List Widget allows you to display tags from Discourse in a sidebar using Pavilion's Custom Layouts Plugin. Β· GitHub μ—μ„œ κ°€μ Έμ˜€λŠ” 것인데, μ˜¬λ°”λ₯Έ μ»΄ν¬λ„ŒνŠΈ 이름이 layouts-tag-listλΌλŠ” 것을 μ–΄λ””μ„œ 찾을 수 μžˆμ„κΉŒμš”?).

ν•˜μ§€λ§Œ λͺ¨λ‹¬μ—μ„œ μ»΄ν¬λ„ŒνŠΈ 이름을 변경해도 μ„€μ • JSONμ—μ„œλŠ” λ³€κ²½λ˜μ§€ μ•Šκ³ , λ‚˜λ¨Έμ§€ ν•­λͺ©λ“€λ„ μ œκ±°λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 두 번 μ €μž₯해도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€β€¦

μœ„μ—μ„œ μ„€λͺ…ν–ˆλ“―이 (그리고 이제 OPμ—μ„œ 더 μžμ„Ένžˆ μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€), μ»΄ν¬λ„ŒνŠΈ 이름은 Theme Component의 이름(μ—¬λŸ¬ Ember Glimmer Componentλ₯Ό 포함할 수 있음)이 μ•„λ‹ˆλΌ, μ‹€μ œ Ember Component의 μ΄λ¦„μž…λ‹ˆλ‹€:

즉, layouts-tag-listμž…λ‹ˆλ‹€.

이것은 μœ μš©ν•œ μ˜€ν•΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. 이 예λ₯Ό λ“€μ–΄ OPμ—μ„œ 더 μžμ„Ένžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ™œ 섀정이 μœ μ§€λ˜λŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€ :man_shrugging:

Theme Componentλ₯Ό μ‚­μ œν•˜κ³  λ‹€μ‹œ μΆ”κ°€ν•œ ν›„ λ™μΌν•œ 과정을 λ‹€μ‹œ μ‹œλ„ν•΄ λ³΄μ„Έμš”.

μ•„λ‹ˆλ©΄ κ·Έλƒ₯ λΈŒλΌμš°μ €λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•΄ λ³΄μ„Έμš”?

@merefield λ‹˜, μˆ˜κ³ ν•˜μ…¨μŠ΅λ‹ˆλ‹€!

κΈ°λŠ₯적으둜 Discourse BarsλŠ” μ»€μŠ€ν…€ HTML을 μ‚¬μš©ν•˜λŠ” 우츑 μ‚¬μ΄λ“œλ°” 블둝(Right Sidebar Blocks)κ³Ό μ–΄λ–»κ²Œ λ‹€λ₯Έκ°€μš”? μœ„μΉ˜κ°€ λ°˜λ“œμ‹œ μš°μΈ‘μ—λ§Œ μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 점을 μ œμ™Έν•˜κ³ λŠ”μš”.

BarsλŠ” RSB보닀 μ•žμ„œ λ“±μž₯ν•œ Pavilions Layouts의 정신적 ν›„μ†μž‘μž…λ‹ˆλ‹€.

RSB와 λΉ„κ΅ν–ˆμ„ λ•Œ, BarsλŠ” 주둜 λ©€ν‹° 루트 및 λ©€ν‹° ν¬μ§€μ…˜ 지원(Bars의 λͺ©ν‘œλŠ” Layouts의 μœ μš©μ„±κ³Ό μœ μ—°μ„±μ„ μž¬ν˜„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€)을 μ œκ³΅ν•˜λ©°, 핡심적인 μΆ”κ°€ κΈ°λŠ₯은 ν† ν”½ 루트 μ§€μ›μž…λ‹ˆλ‹€. λ˜ν•œ ν˜„μž¬ paramsλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠμœΌλ©°, 아직 ν•΄λ‹Ή μ‚¬μš© 사둀λ₯Ό λ§ˆμ£Όν•œ 적이 μ—†μŠ΅λ‹ˆλ‹€. 데λͺ¨μš© 큰 κΈ€μž μ»΄ν¬λ„ŒνŠΈλ₯Ό μ œμ™Έν•˜κ³ λŠ” λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ²ˆλ“€λ§ν•˜μ§€ μ•ŠμœΌλ©°, μ΄λŠ” μ˜λ„μ μΈ μ„ νƒμž…λ‹ˆλ‹€. 이 ν”ŒλŸ¬κ·ΈμΈμ€ Layouts와 λ§ˆμ°¬κ°€μ§€λ‘œ κ΄€λ¦¬μž/개발자용 ν”„λ ˆμž„μ›Œν¬λ‘œ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ‘œλ“œλ§΅λ„ 더 μ•Όμ‹¬μ°¨κ²Œ 꾸렀질 수 μžˆμŠ΅λ‹ˆλ‹€. μžκΈˆμ„ 확보할 수 μžˆλ‹€λ©΄ Layouts에 있던 λͺ¨λ°”일 κΈ°λŠ₯도 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•΄λ‹Ή μž‘μ—…μ„ ν›„μ›ν•˜κ³  μ‹ΆμœΌμ‹  뢄은 자유둭게 μ €μ—κ²Œ 연락해 μ£Όμ„Έμš”.

2개의 μ’‹μ•„μš”

κ·Έλž˜μ„œ λ°” TC와 layouts-tag-list TCλ₯Ό λͺ¨λ‘ μ‚­μ œν•˜κ³  λ‹€μ‹œ μ„€μΉ˜ν•΄ λ΄€μ–΄μš” (λ‘˜μ„ 각각 λ”°λ‘œ, 그리고 ν•¨κ»˜ μ œκ±°ν•˜κ³  λ‹€μ‹œ μΆ”κ°€ν•΄ λ΄€λŠ”λ°) κ²°κ³ΌλŠ” μ „λΆ€ λ˜‘κ°™μ•„μš”. 그리고 μ΄μ „μ²˜λŸΌ 맀번 μƒˆλ‘œκ³ μΉ¨λ„ ν–ˆκ³ , λΈŒλΌμš°μ € μΊμ‹œλ„ λΉ„μ› μŠ΅λ‹ˆλ‹€. :face_with_monocle:

μ„€μ • 였λ₯˜κ°€ λ©ˆμΆ”λŠ” 문제λ₯Ό μž¬ν˜„ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ €λŠ” μ™Όμͺ½ μ‚¬μ΄λ“œλ°”λ₯Ό μΆ”κ°€ν•˜κ³  μ œκ±°ν•΄ λ³΄μ•˜μ§€λ§Œ λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

같은 λ¬Έμ œκ°€ λ°œμƒν•œ λ‹€λ₯Έ 보고가 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

μ‹œλ„ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 였늘 μ˜€ν›„μ— λ‹€λ₯Έ Discourse μΈμŠ€ν„΄μŠ€ λͺ‡ κ°œμ—μ„œ ν…ŒμŠ€νŠΈν•΄ 보고 λ‹€μ‹œ λ³΄κ³ λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

1개의 μ’‹μ•„μš”

λ˜ν•œ 이제 λͺ¨λ“  ν”ŒλŸ¬κ·ΈμΈμ„ μ œκ±°ν•˜κ³  μž¬κ΅¬μΆ•(그리고 λ‹€λ₯Έ TCλ‚˜ ν…Œλ§ˆκ°€ μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠμŒ)ν–ˆμœΌλ©°, 어젯밀에 μƒˆλ‘œ μ„€μΉ˜ν•œ κ²ƒμž…λ‹ˆλ‹€.

도움이 λœλ‹€λ©΄, μœ„μ—μ„œ μ–ΈκΈ‰ν•œ μ„€μ •κ³Ό λ™μΌν•œ μƒνƒœμ—μ„œ μ™Όμͺ½ μ‚¬μ΄λ“œλ°”κ°€ λ‹€λ₯Έ κ³³μ—μ„œλŠ” λ‚˜νƒ€λ‚˜μ§€ μ•Šμ§€λ§Œ /latest κ²½λ‘œμ—μ„œλŠ” ν‘œμ‹œλœλ‹€λŠ” 것을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€(λ‹€λ§Œ νƒœκ·Έκ°€ ν‘œμ‹œλ˜μ§€ μ•Šκ³  제λͺ© "Tags"만 ν‘œμ‹œλ¨).





그리고 μ—¬κΈ° μ„€μ • json이 μžˆμŠ΅λ‹ˆλ‹€β€¦

[
	{
		"setting": "bar_components",
		"value": "[{\"component_name\":\"layouts-tag-list\",\"route\":\"discovery\",\"position\":\"left\"}]"
	},
	{
		"setting": "left_sidebar_width",
		"value": 300
	},
	{
		"setting": "right_sidebar_width",
		"value": 300
	},
	{
		"setting": "sticky_sidebars",
		"value": true
	},
	{
		"setting": "sidebar_sticky_top_position",
		"value": 60
	},
	{
		"setting": "sidebar_height",
		"value": 800
	},
	{
		"setting": "scrolly_sidebars",
		"value": false
	},
	{
		"setting": "top_bar_height",
		"value": 150
	},
	{
		"setting": "top_bar_sticky_top_position",
		"value": 60
	},
	{
		"setting": "sidebar_gap",
		"value": 5
	},
	{
		"setting": "rightalt_sidebar_gap",
		"value": 5
	}
]

κ·Έ 뢀뢄은 직접 디버깅해야 ν•©λ‹ˆλ‹€ - μ½˜μ†”, ν…Œλ§ˆ CSS 등을 확인해 λ³΄μ„Έμš”.

제 ν™˜κ²½μ—μ„œλŠ” 정상 μž‘λ™ν•©λ‹ˆλ‹€:

λ ˆμ΄μ•„μ›ƒ νƒœκ·Έ λͺ©λ‘(Layouts Tag List)이 νƒœκ·Έ κ·Έλ£Ή(Tag Groups)을 μš”κ΅¬ν•˜λŠ”μ§€ 기얡이 λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ … ν•„μš”ν•  μˆ˜λ„ μžˆκ² λ„€μš”!

4개의 μ’‹μ•„μš”

λ„€, μ„€μ •μ—μ„œ Tag Groupsλ₯Ό ν™œμ„±ν™”ν•˜κ³ (그런 λ‹€μŒ λͺ‡ 개의 Tag Groupsλ₯Ό μƒμ„±ν•˜λ©΄) νƒœκ·Έκ°€ ν‘œμ‹œλ˜κΈ°λŠ” ν–ˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ μ»΄ν¬λ„ŒνŠΈ ν•­λͺ©μ˜ 라우트λ₯Ό discovery둜 섀정해도 μ—¬μ „νžˆ /latest, /new 및 /top λͺ©λ‘μ—μ„œλ§Œ μ™Όμͺ½ λ°”κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

μ—¬κΈ°μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λͺ¨λ“  β€œroutes” λͺ©λ‘μ„ μ•Œλ € μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

λ‹€μ‹œ ν•œλ²ˆ κ°μ‚¬ν•©λ‹ˆλ‹€!

2개의 μ’‹μ•„μš”