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 montrotajfrom=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,
- Metu la parametron kun implicita valoro al la default_specification
- Aldonu kodon, depende de ĝia uzo en la dosiero
app.py
aŭ en la ŝablonoj de la JavaScript-dosieroj. La specifo jam estas havebla en ĉiuj el ili por uzado. - Aldonu testojn en features/configure-the-calendar.feature por kontroli, ĉu la kalendaro respondas al la trajto.
- Aldonu testojn en features/edit-the-calendar.feature por certigi, ke la parametro estas uzebla, kiam kalendaro estas modifita.
Kompili la specifon¶
Vi povas ŝanĝi la kalendarajn konduton kaj aspekton per parametroj. Jen la lokoj por specifi parametrojn:
- **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
-
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
-
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.
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.