Multiuser chat built with React and Firebase. Note that this is on the Firebase free plan, so if more than 50 users are on it things may go south.
A Pen by Brad Daily on CodePen.
Multiuser chat built with React and Firebase. Note that this is on the Firebase free plan, so if more than 50 users are on it things may go south.
A Pen by Brad Daily on CodePen.
#!/bin/bash | |
echo "" | |
# Root check | |
if [[ "$UID" -ne 0 ]]; then | |
echo "!! This script requires root privileges. sudo ./create_koken.sh" | |
echo "" | |
exit | |
fi |
<!-- Load recent archive albums --> | |
<div class="section-title item_meta">RECENT ALBUMS FROM THE ARCHIVE</div> | |
<koken:variable name="count" value="0" /> | |
<koken:load source="albums" filter:flat="true" filter:types="standard" limit="2"> | |
<!-- Loop over each album --> | |
<koken:loop> | |
<article> | |
<div class="article-inner"> | |
<koken:link> | |
<koken:img /> |
<koken:parent> | |
<ul class="sidebar-meta"> | |
<li class="sidebar-meta-head"><p>{{ album.title }}</p></li> | |
<li class="sidebar-meta-head"> | |
<p>Work | |
{{ _parent.album.context.position }}/{{ _parent.album.context.position }} | |
</p> | |
</li> | |
</koken:parent> |
<koken:if true="settings.albums_index_show_title"> | |
<h4> | |
<koken:load style="margin-left: 0.2em;"> | |
{{ album.title }} <!-- Prints SET title --> | |
</koken:load> | |
</h4> | |
<p>Work | |
<koken:load> |
<koken:if true="settings.albums_index_show_title"> | |
<h4> | |
<koken:load style="margin-left: 0.2em;"> | |
{{ album.title }} <!-- Prints SET title --> | |
</koken:load> | |
</h4> | |
<p>Work | |
<koken:load> |
# Enable gzip. Highly recommending for best peformance | |
gzip on; | |
gzip_comp_level 6; | |
gzip_types text/html text/css text/javascript application/json application/javascript application/x-javascript; | |
# By default, do not set expire headers | |
expires 0; | |
# Set expires header for console CSS and JS. | |
# These files are timestamped with each new release, so it is safe to cache them agressively. |
<koken:topics> | |
<koken:loop> | |
<koken:load source="album" filter:id="{{ album.id }}"> | |
<koken:loop> | |
<koken:img /> | |
</koken:loop> | |
</koken:load> | |
</koken:loop> | |
</koken:topics> |
<koken:topics> | |
<koken:loop> | |
<koken:load source="album" filter:id="album.id"> | |
<koken:loop> | |
<koken: img /> | |
</koken:loop> | |
</koken:load> | |
</koken:loop> | |
</koken:topics> |