Saltu al enhavo

Aplikprograma interfaco

Ĝenerale, la Malfermita Reta Kalendaro estas uzebla sen restrikto. Vi povas uzi ĉi tiun API por adapti la kalendaron laŭbezone.

Ĉi tiu paragrafo povas esti tial utila, kial:

  • Vi estas retprogramisto, kiu volas enmeti la Malfermitan Retan Kalendaron.
  • Vi volas ekspluati la plenan flekseblecon, ne nur tion, kio estas havebla sur la agorda paĝo.
  • Vi volas uzi JavaScript por dinamike generi la kalendarajn dezajnon kaj opciojn.
  • Vi volas pliigi la funkciojn de la Malfermita Reta Kalendaro.
  • Vi volas uzi la Malfermitan Retan Kalendaron kiel perilon por peti JSON-eventojn por via propra eventolisto.

Finpunktoj

La bazaj parametroj estas samaj ĉe la jenaj finpunktoj:

  • /index.html – modifi la kalendaron
  • /about.html – vidi la paĝon de metainformoj
  • /calendar.html – vidi la kalendaron
  • /calendar.spec – elŝuti la specifon
  • /calendar.ics – aboni la ics-dosieron
  • /calendar.events.json - FLEKSEBLA - ricevi la eventojn kiel JSON. Bonvolu noti, ke vi ja povas uzi tion, sed vi ne povas certigi, ke la JSON-skemo restas sama. Se vi deziras tion, aldonu testojn.

Additional parameters are required for /calendar.events.json:

  • timezone=UTC – la horzono, laŭ kiu la eventoj estas montrotaj
  • from=JJJJ-MM-TT – la komenco de la periodo de eventoj (inkluziva)
  • to=JJJJ-MM-TT – la fino de la periodo de eventoj (ekskluziva)

Parametroj

Ĉiuj agordaj parametroj estas priskribitaj sufiĉe en la default_specification. Tiu estas la manlibro. Ekz. se vi trovas la parametron title en la default_specification, vi havas plurajn opciojn:

Ŝanĝi la titolon per parametro en la informpeto:

/index.html?title=calendar

Ŝanĝi la titolon per YAML-specifo:

title: calendar

Ŝanĝi la titolon per JSON-specifo:

{
  "title": "calendar"
}

Aldoni parametrojn

Se vi kiel programisto aldonas novan parametron,

Kompili la specifon

Vi povas ŝanĝi la kalendarajn konduton kaj aspekton per parametroj. Jen la lokoj por specifi parametrojn:

  1. **Informpetaj parametroj ** Ĉiuj parametroj al la kalendara retadreso estas metitaj en la specifon. La informpetaj parametroj havas la plej altan prioritaton. Ekzemple: txt index.html?language=de calendar.html?title=CALENDAR
  2. specification_url Se vi specifas tiun informpetan parametron, la modifilaj agordoj estas ŝargitaj de tiu retadreso ankaŭ. Informpetaj parametroj estas pli gravaj ol tio, kio estas skribita en tiu dosiero. La formo povas esti YAML aŭ JSON. Ekzemple: calendar.html?specification_url=https://github.com/niccokunzmann/open-web-calendar/raw/master/default_specification.yml

  3. default_specification Tiu dosiero enhavas la implicitajn parametrojn. Ili devas esti ne rekte specifitaj en la fontkodon. Ĉiuj parametroj estas tie. Informpetaj parametroj kaj la specification_url superregas tiujn valorojn.

Specifo en la kalendaro

app.py kompilas la specifon el la donitaj parametroj en get_specification(). En la ŝablono, vi povas legi la specifon per la variablo specification. La specifo estas havebla en JavaScript per la variablo specification.

Specifo en la indeksa paĝo

La implicita specifo estas havebla antaŭ ol la kalendaro estas konstruita per JavaScript en la variablo configuration.default_specification. Ekzistas funkcio getSpecification(), kiu kreas de la enigaĵoj la specifon. Ĝenerale, oni uzu la variablon specification.

Arĥitekturo

Jen diagramo de la arĥitekturo.

arĥitekturo

La bazo de kalendaro estas la specifo, donita en diversaj formoj. Ĉi tiu specifo influas ĉiujn paŝojn.

Post kiam la specifo estas kompilita, la kalendaraj (.ics-) dosieroj estas elŝutitaj de la lokoj sur Interreto.

El la kalendaraj dosieroj, la eventoj estas generitaj.

Poste, diversaj vidoj estas elektitaj por elmontri la eventojn.

Fine, tio kaŭzas HTML-ajn kaj stilajn ŝanĝojn de la kalendara retpaĝo.

En la reala programo, tiuj paŝoj estas iom intermiksitaj kaj malordigitaj aŭ pretersaltitaj, sed tio klarigas simple la bazan principon pri la traktado de la eventoj.