Rrule: Rrule을 λ‘œλ“œν•˜λŠ” 방법?

에 λ§Œλ“  2019λ…„ 06μ›” 03일  Β·  11μ½”λ©˜νŠΈ  Β·  좜처: jakubroztocil/rrule

이것은 정말 기본적인 μ§ˆλ¬Έμ΄μ§€λ§Œ λΉ„κ³΅κ°œ λ¬Έμ œμ—μ„œ λ¬»λŠ” μ‚¬λžŒμ„ λ³Έ 적이 μ—†μœΌλ―€λ‘œ μ‹œλ„ν•˜λ €κ³  ν•©λ‹ˆλ‹€. λΈŒλΌμš°μ €μ— rrule.js λ₯Ό μ–΄λ–»κ²Œ μΆ”κ°€ν•©λ‹ˆκΉŒ? codepen에 μΆ”κ°€ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λͺ¨λ“ˆμ„ μš”κ΅¬ν•˜κ±°λ‚˜ κ°€μ Έμ˜€λŠ” μ—¬λŸ¬ 가지 방법을 μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

즉, μ½˜μ†”μ—μ„œ 이 였λ₯˜κ°€ 계속 ν‘œμ‹œλ©λ‹ˆλ‹€.
image

λ‚˜λŠ” 그것을 κ΄€μ°° κ°€λŠ₯ν•˜κ²Œ λ‘œλ“œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ–΄λ–€ 도움이든 ν™˜μ˜ν•©λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€ :)

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

흠, κ·Έλž˜μ„œ ES6 λͺ¨λ“ˆμ„ 직접 λΈŒλΌμš°μ €λ‘œ κ°€μ Έμ˜¬ μ΄μœ κ°€ μ—†μ—ˆμ§€λ§Œ(UMD λͺ¨λ“ˆμΌ μˆ˜λ„ 있음) λ‹€μŒ μ½”λ“œκ°€ codepenμ—μ„œ μž‘λ™ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

// This imports everything in the `rrule` namespace
import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"

console.log(rrule)

// Create a rule:
const rule = new rrule.RRule({
  freq: rrule.RRule.WEEKLY,
  interval: 5,
  byweekday: [rrule.RRule.MO, rrule.RRule.FR],
  dtstart: new Date(Date.UTC(2012, 1, 1, 10, 30)),
  until: new Date(Date.UTC(2012, 12, 31))
})

// Get all occurrence dates (Date instances):
console.log(rule.all())

λͺ¨λ“  11 λŒ“κΈ€

λΈŒλΌμš°μ €μ—μ„œ rrule을 μ‚¬μš©ν•˜λŠ” λ°©λ²•μ—λŠ” μ—¬λŸ¬ 가지가 μžˆμŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ €μ—μ„œ rrule을 ν…ŒμŠ€νŠΈν•˜κ±°λ‚˜ 놀고 μ‹Άλ‹€λ©΄ npmμ—μ„œ λͺ¨λ“ˆμ„ κ°€μ Έμ˜¬ 수 μžˆλŠ” stackblitz 와 같은 것을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

codepen의 μ„œλ²„μ—μ„œ μƒλŒ€ 파일 경둜("rrule")λ₯Ό κ°€μ Έμ˜€λ €κ³  ν•˜κΈ° λ•Œλ¬Έμ— λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. (μ €λŠ” codepen을 μ‚¬μš©ν•œ 적이 μ—†μ§€λ§Œ codepen이 rrule μ‚¬μš©ν•  수 있게 ν–ˆλŠ”μ§€ μ˜μ‹¬μŠ€λŸ½μŠ΅λ‹ˆλ‹€. 그것은 μ–΄λ–€λ©΄μ—μ„œ μ‚¬μš©μžμž…λ‹ˆλ‹€). μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό 직접 μ œκ³΅ν•˜μ§€ μ•ŠμœΌλ €λ©΄ CDNμ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό 가져와야 ν•©λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @fliikλ‹˜ , λŒ“κΈ€ κ°μ‚¬ν•©λ‹ˆλ‹€ :)

stackblitzλŠ” 믿을 수 없을 μ •λ„λ‘œ λ³΄μž…λ‹ˆλ‹€. Codepen은 μ›Ή νŽ˜μ΄μ§€λ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ 놀이터이며 λ‹€λ₯Έ CDNμ—μ„œ 슀크립트λ₯Ό λ‘œλ“œν•  수 μžˆλ‹€λŠ” μ μ—μ„œ stackblitz와 맀우 μœ μ‚¬ν•©λ‹ˆλ‹€. codepen의 settings λŒ€ν™” > Javascript >λ₯Ό 톡해 λ‚΄ 슀크립트λ₯Ό λ‘œλ“œν•œ λ‹€μŒ ν˜ΈμŠ€νŒ…λœ μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•œ 파일 경둜λ₯Ό μž…λ ₯ν–ˆμŠ΅λ‹ˆλ‹€.

image

μ €λŠ” ν˜„μž¬ https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js μ—μ„œ rrule을 ν˜ΈμŠ€νŒ…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ λ‹€μŒμ„ 톡해 λͺ…μ‹œμ μœΌλ‘œ λ‘œλ“œν•˜λŠ” μ—…λ°μ΄νŠΈλœ νŽœμž…λ‹ˆλ‹€.

" https://s3.amazonaws.com/appforest_uf/f1559527195623x315562171275647800/rrule.min.js/ "μ—μ„œ { RRule, RRuleSet, rrulestr } κ°€μ Έμ˜€κΈ°

λ‚΄κ°€ μ‹œλ„ν•œ κ·Έ μ½”λ“œλŠ” μ˜¬λ°”λ₯Έ ES6 κ΅¬λ¬Έμž…λ‹ˆλ‹€(κ·€ν•˜μ˜ μ½”λ“œμ— μ‰Όν‘œκ°€ λˆ„λ½λœ κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ). S3κ°€ μ•‘μ„ΈμŠ€ μ‹œλ„λ₯Ό μ°¨λ‹¨ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€(μ½˜μ†”μ„ 보면 403 κΈˆμ§€ μƒνƒœ μ½”λ“œλ‘œ 응닡함).

λ‹€μŒμ€ rrule을 κ°€μ Έμ˜¨ κ°„λ‹¨ν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€. https://stackblitz.com/edit/js-bbaffe

λ„ˆλ¬΄ μ΄μƒν•˜κ²Œλ„ S3λŠ” ν™•μ‹€νžˆ λ‚΄ μ½˜μ†”μ— λ¦¬μ†ŒμŠ€λ₯Ό λ‘œλ“œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
image

λ‚΄κ°€ μ΄ν•΄ν•˜λŠ” ν•œ λ‘œλ“œν•΄μ•Ό ν•˜λŠ” λ‹€λ₯Έ 쒅속성은 μ—†μŠ΅λ‹ˆλ‹€. λ§žμŠ΅λ‹ˆκΉŒ(typescriptλ₯Ό μΆ”κ°€ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λ¬Έμ œκ°€ λ˜μ§€ μ•ŠλŠ” 것 κ°™μ•˜μŠ΅λ‹ˆλ‹€)?

λ‚΄κ°€ npm ν™˜κ²½μ΄λΌλ©΄ 당신이 μ œκ³΅ν•œ 멋진 stackblitz ν”„λ‘œμ νŠΈλ₯Ό 볡사할 κ²ƒμ΄μ§€λ§Œ λΆˆν–‰νžˆλ„ λ‚˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ μ½”λ“œλ‘œλ§Œ μ œν•œλ©λ‹ˆλ‹€./

Google 에 λ”°λ₯΄λ©΄ 파일 ν™•μž₯μžλŠ” λͺ¨λ“ˆμ—μ„œ μ€‘μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

파일 ν™•μž₯μžμ— λŒ€ν•œ μ°Έκ³  사항
λͺ¨λ“ˆμ— .mjs 파일 ν™•μž₯자λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŒμ„ λˆˆμΉ˜μ±„μ…¨μ„ κ²ƒμž…λ‹ˆλ‹€. μ›Ήμ—μ„œ 파일 ν™•μž₯μžλŠ” JavaScript MIME μœ ν˜• text/javascript μ œκ³΅λ˜λŠ” ν•œ μ‹€μ œλ‘œ μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ €λŠ” 슀크립트 μš”μ†Œμ˜ type 속성 λ•Œλ¬Έμ— λͺ¨λ“ˆμž„을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ 파일이 text/javascript κ°€ μ•„λ‹ˆλΌ application/javascript λ˜λŠ” application/x-javascript . 그게 λ¬Έμ œκ°€ λ κΉŒμš”? μ—¬κΈ° λˆ„κ΅¬μ—κ²Œλ‚˜ MIME μœ ν˜• text/javascript μ „λ‹¬ν•˜λŠ” rrule ν˜ΈμŠ€νŒ… 버전이 μžˆμŠ΅λ‹ˆκΉŒ?

흠, κ·Έλž˜μ„œ ES6 λͺ¨λ“ˆμ„ 직접 λΈŒλΌμš°μ €λ‘œ κ°€μ Έμ˜¬ μ΄μœ κ°€ μ—†μ—ˆμ§€λ§Œ(UMD λͺ¨λ“ˆμΌ μˆ˜λ„ 있음) λ‹€μŒ μ½”λ“œκ°€ codepenμ—μ„œ μž‘λ™ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

// This imports everything in the `rrule` namespace
import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js"

console.log(rrule)

// Create a rule:
const rule = new rrule.RRule({
  freq: rrule.RRule.WEEKLY,
  interval: 5,
  byweekday: [rrule.RRule.MO, rrule.RRule.FR],
  dtstart: new Date(Date.UTC(2012, 1, 1, 10, 30)),
  until: new Date(Date.UTC(2012, 12, 31))
})

// Get all occurrence dates (Date instances):
console.log(rule.all())

λ„ˆλ¬΄ μ΄μƒν•˜κ²Œλ„ S3λŠ” ν™•μ‹€νžˆ λ‚΄ μ½˜μ†”μ— λ¦¬μ†ŒμŠ€λ₯Ό λ‘œλ“œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ»΄ν“¨ν„°μ—μ„œ μ•„λ§ˆμ‘΄ 계정에 λ‘œκ·ΈμΈν–ˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

그런 생각이 λ“€μ—ˆμ§€λ§Œ μ•„λ‹ˆμš”. μ•‘μ„ΈμŠ€ κΆŒν•œμ΄ μ—†λŠ” 두 번째 컴퓨터와 μ‹œν¬λ¦Ώ λͺ¨λ“œμ—μ„œ ν•΄λ‹Ή νŒŒμΌμ— μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ λ³Ό 수 μžˆλ“―μ΄ 운 없이 jsdeliver μ—μ„œ 슀크립트λ₯Ό λ‘œλ“œν•˜λ €κ³  μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€.

@zeluspudding λ‚΄ 이전 λŒ“κΈ€ λͺ» λ΄€μ–΄?

import "https://jakubroztocil.github.io/rrule/dist/es5/rrule.min.js" λŠ” codepenμ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

였, μ£„μ†‘ν•©λ‹ˆλ‹€ - κ·€ν•˜μ˜ μ˜κ²¬μ„ λ†“μ³€μŠ΅λ‹ˆλ‹€. 그리고 예! 그것은 μž‘λ™ν•©λ‹ˆλ‹€ :)

정말 κ°μ‚¬ν•©λ‹ˆλ‹€! λͺ¨λ“  도움에 정말 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

μ½”λ“œ μŠ€λ‹ˆνŽ«μ„ μ‚¬μš©ν•˜μ—¬ μ‹œμž‘ν•˜κΈ° κ°€μ΄λ“œλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€(이 경우 ES6 λͺ¨λ“ˆμ„ λΈŒλΌμš°μ €λ‘œ 직접 κ°€μ Έμ˜€λŠ” 경우). μ›ν•œλ‹€λ©΄ ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό μ œμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€

Observableμ—μ„œ rrule을 μ‚¬μš©ν•˜λŠ” 데 관심이 μžˆλŠ” μ‚¬λžŒ 은 이 링크λ₯Ό λ°©λ¬Έν•˜μ„Έμš” .

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰