API¶
Generalmente, Calendario web abierto está ahí para usarse sin restricciones. Puedes utilizar esta API para personalizar el calendario sobre la marcha.
Esta sección puede serle útil si se da alguna de estas circunstancias:
- Eres un desarrollador web que desea integrar el Calendario web abierto.
- Quieres explotar toda la flexibilidad, no solo lo que se expone en la página de configuración.
- Deseas utilizar JavaScript para generar dinámicamente el diseño y las opciones del calendario.
- Deseas ampliar las funciones de Calendario web abierto.
- Deseas utilizar Calendario web abierto como proxy para solicitar eventos JSON para tu fuente de eventos de creación propia.
Punto final de comunicación¶
Los parámetros básicos son los mismos en estos puntos finales:
/index.html
- editar el calendario/about.html
- ver la página acerca de/calendar.html
- ver el calendario/calendar.spec
- descargar las especificaciones/calendar.ics
- suscribirse al archivo ics/calendar.events.json
- FLEXIBLE - obtén los eventos como JSON Por favor, ten en cuenta que PUEDES usar esto pero no puedes estar seguro de que el esquema JSON siga siendo el mismo. Si quieres eso, añade tests.
Parámetros adicionales requeridos para /calendario.eventos.json
:
timezone=UTC
- la zona horaria en la que debe mostrar los eventosfrom=YYYY-MM-DD
- el inicio del periodo en el que ocurren los eventos (inclusive)to=YYYY-MM-DD
- el final del periodo en el que ocurren los eventos (exclusivo)
Parámetros¶
Todos los parámetros de configuración se describen suficientemente en default_specification. Esa es la referencia. Por ejemplo, si encuentras el parámetro title
en [default_specifications], tiene varias opciones:
Cambiar el título en un parámetro de consulta:
/index.html?title=calendar
Cambiar el título en una especificación YAML:
title: calendar
Cambiar el título en una especificación JSON:
{
"title": "calendar"
}
Compilación de la especificación¶
You can change the calendar behavior and looks with parameters. If the same parameter is specified in different places, the earlier place listed below has the highest precedence. These are the places to specify parameters:
Query parameters¶
All parameters to the calendar url are put into the specification. The query parameters have the highest precedence.
Examples:
index.html?language=de
calendar.html?title=CALENDAR
specification_url¶
If you specify this query parameter, the editor configuration is loaded from this url, too. Query parameters are still more important than what is written in this file. The source format can be YAML or JSON.
Examples:
calendar.html?specification_url=https://github.com/niccokunzmann/open-web-calendar/raw/master/open_web_calendar/default_specification.yml
open_web_calendar.app.DEFAULT_SPECIFICATION¶
This is intended for developers and Python-internal.
from open_web_calendar.app import DEFAULT_SPECIFICATION
DEFAULT_SPECIFICATION['title'] = 'calendar'
OWC_SPECIFICATION¶
This is an optional environment variable. Please read more about it in the Server Configuration.
default_specification¶
This file contains the default parameters. They must not be hard-coded in the source code. All parameters are listed and documented there so this file can be used for reference. Do not modify this file, instead use the OWC_SPECIFICATION
environment variable.
Cómo añadir parámetros¶
If you add a new parameter as a developer:
- Añade el parámetro con un valor por defecto a la default_specification
- Añadir una implementación, dependiendo de su uso en
app.py
o a las plantillas de los archivos JavaScript. La especificación ya está disponible en todos ellos para su uso. - Add tests in features/configure-the-calendar.feature to check that the calendar responds to the feature.
- Add tests in features/edit-the-calendar.feature to make sure that the parameter can be used when a calendar is edited.
Especificación en el calendario¶
app.py compiles the specification from the given parameters in get_specification()
. In the template you can access the specification through the specification
variable. The specification is available to JavaScript as the specification
variable.
Ver también:
Especificación en la página Index¶
The default specification is available before the calendar is built via JavaScript in the configuration.default_specification
variable. There is a getSpecification() function which created the specification from the inputs. Generally, the specification
variable should be used.
Arquitectura¶
A continuación encontraras una imagen de la arquitectura.
La base de un calendario son las especificaciones, dadas en sus diversas formas. Estas especificaciones influyen en todos los pasos.
Una vez compilado las condiciones, los archivos del calendario (ics) se descargan de las ubicaciones de Internet.
A partir de los archivos del calendario se generan los eventos.
A continuación, se eligen diferentes vistas para mostrar los eventos.
Al final, esto conlleva cambios en el HTML y el estilo de la página web del calendario.
En la aplicación real, estos pasos están un poco mezclados y desordenados u omitidos, pero esto explica simplemente la idea básica e inicial detrás del procesamiento de eventos.