aboutsummaryrefslogtreecommitdiff
path: root/doc/ref/vcomponent.texi
blob: 983a75e2d155813fecb57c0c495f7ca87f4df481 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
@node VComponents
@chapter VComponents

@defvr {Configuration Variable} calendar-files
List of filepaths
@end defvr

@defvr {Configuration Variable} default-calendar
@end defvr

@c ===== Concepts =====

@c - internal fields
@c DATA layout
@c how does multiple value work?

@c ===== BASE =====

@deftp {Record Type} <vline>

@c - key
@c - value
@c - parameters
@c - source

@defun make-vline key value [ht=(make-hash-table)]
@var{ht} is the hash table storing the parameters, can be explicitly
given if need for optimizations arrises.
@end defun

@defun vline? x
@end defun

@defun vline-key vline
@end defun

@deffn {Slot} vline-source vline
@end deffn

@deffn {Slot} value vline
@end deffn

@deffn {Slot} param vline key
@end deffn

@defun delete-parameter! vline key
@end defun

@defun parameters vline
Key a list of all parameters
@example
((key value) ...)
@end example
@end defun

@end deftp


@deftp {Record Type} <vcomponent>

@defun vcomponent? x
@end defun

@defun make-vcomponent [type='VIRTUAL]
@end defun

@defun children vcomponent
Returns all direct children of vcomponent, as a list of vcomponents.
@end defun

@deffn {Slot} parent vcomonent
@end deffn

@defun type vcomponent
Returns the type of this vcomponent, as a symbol. Probably one of
@code{VCALENDAR}, @code{VEVENT}, ...
@end defun

@defun add-child! parent child
Adds child to the parents child list, but also updates the child to
have parent in its parent slot
@end defun

@deffn {Prop} prop* vcomponent key
@deffnx {Prop} prop vcomponent key
@var{prop*} return the vline object, while @var{prop} is equivalent to
@lisp
(value (prop* vcomponent key))
@end lisp
@end deffn

@defun {(extract field)} vcomponent
@defunx {(extract* field)} vcomponent
Curried version of @var{prop}.
@end defun

@defun delete-property! component key
@end defun

@defun properties comopnent
@example
((key . value) ...)
@end example
@end defun

@end deftp

@defun copy-vcomponent vcomponent
@end defun


@defun x-property? symb
Does symbol start with ``X-''?
@end defun

@defun internal-field? symb [prefix="-"]
@end defun