News Plugin ๐Ÿ“ฐ

3.0.5์—์„œ ํ•ด๋‹น ์ปค๋ฐ‹ ์ง์ „์˜ sha(289c736c65841578ac9022923581828f089fccac)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. :raised_hands: ๋„์›€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, @merefield

๋‰ด์Šค ํŽ˜์ด์ง€๋ฅผ ๊ธฐ๋ณธ/ํ™ˆ ํŽ˜์ด์ง€๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๊ณ  ๊ณ„์‹ ๊ฐ€์š”?

ํ…Œ๋งˆ API๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ๋‹จ์ˆœํžˆ ๋‹ค์Œ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๊ทธ๋ฆฌ๊ณ  /news๋กœ ์„ค์ •ํ•˜์„ธ์š”.

1๊ฐœ์˜ ์ข‹์•„์š”

์•ˆ๋…•ํ•˜์„ธ์š”, ์™œ ๊ทธ๋Ÿฐ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ์š”. 3๋ฒˆ์˜ ๋””์Šค์ปค์Šค ์—…๋ฐ์ดํŠธ ์ „๋ถ€ํ„ฐ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค:
Error while processing route: news Cannot read properties of undefined (reading 'can_create_topic') TypeError: Cannot read properties of undefined (reading 'can_create_topic')

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊นƒํ—ˆ๋ธŒ ์ €์žฅ์†Œ์˜ ์ด์Šˆ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋„์›€ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋„์™€์ฃผ์‹ค ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ข€ ๋ฐ”๋น ์„œ์š”. Discourse์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒ๊ฒจ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค (์ผ์‹œ์ ์œผ๋กœ โ€˜๊ณ ์žฅโ€™ ์ƒํƒœ๋กœ ์ด๋™). ์ผ์ฃผ์ผ์ฏค ๋’ค์— ๋‹ค์‹œ ์—ฐ๋ฝ ์ฃผ์„ธ์š”. ๊ทธ๋•Œ๋Š” ์ข€ ๋” ์‹œ๊ฐ„์ด ์žˆ์„์ง€๋„ ๋ชฐ๋ผ์š”.

4๊ฐœ์˜ ์ข‹์•„์š”

@angus์—๊ฒŒ GitHub - paviliondev/discourse-news: Adds a news stream to your Discourse instance ยท GitHub ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. (์ง์ ‘ ์ฝ”๋“œ๋ฅผ ํŒŒ๊ณ ๋“ค๊ธฐ ์ „์— - ์ €๋Š” UX ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ โ€ฆ)

discourse news rss์™€ discourse news icon ์ž…๋ ฅ ํ•„๋“œ์— ํ•„์š”ํ•œ ๊ตฌ๋ฌธ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‰ด์Šค ์•„์ด์ฝ˜์˜ ๊ฒฝ์šฐ, ๋‹ค์Œ ์ฝ”๋“œ ์˜ˆ์‹œ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹œ๋„ํ•ด ๋ณด์•˜์ง€๋งŒ ์•„์ง "fa-newspaper"์— ๋Œ€ํ•ด์„œ๋Š” ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค:

์ด๊ฒƒ์€ ์„œ๋“œํŒŒํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋ฏ€๋กœ, ๊ด€๋ จ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฃผ์ œ๋กœ ๊ฒŒ์‹œ๊ธ€์„ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. :+1:

๋‹ค๋งŒ, ํ˜„์žฌ ์ด ์ฃผ์ œ์—๋Š” broken ํƒœ๊ทธ๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

Hey @Thomas_Rother. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด(์ฐธ๊ณ : @JammyDodger๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๊นจ์ ธ ์žˆ์„ ์ˆ˜ ์žˆ์Œ), Discourse์—๋Š” Font Awesome ์•„์ด์ฝ˜ ๋ชฉ๋ก์ด ๋‘ ๊ฐœ ์žˆ์–ด ํ•„์š”ํ•œ ์ •ํ™•ํ•œ ์•„์ด์ฝ˜ ์ด๋ฆ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋Š” Discourse๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค(์ฆ‰, ์˜ฌ๋ฐ”๋ฅธ ์ด๋ฆ„๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ํ•ญ์ƒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค).

๋‘ ๋ฒˆ์งธ๋Š” Discourse์˜ Font Awesome SVG์— ํฌํ•จ๋œ ์•„์ด์ฝ˜์ž…๋‹ˆ๋‹ค(์ด๋ฆ„์€ ์‹ฌ๋ณผ์˜ id ๊ฐ’์ž…๋‹ˆ๋‹ค). lib/svg_sprite.rb์— ๋‚˜์—ด๋˜์ง€ ์•Š์€ SVG ์•„์ด์ฝ˜์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ ํ…Œ๋งˆ์— ์˜ํ•ด ๋กœ๋“œ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ fa-newspaper์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. lib/svg_sprite.rb์˜ ๋ชฉ๋ก์— ์—†์œผ๋ฏ€๋กœ Discourse๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๋“œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. fontawesome/regular.svg์™€ fontawesome/solid.svg์— newspaper๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ News ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ํ…Œ๋งˆ๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ newspaper๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

1๊ฐœ์˜ ์ข‹์•„์š”

๋‹ต๋ณ€ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•„์ฃผ ์œ ์šฉํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.
์–ธ์  ๊ฐ€ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์ง€๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๊ฐ€ ์ด ์ปค๋ฐ‹๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: DEV: Refactor discovery routes to remove use of 'named outlets' (#22622) ยท discourse/discourse@82d6d69 ยท GitHub
๋””์Šค์ฝ”urses์— ์ •ํ†ตํ•œ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ฐธ๊ณ ๋กœ, ๊ด€๋ฆฌ์ž ์„ค์ •์˜ svg icon subset์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋˜์ง€ ์•Š์„๊นŒ์š”?

2๊ฐœ์˜ ์ข‹์•„์š”

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ ๋งค์šฐ ํฅ๋ฏธ๋กญ๊ณ , ์ œ๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ์ •ํ™•ํžˆ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž ์‹œ ํ›„ broken ํƒœ๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์—ฌ์ „ํžˆ (์•ˆ์ „ํ•˜๊ฒŒ) ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

1๊ฐœ์˜ ์ข‹์•„์š”

์š”์•ฝํ•˜์ž๋ฉด, ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ์‚ฐ์ด ์žˆ๋‹ค๋ฉด coop.pavilion.tech ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด๋ฅผ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๋Š” ๋ฐ ๊ธฐ๊บผ์ด ์‘ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋Œ€์‹ , ์ฃผ์ œ ๋ชฉ๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ(Topic List Previews, ํ•„์š” ์‹œ ์‚ฌ์ด๋“œ๋ฐ” ๋ธ”๋ก(Sidebar Blocks)๊ณผ ํ•จ๊ป˜)์„ ์‚ฌ์šฉํ•˜๋ฉด ๋งค์šฐ ์œ ์‚ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ข‹์€ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‰ด์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ ์ˆ˜์ •์„ ์ €๋„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@Angus ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ˜„์žฌ Discourse ๋ฒ„์ „์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋น„์šฉ๊ณผ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๋“ค๊นŒ์š”? ๊ทธ๋ฆฌ๊ณ  ๋ฉ”์ธ ๋‰ด์Šค ํ”ผ๋“œ์— ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ•ด๋‹น ์—…๋ฐ์ดํŠธ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ 3๋…„๊ฐ„ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ด ์™”๊ณ (์ „๋ฐ˜์ ์œผ๋กœ ํ›Œ๋ฅญํ•˜์ง€๋งŒ, ๋ฌผ๋ก  ๋ช‡ ๊ฐ€์ง€ ์ œํ•œ ์‚ฌํ•ญ์€ ์žˆ์Šต๋‹ˆ๋‹ค), ํ˜„์žฌ Discourse 2.9.0.beta9 ๋ฒ„์ „์— ๋ฌถ์—ฌ ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์˜ Discourse๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ข‹๋‹ค๋Š” ์†Œ์‹์„ ๋“ค์œผ๋‹ˆ ๊ธฐ์ฉ๋‹ˆ๋‹ค!

์ œ๊ฐ€ ์ง€๊ธˆ ์ด ์ž‘์—…์„ ๋งก์œผ๋ ค๋ฉด ์ตœ์†Œ 1,000๋‹ฌ๋Ÿฌ, ์–ด์ฉŒ๋ฉด ๊ทธ ์ด์ƒ์€ ๋  ๊ฑฐ์˜ˆ์š”. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋‹ค๋ฅธ ์ž‘์—…์—์„œ ์‹œ๊ฐ„์„ ๋นผ์•—๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•œ๋™์•ˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์˜ˆ์‚ฐ์— ๋งž๋‹ค๋ฉด DM์„ ๋ณด๋‚ด ์ฃผ์„ธ์š”. ์ •ํ™•ํ•œ ๊ฒฌ์ ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค :+1:

๋Œ€์‹ , ํ˜„์žฌ ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์‹ค์ œ ์ปค๋ฎค๋‹ˆํ‹ฐ 5๊ณณ ์ด์ƒ์—์„œ ์—ฐ๋ฝ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ œ ์—ฌ๊ฐ€ ์‹œ๊ฐ„์— ๋ฌด๋ฃŒ๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค (โ€œ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€์‹ฌโ€ ์˜ต์…˜).

4๊ฐœ์˜ ์ข‹์•„์š”

์•ˆ๋…•ํ•˜์„ธ์š”
์ด๊ฒƒ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์ด ์žˆ๋‚˜์š”?

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๊ณ  ํ™œ์„ฑํ™”ํ–ˆ์œผ๋ฉฐ, Discourse ๋‰ด์Šค๊ฐ€ ํ™œ์„ฑํ™”๋˜๋„๋ก ์„ ํƒํ–ˆ๊ณ , ๋ชจ๋“  ํ•„์ˆ˜ ํ•ญ๋ชฉ์„ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค(ํ…Œ์ŠคํŠธ๋กœ BBC RSS ํ”ผ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฐ๋ฐ Discourse ๋‰ด์Šค ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๊ณ ์žฅ ๋‚˜ ์žˆ๋‹ค๋Š” ํƒœ๊ทธ๊ฐ€ ๋ถ™์–ด ์žˆ๋„ค์š”. ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๋Š” ๊ฒŒ ์ข‹์„๊นŒ์š”?

3๊ฐœ์˜ ์ข‹์•„์š”

์ด ๋‰ด์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ(์ €๋Š” ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ •๋ง ์ข‹์•„ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค)์„ ์ตœ์‹  ๋ฒ„์ „์˜ Discourse์—์„œ ์‹คํ–‰ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋‹ค๋ฅธ ๋ถ„์€ ๊ณ„์‹ ๊ฐ€์š”?

๊ด€์‹ฌ ์žˆ์œผ์‹œ๋‹ค๋ฉด ์—ฌ๊ธฐ์— ๋Œ“๊ธ€์„ ๋‹ฌ์•„์ฃผ์‹œ๊ฑฐ๋‚˜ ์ €์—๊ฒŒ ์ง์ ‘ ์—ฐ๋ฝํ•ด ์ฃผ์„ธ์š”.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋ฐฉ๊ธˆ whoโ€™s online ๊ณต์‹ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ–ˆ๋Š”๋ฐ, ์ด์ œ ๋‹น์‹ ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฐ์ง€ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋Š”๋ฐ, ๋„์™€์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ํ˜„์žฌ broken ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜์–ด ์žˆ์Œ์„ ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

1๊ฐœ์˜ ์ข‹์•„์š”