-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
atom.gleam
90 lines (67 loc) · 2.21 KB
/
atom.gleam
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
// IMPORTS ---------------------------------------------------------------------
import lustre/attribute.{attribute}
import lustre/element.{type Element, element}
// ELEMENTS --------------------------------------------------------------------
pub fn feed(children: List(Element(a))) {
element("feed", [attribute("xmlns", "http://www.w3.org/2005/Atom")], children)
}
pub fn entry(children: List(Element(a))) {
element("entry", [], children)
}
pub fn id(uri: String) {
element("id", [], [element.text(uri)])
}
pub fn title(title: String) {
element("title", [attribute("type", "html")], [element.text(title)])
}
pub fn updated(iso_timestamp: String) {
element("updated", [], [element.text(iso_timestamp)])
}
pub fn published(iso_timestamp: String) {
element("published", [], [element.text(iso_timestamp)])
}
pub fn author(children: List(Element(a))) {
element("author", [], children)
}
pub fn contributor(children: List(Element(a))) {
element("contributor", [], children)
}
pub fn source(children: List(Element(a))) {
element("source", [], children)
}
pub fn link(attributes: List(attribute.Attribute(a))) {
element.advanced("", "link", attributes, [], True, False)
}
pub fn name(name: String) {
element("name", [], [element.text(name)])
}
pub fn email(email: String) {
element("email", [], [element.text(email)])
}
pub fn uri(uri: String) {
element("uri", [], [element.text(uri)])
}
pub fn category(attributes: List(attribute.Attribute(a))) {
element.advanced("", "category", attributes, [], True, False)
}
pub fn generator(attributes: List(attribute.Attribute(a)), name: String) {
element("generator", attributes, [element.text(name)])
}
pub fn icon(path: String) {
element("icon", [], [element.text(path)])
}
pub fn logo(path: String) {
element("logo", [], [element.text(path)])
}
pub fn rights(rights: String) {
element("rights", [], [element.text(rights)])
}
pub fn subtitle(subtitle: String) {
element("subtitle", [attribute("type", "html")], [element.text(subtitle)])
}
pub fn summary(summary: String) {
element("summary", [attribute("type", "html")], [element.text(summary)])
}
pub fn content(content: String) {
element("content", [attribute("type", "html")], [element.text(content)])
}