-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathcommunity.eml
218 lines (216 loc) · 16.3 KB
/
community.eml
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
let social_list_item ?(extra_html="") ?(text="") ?(href="") ~left_icon ~title _class =
<li class="flex items-center item mb-3 border-b border-separator_30 dark:border-code_window pb-2 <%s _class %>">
<span class="h-10 mr-4 hidden md:block text-primary dark:text-dark-primary min-w-[76px]"><%s! left_icon %></span>
<div class="flex flex-col">
<div class="flex items-center mb-2 md:mb-0">
<span class="h-10 mr-4 md:hidden block text-primary dark:text-dark-primary"><%s! left_icon %></span>
<p class="text-lg text-title dark:text-dark-title font-bold"><%s title %></p>
</div>
<p class=""><%s! extra_html %></p>
<p class="break-all text-content dark:text-dark-content"> <%s text %><a href="<%s href %>" class="text-primary dark:text-dark-primary hover:underline"><%s href %></a></p>
</div>
</li>
let render ?(selected_event = "All") ~old_conferences ~(events: Data.Event.t list * string list) (jobs_with_count : Data.Job.t list * int) =
Community_layout.single_column_layout
~title:"The Rocq Community"
~description:"Looking to interact with people who are also interested in Rocq? Find out about upcoming events, sign up for Rocq's Zulip and discover even more places to engage with people from the community!"
~canonical:Url.community
~current:Overview @@
<div class="lg:-mt-32 lg:pt-28 w-full border-b md:bg-transparent dark:border-none bg-cover bg-[url('/img/community/hero-background.svg')] dark:bg-[url('/img/community/dark-hero-background.svg')]">
<div class="w-full max-w-[88rem] mx-auto md:bg-[position:30%_100%] lg:bg-right-bottom bg-no-repeat">
<div class="container-fluid py-8 md:py-28 md:flex md:gap-20">
<div class="md:flex-grow">
<h1 class="text-title dark:text-dark-title text-2xl md:text-5xl tracking-wider">The Rocq Community</h1>
<p class="text-content dark:text-dark-content text-lg my-4 md:my-6 max-w-[80%]">
Explore events, community blogs, discussion forums, and more to connect with fellow enthusiasts!
</p>
<div class="lg:flex-row flex-col flex w-full md:max-w-[70%]">
<div class="flex lg:flex-row mt-8 mr-4">
<%s! Hero_section.hero_button ~left_icon:(Icons.zulip "w-6 h-6") ~right_icon:(Icons.link "w-5 h-5") ~extra_html:("<strong>Chat</strong> on") ~text:("Zulip") ~href:("https://rocq-prover.zulipchat.com/") "" %>
</div>
<div class="flex lg:flex-row mt-8 mr-4">
<%s! Hero_section.hero_button ~left_icon:(Icons.discourse "w-6 h-6") ~right_icon:(Icons.link "w-5 h-5") ~extra_html:("<strong>Share announcements</strong> on") ~text:("Discourse") ~href:("https://coq.zulipchat.com/") "" %>
</div>
<div class="flex lg:flex-row mt-8 mr-4">
<%s! Hero_section.hero_button ~left_icon:(Icons.github "w-6 h-6") ~right_icon:(Icons.link "w-5 h-5") ~extra_html:("<strong>Collaborate</strong> in") ~text:("Rocq-community") ~href:("https://github.com/coq-community/manifesto") "" %>
</div>
<!-- <div class="flex lg:flex-row mt-8 mr-4">
<%s! Hero_section.hero_button ~left_icon:(Icons.peertube "w-6 h-6") ~right_icon:(Icons.link "w-5 h-5") ~extra_html:("<b>Watch</b>") ~text:("Rocq Videos") ~href:("https://watch.ocaml.org/") "" %>
</div> -->
</div>
</div>
</div>
</div>
</div>
<div class="w-full">
<div class="container-fluid pt-6 pb-6">
<p class="uppercase text-sm text-content dark:text-dark-content tracking-widest font-medium my-4">Rocq on the internet</p>
<h2 class="font-bold text-2xl text-title dark:text-dark-title mb-4">Join Our Communities!</h2>
<p class="text-content dark:text-dark-content mt-4 mb-6">Ask and answer questions, share and discuss Rocq-related articles and posts, let people know about your projects and find collaborators</p>
<ul>
<p class="text-title dark:text-dark-title text-xl font-mono mb-2">Discussion</p>
<%s! social_list_item ~text:("Casual and high traffic discussions on the Rocq Prover, and ecosystem projects - ") ~href:("https://rocq-prover.zulipchat.com") ~left_icon:(Icons.zulip "w-10 h-10") ~title:("Zulip") "" %>
<%s! social_list_item ~text:("Anouncements and questions in English, Chinese, Spanish, French, German and Russian - ") ~href:("https://coq.discourse.group/") ~left_icon:(Icons.discourse "w-10 h-10") ~title:("Discourse") "" %>
<%s! social_list_item ~text:("Ask and help answer Rocq questions - ") ~href:("https://proofassistants.stackexchange.com/questions/tagged/coq") ~left_icon:(Icons.stackoverflow "w-10 h-10") ~title:("Proof Assistants Stack Exchange") "" %>
<%s! social_list_item ~text:("Follow Rocq questions accross all Stack Exchange sites with this RSS feed - ") ~href:("https://stackexchange.com/filters/299857/questions-tagged-coq-on-stackexchange-sites") ~left_icon:(Icons.stackoverflow "w-10 h-10") ~title:("Stack Overflow and other Stack Exchange sites") "" %>
</ul>
<ul>
<p class="text-title dark:text-dark-title text-xl font-mono mb-2">Development</p>
<%s! social_list_item ~text:("Submit bug reports and feature requests for the Rocq Prover - ") ~href:("https://github.com/rocq-prover/rocq/issues") ~left_icon:(Icons.github "w-10 h-10") ~title:("GitHub") "" %>
<%s! social_list_item ~text:("Participate in the collaborative maintenance of ecosystem packages - ") ~href:("https://github.com/coq-community/manifesto") ~left_icon:(Icons.github "w-10 h-10") ~title:("Rocq-community") "" %>
</ul>
<!--
<ul>
<p class="text-title dark:text-dark-title font-mono text-xl mb-2">Chat</p>
<%s! social_list_item ~text:("Chat with other members of the community on Discord - ") ~href:("https://discord.gg/cCYQbqN") ~left_icon:(Icons.discord "w-10 h-10") ~title:("Discord") "" %>
<%s! social_list_item ~text:("Chat with other members of the community at #ocaml on the Libera Chat IRC network ") ~href:"irc://irc.libera.chat/#ocaml" ~left_icon:(Icons.hashtag "w-10 h-10") ~title:("IRC Chat") "" %>
<%s! social_list_item ~extra_html:({|
<p class='text-content dark:text-dark-content'>
Chat in the <a class='text-primary dark:text-dark-primary hover:underline' href='https://matrix.to/#/#ocaml-lang:matrix.org'>#ocaml-lang</a>
Matrix chat room, or join the <a class='text-primary dark:text-dark-primary hover:underline' href='https://matrix.to/#/#ocaml-space:matrix.org'>#ocaml-space</a> Matrix space
</p>
|}) ~left_icon:(Icons.matrix "h-8 mr-0") ~title:("Matrix") "" %>
</ul> -->
<ul>
<p class="text-title dark:text-dark-title font-mono text-xl mb-2">Video</p>
<!--
<%s! social_list_item ~text:("Community videos such as previous Coq Conference presentations - ") ~href:("https://watch.ocaml.org/videos/recently-added") ~left_icon:(Icons.peertube "w-10 h-10") ~title:("Watch") "" %>
<%s! social_list_item ~text:("Live Streams about Coq - ") ~href:("https://twitch.tv/search?term=ocaml") ~left_icon:(Icons.twitch "w-10 h-10") ~title:("Twitch") "" %> -->
<%s! social_list_item ~text:("Rocq on YouTube - ") ~href:("https://www.youtube.com/results?search_query=Coq") ~left_icon:(Icons.youtube "w-10 h-10") ~title:("YouTube") "" %>
</ul>
<ul>
<p class="text-title dark:text-dark-title font-mono text-xl mb-2">Microblogging</p>
<!-- <%s! social_list_item ~text:("Latest announcements and events from the community - ") ~href:("https://twitter.com/CoqLang") ~left_icon:(Icons.twitter "w-10 h-10") ~title:("Twitter") "" %> -->
<!-- <%s! social_list_item ~text:("Rocq on Bluesky - ") ~href:("https://bsky.app/profile/ocaml.org") ~left_icon:(Icons.bluesky "w-10 h-10") ~title:("Bluesky") "" %> -->
<%s! social_list_item ~text:("The Rocq Prover on Mastodon - ") ~href:"https://mastodon.acm.org/@RocqProver" ~left_icon:(Icons.mastodon "h-8 mr-0") ~title:("Mastodon") "" %>
</ul>
</div>
</div>
<%s! Cards.Event.script %>
<div id="events" class="w-full bg-sand dark:dark-section-strong-contrast border border-separator_20">
<div class="container-fluid pt-6 pb-12">
<% let (upcoming_events, event_types) = events in %>
<p class="uppercase text-sm text-content dark:text-dark-content tracking-widest font-medium my-4">Events</p>
<% let event_num = match List.length upcoming_events with 0 -> "No Event" | 1 -> "Upcoming Events (1)" | l -> Printf.sprintf "Upcoming Events (%i)" l in %>
<h5 class="font-bold text-title dark:text-dark-white mb-4">
<%s event_num %>
</h5>
<div class="h-14 w-64 mt-2 border-primary dark:border-primary mb-4">
<form action="<%s Url.events %>" method="GET">
<label for="e" class="sr-only">Location</label>
<%s! Forms.select
~attrs:{|id="e" name="e" onchange="this.form.submit()"|}
~options:([("All", "Event Types")] @ ( event_types |> List.map (fun item -> (item, item))))
~selected:selected_event
"" %>
</form>
</div>
<div class="grid grid-cols-1 lg:grid-cols-3 md:grid-cols-2 gap-8">
<% upcoming_events |> List.iter (fun (event : Data.Event.t) -> %>
<%s! Cards.Event.upcoming_event event %>
<% ); %>
</div>
<a href="<%s Url.events %>" class="text-primary dark:text-dark-white hover:text-primary pr-2 flex mt-4 items-center dark:hover:text-dark-primary hover:underline group dark:underline"> View all Events<%s! Icons.arrow_small_right "h-5 w-5 ml-2 text-primary dark:text-dark-white group-hover:text-primary group-hover-underline dark:group-hover:text-dark-primary" %>
</a>
</div>
</div>
<div class="w-full bg-white dark:bg-dark-background">
<div class="container-fluid pt-6 pb-12">
<% let (jobs, jobs_count) = jobs_with_count in %>
<p class="uppercase text-sm text-content dark:text-dark-content tracking-widest font-medium my-4">Jobs</p>
<h5 class="font-bold text-title dark:text-dark-white mb-4">
<%s Printf.sprintf "Rocq Jobs (%i)" jobs_count %>
</h5>
<div class="grid lg:grid-cols-3 md:grid-cols-2 gap-8">
<% jobs |> List.iter (fun (job : Data.Job.t) -> %>
<%s! Cards.job_card job %>
<% ); %>
</div>
<a href="<%s Url.jobs %>" class="text-primary dark:text-dark-white hover:text-primary pr-2 flex mt-4 items-center dark:hover:text-dark-primary hover:underline group dark:underline"> View all Jobs<%s! Icons.arrow_small_right "h-5 w-5 ml-2 text-primary dark:text-dark-white group-hover:text-primary group-hover-underline dark:group-hover:text-dark-primary" %>
</a>
</div>
</div>
<div class="w-full section-mild-contrast dark:dark-section-mild-contrast">
<div class="container-fluid pt-6 pb-12">
<div class="flex justify-between flex-wrap md:flex-nowrap gap-5">
<div class="flex flex-col">
<p class="uppercase text-sm text-content dark:text-dark-content tracking-widest font-medium my-4">Conference records</p>
<h2 class="font-bold text-2xl text-title dark:text-dark-title mb-4">Past Conference Recordings & Materials</h2>
<p class="text-content dark:text-dark-content mb-6">Join us annually at the CoqPL workshop collocated with the Principles of Programming Languages Conference and
the Coq Workshop associated with the Interactive Theorem Proving Conference!</p>
<p class="text-content dark:text-dark-content">Below, you can find slides and documents from previous Rocq events.</p>
<% old_conferences |> List.iter (fun (conference : Data.Conference.t) -> %>
<a href="<%s Url.conference conference.slug %>" class="card dark:dark-card p-5 rounded-xl mt-4">
<p class="text-title dark:text-dark-title mb-2"><%s conference.title %></p>
<div class="flex items-center space-x-2 mb-3">
<%s! Icons.map_pin "h-5 w-5 text-primary dark:text-dark-primary mr-2" %>
<p class="text-content dark:text-dark-content"><%s conference.location %></p>
</div>
<div class="flex items-center space-x-2 mb-4">
<%s! Icons.calendar "h-5 w-5 text-primary dark:text-dark-primary mr-2" %>
<p class="text-content dark:text-dark-content"><%s conference.date %></p>
</div>
<div class="bg-primary dark:bg-dark-primary hover:bg-primary_dark dark:hover:bg-dark-primary_40 text-white dark:text-white py-1 px-2 rounded font-bold text-center w-32">Read More</div>
</a>
<% ); %>
<a href="/conferences" class="text-primary dark:text-dark-white hover:text-primary pr-2 flex mt-4 items-center dark:hover:text-dark-primary hover:underline group dark:underline"> View Conferences <%s! Icons.arrow_small_right "h-5 w-5 ml-2 text-primary dark:text-dark-white group-hover:text-primary group-hover-underline dark:group-hover:text-dark-primary" %>
</a>
</div>
</div>
</div>
</div>
<div class="w-full bg-white dark:bg-dark-background hidden md:block">
<div class="container-fluid py-12">
<a href="<%s Url.rocq_planet %>" class="block bg-gradient-to-r from-[#C54B21] dark:from-[#773E21] to-[#E18C34] dark:to-[#E7B573] hover:from-[#B63701] hover:to-[#EE8703] dark:hover:from-[#803814] dark:hover:to-[#F1B566] rounded-3xl">
<div class="bg-[url('/img/learn/banner-background.svg')] bg-cover flex justify-between px-14 py-9">
<div>
<p class="uppercase text-sm text-white dark:text-dark-white tracking-widest font-medium my-4">Blog</p>
<h2 class="font-bold text-2xl text-white dark:text-dark-white mb-4">Rocq Planet</h2>
<p class="text-sm text-white dark:text-dark-white font-medium my-4">Read Blog Posts and Watch Videos from the OCaml community!</p>
</div>
<div>
<div class="h-11 items-center mt-12 inline-flex py-1 px-4 bg-white rounded-xl text-center text-primary dark:text-dark-primary hover:underline text-lg ">
View all Articles and Videos
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="w-full section-blue-gradient dark:dark-no-mild-contrast">
<div class="container-fluid pt-6 pb-12">
<p class="uppercase text-sm text-dark-content dark:text-dark-content tracking-widest font-medium my-4">CODE OF CONDUCT</p>
<h2 class="font-bold text-2xl text-white dark:text-dark-title mb-8">Rocq's Code of Conduct: Online & Event Guidelines</h2>
<div class="flex justify-between flex-wrap md:flex-nowrap gap-5">
<div class="flex flex-col">
<div class="flex items-center">
<%s! Icons.legal "h-12 mr-4 text-white dark:text-dark-primary" %>
<p class="text-white dark:text-dark-title italic">Code of Conduct</p>
</div>
<p class="text-dark-content dark:text-dark-content">We have a comprehensive Code of Conduct in place covering privacy, language choices, and prohibiting unrelated discussions.
</p>
</div>
<div class="flex flex-col">
<div class="flex items-center">
<%s! Icons.environment "h-12 mr-4 text-white dark:text-dark-primary" %>
<p class="text-white dark:text-dark-title italic">Safe Environment</p>
</div>
<p class="text-dark-content dark:text-dark-content">Ground rules have been established to ensure a safe and welcoming atmosphere across platforms like GitHub and forums.
</p>
</div>
<div class="flex flex-col">
<div class="flex items-center">
<%s! Icons.lock "h-12 mr-4 text-white dark:text-dark-primary" %>
<p class="text-white dark:text-dark-title italic">Confidentiality</p>
</div>
<p class="text-dark-content dark:text-dark-content">Confidentiality is maintained during the reporting process to foster a positive, inclusive atmosphere for contributions.
</p>
</div>
</div>
<a href="<%s Url.code_of_conduct %>" class="text-white dark:text-dark-white hover:text-primary pr-2 flex mt-4 items-center dark:hover:text-dark-primary underline group">
View Code Of Conduct <%s! Icons.arrow_small_right "h-5 w-5 ml-2 text-white dark:text-dark-white group-hover:text-primary group-hover-underline dark:group-hover:text-dark-primary" %>
</a>
</div>
</div>
</div>