Compare commits
10 commits
e55fbb5b67
...
55ad283eff
Author | SHA1 | Date | |
---|---|---|---|
|
55ad283eff | ||
|
9aa9815a78 | ||
|
dea82c4913 | ||
|
44c17d0b56 | ||
|
cd92e95a10 | ||
|
db0a088492 | ||
|
81e9489b8b | ||
|
6cca2a6ab5 | ||
|
79de710800 | ||
|
31022358ed |
283 changed files with 3619 additions and 147 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
.DS_Store
|
||||
.htpasswd
|
||||
werc/etc/*
|
||||
transfer/uploads/*
|
||||
|
|
|
@ -1,23 +1,51 @@
|
|||
services:
|
||||
werc:
|
||||
build:
|
||||
network: host
|
||||
dockerfile: Dockerfile
|
||||
context: .
|
||||
container_name: werc
|
||||
ports:
|
||||
- 80:80
|
||||
- 3080:80
|
||||
environment:
|
||||
- HOSTNAME=thirdculture.top
|
||||
volumes:
|
||||
- werc:/var/www/werc
|
||||
- lighttpd:/etc/lighttpd
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
tty: true
|
||||
networks:
|
||||
- default-werc
|
||||
|
||||
gossa:
|
||||
image: pldubouilh/gossa
|
||||
container_name: gossa
|
||||
ports:
|
||||
- 8001:8001
|
||||
- 3001:8001
|
||||
volumes:
|
||||
- ./werc/sites/thirdculture.top/_files:/shared
|
||||
- ./werc/sites/thirdculture.top/_files:/shared
|
||||
- ./werc/sites/ppl.thirdculture.top:/shared/people
|
||||
networks:
|
||||
- default-werc
|
||||
|
||||
transfer:
|
||||
image: dutchcoders/transfer.sh:latest
|
||||
container_name: transfer
|
||||
ports:
|
||||
- "3880:8080"
|
||||
command: ["--provider", "local", "--basedir", "/uploads/", "--web-path", "/web/"]
|
||||
volumes:
|
||||
- ./transfer/uploads:/uploads
|
||||
- ./transfer/tshweb:/web
|
||||
restart: always
|
||||
networks:
|
||||
- default-werc
|
||||
|
||||
networks:
|
||||
default-werc:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
werc:
|
||||
driver: local
|
||||
|
|
6
etc/lighttpd/conf.d/events.thridculture.top.conf
Normal file
6
etc/lighttpd/conf.d/events.thridculture.top.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
$HTTP["host"] =~ "^events\.thirdculture\.top$" {
|
||||
index-file.names = ( )
|
||||
server.error-handler-404 = "/werc.rc"
|
||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||
cgi.assign += ( ".rc" => "")
|
||||
}
|
|
@ -14,7 +14,11 @@ $HTTP["host"] =~ "^files\.thirdculture\.top$" {
|
|||
"" => (
|
||||
(
|
||||
"host" => "gossa",
|
||||
"port" => 8001
|
||||
"port" => 8001,
|
||||
"headers" => (
|
||||
"Host" => "$HTTP_HOST",
|
||||
"X-Forwarded-For" => "$REMOTE_ADDR"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
6
etc/lighttpd/conf.d/music.thridculture.top.conf
Normal file
6
etc/lighttpd/conf.d/music.thridculture.top.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
$HTTP["host"] =~ "^music\.thirdculture\.top$" {
|
||||
index-file.names = ( )
|
||||
server.error-handler-404 = "/werc.rc"
|
||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||
cgi.assign += ( ".rc" => "")
|
||||
}
|
6
etc/lighttpd/conf.d/social.thridculture.top.conf
Normal file
6
etc/lighttpd/conf.d/social.thridculture.top.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
$HTTP["host"] =~ "^social\.thirdculture\.top$" {
|
||||
index-file.names = ( )
|
||||
server.error-handler-404 = "/werc.rc"
|
||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||
cgi.assign += ( ".rc" => "")
|
||||
}
|
19
etc/lighttpd/conf.d/up.thirdculture.top.conf
Normal file
19
etc/lighttpd/conf.d/up.thirdculture.top.conf
Normal file
|
@ -0,0 +1,19 @@
|
|||
$HTTP["host"] =~ "up\.thirdculture\.top" {
|
||||
server.document-root = "/var/www/localhost/htdocs"
|
||||
|
||||
proxy.server = (
|
||||
"" => (
|
||||
"localhost" => (
|
||||
"host" => "transfer",
|
||||
"port" => 8080,
|
||||
"path" => "/web",
|
||||
"headers" => (
|
||||
"Host" => "$HTTP_HOST",
|
||||
"X-Forwarded-For" => "$REMOTE_ADDR"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
proxy.balance = "round-robin"
|
||||
}
|
6
etc/lighttpd/conf.d/visual.thridculture.top.conf
Normal file
6
etc/lighttpd/conf.d/visual.thridculture.top.conf
Normal file
|
@ -0,0 +1,6 @@
|
|||
$HTTP["host"] =~ "^visual\.thirdculture\.top$" {
|
||||
index-file.names = ( )
|
||||
server.error-handler-404 = "/werc.rc"
|
||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||
cgi.assign += ( ".rc" => "")
|
||||
}
|
|
@ -20,6 +20,7 @@ server.modules = (
|
|||
"mod_access",
|
||||
# "mod_cml",
|
||||
# "mod_trigger_b4_dl",
|
||||
"mod_authn_file",
|
||||
"mod_auth",
|
||||
# "mod_status",
|
||||
# "mod_setenv",
|
||||
|
@ -37,7 +38,10 @@ server.modules = (
|
|||
"mod_accesslog"
|
||||
)
|
||||
# }}}
|
||||
|
||||
# DEBUG
|
||||
#setenv.add-response-header = ( "X-Debug" => "true" )
|
||||
#debug.log-request-header = "enable"
|
||||
#debug.log-response-header = "enable"
|
||||
# {{{ includes
|
||||
include "mime-types.conf"
|
||||
# uncomment for cgi support
|
||||
|
|
38
scripts/add_person.sh
Executable file
38
scripts/add_person.sh
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Ensure the script is run with exactly two arguments
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "Usage: $0 <path> <name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Define variables
|
||||
path="$1"
|
||||
name="$2"
|
||||
|
||||
# Create the folder structure
|
||||
mkdir -p "$path/$name/_werc" "$path/$name/blog/_werc"
|
||||
|
||||
# Create the first config file (not under blog)
|
||||
cat > "$path/$name/_werc/config" <<EOF
|
||||
extraHeaders='<link rel="stylesheet" type="text/css" href="_werc/style.css">'
|
||||
conf_enable_wiki
|
||||
conf_enable_cssedit $name
|
||||
css_file='_werc/style.css'
|
||||
EOF
|
||||
|
||||
# Create the second config file (under blog)
|
||||
cat > "$path/$name/blog/_werc/config" <<EOF
|
||||
conf_enable_wiki
|
||||
conf_enable_blog
|
||||
conf_blog_only_pull=0
|
||||
conf_blog_editors=$name
|
||||
blogTitle='$name Feed'
|
||||
blogDesc=''
|
||||
EOF
|
||||
|
||||
# Create the style.css file
|
||||
echo "/* Put custom styles here */" > "$path/$name/_werc/style.css"
|
||||
|
||||
# Output a success message
|
||||
echo "Folder structure created successfully at $path/$name"
|
35
scripts/add_web_person.rc
Normal file
35
scripts/add_web_person.rc
Normal file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/rc
|
||||
|
||||
# Check if the correct number of arguments are provided
|
||||
if (~ $#argv 2) {
|
||||
echo "Usage: $0 <path> <name>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Assign arguments to variables
|
||||
path = $argv[1]
|
||||
name = $argv[2]
|
||||
|
||||
# Create the folder structure
|
||||
mkdir -p $path/$name/_werc
|
||||
mkdir -p $path/$name/blog/_werc
|
||||
|
||||
# Create the first config file (not under blog)
|
||||
echo "extraHeaders='<link rel=\"stylesheet\" type=\"text/css\" href=\"_werc/style.css\">'" > $path/$name/_werc/config
|
||||
echo "conf_enable_wiki" >> $path/$name/_werc/config
|
||||
echo "conf_enable_cssedit $name" >> $path/$name/_werc/config
|
||||
echo "css_file='_werc/style.css'" >> $path/$name/_werc/config
|
||||
echo "" >> $path/$name/_werc/config
|
||||
|
||||
# Create the second config file (under blog)
|
||||
echo "conf_enable_wiki" > $path/$name/blog/_werc/config
|
||||
echo "conf_enable_blog" >> $path/$name/blog/_werc/config
|
||||
echo "conf_blog_only_pull=0" >> $path/$name/blog/_werc/config
|
||||
echo "conf_blog_editors=$name" >> $path/$name/blog/_werc/config
|
||||
echo "" >> $path/$name/blog/_werc/config
|
||||
|
||||
# Create the style.css file
|
||||
touch $path/$name/_werc/style.css
|
||||
|
||||
# Output a success message
|
||||
echo "Folder structure created successfully at $path/$name"
|
14
transfer/tshweb/404.html
Normal file
14
transfer/tshweb/404.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="styles/main.css">
|
||||
</head>
|
||||
<body>
|
||||
<br/>
|
||||
<p style="color: red; text-align: center;">Content not found!</p>
|
||||
<p style="color: red; text-align: center;">404</p>
|
||||
</body>
|
||||
</html>
|
31
transfer/tshweb/download.audio.html
Normal file
31
transfer/tshweb/download.audio.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="../styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<br />
|
||||
<h2 class="page-title">{{.Filename}}</h2>
|
||||
<code>
|
||||
type: <b>{{.ContentType}}</b>
|
||||
size: <b>{{.ContentLength | format "#,###."}}</b> bytes
|
||||
</code>
|
||||
<br />
|
||||
<audio id="audio-player" class="preview-audio" controls preload="auto" data-setup='{}'>
|
||||
<source src="{{.URL}}" type="{{.ContentType}}">
|
||||
</source>
|
||||
</audio>
|
||||
<p class="dwn"><a href="{{.URLGet}}"> download</a></p>
|
||||
<div class="qrcode">
|
||||
<img src="data:image/png;base64,{{.QRCode}}" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
27
transfer/tshweb/download.html
Normal file
27
transfer/tshweb/download.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="../styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<br />
|
||||
<h2 class="page-title">{{.Filename}}</h2>
|
||||
<code>
|
||||
type: <b>{{.ContentType}}</b>
|
||||
size: <b>{{.ContentLength | format "#,###."}}</b> bytes
|
||||
</code>
|
||||
<br />
|
||||
<p class="dwn"><a href="{{.URLGet}}"> download</a></p>
|
||||
<div class="qrcode">
|
||||
<img src="data:image/png;base64,{{.QRCode}}" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
27
transfer/tshweb/download.image.html
Normal file
27
transfer/tshweb/download.image.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="../styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<br />
|
||||
<h2 class="page-title">{{.Filename}}</h2>
|
||||
<code>
|
||||
type: <b>{{.ContentType}}</b>
|
||||
size: <b>{{.ContentLength | format "#,###."}}</b> bytes
|
||||
</code>
|
||||
<br />
|
||||
<div class="preview-image"><img src="{{.URL}}" alt=""></div>
|
||||
<p class="dwn"><a href="{{.URLGet}}"> download</a></p>
|
||||
<div class="qrcode">
|
||||
<img src="data:image/png;base64,{{.QRCode}}" />
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
28
transfer/tshweb/download.markdown.html
Normal file
28
transfer/tshweb/download.markdown.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="../styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<br />
|
||||
<h2 class="page-title">{{.Filename}}</h2>
|
||||
<code>
|
||||
type: <b>{{.ContentType}}</b>
|
||||
size: <b>{{.ContentLength | format "#,###."}}</b> bytes
|
||||
</code>
|
||||
<br />
|
||||
<div class="md-preview">{{.Content}}</div>
|
||||
<p class="dwn"><a href="{{.URLGet}}"> download</a></p>
|
||||
<div class="qrcode">
|
||||
<img src="data:image/png;base64,{{.QRCode}}" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
31
transfer/tshweb/download.video.html
Normal file
31
transfer/tshweb/download.video.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="../styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<br />
|
||||
<h2 class="page-title">{{.Filename}}</h2>
|
||||
<code>
|
||||
type: <b>{{.ContentType}}</b>
|
||||
size: <b>{{.ContentLength | format "#,###."}}</b> bytes
|
||||
</code>
|
||||
<br />
|
||||
<video id="video-player" class="prev-video" controls preload="auto" data-setup='{}'>
|
||||
<source src="{{.URL}}" type="{{.ContentType}}">
|
||||
</source>
|
||||
</video>
|
||||
<p class="dwn"><a href="{{.URLGet}}"> download</a></p>
|
||||
<div class="qrcode">
|
||||
<img src="data:image/png;base64,{{.QRCode}}" />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
BIN
transfer/tshweb/favicon.ico
Normal file
BIN
transfer/tshweb/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
4
transfer/tshweb/includes/download-bottom.html
Normal file
4
transfer/tshweb/includes/download-bottom.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<a href="{{.URLGet}}" class="btn-cta btn"> download</i> </a> <br/><br/>
|
||||
<div class="qrcode">
|
||||
<img src="data:image/png;base64,{{.QRCode}}"/>
|
||||
</div>
|
4
transfer/tshweb/includes/download-top.html
Normal file
4
transfer/tshweb/includes/download-top.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
<br/>
|
||||
<h2 class="page-title">{{.Filename}}</h2>
|
||||
<h4>type: <b>{{.ContentType}}</b></h4>
|
||||
<h4>size: <b>{{.ContentLength | format "#,###."}}</b> bytes</h4>
|
37
transfer/tshweb/index.html
Normal file
37
transfer/tshweb/index.html
Normal file
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1><span class="accent">Third Culture</span> Upload</h1>
|
||||
<form action="https://up.thirdculture.top" method="POST" enctype="multipart/form-data">
|
||||
<label for="fileInput">Choose file:</label>
|
||||
<input type="file" name="file" id="fileInput" required />
|
||||
<br><br>
|
||||
<button type="submit">Upload</button>
|
||||
</form>
|
||||
<p><br></p>
|
||||
<p>Make sure to copy the link in the next page!</p>
|
||||
<p>More info on third culture upload <a href="scripts/info.html">here</a>.</p>
|
||||
<p><br></p>
|
||||
<svg version="1.1" style="fill:none;width:75px;height:75px;" width="50" height="50" viewBox="0 0 50 50" id="svg3" sodipodi:docname="logo.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs id="defs3" />
|
||||
<path style="fill:#000000;stroke:#000000;stroke-width:1.51515px;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 0.75757498,49.242423 v 0 V 0.75757498 H 49.242425 V 49.242423 Z" id="path1" />
|
||||
<path style="fill:none;stroke:#a4d1ad;stroke-width:1.51515px;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 20.454546,38.636362 v 0 l 9.090908,-9.090909 m -9.090908,0 v 0 l 9.090908,9.090909" id="path2" />
|
||||
<path style="fill:none;stroke:#aea3f0;stroke-width:4.24243px;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 6.8181812,40.151514 v 0 L 25,9.8484837 43.181819,40.151514" id="path3" />
|
||||
</svg>
|
||||
</body>
|
||||
|
||||
</html>
|
16
transfer/tshweb/scripts/info.html
Normal file
16
transfer/tshweb/scripts/info.html
Normal file
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Third Culture Upload</title>
|
||||
<link rel="stylesheet" href="../styles/main.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>up.thirdculture.top info</h1>
|
||||
<p>Third culture upload supports uploading through the browser but also using the terminal as well you can find more details on the <a href="https://github.com/dutchcoders/transfer.sh">transfer.sh github</a>. I will include some simple examples here for quick reference.</p>
|
||||
</body>
|
||||
|
||||
</html>
|
99
transfer/tshweb/styles/main.css
Normal file
99
transfer/tshweb/styles/main.css
Normal file
|
@ -0,0 +1,99 @@
|
|||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #121212;
|
||||
color: #e0e0e0;
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #9b4d96;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.preview-image {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.preview-image img {
|
||||
max-width: 600px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
text-align: center;
|
||||
color: #9b4d96;
|
||||
}
|
||||
|
||||
.accent {
|
||||
color: #7bbc7f;
|
||||
}
|
||||
|
||||
form {
|
||||
background-color: #1e1e1e;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
width: 300px;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: 16px;
|
||||
color: #ddd;
|
||||
margin-bottom: 10px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
input[type="file"] {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
margin: 10px 0;
|
||||
border: 2px solid #9b4d96;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
input[type="file"]:hover {
|
||||
border-color: #be2b90;
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: #9b4d96;
|
||||
color: #fff;
|
||||
padding: 12px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.dwn {
|
||||
text-align: center;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #be2b90;
|
||||
}
|
||||
|
||||
button:active {
|
||||
background-color: #9b4d96;
|
||||
}
|
||||
|
||||
.qrcode {
|
||||
text-align: center;
|
||||
}
|
|
@ -49,7 +49,7 @@ fn blagh_init {
|
|||
if not if(~ $req_path $blagh_uri^index.rss)
|
||||
blagh_setup_feed_handlers rss20.tpl 'text/xml; charset=utf-8'
|
||||
|
||||
if not if(~ $req_path $blagh_uri^feed.json)
|
||||
if not if(~ $req_path $blagh_uri^feed.json)
|
||||
blagh_setup_feed_handlers jsonfeed.tpl 'application/json; charset=utf-8'
|
||||
|
||||
if not if(~ $req_path $blagh_uri^new_post && ! ~ $#editor_mode 0) {
|
||||
|
@ -101,16 +101,16 @@ fn get_post_list {
|
|||
}
|
||||
|
||||
fn mkbpost {
|
||||
bptext=$1
|
||||
bpdate=$2
|
||||
bptitle=$3
|
||||
bpid=$4
|
||||
bptext=$1;
|
||||
bpdate=$2;
|
||||
bptitle=$3;
|
||||
bpid=$4;
|
||||
_status=()
|
||||
if(~ $"bptext '')
|
||||
_status=($_status 'You need to provide a post body.')
|
||||
if(! ~ $"bpdate [0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9])
|
||||
_status=($_status 'Invalid date: '''^$"bpdate^'''') # XXX Should make semantic check.
|
||||
|
||||
|
||||
if(~ $#_status 0) {
|
||||
umask 002 # Let group write
|
||||
if(! ~ $"bpid '')
|
||||
|
|
|
@ -19,7 +19,7 @@ fn statpost {
|
|||
<link>%($base_url^$req_path%)</link>
|
||||
<description><![CDATA[%($blogDesc%)]]></description>
|
||||
<language>en-us</language>
|
||||
<generator><![CDATA[Tom Duff's rc, and Kris Maglione's clever hackery]]></generator>
|
||||
<generator><![CDATA[werc blagh app]]></generator>
|
||||
%{
|
||||
# <webMaster>uriel99+rss@gmail.com (Uriel)</webMaster>
|
||||
# rfc2822 last time channel content changed.
|
||||
|
@ -32,7 +32,7 @@ fn statpost {
|
|||
%}
|
||||
<item>
|
||||
<title><![CDATA[%($title%)]]></title>
|
||||
<author><![CDATA[%($by%)@noreply.cat-v.org (%($by%))]]></author>
|
||||
<author><![CDATA[%($by%)]]></author>
|
||||
<link>%($post_uri%)</link>
|
||||
<guid isPermaLink="true">%($post_uri%)</guid>
|
||||
<pubDate>%($pubdate%)</pubDate>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
% notices_handler
|
||||
<form action="" method="post">
|
||||
<textarea name="comment_text" id="comment_text" cols="80" rows="16">%($"saved_comment_text%)</textarea>
|
||||
<textarea name="comment_text" id="comment_text">%($"saved_comment_text%)</textarea>
|
||||
<br>
|
||||
<input type="submit" name="bridge_post" value="Post a comment">
|
||||
|
||||
|
|
33
werc/apps/cssedit/app.rc
Normal file
33
werc/apps/cssedit/app.rc
Normal file
|
@ -0,0 +1,33 @@
|
|||
fn conf_enable_cssedit {
|
||||
enable_cssedit=yes
|
||||
cssedit_editors_groups=$*
|
||||
conf_enable_app cssedit
|
||||
css_file='_werc/style.css' # Default location, can be changed
|
||||
}
|
||||
|
||||
fn cssedit_init {
|
||||
if(! ~ $#enable_cssedit 0 && check_user $cssedit_editors_groups) {
|
||||
lp=$local_path
|
||||
lp=`{echo $lp | sed 's/index$//'}
|
||||
cssedit_file=$"lp$"css_file
|
||||
|
||||
if(~ 1 $#post_arg_cssedit_edit $#post_arg_cssedit_preview) {
|
||||
handler_body_main=(tpl_handler `{get_lib_file cssedit/edit.tpl apps/cssedit/edit.tpl})
|
||||
}
|
||||
|
||||
if not if(! ~ '' $"post_arg_cssedit_save $"post_arg_css_text) {
|
||||
save_css
|
||||
}
|
||||
|
||||
if not if(~ $"handler_body_main '' || {~ $REQUEST_METHOD GET && test -f $cssedit_file}) {
|
||||
ll_add handlers_bar_left tpl_handler apps/cssedit/sidebar_controls.tpl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn save_css {
|
||||
umask 002
|
||||
echo $post_arg_css_text > $cssedit_file
|
||||
post_redirect $base_url^$req_path
|
||||
}
|
||||
|
27
werc/apps/cssedit/edit.tpl
Normal file
27
werc/apps/cssedit/edit.tpl
Normal file
|
@ -0,0 +1,27 @@
|
|||
<div>
|
||||
<h1>Editing CSS: <a href="%($css_file%)">%($css_file%)</a></h1>
|
||||
<br>
|
||||
<form action="" method="POST">
|
||||
<fieldset>
|
||||
<textarea name="css_text" id="css_text" cols="80" rows="43">%{
|
||||
if(~ $#post_arg_css_text 0 && test -f $cssedit_file)
|
||||
cat $cssedit_file | escape_html
|
||||
if not
|
||||
echo -n $post_arg_css_text | escape_html
|
||||
%}</textarea>
|
||||
<br>
|
||||
<a class="bu" href="%($css_file%)" download="%(style`{date -n}.css%)">Download Stylesheet</a>
|
||||
<hr>
|
||||
<input type="submit" name="cssedit_save" value="Save">
|
||||
<small><strong>Note:</strong> Saved changes are final, historical versions of stylesheet are not kept.</small>
|
||||
</fieldset>
|
||||
</form>
|
||||
<h2>Tips</h2>
|
||||
<div class="info">
|
||||
<ul>
|
||||
<li>Pressing <code>F12</code> in your browser and editing the style.css that way is a good way to test/preview your changes out before committing to them using this tool.</li>
|
||||
<li>Using a computer is suggested for these kind of changes</li>
|
||||
<li>Learn css: <a href="https://www.w3schools.com/Css/css_intro.asp">w3schools</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
3
werc/apps/cssedit/sidebar_controls.tpl
Normal file
3
werc/apps/cssedit/sidebar_controls.tpl
Normal file
|
@ -0,0 +1,3 @@
|
|||
<form action="" method="POST">
|
||||
<input type="submit" name="cssedit_edit" value="Edit CSS" />
|
||||
</form>
|
19
werc/apps/dirdir/README.md
Normal file
19
werc/apps/dirdir/README.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# RisingThumb's build of dirdir
|
||||
|
||||
dirdir is werc's directory management tool.
|
||||
|
||||
## Features
|
||||
|
||||
This adds a few features to dirdir.
|
||||
|
||||
- Ability to edit larger text files
|
||||
- Ability to edit template files
|
||||
- Ability to upload files(optionally under a different name)
|
||||
- Ability to delete a page
|
||||
- Ability to delete a folder
|
||||
|
||||
## Roadmap
|
||||
|
||||
- Ideally take some filetype info for making new pages. Would be nice to make tpl files this way.
|
||||
- User permissioning around editing template files (default config off?)
|
||||
- Possibly allowing different markdown/formatters to be used.
|
|
@ -2,6 +2,9 @@ fn conf_enable_wiki {
|
|||
enable_wiki=yes
|
||||
wiki_editors_groups=$*
|
||||
conf_enable_app dirdir
|
||||
|
||||
if(~ $"conf_dirdir_index_type '')
|
||||
conf_dirdir_index_type='md'
|
||||
}
|
||||
|
||||
fn dirdir_init {
|
||||
|
@ -11,16 +14,34 @@ fn dirdir_init {
|
|||
# maybe it should, but for now we can fix it up here.
|
||||
if(~ $lp */)
|
||||
lp=$lp^'index'
|
||||
dirdir_file=$lp.md
|
||||
dirdir_file=$lp.^$"conf_dirdir_index_type
|
||||
if (test -f $lp.tpl) {
|
||||
dirdir_file=$lp.tpl
|
||||
}
|
||||
dirdir_dir=$dirdir_file^'_werc/dirdir/'
|
||||
|
||||
if(~ 1 $#post_arg_dirdir_edit $#post_arg_dirdir_preview)
|
||||
handler_body_main=(tpl_handler `{get_lib_file dirdir/edit.tpl apps/dirdir/edit.tpl})
|
||||
|
||||
if not if(~ 1 $#post_arg_dirdir_delete && ! ~ $#post_arg_dirdir_delete_yes 1)
|
||||
handler_body_main=(tpl_handler `{get_lib_file dirdir/delete_sure.tpl apps/dirdir/delete_sure.tpl})
|
||||
if not if(~ 1 $#post_arg_dirdir_delete_folder && ! ~ $#post_arg_dirdir_delete_yes 1)
|
||||
handler_body_main=(tpl_handler `{get_lib_file dirdir/delete_sure.tpl apps/dirdir/delete_sure.tpl})
|
||||
if not if(~ 1 $#post_arg_dirdir_delete && ! ~ $#post_arg_dirdir_delete_yes 0)
|
||||
rm $dirdir_file
|
||||
if not if(~ 1 $#post_arg_dirdir_delete_folder && ! ~ $#post_arg_dirdir_delete_yes 0)
|
||||
rm -rf `{dirname $dirdir_file}
|
||||
if not if(~ 1 $#post_arg_dirdir_add_child_file && ! ~ $#post_arg_dirdir_search 0)
|
||||
touch `{dirname $dirdir_file}^'/'^$post_arg_dirdir_search^'.md'
|
||||
if not if(~ 1 $#post_arg_dirdir_add_child_folder! ~ $#post_arg_dirdir_search 0)
|
||||
mkdir `{dirname $dirdir_file}^'/'^$post_arg_dirdir_search
|
||||
if not if(~ 1 $#post_arg_dirdir_upload_file_pressed && ! ~ $#post_arg_dirdir_file_name 0 && ! ~ $post_arg_dirdir_file_name "" && ! ~ $#post_arg_dirdir_upload_file 0)
|
||||
mv /tmp/werc_file.*.data `{dirname $dirdir_file}^'/'^$post_arg_dirdir_file_name
|
||||
if not if(~ 1 $#post_arg_dirdir_upload_file_pressed && ! ~ $#post_arg_dirdir_upload_file 0)
|
||||
mv /tmp/werc_file.*.data `{dirname $dirdir_file}^'/'^$post_arg_dirdir_upload_file
|
||||
if not if(! ~ '' $"post_arg_dirdir_save $"post_arg_edit_text)
|
||||
save_page
|
||||
|
||||
if not if(~ $"handler_body_main '' || {~ $REQUEST_METHOD GET && test -f $local_path.md})
|
||||
if not if(~ $"handler_body_main '' || {~ $REQUEST_METHOD GET && test -f $local_path.md} || {~ $REQUEST_METHOD GET && test -f $local_path.tpl} )
|
||||
ll_add handlers_bar_left tpl_handler apps/dirdir/sidebar_controls.tpl
|
||||
}
|
||||
}
|
||||
|
@ -32,9 +53,7 @@ fn save_page {
|
|||
|
||||
# XXX Use a tmp file and mv(1) to ensure updates are atomic?
|
||||
echo $logged_user > $dirdir_verdir/author
|
||||
echo $post_arg_edit_text > $dirdir_verdir/data
|
||||
echo $post_arg_edit_text > $dirdir_file
|
||||
|
||||
echo $post_arg_edit_text | dos2unix > $dirdir_verdir/data
|
||||
echo $post_arg_edit_text | dos2unix > $dirdir_file
|
||||
post_redirect $base_url^$req_path
|
||||
#notify_notes='Saved <a href="'$"req_path'">'$"req_path'</a>!'
|
||||
}
|
||||
|
|
9
werc/apps/dirdir/delete_sure.tpl
Executable file
9
werc/apps/dirdir/delete_sure.tpl
Executable file
|
@ -0,0 +1,9 @@
|
|||
<form action="" method="POST">
|
||||
|
||||
% if(~ 1 $#post_arg_dirdir_delete ) {
|
||||
% echo '<input type="hidden" name="dirdir_delete" value="Delete page" />' }
|
||||
% if(~ 1 $#post_arg_dirdir_delete_folder ) {
|
||||
% echo '<input type="hidden" name="dirdir_delete_folder" value="Delete folder" />' }
|
||||
|
||||
<input type="submit" name="dirdir_delete_yes" value="Are you sure you want to delete?" />
|
||||
</form>
|
|
@ -1,9 +1,10 @@
|
|||
<div>
|
||||
<h1>Editing: <a href="%($req_path%)">%($req_path%)</a></h1>
|
||||
<br>
|
||||
<form action="" method="POST">
|
||||
<form action="" method="POST" enctype="multipart/form-data">
|
||||
<textarea name="edit_text" id="edit_text" cols="80" rows="43">%{
|
||||
# FIXME Extra trailing new lines get added to the content somehow, should avoid it.
|
||||
echo $dirdir_search
|
||||
if(~ $#post_arg_edit_text 0 && test -f $dirdir_file)
|
||||
cat $dirdir_file | escape_html
|
||||
if not
|
||||
|
@ -20,6 +21,6 @@
|
|||
% if(! ~ $"post_arg_dirdir_preview '') {
|
||||
<h2>Preview:</h2>
|
||||
<div id="preview">
|
||||
% echo $post_arg_edit_text | $formatter
|
||||
% echo $post_arg_edit_text | dos2unix | $formatter
|
||||
</div>
|
||||
% }
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
<form action="" method="POST">
|
||||
<input type="submit" name="dirdir_edit" value="Edit page" />
|
||||
<input type="submit" name="dirdir_edit" value="Edit page" /><br/>
|
||||
</form>
|
||||
<form action="" method="POST">
|
||||
<input type="search" id="test-search" name="dirdir_search" placeholder="Page or folder to add"/><br/>
|
||||
<input type="submit" name="dirdir_add_child_file" value="New Page" />
|
||||
<input type="submit" name="dirdir_add_child_folder" value="New Folder" /><hr />
|
||||
</form>
|
||||
<form action="" method="POST">
|
||||
<hr style="color: red"/><input type="submit" name="dirdir_delete_folder" value="Delete folder" />
|
||||
</form>
|
||||
<form action="" method="POST">
|
||||
<input type="submit" name="dirdir_delete" value="Delete page" /><hr style="color: red"/>
|
||||
</form>
|
1
werc/apps/gallery
Submodule
1
werc/apps/gallery
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 65ecf50e317daa8c463b0375f1a57bd388b5bca4
|
144
werc/apps/ico/app.rc
Normal file
144
werc/apps/ico/app.rc
Normal file
|
@ -0,0 +1,144 @@
|
|||
fn conf_enable_ico {
|
||||
ico_uri=$conf_wd
|
||||
ico_dirs=$*
|
||||
if(~ $#ico_dirs 0)
|
||||
ico_dirs=( . )
|
||||
conf_enable_app ico
|
||||
|
||||
if(~ $"conf_ico_editors '')
|
||||
conf_ico_editors=ico-editors
|
||||
|
||||
if(~ $"conf_max_posts_per_page '')
|
||||
conf_max_posts_per_page=32
|
||||
|
||||
if(~ $"conf_ico_categories '')
|
||||
conf_ico_categories=(general)
|
||||
|
||||
if(~ $"conf_ico_max_image_size '')
|
||||
conf_ico_max_image_size=5242880
|
||||
}
|
||||
|
||||
fn ico_init {
|
||||
if(~ $#ico_dirs 0 && ~ $req_path */[iI]co/*) {
|
||||
ico_uri=`{echo $req_path | sed 's,(/[iI]co/).*,\1,'}
|
||||
ico_dirs=( . )
|
||||
}
|
||||
|
||||
if(! ~ $#ico_dirs 0) {
|
||||
ico_url=$base_url^$ico_uri
|
||||
ico_root=$sitedir^$ico_uri
|
||||
if(check_user $conf_ico_editors) {
|
||||
editor_mode=on
|
||||
if(~ $"post_arg_date '')
|
||||
post_date=`{/bin/date -I|sed 's,-,/,g'}
|
||||
if not
|
||||
post_date=$post_arg_date
|
||||
ll_add handlers_foot_body template `{get_lib_file ico/foot.tpl apps/ico/foot.tpl}
|
||||
}
|
||||
|
||||
if(~ $req_path $ico_uri) {
|
||||
handler_body_main=ico_body
|
||||
u=$ico_uri'index'
|
||||
extraHeaders=$"extraHeaders ^ \
|
||||
'<link rel="alternate" type="application/atom+xml" title="ATOM" href="'$"u'.atom" />
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="'$"u'.rss" />'
|
||||
}
|
||||
if not if(~ $req_path $ico_uri^category/*) {
|
||||
category=`{echo $req_path | sed 's!.*/!!; s/_/ /g'}
|
||||
handler_body_main=ico_category_body
|
||||
}
|
||||
if not if(~ $req_path $ico_uri^index.atom)
|
||||
ico_setup_feed_handlers atom.tpl 'application/atom+xml'
|
||||
if not if(~ $req_path $ico_uri^index.rss)
|
||||
ico_setup_feed_handlers rss20.tpl 'application/rss+xml'
|
||||
if not if(~ $req_path $ico_uri^new_post && ! ~ $#editor_mode 0) {
|
||||
handler_body_main=( tpl_handler `{get_lib_file ico/new_post.tpl apps/ico/new_post.tpl} )
|
||||
if(~ $REQUEST_METHOD POST) {
|
||||
if(mkicopost $"post_arg_body $"post_date $"post_arg_title $"post_arg_categories $"post_arg_loc $"post_arg_loc_link $"post_arg_link $"post_arg_short_desc $"post_arg_poster $"post_arg_edate)
|
||||
post_redirect $ico_uri
|
||||
if not
|
||||
notify_errors=$status
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn ico_category_body {
|
||||
template apps/ico/event_list_cat.tpl
|
||||
}
|
||||
|
||||
fn ico_body {
|
||||
template apps/ico/event_list_all.tpl
|
||||
}
|
||||
|
||||
fn get_post_list {
|
||||
ls -F $*^/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/ >[2]/dev/null |
|
||||
sed -n '/'^$forbidden_uri_chars^'/d; /\/$/p' |
|
||||
sort -r |
|
||||
sed -e $conf_max_posts_per_page^'q'
|
||||
}
|
||||
|
||||
fn mkicopost {
|
||||
icotext=$1
|
||||
icodate=$2
|
||||
icotitle=$3
|
||||
icocategories=$4
|
||||
icolocation=$5
|
||||
icolocationlink=$6
|
||||
icoeventlink=$7
|
||||
icoshortdesc=$8
|
||||
icoposterpath=$9
|
||||
icoexpireddate=$10
|
||||
_status=()
|
||||
postdate=`{/bin/date -I|sed 's,-,/,g'}
|
||||
if(~ $"icotext '')
|
||||
_status=($_status 'You need to provide a post body.')
|
||||
if(! ~ $"postdate [0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9])
|
||||
_status=($_status 'Invalid date: '''^$"postdate^'''')
|
||||
|
||||
if(~ $#_status 0) {
|
||||
umask 022
|
||||
ddir=$ico_root^$postdate^'/'
|
||||
n=`{ls $ddir >[2]/dev/null | wc -l}
|
||||
mkdir -p $ddir^$n
|
||||
|
||||
post_link='/'$postdate^'/'$n
|
||||
|
||||
category_links=''
|
||||
for(cat in `{echo $icocategories}) {
|
||||
if(! ~ $cat '') {
|
||||
cat_link=`{echo -n $cat | sed 's/ /_/g'}
|
||||
category_links=$category_links'<div>[<a href='$ico_uri'category/'$cat_link'>'$cat'</a>]</div> '
|
||||
}
|
||||
}
|
||||
|
||||
icopostlink='/'^$postdate^'/'^$n^'/'
|
||||
|
||||
template apps/ico/post.tpl > $ddir^$n^'/index.html'
|
||||
|
||||
# Create the main categories directory
|
||||
categories_dir=$ico_root^'categories'
|
||||
mkdir -p $categories_dir
|
||||
|
||||
# Update category files
|
||||
for(cat in `{echo $icocategories}) {
|
||||
if(! ~ $cat '') {
|
||||
cat_file=$categories_dir^'/'^`{echo -n $cat | sed 's/ /_/g'}^'.txt'
|
||||
echo $post_link >> $cat_file
|
||||
}
|
||||
}
|
||||
}
|
||||
status=$_status
|
||||
}
|
||||
|
||||
fn get_post_by_category {
|
||||
cat_dir=$ico_root^'categories'
|
||||
cat_file=$cat_dir^'/'^`{echo -n $1 | sed 's/ /_/g'}^'.txt'
|
||||
if(test -f $cat_file) {
|
||||
cat $cat_file | sort -r | sed $conf_max_posts_per_page^'q'
|
||||
}
|
||||
}
|
||||
|
||||
fn list_categories {
|
||||
ls $ico_root^'categories/'*.txt | sed 's!.*/!!; s!\.txt$!!; s!_! !g'
|
||||
}
|
25
werc/apps/ico/event_list_all.tpl
Normal file
25
werc/apps/ico/event_list_all.tpl
Normal file
|
@ -0,0 +1,25 @@
|
|||
% if (! ~ $"icoTitle '')
|
||||
<h1>%($"icoTitle%)</h1>
|
||||
% if (! ~ $"icoDesc '')
|
||||
<p class="ico_desc">%($"icoDesc%)</p>
|
||||
<fieldset class="categories_box">
|
||||
<legend>Catagories</legend>
|
||||
<div class="categories">
|
||||
%{
|
||||
for(cat in `{list_categories}) {
|
||||
echo '<a href="'$ico_uri'category/'^`{echo -n $cat | sed 's/ /_/g'}^'">'$cat'</a> '
|
||||
}
|
||||
%}
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="icofeed">
|
||||
|
||||
%{
|
||||
for(p in `{get_post_list $ico_root^$ico_dirs}) {
|
||||
echo '<div class="post">'
|
||||
cat $p/index.html
|
||||
echo '</div>'
|
||||
}
|
||||
%}
|
||||
</div>
|
||||
<p>Check out the <a href="/archive">archive</a> to see past events.</p>
|
23
werc/apps/ico/event_list_cat.tpl
Normal file
23
werc/apps/ico/event_list_cat.tpl
Normal file
|
@ -0,0 +1,23 @@
|
|||
<h1>Posts in category: %($category%)</h1>
|
||||
<p class="ico_desc">You are seeing events in the <strong>%($category%)</strong> category. Click <a href="/">here</a> to go home!</p>
|
||||
<fieldset class="categories_box">
|
||||
<legend>Catagories</legend>
|
||||
<div class="categories">
|
||||
<a href="/">all</a>
|
||||
%{
|
||||
for(cat in `{list_categories}) {
|
||||
echo '<a href="'$ico_uri'category/'^`{echo -n $cat | sed 's/ /_/g'}^'">'$cat'</a> '
|
||||
}
|
||||
%}
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="icofeed">
|
||||
%{
|
||||
for(p in `{get_post_by_category $category}) {
|
||||
echo '<div class="post">'
|
||||
cat $sitedir$p/index.html
|
||||
echo '</div>'
|
||||
}
|
||||
%}
|
||||
</div>
|
||||
<p>Check out the <a href="/archive">archive</a> to see past events.</p>
|
1
werc/apps/ico/foot.tpl
Normal file
1
werc/apps/ico/foot.tpl
Normal file
|
@ -0,0 +1 @@
|
|||
<div><p>[ <a href="/new_post">Make a new post</a> ]</p></div>
|
17
werc/apps/ico/new_post.tpl
Normal file
17
werc/apps/ico/new_post.tpl
Normal file
|
@ -0,0 +1,17 @@
|
|||
<div>
|
||||
% notices_handler
|
||||
<form method="POST"><fieldset>
|
||||
<legend>Submit a new ico post</legend>
|
||||
<label>Title: <input size="64" type="text" name="title" value="%($"post_arg_title%)" required /></label>
|
||||
<label>Event Date (Displayed): <input size="10" type="text" name="date" value="%($"post_date%)" /></label>
|
||||
<label for="dateInput">Expire Date [YYYY-MM-DD] <small>(usually the date of the show)</small>: <input type="text" name="edate" id="dateInput" placeholder="YYYY-MM-DD" pattern="\d{4}-\d{2}-\d{2}" required value="%($"post_arg_edate%)"/></label>
|
||||
<label>Categories <small>(space-separated)</small>: <input size="64" type="text" name="categories" value="%($"post_arg_categories%)" /></label>
|
||||
<label>Location: <input size="64" type="text" name="loc" value="%($"post_arg_loc%)" /></label>
|
||||
<label>Location Link: <input size="64" type="text" name="loc_link" value="%($"post_arg_loc_link%)" /></label>
|
||||
<label>Event Link/Website: <input size="64" type="text" name="link" value="%($"post_arg_link%)" /></label>
|
||||
<label>Short Description: <textarea cols="94" rows="1" name="short_desc">%($"post_arg_short_desc%)</textarea></label>
|
||||
<label>Description: <textarea cols="94" rows="16" name="body">%($"post_arg_body%)</textarea></label>
|
||||
<label>Event Poster Image Link: <input size="64" type="text" name="poster" value="%($"post_arg_poster%)" /></label><br />
|
||||
<input type="submit" value="Post" />
|
||||
</fieldset></form>
|
||||
</div>
|
20
werc/apps/ico/post.tpl
Normal file
20
werc/apps/ico/post.tpl
Normal file
|
@ -0,0 +1,20 @@
|
|||
<!-- EXPIRES: "%($icoexpireddate%)" -->
|
||||
<div class="event_box">
|
||||
<a href="%($icopostlink%)" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="%($icopostlink%)"><h2>%($icotitle%)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">%($icodate%)</div>
|
||||
<div class="location"><a href="%($icolocationlink%)">%($icolocation%)</a></div>
|
||||
<div class="event_link"><a href="%($icoeventlink%)">Event Link</a></div>
|
||||
<div class="cat_list">%($category_links%)</div>
|
||||
<div class="short_desc">%($icoshortdesc%)</div>
|
||||
</div>
|
||||
% if(! ~ $"icoposterpath '') {
|
||||
<div class="event_poster">
|
||||
<a href="%($icoeventlink%)" class="event_img_link"><img src="%($icoposterpath%)" alt="Event Poster" /></a>
|
||||
</div>
|
||||
% }
|
||||
<div class="event_body">
|
||||
%($icotext%)
|
||||
</div>
|
||||
</div>
|
25
werc/apps/ico/rss20.tpl
Normal file
25
werc/apps/ico/rss20.tpl
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<atom:link href="%($base_url^$req_path%)" rel="self" type="application/rss+xml" />
|
||||
<title><![CDATA[%($siteTitle%)]]></title>
|
||||
<link>%($base_url^$req_path%)</link>
|
||||
<description><![CDATA[%($icoDesc%)]]></description>
|
||||
<language>en-us</language>
|
||||
<generator>werc ico app</generator>
|
||||
<lastBuildDate>%($lastBuildDate%)</lastBuildDate>
|
||||
%{
|
||||
for(f in `{get_post_list $ico_root$ico_dirs}){
|
||||
statpost $f
|
||||
%}
|
||||
<item>
|
||||
<title><![CDATA[%($title%)]]></title>
|
||||
<link>%($post_uri%)</link>
|
||||
<guid isPermaLink="true">%($post_uri%)</guid>
|
||||
<pubDate>%($pubdate%)</pubDate>
|
||||
<description><![CDATA[%($summary%)]]></description>
|
||||
<category>%($categories%)</category>
|
||||
</item>
|
||||
% }
|
||||
</channel>
|
||||
</rss>
|
|
@ -5,7 +5,7 @@ path=($PLAN9/bin $rc_httpd_dir/handlers $PATH)
|
|||
cgi_path=$PLAN9/bin
|
||||
SERVER_PORT=80 # default for CGI scripts, may be overridden by the Host header
|
||||
extra_headers='Server: rc-httpd'
|
||||
cr=
|
||||
cr=
|
||||
|
||||
fn do_log{
|
||||
echo `{date} :: $SERVER_NAME :: $request :: \
|
||||
|
|
|
@ -34,7 +34,7 @@ for(a in $werc_apps)
|
|||
|
||||
fn werc_exec_request {
|
||||
site=$SERVER_NAME
|
||||
base_url=http://$site:$SERVER_PORT
|
||||
base_url=https://$site
|
||||
sitedir=$sitesdir/$site
|
||||
headers=`{get_lib_file headers.tpl}
|
||||
master_template=`{get_lib_file default_master.tpl}
|
||||
|
|
|
@ -7,11 +7,15 @@
|
|||
|
||||
% if(! ~ $#handlers_bar_left 0) {
|
||||
<nav id="side-bar">
|
||||
<input type="checkbox" class="menu-toggle" name="menu" value='valuable' id="menu" /><label for="menu"><div></div><p>[< Menu]</p></label>
|
||||
<div class="nav-content">
|
||||
% for(h in $handlers_bar_left) {
|
||||
<div>
|
||||
% run_handler $$h
|
||||
</div>
|
||||
% }
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
% }
|
||||
|
||||
|
|
BIN
werc/pub/favicon.ico
Normal file
BIN
werc/pub/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
werc/pub/style/fonts/3270-Regular.woff
Normal file
BIN
werc/pub/style/fonts/3270-Regular.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/3270Condensed-Regular.woff
Normal file
BIN
werc/pub/style/fonts/3270Condensed-Regular.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/3270SemiCondensed-Regular.woff
Normal file
BIN
werc/pub/style/fonts/3270SemiCondensed-Regular.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Creduci.ttf
Normal file
BIN
werc/pub/style/fonts/Creduci.ttf
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Director-Regular.woff
Normal file
BIN
werc/pub/style/fonts/Director-Regular.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Director-Regular.woff2
Normal file
BIN
werc/pub/style/fonts/Director-Regular.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/FT88-Gothique.woff
Normal file
BIN
werc/pub/style/fonts/FT88-Gothique.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/FT88-Gothique.woff2
Normal file
BIN
werc/pub/style/fonts/FT88-Gothique.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Fontlab.otf
Normal file
BIN
werc/pub/style/fonts/Fontlab.otf
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Garamondt-Italic.woff
Executable file
BIN
werc/pub/style/fonts/Garamondt-Italic.woff
Executable file
Binary file not shown.
BIN
werc/pub/style/fonts/Garamondt-Regular.woff
Executable file
BIN
werc/pub/style/fonts/Garamondt-Regular.woff
Executable file
Binary file not shown.
BIN
werc/pub/style/fonts/Manusquared-Bold.woff
Normal file
BIN
werc/pub/style/fonts/Manusquared-Bold.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Manusquared-Bold.woff2
Normal file
BIN
werc/pub/style/fonts/Manusquared-Bold.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Manusquared-Regular.woff
Normal file
BIN
werc/pub/style/fonts/Manusquared-Regular.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Manusquared-Regular.woff2
Normal file
BIN
werc/pub/style/fonts/Manusquared-Regular.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Redaction_50-Bold.woff2
Normal file
BIN
werc/pub/style/fonts/Redaction_50-Bold.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Redaction_50-Italic.woff2
Normal file
BIN
werc/pub/style/fonts/Redaction_50-Italic.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/Redaction_50-Regular.woff2
Normal file
BIN
werc/pub/style/fonts/Redaction_50-Regular.woff2
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/WonderType-Regular.otf
Normal file
BIN
werc/pub/style/fonts/WonderType-Regular.otf
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/rumeur.otf
Normal file
BIN
werc/pub/style/fonts/rumeur.otf
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/terminal-grotesque-webfont.woff
Normal file
BIN
werc/pub/style/fonts/terminal-grotesque-webfont.woff
Normal file
Binary file not shown.
BIN
werc/pub/style/fonts/terminal-grotesque-webfont.woff2
Normal file
BIN
werc/pub/style/fonts/terminal-grotesque-webfont.woff2
Normal file
Binary file not shown.
|
@ -10,39 +10,90 @@ nav ul { display: flex; flex-direction: column; list-style-type: none; list-styl
|
|||
nav li ul { padding-left: 0.6em }
|
||||
footer { display: flex; justify-content: space-between; }
|
||||
|
||||
@font-face {
|
||||
font-family: 'ft88';
|
||||
src: url('fonts/FT88-Gothique.woff2') format('woff2'),
|
||||
url('fonts/FT88-Gothique.woff') format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'gt';
|
||||
src: url('fonts/terminal-grotesque-webfont.woff2') format('woff2'),
|
||||
url('fonts/terminal-grotesque-webfont.woff') format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'wonder';
|
||||
src: url('fonts/WonderType-Regular.otf') format('opentype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'c';
|
||||
src: url('fonts/Creduci.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'rumeur';
|
||||
src: url('fonts/rumeur.otf') format('opentype');
|
||||
}
|
||||
:root {
|
||||
--alt-accent2: #C0CEE8ff;
|
||||
--primary-accent: #AEA3F0ff;
|
||||
--rebecca-purple: #5B3D8Aff;
|
||||
--primary-dark: #0C072Cff;
|
||||
--alt-accent: #989898ff;
|
||||
--back-secondary: #1C202Fff;
|
||||
--back-primary: #000300ff;
|
||||
--primary: #E4F0FEff;
|
||||
--white: white;
|
||||
--secondary-accent: #A4D1ADff;
|
||||
--link: #2667deff;
|
||||
--code: #18A02Cff;
|
||||
/* Main color scheme */
|
||||
--color-primary: #E4F0FEff;
|
||||
--color-secondary: #AEA3F0ff;
|
||||
--color-accent: #A4D1ADff;
|
||||
|
||||
/* Background colors */
|
||||
--bg-primary: #000300ff;
|
||||
--bg-secondary: #1C202Fff;
|
||||
|
||||
/* Text colors */
|
||||
--text-primary: #E4F0FEff;
|
||||
--text-secondary: #989898ff;
|
||||
--text-accent: #AEA3F0ff;
|
||||
|
||||
/* Header colours */
|
||||
--header-primary:#AEA3F0ff;
|
||||
--header-secondary: #AEA3F0ff;
|
||||
--header-tertiary: #A4D1ADff;
|
||||
--header-other: #E4F0FEff;
|
||||
|
||||
/* Link colors */
|
||||
--link-color: #2667deff;
|
||||
--link-hover: #5B3D8Aff;
|
||||
|
||||
/* Border colors */
|
||||
--border-primary: #C0CEE8ff;
|
||||
--border-secondary: #0C072Cff;
|
||||
--border-image: #000300ff;
|
||||
|
||||
/* Special purpose colors */
|
||||
--code-color: #18A02Cff;
|
||||
--header-bg: #AEA3F0ff;
|
||||
--header-text: #0C072Cff;
|
||||
|
||||
/* Font families */
|
||||
--font-headers: 'rumeur', sans-serif;
|
||||
--font-body: verdana, helvetica, arial, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
background:
|
||||
linear-gradient(to right, rgba(0, 5, 10, 0.9), rgba(0, 5, 5, 0.9)),
|
||||
url('imgs/back.jpeg'),
|
||||
var(--back-primary);
|
||||
background-color: var(--back-primary);
|
||||
var(--bg-primary);
|
||||
background-color: var(--bg-primary);
|
||||
background-position: center center;
|
||||
background-size: 110vh 75vh;
|
||||
background-repeat: repeat-y;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 84%;
|
||||
font-family: verdana, helvetica, arial, sans-serif;
|
||||
font-size: 90%;
|
||||
font-family: var(--font-body);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: var(--link);
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
a:hover {
|
||||
|
@ -51,19 +102,19 @@ a:hover {
|
|||
|
||||
/* header and top bar */
|
||||
header nav {
|
||||
background-color: var(--primary-accent);
|
||||
color: var(--primary-dark);
|
||||
border-bottom: 3px solid var(--primary-dark);
|
||||
background-color: var(--header-bg);
|
||||
color: var(--header-text);
|
||||
border-bottom: 3px solid var(--border-secondary);
|
||||
padding: 0.3em;
|
||||
font-size: 91%;
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
display: flex;
|
||||
background-color: var(--back-secondary);
|
||||
color: var(--primary);
|
||||
color: var(--text-primary);
|
||||
margin: 0;
|
||||
border-bottom: 3px solid var(--primary-dark);
|
||||
border-bottom: 3px solid var(--border-secondary);
|
||||
font-size: 200%;
|
||||
font-weight: bold;
|
||||
padding: 0.5ex 0 0.5ex 0.6ex;
|
||||
|
@ -73,13 +124,15 @@ header h1 #headerSubTitle {
|
|||
display: block;
|
||||
margin-left: 2em;
|
||||
font-size: 40%;
|
||||
color: var(--secondary-accent)
|
||||
color: var(--color-accent);
|
||||
}
|
||||
|
||||
header h1 .headerLink {
|
||||
display: inline-block;
|
||||
margin-top: 0.2ex;
|
||||
margin-left: 0.6ex;
|
||||
font-family: var(--font-headers);
|
||||
font-size: xx-large;
|
||||
}
|
||||
|
||||
header h1 a img {
|
||||
|
@ -107,12 +160,13 @@ header nav .right {
|
|||
/* sidebar */
|
||||
body>nav {
|
||||
padding: 0;
|
||||
border-right: 3px solid var(--alt-accent2);
|
||||
border-right: 3px solid var(--border-primary);
|
||||
}
|
||||
|
||||
body>nav>div a,
|
||||
input[type="submit"] {
|
||||
color: var(--secondary-accent);
|
||||
input[type="submit"],
|
||||
.bu {
|
||||
color: var(--color-accent);
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
padding: 0.25em 1ex 0.25em 2mm;
|
||||
|
@ -120,30 +174,35 @@ input[type="submit"] {
|
|||
}
|
||||
|
||||
body>nav>div a:hover,
|
||||
input[type="submit"]:hover {
|
||||
color: var(--primary-accent) !important;
|
||||
background-color: var(--back-primary);
|
||||
border-left: var(--secondary-accent) solid 0.3em;
|
||||
input[type="submit"]:hover,
|
||||
.bu:hover {
|
||||
color: var(--text-accent) !important;
|
||||
background-color: var(--bg-primary);
|
||||
border-left: var(--color-accent) solid 0.3em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
input[type="submit"] {
|
||||
input[type="submit"], .bu {
|
||||
background-color: transparent;
|
||||
font-family: inherit;
|
||||
border: none;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
fieldset input[type="submit"]:hover {
|
||||
border: 2px ridge var(--secondary-accent);
|
||||
border-left: var(--secondary-accent) solid 0.3em;
|
||||
fieldset input[type="submit"]:hover, .bu:hover {
|
||||
border: 2px ridge var(--color-accent);
|
||||
border-left: var(--color-accent) solid 0.3em;
|
||||
}
|
||||
|
||||
fieldset input[type="submit"] {
|
||||
border: 2px solid var(--secondary-accent);
|
||||
fieldset input[type="submit"], .bu {
|
||||
border: 2px solid var(--color-accent);
|
||||
margin-top: 0.6em;
|
||||
}
|
||||
|
||||
.bu {
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
padding: 1em;
|
||||
max-width: 1000px;
|
||||
|
@ -164,11 +223,11 @@ input[type="text"], textarea {
|
|||
}
|
||||
|
||||
body>nav>div .dt {
|
||||
color: var(--primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
body>nav>div a:hover .dt {
|
||||
color: var(--primary-accent);
|
||||
color: var(--text-accent);
|
||||
}
|
||||
|
||||
body>nav>div p {
|
||||
|
@ -180,40 +239,52 @@ body>nav>div p {
|
|||
/* main copy */
|
||||
article {
|
||||
padding: 0.5ex 1vw 5vh 1vw;
|
||||
color: var(--primary);
|
||||
color: var(--text-primary);
|
||||
backdrop-filter: blur(3px);
|
||||
flex: 1 1 60%;
|
||||
max-width: 1100px;
|
||||
}
|
||||
|
||||
article h1,
|
||||
article h2 {
|
||||
color: var(--primary-accent);
|
||||
article h1 {
|
||||
color: var(--header-primary);
|
||||
font-weight: bold;
|
||||
margin: 1em 0 1em 0;
|
||||
margin: 1em 0 0.5em 0;
|
||||
font-size: xx-large;
|
||||
font-family: rumeur, sans-serif;
|
||||
}
|
||||
article h2 {
|
||||
color: var(--header-secondary);
|
||||
font-weight: bold;
|
||||
margin: 1em 0 0.5em 0;
|
||||
font-family: var(--font-headers);
|
||||
}
|
||||
|
||||
article h3 {
|
||||
color: var(--secondary-accent);
|
||||
color: var(--header-tertiary);
|
||||
font-weight: bold;
|
||||
margin: 2em 0 0 0;
|
||||
margin: 2em 0 0.2em 0;
|
||||
}
|
||||
|
||||
article h4 article h5 {
|
||||
color: var(--primary);
|
||||
color: var(--header-other);
|
||||
margin: 2em 0 0 0;
|
||||
}
|
||||
|
||||
article h6,
|
||||
article h7,
|
||||
article h8 {
|
||||
color: var(--primary);
|
||||
color: var(--header-other);
|
||||
font-weight: bold;
|
||||
margin: 2em 0 0 0;
|
||||
}
|
||||
|
||||
article p, article li {
|
||||
color: var(--text-primary);
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
article a {
|
||||
color: var(--link);
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
article a:hover {
|
||||
|
@ -221,11 +292,12 @@ article a:hover {
|
|||
}
|
||||
|
||||
article img {
|
||||
width: 90%;
|
||||
max-width: 600px;
|
||||
border: 0.4em solid var(--back-primary);
|
||||
background-color: black !important;
|
||||
padding: 0.2em;
|
||||
border: 0.4em solid var(--bg-primary);
|
||||
}
|
||||
|
||||
textarea#comment_text {
|
||||
max-width: 50em;
|
||||
max-height: 5em;
|
||||
}
|
||||
|
||||
.center {
|
||||
|
@ -233,6 +305,11 @@ article img {
|
|||
}
|
||||
|
||||
img[title="main"] {
|
||||
width: 90%;
|
||||
max-width: 600px;
|
||||
border: 0.4em solid var(--bg-primary);
|
||||
background-color: var(--border-image) !important;
|
||||
padding: 0.2em;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
@ -240,17 +317,22 @@ img[title="main"] {
|
|||
}
|
||||
|
||||
hr {
|
||||
color: var(--alt-accent2)
|
||||
color: var(--border-primary);
|
||||
}
|
||||
|
||||
.notify_errors {
|
||||
padding: 0.2em;
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* footer */
|
||||
footer {
|
||||
color: white;
|
||||
background-color: color-mix(in srgb, var(--primary-back), transparent 86%);
|
||||
color: var(--text-primary);
|
||||
background-color: color-mix(in srgb, var(--bg-primary), transparent 86%);
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: inherit;
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
footer div {
|
||||
|
@ -259,26 +341,26 @@ footer div {
|
|||
|
||||
/* tables */
|
||||
table {
|
||||
border: 1px solid rgba(128, 128, 128, 0.5);
|
||||
border: 1px solid rgba(var(--bg-secondary), 0.5);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
th {
|
||||
color: white;
|
||||
background-color: rgb(100, 135, 220);
|
||||
color: var(--text-primary);
|
||||
background-color: var(--bg-primary);
|
||||
}
|
||||
|
||||
tr:nth-child(odd) {
|
||||
background-color: rgba(128, 128, 128, 0.1)
|
||||
background-color: rgba(var(--bg-secondary), 0.1);
|
||||
}
|
||||
|
||||
/* accents */
|
||||
.accent {
|
||||
color: var(--primary-accent)
|
||||
color: var(--text-accent)
|
||||
}
|
||||
|
||||
.accent2 {
|
||||
color: var(--secondary-accent)
|
||||
color: var(--color-accent)
|
||||
}
|
||||
|
||||
/* dates */
|
||||
|
@ -289,14 +371,14 @@ tr:nth-child(odd) {
|
|||
font-weight: normal;
|
||||
max-width: fit-content;
|
||||
font-size: x-small;
|
||||
color: var(--primary);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.date::before,
|
||||
.date::after {
|
||||
content: '⋆★⋆';
|
||||
flex: 1;
|
||||
color: var(--alt-accent)
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.date:not(:empty)::before {
|
||||
|
@ -317,7 +399,7 @@ tr:nth-child(odd) {
|
|||
|
||||
.bfeed h2 a {
|
||||
font-size: 90%;
|
||||
color: var(--primary-accent);
|
||||
color: var(--text-accent);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
@ -327,11 +409,32 @@ tr:nth-child(odd) {
|
|||
|
||||
blockquote {
|
||||
font-style: italic;
|
||||
color: var(--secondary-accent);
|
||||
border-left: 3px solid var(--alt-accent);
|
||||
color: var(--color-accent);
|
||||
border-left: 3px solid var(--text-secondary);
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.copybox {
|
||||
background-color: var(--bg-primary);
|
||||
border: 1px solid var(--text-primary);
|
||||
border-radius: 4px;
|
||||
padding: 16px;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
font-size: 14px;
|
||||
color: var(--code-color);
|
||||
overflow-x: auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.info {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#test-search {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
/* animations */
|
||||
|
||||
.fire {
|
||||
|
@ -361,6 +464,69 @@ blockquote {
|
|||
}
|
||||
}
|
||||
|
||||
.menu-toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-toggle + label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-toggle + label div {
|
||||
display: none;
|
||||
height: 20px;
|
||||
width: 60px;
|
||||
margin-top: 15px;
|
||||
margin-left: 5px;
|
||||
padding: 5px 5px 5px 5px;
|
||||
text-align: center;
|
||||
border: 2px solid var(--border-primary);
|
||||
border-radius: 3px;
|
||||
font-weight: bold;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
font-size: xx-large;
|
||||
}
|
||||
|
||||
.menu-toggle + label p {
|
||||
display: inline-block;
|
||||
font-size: x-large;
|
||||
color: var(--text-primary);
|
||||
margin-left: 10px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.menu-toggle + label {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.menu-toggle + label div {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.nav-content {
|
||||
padding: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-toggle:checked ~ .nav-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.menu-toggle + label div::after {
|
||||
content: '▶';
|
||||
color: var(--text-primary);
|
||||
}
|
||||
.menu-toggle:checked + label div::after {
|
||||
content: '▽';
|
||||
}
|
||||
|
||||
.nav-list li:hover {
|
||||
background-color: #555;
|
||||
}
|
||||
}
|
||||
|
||||
/* media */
|
||||
@media screen and (max-width: 600px) {
|
||||
article {
|
||||
|
@ -370,8 +536,8 @@ blockquote {
|
|||
body > nav {
|
||||
flex-basis: 100%;
|
||||
border-right: none;
|
||||
border-bottom: 3px solid var(--alt-accent2);
|
||||
border-top: 3px solid var(--alt-accent2);
|
||||
border-bottom: 3px solid var(--border-primary);
|
||||
border-top: 3px solid var(--border-primary);
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
}
|
21
werc/sites/events.thirdculture.top/2024/11/13/0/index.html
Normal file
21
werc/sites/events.thirdculture.top/2024/11/13/0/index.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!-- EXPIRES: "2024-11-15" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/0/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/0/"><h2>BETTER LOVERS ($48.5)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 15th</div>
|
||||
<div class="location"><a href="">Brass Monkey 250 Greenbank Avenue </a></div>
|
||||
<div class="event_link"><a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/punk>punk</a>]</div> <div>[<a href=/category/metalcore>metalcore</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">expensive ass metal core show (but good) </div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/" class="event_img_link"><img src="https://bronsoncentremusictheatre.com/wp-content/uploads/2024/08/241115a_BetterLovers2_INSTA_web-780x780.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
loud harsh noise played in a manner that will cause physical harm to nearby people upon listening its fifty bucks im fucking killing myself but these are good well established hardcore bands so if you have money to throw around go see them FUCK SPECTRASONIC
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,23 @@
|
|||
<!-- EXPIRES: "2024-11-15" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/0/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/0/"><h2>BETTER LOVERS $48.5</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 15th</div>
|
||||
<div class="location"><a href="">Brass Monkey 250 Greenbank Avenue </a></div>
|
||||
<div class="event_link"><a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/punk>punk</a>]</div> <div>[<a href=/category/metalcore>metalcore</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">All-ages metalcore show </div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/" class="event_img_link"><img src="https://bronsoncentremusictheatre.com/wp-content/uploads/2024/08/241115a_BetterLovers2_INSTA_web-780x780.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
loud harsh noise played in a manner that will cause physical harm to nearby people upon listening
|
||||
|
||||
its fifty bucks im fucking killing myself
|
||||
|
||||
but these are good well established hardcore bands so if you have money to throw around go see them
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,20 @@
|
|||
<!-- EXPIRES: "2024-11-15" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/0/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/0/"><h2>BETTER LOVERS ($48.5)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 15th</div>
|
||||
<div class="location"><a href="">Brass Monkey 250 Greenbank Avenue </a></div>
|
||||
<div class="event_link"><a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/punk>punk</a>]</div> <div>[<a href=/category/metalcore>metalcore</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">All-ages metalcore show </div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/" class="event_img_link"><img src="https://bronsoncentremusictheatre.com/wp-content/uploads/2024/08/241115a_BetterLovers2_INSTA_web-780x780.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
loud harsh noise played in a manner that will cause physical harm to nearby people upon listening its fifty bucks im fucking killing myself but these are good well established hardcore bands so if you have money to throw around go see them FUCK SPECTRASONIC
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,21 @@
|
|||
<!-- EXPIRES: "2024-11-15" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/0/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/0/"><h2>BETTER LOVERS ($48.5)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 15th</div>
|
||||
<div class="location"><a href="">Brass Monkey 250 Greenbank Avenue </a></div>
|
||||
<div class="event_link"><a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/punk>punk</a>]</div> <div>[<a href=/category/metalcore>metalcore</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">expensive ass metal core show (but good) </div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://bronsoncentremusictheatre.com/events/event/better-lovers/" class="event_img_link"><img src="https://bronsoncentremusictheatre.com/wp-content/uploads/2024/08/241115a_BetterLovers2_INSTA_web-780x780.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
loud harsh noise played in a manner that will cause physical harm to nearby people upon listening its fifty bucks im fucking killing myself but these are good well established hardcore bands so if you have money to throw around go see them FUCK SPECTRASONIC
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
19
werc/sites/events.thirdculture.top/2024/11/13/1/index.html
Normal file
19
werc/sites/events.thirdculture.top/2024/11/13/1/index.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
<!-- EXPIRES: "2024-11-14" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/1/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/1/"><h2>Altar Of The Fuzz ($20)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Thursday, November 14th</div>
|
||||
<div class="location"><a href="">The Rainbow Bistro 76 Murray Street</a></div>
|
||||
<div class="event_link"><a href="https://therainbow.ca/event/5741013/694045601/the-consequents-altar-of-the-fuzz-afraid-of-grace">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/metal>metal</a>]</div> <div>[<a href=/category/doom-metal>doom-metal</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">Fuzzy waves of raw sound to drown the cries of your bitch wife</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://therainbow.ca/event/5741013/694045601/the-consequents-altar-of-the-fuzz-afraid-of-grace" class="event_img_link"><img src="https://d10j3mvrs1suex.cloudfront.net/s:bzglfiles/u/607487/c798fc16d6b55036dad3d5726eda44458ec594df/original/the-consequents-nov-2024.jpg/!!/b%3AW1sicmVzaXplIixbNjAwLG51bGwseyJ3aXRob3V0RW5sYXJnZW1lbnQiOnRydWUsImZpdCI6Im91dHNpZGUifV1dXQ%3D%3D/meta%3AeyJzcmNCdWNrZXQiOiJiemdsZmlsZXMifQ%3D%3D.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
altar of the fuzz are a really fucking good stoner rock band with loud fuzzy droning riffs reminiscent of electric wizard. music that makes you drool like a retard. i highly recommend it rainbow bistro is based woot woot
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,19 @@
|
|||
<!-- EXPIRES: "2024-11-14" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/1/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/1/"><h2>Altar Of The Fuzz ($20)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Thursday, November 14th</div>
|
||||
<div class="location"><a href="">The Rainbow Bistro 76 Murray Street</a></div>
|
||||
<div class="event_link"><a href="https://therainbow.ca/event/5741013/694045601/the-consequents-altar-of-the-fuzz-afraid-of-grace">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/metal>metal</a>]</div> <div>[<a href=/category/doom-metal>doom-metal</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">Fuzzy waves of raw sound to drown the cries of your bitch wife</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://therainbow.ca/event/5741013/694045601/the-consequents-altar-of-the-fuzz-afraid-of-grace" class="event_img_link"><img src="https://d10j3mvrs1suex.cloudfront.net/s:bzglfiles/u/607487/c798fc16d6b55036dad3d5726eda44458ec594df/original/the-consequents-nov-2024.jpg/!!/b%3AW1sicmVzaXplIixbNjAwLG51bGwseyJ3aXRob3V0RW5sYXJnZW1lbnQiOnRydWUsImZpdCI6Im91dHNpZGUifV1dXQ%3D%3D/meta%3AeyJzcmNCdWNrZXQiOiJiemdsZmlsZXMifQ%3D%3D.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
altar of the fuzz are a really fucking good stoner rock band with loud fuzzy droning riffs reminiscent of electric wizard. music that makes you drool like a retard. i highly recommend it rainbow bistro is based woot woot
|
||||
</div>
|
||||
</div>
|
||||
|
20
werc/sites/events.thirdculture.top/2024/11/13/2/index.html
Normal file
20
werc/sites/events.thirdculture.top/2024/11/13/2/index.html
Normal file
|
@ -0,0 +1,20 @@
|
|||
<!-- EXPIRES: "2024-11-16" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/2/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/2/"><h2>hard rock birthday party ($20)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Saturday, November 16th</div>
|
||||
<div class="location"><a href="">The Rainbow Bistro 79 Murray Street</a></div>
|
||||
<div class="event_link"><a href="https://therainbow.ca/event/5743376/694261231/super-kyle-s-birthday-bash-featuring-beyond-driven-this-disaster-don-t-tell-sarah-until">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/rock>rock</a>]</div> <div>[<a href=/category/classic-rock>classic-rock</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">butt rock made by divorced boomers with nothing better to do on their birthday</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://therainbow.ca/event/5743376/694261231/super-kyle-s-birthday-bash-featuring-beyond-driven-this-disaster-don-t-tell-sarah-until" class="event_img_link"><img src="https://d10j3mvrs1suex.cloudfront.net/s:bzglfiles/u/607487/9b6df44a01242649fec1a813f57502ada6eb334e/original/super-kyle-bday-bash.jpeg/!!/b%3AW1sicmVzaXplIixbNjAwLG51bGwseyJ3aXRob3V0RW5sYXJnZW1lbnQiOnRydWUsImZpdCI6Im91dHNpZGUifV1dXQ%3D%3D/meta%3AeyJzcmNCdWNrZXQiOiJiemdsZmlsZXMifQ%3D%3D.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
i dont know any of these bands but they're probably going to play some van halen/jimi hendrix/led zeppelin style hard rock because they're stuck in their childhood celebrating a birthday party with electric guitars and bad hair (kind of based)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,19 @@
|
|||
<!-- EXPIRES: "2024-11-16" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/2/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/2/"><h2>hard rock birthday party $20</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Saturday, November 16th</div>
|
||||
<div class="location"><a href="">The Rainbow Bistro 79 Murray Street</a></div>
|
||||
<div class="event_link"><a href="https://therainbow.ca/event/5743376/694261231/super-kyle-s-birthday-bash-featuring-beyond-driven-this-disaster-don-t-tell-sarah-until">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/rock>rock</a>]</div> <div>[<a href=/category/classic-rock>classic-rock</a>]</div> </div>
|
||||
<div class="short_desc">butt rock made by divorced boomers with nothing better to do on their birthday</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://therainbow.ca/event/5743376/694261231/super-kyle-s-birthday-bash-featuring-beyond-driven-this-disaster-don-t-tell-sarah-until" class="event_img_link"><img src="https://d10j3mvrs1suex.cloudfront.net/s:bzglfiles/u/607487/9b6df44a01242649fec1a813f57502ada6eb334e/original/super-kyle-bday-bash.jpeg/!!/b%3AW1sicmVzaXplIixbNjAwLG51bGwseyJ3aXRob3V0RW5sYXJnZW1lbnQiOnRydWUsImZpdCI6Im91dHNpZGUifV1dXQ%3D%3D/meta%3AeyJzcmNCdWNrZXQiOiJiemdsZmlsZXMifQ%3D%3D.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
i dont know any of these bands but they're probably going to play some van halen/jimi hendrix/led zeppelin style hard rock because they're stuck in their childhood celebrating a birthday party with electric guitars and bad hair (kind of based)
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,20 @@
|
|||
<!-- EXPIRES: "2024-11-16" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/2/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/2/"><h2>hard rock birthday party ($20)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Saturday, November 16th</div>
|
||||
<div class="location"><a href="">The Rainbow Bistro 79 Murray Street</a></div>
|
||||
<div class="event_link"><a href="https://therainbow.ca/event/5743376/694261231/super-kyle-s-birthday-bash-featuring-beyond-driven-this-disaster-don-t-tell-sarah-until">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/rock>rock</a>]</div> <div>[<a href=/category/classic-rock>classic-rock</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">butt rock made by divorced boomers with nothing better to do on their birthday</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://therainbow.ca/event/5743376/694261231/super-kyle-s-birthday-bash-featuring-beyond-driven-this-disaster-don-t-tell-sarah-until" class="event_img_link"><img src="https://d10j3mvrs1suex.cloudfront.net/s:bzglfiles/u/607487/9b6df44a01242649fec1a813f57502ada6eb334e/original/super-kyle-bday-bash.jpeg/!!/b%3AW1sicmVzaXplIixbNjAwLG51bGwseyJ3aXRob3V0RW5sYXJnZW1lbnQiOnRydWUsImZpdCI6Im91dHNpZGUifV1dXQ%3D%3D/meta%3AeyJzcmNCdWNrZXQiOiJiemdsZmlsZXMifQ%3D%3D.jpg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
i dont know any of these bands but they're probably going to play some van halen/jimi hendrix/led zeppelin style hard rock because they're stuck in their childhood celebrating a birthday party with electric guitars and bad hair (kind of based)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
18
werc/sites/events.thirdculture.top/2024/11/13/3/index.html
Normal file
18
werc/sites/events.thirdculture.top/2024/11/13/3/index.html
Normal file
|
@ -0,0 +1,18 @@
|
|||
<!-- EXPIRES: "2024-11-22" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/3/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/3/"><h2>Unchained ($15)</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 22nd</div>
|
||||
<div class="location"><a href="">Avant Garde Bar 150 Besserer Street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/unchained-friday-22-november-2024-at-2000">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/rock>rock</a>]</div> <div>[<a href=/category/punk>punk</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">mystery lineup of weird bands </div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://www.ottawagigs.ca/gig/unchained-friday-22-november-2024-at-2000" class="event_img_link"><img src="https://cdn.prod.website-files.com/63ed2f1997d1c7be9b6844f7/6714f77474b315412e94ea35_VLlut_5mlB1Ma2ELjItJngAjKms3GFxuXo1DeaNKm3iexTfIJpoLulppwZIfmUL8HaTybIjs0_WqsLHHaoRTutsZAZzCW1bwSdzdaj9OXHKMqyICECLSOZgrJjHS2bVVIcbwYarifNVc4ODWk_O8Fr2Iy5e4RbL2_lHbG6xW_Kc.jpeg" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
this looks cool, interesting influences on their bandcamps drawing from all over alternative rock, punk, post-punk, doom, amongst other things. expect driving guitars and sweaty drummers with a non negligible degree of headbangitude
|
||||
</div>
|
||||
</div>
|
23
werc/sites/events.thirdculture.top/2024/11/13/4/index.html
Normal file
23
werc/sites/events.thirdculture.top/2024/11/13/4/index.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
<!-- EXPIRES: "2024-11-29" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/4/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/4/"><h2>Apostlebird</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 29</div>
|
||||
<div class="location"><a href="">Live on elgin 220 Elgin street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/indie>indie</a>]</div> <div>[<a href=/category/shoegaze>shoegaze</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">our friends in apostlebird live on elgin</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin" class="event_img_link"><img src="https://up.thirdculture.top/4Vfptr9ufT/2024-11-13T00:15:54%2C137815319-05:00.png" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,18 @@
|
|||
<!-- EXPIRES: "2024-11-29" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/4/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/4/"><h2>Apostlebird</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 29</div>
|
||||
<div class="location"><a href="">Live on elgin 220 Elgin street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/indie>indie</a>]</div> <div>[<a href=/category/shoegaze>shoegaze</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">our friends in apostlebird live on elgin</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://www.ottawagigs.ca/gig/unchained-friday-22-november-2024-at-2000" class="event_img_link"><img src="2024-11-13T00:15:54,137815319-05:00.png" alt="Event Poster" /></a>
|
||||
<div class="event_body">
|
||||
bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,19 @@
|
|||
<!-- EXPIRES: "2024-11-29" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/4/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/4/"><h2>Apostlebird</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 29</div>
|
||||
<div class="location"><a href="">Live on elgin 220 Elgin street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/indie>indie</a>]</div> <div>[<a href=/category/shoegaze>shoegaze</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">our friends in apostlebird live on elgin</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://www.ottawagigs.ca/gig/unchained-friday-22-november-2024-at-2000" class="event_img_link"><img src="2024-11-13T00:15:54,137815319-05:00.png" alt="Event Poster" /></a>
|
||||
<div class="event_body">
|
||||
2024-11-13T00:15:54,137815319-05:00.png bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,18 @@
|
|||
<!-- EXPIRES: "2024-11-29" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/4/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/4/"><h2>Apostlebird</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 29</div>
|
||||
<div class="location"><a href="">Live on elgin 220 Elgin street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/indie>indie</a>]</div> <div>[<a href=/category/shoegaze>shoegaze</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">our friends in apostlebird live on elgin</div>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,22 @@
|
|||
<!-- EXPIRES: "2024-11-29" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/4/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/4/"><h2>Apostlebird</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 29</div>
|
||||
<div class="location"><a href="">Live on elgin 220 Elgin street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/indie>indie</a>]</div> <div>[<a href=/category/shoegaze>shoegaze</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">our friends in apostlebird live on elgin</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://up.thirdculture.top/4Vfptr9ufT/2024-11-13T00:15:54%2C137815319-05:00.png" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
iancobain
|
|
@ -0,0 +1,23 @@
|
|||
<!-- EXPIRES: "2024-11-29" -->
|
||||
<div class="event_box">
|
||||
<a href="/2024/11/13/4/" class="event_box_link"><span class="link_span"></span></a>
|
||||
<a href="/2024/11/13/4/"><h2>Apostlebird</h2></a>
|
||||
<div class="event_info">
|
||||
<div class="date">Friday, November 29</div>
|
||||
<div class="location"><a href="">Live on elgin 220 Elgin street</a></div>
|
||||
<div class="event_link"><a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin">Event Link</a></div>
|
||||
<div class="cat_list"><div>[<a href=/category/indie>indie</a>]</div> <div>[<a href=/category/shoegaze>shoegaze</a>]</div> <div>[<a href=/category/all-ages>all-ages</a>]</div> </div>
|
||||
<div class="short_desc">our friends in apostlebird live on elgin</div>
|
||||
</div>
|
||||
<div class="event_poster">
|
||||
<a href="https://www.ottawagigs.ca/gig/abijah-valvehead-apostlebird-at-live-on-elgin" class="event_img_link"><img src="https://up.thirdculture.top/4Vfptr9ufT/2024-11-13T00:15:54%2C137815319-05:00.png" alt="Event Poster" /></a>
|
||||
</div>
|
||||
<div class="event_body">
|
||||
bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
8
werc/sites/events.thirdculture.top/_werc/config
Normal file
8
werc/sites/events.thirdculture.top/_werc/config
Normal file
|
@ -0,0 +1,8 @@
|
|||
masterSite=thirdculture.top
|
||||
siteTitle='Third Culture Events'
|
||||
siteSubTitle='happening right now'
|
||||
conf_enable_ico
|
||||
icoTitle='Events'
|
||||
icoDesc='Hand picked, interesting events happening in the Ottawa area!<br><small>(maintained by <a href="https://ppl.thirdculture.top/iancobain/">iancobain</a>)</small>'
|
||||
conf_enable_wiki
|
||||
conf_dirdir_index_type='html'
|
|
@ -0,0 +1,28 @@
|
|||
<header>
|
||||
<h1><a href="/"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAMAAACfvvDEAAADAFBMVEUAAAAAAKgA/wD/+wCC/wAA/wAA/30A//8Agv8AAP95AP/PAP//ANf/AIL/AAD/fQDLmkWWPBhhAAD/94LD/4KC/4KC/76C//+Cw/+Cgv+mgv/Pgv/7gv//gsP/goL/noKCAACCHACCPACCUQCCZQCCeQBBggAAggAAgjwAgoIAQYIAAIIoAIJNAIJ5AIKCAEEAAAAQEBAgICAwMDBFRUVVVVVlZWV1dXWGhoaampqqqqq6urrLy8vf39/v7+////9NAABZAABxAACGAACeAAC2AADPAADnAAD/AAD/HBz/NDT/UVH/bW3/ior/oqL/vr5NJABVKABtNACGPACeSQC2WQDPZQDncQD/fQD/jhz/mjT/plH/sm3/vob/z6L/375NSQBZUQBxaQCGggCelgC2rgDPxwDn4wD//wD//xz/+zT/+1H/923/+4b/+6L/+74ATQAAYQAAeQAAjgAApgAAugAA0wAA6wAA/wAc/xw4/zRV/1Fx/22K/4am/6LD/74AQUEAWVkAcXEAhoYAnp4AtrYAz88A5+cA//9Z//t1//uK//+e//u6///L///b//8AIEEALFkAOHEARYYAUZ4AXbYAac8AdecAgv8cjv80nv9Rqv9tuv+Ky/+i1/++4/8AAE0AAGUABHkABI4ABKYAAL4AANMAAOsAAP8cJP80PP9RXf9tef+Kkv+iqv++x/8kAE0wAGVBAIJNAJpZALJlAMtxAOd5AP+CAP+OHP+WNP+mUf+ubf++hv/Lov/bvv9JAE1fAGN1AHqLAJChAKe3AL3NANTjAOvmF+3qL/DtR/LxX/X0dvf4jvr7pvz/vv8gAAAsAAA4BARJDAhVFBBhIBhxKCR9OCyGRTiaWU2qbV26gnXLmorfsqLvz77/698gIAA8PABRTQBlWQh5ZQyObRSieRy2fSi+gjjHjk3PlmHbpnXjso7rw6b308P/69//HBz/HBz/HBz/HBz/HBz/HBz/HBysfHz/HBz/HBz/HBz/HBwAAABtbW2qqqptbW0REdKpAAAAD3RFWHRTb2Z0d2FyZQBHcmFmeDKgolNqAAAASGNyTmcAAAACMD8AAAACQE8AAAACUF8AAAACYG8AAAACcH8AAAACgI8AAAACkJ8AAAACoK8AAAACsL8AAAACwM8AAAAC0N8AAAAC4O+6mu6bAAAAk0lEQVQ4jd3UXQ6AIAgA4C7BC6dg3f9wZTPkz2RlD4W1gr6htdmyZmN5SdI4Pi5xHymJJeZKxIA+k4dyNJDIEhOyXS4kC0OdRCVxIP1tINVTldyW5i1kqqX9iDL3ksjQSHId6implG0ugHLompV1KqhQFIVUkBztSF5nJIMNoaju2ZOmp9+4JyXTcxC/lfn//Gy5AVilLcOiiriTAAAAAElFTkSuQmCC"></a><a href="/" class="headerLink">%($"siteTitle%) <br><span id="headerSubTitle">[ %($"siteSubTitle%) ]</span></a></h1>
|
||||
<nav>
|
||||
% cat `{ get_lib_file top_bar.inc }
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
% if(! ~ $#handlers_bar_left 0) {
|
||||
<nav id="side-bar">
|
||||
% for(h in $handlers_bar_left) {
|
||||
<div>
|
||||
% run_handler $$h
|
||||
</div>
|
||||
% }
|
||||
</nav>
|
||||
% }
|
||||
|
||||
<div class="background"></div>
|
||||
<article>
|
||||
% run_handlers $handlers_body_head
|
||||
% run_handler $handler_body_main
|
||||
% run_handlers $handlers_body_foot
|
||||
</article>
|
||||
|
||||
<footer>
|
||||
% run_handlers $handlers_foot_body
|
||||
% cat `{ get_lib_file footer.inc }
|
||||
</footer>
|
|
@ -0,0 +1,4 @@
|
|||
<div><p>[ <a href="/new_post">Make a new post</a> ]</p>
|
||||
<form action="" method="POST">
|
||||
<p>[ <input type="submit" name="dirdir_edit" value="Edit page" /> ]</p>
|
||||
</form></div>
|
BIN
werc/sites/events.thirdculture.top/_werc/pub/imgs/starback.gif
Normal file
BIN
werc/sites/events.thirdculture.top/_werc/pub/imgs/starback.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue