diff --git a/.gitignore b/.gitignore index 7ca844a..ceaf0a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,10 @@ .DS_Store .htpasswd werc/etc/* -transfer/uploads/* +scripts/commands.txt +.env +gossa/ +prosody/ +scripts/ +transfer/ +werc/ \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index d943f7f..3855990 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,30 +18,6 @@ services: networks: - default-werc - gossa: - image: pldubouilh/gossa - container_name: gossa - ports: - - 3001:8001 - volumes: - - ./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 diff --git a/etc/lighttpd/conf.d/files.thirdculture.top.conf b/etc/lighttpd/conf.d/files.thirdculture.top.conf deleted file mode 100644 index ee85e6d..0000000 --- a/etc/lighttpd/conf.d/files.thirdculture.top.conf +++ /dev/null @@ -1,25 +0,0 @@ -$HTTP["host"] =~ "^files\.thirdculture\.top$" { - auth.backend = "htpasswd" - auth.backend.htpasswd.userfile = "/etc/lighttpd/.htpasswd" - - auth.require = ( "" => - ( - "method" => "basic", - "realm" => "Password protected area", - "require" => "valid-user" - ) - ) - - proxy.server = ( - "" => ( - ( - "host" => "gossa", - "port" => 8001, - "headers" => ( - "Host" => "$HTTP_HOST", - "X-Forwarded-For" => "$REMOTE_ADDR" - ) - ) - ) - ) -} diff --git a/etc/lighttpd/conf.d/up.thirdculture.top.conf b/etc/lighttpd/conf.d/up.thirdculture.top.conf deleted file mode 100644 index 23f491b..0000000 --- a/etc/lighttpd/conf.d/up.thirdculture.top.conf +++ /dev/null @@ -1,19 +0,0 @@ -$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" -} diff --git a/scripts/add_person.sh b/scripts/add_person.sh deleted file mode 100755 index 504490f..0000000 --- a/scripts/add_person.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Ensure the script is run with exactly two arguments -if [ $# -ne 2 ]; then - echo "Usage: $0 " - 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" < "$path/$name/blog/_werc/config" < "$path/$name/_werc/style.css" - -# Output a success message -echo "Folder structure created successfully at $path/$name" diff --git a/scripts/add_web_person.rc b/scripts/add_web_person.rc deleted file mode 100644 index 086237d..0000000 --- a/scripts/add_web_person.rc +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/rc - -# Check if the correct number of arguments are provided -if (~ $#argv 2) { - echo "Usage: $0 " - 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=''" > $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" diff --git a/transfer/tshweb/404.html b/transfer/tshweb/404.html deleted file mode 100644 index c073c41..0000000 --- a/transfer/tshweb/404.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Third Culture Upload - - - -
-

Content not found!

-

404

- - diff --git a/transfer/tshweb/download.audio.html b/transfer/tshweb/download.audio.html deleted file mode 100644 index 89d4b3d..0000000 --- a/transfer/tshweb/download.audio.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - Third Culture Upload - - - - -
-
-

{{.Filename}}

- - type: {{.ContentType}} - size: {{.ContentLength | format "#,###."}} bytes - -
- -

download

-
- -
-
- - - \ No newline at end of file diff --git a/transfer/tshweb/download.html b/transfer/tshweb/download.html deleted file mode 100644 index f5bb4ff..0000000 --- a/transfer/tshweb/download.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - Third Culture Upload - - - - -
-
-

{{.Filename}}

- - type: {{.ContentType}} - size: {{.ContentLength | format "#,###."}} bytes - -
-

download

-
- -
-
- - - \ No newline at end of file diff --git a/transfer/tshweb/download.image.html b/transfer/tshweb/download.image.html deleted file mode 100644 index 7d71385..0000000 --- a/transfer/tshweb/download.image.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - Third Culture Upload - - - - -
-
-

{{.Filename}}

- - type: {{.ContentType}} - size: {{.ContentLength | format "#,###."}} bytes - -
-
-

download

-
- -
- - - \ No newline at end of file diff --git a/transfer/tshweb/download.markdown.html b/transfer/tshweb/download.markdown.html deleted file mode 100644 index a43e38c..0000000 --- a/transfer/tshweb/download.markdown.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - Third Culture Upload - - - - -
-
-

{{.Filename}}

- - type: {{.ContentType}} - size: {{.ContentLength | format "#,###."}} bytes - -
-
{{.Content}}
-

download

-
- -
-
- - - \ No newline at end of file diff --git a/transfer/tshweb/download.video.html b/transfer/tshweb/download.video.html deleted file mode 100644 index 4a11e8e..0000000 --- a/transfer/tshweb/download.video.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - Third Culture Upload - - - - -
-
-

{{.Filename}}

- - type: {{.ContentType}} - size: {{.ContentLength | format "#,###."}} bytes - -
- -

download

-
- -
-
- - - \ No newline at end of file diff --git a/transfer/tshweb/favicon.ico b/transfer/tshweb/favicon.ico deleted file mode 100644 index cb6f257..0000000 Binary files a/transfer/tshweb/favicon.ico and /dev/null differ diff --git a/transfer/tshweb/includes/download-bottom.html b/transfer/tshweb/includes/download-bottom.html deleted file mode 100644 index a22c387..0000000 --- a/transfer/tshweb/includes/download-bottom.html +++ /dev/null @@ -1,4 +0,0 @@ - download

-
- -
\ No newline at end of file diff --git a/transfer/tshweb/includes/download-top.html b/transfer/tshweb/includes/download-top.html deleted file mode 100644 index 82c39d5..0000000 --- a/transfer/tshweb/includes/download-top.html +++ /dev/null @@ -1,4 +0,0 @@ -
-

{{.Filename}}

-

type: {{.ContentType}}

-

size: {{.ContentLength | format "#,###."}} bytes

diff --git a/transfer/tshweb/index.html b/transfer/tshweb/index.html deleted file mode 100644 index 4a882a2..0000000 --- a/transfer/tshweb/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - Third Culture Upload - - - - -

Third Culture Upload

-
- - -

- -
-


-

Make sure to copy the link in the next page!

-

More info on third culture upload here.

-


- - - - - - - - - \ No newline at end of file diff --git a/transfer/tshweb/scripts/info.html b/transfer/tshweb/scripts/info.html deleted file mode 100644 index 23553ed..0000000 --- a/transfer/tshweb/scripts/info.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - Third Culture Upload - - - - -

up.thirdculture.top info

-

Third culture upload supports uploading through the browser but also using the terminal as well you can find more details on the transfer.sh github. I will include some simple examples here for quick reference.

- - - \ No newline at end of file diff --git a/transfer/tshweb/styles/main.css b/transfer/tshweb/styles/main.css deleted file mode 100644 index 036e249..0000000 --- a/transfer/tshweb/styles/main.css +++ /dev/null @@ -1,99 +0,0 @@ -* { - 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; -} diff --git a/werc/README b/werc/README deleted file mode 100644 index b4dc773..0000000 --- a/werc/README +++ /dev/null @@ -1,79 +0,0 @@ -werc - a minimalist document management system ----------------------------------------------- - -Werc is a content management system and web (anti-)framework designed to be simple to -use, simple to setup, simple to hack on, and not get in the way while allowing -users easy customization. - -For more information see the official website: http://werc.cat-v.org/ - - -Installation ------------- - -Requirements: - -* An http server that can handle CGIs -* Plan 9 from User Space: http://swtch.com/plan9port, - Or 9base-tip: http://tools.suckless.org/9base, - Or frontbase: http://openbsd.stanleylieber.com/frontbase - -Note: Werc by default expects the Plan 9 tools to be installed under -/bin/, if you have installed them elsewhere you will need to edit the -#! line in bin/werc.rc and customize the $plan9port variable in your -etc/initrc.local. - - -Instructions: - -Untar werc at your desired location, configure httpd to use -/path-to-your-werc-installation/bin/werc.rc as a cgi-script, it is recommended -that you make werc.rc handle all non-static files (this can be done by setting -it up as your 404 handler) and setup your virtual hosts to handle static files -by setting the document root for the domain to -/path-to-werc-installation/sites/yourdomain.com/, and create a directory for -your web site under sites/ where you can start adding content right away. - -If you will want to allow updates via the web interface (eg., for wiki or -comments apps) make sure all files under sites/ are writable by the user your -cgi will run as, usually www-data, for example by doing: chown -R :www-data -sites/; chmod -R g+w sites/ - -If your Plan 9 binaries are located somewhere else than the standard /bin/ you -will need to edit the first line of bin/werc.rc (Note that p9p in particular is -picky about where it is located, once you run ./INSTALL you should *not* move -it to a different directory without running ./INSTALL again.) - -For general configuration options copy etc/initrc to etc/initrc.local and -customize it as needed. Site (and directory) specific options can be set in a -sites/example.com/_werc/config file inside the site's directory. To customize -templates and included files you can store your own version of the files in -lib/ under sites/example.com/_werc/lib. - -The source tree for the werc website is included under sites/werc.cat-v.org as -an example, feel free to use it as a template for your own site. - -For more details see the documentation section of the website: -http://werc.cat-v.org/docs/ - - -Contact -------- - -For comments, suggestions, bug reports or patches join the werc mailing list -at: http://werc.cat-v.org or the irc channel #cat-v in irc.freenode.org - -If you have a public website that uses werc I would love to hear about it and -get feedback about you experience setting it up. - -Thanks ------- - -Garbeam, Kris Maglione, sqweek, soul9, mycroftiv, maht, yiyus, cinap_lenrek, -khm and many others for their ideas, patches, testing and other contributions. - - -License -------- - -Werc is in the public domain. diff --git a/werc/apps/barf/.hg_archival.txt b/werc/apps/barf/.hg_archival.txt deleted file mode 100644 index d6c1290..0000000 --- a/werc/apps/barf/.hg_archival.txt +++ /dev/null @@ -1,6 +0,0 @@ -repo: 77501160f26f7411d00111255a38267f9973ec27 -node: e422b2d51d185ecbbdb180a28fdd13cac672be03 -branch: default -latesttag: null -latesttagdistance: 25 -changessincelatesttag: 25 diff --git a/werc/apps/barf/README b/werc/apps/barf/README deleted file mode 100755 index ab74443..0000000 --- a/werc/apps/barf/README +++ /dev/null @@ -1,158 +0,0 @@ -BARF - emit HTML - -DESCRIPTION - BARF utilizes rc(1) and command line tools to compile a structured - directory of files into a single page of HTML. Tagging and RSS 2.0 - feeds have been implemented. - -SETUP - To enable BARF, add: - - conf_enable_barf - - to _werc/config under the site root. - - To configure BARF, copy or create the following files under the site - root (example files have been included in this distribution): - - _werc/barf/config - A list of variables that control various site options: - - barf_type=paste # blog, image, log, paste - posts_per_page=10 - show_ascending=0 - show_footer=0 - show_header=0 - show_sidebar=0 - require_login=0 # if not logged in, redirect to /login - allow_anon=1 # allow posts without logging in - show_disqus=0 # include disqus comments template - # from _werc/barf/disqus - - _werc/barf/footer - HTML or markdown that will appear as the foot of - the BARF content area. - - _werc/barf/header - HTML or markdown that will appear at the head of - the BARF content area. - - _werc/barf/sidebar - HTML or markdown that will appear on one side of - the BARF content area. - - Finally, sample stylesheets are provided in the directory - pub/. Copy any of these to _werc/pub/style.css to try - them out. - -POSTS - Posts are stored in the directory src/ relative to the - site root. - - Directory names in src/ that do not match the regular - expression ^[0-9]*$ will not be included in the listing of - posts that are displayed in the browser. However, such - directories are still accessible when called directly via - an appropriately constructed URL. - - A post's directory contains the following files and - directories (an example post's directory has been - included in this distribution): - - body - date - img/ - link - tags/ - title - - The img/ directory contains images uploaded to the - image board, including the original image and a - thumbnail version, resized to no greater than 500 - pixels wide and 600 pixels tall. - - The tags/ directory contains one empty file named - for each tag associated with the post. - - The site root contains a file named tags that is compr- - ised of an index of the tags associated with each post. - This index is consulted when searching for a given tag in - the web browser. - -UTILS - bin/gf - Parse Livejournal and Tumblr RSS feeds into - BARF posts. (Abandoned, may no longer work.) - bin/gk - Create a list of known tags in the site root in - a file named known_tags. - bin/gr - Parse Google Reader bundles into BARF posts. - bin/gt - Create an index of tags in the site root in a file - named tags. - - For more information on these tools, read the source. - -ADMIN - Any tool that can create, alter, or delete flat files - and directories is sufficient to administer a BARF. - - Web-based login and administration utilizes werc's - built-in user authentication: - - http://domain.com/login - - After login, links to edit and delete will appear in - each post's meta data. - - Web-based administration requires that the src/ - directory and its sub-directories are writable by - the web server process. - -REQUIREMENTS - Unix - Plan9port or 9base are required. Site type - image requires ImageMagick and curl. Site - type url also requires curl if the user employs - the option to download remote URLs. These - utilities may be swapped out for others by - altering the source. - -SOURCE - http://plan9.stanleylieber.com/werc/apps/barf.tgz - https://code.9front.org/hg/barf - -EXAMPLES - blog - http://read.stanleylieber.com - RSS feeds are converted by the utility rrss[0] - and stored as individual blog posts. - image - http://img.stanleylieber.com - Hybrid public/private image board. Requires - standard werc authentication to post, but all - posts are visible to the public. - paste - http://okturing.com - Public pastebin. No authentication required - to post. - url - http://url.stanleylieber.com - Private index of URL bookmarks, similar - in functionality to the old delicious.com. - (In fact, most of the index was imported - from delicious.) - -SEE ALSO - [0] https://code.9front.org/hg/rrss - -LICENSE - Public domain. - -BUGS - On Plan 9, if the web server process is run as user - none (typically the case), directories used for entering - posts or uploading/downloading files from the browser - must be set world writable. This could prove problematic - on multiuser systems. diff --git a/werc/apps/barf/app.rc b/werc/apps/barf/app.rc deleted file mode 100755 index 6758a61..0000000 --- a/werc/apps/barf/app.rc +++ /dev/null @@ -1,80 +0,0 @@ -fn conf_enable_barf{ - barf_base_uri=$conf_wd - barf_root=`{pwd} - conf_enable_app barf -} - -fn barf_init{ - p=`{echo $req_path | sed 's!^'^$barf_base_uri^'!!'} - barf_dir=`{basename -d $"p | sed 's!^\.$!!'} - barf_items=`{cat $barf_root/_werc/barf/items} - . ./apps/barf/lib/core - . ./apps/barf/barf/config - . $barf_root/_werc/barf/config - . ./apps/barf/lib/$barf_type - if(test -f $barf_root/_werc/barf/lib/$barf_type) - . $barf_root/_werc/barf/lib/$barf_type - if(~ $require_login 1 && ! ~ $req_path $barf_base_uri^login){ - check_user - if(~ $#logged_user 0) - post_redirect /login - } - if(~ $REQUEST_METHOD GET && ~ $REQUEST_URI *'='*){ - load_get_args - parse_get_args - } - if(~ $REQUEST_METHOD POST) - parse_post_args - if(~ $a_func add_post){ - if(~ $allow_anon 1 || {check_user && ! ~ $#logged_user 0}) - add_post - post_redirect / - } - if(~ $a_func edit_post delete_post dsrc){ - if(check_user && ! ~ $#logged_user 0){ - switch($a_func){ - case edit_post - edit_post - case delete_post - delete_post - case dsrc - dsrc - } - } - } - get_start - get_stop - get_tags - if(~ $req_path $barf_base_uri){ - extraHeaders=$"extraHeaders ^ \ -'' - handler_body_main=(tpl_handler `{barf_template barf}) - } - if not if(~ $req_path $barf_base_uri^index.rss){ - obarf_type=$barf_type # disgusting hack. fix! - barf_type=rss - . ./apps/barf/lib/rss - barf_setup_feed_handlers barf.tpl 'text/xml; charset=utf-8' - } - if not if(~ $req_path $barf_base_uri^login){ - barf_type=login - handler_body_main=(tpl_handler `{barf_template barf}) - } -} - -fn barf_setup_feed_handlers{ - handler_body_main=NOT_USED_by_barf_feeds - res_tail=() - http_content_type=$2 - headers=() - master_template=apps/barf/lib/$1 -} - -fn barf_template{ - if(test -f $barf_root/$"barf_dir/_werc/barf/lib/$1.tpl) - echo -n $barf_root/$"barf_dir/_werc/barf/lib/$1.tpl - if not if(test -f $barf_root/_werc/barf/lib/$1.tpl) - echo -n $barf_root/_werc/barf/lib/$1.tpl - if not - get_lib_file barf/$1.tpl apps/barf/lib/$1.tpl -} diff --git a/werc/apps/barf/barf/config b/werc/apps/barf/barf/config deleted file mode 100755 index fd3c0ad..0000000 --- a/werc/apps/barf/barf/config +++ /dev/null @@ -1,9 +0,0 @@ -barf_type=blog # blog, image, log, paste, url -site_tmp=_tmp # used by hoc on plan 9 -posts_per_page=10 -show_ascending=0 -show_footer=0 -show_header=0 -show_sidebar=0 -require_login=0 # if not logged in, redirect to /login -allow_anon=1 # allow posts without logging in diff --git a/werc/apps/barf/barf/footer b/werc/apps/barf/barf/footer deleted file mode 100755 index 97a9d6c..0000000 --- a/werc/apps/barf/barf/footer +++ /dev/null @@ -1 +0,0 @@ -THIS IS THE FOOTER. diff --git a/werc/apps/barf/barf/header b/werc/apps/barf/barf/header deleted file mode 100755 index a446ba5..0000000 --- a/werc/apps/barf/barf/header +++ /dev/null @@ -1 +0,0 @@ -THIS IS THE HEADER. diff --git a/werc/apps/barf/barf/sidebar b/werc/apps/barf/barf/sidebar deleted file mode 100755 index 61c58f2..0000000 --- a/werc/apps/barf/barf/sidebar +++ /dev/null @@ -1 +0,0 @@ -THIS IS THE SIDEBAR. diff --git a/werc/apps/barf/bin/bsrc b/werc/apps/barf/bin/bsrc deleted file mode 100755 index cc35197..0000000 --- a/werc/apps/barf/bin/bsrc +++ /dev/null @@ -1,174 +0,0 @@ -#!/bin/rc -# Build static pages for $site. -rfork e -fn usage{ - echo usage: $0 [ domain.com ] >[1=2] - exit usage -} -if(~ $#1 0) - usage - -fn conf_enable_barf{ } - -werc=/var/www/werc -site=$werc/sites/$1 -barf_root=$site - -. $site/_werc/config -. $site/_werc/barf/config -. $werc/apps/barf/lib/core -. $werc/apps/barf/lib/$barf_type -if(test -f $site/_werc/barf/lib/$barf_type) - . $site/_werc/barf/lib/$barf_type -if(~ $show_ascending 1) - sort=(sort -nu) -if not - sort=(sort -nru) - -fn check_user{ } - -fn display_html_footers{ - echo ' -' -} - -fn display_html_headers{ - echo ' - - - '$"siteTitle' - - - - - - - - - -' -} - -fn display_prevnext{ - if(~ $#nstart 1){ - echo ' -
- - ' - if(test $start -lt $pstop && ! ~ $start $pstart) - echo 'prev | ' - echo ' - - ' - if(test $nstart -gt $bposts($#bposts)) - echo 'next' - echo ' - -
- ' - } -} - -fn get_post_list{ - if(~ $#posts 0){ - if(~ $id [0-9]*) - posts=$id - if not{ - posts=`{ - if(~ $tags all) - ls -p $site/src | - grep -e '^[0-9]*$' | - eval $sort | - sed -n $start^,^$stop^p - if not - grep -e '^.*\/'$tags'$' $site/tags | - awk -F '/' '{print $1;}' | - eval $sort | - sed -n $start^,^$stop^p - } - if(! ~ $posts [0-9]*) - posts=() - } - } -} - -fn print{ - display_html_headers - if(~ $show_header 1) - display_header - display_^$barf_type - if(~ $show_sidebar 1) - display_sidebar - if(~ $show_footer 1) - display_footer - display_html_footers -} - -fn print_id{ - echo 'No.'$"a_id'' -} - -fn print_tags{ - a_tags=`{ls -p $a_dir/tags} - a_tags=`{for(t in $a_tags) echo ''$t', '} - a_tags=`{echo $a_tags | awk '{print substr($0, 1, length($0) -1)}'} - echo ''$"a_tags'' -} - -fn print_title{ - a_title=`{cat $a_dir/title} - if(! ~ $#a_title 0){ - if(~ $barf_type log url) - echo ''$"a_title'' - if not - echo ''$"a_title'' - } -} - -cd $site - -# individual posts -bposts=`{ls -p $site/src | grep -v private | grep -e '^[0-9]*$' | eval $sort} -for(b in $bposts){ - id=$b posts=() print >$b.html - echo $"b^'.html' >[1=2] -} - -# paginated posts -start=$bposts(1) -stop=`{echo $bposts(1)^-^$posts_per_page | bc} -pstart=$start -pstop=$stop -while(test $start -ge $bposts($#bposts)){ - if(test $stop -lt $bposts($#bposts)) - stop=$bposts($#bposts) - nstart=`{echo $stop^-^1 | bc} - nstop=`{echo $stop^-^$posts_per_page^-1 | bc} - pposts=`{ - for(i in `{seq $stop $start | eval $sort}) - if(test -d $site/src/$i) - echo $i - } - tags=all posts=$pposts print >$start^-^$stop.html - echo $"start^'-'^$"stop^'.html' >[1=2] - pstart=$start - pstop=$stop - start=`{echo $stop^-1 | bc} - stop=`{echo $start^-^$posts_per_page | bc} -} -cp `{ls [0-9]*-[0-9]*.html | sort -n | tail -1} index.html -if(test -x /boot/factotum) - chmod +t [0-9]*.html [0-9]*-[0-9]*.html index.html - -# tags -for(b in `{awk -F '/' '{print $3;}' tags | sort -u}){ - btags=$b - mkdir -p tag/$btags - bposts=`{grep -e '^.*\/'$btags'$' tags | awk -F '/' '{print $1;}' | eval $sort} - start=$bposts(1) - stop=$bposts($#bposts) - tags=all posts=$bposts print >tag/$btags/index.html - echo tag/$btags/index.html >[1=2] - if(test -x /boot/factotum) - chmod +t tag tag/$btags tag/$btags/index.html -} diff --git a/werc/apps/barf/bin/dsrc b/werc/apps/barf/bin/dsrc deleted file mode 100755 index 4601f24..0000000 --- a/werc/apps/barf/bin/dsrc +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/rc -# 2016-05-01T18:47:42-0400 -# Delete posts $low through $high. -rfork e -dhost=ur.inri.net -fn usage { - echo usage: dsrc [ -r n ] [ -t n ] >[1=2] - exit usage -} -switch($1){ -case -r - site=/usr/sl/www/werc/sites/read.stanleylieber.com -case -t - site=/usr/sl/www/werc/sites/tumblr.stanleylieber.com -case * - usage -} -if(! ~ $sysname ur){ - rcpu -h $dhost -c dsrc $* - exit -} -low=`{ls -p $site/src | sort -n | sed 1q} -high=$2 -cd $site/src && rm -rf `{seq $low $high} -{ -for(i in `{seq $low $high}) - echo ',x/^'$i'\/.*\n/d' -echo w -echo w -echo q -} | sam -d $site/tags >[2]/dev/null diff --git a/werc/apps/barf/bin/gf b/werc/apps/barf/bin/gf deleted file mode 100755 index 6d257fc..0000000 --- a/werc/apps/barf/bin/gf +++ /dev/null @@ -1,426 +0,0 @@ -#!/bin/rc -# Parse RSS feeds from livejournal or tumblr into BARF blog posts -# for the specified site. If a post with a matching already -# exists, no new post will be created for that . Accordingly, -# the gf script may run slowly for sites with a large number of -# existing posts. Tags will be created from each . -rfork en -switch($1){ -case 1oct1993_lj - feed=http://feeds.feedburner.com/Sl/1oct1993 - site=1oct1993.com - tags=(rss) -case architecture - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=6e361b590b57934fb1e7c4e29339d619&_render=rss' - site=read.stanleylieber.com - tags=(architecture) -case comics - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=6bc617a6b20aafd526affafc9a28a5d5&_render=rss' - site=read.stanleylieber.com - tags=(comics) -case fg_lj - feed=http://feeds.feedburner.com/Sl/flamesgif - site=flamesgif.com - tags=(rss livejournal) -case inri_lj - feed=http://feeds.feedburner.com/Sl/itrecords - site=inri.net - tags=(rss livejournal) -case mf_lj - feed=http://feeds.feedburner.com/Sl/massivefictions - site=massivefictions.com - tags=(rss livejournal) -case other_lj - feed=http://feeds.feedburner.com/SL/other - site=other.stanleylieber.com - tags=() -case read - #feed=http://feeds.feedburner.com/SL/g/friends - #feed='http://pipes.yahoo.com/pipes/pipe.run?_id=f5d60acfd41497310d74900270192600&_render=rss' - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=d1f7146306b019d96d768facf95eebd9&_render=rss' - site=test.stanleylieber.com - tags=() -case sl_lj - feed=http://feeds.feedburner.com/ImNotReallyStanleyLieber - site=stanleylieber.com - tags=(rss livejournal) -case sl_tumblr - feed=http://stanleylieber.tumblr.com/rss - site=stanleylieber.com - tags=(rss tumblr) -case ta_lj - feed=http://feeds.feedburner.com/Sl/text_adventure - site=textadventure.stanleylieber.com - tags=(rss livejournal) -case tech - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=6dd49be6e34a6871db9bcfc74d4b36b1&_render=rss' - site=read.stanleylieber.com - tags=(tech) -case * - echo 'Usage: gf [ ... ]' >[1=2] - exit usage -} - -file=/tmp/gf.$1 -werc=/usr/sl/www/werc - -if(test -f /boot/factotum) - cmd=hget -if not - cmd='curl -s' - -fn get_feed{ - $"cmd $feed >$file.work - { - echo ' -,s/ //g -,s/\"/\"/g -,s/\"/\"/g -,s/\&/\&/g -,s/\&/\&/g -,s/\'/''/g -,s/\,/,/g -,s/\-/-/g -,s/\./\./g -,s/\//\//g -,s/\:/:/g -,s/\;/;/g -,s/\<//g -,s/\>/>/g -,s/\_/_/g -,s/\|/\|/g -,s/\n//g -,s/<\/item>/\n<\/item>\n/g -,s/^/\n/g -,s/^[ ]*.*<\/description>/ s/\n//g -w -q -' - echo -} | sam -d $file.work >[2]/dev/null >[1=2] - awk '/(^||||<description>|<comments>|<category>|<\/item>)/ {print $0;}' $file.work >$file -} - -fn get_tags{ - switch($a_link){ - case *1oct1993* - tags=($tags 1oct1993) - case *9front* - tags=($tags software plan9 9front) - case *amyearles* *pushedunder* *seaglass* *woolandwater* - tags=($tags amy_earles) - case *animenewsnetwork* - tags=($tags telescreen anime) - case *spikejapan* - tags=($tags japan comics manga telescreen anime) - case *ArchDaily* *archdaily* - tags=($tags archdaily architecture) - case *bldgblog* - tags=($tags bldgblog architecture) - case *kazuyosejima* - tags=($tags japan architecture) - case *Minimalissimo* - tags=($tags minimalissimo design architecture) - case *ArtFagCity* *artfagcity* - tags=($tags artfagcity art) - case *rhizome-fp* - tags=($tags rhizome-fp art) - case *rhizome* - tags=($tags rhizome art) - case *starwarsmodern* - tags=($tags starwarsmodern art) - case *tokyoartbeat* - tags=($tags tokyoartbeat japan art) - case *trendbeheer* - tags=($tags trendbeheer art) - case *ValentinaTanni* - tags=($tags valentinatanni art) - case *vvork* - tags=($tags vwork art) - case *auriea* *tale-of-tales* *taleoftales* - tags=($tags auriea) - case *basscomm* *closeoutwarrior* *crummysocks* *gamerrelocationproject* *protipoftheday* *PushButtonB* *pushbuttonb* - tags=($tags video_games basscomm) - case *benjaminmarra* - tags=($tags comics benjamin_marra) - case *boingboing* - tags=($tags boingboing) - case *bushinbooks* *henka* - tags=($tags budo) - case *alexaanddave* *CEREBUS* *Cerebus* *cerebus* *davesim* *gerhard* - tags=($tags comics cerebus gerhard) - case *coilhouse* - tags=($tags coilhouse) - case *arche-arc* - tags=($tags arche comics) - case *blaiselarmee* - tags=($tags blaise_larmee comics) - case *bleedingcool* - tags=($tags bleedingcool comics) - case *bobgreenberger* - tags=($tags bob_greengerger comics) - case *coldheatcomics* - tags=($tags coldheat comics) - case *comicbookresources* - tags=($tags cbr comics) - case *comicsbeat* - tags=($tags comicsbeat comics) - case *ComicsComics* *comicscomics* - tags=($tags comicscomics comics) - case *coveredblog* - tags=($tags coveredblog comics) - case *dcfifty-too* - tags=($tags dcfifty-too comics) - case *Destructoid* *destructoid* - tags=($tags destructoid video_games) - case *economist.com* - tags=($tags economist) - case *ferrandelgado* - tags=($tags ferran_delgado comics) - case *eddiecampbell* - tags=($tags eddie_campbell comics) - case *factualopinion* - tags=($tags factualopinion comics) - case *floating_world* *floatingworld* - tags=($tags floating_world comics) - case *frankmiller* - tags=($tags frank_miller comics) - case *humancolor* - tags=($tags humancolor comics) - case *jerkcity* - tags=($tags jerkcity comics) - case *newconstructionblog* - tags=($tags newconstruction manga comics) - case *ohdannyboy* - tags=($tags ohdannyboy comics) - case *pulphope* - tags=($tags pulphope comics) - case *pwbeat* - tags=($tags pwbeat comics) - case *reliablecomics* - tags=($tags reliablecomics comics) - case *reneefrench* - tags=($tags renee_french comics) - case *rickveitch* - tags=($tags rick_veitch comics) - case *smbc-comics* - tags=($tags smbc comics) - case *studygroup* - tags=($tags studygroup comics) - case *xkcd* - tags=($tags xkcd comics) - case *bowiesongs* *DavidBowie* *davidbowie* - tags=($tags music david_bowie) - case *designboom* - tags=($tags designboom design) - case *dezeen* - tags=($tags dezeen design) - case *infosthetics* - tags=($tags infosthetics design) - case *inhabitat* - tags=($tags inhabitat architecture design) - case *luigicolani* - tags=($tags luigicolani design) - case *mocoloco* - tags=($tags mocoloco design) - case *sydmead* - tags=($tags sydmead design) - case *dzima* - tags=($tags dzima) - case *bbcicecream* - tags=($tags bbcicecream fashion) - case *DamStyle *damstyle* - tags=($tags damstyle fashion) - case *facehunter* - tags=($tags facehunter fashion) - case *StilInBerlin* - tags=($tags germany fashion) - case *jstreets* - tags=($tags jstreets japan fashion) - case *stylefromtokyo* - tags=($tags stylefromtokyo japan fashion) - case *tokyofashion* - tags=($tags tokyofashion japan fashion) - case *flames.gif* *flamesgif* - tags=($tags flames.gif) - case *contemporary-home-computing* - tags=($tags software flames.gif) - case *kurzweil* - tags=($tags kurzweil future) - case *longnow* - tags=($tags longnow future) - case *OpenTheFuture* - tags=($tags openthefuture future) - case *golang* *blog.nella.org* - tags=($tags golang) - case *googlepluses* - tags=($tags google) - case *news.ycombinator.com* - tags=($tags hackernews hack) - case *seanbonner* - tags=($tags sean_bonner hack) - case *banriman* - tags=($tags banriman japan) - case *japansubculture* - tags=($tags japansubculture japan) - case *jeansnow* - tags=($tags jeansnow japan) - case *Kotaku* *kotaku* - tags=($tags kotaku video_games) - case *eforemario* - tags=($tags before_mario video_games) - case *nakakobooks* - tags=($tags books nakakobooks japan) - case *ozawamaria* - tags=($tags maria_ozawa japan) - case *shisaku.blogspot.com* - tags=($tags shisaku japan) - case *jimshooter* - tags=($tags comics jim_shooter) - case *LettersOfNote* *lettersofnote* - tags=($tags letters) - case *nasa*letters.rss* - tags=($tags nasa letters) - case *hellodamage* *manganews* *naokiurasawa* *samehat* - tags=($tags comics manga) - case *mangatraders* - tags=($tags p2p comics manga) - case *hortonheardawho* - tags=($tags hortonheardawho flickr nasa mars) - case *me-vs-gutenberg* *mevsgutenberg* - tags=($tags martin_sand) - case *marxy* - tags=($tags marxy) - case *etamodern* - tags=($tags metamodern) - case *aviationintel* - tags=($tags aviationintel mil) - case *aviationweek* - tags=($tags aviationweek mil) - case *codeonemagazine* - tags=($tags codeonemagazine mil) - case *geimint* - tags=($tags geimint mil) - case *momus* *mrstsk* - tags=($tags books music momus) - case *bjork* *toog* - tags=($tags music) - case *nasa.gov* - tags=($tags space nasa) - case *mongoliad* - tags=($tags neal_stephenson) - case *gaiman* - tags=($tags comics neil_gaiman) - case *nin.com* *feeds.nin.com* - tags=($tags music nin) - case *nix-os* *syssoftware* - tags=($tags plan9 nix) - case *bsdly* *OPENBSD* *OpenBSD* *openbsd* *scientist-home* *undeadly* - tags=($tags software openbsd) - case *godownmatthew* *mysticmilk* *petetoms* - tags=($tags pete_toms) - case *Pitchfork* *pitchfork* - tags=($tags music pitchfork) - case *9gridchan* *cat-v* *maht0x0r* *Plan9* *plan9* - tags=($tags software plan9) - case *FlauntTalks* *prince.org* *purpleinterviews* *wendyandlisa* - tags=($tags music prince) - case *commandcenter* *rob_pike* - tags=($tags golang plan9 rob_pike) - case *prometheus* - tags=($tags telescreen prometheus) - case *reddit.com* - tags=($tags reddit) - case *swtch.com* - tags=($tags golang plan9 rsc) - case *bunniestudios* - tags=($tags bunniestudios security) - case *jwz* - tags=($tags jwz security) - case *Krebs* *krebs* - tags=($tags krebs security) - case *scarybeastsecurity* - tags=($tags scarybeast security) - case *schneier* - tags=($tags bruce_schneier security) - case *chinchillakwak* *skwak* - tags=($tags skwak) - case *slashdot* - tags=($tags slashdot) - case *stanleylieber* - tags=($tags stanleylieber) - case *fastcompany* - tags=($tags fastcompany tech) - case *danharmon* - tags=($tags danharmon telescreen) - case *mindlessones* - tags=($tags mindlessones telescreen) - case *tcj.com* - tags=($tags comics tcj) - case *TEDblog* *ted.com* - tags=($tags ted) - case *ticom* - tags=($tags ticom security) - case *orrentfreak* - tags=($tags p2p torrentfreak) - case *ultra*culture* - tags=($tags ultraculture) - case *kleinletters* - tags=($tags comics todd_klein) - case *plaidstallions* - tags=($tags plaidstallions toys) - case *shojikawamori* - tags=($tags shojikawamori japan toys) - } - echo -n $tags -} - -fn parse_posts{ - ifs=' -' { - posts=`{cat $file} - for(i in `{seq 1 $#posts | sort -nr}){ - post=`{echo $posts($i) | sed 's/> </>\n</g' | grep -v -e '<comments>'} - if(! ~ $post ''){ - a_title=`{echo $post | grep -e 'title>' | sed 's/^.*<title>//g; s/<\/title>.*$//g'} - a_date=`{echo $post | grep -e '<pubDate>' | sed 's/^.*<pubDate>//g; s/<\/pubDate>.*$//g'} - a_link=`{echo $post | grep -e '<link>' | sed 's/^.*<link>//g; s/<\/link>.*$//g; s/^.*http/http/g'} - a_tags=`{echo $post | grep -e '<category>' | sed 's/^.*<\/comments>//g; s/^.*<description>//g; s/^.*<\/description>//g; s/^.*<\/pubDate>//g; s/<category>/ /g; s/<\/category>//g; s/<dc.*$//g; s/^ //g; s/ $//g'} - a_tags=`{for(j in $a_tags){ echo $j | sed 's/^.*(<|>).*$//g'}} - a_body=`{echo $post | grep -e '<description>' | sed 's/^.*<description>//g; s/<\/description>.*$//g'} - a_id=`{echo `{ls -p $werc/sites/$site/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $werc/sites/$site/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - if(! ~ $"a_link '' && ! ~ $"a_link `{cat $werc/sites/$site/src/*/link}){ - mkdir -p $werc/sites/$site/src/$a_id/tags # big fat race - echo $"a_title >$werc/sites/$site/src/$a_id/title - echo $"a_date >$werc/sites/$site/src/$a_id/date - echo $"a_link >$werc/sites/$site/src/$a_id/link - echo $"a_body '</a></li></ul>' >$werc/sites/$site/src/$a_id/body - ifs=' ' { - for(j in `{get_tags}){ - >$werc/sites/$site/src/$a_id/tags/$j - echo $a_id/tags/$j >>$werc/sites/$site/tags - } - } - } - if(test -f /boot/factotum && ~ $site *.stanleylieber.com) - for(i in `{f $werc/sites/$site/src/$a_id}) - chmod +t $i - } - } - } -} - -if(test -f /boot/factotum && test -f /rc/bin/hget) - webfs -get_feed -parse_posts diff --git a/werc/apps/barf/bin/gk b/werc/apps/barf/bin/gk deleted file mode 100755 index 06652e6..0000000 --- a/werc/apps/barf/bin/gk +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/rc -# Create an index of known_tags in $werc/sites/$site/known_tags -if(! ~ $#1 0) - base=$1 -if not if(~ $#barf_root 1 && $#barf_base 1) - base=$barf_root/$"barf_base -if not - base=`{pwd} - -if(test -f $base/_known_tags) - rm $base/_known_tags -for(i in `{cat $base/etc/tags}){ - grep -e '^.*\/'$i'$' $base/tags | - awk -F '/' '{print $3;}' | - sort | - uniq -c | - awk '{print $2 " " $1;}' >>$base/_known_tags -} -if(test -f $base/_known_tags) - cp $base/_known_tags $base/known_tags diff --git a/werc/apps/barf/bin/gr b/werc/apps/barf/bin/gr deleted file mode 100755 index f24a0ca..0000000 --- a/werc/apps/barf/bin/gr +++ /dev/null @@ -1,415 +0,0 @@ -#!/bin/rc -# Parse RSS feeds from Google Reader bundles into BULGE blog posts. -# If a post with a matching <link> already exists, no new post will -# be created for that <item>. Accordingly, the gr script may run -# slowly for sites with a large number of existing posts. Tags will -# be created from each <category>. -rfork en -switch($1){ -case architecture - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=6e361b590b57934fb1e7c4e29339d619&_render=rss' - site=read.stanleylieber.com - tags=(architecture) -case comics - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=6bc617a6b20aafd526affafc9a28a5d5&_render=rss' - site=read.stanleylieber.com - tags=(comics) -case friends - feed='https://www.google.com/reader/bundle/user%2F08193524211692385241%2Fbundle%2Ffriends' - site=read.stanleylieber.com - tags=(friends) -case tech - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=6dd49be6e34a6871db9bcfc74d4b36b1&_render=rss' - site=read.stanleylieber.com - tags=(tech) -case * - echo usage: `{basename $0} '[ ... ]' >[1=2] - exit usage -} - -file=/tmp/gr.$1 -werc=/usr/sl/www/werc - -if(test -f /boot/factotum) - cmd=hget -if not - cmd='curl -s' - -fn f{ du -a $* | sed 's/^.* //g' } - -fn get_feed{ - $"cmd $feed >$file.work - { - echo ' -,s/\"/\"/g -,s/\"/\"/g -,s/\&/\&/g -,s/\&/\&/g -,s/\'/\''/g -,s/\,/,/g -,s/\-/-/g -,s/\./\./g -,s/\//\//g -,s/\:/:/g -,s/\;/;/g -,s/\</</g -,s/\</</g -,s/\=/=/g -,s/\>/>/g -,s/\>/>/g -,s/\_/_/g -,s/\|/\|/g -,/<div id="items">/d -/<div id="sidebar">/,d -,s/<h2 class="item-title">/\n<h2 class="item-title">/g -,s/<div class="item">.*$/HJDIVIDER/g -,s/\n//g -,s/HJDIVIDER/\n/g -1d -w -q -' - echo -} | sam -d $file.work >[2]/dev/null >[1=2] -} - -fn get_tags{ - switch($a_link){ - case *1oct1993* - tags=($tags 1oct1993) - case *9front* - tags=($tags software plan9 9front) - case *amyearles* *pushedunder* *seaglass* *woolandwater* - tags=($tags amy_earles) - case *animenewsnetwork* - tags=($tags telescreen anime) - case *spikejapan* - tags=($tags japan comics manga telescreen anime) - case *ArchDaily* *archdaily* - tags=($tags archdaily architecture) - case *bldgblog* - tags=($tags bldgblog architecture) - case *kazuyosejima* - tags=($tags japan architecture) - case *Minimalissimo* - tags=($tags minimalissimo design architecture) - case *ArtFCity* *ArtFagCity* *artfagcity* - tags=($tags artfagcity art) - case *rhizome-fp* - tags=($tags rhizome-fp art) - case *rhizome* - tags=($tags rhizome art) - case *starwarsmodern* - tags=($tags starwarsmodern art) - case *tokyoartbeat* - tags=($tags tokyoartbeat japan art) - case *trendbeheer* - tags=($tags trendbeheer art) - case *ValentinaTanni* - tags=($tags valentinatanni art) - case *vvork* - tags=($tags vwork art) - case *auriea* *tale-of-tales* *taleoftales* - tags=($tags auriea) - case *basscomm* *closeoutwarrior* *crummysocks* *gamerrelocationproject* *protipoftheday* *PushButtonB* *pushbuttonb* - tags=($tags video_games basscomm) - case *benjaminmarra* - tags=($tags comics benjamin_marra) - case *boingboing* - tags=($tags boingboing) - case *bushinbooks* *henka* - tags=($tags budo) - case *alexaanddave* *CEREBUS* *Cerebus* *cerebus* *davesim* *gerhard* - tags=($tags comics cerebus gerhard) - case *coilhouse* - tags=($tags coilhouse) - case *arche-arc* - tags=($tags arche comics) - case *blaiselarmee* - tags=($tags blaise_larmee comics) - case *bleedingcool* - tags=($tags bleedingcool comics) - case *bobgreenberger* - tags=($tags bob_greengerger comics) - case *coldheatcomics* - tags=($tags coldheat comics) - case *comicbookresources* - tags=($tags cbr comics) - case *comicsbeat* - tags=($tags comicsbeat comics) - case *ComicsComics* *comicscomics* - tags=($tags comicscomics comics) - case *coveredblog* - tags=($tags coveredblog comics) - case *dcfifty-too* - tags=($tags dcfifty-too comics) - case *Destructoid* *destructoid* - tags=($tags destructoid video_games) - case *economist.com* - tags=($tags economist) - case *ferrandelgado* - tags=($tags ferran_delgado comics) - case *eddiecampbell* - tags=($tags eddie_campbell comics) - case *factualopinion* - tags=($tags factualopinion comics) - case *floating_world* *floatingworld* - tags=($tags floating_world comics) - case *frankmiller* - tags=($tags frank_miller comics) - case *humancolor* - tags=($tags humancolor comics) - case *jerkcity* - tags=($tags jerkcity comics) - case *newconstructionblog* - tags=($tags newconstruction manga comics) - case *ohdannyboy* - tags=($tags ohdannyboy comics) - case *pulphope* - tags=($tags pulphope comics) - case *pwbeat* - tags=($tags pwbeat comics) - case *reliablecomics* - tags=($tags reliablecomics comics) - case *reneefrench* - tags=($tags renee_french comics) - case *rickveitch* - tags=($tags rick_veitch comics) - case *smbc-comics* - tags=($tags smbc comics) - case *studygroup* - tags=($tags studygroup comics) - case *xkcd* - tags=($tags xkcd comics) - case *bowiesongs* *DavidBowie* *davidbowie* - tags=($tags music david_bowie) - case *designboom* - tags=($tags designboom design) - case *dezeen* - tags=($tags dezeen design) - case *infosthetics* - tags=($tags infosthetics design) - case *inhabitat* - tags=($tags inhabitat architecture design) - case *luigicolani* - tags=($tags luigicolani design) - case *mocoloco* - tags=($tags mocoloco design) - case *sydmead* - tags=($tags sydmead design) - case *dzima* - tags=($tags dzima) - case *bbcicecream* - tags=($tags bbcicecream fashion) - case *DamStyle *damstyle* - tags=($tags damstyle fashion) - case *facehunter* - tags=($tags facehunter fashion) - case *StilInBerlin* - tags=($tags germany fashion) - case *jstreets* - tags=($tags jstreets japan fashion) - case *Stilinberlin* - tags=($tags stilinberlin germany fashion) - case *stylefromtokyo* - tags=($tags stylefromtokyo japan fashion) - case *tokyofashion* - tags=($tags tokyofashion japan fashion) - case *flames.gif* *flamesgif* - tags=($tags flames.gif) - case *contemporary-home-computing* - tags=($tags software flames.gif) - case *kurzweil* - tags=($tags kurzweil future) - case *longnow* - tags=($tags longnow future) - case *OpenTheFuture* - tags=($tags openthefuture future) - case *golang* *blog.nella.org* - tags=($tags golang) - case *googlepluses* - tags=($tags google) - case *news.ycombinator.com* - tags=($tags hackernews hack) - case *seanbonner* - tags=($tags sean_bonner hack) - case *banriman* - tags=($tags banriman japan) - case *japansubculture* - tags=($tags japansubculture japan) - case *jeansnow* - tags=($tags jeansnow japan) - case *Kotaku* *kotaku* - tags=($tags kotaku video_games) - case *eforemario* - tags=($tags before_mario video_games) - case *nakakobooks* - tags=($tags books nakakobooks japan) - case *ozawamaria* - tags=($tags maria_ozawa japan) - case *ibuya246* - tags=($tags shibuya246 japan) - case *shisaku.blogspot.com* - tags=($tags shisaku japan) - case *jimshooter* - tags=($tags comics jim_shooter) - case *LettersOfNote* *lettersofnote* - tags=($tags letters) - case *nasa*letters.rss* - tags=($tags nasa letters) - case *hellodamage* *manganews* *naokiurasawa* *samehat* - tags=($tags comics manga) - case *mangatraders* - tags=($tags p2p comics manga) - case *hortonheardawho* - tags=($tags hortonheardawho flickr nasa mars) - case *me-vs-gutenberg* *mevsgutenberg* - tags=($tags martin_sand) - case *marxy* - tags=($tags marxy) - case *etamodern* - tags=($tags metamodern) - case *aviationintel* - tags=($tags aviationintel mil) - case *aviationweek* - tags=($tags aviationweek mil) - case *codeonemagazine* - tags=($tags codeonemagazine mil) - case *geimint* - tags=($tags geimint mil) - case *bjork* - tags=($tags bjork music) - case *momus* *mrstsk* - tags=($tags books momus music) - case *toog* - tags=($tags toog music) - case *nasa.gov* - tags=($tags space nasa) - case *mongoliad* - tags=($tags neal_stephenson) - case *gaiman* - tags=($tags comics neil_gaiman) - case *nin.com* *feeds.nin.com* - tags=($tags music nin) - case *nix-os* *syssoftware* - tags=($tags plan9 nix) - case *bsdly* *OPENBSD* *OpenBSD* *openbsd* *scientist-home* *undeadly* - tags=($tags software openbsd) - case *godownmatthew* *mysticmilk* *petetoms* - tags=($tags pete_toms) - case *Pitchfork* *pitchfork* - tags=($tags music pitchfork) - case *9gridchan* *cat-v* *maht0x0r* *Plan9* *plan9* - tags=($tags software plan9) - case *FlauntTalks* *prince.org* *purpleinterviews* *wendyandlisa* - tags=($tags music prince) - case *commandcenter* *rob_pike* - tags=($tags golang plan9 rob_pike) - case *prometheus* - tags=($tags telescreen prometheus) - case *reddit.com* - tags=($tags reddit) - case *swtch.com* - tags=($tags golang plan9 rsc) - case *bunniestudios* - tags=($tags bunniestudios security) - case *jwz* - tags=($tags jwz security) - case *Krebs* *krebs* - tags=($tags krebs security) - case *scarybeastsecurity* - tags=($tags scarybeast security) - case *schneier* - tags=($tags bruce_schneier security) - case *chinchillakwak* *skwak* - tags=($tags skwak) - case *slashdot* - tags=($tags slashdot) - case *stanleylieber* - tags=($tags stanleylieber) - case *fastcompany* - tags=($tags fastcompany tech) - case *danharmon* - tags=($tags danharmon telescreen) - case *mindlessones* - tags=($tags mindlessones telescreen) - case *tcj.com* - tags=($tags comics tcj) - case *TEDblog* *ted.com* - tags=($tags ted) - case *ticom* - tags=($tags ticom security) - case *orrentfreak* - tags=($tags p2p torrentfreak) - case *ultra*culture* - tags=($tags ultraculture) - case *kleinletters* - tags=($tags comics todd_klein) - case *kennercollector* - tags=($tags kennercollector toys) - case *plaidstallions* - tags=($tags plaidstallions toys) - case *shojikawamori* - tags=($tags shojikawamori japan toys) - case *ruinedcartridge* - tags=($tags basscomm video_games) - } - echo -n $tags -} - -fn parse_posts{ - ifs=' -' { - for(post in `{sort -r $file.work}){ - if(! ~ $post ''){ - a_title=`{echo $post | sed 's/^.*<h2 class="item-title"><div class="">//g' | sed 's/<div class="item-info">.*$//g' | htmlfmt} - if(~ $#a_title 0) - a_title=`{echo $post | sed 's/^.*<div class="item-info">//g' | sed 's/<div class="item-annotations">.*$//g' | htmlfmt} - if(~ $#a_title 0) - a_title=fake - a_link=`{echo $post | sed 's/^.*<h2 class="item-title"><div class="">//g' | sed 's/<div class="item-info">.*$//g' | htmlfmt -a | sed 's/^.*\[//g' | sed 's/\].*$//g' | sed 's/ .*$//g'} - if(~ $#a_link 0 || ! ~ $"a_link http*) - a_link=`{echo $post | sed 's/^.*<h2 class="item-title"><div class="">//g' | sed 's/<div class="item-info">.*$//g' | sed 's/^.*<a href="//g' | sed 's/\".*$//g' | sed 's/^.*http/http/g' | sed 's/ .*$//g'} - if(~ $#a_link 0 || ! ~ $"a_link http*) - a_link=`{echo $post | sed 's/^.*<div class="item-info">//g' | sed 's/<div class="item-annotations">.*$//g' | htmlfmt -a | sed 's/^.*\[//g' | sed 's/\].*$//g' | sed 's/ .*$//g'} - if(~ $#a_link 0 || ! ~ $"a_link http*) - a_link=`{echo $post | sed 's/^.*<div class="item-info">//g' | sed 's/<div class="item-annotations">.*$//g' | sed 's/^.*<a href="//g' | sed 's/" class="f">.*$//g' | sed 's/\".*$//g' | sed 's/^.*http/http/g' | sed 's/ .*$//g'} - a_link=$a_link(1) - if(~ $#a_link 0 || ~ $"a_link '' || ! ~ $"a_link http*) - a_link=fake - if(! ~ $#a_link 1) - a_link=`{echo $a_link | awk '{print $1;}'} - a_date=`{date -n} - a_body=`{echo $post | sed 's/^.*<div class="item-body">//g' | sed 's/<div class="clear">.*$//g'} - if(~ $#a_body 0) - a_body=fake - a_id=`{echo `{ls -p $werc/sites/$site/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $werc/sites/$site/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - if(! ~ $"a_link `{cat $werc/sites/$site/src/*/link}){ - mkdir -p $werc/sites/$site/src/$a_id/tags # big fat race - echo $"a_title >$werc/sites/$site/src/$a_id/title - echo $"a_date >$werc/sites/$site/src/$a_id/date - echo $"a_link >$werc/sites/$site/src/$a_id/link - echo $"a_body '</a></li></ul>' >$werc/sites/$site/src/$a_id/body - ifs=' ' { - for(j in `{get_tags}){ - >$werc/sites/$site/src/$a_id/tags/$j - echo $a_id/tags/$j >>$werc/sites/$site/tags - } - } - } - if(test -f /boot/factotum) - for(i in `{f $werc/sites/$site/src/$a_id}) - chmod +t $i - } - } - } -} - -if(test -f /boot/factotum && test -f /rc/bin/hget) - webfs -get_feed -parse_posts diff --git a/werc/apps/barf/bin/gt b/werc/apps/barf/bin/gt deleted file mode 100755 index ff330a7..0000000 --- a/werc/apps/barf/bin/gt +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/rc -# Create an index of tags in $werc/sites/$site/tags. BULGE -# greps this index when running a search on a given tag. -# This file is also maintained by the bin/g* commands, or -# when adding posts through the web interface. -if(! ~ $#1 0) - base=$1 -if not if(~ $#barf_root 1 && $#barf_base 1) - base=$barf_root/$"barf_base -if not - base=`{pwd} - -if(test -f $base/_tags) - rm $base/_tags -builtin cd $base/src -ls -p | -sort -n | -xargs du -a | -sed 's/^.* //g' | -grep -e '^[0-9]*\/tags' | -grep -v -e '^.*\/tags$' >>$base/_tags -if(test -s $base/_tags) - cp $base/_tags $base/tags diff --git a/werc/apps/barf/bin/gy b/werc/apps/barf/bin/gy deleted file mode 100755 index 9cbebdf..0000000 --- a/werc/apps/barf/bin/gy +++ /dev/null @@ -1,455 +0,0 @@ -#!/bin/rc -# Parse XML RSS feeds from Yahoo Pipes into BARF blog posts -# for the specified site. If a post with a matching _link_ already -# exists, no new post will be created for that item. Accordingly, -# the gy script may run slowly for sites with a large number of -# existing posts. Tags will be created according to the rules -# defined in the get_tags() function. -# -# Requires 20h's xmlpull and rssread. -rfork en -switch($1){ -case read - feed='http://pipes.yahoo.com/pipes/pipe.run?_id=d1f7146306b019d96d768facf95eebd9&_render=rss' - site=read.stanleylieber.com - tags=() -case * - echo 'Usage: gy [ ... ]' >[1=2] - exit usage -} - -file=/tmp/gy.$1 -werc=/usr/sl/www/werc - -if(test -f /boot/factotum) - cmd=hget -if not - cmd='curl -s' - -fn cram{ - ssam ' -,s/^link:.*$/HJDIVIDER&HJDIVIDER/g -,s/^title:.*$/HJDIVIDER&HJDIVIDER/g -,s/\n//g -,s/HJDIVIDERtitle:/\n&/g - ' -} - -fn scape{ - ssam ' -,s/ //g -,s/\"/\"/g -,s/\"/\"/g -,s/\&/\&/g -,s/\&/\&/g -,s/\'/''/g -,s/\,/,/g -,s/\-/-/g -,s/\./\./g -,s/\//\//g -,s/\:/:/g -,s/\;/;/g -,s/\</</g -,s/\</</g -,s/\=/=/g -,s/\>/>/g -,s/\>/>/g -,s/\_/_/g -,s/\|/\|/g - ' -} - -fn get_posts{ - $"cmd $feed | rssread | cram | scape >$file - echo >>$file -} - -fn get_tags{ - switch($a_link){ - case *1oct1993* - tags=($tags 1oct1993) - case *9front* - tags=($tags software plan9 9front) - case *organicmentalcore* - tags=($tags aleks) - case *amyearles* *etsy.com* *pushedunder* *seaglass* *woolandwater* - tags=($tags amy_earles) - case *animenewsnetwork* - tags=($tags telescreen anime) - case *spikejapan* - tags=($tags japan comics manga telescreen anime) - case *augmented.org* - tags=($tags augmented.org ar) - case *ArchDaily* *archdaily* - tags=($tags archdaily architecture) - case *bldgblog* - tags=($tags bldgblog architecture) - case *kazuyosejima* - tags=($tags japan architecture) - case *Minimalissimo* - tags=($tags minimalissimo design architecture) - case *ArtFagCity* *ArtFCity* *artfagcity* - tags=($tags artfagcity art) - case *rhizome-fp* - tags=($tags rhizome-fp art) - case *rhizome* - tags=($tags rhizome art) - case *starwarsmodern* - tags=($tags starwarsmodern art) - case *tokyoartbeat* - tags=($tags tokyoartbeat japan art) - case *trendbeheer* - tags=($tags trendbeheer art) - case *ValentinaTanni* - tags=($tags valentinatanni art) - case *vvork* - tags=($tags vwork art) - case *auriea* *tale-of-tales* *taleoftales* - tags=($tags auriea) - case *basscomm* *closeoutwarrior* *crummysocks* *gamerrelocationproject* *protipoftheday* *PushButtonB* *pushbuttonb* - tags=($tags video_games basscomm) - case *benjaminmarra* - tags=($tags comics benjamin_marra) - case *boingboing* - tags=($tags boingboing) - case *bushinbooks* *henka* - tags=($tags budo) - case *alexaanddave* *CEREBUS* *Cerebus* *cerebus* *davesim* *gerhard* - tags=($tags comics cerebus gerhard) - case *coilhouse* - tags=($tags coilhouse) - case *arche-arc* - tags=($tags arche comics) - case *bitolithic.com* - tags=($tags bitolithic comics) - case *blaiselarmee* - tags=($tags blaise_larmee comics) - case *bleedingcool* - tags=($tags bleedingcool comics) - case *bobgreenberger* - tags=($tags bob_greengerger comics) - case *coldheatcomics* - tags=($tags coldheat comics) - case *comicbookresources* - tags=($tags cbr comics) - case *comicsbeat* - tags=($tags comicsbeat comics) - case *ComicsComics* *comicscomics* - tags=($tags comicscomics comics) - case *coveredblog* - tags=($tags coveredblog comics) - case *dcfifty-too* - tags=($tags dcfifty-too comics) - case *Destructoid* *destructoid* - tags=($tags destructoid video_games) - case *economist.com* - tags=($tags economist) - case *brucesterling.tumblr.com* - tags=($tags bruce_sterling) - case *thecreatorsproject* - tags=($tags thecreatorsproject) - case *ferrandelgado* - tags=($tags ferran_delgado comics) - case *eddiecampbell* - tags=($tags eddie_campbell comics) - case *factualopinion* - tags=($tags factualopinion comics) - case *floating_world* *floatingworld* - tags=($tags floating_world comics) - case *frankmiller* - tags=($tags frank_miller comics) - case *humancolor* - tags=($tags humancolor comics) - case *jerkcity* - tags=($tags jerkcity comics) - case *maakies.com* - tags=($tags tony_millionaire maakies comics) - case *newconstructionblog* - tags=($tags newconstruction manga comics) - case *ohdannyboy* - tags=($tags ohdannyboy comics) - case *pulphope* - tags=($tags pulphope comics) - case *pwbeat* - tags=($tags pwbeat comics) - case *reliablecomics* - tags=($tags reliablecomics comics) - case *reneefrench* - tags=($tags renee_french comics) - case *rickveitch* - tags=($tags rick_veitch comics) - case *royalboiler* - tags=($tags royalboiler comics) - case *smbc-comics* - tags=($tags smbc comics) - case *studygroup* - tags=($tags studygroup comics) - case *xkcd* - tags=($tags xkcd comics) - case *bowiesongs* *DavidBowie* *davidbowie* - tags=($tags music david_bowie) - case *designboom* - tags=($tags designboom design) - case *dezeen* - tags=($tags dezeen design) - case *infosthetics* - tags=($tags infosthetics design) - case *inhabitat* - tags=($tags inhabitat architecture design) - case *luigicolani* - tags=($tags luigicolani design) - case *mocoloco* - tags=($tags mocoloco design) - case *sydmead* - tags=($tags sydmead design) - case *dzima* - tags=($tags dzima) - case *bbcicecream* - tags=($tags bbcicecream fashion) - case *DamStyle *damstyle* - tags=($tags damstyle fashion) - case *facehunter* - tags=($tags facehunter fashion) - case *StilInBerlin* *Stilinberlin* - tags=($tags germany fashion) - case *jstreets* - tags=($tags jstreets japan fashion) - case *stylefromtokyo* - tags=($tags stylefromtokyo japan fashion) - case *tokyofashion* - tags=($tags tokyofashion japan fashion) - case *flames.gif* *flamesgif* - tags=($tags flames.gif) - case *contemporary-home-computing* - tags=($tags software flames.gif) - case *acceler8or.com* - tags=($tags acceler8or future) - case *afrocyberpunk.wordpress.com* - tags=($tags afrocyberpunk future) - case *hyperallergic.com* - tags=($tags hyperallergic future) - case *kurzweil* - tags=($tags kurzweil future) - case *longnow* - tags=($tags longnow future) - case *OpenTheFuture* - tags=($tags openthefuture future) - case *theverge.com* - tags=($tags theverge future) - case *golang* *blog.nella.org* - tags=($tags golang) - case *googlepluses* - tags=($tags google) - case *news.ycombinator.com* - tags=($tags hackernews hack) - case *seanbonner* - tags=($tags sean_bonner hack) - case *banriman* - tags=($tags banriman japan) - case *japansubculture* - tags=($tags japansubculture japan) - case *jeansnow* - tags=($tags jeansnow japan) - case *Kotaku* *kotaku* - tags=($tags kotaku video_games) - case *eforemario* - tags=($tags before_mario video_games) - case *instagram* *web.stagram.com* - tags=($tags instagram) - case *nakakobooks* - tags=($tags books nakakobooks japan) - case *ozawamaria* - tags=($tags maria_ozawa japan) - case *Shibuya246* - tags=($tags shibuya246 japan) - case *shisaku.blogspot.com* - tags=($tags shisaku japan) - case *jimshooter* - tags=($tags comics jim_shooter) - case *LettersOfNote* *lettersofnote* - tags=($tags letters) - case *nasa*letters.rss* - tags=($tags nasa letters) - case *kore.livejournal.com* - tags=($tags kore livejournal) - case *real-funny-lady.livejournal.com* - tags=($tags rea_funny_lady livejournal) - case *vintage-ads.livejournal.com* - tags=($tags vintage_ads livejournal) - case *hellodamage* - tags=($tags comics hellodamage manga) - case *manganews* - tags=($tags comics manganews manga) - case *naokiurasawa* - tags=($tags comics naokiurasawa manga) - case *samehat* - tags=($tags comics samehat manga) - case *mangatraders* - tags=($tags p2p comics manga) - case *hortonheardawho* - tags=($tags hortonheardawho flickr nasa mars) - case *marstoday.com* - tags=($tags marstoday mars) - case *kielbryant* - tags=($tags kiel_bryant flickr) - case *flickr*paoru* - tags=($tags paoru flickr) - case *me-vs-gutenberg* *mevsgutenberg* - tags=($tags martin_sand) - case *marxy* - tags=($tags marxy) - case *etamodern* - tags=($tags metamodern) - case *aviationintel* - tags=($tags aviationintel mil) - case *aviationweek* - tags=($tags aviationweek mil) - case *codeonemagazine* - tags=($tags codeonemagazine mil) - case *geimint* - tags=($tags geimint mil) - case *momus* *mrstsk* - tags=($tags books music momus) - case *bjork* - tags=($tags bjork music) - case *c-h-r-i-s-c-a-r-t-e-r* - tags=($tags chris_carter music) - case *toog* - tags=($tags toog music) - case *nasa.gov* - tags=($tags space nasa) - case *mongoliad* - tags=($tags neal_stephenson) - case *gaiman* - tags=($tags comics neil_gaiman) - case *111567547782666546187* - tags=($tags daniel_rehn gplus) - case *114408853762245370512* - tags=($tags francesco_cardi gplus) - case *106673611724400311137* - tags=($tags mark_jondahl gplus) - case *113974084460235989118* - tags=($tags jose_nazario gplus) - case *102089697005520721324* - tags=($tags zaki_hasan gplus) - case *nin.com* *feeds.nin.com* - tags=($tags music nin.com nin) - case *ninofficialnews.tumblr.com* - tags=($tags music tumblr nin) - case *nix-os* *syssoftware* - tags=($tags plan9 nix) - case *bsdly* *OPENBSD* *OpenBSD* *openbsd* *scientist-home* *undeadly* - tags=($tags software openbsd) - case *godownmatthew* *mysticmilk* *petetoms* - tags=($tags pete_toms) - case *Pitchfork* *pitchfork* - tags=($tags music pitchfork) - case *9gridchan* *cat-v* *maht0x0r* *Plan9* *plan9* - tags=($tags software plan9) - case *FlauntTalks* *prince.org* *purpleinterviews* *wendyandlisa* - tags=($tags music prince) - case *101960720994009339267* - tags=($tags gplus rob_pike) - case *commandcenter* *rob_pike* - tags=($tags blogger rob_pike) - case *prometheus* - tags=($tags telescreen prometheus) - case *reddit.com* - tags=($tags reddit) - case *swtch.com* - tags=($tags golang plan9 rsc) - case *bunniestudios* - tags=($tags bunniestudios security) - case *jwz* - tags=($tags jwz security) - case *Krebs* *krebs* - tags=($tags krebs security) - case *scarybeastsecurity* - tags=($tags scarybeast security) - case *schneier* - tags=($tags bruce_schneier security) - case *chinchillakwak* *skwak* - tags=($tags skwak) - case *slashdot* - tags=($tags slashdot) - case *spaceref.com* - tags=($tags space spaceref) - case *StanleyLieber* *stanleylieber* - tags=($tags stanleylieber) - case *fastcompany* - tags=($tags fastcompany tech) - case *gizchina.com* - tags=($tags gizchina tech) - case *danharmon* - tags=($tags danharmon telescreen) - case *mindlessones* - tags=($tags mindlessones telescreen) - case *tcj.com* - tags=($tags comics tcj) - case *TEDBlog* *TEDblog* *ted.com* - tags=($tags ted) - case *ticom* - tags=($tags ticom security) - case *orrentfreak* - tags=($tags p2p torrentfreak) - case *ultra*culture* - tags=($tags ultraculture) - case *kleinletters* - tags=($tags comics todd_klein) - case *collectiondx.com* - tags=($tags collectiondx toys) - case *kennercollector.com* - tags=($tags kennercollector toys) - case *plaidstallions* - tags=($tags plaidstallions toys) - case *shojikawamori* - tags=($tags shojikawamori japan toys) - case *tumblr* - tags=($tags tumblr) - case *ruinedcartridge* - tags=($tags ruinedcartridge basscomm video_games) - } - echo -n $tags -} - -fn parse_posts{ - ifs=' -' { - posts=`{cat $file} - for(i in `{seq 1 $#posts | sort -nr}){ - post=$posts($i) - if(! ~ $post ''){ - a_title=`{echo $post | sed 's/^.*HJDIVIDERtitle: //g; s/HJDIVIDER.*$//g'} - a_date=`{date} - a_link=`{echo $post | sed 's/^.*HJDIVIDERlink: //g; s/HJDIVIDER.*$//g'} - a_body=`{echo $post | sed 's/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g'} - a_id=`{echo `{ls -p $werc/sites/$site/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $werc/sites/$site/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - if(! ~ $"a_link '' && ! grep -s `{echo $"a_link | md5sum} $werc/sites/$site/links){ - mkdir -p $werc/sites/$site/src/$a_id/tags # big fat race - echo $"a_title >$werc/sites/$site/src/$a_id/title - echo $"a_date >$werc/sites/$site/src/$a_id/date - echo $a_link(1) >$werc/sites/$site/src/$a_id/link - echo $a_link(1) | md5sum >>$werc/sites/$site/links - echo $"a_body '</a></li></ul>' >$werc/sites/$site/src/$a_id/body - ifs=' ' { - for(j in `{get_tags}){ - >$werc/sites/$site/src/$a_id/tags/$j - echo $a_id/tags/$j >>$werc/sites/$site/tags - } - } - } - if(test -f /boot/factotum && ~ $site *.stanleylieber.com && test -d $werc/sites/$site/src/$a_id) - chmod +t $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/* $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/tags/* - } - } - } -} - -if(test -f /boot/factotum && test -f /rc/bin/hget) - webfs -get_posts -parse_posts diff --git a/werc/apps/barf/bin/gz b/werc/apps/barf/bin/gz deleted file mode 100755 index 450d0a6..0000000 --- a/werc/apps/barf/bin/gz +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/rc -# Parse XML RSS feeds into BARF blog posts for the specified site. -# If a post with a matching _link_ already exists, no new post will -# be created for that item. Tags will be created according to the rules -# defined in the get_tags() function. -# -# The file argument should point to a file containing one line per feed, -# with fields separated by the | character, in the following format: -# -# http://feeds.feedburner.com/ImNotReallyStanleyLieber|stanleylieber -# -# where the first field is the feed URL and each addition field is a tag. -# -# Requires 20h's xmlpull and rssread. -rfork en -switch($1){ -case /* - feeds=$1 - site=read.stanleylieber.com - tags=() -case * - echo 'Usage: gz file' >[1=2] - exit usage -} - -file=/tmp/gz.$pid -werc=/usr/sl/www/werc - -if(test -f /boot/factotum) - cmd=hget -if not - cmd='curl -s' - -fn cram{ - ssam ' -,s/^link:.*$/HJDIVIDER&HJDIVIDER/g -,s/^title:.*$/HJDIVIDER&HJDIVIDER/g -,s/\n//g -,s/HJDIVIDERtitle:/\n&/g - ' -} - -fn scape{ - ssam ' -,s/ //g -,s/\"/\"/g -,s/\"/\"/g -,s/\&/\&/g -,s/\&/\&/g -,s/\'/''/g -,s/\,/,/g -,s/\-/-/g -,s/\./\./g -,s/\//\//g -,s/\:/:/g -,s/\;/;/g -,s/\</</g -,s/\</</g -,s/\=/=/g -,s/\>/>/g -,s/\>/>/g -,s/\_/_/g -,s/\|/\|/g - ' -} - -fn get_posts{ - $"cmd $"feed | rssread | cram | scape >$file - echo >>$file -} - -fn parse_posts{ - ifs=' -' { - posts=`{cat $file} - for(i in `{seq 1 $#posts | sort -nr}){ - post=$posts($i) - if(! ~ $post ''){ - a_title=`{echo $post | sed 's/^.*HJDIVIDERtitle: //g; s/HJDIVIDER.*$//g'} - a_date=`{date} - a_link=`{echo $post | sed 's/^.*HJDIVIDERlink: //g; s/HJDIVIDER.*$//g'} - a_body=`{echo $post | sed 's/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g'} - a_id=`{echo `{ls -p $werc/sites/$site/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $werc/sites/$site/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - if(! ~ $"a_link '' && ! grep -s `{echo $"a_link | md5sum} $werc/sites/$site/links){ - mkdir -p $werc/sites/$site/src/$a_id/tags # big fat race - echo $"a_title >$werc/sites/$site/src/$a_id/title - echo $"a_date >$werc/sites/$site/src/$a_id/date - echo $a_link(1) >$werc/sites/$site/src/$a_id/link - echo $a_link(1) | md5sum >>$werc/sites/$site/links - if(~ $a_link(1) *staticflickr.com*) - echo '<img src="'$"a_link'">' >$werc/sites/$site/src/$a_id/body - echo $"a_body '</a></li></ul>' >>$werc/sites/$site/src/$a_id/body - ifs=' ' { - for(j in $tags){ - >$werc/sites/$site/src/$a_id/tags/$j - echo $a_id/tags/$j >>$werc/sites/$site/tags - } - } - } - if(test -f /boot/factotum && ~ $site *.stanleylieber.com && test -d $werc/sites/$site/src/$a_id) - chmod +t $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/* $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/tags/* - } - } - } -} - -if(test -f /boot/factotum && test -f /rc/bin/hget) - webfs -for(i in `{grep -v -e '^#' $feeds}){ - feed=`{echo $"i | sed 's/\|.*$//g'} - tags=`{echo $"i | sed 's/\|/ /g'} - tags=$tags(2-) - get_posts - parse_posts -} diff --git a/werc/apps/barf/bin/gz.read b/werc/apps/barf/bin/gz.read deleted file mode 100755 index 450d0a6..0000000 --- a/werc/apps/barf/bin/gz.read +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/rc -# Parse XML RSS feeds into BARF blog posts for the specified site. -# If a post with a matching _link_ already exists, no new post will -# be created for that item. Tags will be created according to the rules -# defined in the get_tags() function. -# -# The file argument should point to a file containing one line per feed, -# with fields separated by the | character, in the following format: -# -# http://feeds.feedburner.com/ImNotReallyStanleyLieber|stanleylieber -# -# where the first field is the feed URL and each addition field is a tag. -# -# Requires 20h's xmlpull and rssread. -rfork en -switch($1){ -case /* - feeds=$1 - site=read.stanleylieber.com - tags=() -case * - echo 'Usage: gz file' >[1=2] - exit usage -} - -file=/tmp/gz.$pid -werc=/usr/sl/www/werc - -if(test -f /boot/factotum) - cmd=hget -if not - cmd='curl -s' - -fn cram{ - ssam ' -,s/^link:.*$/HJDIVIDER&HJDIVIDER/g -,s/^title:.*$/HJDIVIDER&HJDIVIDER/g -,s/\n//g -,s/HJDIVIDERtitle:/\n&/g - ' -} - -fn scape{ - ssam ' -,s/ //g -,s/\"/\"/g -,s/\"/\"/g -,s/\&/\&/g -,s/\&/\&/g -,s/\'/''/g -,s/\,/,/g -,s/\-/-/g -,s/\./\./g -,s/\//\//g -,s/\:/:/g -,s/\;/;/g -,s/\</</g -,s/\</</g -,s/\=/=/g -,s/\>/>/g -,s/\>/>/g -,s/\_/_/g -,s/\|/\|/g - ' -} - -fn get_posts{ - $"cmd $"feed | rssread | cram | scape >$file - echo >>$file -} - -fn parse_posts{ - ifs=' -' { - posts=`{cat $file} - for(i in `{seq 1 $#posts | sort -nr}){ - post=$posts($i) - if(! ~ $post ''){ - a_title=`{echo $post | sed 's/^.*HJDIVIDERtitle: //g; s/HJDIVIDER.*$//g'} - a_date=`{date} - a_link=`{echo $post | sed 's/^.*HJDIVIDERlink: //g; s/HJDIVIDER.*$//g'} - a_body=`{echo $post | sed 's/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g'} - a_id=`{echo `{ls -p $werc/sites/$site/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $werc/sites/$site/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - if(! ~ $"a_link '' && ! grep -s `{echo $"a_link | md5sum} $werc/sites/$site/links){ - mkdir -p $werc/sites/$site/src/$a_id/tags # big fat race - echo $"a_title >$werc/sites/$site/src/$a_id/title - echo $"a_date >$werc/sites/$site/src/$a_id/date - echo $a_link(1) >$werc/sites/$site/src/$a_id/link - echo $a_link(1) | md5sum >>$werc/sites/$site/links - if(~ $a_link(1) *staticflickr.com*) - echo '<img src="'$"a_link'">' >$werc/sites/$site/src/$a_id/body - echo $"a_body '</a></li></ul>' >>$werc/sites/$site/src/$a_id/body - ifs=' ' { - for(j in $tags){ - >$werc/sites/$site/src/$a_id/tags/$j - echo $a_id/tags/$j >>$werc/sites/$site/tags - } - } - } - if(test -f /boot/factotum && ~ $site *.stanleylieber.com && test -d $werc/sites/$site/src/$a_id) - chmod +t $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/* $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/tags/* - } - } - } -} - -if(test -f /boot/factotum && test -f /rc/bin/hget) - webfs -for(i in `{grep -v -e '^#' $feeds}){ - feed=`{echo $"i | sed 's/\|.*$//g'} - tags=`{echo $"i | sed 's/\|/ /g'} - tags=$tags(2-) - get_posts - parse_posts -} diff --git a/werc/apps/barf/bin/gz.tumblr b/werc/apps/barf/bin/gz.tumblr deleted file mode 100755 index b9f4061..0000000 --- a/werc/apps/barf/bin/gz.tumblr +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/rc -# Parse XML RSS feeds into BARF blog posts for the specified site. -# If a post with a matching _link_ already exists, no new post will -# be created for that item. Tags will be created according to the rules -# defined in the get_tags() function. -# -# The file argument should point to a file containing one line per feed, -# with fields separated by the | character, in the following format: -# -# http://feeds.feedburner.com/ImNotReallyStanleyLieber|stanleylieber -# -# where the first field is the feed URL and each addition field is a tag. -# -# Requires 20h's xmlpull and rssread. -rfork en -switch($1){ -case /* - feeds=$1 - site=tumblr.stanleylieber.com - tags=() -case * - echo 'Usage: gz file' >[1=2] - exit usage -} - -file=/tmp/gz.$pid -werc=/usr/sl/www/werc - -if(test -f /boot/factotum) - cmd=hget -if not - cmd='curl -s' - -fn cram{ - ssam ' -,s/^link:.*$/HJDIVIDER&HJDIVIDER/g -,s/^title:.*$/HJDIVIDER&HJDIVIDER/g -,s/\n//g -,s/HJDIVIDERtitle:/\n&/g - ' -} - -fn scape{ - ssam ' -,s/ //g -,s/\"/\"/g -,s/\"/\"/g -,s/\&/\&/g -,s/\&/\&/g -,s/\'/''/g -,s/\,/,/g -,s/\-/-/g -,s/\./\./g -,s/\//\//g -,s/\:/:/g -,s/\;/;/g -,s/\</</g -,s/\</</g -,s/\=/=/g -,s/\>/>/g -,s/\>/>/g -,s/\_/_/g -,s/\|/\|/g - ' -} - -fn get_posts{ - $"cmd $"feed | rssread | cram | scape >$file - echo >>$file -} - -fn parse_posts{ - ifs=' -' { - posts=`{cat $file} - for(i in `{seq 1 $#posts | sort -nr}){ - post=$posts($i) - if(! ~ $post ''){ - a_title=`{echo $post | sed 's/^.*HJDIVIDERtitle: //g; s/HJDIVIDER.*$//g'} - a_date=`{date} - a_link=`{echo $post | sed 's/^.*HJDIVIDERlink: //g; s/HJDIVIDER.*$//g'} - a_body=`{echo $post | sed 's/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g; s/^.*HJDIVIDER//g'} - a_id=`{echo `{ls -p $werc/sites/$site/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $werc/sites/$site/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - if(! ~ $"a_link '' && ! grep -s `{echo $"a_link | md5sum} $werc/sites/$site/links){ - mkdir -p $werc/sites/$site/src/$a_id/tags # big fat race - echo $"a_title >$werc/sites/$site/src/$a_id/title - echo $"a_date >$werc/sites/$site/src/$a_id/date - echo $a_link(1) >$werc/sites/$site/src/$a_id/link - echo $a_link(1) | md5sum >>$werc/sites/$site/links - if(~ $a_link(1) *staticflickr.com*) - echo '<img src="'$"a_link'">' >$werc/sites/$site/src/$a_id/body - echo $"a_body '</a></li></ul>' >>$werc/sites/$site/src/$a_id/body - ifs=' ' { - for(j in $tags){ - >$werc/sites/$site/src/$a_id/tags/$j - echo $a_id/tags/$j >>$werc/sites/$site/tags - } - } - } - if(test -f /boot/factotum && ~ $site *.stanleylieber.com && test -d $werc/sites/$site/src/$a_id) - chmod +t $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/* $werc/sites/$site/src/$a_id $werc/sites/$site/src/$a_id/tags/* - } - } - } -} - -if(test -f /boot/factotum && test -f /rc/bin/hget) - webfs -for(i in `{grep -v -e '^#' $feeds}){ - feed=`{echo $"i | sed 's/\|.*$//g'} - tags=`{echo $"i | sed 's/\|/ /g'} - tags=$tags(2-) - get_posts - parse_posts -} diff --git a/werc/apps/barf/bin/rsrc b/werc/apps/barf/bin/rsrc deleted file mode 100755 index 50d2f0f..0000000 --- a/werc/apps/barf/bin/rsrc +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/rc -# Remove static files. -rm -r [0-9]*.html [0-9]*-[0-9]*.html tag diff --git a/werc/apps/barf/bin/srct b/werc/apps/barf/bin/srct deleted file mode 100755 index cc1dffd..0000000 --- a/werc/apps/barf/bin/srct +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/rc -# do not store these files in the worm -fn f{ du -a $* | sed 's/^.* //g' } -for(i in `{f $1}){ chmod +t $i } diff --git a/werc/apps/barf/lib/barf.tpl b/werc/apps/barf/lib/barf.tpl deleted file mode 100755 index 63ee45d..0000000 --- a/werc/apps/barf/lib/barf.tpl +++ /dev/null @@ -1,14 +0,0 @@ -% if(~ $show_header 1 && ! ~ $barf_type login rss) -% display_header -% if(~ $a_func edit_form){ -% if(check_user && ! ~ $#logged_user 0) -% edit_form -% if not -% display_^$barf_type -% } -% if not -% display_^$barf_type -% if(~ $show_sidebar 1 && ~ $#a_func 0 && ! ~ $barf_type login rss) -% display_sidebar -% if(~ $show_footer 1 && ~ $#a_func 0 && ! ~ $barf_type login rss) -% display_footer diff --git a/werc/apps/barf/lib/blog b/werc/apps/barf/lib/blog deleted file mode 100755 index a880f44..0000000 --- a/werc/apps/barf/lib/blog +++ /dev/null @@ -1,43 +0,0 @@ -fn display_blog{ - echo '<div id="center"> - <div id="posts">' - get_post_list - for(i in `{seq 1 $#posts}){ - a_id=$posts($i) - a_dir=$barf_root/$"barf_dir/src/$a_id - echo '<div id="post"> - <div id="post_title">' - print_title - echo '</div> - <div id="post_meta">' - link=`{cat $a_dir/link} - echo '<span id="post_link"> - <a href="'$"link'" target="_b">link</a> - </span> - | <span id="post_tags">' - print_tags - echo '</span> - | <span id="post_date">' - cat $a_dir/date - echo '</span>' - print_id - if(check_user && ! ~ $#logged_user 0){ - echo ' | <span id="post_edit">' - print_edit - echo '</span>' - } - echo '</div> - <div id="post_body">' - cat $a_dir/body - if(~ $show_disqus 1 && ! ~ $#id 0) - cat $barf_root/_werc/barf/disqus - echo '</div> - </div> - <br>' - } - display_prevnext - echo '<br><br><br> - </div> - </div> - </div>' -} diff --git a/werc/apps/barf/lib/core b/werc/apps/barf/lib/core deleted file mode 100755 index 335dab5..0000000 --- a/werc/apps/barf/lib/core +++ /dev/null @@ -1,414 +0,0 @@ -fn delete_post{ - a_dir=$barf_root/$"barf_dir/src/$a_id - if(test -d $a_dir){ - rm -rf $a_dir && - {echo ',x/^'$a_id'\/.*\n/d'; echo w; echo q} | sam -d $barf_root/$"barf_dir/tags >[2]/dev/null - } - post_redirect $base_url^$barf_base_uri -} - -fn display_footer{ - if(test -f $barf_root/$"barf_dir/_werc/barf/footer) - cat $barf_root/$"barf_dir/_werc/barf/footer - if not if(test -f $barf_root/_werc/barf/footer) - cat $barf_root/_werc/barf/footer - if not - cat apps/barf/barf/footer -} - -fn display_header{ - if(test -f $barf_root/$"barf_dir/_werc/barf/header) - cat $barf_root/$"barf_dir/_werc/barf/header - if not if(test -f $barf_root/_werc/barf/header) - cat $barf_root/_werc/barf/header - if not - cat apps/barf/barf/header -} - -fn display_login{ - echo '<div id="login"> - <form method="post" action="/"> - <input type="hidden" name="a_func" value="login"> - username: <input type="text" name="user_name"><br> - password: <input type="password" name="user_password"><br> - <input name="s" type="submit" value="login"> - </form> - </div>' -} - -fn display_prevnext{ - if(test $stop -gt `{echo 1+^$posts_per_page | bc}){ - nprev=`{echo $start^-1-^$posts_per_page | bc} - prev='<span> - <a href="'$base_url^$barf_base_uri'?tags='$"tags'&start='$"nprev'">prev</a> | - </span>' - } - if(test $#posts -gt $posts_per_page){ - nnext=`{echo $stop^+1 | bc} - next='<span> - <a href="'$base_url^$barf_base_uri'?tags='$"tags'&start='$"nnext'">next</a> - </span>' - } - echo '<div id="page_list"> - '$"prev' - '$"next' - </div>' -} - -fn display_sidebar{ - if(test -f $barf_root/$"barf_dir/_werc/barf/sidebar) - cat $barf_root/$"barf_dir/_werc/barf/sidebar - if not if(test -f $barf_root/_werc/barf/sidebar) - cat $barf_root/_werc/barf/sidebar - if not - cat apps/barf/barf/sidebar -} - -fn dsrc{ - low=`{ls -p $barf_root/$"barf_dir/src | sort -n | sed 1q} - high=$a_id - if(~ $#low 1 && ~ $#high 1){ - cd $barf_root/$"barf_dir/src && rm -rf `{seq $low $high} && - { - for(i in `{seq $low $high}) - echo ',x/^'$i'\/.*\n/d' - echo w - echo w - echo q - } | sam -d $barf_root/$"barf_dir/tags >[2]/dev/null - } - post_redirect $base_url^$barf_base_uri -} - -fn edit_form{ - if(~ $#a_id 0) - name=add - if not{ - name=update - a_dir=$barf_root/$"barf_dir/src/$a_id - for(x in $barf_items){ - if(~ $x img) - a_img=`{ls -p $a_dir/img | sed 1q} - if(~ $x tags) - a_tags=`{ls -p $a_dir/tags} - if not - $x=`{cat $a_dir/$x} - } - } - echo '<div id="list"> - <form action="/" method="post" name="edit" id="button"> - <input type="hidden" name="fake" value="fake"> - <input type="text" name="url" style="display: none;"> - <input type="hidden" name="a_func" value="edit_post">' - if(~ $name update) - echo '<input type="hidden" name="a_id" value="'$"a_id'">' - for(x in $barf_items){ - if(~ $x body){ - echo '<div id="edit_body">' \ - 'body:<br>' \ - '<textarea name="a_body">' - if(~ $name update) - cat $a_dir/body - echo '</textarea></div>' - } - if not if(~ $x img){ - echo '<div id="edit_img">' \ - 'image:<br>' \ - '<input name="a_img" type="text" value="'$"a_img'" id="edit">   ' \ - 'download: <input name="a_download" type="checkbox" value="1">' \ - '</div>' - } - if not if(~ $x tags){ - echo '<div id="edit_tags">' \ - 'tags:   (space separated list of tags)<br>' \ - '<input name="a_tags" type="text" value="'$"a_tags'" id="edit">' \ - '</div>' - } - if not{ - echo '<div id="edit_'$"x'">' \ - $"x':<br>' \ - '<input name="a_'$"x'" type="text" value="'$"$x'" id="edit">' \ - '</div>' - } - } - echo '<div id="edit_submit">' \ - '<input type="submit" name="'$name'" value="'$name'">' \ - '</div> - </form> - </div>' -} - -fn edit_post{ - if(~ $#a_id 0){ - a_id=`{echo `{ls -p $barf_root/$"barf_dir/src | sort -n | tail -1}^+1 | bc} - if(~ $#a_id 0) - a_id=1 - while(test -d $barf_root/$"barf_dir/src/$a_id) - a_id=`{echo $a_id^+1 | bc} - } - a_dir=$barf_root/$"barf_dir^src/$a_id - mkdir -p $a_dir/img $a_dir/tags - rm -f $a_dir/tags/* - for(x in $barf_items){ - if(~ $x date){ - if(! ~ $#a_date 0) - echo $"a_date >$a_dir/date - if not - date >$a_dir/date - } - if not if(~ $x tags){ - if(! ~ $#a_tags 0){ - a_tags=`{echo $"a_tags | sed 's/[^A-Za-z0-9_\- ]//g'} - ifs=' '{a_tags=`{echo -n $a_tags}} - { - t=1 - while(test $t -le $#a_tags){ - >$a_dir/tags/$a_tags($t) - t=`{echo $t^+1 | bc} - } - } - for(i in $a_tags) - echo $a_id'/tags/'$i >>$barf_root/$"barf_dir/tags - } - } - if not if(! ~ $x img tags){ - item='a_'$"x - if(! ~ $$item ''){ - >$a_dir/$x - echo $$item >$a_dir/$x - } - } - } - if(~ $a_download 1){ - switch($barf_type){ - case image - rm -f $a_dir/img/* - img=$a_dir/img/^`{date -n}^.^`{echo $"a_img | - sed 's/^.*\.(gif|GIF)$/gif/g; - s/^.*\.(jpg|jpeg|JPG|JPEG)$/jpg/g; - s/^.*\.(png|PNG)$/png/g; - s/^.*\.(tif|TIF|tiff|TIFF)$/tif/g' - } - thumb=$a_dir/img/small.^`{basename $img | sed 's/\..*$//g'}^.png - if(test -f /boot/factotum){ - @{ - rfork n - if(test -f /rc/bin/hget) - webfs - hget $"a_img >$img - #magick/convert $img -resize 500x600 $thumb - switch($img){ - case *.bmp - cmd=bmp - case *.gif - cmd=gif - case *.ico - cmd=ico - case *.jpg - cmd=jpg - case *.png - cmd=png - case *.tif - cmd=tif - case *.tga - cmd=tga - } - $cmd -9et <$img | resample -x 500 | topng >$thumb - } - } - if not{ - curl -s -o $"a_img >$img - convert $img -resize 500x600 $thumb - } - case url - if(test -f /boot/factotum){ - @{ - rfork n - if(test -f /rc/bin/hget) - webfs - hget $"a_link | htmlfmt | fmt >$a_dir/body - } - } - if not - curl -s $"a_link | htmlfmt | fmt >$a_dir/body - } - } - if(! ~ $gp 1) - post_redirect $base_url^$barf_base_uri -} - -fn get_post_list{ - if(~ $id [0-9]*) - posts=$id - if not{ - posts=`{ - if(~ $show_ascending 1) - sort=(sort -n) - if not - sort=(sort -nr) - if(~ $tags all) - ls -p $barf_root/$"barf_dir/src | - grep -e '^[0-9]*$' | - eval $sort | - sed -n $start^,^$stop^p # awk 'NR=='$start',NR=='$stop' {print;}' - if not - grep -e '^.*\/'$tags'$' $barf_root/$"barf_dir/tags | - awk -F '/' '{print $1;}' | - eval $sort | - uniq | - sed -n $start^,^$stop^p - } - if(! ~ $posts [0-9]*) - posts=() - } -} - -fn get_start{ - if(~ $#start 0) - start=1 -} - -fn get_stop{ - if(~ $#stop 0) - stop=`{echo $start^+^$posts_per_page | bc} -} - -fn get_tags{ - if(~ $#tags 0) - tags=all -} - -fn load_get_args{ - if(~ $REQUEST_METHOD GET && ~ $#get_args 0 && ~ $REQUEST_URI *'='*){ - ifs='&' { - a=`{echo $"REQUEST_URI | sed 's/(^\/|#.*$)//g'} - for(pair in $a){ - ifs='=' { pair=`{echo -n $pair} } - n='get_arg_'^`{echo $pair(1) | urldecode | tr -cd 'a-zA-Z0-9_'} - get_args=( $get_args $n ) - ifs=() { $n=`{echo -n $pair(2) | urldecode | tr -d ' '} } - } - } - pair=() - } -} - -fn parse_get_args{ - if(! ~ $#get_arg_a_func 0) - a_func=$get_arg_a_func - if(! ~ $#get_arg_a_id 0) - a_id=$get_arg_a_id - if(! ~ $#get_arg_id 0) - id=$get_arg_id - if(! ~ $#get_arg_start 0) - start=$get_arg_start - if(! ~ $#get_arg_stop 0) - stop=$get_arg_stop - if(! ~ $#get_arg_reply 0) - reply=$get_arg_reply - if(! ~ $#get_arg_tags 0) - tags=$get_arg_tags -} - -fn parse_post_args{ - for(x in $barf_items){ - a='a_'$"x - p='post_arg_'$"a - $a=$$p - } - if(! ~ $#post_arg_a_download 0) - a_download=$post_arg_a_download - if(! ~ $#post_arg_a_func 0) - a_func=$post_arg_a_func - if(! ~ $#post_arg_fake 0) - fake=$post_arg_fake - if(! ~ $#post_arg_a_id 0) - a_id=$post_arg_a_id - if(! ~ $#post_arg_url 0) - url=$post_arg_url -} - -fn print_edit{ - edit='<a href="'$base_url^$barf_base_uri'?a_func=edit_form&a_id='$"a_id'">edit</a>' - delete='<a href="'$base_url^$barf_base_uri'?a_func=delete_post&a_id='$"a_id'" onclick="return confirm(''are you sure you want to delete?'');">delete</a>' - dsrc='<a href="'$base_url^$barf_base_uri'?a_func=dsrc&a_id='$"a_id'" onclick="return confirm(''are you sure you want to dsrc?'');">dsrc</a>' - echo $"edit' | '$"delete' | '$"dsrc -} - -fn print_id{ - echo '<span id="post_id"><a href="/?id='$"a_id'">No.'$"a_id'</a></span>' -} - -fn print_img{ - a_img=`{ls -p $a_dir/img/[0-9]*} - a_thumb=`{ls -p $a_dir/img/small*} - if(! ~ $#a_img 0) - if(~ $#a_thumb 0) - a_thumb=$a_img - echo '<a href="'$base_url^$barf_base_uri'src/'$a_id'/img/'$a_img'" target="_b"><img src="'$base_url^$barf_base_uri'src/'$a_id'/img/'$a_thumb'" border="0"></a>' -} - -fn print_tags{ - a_tags=`{ls -p $a_dir/tags} - a_tags=`{for(t in $a_tags) echo '<a href="'$base_url^$barf_base_uri'?tags='$t'">'$t'</a>, '} - a_tags=`{echo $a_tags | awk '{print substr($0, 1, length($0) -1)}'} - echo '<span id="post_tags">'$"a_tags'</span>' -} - -fn print_title{ - a_title=`{cat $a_dir/title} - if(! ~ $#a_title 0){ - if(~ $barf_type log url) - echo '<a href="'`{cat $a_dir/link}'">'$"a_title'</a>' - if not - echo '<a href="'$base_url^$barf_base_uri'?id='$"a_id'">'$"a_title'</a>' - } -} - -fn redirect_bots{ - if(! ~ $fake fake || ! ~ $url '') - post_redirect http://google.com -} - -fn urldecode { -awk ' -BEGIN { - hextab ["0"] = 0; hextab ["8"] = 8; - hextab ["1"] = 1; hextab ["9"] = 9; - hextab ["2"] = 2; hextab ["A"] = hextab ["a"] = 10 - hextab ["3"] = 3; hextab ["B"] = hextab ["b"] = 11; - hextab ["4"] = 4; hextab ["C"] = hextab ["c"] = 12; - hextab ["5"] = 5; hextab ["D"] = hextab ["d"] = 13; - hextab ["6"] = 6; hextab ["E"] = hextab ["e"] = 14; - hextab ["7"] = 7; hextab ["F"] = hextab ["f"] = 15; -} -{ - decoded = "" - i = 1 - len = length ($0) - while ( i <= len ) { - c = substr ($0, i, 1) - if ( c == "%" ) { - if ( i+2 <= len ) { - c1 = substr ($0, i+1, 1) - c2 = substr ($0, i+2, 1) - if ( hextab [c1] == "" || hextab [c2] == "" ) { - print "WARNING: invalid hex encoding: %" c1 c2 | "cat >&2" - } else { - code = 0 + hextab [c1] * 16 + hextab [c2] + 0 - c = sprintf ("%c", code) - i = i + 2 - } - } else { - print "WARNING: invalid % encoding: " substr ($0, i, len - i) - } - } else if ( c == "+" ) { - c = " " - } - decoded = decoded c - ++i - } - printf "%s", decoded -} -' -} diff --git a/werc/apps/barf/lib/default_master.tpl b/werc/apps/barf/lib/default_master.tpl deleted file mode 100755 index a9c81ee..0000000 --- a/werc/apps/barf/lib/default_master.tpl +++ /dev/null @@ -1 +0,0 @@ -% run_handler $handler_body_main diff --git a/werc/apps/barf/lib/image b/werc/apps/barf/lib/image deleted file mode 100755 index 2af6324..0000000 --- a/werc/apps/barf/lib/image +++ /dev/null @@ -1,68 +0,0 @@ -fn add_post{ - redirect_bots - a_download=1 - edit_post -} - -fn display_image{ - echo '<div id="center">' - if(~ $allow_anon 1 || {check_user && ! ~ $#logged_user 0}){ - echo '<div id="upload"> - <form method="post" action="/"> - <input type="hidden" name="fake" value="fake"> - <input type="text" name="url" style="display: none;"> - <input type="hidden" name="a_func" value="add_post"> - <div id="upload_heading">/'$tags'/</div> - <table id="upload_table"> - <tr><td id="upload_label">Image</td><td><input type="text" name="a_img" id="upload_input"></td></tr> - <tr><td id="upload_label">Link</td><td><input type="text" name="a_link" id="upload_input"></td></tr> - <tr><td id="upload_label">Tags</td><td><input type="text" name="a_tags" id="upload_tags"> - <input type="submit" name="submit" value="add" id="upload_submit"></td></tr> - </table> - </form> - <table align="center"> - <tr> - <td> - <p> - <li id="upload_meta">Supported file types are: GIF, JPG, PNG</li> - <li id="upload_meta">Images greater than 500x600 pixels will be thumbnailed.</li> - </td> - </tr> - </table> - </div>' - } - echo '<div id="center_body">' - get_post_list - for(i in `{seq 1 $#posts}){ - a_id=$posts($i) - a_dir=$barf_root/$"barf_dir/src/$a_id - echo '<div id="post"> - <div id="post_meta"> - <span id="post_link">' - link=`{cat $a_dir/link} - echo '<a href="'$"link'">link</a> - </span> | - <span id="post_tags">' - print_tags - echo '</span> | - <span id="post_date">' - cat $a_dir/date - echo '</span>' - if(check_user && ! ~ $#logged_user 0){ - echo '| <span id="post_edit">' - print_edit - echo '</span>' - } - echo '</div> - <div id="post_img">' - print_img - echo '</div> - </div> - <br><br>' - } - display_prevnext - echo '<br><br><br><br> - </div> - </div> - </div>' -} diff --git a/werc/apps/barf/lib/log b/werc/apps/barf/lib/log deleted file mode 100755 index 923cd6e..0000000 --- a/werc/apps/barf/lib/log +++ /dev/null @@ -1,55 +0,0 @@ -fn display_log{ - if(~ $#logged_user 0) - a='<a href="'$base_url^$barf_base_uri'login">login</a>' - if not - a='<a href="'$base_url^$barf_base_uri'?a_func=edit_form">add</a>' - echo '<div> - <span id="add">'$"a'</span> - <span id="search"> - <form method="get" action="/"> - <input type="text" name="tags" size="28"> - <input type="submit" value="search"> - </form> - </span> - </div> - </div> - <div id="list"> - <table id="post_table"> - <tbody> - <tr id="blank"> - <th style="display: none;"> </th> - <th style="display: none;"> </th> - <th style="display: none;"> </th>' - if(check_user && ! ~ $#logged_user 0) - echo '<th style="display: none;"> </th>' - echo '</tr>' - get_post_list - for(i in `{seq 1 $#posts}){ - a_id=$posts($i) - a_dir=$barf_root/$"barf_dir/src/$a_id - echo '<tr>' - for(j in $barf_items){ - echo '<td id="post_'$"j'">' - if(~ $j img) - print_img - if not if(~ $j tags) - print_tags - if not if(~ $j title) - print_title - if not - cat $a_dir/$j - echo '</td>' - } - if(check_user && ! ~ $#logged_user 0){ - echo '<td id="post_edit">' - print_edit - echo '</td>' - } - echo '</tr>' - } - echo '</tbody> - </table>' - display_prevnext - echo '<br><br><br><br> - </div>' -} diff --git a/werc/apps/barf/lib/paste b/werc/apps/barf/lib/paste deleted file mode 100755 index 5ef55e3..0000000 --- a/werc/apps/barf/lib/paste +++ /dev/null @@ -1,50 +0,0 @@ -fn add_post{ - redirect_bots - a_date=`{date} - edit_post -} - -fn display_paste{ - echo '<div id="center">' - if(~ $allow_anon 1 || {check_user && ! ~ $#logged_user 0}){ - echo '<div id="paste"> - <p> - <form method="post" action="/"> - <input type="hidden" name="fake" value="fake"> - <input type="text" name="url" style="display: none;"> - <input type="hidden" name="a_func" value="add_post"> - <textarea name="a_body" id="paste_box"></textarea><br> - <input type="submit" name="submit" value="submit" id="paste_submit"> - </form> - </div>' - } - echo '<p> - <div id="posts">' - get_post_list - for(i in `{seq 1 $#posts}){ - a_id=$posts($i) - a_dir=$barf_root/$"barf_dir/src/$a_id - echo '<div id="post"> - <div id="post_meta">' - date=`{cat $a_dir/date} - echo '<span id="post_date"> - <a href="/src/'$"a_id'/body" target="_b">'$"date'</a> - </span>' - if(check_user && ! ~ $#logged_user 0){ - echo ' | <span id="post_edit">' - print_edit - echo '</span>' - } - echo '</div> - <div id="post_body">' - txt_handler $barf_root/$"barf_dir/src/$a_id/body - echo '</div> - </div> - <br>' - } - display_prevnext - echo '<br><br><br><br> - </div> - </div> - </div>' -} diff --git a/werc/apps/barf/lib/rss b/werc/apps/barf/lib/rss deleted file mode 100755 index 7a3cd18..0000000 --- a/werc/apps/barf/lib/rss +++ /dev/null @@ -1,56 +0,0 @@ -fn display_rss{ - echo '<?xml version="1.0" encoding="UTF-8"?>' - echo '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">' - echo '<channel>' - echo '<atom:link href="'$base_url^$req_path'" rel="self" type="application/rss+xml" />' - echo '<title><![CDATA['$"siteTitle']]>' - echo ''$base_url^$barf_base_uri'' - echo '' - echo '' - echo '' - ndate -m `{date `{mtime $barf_root/$"barf_dir/src | awk '{print $1}'}} # rfc2822 last time channel content changed. - echo -n '' - echo 'en-us' - date=`{ndate -m} # rfc2822 publication date for content in the channel. - get_post_list - for(i in `{seq 1 $#posts}){ - a_id=$posts($i) - a_dir=$barf_root/$"barf_dir/src/$a_id - echo '' - echo ''$base_url^$barf_base_uri'?id='$"a_id'' - echo ''$"date'' - title=`{cat $a_dir/title} - if(~ $title '') - ntitle=($siteTitle $"a_id) - if not - ntitle=$title - echo ''$"ntitle'' - echo ''$base_url^$barf_base_uri'?id='$"a_id'' - echo 'source: link

' - } - a_tags=`{ls -p $a_dir/tags} - if(! ~ $#a_tags 0){ - echo '

tags: ' - print_tags - echo '

' - echo '

' - } - # begin ugly if statements - if(~ $obarf_type paste) - echo '

'
-		if(! ~ $obarf_type image)
-		cat $a_dir/body
-		if(~ $obarf_type paste)
-			echo '
' - if(~ $obarf_type image) - print_img - echo '

]]>
' - } - echo '' -} diff --git a/werc/apps/barf/lib/url b/werc/apps/barf/lib/url deleted file mode 100755 index 3079ff2..0000000 --- a/werc/apps/barf/lib/url +++ /dev/null @@ -1,52 +0,0 @@ -fn display_url{ - if(~ $#logged_user 0) - a='login' - if not - a='add' - echo '
- '$"a' - -
- - -
-
-
-
-
- - - - - - ' - if(check_user && ! ~ $#logged_user 0) - echo '' - echo '' - get_post_list - for(i in `{seq 1 $#posts}){ - a_id=$posts($i) - a_dir=$barf_root/$"barf_dir/src/$a_id - echo ' - - - ' - if(check_user && ! ~ $#logged_user 0){ - echo '' - } - echo '' - } - echo ' -
    
' - print_title - echo '' - print_tags - echo '' - cat $a_dir/date - echo '' - print_edit - echo '
' - display_prevnext - echo '



-
' -} diff --git a/werc/apps/barf/mkfile b/werc/apps/barf/mkfile deleted file mode 100755 index 9ecc731..0000000 --- a/werc/apps/barf/mkfile +++ /dev/null @@ -1,10 +0,0 @@ -WERC=/usr/sl/www/werc -PLAN9=$WERC/sites/plan9.stanleylieber.com - -web:V: - src=`{basename `{pwd}} - rm -rf $PLAN9/werc/apps/$src - cd $WERC/apps - tar zcvf $PLAN9/werc/apps/$src.tgz $src - cd $PLAN9/werc/apps - tar zxvf $src.tgz diff --git a/werc/apps/barf/pub/1995.css b/werc/apps/barf/pub/1995.css deleted file mode 100755 index fdea8de..0000000 --- a/werc/apps/barf/pub/1995.css +++ /dev/null @@ -1,344 +0,0 @@ -/* 1995 */ - -body { - color: black; - background-color: silver; - font-family: Helvetica, Verdana, Arial, 'Liberation Sans', FreeSans, sans-serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} - - -/* # Header # */ -.superHeader { - color: black; - background-color: silver; - height: 1.6em; -} - -.superHeader img { vertical-align: bottom; } - -.superHeader a { - color: blue; - background-color: transparent; - font-size: 91%; - margin: 0; - padding: 0 0.5ex 0 0.25ex; - text-decoration: underline; } -} - -a { text-decoration: underline; } -a:hover { text-decoration: underline; } - -.superHeader div { - position: absolute; - top: 0.40ex; -} - -.superHeader .left { left: 0.4em; } -.superHeader .right { right: 0.4em; } - -.midHeader { - color: black; - background-color: silver; - border: solid 0 black; - border-width: 1px 0; -} - -.headerTitle { - color: black; - font-size: 233%; - font-weight: normal; - margin: 0 0 0 4mm; - padding: 0.25ex 0; -} -#headerSubTitle { - font-size: 50%; - font-style: italic; - margin-left: 1em; -} - -.headerTitle a { color: black; } -.headerTitle a:hover { text-decoration: none; } - -.subHeader { - display: none; - color: white; - background-color: rgb(0,51,153); - margin: 0; - padding: 1ex 1ex 1ex 1.5mm; -} - -.subHeader a { - color: white; - background-color: transparent; - font-weight: bold; - margin: 0; - padding: 0 0.75ex 0 0.5ex; -} - -.superHeader .highlight, .subHeader .highlight { - color: rgb(253,160,91); - background-color: transparent; -} - - -/* # Side # */ -#side-bar { - width: 16em; - float: left; - clear: left; - border-right: 1px solid black; -} - -#side-bar div { - border-bottom: 1px solid black; -} - -.sideBarTitle { - font-weight: bold; - margin: 0 0 0.5em 2mm; - padding: 1em 0 0 0; -} - -#side-bar ul { - list-style-type: none; - list-style-position: outside; - margin: 0; - padding: 0 0 0.3em 0; -} - -li ul { - padding-left: 0.6em !important; -} - -#side-bar li { - margin: 0; - padding: 0.1ex 0; /* Circumvents a rendering bug (?) in MSIE 6.0 XXX should move to iehacks.css, this causes an ugly gap */ -} - -#side-bar a { - color: black; - background-color: transparent; - margin: 0; - padding: 0.25em 1ex 0.25em 2mm; - display: block; - text-transform: capitalize; - font-weight: bold!important; - font-size: 102%; - border-left: blue solid 0.2em; -} - -.thisPage, .thisPage a { - color: black!important; - background-color: white; - padding-left: 5mm; -} - -#side-bar a:hover { - color: white; - background-color: blue; - border-left: black solid 0.2em; - text-decoration: none; -} - -.sideBarText { - line-height: 1.5em; - margin: 0 0 1em 0; - padding: 0 1.5ex 0 2.5mm; - display: block; -} - -#side-bar .sideBarText a { - margin: 0; - padding: 0; - display: inline; -} - -#side-bar .sideBarText a:hover { - color: black; - background-color: transparent; - text-decoration: none; -} - - -/* # Main Copy # */ -#main-copy { - max-width: 70em; - color: black; - background-color: transparent; - text-align: justify; - line-height: 1.5em; - margin: 0em 0 0 16em; - padding: 0.5mm 5mm 5mm 5mm; - border-left: 1px solid black; -} - -#bodyText { - margin: 0 0 0 15.5em; - padding: 2mm 5mm 2mm 5mm; -} - -#main-copy p { - margin: 1em 1ex 1em 1ex !important; /* Need !important so troff-generated pages don't look totally squezed */ - padding: 0; -} - -#main-copy a { - color: blue; - background-color: transparent; - text-decoration: underline; -} - -#main-copy a:hover { - color: blue; - background-color: transparent; - text-decoration: underline; -} - -#main-copy h1, #main-copy h2 { - color: black; - background-color: transparent; - font-size: 145.5%; - font-weight: bold; - margin: 2em 0 0 0; - padding: 0.5ex 0 0.5ex 0.6ex; - border-bottom: 2px solid black; -} - -#main-copy h2 { - font-size: 115.5%; - border-bottom: 1px solid black; -} - -#main-copy .topOfPage { - color: black; - background-color: transparent; - font-size: 91%; - font-weight: bold; - text-decoration: none; - margin: 3ex 1ex 0 0; - padding: 0; - float: right; -} - -dl { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -dt { - font-weight: bold; - margin: 0 0 0 0; - padding: 0; -} - -dd { - margin: 0 0 2em 2em; - padding: 0; -} - - -/* # Footer # */ -#footer { - color: black; - background-color: silver; - padding: 1em; - clear: both; - border-color: black; - border-width: 1px 0; -} - -#footer .left { - text-align: left; - line-height: 1.55em; - float: left; - clear: left; -} - -#footer .right { - text-align: right; - line-height: 1.45em; -} - -#footer a { - color: blue; - background-color: transparent; -} - - -/* GENERAL */ - -table { - background-color: transparent; - padding: 0px; - border: 0px; - border-collapse: collapse; -} - -td { - padding: 10px; - border-width: 1px; - border-style: solid; - border-collapse: collapse; - border-color: #000000; - background: silver; -} - -tr { - border-width: 1px; - border-style: solid; - border-collapse: collapse; - border-color: #000000; -} -hr { - border-width: 0px 0px 0.1em 0px; - border-color: black; -} - -acronym, .titleTip { - border-bottom: 1px solid black; - cursor: help; - margin: 0; - padding: 0 0 0.4px 0; -} - -pre { - margin-left: 2em; - font-size: 1.2em; -} - -blockquote { - border-left: 1px solid blue; - font-style: italic; -} - -.smallCaps { - font-size: 110%; - font-variant: small-caps; -} - -.doNotDisplay { display: none; } - - -.notify_errors, -.notify_notes, -.notify_success { padding: .8em; margin-bottom: 1em; border: 2px solid black; } - -.notify_errors { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } -.notify_notes { background: #FFF6BF; color: #514721; border-color: #FFD324; } -.notify_success { background: #E6EFC2; color: #264409; border-color: #C6D880; } -.notify_errors a { color: #8a1f11; } -.notify_notes a { color: #514721; } -.notify_success a { color: #264409; } - - -/* # Page/Handler specific # */ -h1.dir-list-head, ul.dir-list { - text-transform: capitalize; - font-weight: bold; -} -ul.sitemap-list a { - text-transform: capitalize; -} diff --git a/werc/apps/barf/pub/1oct1993.css b/werc/apps/barf/pub/1oct1993.css deleted file mode 100755 index 3413a52..0000000 --- a/werc/apps/barf/pub/1oct1993.css +++ /dev/null @@ -1,63 +0,0 @@ -/* 1oct1993 */ -body { - color: #FFFFFF; - background-color: #000000; - font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} -a { text-decoration: none; color: #00ADEF; } -a:hover { color: #00ADEF; text-decoration: none; } -li:hover { color: #00ADEF; text-decoration: none; } -li a { color: #00ADEF } -li a:hover { color: #00ADEF; text-decoration: none; } -li ul { padding-left: 0.6em !important; } -h1 { font-size: 10pt; font-weight: normal; } -h2 { font-size: 9pt; font-weight: normal; } -input , textarea, select, option { background-color: #00ADEF; border: none; } -table { border: none; } -tr { background-color: transparent; } -th { - background-color: transparent; - border: none; - text-align: center; -} -td { - background-color: transparent; - border: none; -} - -hr { - border-width: 0px 0px 0.1em 0px; - border-color: transparent; -} -pre, code, blockquote { - font-family: Courier, 'Lucida Console','Courier New', Serif; - margin-left: 2em; - font-size: 1.2em; -} -blockquote { - border-left: none; - font-style: none; - background-color: #00ADEF; -} -#header { flex-basis: 100%; } -#header tr { background-color: transparent; } -#center { - width: 500px; - margin-left: auto; - margin-right: auto; -} -#center h1 { font-size 9pt; } -#footer { - font-size: 8pt; - background-color: #000000; - color: #00ADEF; - margin-left: auto; - margin-right: auto; -} -#footer a { color: #00ADEF; text-decoration: none; } -#footer a:hover { color: #00ADEF; text-decoration: none; } -#footer table { font-size: 8pt; } -#footer tr { background-color: transparent; } diff --git a/werc/apps/barf/pub/flamesgif.css b/werc/apps/barf/pub/flamesgif.css deleted file mode 100755 index a335717..0000000 --- a/werc/apps/barf/pub/flamesgif.css +++ /dev/null @@ -1,77 +0,0 @@ -/* flamesgif.com */ -body { - color: black; - background-color: silver; - font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} -a { text-decoration: none; color: blue; } -a:hover { color: purple;} -blockquote { - border-left: none; - font-style: none; - background-color: silver; -} -li:hover { color: purple } -li a { color: blue } -li a:hover { color: purple; } -h1 { font-size: 10pt; } -h2, h3, h1, h4 { color : blue; } -hr { - border-width: 0px 0px 0.1em 0px; - border-color: transparent; -} -input , textarea, select, option { background-color: blue; border: none; } -pre, code, blockquote { - font-family: Courier, 'Lucida Console','Courier New', Serif; - margin-left: 2em; - font-size: 1.2em; -} -table { border: none; } -th { - background-color: transparent; - border: none; - text-align: center; -} -td { - background-color: transparent; - border: none; -} -ul { list-style: none; padding-left: 0px; margin: 0px } -#center { - width: 600px; - margin-left: auto; - margin-right: auto; -} -#center h1 { font-size 9pt; } -#footer { - font-size: 8pt; - background-color: silver; - color: blue; - margin-left: auto; - margin-right: auto; -} -#footer a { color: blue; text-decoration: none; } -#footer a:hover { color: purple; text-decoration: none; } -#footer table { font-size: 8pt; } -#right { - float: right; - position: absolute; - top: 210px; - right: 1px; - width: 25%; - height: 100%; - list-style: none; -} -#sidebar { - position: relative; - z-index: 100; - width: 95%; - top: 10px; - right: 10px; - left: 10px; - margin: 2px; - background: silver; -} diff --git a/werc/apps/barf/pub/img.css b/werc/apps/barf/pub/img.css deleted file mode 100755 index 2e4debe..0000000 --- a/werc/apps/barf/pub/img.css +++ /dev/null @@ -1,53 +0,0 @@ -/* img.stanleylieber.com */ -body { display: flex; flex-wrap: wrap; font-family: sans; } -header { flex-basis: 99%; flex-shrink: 0; padding-left: 1em; padding-bottom: 1em; } -article { flex-basis: 99%; padding: 0; } -footer { flex-basis: 99%; flex-shrink: 0; } -header nav { display: flex; justify-content: space-between; } -footer { display: flex; justify-content: space-between; } - -body { margin:0; padding: 0; font-size: 10pt; font-family: Helvetica, Verdana, Arial, 'Liberation Sans', FreeSans, sans-serif; background-color: #000000; color: #FFFFFF; } -a { text-decoration: none; color: #FFFFFF; background-color: #000000; font-weight: bold; } -a:hover { text-decoration: none; background-color: #FFFFFF; color: #000000; } - -/* header and top bar */ -header h3 { padding-bottom: 2px; } -header a img { vertical-align: bottom; padding-top: 1em; } - -/* main copy */ -article { padding-left: 1em; padding-right: 1em; } -article nav { padding-bottom: 2px; } -article div { padding-top: 2px; padding-bottom: 2px; } -article h1, article h2, article h3, article h4, article h5, article h6, article h7, article h8 { - font-weight: bold; margin: 0; padding-bottom: 2px; -} -article a img { vertical-align: bottom; } -article img { max-width: 100%!important; } -article iframe { max-width: 100%!important; } -article video { max-width: 100%!important; } -article fieldset { color: #FFFFFF; border-color: #FFFFFF; } -article legend { color: #FFFFFF; border-color: #FFFFFF; } - -/* footer */ -footer > nav { margin-left: auto; padding: 1em; } - -/* fixed-width fonts */ -pre, code { white-space: pre-wrap!important; } -pre, code, blockquote { - max-width: 100%!important; - font-family: Courier, 'Lucida Console','Courier New', Serif; -} - -/* input */ -input, textarea, select, option { - font-family: Sans-Serif; - font-size: 100%; - padding: 2px; - border-top: solid 1px #FFFFFF; - border-bottom: solid 1px #FFFFFF; - border-left: solid 1px #FFFFFF; - border-right: solid 1px #FFFFFF; - background-color: #000000; - color: #FFFFFF; - margin: 2px; -} diff --git a/werc/apps/barf/pub/inri.css b/werc/apps/barf/pub/inri.css deleted file mode 100755 index 3c6a26d..0000000 --- a/werc/apps/barf/pub/inri.css +++ /dev/null @@ -1,417 +0,0 @@ -/* inri.net */ -body { - font-family :'Lucida Sans Unicode','Lucida Sans', 'Trebuchet MS', 'Lucida Grande', 'Bitstream Sans Vera', Verdana, Arial, Tahoma, Helvetica, Sans-Serif; - font-style : normal; - padding: 2px 2em; - line-height: 1.5em; - font-size: 70%; - background: #FFF; - color: #111; -} - - -/* # Header # */ -.superHeader { - color: white; - background-color: gray; - height: 1.6em; -} - -.superHeader img { vertical-align: bottom; } - -.superHeader a { - color: white; - background-color: transparent; - font-size: 91%; - margin: 0; - padding: 0 0.5ex 0 0.25ex; -} - -a { text-decoration: none; } -a:hover { text-decoration: underline; } - -.superHeader div { - position: absolute; - top: 0.40ex; -} - -.superHeader .left { left: 0.4em; } -.superHeader .right { right: 0.4em; } - -.midHeader { - color: gray; - background-color: gray; - background-color: #ff6d06; - border: solid 0 black; - border-width: 2px 0; -} - -.headerTitle { - color: black; - font-size: 233%; - font-weight: normal; - margin: 0 0 0 4mm; - padding: 0.25ex 0; -} -#headerSubTitle { - font-size: 50%; - font-style: italic; - margin-left: 1em; -} - -.headerTitle a { color: black; } -.headerTitle a:hover { text-decoration: none; } - -.subHeader { - display: none; - color: white; - background-color: gray; - margin: 0; - padding: 1ex 1ex 1ex 1.5mm; -} - -.subHeader a { - color: white; - background-color: transparent; - font-weight: bold; - margin: 0; - padding: 0 0.75ex 0 0.5ex; -} - -.superHeader .highlight, .subHeader .highlight { - color: gray; - background-color: transparent; -} - - -/* # Side # */ -#side-bar { - width: 16em; - float: left; - clear: left; - border-right: 1px solid white; -} - -#side-bar div { - border-bottom: 1px solid white; -} - -.sideBarTitle { - font-weight: bold; - margin: 0 0 0.5em 2mm; - padding: 1em 0 0 0; -} - -#side-bar ul { - list-style-type: none; - list-style-position: outside; - margin: 0; - padding: 0 0 0.3em 0; -} - -li ul { - padding-left: 0.6em !important; -} - -#side-bar li { - margin: 0; - padding: 0.1ex 0; /* Circumvents a rendering bug (?) in MSIE 6.0 XXX should move to iehacks.css, this causes an ugly gap */ -} - -#side-bar a { - color: gray; - background-color: transparent; - margin: 0; - padding: 0.25em 1ex 0.25em 2mm; - display: block; - text-transform: capitalize; - font-weight: bold!important; - font-size: 102%; - border-left: white solid 0.2em; -} - -.thisPage, .thisPage a { - color: black!important; - background-color: white; - padding-left: 5mm; -} - -#side-bar a:hover { - color: black; - background-color: gray; - border-left: gray solid 0.2em; - text-decoration: none; -} - -.sideBarText { - line-height: 1.5em; - margin: 0 0 1em 0; - padding: 0 1.5ex 0 2.5mm; - display: block; -} - -#side-bar .sideBarText a { - margin: 0; - padding: 0; - display: inline; -} - -#side-bar .sideBarText a:hover { - color: gray; - background-color: transparent; - text-decoration: none; -} - - -/* # Main Copy # */ -#main-copy { - max-width: 70em; - color: black; - background-color: transparent; - text-align: justify; - line-height: 1.5em; - margin: 0em 0 0 16em; - padding: 0.5mm 5mm 5mm 5mm; - border-left: 1px solid white; -} - -#bodyText { - margin: 0 0 0 15.5em; - padding: 2mm 5mm 2mm 5mm; -} - -#main-copy p { - margin: 1em 1ex 1em 1ex !important; /* Need !important so troff-generated pages don't look totally squezed */ - padding: 0; -} - -#main-copy a { - color: gray; - background-color: transparent; -} - -#main-copy a:hover { - color: gray; -} - -#main-copy h1, #main-copy h2 { - color: gray; - background-color: transparent; - font-size: 145.5%; - font-weight: bold; - margin: 2em 0 0 0; - padding: 0.5ex 0 0.5ex 0.6ex; - border-bottom: 2px solid gray; -} - -#main-copy h2 { - font-size: 115.5%; - border-bottom: 1px solid gray; -} - -#main-copy .topOfPage { - color: gray; - background-color: transparent; - font-size: 91%; - font-weight: bold; - text-decoration: none; - margin: 3ex 1ex 0 0; - padding: 0; - float: right; -} - -#post { - position: relative; - left: 23%; - width: 76%; - padding-top: 25px; - padding-bottom: 25px; -} - -#post tr { background-color: transparent; } - -#center { - position: absolute; - top: 210px; - left: 1%; - width: 65%; - height: 100%; -} -#center h1 { font-size 8pt; font-family :'Lucida Sans Unicode','Lucida Sans', 'Trebuchet MS', 'Lucida Grande', 'Bitstream Sans Vera', Verdana, Arial, Tahoma, Helvetica, Sans-Serif; } - -a { text-decoration: none; color: #000000; } -a:hover { color: #111;} -li:hover { color: #111 } -li a { color: #000000 } -li a:hover { color: #111; } -ul { list-style: none; padding-left: 0px; margin: 0px } - -h1 { font-size: 8pt; font-weight: normal; } -h2 { font-size : 140%; } -h3 { font-size: 120%; } -h4 { font-size: 100%; } -h2, h3, h1, h4 { - font-family: Georgia,'Trebuchet MS', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Verdana, Arial, Tahoma, Helvetica, Sans-Serif; - color : #000000; - margin: 0px 0px; - padding: 2px 0px; - clear: both; -} - -input , textarea, select, option { background-color: #eee; border: none; } - -dl { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -dt { - font-weight: bold; - margin: 0 0 0 0; - padding: 0; -} - -dd { - margin: 0 0 2em 2em; - padding: 0; -} - -#right { - float: right; - position: absolute; - top: 210px; - right: 1px; - width: 34%; - height: 100%; - list-style: none; -} - -/* sidebar */ -#sidebar { - position: relative; - z-index: 100; - width: 95%; - top: 10px; - right: 10px; - left: 10px; - margin: 2px; - background: #FFFFFF; -} -#sidebar h2 { - margin: 5px 0px 0px; - padding: 4px 0px; - font-size:100%; -} -#sidebar li { font-size: 8.5pt; } -#sidebar ul { margin: 2px; } - -/*searchform*/ -#searchform label { font-weight:bold; } -#searchform input { width: 20%; } -#searchform input.submit { width: 16%; } - -#top { - float: top; - position: absolute; - top: 0px; - left: 0px; - right: 0px; - height: 10%; - width: 100% - overflow: auto; -} - - -/* # Footer # */ -#footer { - font-size: 8pt; - background-color: white; - color: black; -} -#footer a { color: gray; text-decoration: none; } -#footer a:hover { color: #111; text-decoration: none; } -#footer table { font-size: 8pt; } - -#footer .left { - text-align: left; - line-height: 1.55em; - float: left; - clear: left; -} - -#footer .right { - text-align: right; - line-height: 1.45em; -} - -/* GENERAL */ - -table { - background-color: transparent; - border: none; -} -tr { - background-color: transparent; - border: none; -} -th { - background-color: transparent; - border: none; - text-align: center; -} -td { - background-color: transparent; - border: none; -} - -hr { - border-width: 0px 0px 0.1em 0px; - border-color: transparent; -} - -acronym, .titleTip { - border-bottom: 1px solid #ddd; - cursor: help; - margin: 0; - padding: 0 0 0.4px 0; -} - -pre { - margin-left: 2em; - font-size: 1.2em; -} - -blockquote { - border-left: none; - font-style: none; - background-color: silver; -} - -.smallCaps { - font-size: 110%; - font-variant: small-caps; -} - -.doNotDisplay { display: none; } - - -.notify_errors, -.notify_notes, -.notify_success { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; } - -.notify_errors { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } -.notify_notes { background: #FFF6BF; color: #514721; border-color: #FFD324; } -.notify_success { background: #E6EFC2; color: #264409; border-color: #C6D880; } -.notify_errors a { color: #8a1f11; } -.notify_notes a { color: #514721; } -.notify_success a { color: #264409; } - - -/* # Page/Handler specific # */ -h1.dir-list-head, ul.dir-list { - text-transform: capitalize; - font-weight: bold; -} -ul.sitemap-list a { - text-transform: capitalize; -} diff --git a/werc/apps/barf/pub/massivefictions.css b/werc/apps/barf/pub/massivefictions.css deleted file mode 100755 index 0fe572f..0000000 --- a/werc/apps/barf/pub/massivefictions.css +++ /dev/null @@ -1,62 +0,0 @@ -/* mf */ -body { - color: #a6a6a6; - background-color: #626060; - font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} -a { text-decoration: none; color: #a6a6a6; } -a:hover { background-color: #a6a6a6; color: #626060; text-decoration: none; } -a img { display: block; border: 0 none; } -li:hover { background-color: #a6a6a6; color: #626060; text-decoration: none; } -li a { color: #a6a6a6 } -li a:hover { background-color: #a6a6a6; color: #626060; text-decoration: none; } -li ul { padding-left: 0.6em !important; } -h1 { font-size: 10pt; font-weight: normal; } -h2 { font-size: 9pt; font-weight: normal; } -input , textarea, select, option { background-color: #a6a6a6; border: none; } -table { border: none; background-color: transparent; } -th { - background-color: transparent; - border: none; - text-align: center; -} -tr:nth-child(odd) { background-color: transparent; } -td { - background-color: transparent; - border: none; -} -hr { - border-width: 0px 0px 0.1em 0px; - border-color: transparent; -} -pre, code, blockquote { - font-family: Courier, 'Lucida Console','Courier New', Serif; - margin-left: 2em; - font-size: 1.2em; -} -blockquote { - border-left: none; - font-style: none; - background-color: #a6a6a6; -} -#header { - margin-left: auto; - margin-right: auto; -} -#center { - width: 500px; - margin-left: auto; - margin-right: auto; -} -#center h1 { font-size 9pt; } -#footer { - font-size: 8pt; - background-color: #626060; - color: #a6a6a6; -} -#footer a { color: #a6a6a6; text-decoration: none; } -#footer a:hover { color: #626060; text-decoration: none; } -#footer table { font-size: 8pt; } diff --git a/werc/apps/barf/pub/okturing.css b/werc/apps/barf/pub/okturing.css deleted file mode 100755 index 76b5d69..0000000 --- a/werc/apps/barf/pub/okturing.css +++ /dev/null @@ -1,58 +0,0 @@ -/* okturing.com */ -body { display: flex; flex-wrap: wrap; font-family: sans; } -header { flex-basis: 100%; flex-shrink: 0; } -article { flex-basis: 100%; padding: 1em; } -footer { flex-basis: 100%; flex-shrink: 0; } -header nav { display: flex; justify-content: space-between; } -nav a, header a { text-decoration: none ; color: inherit; } -header h1 span { margin-left: 1em; font-size: 50%; font-style: italic; } -body > nav { flex-basis: content; padding-right: 1vw; min-width: 16em; } -nav ul { display: flex; flex-direction: column; list-style-type: none; list-style-position: outside; padding-left: 0; } -nav li ul { padding-left: 0.6em } -footer { display: flex; justify-content: space-between; } - -/* cut here to leave vanity behind */ - -body { margin:0; padding: 0; font-size: 84%; font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; background-color: #FFFFFF; color: #000000; } -a:hover { text-decoration: none; background-color: #FFFFFF; color: #000000; } - -/* header and top bar */ -header nav { background-color: #FFFFFF; color: #000000; padding: 0em; border-bottom: 2px solid #FFFFFF; font-size: 91%; } -header h1 { background-color: #FFFFFF; color: #000000; margin: 0; border-bottom: 2px solid #FFFFFF; font-weight: normal; padding: 0.25ex; font-size: 233%; } - -/* sidebar */ -body > nav { border-right: 1px solid #FFFFFF; padding: 0; } -body > nav > div { border-bottom: 1px solid #FFFFFF; } -body > nav > div a { background-color: #00ff00; color: #000000; display: block; text-transform: capitalize; font-weight: bold; padding: 0.25em 1ex 0.25em 2mm; font-size: 102%} -body > nav > div a:hover { color: #FFFFFF; background-color: #000000 border-left: #FFFFFF solid 0.2em; text-decoration: none; } -body > nav > div p { font-weight: bold; margin: 0 0 0.5em 2mm; padding: 1em 0 0 0; } - -/* main copy */ -article { padding: 1em; } -article h1, article h2 { color: #000000; font-weight: bold; margin: 2em 0 0 0; border-bottom: 2px solid #FFFFFF; } -article h3, article h4, article h5 { #000000; font-weight: bold; margin: 2em 0 0 0; } -article h6, article h7, article h8 { color: #000000; font-weight: bold; margin: 2em 0 0 0; } -article a { background-color: #FFFFFF; color: #000000; text-decoration: none; } -article a:hover { text-decoration: none; background-color: #000000; color: #FFFFFF; } -article a img { display: block; border: 0 none; } - -/* footer */ -footer { color: #000000; background-color: #FFFFFF; } -footer a { background-color: #FFFFFF; color: #000000; } -footer div { padding: 1em; } - -input, textarea, select, option { - font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; - font-size:100%; - padding: 2px; - background : #eee; - color : #111; - border: 1px solid #fff; - margin: 2px; -} - -pre, code, blockquote { - white-space: pre-wrap; - padding-left: 2em; - font-family: Courier, 'Lucida Console','Courier New', Serif; -} diff --git a/werc/apps/barf/pub/osx.css b/werc/apps/barf/pub/osx.css deleted file mode 100755 index 914c4c7..0000000 --- a/werc/apps/barf/pub/osx.css +++ /dev/null @@ -1,345 +0,0 @@ -/* osx.stanleylieber.com */ - -body { -font-family :Helvetica, Verdana, Arial, Sans-Serif; -font-style : normal; -padding: 2px 2em; -line-height: 1.5em; -font-size: 70%; -background: #FFF; -color: #111; -} - -/* font styles */ -a { text-decoration: none; color: #000000; } -a:hover { background: #7600FC; color: #fff; } -li:hover { color: #000000; } -li a { color: #000000; } -li a:hover { background: #7600FC; color: #fff; } -ul { list-style: none; padding-left: 0px; margin: 0px } -p { -font-size : 100%; -font-style : normal; -padding: 0px; -} -h2 { -font-size : 140%; -} -h3 { -font-size: 120%; -} -h4 { -font-size: 100%; -} -h2, h3, h1, h4 { -font-family: Helvetica, Verdana, Arial, Sans-Serif; -color : #000000; -margin: 0px 0px; -padding: 2px 0px; -clear: both; -} -/* end font styles */ - -hr { -border: 1px solid #fff; -} - -blockquote, code { -background : #eee; -padding: 6px; -border-left: 3px solid #eee; -} - -code, pre { -font-family: Courier, 'Lucida Console','Courier New', Sans-Serif; -} - -#admin_banner { -position: relative; -text-align: center; -} - -#admin_body { -position: relative; -top: 100px; -left: 10px; -width: 90%; -} - -#admin_frames { -height: 100%; -float: top; - -/* for ie */ -margin: 0; -overflow: auto; -/* end for ie */ - -} - -#admin_index_body { -position: relative; -top: 100px; -margin-left: auto; -margin-right: auto; -} - - -#admin_menu { -position: relative; -left: 10px; -width: 90%; -text-align: left; -} - -#admin_table { -margin-left: auto; -margin-right: auto; -width: 90%; -border-collapse: collapse; -border-color: #111; -font-family: sans-serif; -font-size: 9pt; -} - -#admin_table td { -vertical-align: middle; -text-align: center; -} - -#admin_table th { -background: #111; -color: gray; -} - -#bottom { -float: bottom; -position: absolute; -bottom: 10px; -} - -#button input.submit { -background: #111; -color: gray; -border-top: solid 1px #111; -border-bottom: solid 1px #111; -border-left: solid 1px #111; -border-right: solid 1px #111; -width: 15%; -} - -#center { -position: absolute; -top: 155px; -left: 1%; -width: 65%; -height: 100%; -} - -#divider { -background: #111; -height: 1px; -} - -/*forms*/ -input , textarea, select, option { -font-family : Helvetica, Verdana, Arial, Sans-Serif; -font-size:100%; -padding: 2px; -background : #eee; -color : #111; -border: 1px solid #fff; -margin: 2px; -} -fieldset, legend { -background:transparent; -color : #111; -border: none; -padding: 5px; -} -label, legend { -font-weight:normal; -} - -#header { -float: top; -position: absolute; -top: 0px; -left: 17%; -height: 100%; -font-size: 24pt; -background: #7600FC; -height: 50px; -} - -#header a { -background: #7600FC; -color: #fff; -} - -#left { -float: left; -position: absolute; -top: 0px; -left: 10%; -width: 15%; -height: 100%; -list-style: none; -overflow: auto; -} - -#meta { -font-size: 8pt; -} - -#page_frames { -width: 100%; -float: left; - -/* for ie */ -margin: 0; -overflow: auto; -/* end for ie */ - -} - -#page_category { -position: relative; -text-align: center; -} - -#page_list { -text-align: right; -font-size: 9pt; -} - -#page_login { -position: relative; -text-align: right; -font-size: 8pt; -} - -#page_upload { -background: #111; color: #444; font-weight: bold -} - -#post { -position: relative; -left: 13%; -width: 86%; -padding-bottom: 100px; -} - -#post_body { -position: relative; -top: 10px; -bottom: 10px; -left: 10px;; -} - -#post_date { -font-size: 8pt; -} - -#post_meta { -margin-left: 2px; -color: #111; -font-size: 8pt; -} - -#post_tags { -font-size: 8pt; -} - -#post_thumb { -margin-top: 5px; -margin-bottom: 5px; -} - -#post_title { -border: 1px; -line-height: 1.5em; -} - -#post_title a { -background: red; -color: #fff; -} - -#post_title a:hover { -background: #7600FC; -color: #fff; -} - -#post_title h2 { -font-weight: 100; -} - -#registration_body { -left: 10px; -text-align: left; -} - -#right { -float: right; -position: absolute; -top: 150px; -right: 1%; -width: 33%; -height: 100%; -list-style: none; -} - -#rss { -margin-left: auto; -margin-right: auto; -text-align: center; -font-size: 8pt; -} - -/* sidebar */ -#sidebar { -position: relative; -z-index: 100; -width: 90%; -top: 10px; -right: 10px; -left: 10px; -margin: 2px; -background: #FFFFFF; -} -#sidebar h2 { -margin: 5px 0px 0px; -padding: 4px 0px; -font-size:100%; -} -#sidebar ul { -margin: 2px; -} - -/*searchform*/ -#searchform label { -font-weight:bold; -} -#searchform input#s { -width: 40%; -} -#searchform input.submit { -width: 16%; -} - -#top { -float: top; -position: absolute; -top: 0px; -left: 0px; -right: 0px; -height: 10%; -width: 100% -overflow: auto; -} - -.warning { -color: #111; -font-weight: bold; -} diff --git a/werc/apps/barf/pub/other.css b/werc/apps/barf/pub/other.css deleted file mode 100755 index 002fd5a..0000000 --- a/werc/apps/barf/pub/other.css +++ /dev/null @@ -1,67 +0,0 @@ -/* other */ -body { - color: blue; - background-color: white; - font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} -a { text-decoration: none; color: blue; } -a:hover { color: purple; background-color: white; text-decoration: none; } -li:hover { color: purple; background-color: white; text-decoration: none; } -li a { color: blue; } -li a:hover { color: purple; background-color: white; text-decoration: none; } -h1 { font-size: 10pt; font-weight: normal; } -h2 { font-size: 9pt; font-weight: normal; } -input , textarea, select, option { background-color: #eee; border: none; } -li ul { - padding-left: 0.6em !important; -} -table { border: none; background-color: transparent; } -th { - background-color: transparent; - border: none; - text-align: center; -} -tr:nth-child(odd) { background-color: transparent; } -td { - background-color: transparent; - border: none; -} -hr { - border-width: 0px 0px 0.1em 0px; - border-color: transparent; -} -pre, code, blockquote { - Courier, 'Lucida Console','Courier New', Serif; - margin-left: 2em; - font-size: 1.2em; -} -blockquote { - border-left: none; - font-style: none; - background-color: #eee; -} -#center { - width: 500px; - margin-left: auto; - margin-right: auto; - line-height: 0; -} -/* #center p { - line-height: 1; - -webkit-margin-before: 0px; - -webkit-margin-after: 0px; -} */ -#footer { - font-size: 8pt; - background-color: white; - color: blue; - margin-left: auto; - margin-right: auto; -} -#footer a { color: blue; text-decoration: none; } -#footer a:hover { color: purple; background-color: white; text-decoration: none; } -#footer table { font-size: 8pt; } -#text { line-height: 1; } diff --git a/werc/apps/barf/pub/read.css b/werc/apps/barf/pub/read.css deleted file mode 100755 index 4262701..0000000 --- a/werc/apps/barf/pub/read.css +++ /dev/null @@ -1,29 +0,0 @@ -/* black */ -header { flex-basis: 99%; flex-shrink: 0; padding-left: 1em; padding-bottom: 1em; } -header h3 { padding-bottom: 2px; } -header a img { vertical-align: bottom; padding-top: 1em; } -body { font-family: Helvetica, Verdana, Arial, 'Liberation Sans', FreeSans, sans-serif; background-color: #000000; color: #FFFFFF; } -a { text-decoration: none; color: #FFFFFF; background-color: #000000; font-weight: bold; } -a:hover { text-decoration: none; background-color: #FFFFFF; color: #000000; } -/* footer */ -footer > nav { margin-left: auto; padding: 1em; } - -/* fixed-width fonts */ -pre, code { white-space: pre-wrap!important; } -pre, code, blockquote { - max-width: 100%!important; - font-family: Courier, 'Lucida Console','Courier New', Serif; -} -/* input */ -input, textarea, select, option { - font-family: Sans-Serif; - font-size: 100%; - padding: 2px; - border-top: solid 1px #FFFFFF; - border-bottom: solid 1px #FFFFFF; - border-left: solid 1px #FFFFFF; - border-right: solid 1px #FFFFFF; - background-color: #000000; - color: #FFFFFF; - margin: 2px; -} diff --git a/werc/apps/barf/pub/stanleylieber.css b/werc/apps/barf/pub/stanleylieber.css deleted file mode 100755 index e79591a..0000000 --- a/werc/apps/barf/pub/stanleylieber.css +++ /dev/null @@ -1,64 +0,0 @@ -/* nothing */ -body { - display: flex; - flex-wrap: wrap; - color: black; - background-color: white; - font-family: 'Lucida Sans Unicode', 'Lucida Sans', 'Lucida Grande', 'Bitstream Sans Vera', Sans-Serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} -header, article, footer { flex-basis: 100%; } -a { text-decoration: none; color: gray; } -a:hover { color: #111; text-decoration: none; } -a img { display: block; border: 0 none; } -li:hover { color: #111; text-decoration: none; } -li a { color: gray } -li a:hover { color: #111; text-decoration: none; } -li ul { padding-left: 0.6em !important; } -h1 { font-size: 10pt; font-weight: normal; } -h2 { font-size: 9pt; font-weight: normal; } -input , textarea, select, option { background-color: gray; border: none; } -table { border: none; background-color: transparent; } -th { - background-color: transparent; - border: none; - text-align: center; -} -tr:nth-child(odd) { background-color: transparent; } -td { - background-color: transparent; - border: none; -} - -hr { - border-width: 0px 0px 0.1em 0px; - border-color: transparent; -} -pre, code, blockquote { - font-family: Courier, 'Lucida Console','Courier New', Serif; - margin-left: 2em; - font-size: 1.2em; -} -blockquote { - border-left: none; - font-style: none; - background-color: gray; -} -#center { - width: 500px; - margin-left: auto; - margin-right: auto; -} -#center h1 { font-size 9pt; } -#footer { - font-size: 8pt; - background-color: white; - color: gray; - margin-left: auto; - margin-right: auto; -} -#footer a { color: gray; text-decoration: none; } -#footer a:hover { color: #111; text-decoration: none; } -#footer table { font-size: 8pt; } diff --git a/werc/apps/barf/pub/url.css b/werc/apps/barf/pub/url.css deleted file mode 100755 index b8d0e5b..0000000 --- a/werc/apps/barf/pub/url.css +++ /dev/null @@ -1,195 +0,0 @@ -/* url.stanleylieber.com */ - -body { - font-family: Vera, Helvetica, Verdana, Arial, Sans-Serif; - font-style: normal; - padding: 2px 2em; - line-height: 1.5em; - font-size: 70%; - background: #FFFFFF; - color: #000000; -} - -a { text-decoration: none; color: #000000; } -a:hover { background: #EEEEEE;} -li:hover { background: #EEEEEE; } -li a:hover { background: #EEEEEE; } -ul { list-style: none; } - -p { - font-size : 100%; - font-style : normal; - padding: 0px; -} - -h2 { font-size : 140%; } -h3 { font-size: 120%; } -h4 { font-size: 100%; } -h2, h3, h1, h4 { - margin: 0px 0px; - padding: 2px 0px; - clear: both; -} - -hr { border: 1px solid #fff; } - -input { - background-color: #EEEEEE; -} - -code, pre { font-family: Courier, 'Lucida Console','Courier New', Sans-Serif; } -blockquote, code { - background : #eee; - padding: 6px; - border-left: 3px solid #eee; -} - -td { - padding: 10px; - border-width: 1px; - border-style: solid; - border-collapse: collapse; - border-color: #000000; - background: #FFFFFF; -} - -textarea { - height: 300px; - background-color: #EEEEEE; -} - -tr { - border-width: 1px; - border-style: solid; - border-collapse: collapse; - border-color: #000000; -} - -#add { - position: relative; - top: 65px; - left: 9%; - font-size: 10pt; -} - -#blank { - border-width: 1px; - border-style: solid; - border-collapse: collapse; - border-color: #FFFFFF; -} - -#bottom { - float: bottom; - position: absolute; - bottom: 0px; - left: 0px; - right: 0px; - width: 100%; -} - -#center { - position: relative; - margin-left: auto; - margin-right: auto; - top: 130px; - width: 90%; - height: 100%; -} - -#edit { - width: 750px; - font-size: 10pt; -} - -#footer { - position: relative; - margin-left: auto; - margin-right: auto; - bottom: 100px; -} - -#header { - position: relative; - margin-left: auto; - margin-right: auto; - top: 40px; - width: 83%; -} - -#logo { font-size: 40pt; color: #DDDDDD; } -#logo a { font-size: 40pt; color: #CCCCCC; } -#logo a:hover { background: #EEEEEE;} - -#list { - position: relative; - margin-left: auto; - margin-right: auto; - top: 90px; - width: 90%; - height: 100%; -} - -#meta { font-size: 8pt; } - -#page_list { - margin: 20px; - text-align: right; - font-size: 9pt; -} - -#post { - position: relative; - padding: 20px; -} - -#post_meta { text-align: center; } - -#post_date { - width: 200px; - text-align: center; - font-size: 8pt; -} - -#post_edit { - width: 100px; - text-align: center; - font-size: 8pt; -} - -#post_table { - position: relative; - margin-left: auto; - margin-right: auto; - padding: 0px; - width: 100%; - border-collapse: collapse; -} - -#post_tags { - text-align: left; - font-size: 8pt; -} - -#post_title { - text-align: left; - font-size: 10pt; -} - -#search { - position: absolute; - top: 90px; - right: 9%; - font-size: 10pt; -} - -#top { - float: top; - position: absolute; - top: 0px; - left: 0px; - right: 0px; - height: 100px; - width: 100%; -} - diff --git a/werc/apps/barf/src/1/body b/werc/apps/barf/src/1/body deleted file mode 100644 index 8023cd7..0000000 --- a/werc/apps/barf/src/1/body +++ /dev/null @@ -1 +0,0 @@ -Trust, but verify. diff --git a/werc/apps/barf/src/1/date b/werc/apps/barf/src/1/date deleted file mode 100644 index d72158e..0000000 --- a/werc/apps/barf/src/1/date +++ /dev/null @@ -1 +0,0 @@ -Thu Aug 25 18:35:52 CDT 2011 diff --git a/werc/apps/barf/src/1/link b/werc/apps/barf/src/1/link deleted file mode 100644 index 4c592f1..0000000 --- a/werc/apps/barf/src/1/link +++ /dev/null @@ -1 +0,0 @@ -http://plan9.stanleylieber.com/9front diff --git a/werc/apps/barf/src/1/tags/demo b/werc/apps/barf/src/1/tags/demo deleted file mode 100644 index e69de29..0000000 diff --git a/werc/apps/barf/src/1/tags/random b/werc/apps/barf/src/1/tags/random deleted file mode 100644 index e69de29..0000000 diff --git a/werc/apps/barf/src/1/tags/theory b/werc/apps/barf/src/1/tags/theory deleted file mode 100644 index e69de29..0000000 diff --git a/werc/apps/barf/src/1/title b/werc/apps/barf/src/1/title deleted file mode 100644 index a4600f9..0000000 --- a/werc/apps/barf/src/1/title +++ /dev/null @@ -1 +0,0 @@ -This is a BULGE demo post. diff --git a/werc/apps/barf/tags b/werc/apps/barf/tags deleted file mode 100755 index aff680d..0000000 --- a/werc/apps/barf/tags +++ /dev/null @@ -1,3 +0,0 @@ -1/tags/theory -1/tags/random -1/tags/demo diff --git a/werc/apps/blagh/app.rc b/werc/apps/blagh/app.rc deleted file mode 100644 index 39c013b..0000000 --- a/werc/apps/blagh/app.rc +++ /dev/null @@ -1,148 +0,0 @@ -fn conf_enable_blog { - blagh_uri=$conf_wd - blagh_dirs=$* - if(~ $#blagh_dirs 0) - blagh_dirs=( . ) - conf_enable_app blagh - - if(~ $"conf_blog_editors '') - conf_blog_editors=blog-editors - - if(~ $"conf_blog_only_pull '') - conf_blog_only_pull=0 - - if(~ $"conf_max_posts_per_page '') - conf_max_posts_per_page=32 -} - -fn blagh_init { - if(~ $#blagh_dirs 0 && ~ $req_path */[bB]log/*) { - blagh_uri=`{echo $req_path | sed 's,(/[bB]log/).*,\1,'} - blagh_dirs=( . ) - } - - # Should not match sub-dirs! - if(! ~ $#blagh_dirs 0) { - # && test -d / `{echo '-a -d '^$blagh_root^$blagh_dirs} - blagh_url=$base_url^$blagh_uri - blagh_root=$sitedir^$blagh_uri - if(check_user $conf_blog_editors && ! ~ $"conf_blog_only_pull '1') { - 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_bar_left echo 'Make a new post' - } - - if(~ $req_path $blagh_uri) { - handler_body_main=blagh_body - u=$blagh_uri'index' - extraHeaders=$"extraHeaders ^ \ -' - -' - } - if not if(~ $req_path $blagh_uri^index.atom) - blagh_setup_feed_handlers atom.tpl 'application/atom+xml' - - 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) - blagh_setup_feed_handlers jsonfeed.tpl 'application/json; charset=utf-8' - - if not if(~ $req_path $blagh_uri^new_post && ! ~ $#editor_mode 0) { - handler_body_main=( tpl_handler `{get_lib_file blagh/new_post.tpl apps/blagh/new_post.tpl} ) - if(~ $REQUEST_METHOD POST) { - if(mkbpost $"post_arg_body $"post_date $"post_arg_title $post_arg_id) - post_redirect $blagh_uri - if not - notify_errors=$status - } - } - - } -} - -fn blagh_setup_feed_handlers { - handler_body_main=NOT_USED_by_blagh_feeds - res_tail=() - http_content_type=$2 - headers=() - master_template=apps/blagh/$1 # Should we allow tempalte override? -} - -fn blagh_body { - echo '
' - if (! ~ $"blogTitle '') - echo '

'$"blogTitle'

' - - # Direct links to feeds are disabled because they are not very useful, add clutter and might waste pagerank. - # An user can add this on their own using handlers_body_head anyway. - #echo '' - - # XXX Not sure why this fixes issues with blog setup, probably bug in fltr_cache! - for(p in `{get_post_list $blagh_root^$blagh_dirs}) { - l=`{echo -n $p|sed 's!'$sitedir^'/?(.*)([0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9])(/[^/]+/)!\2 /\1\2\3!'} - sed '1s!.*![&]('^$l(2)^') ('^$l(1)^')!' < $p/index.md | - sed 's!\([0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]\)!
&
!' - echo # Needed extra \n so markdown doesn't mess up the formatting, probably can be done in sed. - } | $formatter - # XXX BUG! Markdown [references] break because multiple markdown documents are merged. Should format each blog post independently. - # TODO: use fltr_cache directly, that can fix the previous bug plus provide a perf boost by caching title generation. - echo '
' -} - -fn get_post_list { - # /./->/|/ done to sort -t| and order by date - # Note: $paths in blagh_dirs should not contain '/./' or '|' - 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; s,/\./,/|/,; /\/$/p' | sort -r '-t|' +1 | sed -e 's,/+\|/+,/,' -e $conf_max_posts_per_page^'q' -} - -fn mkbpost { - 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 '') - bpid=`{echo -n '-'^$bpid | sed 's/'$forbidden_uri_chars'+/_/g; 1q'} - - ddir=$blagh_root^$bpdate^'/' - n=`{ls $ddir >[2]/dev/null |wc -l} - - mkdir -p $ddir/$"n^$"bpid/ - { - if(! ~ $"bptitle '') { - echo $bptitle - echo '-------------------------------------' - } - # TODO: Enable metadata - #echo '* Posted:' `{date} - #if(! ~ $#logged_user 0) - # echo '* Author: '$logged_user - echo - echo $bptext - }> $ddir/$"n^$"bpid/index.md - - # Experimental support for http://pubsubhubbub.googlecode.com/ - if(! ~ $"conf_blog_pubsubdub_hub '') { - ifs='' { p=`{echo $req_url|sed 's/new_post$/index.atom/'|url_encode } } - dprint hget -p 'hub.mode=publish&hub.url='^$"p $conf_blog_pubsubdub_hub - hget -d -h -p 'hub.mode=publish&hub.url='^$"p $conf_blog_pubsubdub_hub >[1=2] & - } - } - status=$_status -} - -fn strip_title_from_md_file { - sed '1N; /^.*\n===*$/N; /.*\n===*\n$/d' -} diff --git a/werc/apps/blagh/atom.tpl b/werc/apps/blagh/atom.tpl deleted file mode 100644 index 97c665f..0000000 --- a/werc/apps/blagh/atom.tpl +++ /dev/null @@ -1,58 +0,0 @@ - - -%{ -# See for more info:http://www.tbray.org/ongoing/When/200x/2005/07/27/Atomic-RSS -fn statpost { - f = $1 - - post_uri=$base_url^`{cleanname `{echo $f | sed -e 's!^'$sitedir'!!'}}^'/' - title=`{read $f/index.md} - by=`{ls -m $f | sed 's/^\[//g; s/].*$//g' >[2]/dev/null} - ifs=() { summary=`{cat $f/index.md | strip_title_from_md_file | ifs=$difs {$formatter} } } -} -# rfc3339 date when feed was last updated. -fupdated = `{ndate -a `{date `{mtime `{ls $blagh_root$blagh_dirs/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/[0-9] | tail -1} | awk '{print $1}'}}} -%} - - - -% if(! ~ $"conf_blog_pubsubdub_hub '') { -% echo '' -% } - - - %($base_url^$req_path%) - - - <![CDATA[%($siteTitle%)]]> - - - %($fupdated%) - - -% for(f in `{get_post_list $blagh_root$blagh_dirs}) { -% statpost $f - - -% # Maybe we should be smarter, see: http://diveintomark.org/archives/2004/05/28/howto-atom-id, example: tag:intertwingly.net,2004:2899 - %($post_uri%) - - <![CDATA[%($title%)]]> -% # - - -
- -
- -% # rfc3339 date when entry was last updated. -% eupdated=`{ndate -a `{date `{mtime $f | awk '{print $1}'}}} - %($eupdated%) -
- -% } - -
- -% exit diff --git a/werc/apps/blagh/convert.rc b/werc/apps/blagh/convert.rc deleted file mode 100755 index 0640805..0000000 --- a/werc/apps/blagh/convert.rc +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env rc - -path=($PLAN9/bin/ $path) - -for(p in *.md) { - echo - echo '=========================' - echo p $p - pp=`{echo $p | sed 's/^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])[\-_](.*).md$/\1 \2 \3 \4/' } - echo pp $pp - - d=$pp(1)^'/'^$pp(2)^'/'^$pp(3)^'/'^$pp(4)^'/' - - mkdir -p $d - echo $pp(4) | sed -e 's/^[0-9]_//; s/_/ /g;' > $d/index.md - echo '=================================' >> $d/index.md - echo >> $d/index.md - cat $p >> $d/index.md - -} diff --git a/werc/apps/blagh/jsonfeed.tpl b/werc/apps/blagh/jsonfeed.tpl deleted file mode 100644 index fd97ed4..0000000 --- a/werc/apps/blagh/jsonfeed.tpl +++ /dev/null @@ -1,35 +0,0 @@ -{ -"version": "https://jsonfeed.org/version/1", -"title": "%($siteTitle%)", -"home_page_url": "%($"base_url%)", -"feed_url": "%($"base_url^$"req_path%)", -"items": [ -%{ -fn statpost { - f = $1 - post_uri=$base_url^`{cleanname `{echo $f | sed -e 's!^'$sitedir'!!'}}^'/' - title=`{read $f/index.md} - #ifs=() { summary=`{cat $f/index.md | crop_text 1024 ... | $formatter } } - ifs=() { summary=`{cat $f/index.md | strip_title_from_md_file | ifs=$difs {$formatter| sed 's/"/\\"/g' | tr -d '\012' } } } -} -%} -% #for(f in `{get_post_list $blagh_root$blagh_dirs}) { -% -% postlist=`{get_post_list $blagh_root$blagh_dirs} -% postcount=0 -% for(f in $postlist) { -% statpost $f - { - "id": "%($post_uri%)", - "url": "%($post_uri%)", - "title": "%($title%)", - "content_html": "%($summary%)" - } -% postcount = `{echo $postcount 1+p | dc} -% if (! ~ $#postlist $postcount) { echo , } -% } -] -} - -% exit - diff --git a/werc/apps/blagh/new_post.tpl b/werc/apps/blagh/new_post.tpl deleted file mode 100644 index bd521c4..0000000 --- a/werc/apps/blagh/new_post.tpl +++ /dev/null @@ -1,11 +0,0 @@ -
-% notices_handler -
- Submit a new blog post -
- - - - -
-
diff --git a/werc/apps/blagh/rss20.tpl b/werc/apps/blagh/rss20.tpl deleted file mode 100644 index 9470656..0000000 --- a/werc/apps/blagh/rss20.tpl +++ /dev/null @@ -1,43 +0,0 @@ - - -%{ -fn statpost { - f = $1 - post_uri = `{echo $f | sed 's,^'$sitedir',,'} - title=`{read $f/index.md} - post_uri=$base_url^`{cleanname `{echo $f | sed -e 's!^'$sitedir'!!'}}^'/' - by=`{ls -m $f | sed 's/^\[//g; s/].*$//g' >[2]/dev/null} - ifs=() {summary=`{ cat $f/index.md |strip_title_from_md_file| ifs=$difs {$formatter | escape_html} }} -} - -%} - - - - - <![CDATA[%($siteTitle%)]]> - %($base_url^$req_path%) - - en-us - -%{ - # uriel99+rss@gmail.com (Uriel) - # rfc2822 last time channel content changed. - lbd=`{ndate -m `{date `{mtime `{ls $blagh_root$blagh_dirs/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/[0-9] | tail -1} | awk '{print $1}'}}} - echo ''$"lbd'' - # rfc2822 publication date for content in the channel. - pubdate=`{ndate -m} - for(f in `{get_post_list $blagh_root$blagh_dirs}){ - statpost $f -%} - - <![CDATA[%($title%)]]> - - %($post_uri%) - %($post_uri%) - %($pubdate%) - %($summary%) - -% } - - diff --git a/werc/apps/bridge/app.rc b/werc/apps/bridge/app.rc deleted file mode 100755 index 40477ba..0000000 --- a/werc/apps/bridge/app.rc +++ /dev/null @@ -1,103 +0,0 @@ -comment_file_types=(md html) - -fn conf_enable_comments { - if(~ $1 -n) { - allow_new_user_comments=yes - shift - } - if not if(~ $1 -a) { - bridge_anon_comments=yes - } - enable_comments=yes - groups_allowed_comments=$* - conf_enable_app bridge -} - -fn bridge_init { - if(~ $#enable_comments 1 && ! ~ `{ls $local_path.$comment_file_types >[2]/dev/null|wc -l} 0) { - - comments_dir=$sitedir$req_path'_werc/comments' - if(~ $REQUEST_METHOD GET && test -d $comments_dir) - ll_add handlers_body_foot template apps/bridge/comments_list.tpl - - if(check_user $groups_allowed_comments || {~ $#logged_user 0 && ~ 1 $#allow_new_user_comments $#bridge_anon_comments}) { - - if(~ $#post_arg_bridge_post 1) { - ll_add handlers_body_foot template apps/bridge/foot.tpl - - if(mk_new_comment $comments_dir) - post_redirect $base_url^$req_path - if not - saved_comment_text=$post_arg_comment_text - } - if not if(~ $REQUEST_METHOD GET) - ll_add handlers_body_foot template apps/bridge/foot.tpl - } - if not if(~ $REQUEST_METHOD GET) - ll_add handlers_body_foot echo '

To post a comment you need to login first.

' - } -} - -fn validate_new_user { - usr=$1; pass=$2; pass2=$3 - _status=() - - if(~ $"usr '' || ! echo $usr |sed 1q|grep -s '^'$allowed_user_chars'+$') - _status='Requested user name is invalid, must match: '^$allowed_user_chars^'+' - if not if(test -d etc/users/$usr) - _status='Sorry, user name '''^$usr^''' already taken, please pick a different one.' - - if(~ $"pass '' || ! ~ $"pass $"pass2) - _status=($_status 'Provided passwords don''t match.') - - status=$_status -} - - -fn mk_new_comment { - _status=() - dir=$1 - if(~ $"post_arg_comment_text '') - _status='Provide a comment!' - if not if(~ $#logged_user 0) { - if(! ~ $#allow_new_user_comments 0) { - if(validate_new_user $"post_arg_comment_user $post_arg_comment_passwd $post_arg_comment_passwd2) { - u=$post_arg_comment_user':'$post_arg_comment_passwd - dir=$comments_dir^'_pending' - # XXX: This doesn't work because we then do a redirect. - notify_notes='Saved comment and registration info, they will be enabled when approved by an admin.' - } - if not - _status=$status - } - if not if(! ~ $#bridge_anon_comments 0) { - if(~ $"post_arg_ima_robot 'not') - u='Glenda' # Anonymous - if not - _status='You are a robot!' - } - if not - _status='You need to log in to comment.' - } - if not if(check_user $groups_allowed_comments) - u=$logged_user - if not - _status='You are not a member of a group allowed to comment.' - - if(~ $#_status 0) { - umask 002 - - dir=$dir'/'`{date -n} # FIXME Obvious race - mkdir -m 775 -p $dir && - echo $u > $dir/user && - echo $current_date_time > $dir/posted && - echo $post_arg_comment_text > $dir/body - _s=$status - if(! ~ $"_s '') { - dprint 'ERROR XXX: Could not create comment: ' $_s - _status='Could not post comment due internal error, sorry.' - } - } - notify_errors=$_status - status=$_status -} diff --git a/werc/apps/bridge/comments_list.tpl b/werc/apps/bridge/comments_list.tpl deleted file mode 100755 index 03e0ddc..0000000 --- a/werc/apps/bridge/comments_list.tpl +++ /dev/null @@ -1,13 +0,0 @@ -
-

Comments

- -% for(c in `{ls $comments_dir/}) { -% if(test -s $c/body) { -
-
By: %(`{cat $c/user}%) (%(`{cat $c/posted}%)) -
-% cat $c/body | escape_html | sed 's,$,
,' -
-% } -% } - diff --git a/werc/apps/bridge/foot.tpl b/werc/apps/bridge/foot.tpl deleted file mode 100755 index 67beb06..0000000 --- a/werc/apps/bridge/foot.tpl +++ /dev/null @@ -1,37 +0,0 @@ -
- -% notices_handler -
- -
- - -% if(~ $#logged_user 0) { -% if(~ $#allow_new_user_comments 1) { - - - - - -
- Enter your desired user name/password and after your comment has been reviewed by an admin it will be posted and your account will be enabled. If you are already registered please login before posting. -
-% } -% if not if(~ $#bridge_anon_comments 1) { - -% } -% } -
diff --git a/werc/apps/cssedit/app.rc b/werc/apps/cssedit/app.rc deleted file mode 100644 index 9dc7094..0000000 --- a/werc/apps/cssedit/app.rc +++ /dev/null @@ -1,33 +0,0 @@ -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 -} - diff --git a/werc/apps/cssedit/edit.tpl b/werc/apps/cssedit/edit.tpl deleted file mode 100644 index 3107648..0000000 --- a/werc/apps/cssedit/edit.tpl +++ /dev/null @@ -1,27 +0,0 @@ -
-

Editing CSS: %($css_file%)

-
-
-
- -
- Download Stylesheet -
- - Note: Saved changes are final, historical versions of stylesheet are not kept. -
-
-

Tips

-
-
    -
  • Pressing F12 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.
  • -
  • Using a computer is suggested for these kind of changes
  • -
  • Learn css: w3schools
  • -
-
-
\ No newline at end of file diff --git a/werc/apps/cssedit/sidebar_controls.tpl b/werc/apps/cssedit/sidebar_controls.tpl deleted file mode 100644 index b297ff7..0000000 --- a/werc/apps/cssedit/sidebar_controls.tpl +++ /dev/null @@ -1,3 +0,0 @@ -
- -
\ No newline at end of file diff --git a/werc/apps/dirdir/README.md b/werc/apps/dirdir/README.md deleted file mode 100644 index 1daa50c..0000000 --- a/werc/apps/dirdir/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# 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. diff --git a/werc/apps/dirdir/app.rc b/werc/apps/dirdir/app.rc deleted file mode 100755 index 3d11265..0000000 --- a/werc/apps/dirdir/app.rc +++ /dev/null @@ -1,59 +0,0 @@ -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 { - if(! ~ $#enable_wiki 0 && check_user $wiki_editors_groups) { - lp=$local_path - # werc.rc doesn't append /index when $local_path doesn't exist - # maybe it should, but for now we can fix it up here. - if(~ $lp */) - lp=$lp^'index' - 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} || {~ $REQUEST_METHOD GET && test -f $local_path.tpl} ) - ll_add handlers_bar_left tpl_handler apps/dirdir/sidebar_controls.tpl - } -} - -fn save_page { - dirdir_verdir=$dirdir_dir/^`{date -n}^/ - mkdir -p $dirdir_verdir - umask 002 - - # XXX Use a tmp file and mv(1) to ensure updates are atomic? - echo $logged_user > $dirdir_verdir/author - echo $post_arg_edit_text | dos2unix > $dirdir_verdir/data - echo $post_arg_edit_text | dos2unix > $dirdir_file - post_redirect $base_url^$req_path -} diff --git a/werc/apps/dirdir/delete_sure.tpl b/werc/apps/dirdir/delete_sure.tpl deleted file mode 100755 index fee5e32..0000000 --- a/werc/apps/dirdir/delete_sure.tpl +++ /dev/null @@ -1,9 +0,0 @@ -
- -% if(~ 1 $#post_arg_dirdir_delete ) { -% echo '' } -% if(~ 1 $#post_arg_dirdir_delete_folder ) { -% echo '' } - - -
diff --git a/werc/apps/dirdir/edit.tpl b/werc/apps/dirdir/edit.tpl deleted file mode 100755 index 0e830a2..0000000 --- a/werc/apps/dirdir/edit.tpl +++ /dev/null @@ -1,26 +0,0 @@ -
-

Editing: %($req_path%)

-
-
- -
- - - DirDir documents are written using Markdown syntax. -
-
- -% if(! ~ $"post_arg_dirdir_preview '') { -

Preview:

-
-% echo $post_arg_edit_text | dos2unix | $formatter -
-% } diff --git a/werc/apps/dirdir/sidebar_controls.tpl b/werc/apps/dirdir/sidebar_controls.tpl deleted file mode 100755 index 6d9adef..0000000 --- a/werc/apps/dirdir/sidebar_controls.tpl +++ /dev/null @@ -1,14 +0,0 @@ -
-
-
-
-
- -
-
-
-
-
-
-
-
\ No newline at end of file diff --git a/werc/apps/duckduckgo/HOWTO b/werc/apps/duckduckgo/HOWTO deleted file mode 100644 index 8bb952c..0000000 --- a/werc/apps/duckduckgo/HOWTO +++ /dev/null @@ -1,20 +0,0 @@ -The default path for site search is /_search/. Assuming you want to keep -that default, you could enable site search like so: - - -mkdir -p /www/werc/sites/MYSITE/_search/_werc/ -echo 'conf_enable_duckduckgo' > /www/werc/sites/MYSITE/_search/_werc/config -mkdir -p /www/werc/sites/MYSITE/_werc/lib/ -cp /www/werc/apps/duckduckgo/footer.inc.sample /www/werc/sites/MYSITE/_werc/lib/footer.inc - -Searches will POST to /_search/ and from there get redirected to Duck Duck -Go with a site:$SERVER_NAME prefix. To have the search path URL be some- -thing different, you'll have to edit line 23 of app.rc to point to the new -path. - -TODO: -* Make it automatically work no matter which directory the app is enabled in. -* OR make the search path a configuration option. -* Provide a template for non-footer deployment -* Enable the search path itself to serve a search form to GET requests - diff --git a/werc/apps/duckduckgo/app.rc b/werc/apps/duckduckgo/app.rc deleted file mode 100755 index 72dd0ec..0000000 --- a/werc/apps/duckduckgo/app.rc +++ /dev/null @@ -1,30 +0,0 @@ -fn conf_enable_duckduckgo { - enable_duckduckgo=yes - conf_enable_app duckduckgo - pageTitle='Site Search' -} - - -fn duckduckgo_init { - get_post_args q - if (! ~ $#q 0) { - redirect_string = 'https://duckduckgo.com/?q=site:'$SERVER_NAME^'+'^$"q - http_redirect $redirect_string '302 Found' - } - if not { - handler_body_main='duckduckgo_body' - } -} - -fn duckduckgo_body { - echo ' -

Site search

-

using DuckDuckGo

-
- - - -
' - -} - diff --git a/werc/apps/duckduckgo/footer.inc.sample b/werc/apps/duckduckgo/footer.inc.sample deleted file mode 100644 index 4dd671d..0000000 --- a/werc/apps/duckduckgo/footer.inc.sample +++ /dev/null @@ -1,3 +0,0 @@ - - -
diff --git a/werc/apps/gallery b/werc/apps/gallery deleted file mode 160000 index 65ecf50..0000000 --- a/werc/apps/gallery +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 65ecf50e317daa8c463b0375f1a57bd388b5bca4 diff --git a/werc/apps/hello/app.rc b/werc/apps/hello/app.rc deleted file mode 100755 index e6faaa8..0000000 --- a/werc/apps/hello/app.rc +++ /dev/null @@ -1,10 +0,0 @@ -fn hello_init { - if(~ $req_path /hello) { - handler_body_main='hello_body' - pageTitle='Hi title!' - } -} - -fn hello_body { - echo 'Hello world!' -} diff --git a/werc/apps/ico/app.rc b/werc/apps/ico/app.rc deleted file mode 100644 index 9ba7d1a..0000000 --- a/werc/apps/ico/app.rc +++ /dev/null @@ -1,144 +0,0 @@ -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 ^ \ -' -' - } - 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' ' - } - } - - 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' -} diff --git a/werc/apps/ico/event_list_all.tpl b/werc/apps/ico/event_list_all.tpl deleted file mode 100644 index 9e6ef1f..0000000 --- a/werc/apps/ico/event_list_all.tpl +++ /dev/null @@ -1,25 +0,0 @@ -% if (! ~ $"icoTitle '') -

%($"icoTitle%)

-% if (! ~ $"icoDesc '') -

%($"icoDesc%)

-
-Catagories -
-%{ -for(cat in `{list_categories}) { - echo ''$cat' ' -} -%} -
-
-
- -%{ -for(p in `{get_post_list $ico_root^$ico_dirs}) { - echo '
' - cat $p/index.html - echo '
' -} -%} -
-

Check out the archive to see past events.

\ No newline at end of file diff --git a/werc/apps/ico/event_list_cat.tpl b/werc/apps/ico/event_list_cat.tpl deleted file mode 100644 index afb34ab..0000000 --- a/werc/apps/ico/event_list_cat.tpl +++ /dev/null @@ -1,23 +0,0 @@ -

Posts in category: %($category%)

-

You are seeing events in the %($category%) category. Click here to go home!

-
-Catagories -
-all -%{ -for(cat in `{list_categories}) { - echo ''$cat' ' -} -%} -
-
-
-%{ - for(p in `{get_post_by_category $category}) { - echo '
' - cat $sitedir$p/index.html - echo '
' - } -%} -
-

Check out the archive to see past events.

\ No newline at end of file diff --git a/werc/apps/ico/foot.tpl b/werc/apps/ico/foot.tpl deleted file mode 100644 index 0bd5a90..0000000 --- a/werc/apps/ico/foot.tpl +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/werc/apps/ico/new_post.tpl b/werc/apps/ico/new_post.tpl deleted file mode 100644 index bb72573..0000000 --- a/werc/apps/ico/new_post.tpl +++ /dev/null @@ -1,17 +0,0 @@ -
-% notices_handler -
- Submit a new ico post - - - - - - - - - -
- -
-
\ No newline at end of file diff --git a/werc/apps/ico/post.tpl b/werc/apps/ico/post.tpl deleted file mode 100644 index 8591ed4..0000000 --- a/werc/apps/ico/post.tpl +++ /dev/null @@ -1,20 +0,0 @@ - -
- -

%($icotitle%)

-
-
%($icodate%)
- - -
%($category_links%)
-
%($icoshortdesc%)
-
-% if(! ~ $"icoposterpath '') { -
- Event Poster -
-% } -
- %($icotext%) -
-
\ No newline at end of file diff --git a/werc/apps/ico/rss20.tpl b/werc/apps/ico/rss20.tpl deleted file mode 100644 index dc7e5e1..0000000 --- a/werc/apps/ico/rss20.tpl +++ /dev/null @@ -1,25 +0,0 @@ - - - - - <![CDATA[%($siteTitle%)]]> - %($base_url^$req_path%) - - en-us - werc ico app - %($lastBuildDate%) -%{ - for(f in `{get_post_list $ico_root$ico_dirs}){ - statpost $f -%} - - <![CDATA[%($title%)]]> - %($post_uri%) - %($post_uri%) - %($pubdate%) - - %($categories%) - -% } - - diff --git a/werc/apps/paste/app.rc b/werc/apps/paste/app.rc deleted file mode 100755 index af0c76d..0000000 --- a/werc/apps/paste/app.rc +++ /dev/null @@ -1,45 +0,0 @@ -fn conf_enable_wercpaste { - paste_url=$conf_wd - if (~ $#paste_dir 0) { paste_dir=`{pwd} } - conf_enable_app wercpaste -} - -fn wercpaste_init { - if (~ $REQUEST_METHOD POST && ~ $post_arg_url url && ~ $req_path $paste_url ) { # incoming paste - now=`{ date -n } - cksum=`{ echo $"post_arg_paste | sum | awk '{ print $1 }' } - if (~ $cksum '1715a8eb' ) { # empty paste; discard - post_redirect $base_url^$paste_url - } - if not { # save and redirect - # TODO: stop using echo - # env var size limit is 16kb, this thing dies with larger input. - echo $"post_arg_paste > $paste_dir^/^$now^.^$cksum - # uncomment the following line to redirect to the pasted file - #post_redirect $base_url^$paste_url^$now^.^$cksum - # uncomment the following line instead to just return the url - echo 'Content-type: text/plain'; echo ''; exec echo $base_url^$paste_url^$now^.^$cksum - } - } - if not { # show a paste if there is one - if (test -r $werc_root/$local_path && ~ $QUERY_STRING raw ) { - echo 'Content-type: text/plain'; echo ''; exec cat $werc_root/$local_path - } - } - -# drop a textbox - if (~ $REQUEST_METHOD GET ) { handler_body_main='begforpaste' } - -} - -fn begforpaste { - echo '
-

pasted data is not publically indexed

-
-
-

- (do not change) -
-
- ' -} diff --git a/werc/apps/wman/app.rc b/werc/apps/wman/app.rc deleted file mode 100755 index 8f0a150..0000000 --- a/werc/apps/wman/app.rc +++ /dev/null @@ -1,89 +0,0 @@ -fn conf_enable_wman { - wman_tmac=an - wman_base_uri=$conf_wd - wman_man_path=$* - if(~ $#wman_man_path 0) - wman_man_path=$wman_base_uri - conf_enable_app wman -} - -wman_junk_filter='/(\/(INDEX|\.cvsignore|_.*)|\.9p|\.html)$/d; s!/man([0-9]+/[^/]+)$!/\1!; ' -fn wman_ls_pages { - ls $* \ - | sed $dirfilter^$wman_junk_filter^' s/\.([0-9]|9p)$//; s!/0intro$!/intro!' \ - | sort -u -} -fn wman_init { - ifs=$ifs^'/' { p=`{echo $req_path | sed 's!^'^$wman_base_uri^'!!'} } - wman_cat=$p(1) - wman_page=$p(2) - if(~ $#wman_unix_mode 1) { - wman_cp='man' - wman_pe=.^$"wman_cat - } - - if(! ~ $"wman_cat '') { - wman_cat_path=$wman_man_path^/^$"wman_cp^$p(1) - if(! ~ $"wman_page '') { - wman_page_file=$wman_page^$"wman_pe - # Hack to handle 0intro files. - if(~ $wman_page intro && test -f $wman_cat_path^/0^$"wman_page_file) - wman_page_file=0^$"wman_page_file - wman_page_file=$wman_cat_path^/^$"wman_page_file - x=`{echo $"req_path|sed 's%.*/([^/]+)/'$"wman_cat'/'^$"wman_page^'%\1%; s%_% %g'} - pageTitle=$wman_page' page from Section '$wman_cat' of the '^$"x' manual' - } - } - - wman_cat_list=`{ls -F $wman_man_path/*/ \ - | sed -e $wman_junk_filter -e 's!.*/([^/]+)/[^/]+$!\1!; /[0-9]+/!d' \ - | sort -un} - - synth_paths=($wman_base_uri$wman_cat_list'/') - - if(~ $req_path $wman_base_uri && ~ $"handler_body_main '') - handler_body_main=(tpl_handler apps/wman/section_list.tpl) - if not if(~ $req_path $wman_base_uri^*) { - #^*/[a-z0-9]*[a-z]* $wman_base_uri^*/*[a-z]*[a-z0-9] $wman_base_uri^*/[a-z]) - if(echo $req_path | grep -s '^'^$wman_base_uri^'/*[0-9]+/[0-9a-z\-\+\.]+$') - if(test -f $wman_page_file) # Check for 404 - handler_body_main=(tpl_handler apps/wman/man_page.tpl) - if not if(~ $req_path $wman_base_uri^*/) - handler_body_main=(tpl_handler apps/wman/page_list.tpl) - if not if(~ $p(2) [A-Z]* [0-9][A-Z]*) # Correct badly capitalized links - perm_redirect $wman_base_uri^$p(1)^/^`{echo $p(2) |tr 'A-Z' 'a-z'} - } - - # Search - ll_add handlers_body_head tpl_handler apps/wman/search.tpl - if(! ~ $"post_arg_wman_search '') { - s=`{echo $post_arg_wman_search | sed 's/[^a-zA-Z0-9\-\.]+//g; s/\.+/./g; 1q'} - ifs='' { wman_search_results=`{wman_ls_pages $wman_man_path/*/*^$"s^*} } - if(! ~ $"post_arg_go '' && ~ `{echo -n $wman_search_results|wc -l} 1) - post_redirect $wman_base_uri^`{echo $wman_search_results|awk -F/ '{print $(NF-1)"/"$NF}'} - } - -} - -fn wman_get_section_desc { - cat $wman_man_path/^$"wman_cp^$1/0intro* >[2]/dev/null| sed '1,2d; s!intro \\- [Ii]ntroduction to !!; 3q;' -} - -fn wman_page_gen { - #troff -manhtml $1| troff2html -t 'Plan 9 from User Space' - troff -N -m$wman_tmac $1 | wman_out_filter -} - -fn wman_out_filter { - wman_default_out_filter -} - -fn wman_default_out_filter { - # col -x syntax is the same for UNIX and Plan 9. - escape_html \ - | sed 's!([\.\-a-zA-Z0-9]+)\(('^`{echo $wman_cat_list|tr ' ' '|'}^')\)!&!g' \ - | awk '/^$/ {if(n != 1) print; n=1; next} /./ {n=0; print}' \ - | col -x -} - - diff --git a/werc/apps/wman/man_page.tpl b/werc/apps/wman/man_page.tpl deleted file mode 100755 index 945e23a..0000000 --- a/werc/apps/wman/man_page.tpl +++ /dev/null @@ -1,3 +0,0 @@ -
-% wman_page_gen $wman_page_file
-
diff --git a/werc/apps/wman/page_list.tpl b/werc/apps/wman/page_list.tpl deleted file mode 100755 index b98600d..0000000 --- a/werc/apps/wman/page_list.tpl +++ /dev/null @@ -1,11 +0,0 @@ -% d=`{wman_get_section_desc $wman_cat} -

Manual pages - Section %($wman_cat%): %($"d%)

- -
    -%{ -wman_ls_pages $wman_cat_path \ - | awk -F/ '{ print "
  • "$(NF)"
  • " } - NR%20 == 0 { print "
    " }' -%} -
- diff --git a/werc/apps/wman/search.tpl b/werc/apps/wman/search.tpl deleted file mode 100755 index a6c59e4..0000000 --- a/werc/apps/wman/search.tpl +++ /dev/null @@ -1,20 +0,0 @@ -
-
- - - - -% if(! ~ $"post_arg_wman_search '') { -% if(~ $"wman_search_results '') { - No matches found for '%($post_arg_wman_search%)'. -% } -% if not { -
    -% echo $wman_search_results|awk -F/ '$(NF-1) ~ "^[0-9]+$" {printf "
  • %s(%s)
  • ", $(NF-1),$NF, $NF, $(NF-1)}' -
-% } -% } - -
-
- diff --git a/werc/apps/wman/section_list.tpl b/werc/apps/wman/section_list.tpl deleted file mode 100755 index 299d613..0000000 --- a/werc/apps/wman/section_list.tpl +++ /dev/null @@ -1,11 +0,0 @@ -

Manual Sections

- -
    -% for(c in $wman_cat_list) { -
  • Section: %($c%) -% wman_get_section_desc $c -% if(~ $status '' '|') -% echo '(intro)' -
  • -% } -
diff --git a/werc/apps/xibit/README b/werc/apps/xibit/README deleted file mode 100644 index c4170b7..0000000 --- a/werc/apps/xibit/README +++ /dev/null @@ -1,45 +0,0 @@ -Xibit (tibix) - the image gallery generator for werc -Xibit can: - - generate thumbnails from almost any picture format - - generate preview images with captions - - display them (rather brokenly for now) - - - Dependencies: - - Plan9port - - Imagemagick - - werc - - - To make it work: - 1, clone the git repo at git://home.9souldier.org/xibit into $werc_root/apps - 2, pick a directory to serve the gallery from - 3, create an _werc and _werc/xibit directory in there, the xibit directory needs to be writable by the webserver to generate the thumbnails (at one point i'll probably make a cronjob, and then this will be optional) - 4, create an _werc/config file (readable by the webserver), that contains the options for xibit - 5, add xibit to the enabled_apps in initrc.local (or the local per-directory config file) -That should get you going. - -to use captions just create a directory in GALLERY/_werc/xibit called captions, make it readable by the weberver and add the captions as files, using the following naming convention: - image.imageextension.md - the caption handler accepts markdown formatting - -to enable comments add the comments handler (bridge) to the enabled apps, it'll (should) automatically work with xibit - -Config options: - - fmts: - file extensions recognised - ex. fmts=(jpg gif png svg) - - thumbsize: - size of thumbnails to generate, accepts - ex. thumbsize='140x' - - previewsize: - size of the previews to generate - ex. previewsize='x460' - -check_user: - Enforce authentication - This has been ripped out of the xibit code, if you want to enable perms enforcing, you should add the following to your config: -if ( ! check_user) { #if fyou want to enforce per-group permissions, do "if( ! check_user $group) {" - enabled_apps=() #maybe you want to leave some apps on, i just do this on a per-directory besis - handler_body_main=(echo 'please log in') -} \ No newline at end of file diff --git a/werc/apps/xibit/TODO b/werc/apps/xibit/TODO deleted file mode 100644 index bc69153..0000000 --- a/werc/apps/xibit/TODO +++ /dev/null @@ -1,5 +0,0 @@ -features: - - details list index - filenames with creation, etc.. - - if format is image format but not one recognised by browsers, convert it to png for preview and thumbnail viewing - -nice css @ http://www.area17.com/03_work/nove/photography/ and http://www.sergiojuncos.com/usa2008/large-2.html and http://jmcpherson.org/photoblog/index.php \ No newline at end of file diff --git a/werc/apps/xibit/app.rc b/werc/apps/xibit/app.rc deleted file mode 100755 index 190418d..0000000 --- a/werc/apps/xibit/app.rc +++ /dev/null @@ -1,91 +0,0 @@ -#xibit is an app that generates image galeries for werc. -#the license the mit license, see the license file in the distribution's root directory -#until the time i change my mind -#comments and suggestions can come to http://redmine.9souldier.org/projects/xibit0/issues/new or johnny@9souldier.org - -fn conf_enable_xibit { - xibit_uri=$conf_wd - conf_enable_app xibit -} - -fn xibit_init { - xibit_root=$sitedir$"xibit_uri -#SOMEONE PLEASE FIXME if(! ~ $#xibit_uri 0 && test '( -d '^$"xibit_root^'/_werc/xibit ) -a ( -w '^$"xibit_root^'/_werc/xibit )' && convert -help > /dev/null) { - if(! ~ $#xibit_uri 0 && test -d $"xibit_root/_werc/xibit && test -w $"xibit_root/_werc/xibit && which convert > /dev/null) { - xibitdir=$xibit_root^/_werc/xibit - xibit_uri_file=`{echo $req_path |sed 's,^.*/([^/]+)$,\1,g'} - mkdir -p $"xibitdir/previews - mkdir -p $"xibitdir/thumbs - extraHeaders=($extraHeaders '') - if( ~ $"req_path */index */) - handler_body_main=xibit_thumb_handler - if not { - xibit_img=`{echo $req_path |sed 's,^.*/([^/]+)(\.[^\.]+)?$,\1,g'} - for(pic in $xibit_img.^$fmts){ - if(test -f $xibit_root/^$pic) - handler_body_main=xibit_img_handler - } - if ( ~ $#handler_body_main 0 ) - status='xibit cant to anything here' - } - } -} - -fn xibit_thumb_handler { - cd $xibit_root - xibitdir=_werc/xibit - rm $"xibitdir/dirstat.md5.tmp > /dev/null >[2] /dev/null - if( ! ~ `{ls -l |md5sum |tee $xibitdir/dirstat.md5.tmp} `{cat $xibitdir/dirstat.md5}) { - mv $xibitdir/dirstat.md5.tmp $xibitdir/dirstat.md5 - for(pic in `{ls *.^$fmts >[2] /dev/null}) { - if( ! test -f $"xibitdir/thumbs/^$"pic ) - convert $pic -resize $thumbsize $xibitdir/thumbs/^$pic - if( ! test -f $"xibitdir/previews/^$"pic ) - convert $pic -resize $previewsize $xibitdir/previews/^$pic - - xibit_pics=($xibit_pics $pic) - } - } - if not - for(pic in `{ls *.^$fmts >[2] /dev/null}) - xibit_pics=($xibit_pics $pic) - rm $xibitdir/dirstat.md5.tmp > /dev/null >[2] /dev/null - cd $werc_root - - if( ! ~ $req_path */details ) - template apps/xibit/thumbs.tpl - if not - template apps/xibit/details.tpl -} - - -fn xibit_img_handler { - cd $xibit_root - for(file in $xibit_uri_file.^$fmts) { - if( test -f $file) { - xibit_img=`{echo $file |sed 's,^.*/([^/]+),\1,g'} - xibit_preview=_werc/xibit/previews/^$xibit_img - if (test -r _werc/xibit/captions/^$xibit_img^.md) - xibit_caption_file=$xibitdir^/captions/^$xibit_img^.md - xibit_nextpic=`{next_pic $xibit_img} - xibit_prevpic=`{prev_pic $xibit_img} - dprint $xibit_nextpic $xibit_prevpic - cd $werc_root - } - } - cd $werc_root - xibit_thumb_handler -} - -fn prev_pic { - findre='/^'^$1^'$/!h; /^'^$1^'$/!d; /^'^$1^'$/g;' - if( ! ls -F |sed 1q |grep -s $1 ) - ls -F |grep -v '_werc' | sed 's,\*$,,g; /\$/d; s,'',,g' | sed $"findre^'; s,\.[^\.]+$,,' -} - -fn next_pic { - findre='/^'^$1^'$/!d; /^'^$1^'/n; p' - if( ! ls -F |tail -1 |grep -s $1 ) - ls -F |grep -v '_werc' | sed 's,\*$,,g; /\/$/d; s,'',,g' | sed -n $"findre |sed 's,\.[^\.]+$,,' -} - diff --git a/werc/apps/xibit/details.tpl b/werc/apps/xibit/details.tpl deleted file mode 100644 index df08451..0000000 --- a/werc/apps/xibit/details.tpl +++ /dev/null @@ -1,14 +0,0 @@ -
-
    -% for (pic in $xibit_pics) { -
  • - - - -% identify $xibit_urlroot/^$pic |awk '{print $4}' -
  • -% } -
-
diff --git a/werc/apps/xibit/image.tpl b/werc/apps/xibit/image.tpl deleted file mode 100644 index 0289fa1..0000000 --- a/werc/apps/xibit/image.tpl +++ /dev/null @@ -1,21 +0,0 @@ -
-% if ( ! ~ $#xibit_prevpic 0) { - Previous -% } -% if ( ! ~ $#xibit_nextpic 0 && ! ~ $#xibit_prevpic 0 ) { -/ -% } -% if ( ! ~ $#xibit_nextpic 0) { -Next -% } -
- - - -
-% if ( ! ~ $#xibit_caption_file 0) { -
-% md_handler $xibit_caption_file -
-% } -
diff --git a/werc/apps/xibit/license b/werc/apps/xibit/license deleted file mode 100644 index 7730ccc..0000000 --- a/werc/apps/xibit/license +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2009 John Soros - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/werc/apps/xibit/thumbs.tpl b/werc/apps/xibit/thumbs.tpl deleted file mode 100644 index 2b81d69..0000000 --- a/werc/apps/xibit/thumbs.tpl +++ /dev/null @@ -1,11 +0,0 @@ -% for (pic in $xibit_pics){ -% picnoext=`{echo $pic |sed 's,(.*)\..+$,\1,g'} -% if(! ~ $pic $xibit_img) { - - - -% } -% if not { -% template apps/xibit/image.tpl -% } -% } \ No newline at end of file diff --git a/werc/apps/xibit/xibit.css b/werc/apps/xibit/xibit.css deleted file mode 100644 index b83d8a9..0000000 --- a/werc/apps/xibit/xibit.css +++ /dev/null @@ -1,17 +0,0 @@ -.thumbs-index { - float: right; - clear: none; - white-space: nowrap; -} -.thumb { - clear: none; - width: auto; - height: auto; - padding: 5px; - border: 2px; - display: inline; -} -#main-img { - text-align: center; - clear: none; -} \ No newline at end of file diff --git a/werc/bin/aux/addwuser.rc b/werc/bin/aux/addwuser.rc deleted file mode 100755 index 0259485..0000000 --- a/werc/bin/aux/addwuser.rc +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/rc - -if(! ~ $#werc_root 0) - cd $werc_root - -fn usage { - if(! ~ $#* 0) - echo $0: $* >[1=2] - echo 'Usage:' $0 'user_name user_password [groups ...]' >[1=2] - exit usage -} - -if(! test -d etc/users/) - usage 'Run for root of werc installation or set $werc_root' - -user_name=$1 -shift -user_pass=$1 -shift -user_groups=$* - -if(~ $"user_name '' || ~ $"user_pass '') - usage - -mkdir etc/users/$user_name -mkpasswd $user_pass > etc/users/$user_name/password -htpasswd -b /etc/lighttpd/.htpasswd $user_name $user_pass - -if(! ~ $#user_groups 0) - for(g in $user_groups) { - mkdir -p etc/users/$g - echo $user_name >> etc/users/$g/members - } - diff --git a/werc/bin/aux/bpst.rc b/werc/bin/aux/bpst.rc deleted file mode 100755 index 54d31c2..0000000 --- a/werc/bin/aux/bpst.rc +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/rc - -path=( $PLAN9/bin $path ) -base=. - -if(~ $#user 0) - user=`{whoami} - -file=(); title=(); -bloguser=$user -while(! ~ $#* 0) { - switch($1) { - case -u - base=/gsoc/www/people/$user/blog/ - case -b - shift - base=$1 - case -f - shift - file=$1 - } - shift -} - -if(~ $"EDITOR '') - EDITOR=vi - -if(~ $#file 0 || ! test -f $file) { - file=/tmp/blogtmp.$pid - rm $file >[2]/dev/null - touch $file -} - -$EDITOR $file -aspell -c $file -rm $file.bak >[2]/dev/null - -fn mkbpost { - umask 002 # Let group write - bptext=$1 - if(! ~ $#2 0) - bpid=`{echo -n '-'^$"bpid | sed 's/'$forbidden_uri_chars'+/_/g; 1q'} - d=`{/bin/date +%F|sed 's,-,/,g'} - - ddir=$blagh_root^$d^'/' - n=`{ls $ddir >[2]/dev/null |wc -l} - - mkdir -p $ddir/$"n^$"bpid/ - { - # TODO: Enable metadata - #echo '* Posted:' `{date} - #if(! ~ $#logged_user 0) - # echo '* Author: '$logged_user - cat $bptext - }> $ddir/$"n^$"bpid/index.md -} - -forbidden_uri_chars='[^a-zA-Z0-9_+\-\/\.]' -blagh_root=$base - -if(test -s $file) - mkbpost $file -if not - echo Empty file! diff --git a/werc/bin/aux/gensitemaptxt.rc b/werc/bin/aux/gensitemaptxt.rc deleted file mode 100755 index a1b349d..0000000 --- a/werc/bin/aux/gensitemaptxt.rc +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/rc -# DEPRECATED: sitemap.tpl now generates and updates a sitemap.txt when requested, and is also more smart than this simplistic script. - -for(d in sites/*/) { -echo $d -9 du -a $d | awk '/\.(md|html)$/ { print $2 }; {}' | 9 sed -e 's/\.(md|html)$//' -e 's,/index$,/,' -e 's,^sites/,http://,' > $d/sitemap.txt - -if(! test -f $d/robots.txt) { - echo generating missing robots.txt for $d - echo $d|sed 's,sites/,Sitemap: http://,; s/$/sitemap.txt/;' > $d/robots.txt - cat $d/robots.txt -} - -} diff --git a/werc/bin/aux/runtsts.rc b/werc/bin/aux/runtsts.rc deleted file mode 100755 index b5b1df7..0000000 --- a/werc/bin/aux/runtsts.rc +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/rc - -tstdom='http://test.cat-v.org' - -cd sites/tst.cat-v.org - -tstfiles=`{du -a |awk '/\.tst$/ { print $2 }; {} ' | sed 's/^\.//; s/\.tst$//'} - -for(f in $tstfiles) { - ifs=' -' { tsts=`{cat ./$f.tst} } - - for(t in $tsts) { - echo tst $t - } -} diff --git a/werc/bin/cgilib.rc b/werc/bin/cgilib.rc deleted file mode 100755 index 4516bf9..0000000 --- a/werc/bin/cgilib.rc +++ /dev/null @@ -1,236 +0,0 @@ -# Useful CGI stuff - -fn dprint { echo $* >[1=2] } -fn dprintv { { for(v in $*) { echo -n $v^'#'^$#$v^'=' $$v '; ' }; echo } >[1=2] } -fn echo {if(! ~ $1 -n || ! ~ $2 '') /bin/echo $*} -fn escape_html { sed 's/&/\&/g; s//\>/g' $* } - -fn http_redirect { - if(~ $1 http://* https://*) - t=$1 - if not if(~ $1 /*) - t=$"base_url^$1 - if not - t=$"base_url^$"req_path^$1 - exec /bin/echo 'Status: '^$2^' -Location: '^$t^' - -' - exit -} -fn perm_redirect { http_redirect $1 '301 Moved Permanantly' } -fn post_redirect { http_redirect $1 '303 See Other' } - - -# Note: should check if content type is application/x-www-form-urlencoded? -# Should compare with http://www.shelldorado.com/scripts/cmds/urlgetopt.txt -fn load_post_args { - if(~ $REQUEST_METHOD POST && ~ $#post_args 0) { - ifs='& -' for(pair in `{cat}) { - ifs='=' { pair=`{echo -n $pair} } - n='post_arg_'^`{echo $pair(1)|nurldecode|tr -cd 'a-zA-Z0-9_'} - post_args=( $post_args $n ) - ifs=() { $n=`{echo -n $pair(2)|nurldecode|tr -d ' '} } - } - pair=() - } - if not - status='No POST or post args already loaded' -} -# Status is () if at least one arg is found. DEPRECATED: access vars directly. -fn get_post_args { - load_post_args - _status='No post arg matches' - for(n in $*) { - v=post_arg_$n - if(! ~ $#$v 0) { - $n=$$v - _status=() - } - } - status=$_status -} - -# This seems slightly improve performance, but might depend on httpd buffering behavior. -fn awk_buffer { - awk '{ - buf = buf $0"\n" - if(length(buf) > 1400) { - printf "%s", buf - buf = "" - } - } - END { printf "%s", buf }' -} - -fn nurldecode { urlencode -d || url_decode} # GROSS - -fn url_decode { -awk ' -BEGIN { - hextab ["0"] = 0; hextab ["8"] = 8; - hextab ["1"] = 1; hextab ["9"] = 9; - hextab ["2"] = 2; hextab ["A"] = hextab ["a"] = 10 - hextab ["3"] = 3; hextab ["B"] = hextab ["b"] = 11; - hextab ["4"] = 4; hextab ["C"] = hextab ["c"] = 12; - hextab ["5"] = 5; hextab ["D"] = hextab ["d"] = 13; - hextab ["6"] = 6; hextab ["E"] = hextab ["e"] = 14; - hextab ["7"] = 7; hextab ["F"] = hextab ["f"] = 15; -} -{ - decoded = "" - i = 1 - len = length ($0) - while ( i <= len ) { - c = substr ($0, i, 1) - if ( c == "%" ) { - if ( i+2 <= len ) { - c1 = substr ($0, i+1, 1) - c2 = substr ($0, i+2, 1) - if ( hextab [c1] == "" || hextab [c2] == "" ) { - print "WARNING: invalid hex encoding: %" c1 c2 | "cat >&2" - } else { - code = 0 + hextab [c1] * 16 + hextab [c2] + 0 - c = sprintf ("%c", code) - i = i + 2 - } - } else { - print "WARNING: invalid % encoding: " substr ($0, i, len - i) - } - } else if ( c == "+" ) { - c = " " - } - decoded = decoded c - ++i - } - printf "%s", decoded -} -' -} - -fn nurlencode { urlencode || url_encode } # GROSS - -fn url_encode { - awk ' - BEGIN { - # We assume an awk implementation that is just plain dumb. - # We will convert an character to its ASCII value with the - # table ord[], and produce two-digit hexadecimal output - # without the printf("%02X") feature. - - EOL = "%0A" # "end of line" string (encoded) - split ("1 2 3 4 5 6 7 8 9 A B C D E F", hextab, " ") - hextab [0] = 0 - for ( i=1; i<=255; ++i ) ord [ sprintf ("%c", i) "" ] = i + 0 - if ("'^$"EncodeEOL^'" == "yes") EncodeEOL = 1; else EncodeEOL = 0 - } - { - encoded = "" - for ( i=1; i<=length ($0); ++i ) { - c = substr ($0, i, 1) - if ( c ~ /[a-zA-Z0-9.-]/ ) { - encoded = encoded c # safe character - } else if ( c == " " ) { - encoded = encoded "+" # special handling - } else { - # unsafe character, encode it as a two-digit hex-number - lo = ord [c] % 16 - hi = int (ord [c] / 16); - encoded = encoded "%" hextab [hi] hextab [lo] - } - } - if ( EncodeEOL ) { - printf ("%s", encoded EOL) - } else { - print encoded - } - } - END { - #if ( EncodeEOL ) print "" - } -' $* -} - -# Cookies -fn set_cookie { - # TODO: should check input values more carefully - name=$1 - val=$2 - extraHttpHeaders=( $extraHttpHeaders 'Set-cookie: '^$"name^'='^$"val^'; path=/;' ) -} -fn get_cookie { - ifs=';' { co=`{echo $HTTP_COOKIE} } - - # XXX: we might be adding a trailing new line? - # The ' ?' is needed to deal with '; ' inter-cookie delimiter - { for(c in $co) echo $c } | sed -n 's/^ ?'$1'=//p' -} - - -fn static_file { - echo -n 'Content-Type: ' - select_mime $1 - echo - exec cat $1 -} - -fn select_mime { - m='text/plain' - if(~ $1 *.css) - m='text/css' - if not if(~ $1 *.ico) - m='image/x-icon' - if not if(~ $1 *.png) - m='image/png' - if not if(~ $1 *.jpg *.jpeg) - m='image/jpeg' - if not if(~ $1 *.gif) - m='image/gif' - if not if(~ $1 *.pdf) - m='application/pdf' - echo $m -} - -############################################## -# Generic rc programming helpers - -# Manage nested lists -fn ll_add { - _l=$1^_^$#$1 - $_l=$*(2-) - $1=( $$1 $_l ) -} -# Add to the head: dangerous if you shrink list by hand! -fn ll_addh { - _l=$1^_^$#$1 - $_l=$*(2-) - $1=( $_l $$1 ) -} - - -NEW_LINE=' -' - -# crop_text [max_lenght [ellipsis]] -# TODO: Option to crop only at word-delimiters. -fn crop_text { - m=512 - e='...' - if(! ~ $#1 0) - m=$1 - if(! ~ $#2 0) - e=$2 - - awk -v 'max='^$"m -v 'ellipsis='$e ' - { - nc += 1 + length; - if(nc > max) { - print substr($0, 1, nc - max) " " ellipsis - exit - } - print - }' -} - - diff --git a/werc/bin/contrib/fix-rc-scripts b/werc/bin/contrib/fix-rc-scripts deleted file mode 100755 index beb21c5..0000000 --- a/werc/bin/contrib/fix-rc-scripts +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/local/plan9/bin/rc - -# Fix rc shell scripts to find rc without launching env every time. -# Invoke with rc and plan9 versions of grep and ed in $PATH - -# If your system lacks which (e.g. some gnu/linux) -# substitute the full path to rc in this line: -rc=/usr/local/plan9/bin/rc -firstline='#!'$"rc - -if(~ $#* 0) files = * -if not files = $* - -myname = `{basename $0} - -for(file in $files) { - if(test -d $file) $0 $file/* - if not if(~ $file *$myname) {} - if not if(sed 1q $file | grep '^#!/.*[/ ]rc$' > /dev/null) { - { - echo 1c - echo $firstline - echo . - echo wq - } | ed $file > /dev/null - } -} diff --git a/werc/bin/contrib/hgweb.config b/werc/bin/contrib/hgweb.config deleted file mode 100755 index fba802b..0000000 --- a/werc/bin/contrib/hgweb.config +++ /dev/null @@ -1,12 +0,0 @@ -[web] -style = gitweb -allow_archive = bz2 - -#[paths] -#w9 = /gsoc/hg/w9/ - -[collections] -#allow_archive = bz2 zip -/gsoc/hg = /gsoc/hg/ -#/var/hg = /var/hg/ - diff --git a/werc/bin/contrib/hgwebdir.cgi b/werc/bin/contrib/hgwebdir.cgi deleted file mode 100755 index 5fe4b16..0000000 --- a/werc/bin/contrib/hgwebdir.cgi +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python -# -# An example CGI script to export multiple hgweb repos, edit as necessary - -# send python tracebacks to the browser if an error occurs: -import cgitb -cgitb.enable() - -# adjust python path if not a system-wide install: -#import sys -#sys.path.insert(0, "/path/to/python/lib") - -# If you'd like to serve pages with UTF-8 instead of your default -# locale charset, you can do so by uncommenting the following lines. -# Note that this will cause your .hgrc files to be interpreted in -# UTF-8 and all your repo files to be displayed using UTF-8. -# -#import os -#os.environ["HGENCODING"] = "UTF-8" - -from mercurial.hgweb.hgwebdir_mod import hgwebdir -from mercurial.hgweb.request import wsgiapplication -import mercurial.hgweb.wsgicgi as wsgicgi - -# The config file looks like this. You can have paths to individual -# repos, collections of repos in a directory tree, or both. -# -# [paths] -# virtual/path = /real/path -# virtual/path = /real/path -# -# [collections] -# /prefix/to/strip/off = /root/of/tree/full/of/repos -# -# collections example: say directory tree /foo contains repos /foo/bar, -# /foo/quux/baz. Give this config section: -# [collections] -# /foo = /foo -# Then repos will list as bar and quux/baz. -# -# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples -# or use a dictionary with entries like 'virtual/path': '/real/path' - -def make_web_app(): - return hgwebdir("hgweb.config") - -wsgicgi.launch(wsgiapplication(make_web_app)) diff --git a/werc/bin/contrib/markdown.pl b/werc/bin/contrib/markdown.pl deleted file mode 100755 index 3758a87..0000000 --- a/werc/bin/contrib/markdown.pl +++ /dev/null @@ -1,1447 +0,0 @@ -#!/usr/bin/env perl -# -# Markdown -- A text-to-HTML conversion tool for web writers -# -# Copyright (c) 2004 John Gruber -# -# -package Markdown; -require 5.006_000; -use strict; -use warnings; - -use Digest::MD5 qw(md5_hex); -use vars qw($VERSION); -$VERSION = '1.0.1'; -# Tue 14 Dec 2004 - -## Disabled; causes problems under Perl 5.6.1: -# use utf8; -# binmode( STDOUT, ":utf8" ); # c.f.: http://acis.openlib.org/dev/perl-unicode-struggle.html - - -# -# Global default settings: -# -my $g_empty_element_suffix = " />"; # Change to ">" for HTML output -my $g_tab_width = 4; - - -# -# Globals: -# - -# Regex to match balanced [brackets]. See Friedl's -# "Mastering Regular Expressions", 2nd Ed., pp. 328-331. -my $g_nested_brackets; -$g_nested_brackets = qr{ - (?> # Atomic matching - [^\[\]]+ # Anything other than brackets - | - \[ - (??{ $g_nested_brackets }) # Recursive set of nested brackets - \] - )* -}x; - - -# Table of hash values for escaped characters: -my %g_escape_table; -foreach my $char (split //, '\\`*_{}[]()>#+-.!') { - $g_escape_table{$char} = md5_hex($char); -} - - -# Global hashes, used by various utility routines -my %g_urls; -my %g_titles; -my %g_html_blocks; - -# Used to track when we're inside an ordered or unordered list -# (see _ProcessListItems() for details): -my $g_list_level = 0; - - -#### Blosxom plug-in interface ########################################## - -# Set $g_blosxom_use_meta to 1 to use Blosxom's meta plug-in to determine -# which posts Markdown should process, using a "meta-markup: markdown" -# header. If it's set to 0 (the default), Markdown will process all -# entries. -my $g_blosxom_use_meta = 0; - -sub start { 1; } -sub story { - my($pkg, $path, $filename, $story_ref, $title_ref, $body_ref) = @_; - - if ( (! $g_blosxom_use_meta) or - (defined($meta::markup) and ($meta::markup =~ /^\s*markdown\s*$/i)) - ){ - $$body_ref = Markdown($$body_ref); - } - 1; -} - - -#### Movable Type plug-in interface ##################################### -eval {require MT}; # Test to see if we're running in MT. -unless ($@) { - require MT; - import MT; - require MT::Template::Context; - import MT::Template::Context; - - eval {require MT::Plugin}; # Test to see if we're running >= MT 3.0. - unless ($@) { - require MT::Plugin; - import MT::Plugin; - my $plugin = new MT::Plugin({ - name => "Markdown", - description => "A plain-text-to-HTML formatting plugin. (Version: $VERSION)", - doc_link => 'http://daringfireball.net/projects/markdown/' - }); - MT->add_plugin( $plugin ); - } - - MT::Template::Context->add_container_tag(MarkdownOptions => sub { - my $ctx = shift; - my $args = shift; - my $builder = $ctx->stash('builder'); - my $tokens = $ctx->stash('tokens'); - - if (defined ($args->{'output'}) ) { - $ctx->stash('markdown_output', lc $args->{'output'}); - } - - defined (my $str = $builder->build($ctx, $tokens) ) - or return $ctx->error($builder->errstr); - $str; # return value - }); - - MT->add_text_filter('markdown' => { - label => 'Markdown', - docs => 'http://daringfireball.net/projects/markdown/', - on_format => sub { - my $text = shift; - my $ctx = shift; - my $raw = 0; - if (defined $ctx) { - my $output = $ctx->stash('markdown_output'); - if (defined $output && $output =~ m/^html/i) { - $g_empty_element_suffix = ">"; - $ctx->stash('markdown_output', ''); - } - elsif (defined $output && $output eq 'raw') { - $raw = 1; - $ctx->stash('markdown_output', ''); - } - else { - $raw = 0; - $g_empty_element_suffix = " />"; - } - } - $text = $raw ? $text : Markdown($text); - $text; - }, - }); - - # If SmartyPants is loaded, add a combo Markdown/SmartyPants text filter: - my $smartypants; - - { - no warnings "once"; - $smartypants = $MT::Template::Context::Global_filters{'smarty_pants'}; - } - - if ($smartypants) { - MT->add_text_filter('markdown_with_smartypants' => { - label => 'Markdown With SmartyPants', - docs => 'http://daringfireball.net/projects/markdown/', - on_format => sub { - my $text = shift; - my $ctx = shift; - if (defined $ctx) { - my $output = $ctx->stash('markdown_output'); - if (defined $output && $output eq 'html') { - $g_empty_element_suffix = ">"; - } - else { - $g_empty_element_suffix = " />"; - } - } - $text = Markdown($text); - $text = $smartypants->($text, '1'); - }, - }); - } -} -else { -#### BBEdit/command-line text filter interface ########################## -# Needs to be hidden from MT (and Blosxom when running in static mode). - - # We're only using $blosxom::version once; tell Perl not to warn us: - no warnings 'once'; - unless ( defined($blosxom::version) ) { - use warnings; - - #### Check for command-line switches: ################# - my %cli_opts; - use Getopt::Long; - Getopt::Long::Configure('pass_through'); - GetOptions(\%cli_opts, - 'version', - 'shortversion', - 'html4tags', - ); - if ($cli_opts{'version'}) { # Version info - print "\nThis is Markdown, version $VERSION.\n"; - print "Copyright 2004 John Gruber\n"; - print "http://daringfireball.net/projects/markdown/\n\n"; - exit 0; - } - if ($cli_opts{'shortversion'}) { # Just the version number string. - print $VERSION; - exit 0; - } - if ($cli_opts{'html4tags'}) { # Use HTML tag style instead of XHTML - $g_empty_element_suffix = ">"; - } - - - #### Process incoming text: ########################### - my $text; - { - local $/; # Slurp the whole file - $text = <>; - } - print Markdown($text); - } -} - - - -sub Markdown { -# -# Main function. The order in which other subs are called here is -# essential. Link and image substitutions need to happen before -# _EscapeSpecialChars(), so that any *'s or _'s in the -# and tags get encoded. -# - my $text = shift; - - # Clear the global hashes. If we don't clear these, you get conflicts - # from other articles when generating a page which contains more than - # one article (e.g. an index page that shows the N most recent - # articles): - %g_urls = (); - %g_titles = (); - %g_html_blocks = (); - - - # Standardize line endings: - $text =~ s{\r\n}{\n}g; # DOS to Unix - $text =~ s{\r}{\n}g; # Mac to Unix - - # Make sure $text ends with a couple of newlines: - $text .= "\n\n"; - - # Convert all tabs to spaces. - $text = _Detab($text); - - # Strip any lines consisting only of spaces and tabs. - # This makes subsequent regexen easier to write, because we can - # match consecutive blank lines with /\n+/ instead of something - # contorted like /[ \t]*\n+/ . - $text =~ s/^[ \t]+$//mg; - - # Turn block-level HTML blocks into hash entries - $text = _HashHTMLBlocks($text); - - # Strip link definitions, store in hashes. - $text = _StripLinkDefinitions($text); - - $text = _RunBlockGamut($text); - - $text = _UnescapeSpecialChars($text); - - return $text . "\n"; -} - - -sub _StripLinkDefinitions { -# -# Strips link definitions from text, stores the URLs and titles in -# hash references. -# - my $text = shift; - my $less_than_tab = $g_tab_width - 1; - - # Link defs are in the form: ^[id]: url "optional title" - while ($text =~ s{ - ^[ ]{0,$less_than_tab}\[(.+)\]: # id = $1 - [ \t]* - \n? # maybe *one* newline - [ \t]* - ? # url = $2 - [ \t]* - \n? # maybe one newline - [ \t]* - (?: - (?<=\s) # lookbehind for whitespace - ["(] - (.+?) # title = $3 - [")] - [ \t]* - )? # title is optional - (?:\n+|\Z) - } - {}mx) { - $g_urls{lc $1} = _EncodeAmpsAndAngles( $2 ); # Link IDs are case-insensitive - if ($3) { - $g_titles{lc $1} = $3; - $g_titles{lc $1} =~ s/"/"/g; - } - } - - return $text; -} - - -sub _HashHTMLBlocks { - my $text = shift; - my $less_than_tab = $g_tab_width - 1; - - # Hashify HTML blocks: - # We only want to do this for block-level HTML tags, such as headers, - # lists, and tables. That's because we still want to wrap

s around - # "paragraphs" that are wrapped in non-block-level tags, such as anchors, - # phrase emphasis, and spans. The list of tags we're looking for is - # hard-coded: - my $block_tags_a = qr/p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del/; - my $block_tags_b = qr/p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math/; - - # First, look for nested blocks, e.g.: - #

- #
- # tags for inner block must be indented. - #
- #
- # - # The outermost tags must start at the left margin for this to match, and - # the inner nested divs must be indented. - # We need to do this before the next, more liberal match, because the next - # match will start at the first `
` and stop at the first `
`. - $text =~ s{ - ( # save in $1 - ^ # start of line (with /m) - <($block_tags_a) # start tag = $2 - \b # word break - (.*\n)*? # any number of lines, minimally matching - # the matching end tag - [ \t]* # trailing spaces/tabs - (?=\n+|\Z) # followed by a newline or end of document - ) - }{ - my $key = md5_hex($1); - $g_html_blocks{$key} = $1; - "\n\n" . $key . "\n\n"; - }egmx; - - - # - # Now match more liberally, simply from `\n` to `\n` - # - $text =~ s{ - ( # save in $1 - ^ # start of line (with /m) - <($block_tags_b) # start tag = $2 - \b # word break - (.*\n)*? # any number of lines, minimally matching - .* # the matching end tag - [ \t]* # trailing spaces/tabs - (?=\n+|\Z) # followed by a newline or end of document - ) - }{ - my $key = md5_hex($1); - $g_html_blocks{$key} = $1; - "\n\n" . $key . "\n\n"; - }egmx; - # Special case just for
. It was easier to make a special case than - # to make the other regex more complicated. - $text =~ s{ - (?: - (?<=\n\n) # Starting after a blank line - | # or - \A\n? # the beginning of the doc - ) - ( # save in $1 - [ ]{0,$less_than_tab} - <(hr) # start tag = $2 - \b # word break - ([^<>])*? # - /?> # the matching end tag - [ \t]* - (?=\n{2,}|\Z) # followed by a blank line or end of document - ) - }{ - my $key = md5_hex($1); - $g_html_blocks{$key} = $1; - "\n\n" . $key . "\n\n"; - }egx; - - # Special case for standalone HTML comments: - $text =~ s{ - (?: - (?<=\n\n) # Starting after a blank line - | # or - \A\n? # the beginning of the doc - ) - ( # save in $1 - [ ]{0,$less_than_tab} - (?s: - - ) - [ \t]* - (?=\n{2,}|\Z) # followed by a blank line or end of document - ) - }{ - my $key = md5_hex($1); - $g_html_blocks{$key} = $1; - "\n\n" . $key . "\n\n"; - }egx; - - - return $text; -} - - -sub _RunBlockGamut { -# -# These are all the transformations that form block-level -# tags like paragraphs, headers, and list items. -# - my $text = shift; - - $text = _DoHeaders($text); - - # Do Horizontal Rules: - $text =~ s{^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$}{\n tags around block-level tags. - $text = _HashHTMLBlocks($text); - - $text = _FormParagraphs($text); - - return $text; -} - - -sub _RunSpanGamut { -# -# These are all the transformations that occur *within* block-level -# tags like paragraphs, headers, and list items. -# - my $text = shift; - - $text = _DoCodeSpans($text); - - $text = _EscapeSpecialChars($text); - - # Process anchor and image tags. Images must come first, - # because ![foo][f] looks like an anchor. - $text = _DoImages($text); - $text = _DoAnchors($text); - - # Make links out of things like `` - # Must come after _DoAnchors(), because you can use < and > - # delimiters in inline links like [this](). - $text = _DoAutoLinks($text); - - $text = _EncodeAmpsAndAngles($text); - - $text = _DoItalicsAndBold($text); - - # Do hard breaks: - $text =~ s/ {2,}\n/ or tags. -# my $tags_to_skip = qr!<(/?)(?:pre|code|kbd|script|math)[\s>]!; - - foreach my $cur_token (@$tokens) { - if ($cur_token->[0] eq "tag") { - # Within tags, encode * and _ so they don't conflict - # with their use in Markdown for italics and strong. - # We're replacing each such character with its - # corresponding MD5 checksum value; this is likely - # overkill, but it should prevent us from colliding - # with the escape values by accident. - $cur_token->[1] =~ s! \* !$g_escape_table{'*'}!gx; - $cur_token->[1] =~ s! _ !$g_escape_table{'_'}!gx; - $text .= $cur_token->[1]; - } else { - my $t = $cur_token->[1]; - $t = _EncodeBackslashEscapes($t); - $text .= $t; - } - } - return $text; -} - - -sub _DoAnchors { -# -# Turn Markdown link shortcuts into XHTML
tags. -# - my $text = shift; - - # - # First, handle reference-style links: [link text] [id] - # - $text =~ s{ - ( # wrap whole match in $1 - \[ - ($g_nested_brackets) # link text = $2 - \] - - [ ]? # one optional space - (?:\n[ ]*)? # one optional newline followed by spaces - - \[ - (.*?) # id = $3 - \] - ) - }{ - my $result; - my $whole_match = $1; - my $link_text = $2; - my $link_id = lc $3; - - if ($link_id eq "") { - $link_id = lc $link_text; # for shortcut links like [this][]. - } - - if (defined $g_urls{$link_id}) { - my $url = $g_urls{$link_id}; - $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid - $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. - $result = "? # href = $3 - [ \t]* - ( # $4 - (['"]) # quote char = $5 - (.*?) # Title = $6 - \5 # matching quote - )? # title is optional - \) - ) - }{ - my $result; - my $whole_match = $1; - my $link_text = $2; - my $url = $3; - my $title = $6; - - $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid - $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. - $result = " tags. -# - my $text = shift; - - # - # First, handle reference-style labeled images: ![alt text][id] - # - $text =~ s{ - ( # wrap whole match in $1 - !\[ - (.*?) # alt text = $2 - \] - - [ ]? # one optional space - (?:\n[ ]*)? # one optional newline followed by spaces - - \[ - (.*?) # id = $3 - \] - - ) - }{ - my $result; - my $whole_match = $1; - my $alt_text = $2; - my $link_id = lc $3; - - if ($link_id eq "") { - $link_id = lc $alt_text; # for shortcut links like ![this][]. - } - - $alt_text =~ s/"/"/g; - if (defined $g_urls{$link_id}) { - my $url = $g_urls{$link_id}; - $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid - $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. - $result = "\"$alt_text\"";? # src url = $3 - [ \t]* - ( # $4 - (['"]) # quote char = $5 - (.*?) # title = $6 - \5 # matching quote - [ \t]* - )? # title is optional - \) - ) - }{ - my $result; - my $whole_match = $1; - my $alt_text = $2; - my $url = $3; - my $title = ''; - if (defined($6)) { - $title = $6; - } - - $alt_text =~ s/"/"/g; - $title =~ s/"/"/g; - $url =~ s! \* !$g_escape_table{'*'}!gx; # We've got to encode these to avoid - $url =~ s! _ !$g_escape_table{'_'}!gx; # conflicting with italics/bold. - $result = "\"$alt_text\"";" . _RunSpanGamut($1) . "\n\n"; - }egmx; - - $text =~ s{ ^(.+)[ \t]*\n-+[ \t]*\n+ }{ - "

" . _RunSpanGamut($1) . "

\n\n"; - }egmx; - - - # atx-style headers: - # # Header 1 - # ## Header 2 - # ## Header 2 with closing hashes ## - # ... - # ###### Header 6 - # - $text =~ s{ - ^(\#{1,6}) # $1 = string of #'s - [ \t]* - (.+?) # $2 = Header text - [ \t]* - \#* # optional closing #'s (not counted) - \n+ - }{ - my $h_level = length($1); - "" . _RunSpanGamut($2) . "\n\n"; - }egmx; - - return $text; -} - - -sub _DoLists { -# -# Form HTML ordered (numbered) and unordered (bulleted) lists. -# - my $text = shift; - my $less_than_tab = $g_tab_width - 1; - - # Re-usable patterns to match list item bullets and number markers: - my $marker_ul = qr/[*+-]/; - my $marker_ol = qr/\d+[.]/; - my $marker_any = qr/(?:$marker_ul|$marker_ol)/; - - # Re-usable pattern to match any entirel ul or ol list: - my $whole_list = qr{ - ( # $1 = whole list - ( # $2 - [ ]{0,$less_than_tab} - (${marker_any}) # $3 = first list item marker - [ \t]+ - ) - (?s:.+?) - ( # $4 - \z - | - \n{2,} - (?=\S) - (?! # Negative lookahead for another list item marker - [ \t]* - ${marker_any}[ \t]+ - ) - ) - ) - }mx; - - # We use a different prefix before nested lists than top-level lists. - # See extended comment in _ProcessListItems(). - # - # Note: There's a bit of duplication here. My original implementation - # created a scalar regex pattern as the conditional result of the test on - # $g_list_level, and then only ran the $text =~ s{...}{...}egmx - # substitution once, using the scalar as the pattern. This worked, - # everywhere except when running under MT on my hosting account at Pair - # Networks. There, this caused all rebuilds to be killed by the reaper (or - # perhaps they crashed, but that seems incredibly unlikely given that the - # same script on the same server ran fine *except* under MT. I've spent - # more time trying to figure out why this is happening than I'd like to - # admit. My only guess, backed up by the fact that this workaround works, - # is that Perl optimizes the substition when it can figure out that the - # pattern will never change, and when this optimization isn't on, we run - # afoul of the reaper. Thus, the slightly redundant code to that uses two - # static s/// patterns rather than one conditional pattern. - - if ($g_list_level) { - $text =~ s{ - ^ - $whole_list - }{ - my $list = $1; - my $list_type = ($3 =~ m/$marker_ul/) ? "ul" : "ol"; - # Turn double returns into triple returns, so that we can make a - # paragraph for the last item in a list, if necessary: - $list =~ s/\n{2,}/\n\n\n/g; - my $result = _ProcessListItems($list, $marker_any); - $result = "<$list_type>\n" . $result . "\n"; - $result; - }egmx; - } - else { - $text =~ s{ - (?:(?<=\n\n)|\A\n?) - $whole_list - }{ - my $list = $1; - my $list_type = ($3 =~ m/$marker_ul/) ? "ul" : "ol"; - # Turn double returns into triple returns, so that we can make a - # paragraph for the last item in a list, if necessary: - $list =~ s/\n{2,}/\n\n\n/g; - my $result = _ProcessListItems($list, $marker_any); - $result = "<$list_type>\n" . $result . "\n"; - $result; - }egmx; - } - - - return $text; -} - - -sub _ProcessListItems { -# -# Process the contents of a single ordered or unordered list, splitting it -# into individual list items. -# - - my $list_str = shift; - my $marker_any = shift; - - - # The $g_list_level global keeps track of when we're inside a list. - # Each time we enter a list, we increment it; when we leave a list, - # we decrement. If it's zero, we're not in a list anymore. - # - # We do this because when we're not inside a list, we want to treat - # something like this: - # - # I recommend upgrading to version - # 8. Oops, now this line is treated - # as a sub-list. - # - # As a single paragraph, despite the fact that the second line starts - # with a digit-period-space sequence. - # - # Whereas when we're inside a list (or sub-list), that line will be - # treated as the start of a sub-list. What a kludge, huh? This is - # an aspect of Markdown's syntax that's hard to parse perfectly - # without resorting to mind-reading. Perhaps the solution is to - # change the syntax rules such that sub-lists must start with a - # starting cardinal number; e.g. "1." or "a.". - - $g_list_level++; - - # trim trailing blank lines: - $list_str =~ s/\n{2,}\z/\n/; - - - $list_str =~ s{ - (\n)? # leading line = $1 - (^[ \t]*) # leading whitespace = $2 - ($marker_any) [ \t]+ # list marker = $3 - ((?s:.+?) # list item text = $4 - (\n{1,2})) - (?= \n* (\z | \2 ($marker_any) [ \t]+)) - }{ - my $item = $4; - my $leading_line = $1; - my $leading_space = $2; - - if ($leading_line or ($item =~ m/\n{2,}/)) { - $item = _RunBlockGamut(_Outdent($item)); - } - else { - # Recursion for sub-lists: - $item = _DoLists(_Outdent($item)); - chomp $item; - $item = _RunSpanGamut($item); - } - - "
  • " . $item . "
  • \n"; - }egmx; - - $g_list_level--; - return $list_str; -} - - - -sub _DoCodeBlocks { -# -# Process Markdown `
    ` blocks.
    -#	
    -
    -	my $text = shift;
    -
    -	$text =~ s{
    -			(?:\n\n|\A)
    -			(	            # $1 = the code block -- one or more lines, starting with a space/tab
    -			  (?:
    -			    (?:[ ]{$g_tab_width} | \t)  # Lines must start with a tab or a tab-width of spaces
    -			    .*\n+
    -			  )+
    -			)
    -			((?=^[ ]{0,$g_tab_width}\S)|\Z)	# Lookahead for non-space at line-start, or end of doc
    -		}{
    -			my $codeblock = $1;
    -			my $result; # return value
    -
    -			$codeblock = _EncodeCode(_Outdent($codeblock));
    -			$codeblock = _Detab($codeblock);
    -			$codeblock =~ s/\A\n+//; # trim leading newlines
    -			$codeblock =~ s/\s+\z//; # trim trailing whitespace
    -
    -			$result = "\n\n
    " . $codeblock . "\n
    \n\n"; - - $result; - }egmx; - - return $text; -} - - -sub _DoCodeSpans { -# -# * Backtick quotes are used for spans. -# -# * You can use multiple backticks as the delimiters if you want to -# include literal backticks in the code span. So, this input: -# -# Just type ``foo `bar` baz`` at the prompt. -# -# Will translate to: -# -#

    Just type foo `bar` baz at the prompt.

    -# -# There's no arbitrary limit to the number of backticks you -# can use as delimters. If you need three consecutive backticks -# in your code, use four for delimiters, etc. -# -# * You can use spaces to get literal backticks at the edges: -# -# ... type `` `bar` `` ... -# -# Turns to: -# -# ... type `bar` ... -# - - my $text = shift; - - $text =~ s@ - (`+) # $1 = Opening run of ` - (.+?) # $2 = The code block - (?$c
    "; - @egsx; - - return $text; -} - - -sub _EncodeCode { -# -# Encode/escape certain characters inside Markdown code runs. -# The point is that in code, these characters are literals, -# and lose their special Markdown meanings. -# - local $_ = shift; - - # Encode all ampersands; HTML entities are not - # entities within a Markdown code span. - s/&/&/g; - - # Encode $'s, but only if we're running under Blosxom. - # (Blosxom interpolates Perl variables in article bodies.) - { - no warnings 'once'; - if (defined($blosxom::version)) { - s/\$/$/g; - } - } - - - # Do the angle bracket song and dance: - s! < !<!gx; - s! > !>!gx; - - # Now, escape characters that are magic in Markdown: - s! \* !$g_escape_table{'*'}!gx; - s! _ !$g_escape_table{'_'}!gx; - s! { !$g_escape_table{'{'}!gx; - s! } !$g_escape_table{'}'}!gx; - s! \[ !$g_escape_table{'['}!gx; - s! \] !$g_escape_table{']'}!gx; - s! \\ !$g_escape_table{'\\'}!gx; - - return $_; -} - - -sub _DoItalicsAndBold { - my $text = shift; - - # must go first: - $text =~ s{ (\*\*|__) (?=\S) (.+?[*_]*) (?<=\S) \1 } - {$2}gsx; - - $text =~ s{ (\*|_) (?=\S) (.+?) (?<=\S) \1 } - {$2}gsx; - - return $text; -} - - -sub _DoBlockQuotes { - my $text = shift; - - $text =~ s{ - ( # Wrap whole match in $1 - ( - ^[ \t]*>[ \t]? # '>' at the start of a line - .+\n # rest of the first line - (.+\n)* # subsequent consecutive lines - \n* # blanks - )+ - ) - }{ - my $bq = $1; - $bq =~ s/^[ \t]*>[ \t]?//gm; # trim one level of quoting - $bq =~ s/^[ \t]+$//mg; # trim whitespace-only lines - $bq = _RunBlockGamut($bq); # recurse - - $bq =~ s/^/ /g; - # These leading spaces screw with
     content, so we need to fix that:
    -			$bq =~ s{
    -					(\s*
    .+?
    ) - }{ - my $pre = $1; - $pre =~ s/^ //mg; - $pre; - }egsx; - - "
    \n$bq\n
    \n\n"; - }egmx; - - - return $text; -} - - -sub _FormParagraphs { -# -# Params: -# $text - string to process with html

    tags -# - my $text = shift; - - # Strip leading and trailing lines: - $text =~ s/\A\n+//; - $text =~ s/\n+\z//; - - my @grafs = split(/\n{2,}/, $text); - - # - # Wrap

    tags. - # - foreach (@grafs) { - unless (defined( $g_html_blocks{$_} )) { - $_ = _RunSpanGamut($_); - s/^([ \t]*)/

    /; - $_ .= "

    "; - } - } - - # - # Unhashify HTML blocks - # - foreach (@grafs) { - if (defined( $g_html_blocks{$_} )) { - $_ = $g_html_blocks{$_}; - } - } - - return join "\n\n", @grafs; -} - - -sub _EncodeAmpsAndAngles { -# Smart processing for ampersands and angle brackets that need to be encoded. - - my $text = shift; - - # Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin: - # http://bumppo.net/projects/amputator/ - $text =~ s/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/&/g; - - # Encode naked <'s - $text =~ s{<(?![a-z/?\$!])}{<}gi; - - return $text; -} - - -sub _EncodeBackslashEscapes { -# -# Parameter: String. -# Returns: The string, with after processing the following backslash -# escape sequences. -# - local $_ = shift; - - s! \\\\ !$g_escape_table{'\\'}!gx; # Must process escaped backslashes first. - s! \\` !$g_escape_table{'`'}!gx; - s! \\\* !$g_escape_table{'*'}!gx; - s! \\_ !$g_escape_table{'_'}!gx; - s! \\\{ !$g_escape_table{'{'}!gx; - s! \\\} !$g_escape_table{'}'}!gx; - s! \\\[ !$g_escape_table{'['}!gx; - s! \\\] !$g_escape_table{']'}!gx; - s! \\\( !$g_escape_table{'('}!gx; - s! \\\) !$g_escape_table{')'}!gx; - s! \\> !$g_escape_table{'>'}!gx; - s! \\\# !$g_escape_table{'#'}!gx; - s! \\\+ !$g_escape_table{'+'}!gx; - s! \\\- !$g_escape_table{'-'}!gx; - s! \\\. !$g_escape_table{'.'}!gx; - s{ \\! }{$g_escape_table{'!'}}gx; - - return $_; -} - - -sub _DoAutoLinks { - my $text = shift; - - $text =~ s{<((https?|ftp):[^'">\s]+)>}{
    $1}gi; - - # Email addresses: - $text =~ s{ - < - (?:mailto:)? - ( - [-.\w]+ - \@ - [-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+ - ) - > - }{ - _EncodeEmailAddress( _UnescapeSpecialChars($1) ); - }egix; - - return $text; -} - - -sub _EncodeEmailAddress { -# -# Input: an email address, e.g. "foo@example.com" -# -# Output: the email address as a mailto link, with each character -# of the address encoded as either a decimal or hex entity, in -# the hopes of foiling most address harvesting spam bots. E.g.: -# -# foo -# @example.com -# -# Based on a filter by Matthew Wickline, posted to the BBEdit-Talk -# mailing list: -# - - my $addr = shift; - - srand; - my @encode = ( - sub { '&#' . ord(shift) . ';' }, - sub { '&#x' . sprintf( "%X", ord(shift) ) . ';' }, - sub { shift }, - ); - - $addr = "mailto:" . $addr; - - $addr =~ s{(.)}{ - my $char = $1; - if ( $char eq '@' ) { - # this *must* be encoded. I insist. - $char = $encode[int rand 1]->($char); - } elsif ( $char ne ':' ) { - # leave ':' alone (to spot mailto: later) - my $r = rand; - # roughly 10% raw, 45% hex, 45% dec - $char = ( - $r > .9 ? $encode[2]->($char) : - $r < .45 ? $encode[1]->($char) : - $encode[0]->($char) - ); - } - $char; - }gex; - - $addr = qq{$addr}; - $addr =~ s{">.+?:}{">}; # strip the mailto: from the visible part - - return $addr; -} - - -sub _UnescapeSpecialChars { -# -# Swap back in all the special characters we've hidden. -# - my $text = shift; - - while( my($char, $hash) = each(%g_escape_table) ) { - $text =~ s/$hash/$char/g; - } - return $text; -} - - -sub _TokenizeHTML { -# -# Parameter: String containing HTML markup. -# Returns: Reference to an array of the tokens comprising the input -# string. Each token is either a tag (possibly with nested, -# tags contained therein, such as , or a -# run of text between tags. Each element of the array is a -# two-element array; the first is either 'tag' or 'text'; -# the second is the actual value. -# -# -# Derived from the _tokenize() subroutine from Brad Choate's MTRegex plugin. -# -# - - my $str = shift; - my $pos = 0; - my $len = length $str; - my @tokens; - - my $depth = 6; - my $nested_tags = join('|', ('(?:<[a-z/!$](?:[^<>]') x $depth) . (')*>)' x $depth); - my $match = qr/(?s: ) | # comment - (?s: <\? .*? \?> ) | # processing instruction - $nested_tags/ix; # nested tags - - while ($str =~ m/($match)/g) { - my $whole_tag = $1; - my $sec_start = pos $str; - my $tag_start = $sec_start - length $whole_tag; - if ($pos < $tag_start) { - push @tokens, ['text', substr($str, $pos, $tag_start - $pos)]; - } - push @tokens, ['tag', $whole_tag]; - $pos = pos $str; - } - push @tokens, ['text', substr($str, $pos, $len - $pos)] if $pos < $len; - \@tokens; -} - - -sub _Outdent { -# -# Remove one level of line-leading tabs or spaces -# - my $text = shift; - - $text =~ s/^(\t|[ ]{1,$g_tab_width})//gm; - return $text; -} - - -sub _Detab { -# -# Cribbed from a post by Bart Lateur: -# -# - my $text = shift; - - $text =~ s{(.*?)\t}{$1.(' ' x ($g_tab_width - length($1) % $g_tab_width))}ge; - return $text; -} - - -1; - -__END__ - - -=pod - -=head1 NAME - -B - - -=head1 SYNOPSIS - -B [ B<--html4tags> ] [ B<--version> ] [ B<-shortversion> ] - [ I ... ] - - -=head1 DESCRIPTION - -Markdown is a text-to-HTML filter; it translates an easy-to-read / -easy-to-write structured text format into HTML. Markdown's text format -is most similar to that of plain text email, and supports features such -as headers, *emphasis*, code blocks, blockquotes, and links. - -Markdown's syntax is designed not as a generic markup language, but -specifically to serve as a front-end to (X)HTML. You can use span-level -HTML tags anywhere in a Markdown document, and you can use block level -HTML tags (like
    and as well). - -For more information about Markdown's syntax, see: - - http://daringfireball.net/projects/markdown/ - - -=head1 OPTIONS - -Use "--" to end switch parsing. For example, to open a file named "-z", use: - - Markdown.pl -- -z - -=over 4 - - -=item B<--html4tags> - -Use HTML 4 style for empty element tags, e.g.: - -
    - -instead of Markdown's default XHTML style tags, e.g.: - -
    - - -=item B<-v>, B<--version> - -Display Markdown's version number and copyright information. - - -=item B<-s>, B<--shortversion> - -Display the short-form version number. - - -=back - - - -=head1 BUGS - -To file bug reports or feature requests (other than topics listed in the -Caveats section above) please send email to: - - support@daringfireball.net - -Please include with your report: (1) the example input; (2) the output -you expected; (3) the output Markdown actually produced. - - -=head1 VERSION HISTORY - -See the readme file for detailed release notes for this version. - -1.0.1 - 14 Dec 2004 - -1.0 - 28 Aug 2004 - - -=head1 AUTHOR - - John Gruber - http://daringfireball.net - - PHP port and other contributions by Michel Fortin - http://michelf.com - - -=head1 COPYRIGHT AND LICENSE - -Copyright (c) 2003-2004 John Gruber - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name "Markdown" nor the names of its contributors may - be used to endorse or promote products derived from this software - without specific prior written permission. - -This software is provided by the copyright holders and contributors "as -is" and any express or implied warranties, including, but not limited -to, the implied warranties of merchantability and fitness for a -particular purpose are disclaimed. In no event shall the copyright owner -or contributors be liable for any direct, indirect, incidental, special, -exemplary, or consequential damages (including, but not limited to, -procurement of substitute goods or services; loss of use, data, or -profits; or business interruption) however caused and on any theory of -liability, whether in contract, strict liability, or tort (including -negligence or otherwise) arising in any way out of the use of this -software, even if advised of the possibility of such damage. - -=cut diff --git a/werc/bin/contrib/md2html.awk b/werc/bin/contrib/md2html.awk deleted file mode 100755 index 81d1241..0000000 --- a/werc/bin/contrib/md2html.awk +++ /dev/null @@ -1,427 +0,0 @@ -#!/bin/awk -f -# -# by: Jesus Galan (yiyus) 2009 -# -# Usage: md2html.awk file.md > file.html -# See: http://4l77.com/src/md2html.awk - -function eschtml(t) { - gsub("&", "\\&", t); - gsub("<", "\\<", t); - return t; -} - -function oprint(t){ - if(nr == 0) - print t; - else - otext = otext "\n" t; -} - -function subref(id){ - for(; nr > 0 && sub("<<" id, ref[id], otext); nr--); - if(nr == 0 && otext) { - print otext; - otext = ""; - } -} - -function nextil(t) { - if(!match(t, /[`<&\[*_\\-]|(\!\[)/)) - return t; - t1 = substr(t, 1, RSTART - 1); - tag = substr(t, RSTART, RLENGTH); - t2 = substr(t, RSTART + RLENGTH); - if(ilcode && tag != "`") - return eschtml(t1 tag) nextil(t2); - # Backslash escaping - if(tag == "\\"){ - if(match(t2, /^[\\`*_{}\[\]()#+\-\.!]/)){ - tag = substr(t2, 1, 1); - t2 = substr(t2, 2); - } - return t1 tag nextil(t2); - } - # Dashes - if(tag == "-"){ - if(sub(/^-/, "", t2)) - tag = "—"; - return t1 tag nextil(t2); - } - # Inline Code - if(tag == "`"){ - if(sub(/^`/, "", t2)){ - if(!match(t2, /``/)) - return t1 "”" nextil(t2); - ilcode2 = !ilcode2; - } - else if(ilcode2) - return t1 tag nextil(t2); - tag = ""; - if(ilcode){ - t1 = eschtml(t1); - tag = ""; - } - ilcode = !ilcode; - return t1 tag nextil(t2); - } - if(tag == "<"){ - # Autolinks - if(match(t2, /^[^ ]+[\.@][^ ]+>/)){ - url = eschtml(substr(t2, 1, RLENGTH - 1)); - t2 = substr(t2, RLENGTH + 1); - linktext = url; - if(match(url, /@/) && !match(url, /^mailto:/)) - url = "mailto:" url; - return t1 "" linktext "" nextil(t2); - } - # Html tags - if(match(t2, /^[A-Za-z\/!][^>]*>/)){ - tag = tag substr(t2, RSTART, RLENGTH); - t2 = substr(t2, RLENGTH + 1); - return t1 tag nextil(t2); - } - return t1 "<" nextil(t2); - } - # Html special entities - if(tag == "&"){ - if(match(t2, /^#?[A-Za-z0-9]+;/)){ - tag = tag substr(t2, RSTART, RLENGTH); - t2 = substr(t2, RLENGTH + 1); - return t1 tag nextil(t2); - } - return t1 "&" nextil(t2); - } - # Images - if(tag == "!["){ - if(!match(t2, /(\[.*\])|(\(.*\))/)) - return t1 tag nextil(t2); - match(t2, /^[^\]]*/); - alt = substr(t2, 1, RLENGTH); - t2 = substr(t2, RLENGTH + 2); - if(match(t2, /^\(/)){ - # Inline - sub(/^\(/, "", t2); - match(t2, /^[^\)]+/); - url = eschtml(substr(t2, 1, RLENGTH)); - t2 = substr(t2, RLENGTH + 2); - title = ""; - if(match(url, /[ ]+\".*\"[ ]*$/)) { - title = substr(url, RSTART, RLENGTH); - url = substr(url, 1, RSTART - 1); - match(title, /\".*\"/); - title = " title=\"" substr(title, RSTART + 1, RLENGTH - 2) "\""; - } - if(match(url, /^<.*>$/)) - url = substr(url, 2, RLENGTH - 2); - return t1 "\""" nextil(t2); - } - else{ - # Referenced - sub(/^ ?\[/, "", t2); - id = alt; - if(match(t2, /^[^\]]+/)) - id = substr(t2, 1, RLENGTH); - t2 = substr(t2, RLENGTH + 2); - if(ref[id]) - r = ref[id]; - else{ - r = "<<" id; - nr++; - } - return t1 "\""" nextil(t2); - } - } - # Links - if(tag == "["){ - if(!match(t2, /(\[.*\])|(\(.*\))/)) - return t1 tag nextil(t2); - match(t2, /^[^\]]*(\[[^\]]*\][^\]]*)*/); - linktext = substr(t2, 1, RLENGTH); - t2 = substr(t2, RLENGTH + 2); - if(match(t2, /^\(/)){ - # Inline - match(t2, /^[^\)]+(\([^\)]+\)[^\)]*)*/); - url = substr(t2, 2, RLENGTH - 1); - pt2 = substr(t2, RLENGTH + 2); - title = ""; - if(match(url, /[ ]+\".*\"[ ]*$/)) { - title = substr(url, RSTART, RLENGTH); - url = substr(url, 1, RSTART - 1); - match(title, /\".*\"/); - title = " title=\"" substr(title, RSTART + 1, RLENGTH - 2) "\""; - } - if(match(url, /^<.*>$/)) - url = substr(url, 2, RLENGTH - 2); - url = eschtml(url); - return t1 "" nextil(linktext) "" nextil(pt2); - } - else{ - # Referenced - sub(/^ ?\[/, "", t2); - id = linktext; - if(match(t2, /^[^\]]+/)) - id = substr(t2, 1, RLENGTH); - t2 = substr(t2, RLENGTH + 2); - if(ref[id]) - r = ref[id]; - else{ - r = "<<" id; - nr++; - } - pt2 = t2; - return t1 "" nextil(linktext) "" nextil(pt2); - } - } - # Emphasis - if(match(tag, /[*_]/)){ - ntag = tag; - if(sub("^" tag, "", t2)){ - if(stag[ns] == tag && match(t2, "^" tag)) - t2 = tag t2; - else - ntag = tag tag - } - n = length(ntag); - tag = (n == 2) ? "strong" : "em"; - if(match(t1, / $/) && match(t2, /^ /)) - return t1 tag nextil(t2); - if(stag[ns] == ntag){ - tag = "/" tag; - ns--; - } - else - stag[++ns] = ntag; - tag = "<" tag ">"; - return t1 tag nextil(t2); - } -} - -function inline(t) { - ilcode = 0; - ilcode2 = 0; - ns = 0; - - return nextil(t); -} - -function printp(tag) { - if(!match(text, /^[ ]*$/)){ - text = inline(text); - if(tag != "") - oprint("<" tag ">" text ""); - else - oprint(text); - } - text = ""; -} - -BEGIN { - blank = 0; - code = 0; - hr = 0; - html = 0; - nl = 0; - nr = 0; - otext = ""; - text = ""; - par = "p"; -} - -# References -!code && /^ *\[[^\]]*\]:[ ]+/ { - sub(/^ *\[/, ""); - match($0, /\]/); - id = substr($0, 1, RSTART - 1); - sub(id "\\]:[ ]+", ""); - title = ""; - if(match($0, /\".*\"$/)) - title = "\" title=\"" substr($0, RSTART + 1, RLENGTH - 2); - sub(/[ ]+\".*\"$/, ""); - url = eschtml($0); - ref[id] = url title; - - subref(id); - next; -} - -# html -!html && /^<(address|blockquote|center|dir|div|dl|fieldset|form|h[1-6r]|\ -isindex|menu|noframes|noscript|ol|p|pre|table|ul|!--)/ { - if(code) - oprint(""); - for(; !text && block[nl] == "blockquote"; nl--) - oprint(""); - match($0, /^<(address|blockquote|center|dir|div|dl|fieldset|form|h[1-6r]|\ - isindex|menu|noframes|noscript|ol|p|pre|table|ul|!--)/); - htag = substr($0, 2, RLENGTH - 1); - if(!match($0, "(<\\/" htag ">)|((^
    $)")) - html = 1; - if(html && match($0, /^
    $/ || -(hr && />$/)) { - html = 0; - hr = 0; - oprint($0); - next; -} - -html { - oprint($0); - next; -} - -# List and quote blocks - -# Remove indentation -{ - for(nnl = 0; nnl < nl; nnl++) - if((match(block[nnl + 1], /[ou]l/) && !sub(/^( | )/, "")) || \ - (block[nnl + 1] == "blockquote" && !sub(/^> ?/, ""))) - break; -} -nnl < nl && !blank && text && ! /^ ? ? ?([*+-]|([0-9]+\.)+)( +| )/ { nnl = nl; } -# Quote blocks -{ - while(sub(/^> /, "")) - nblock[++nnl] = "blockquote"; -} -# Horizontal rules -{ hr = 0; } -(blank || (!text && !code)) && /^ ? ? ?([-*_][ ]*)([-*_][ ]*)([-*_][ ]*)+$/ { - if(code){ - oprint(""); - code = 0; - } - blank = 0; - nnl = 0; - hr = 1; -} -# List items -block[nl] ~ /[ou]l/ && /^$/ { - blank = 1; - next; -} -{ newli = 0; } -!hr && (nnl != nl || !text || block[nl] ~ /[ou]l/) && /^ ? ? ?[*+-]( +| )/ { - sub(/^ ? ? ?[*+-]( +| )/, ""); - nnl++; - nblock[nnl] = "ul"; - newli = 1; -} -(nnl != nl || !text || block[nl] ~ /[ou]l/) && /^ ? ? ?([0-9]+\.)+( +| )/ { - sub(/^ ? ? ?([0-9]+\.)+( +| )/, ""); - nnl++; - nblock[nnl] = "ol"; - newli = 1; -} -newli { - if(blank && nnl == nl && !par) - par = "p"; - blank = 0; - printp(par); - if(nnl == nl && block[nl] == nblock[nl]) - oprint("
  • "); -} -blank && ! /^$/ { - if(match(block[nnl], /[ou]l/) && !par) - par = "p"; - printp(par); - par = "p"; - blank = 0; -} - -# Close old blocks and open new ones -nnl != nl || nblock[nl] != block[nl] { - if(code){ - oprint(""); - code = 0; - } - printp(par); - b = (nnl > nl) ? nblock[nnl] : block[nnl]; - par = (match(b, /[ou]l/)) ? "" : "p"; -} -nnl < nl || (nnl == nl && nblock[nl] != block[nl]) { - for(; nl > nnl || (nnl == nl && pblock[nl] != block[nl]); nl--){ - if(match(block[nl], /[ou]l/)) - oprint("
  • "); - oprint(""); - } -} -nnl > nl { - for(; nl < nnl; nl++){ - block[nl + 1] = nblock[nl + 1]; - oprint("<" block[nl + 1] ">"); - if(match(block[nl + 1], /[ou]l/)) - oprint("
  • "); - } -} -hr { - oprint("
    "); - next; -} - -# Code blocks -code && /^$/ { - if(blanK) - oprint(""); - blank = 1; - next; -} -!text && sub(/^( | )/, "") { - if(blanK) - oprint(""); - blank = 0; - if(!code) - oprint("
    ");
    -	code = 1;
    -	$0 = eschtml($0);
    -	oprint($0);
    -	next;
    -}
    -code {
    -	oprint("
    "); - code = 0; -} - -# Setex-style Headers -text && /^=+$/ {printp("h1"); next;} -text && /^-+$/ {printp("h2"); next;} - -# Atx-Style headers -/^#+/ && (!newli || par=="p" || /^##/) { - for(n = 0; n < 6 && sub(/^# */, ""); n++) - sub(/#$/, ""); - par = "h" n; -} - -# Paragraph -/^$/ { - printp(par); - par = "p"; - next; -} - -# Add text -{ text = (text ? text " " : "") $0; } - -END { - if(code){ - oprint(""); - code = 0; - } - printp(par); - for(; nl > 0; nl--){ - if(match(block[nl], /[ou]l/)) - oprint("
  • "); - oprint(""); - } - gsub(/<<[^\"]*/, "", otext); - print(otext); -} diff --git a/werc/bin/contrib/rc-httpd/handlers/authorize b/werc/bin/contrib/rc-httpd/handlers/authorize deleted file mode 100755 index ea4db3e..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/authorize +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/rc -if(~ $REMOTE_USER ''){ - extra_headers=($extra_headers 'WWW-Authenticate: Basic realm="'$"SERVER_NAME'"') - error 401 - exit -} diff --git a/werc/bin/contrib/rc-httpd/handlers/cgi b/werc/bin/contrib/rc-httpd/handlers/cgi deleted file mode 100755 index 2c9a9b9..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/cgi +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/rc -fn filter_headers{ - response=(200 OK) - lines='' - done=false - while(~ $done false){ - line=`{getline} - head=`{echo $line | awk '{print tolower($1)}'} - if(~ $head status:*) - response=`{echo $line | awk '{$1="" ; print}'} - if not if(~ $line '') - done=true - if not - lines=$"lines^$"line^$cr^' -' - } - echo 'HTTP/1.1' $"response^$cr - echo -n $"lines - do_log $response(1) -} - -fn run_cgi { - path=$cgi_path exec $"cgi_bin $params || echo 'Status: 500' -} - -cgi_bin=$1 -cgi_dir=. -if(! ~ $#* 1) - cgi_dir=$*($#*) -if not if(~ $"cgi_bin /*){ - cgi_dir=`{basename -d $"cgi_bin} - cgi_dir=$"cgi_dir -} -if(! ~ $"cgi_bin */*) - cgi_bin=./$"cgi_bin -if(! builtin cd $"cgi_dir >[2]/dev/null || ! test -x $"cgi_bin){ - error 500 - exit -} - -run_cgi | { - filter_headers - emit_extra_headers - echo $cr - exec cat -} diff --git a/werc/bin/contrib/rc-httpd/handlers/dir-index b/werc/bin/contrib/rc-httpd/handlers/dir-index deleted file mode 100755 index 00ff8ce..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/dir-index +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/rc -PATH_INFO=`{echo $PATH_INFO | urldecode.awk} -full_path=$"FS_ROOT^$"PATH_INFO -full_path=$"full_path -if(! test -d $full_path){ - error 404 - exit -} -if(! test -r $full_path -x $full_path){ - error 503 - exit -} -do_log 200 -builtin cd $full_path -if(~ $"NOINDEXFILE ^ $"NOINDEX ''){ - ifile=index.htm* - if(! ~ $ifile(1) *'*'){ - PATH_INFO=$ifile(1) - FS_ROOT='' - exec serve-static - } -} -title=`{echo $SITE_TITLE | sed s,%s,^$"PATH_INFO^,} -title=$"title -lso=() -switch($2){ -case size - # ls has no option to sort by size - # could pipe it through sort, I suppose -case date - lso=-t -} -echo 'HTTP/1.1 200 OK'^$cr -emit_extra_headers -echo 'Content-type: text/html'^$cr -echo $cr -echo ' - -'^$title^' - - -' -echo '

    '^$title^'

    ' -if(! ~ $PATH_INFO /) - echo 'Parent directory' -echo '
    ' -ls -lQ $lso | awk ' -function urlencode(loc){ - # very minimal encoding, just enough for our static-file purposes - url=loc - gsub("%", "%25", url) # this one first! - gsub("\\$", "%24", url) - gsub("&", "%26", url) - gsub("\\+", "%2B", url) - gsub("\\?", "%3F", url) - gsub(" ", "%20", url) - gsub("\"", "%22", url) - gsub("#", "%23", url) - return url -} -function hrsize(size){ - if(size > 1073741824) return sprintf("%.1fGB", size/1073741824) - if(size > 10485760) return sprintf("%iMB", size/1048576) - if(size > 1048576) return sprintf("%.1fMB", size/1048576) - if(size > 10240) return sprintf("%iKB", size/1024) - if(size > 1024) return sprintf("%.1fKB", size/1024) - return sprintf("%iB", size) -} -/^(-|a)/ { - print "" - print "" - print "" - print "" - print "" - $1="" ; $2="" ; $3="" ; $4="" ; $5="" ; $6="" ; $7="" ; $8="" ; $9="" - sub("^ *?", "") - print "" - print "" - $0="" -} -/^d/ { - print "" - print "" - print "" - print "" - print "" - $1="" ; $2="" ; $3="" ; $4="" ; $5="" ; $6="" ; $7="" ; $8="" ; $9="" - sub("^ *?", "") - print "" - print "" -}' -echo '
    "hrsize($6)""$7""$8""$9""$0"
    "$7""$8""$9""$0"/
    - - -' diff --git a/werc/bin/contrib/rc-httpd/handlers/error b/werc/bin/contrib/rc-httpd/handlers/error deleted file mode 100755 index 282d870..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/error +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/rc -# DO NOT make this script callable directly from the web! -fn do_error{ - echo 'HTTP/1.1 '^$1^$cr - emit_extra_headers - echo 'Content-type: text/html'^$cr - echo $cr - echo ' - -'^$1^' - - -

    '^$1^'

    ' - echo $2 - echo '

    rc-httpd at' $SERVER_NAME '' - echo ' - - - ' -} - -fn 401{ - do_error '401 Unauthorized' \ - 'The requested path '^$"location^' requires authorization.' -} - -fn 404{ - do_error '404 Not Found' \ - 'The requested path '^$"location^' was not found on this server.' -} - -fn 500{ - do_error '500 Internal Server Error' \ - 'The server has encountered an internal misconfiguration and is unable to satisfy your request.' -} - -fn 503{ - do_error '503 Forbidden' \ - 'You do not have permission to access '^$"location^' on this server.' -} - -do_log $1 -$1 diff --git a/werc/bin/contrib/rc-httpd/handlers/redirect b/werc/bin/contrib/rc-httpd/handlers/redirect deleted file mode 100755 index e223091..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/redirect +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/rc -if(~ $#2 0){ - error 500 - exit -} -switch($1){ -case perm* - do_log 301 - echo 'HTTP/1.1 301 Moved Permanently'^$cr -case temp* - do_log 302 - echo 'HTTP/1.1 302 Moved Temporarily'^$cr -case seeother - do_log 303 - echo 'HTTP/1.1 303 See Other'^$cr -case * - error 500 - exit -} -echo 'Location: ' ^ $2 ^ $cr -emit_extra_headers -echo 'Content-type: text/html'^$cr -echo $cr -echo '' -if(~ $#3 0) - echo 'Browser did not accept redirect.' -if not - echo $3 -echo 'Click here' -echo '' diff --git a/werc/bin/contrib/rc-httpd/handlers/serve-static b/werc/bin/contrib/rc-httpd/handlers/serve-static deleted file mode 100755 index 00cc70a..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/serve-static +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/rc -full_path=`{echo $"FS_ROOT^$"PATH_INFO | urldecode.awk} -full_path=$"full_path -if(~ $full_path */) - error 503 -if(test -d $full_path){ - redirect perm $"location^'/' \ - 'URL not quite right, and browser did not accept redirect.' - exit -} -if(! test -e $full_path){ - error 404 - exit -} -if(! test -r $full_path){ - error 503 - exit -} -do_log 200 -switch($full_path){ -case *.html *.htm - type=text/html -case *.css - type=text/css -case *.txt - type='text/plain; charset=utf-8' -case *.jpg *.jpeg - type=image/jpeg -case *.gif - type=image/gif -case *.png - type=image/png -case * - type=`{file -m $full_path || file -i $full_path} # GROSS -} -max_age=3600 # 1 hour -echo 'HTTP/1.1 200 OK'^$cr -emit_extra_headers -echo 'Content-type: '^$type^'; charset=utf-8'^$cr -echo 'Content-length: '^`{ls -l $full_path | awk '{print $6}'} -echo 'Cache-control: max-age='^$max_age^$cr -echo $cr -exec cat $full_path diff --git a/werc/bin/contrib/rc-httpd/handlers/static-or-cgi b/werc/bin/contrib/rc-httpd/handlers/static-or-cgi deleted file mode 100755 index 4d8a2d4..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/static-or-cgi +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/rc -cgiargs=$* - -fn error{ - if(~ $1 404) - exec cgi $cgiargs - if not - $rc_httpd_dir/handlers/error $1 -} - -if(~ $location */) - exec cgi $cgiargs -if not - exec serve-static diff --git a/werc/bin/contrib/rc-httpd/handlers/static-or-index b/werc/bin/contrib/rc-httpd/handlers/static-or-index deleted file mode 100755 index f0904f8..0000000 --- a/werc/bin/contrib/rc-httpd/handlers/static-or-index +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/rc -if(~ $PATH_INFO */) - exec dir-index $params -if not - exec serve-static diff --git a/werc/bin/contrib/rc-httpd/lib/urldecode.awk b/werc/bin/contrib/rc-httpd/lib/urldecode.awk deleted file mode 100755 index 1dadd00..0000000 --- a/werc/bin/contrib/rc-httpd/lib/urldecode.awk +++ /dev/null @@ -1,39 +0,0 @@ -# taken from werc -BEGIN { - hextab ["0"] = 0; hextab ["8"] = 8; - hextab ["1"] = 1; hextab ["9"] = 9; - hextab ["2"] = 2; hextab ["A"] = hextab ["a"] = 10 - hextab ["3"] = 3; hextab ["B"] = hextab ["b"] = 11; - hextab ["4"] = 4; hextab ["C"] = hextab ["c"] = 12; - hextab ["5"] = 5; hextab ["D"] = hextab ["d"] = 13; - hextab ["6"] = 6; hextab ["E"] = hextab ["e"] = 14; - hextab ["7"] = 7; hextab ["F"] = hextab ["f"] = 15; -} -{ - decoded = "" - i = 1 - len = length ($0) - while ( i <= len ) { - c = substr ($0, i, 1) - if ( c == "%" ) { - if ( i+2 <= len ) { - c1 = substr ($0, i+1, 1) - c2 = substr ($0, i+2, 1) - if ( hextab [c1] == "" || hextab [c2] == "" ) { - print "WARNING: invalid hex encoding: %" c1 c2 | "cat >&2" - } else { - code = 0 + hextab [c1] * 16 + hextab [c2] + 0 - c = sprintf ("%c", code) - i = i + 2 - } - } else { - print "WARNING: invalid % encoding: " substr ($0, i, len - i) - } - } else if ( c == "+" ) { - c = " " - } - decoded = decoded c - ++i - } - printf "%s", decoded -} diff --git a/werc/bin/contrib/rc-httpd/rc-httpd b/werc/bin/contrib/rc-httpd/rc-httpd deleted file mode 100755 index ff064f2..0000000 --- a/werc/bin/contrib/rc-httpd/rc-httpd +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/rc -rc_httpd_dir=/home/sl/www/werc/bin/contrib/rc-httpd -libdir = $rc_httpd_dir/lib -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= - -fn do_log{ - echo `{date} :: $SERVER_NAME :: $request :: \ - $HTTP_USER_AGENT :: $1 :: $HTTP_REFERER >[1=2] -} - -fn emit_extra_headers{ - for(header in $extra_headers) - echo $"header^$cr -} - -fn getline{ read | sed 's/'^$"cr^'$//g' } - -fn terminate{ - echo `{date} connection terminated >[1=2] - exit terminate -} - -fn trim_input{ dd -bs 1 -count $CONTENT_LENGTH } - -request=`{getline} -if(~ $#request 0) - terminate -REQUEST_METHOD=$request(1) -REQUEST_URI=$request(2) -reqlines='' -HTTP_COOKIE='' -REMOTE_USER='' -done=false -chunked=no -while(~ $"done false){ - line=`{getline} - if(~ $#line 0) - done=true - reqlines=$"reqlines$"line' -' - h=`{echo $line | awk '{print tolower($1)}'} - switch($h){ - case '' - done=true - case host: - SERVER_NAME=$line(2) - case referer: - HTTP_REFERER=$line(2) - case user-agent: - HTTP_USER_AGENT=`{echo $line | sed 's;[^:]+:[ ]+;;'} - case content-length: - CONTENT_LENGTH=$line(2) - case content-type: - CONTENT_TYPE=$line(2) - case cookie: - cookie=`{echo $line | sed 's;^[^:]+:[ ]*;;'} - HTTP_COOKIE=$"HTTP_COOKIE^$"cookie^'; ' - case authorization: - REMOTE_USER=`{auth/httpauth $line(3)} - case transfer-encoding: - ~ $line(2) chunked && chunked=yes - } -} -if(~ $REQUEST_URI *://* //*){ - SERVER_NAME=`{echo $REQUEST_URI | sed ' - s;^[^:]+:;; - s;^//([^/]+).*;\1;'} - REQUEST_URI=`{echo $REQUEST_URI | sed ' - s;^[^:]+:;; - s;^//[^/]+/?;/;'} -} -QUERY_STRING=`{echo $REQUEST_URI | sed 's;[^?]*\??;;'} -params=`{echo $QUERY_STRING | sed 's;\+; ;g'} -location=`{echo $REQUEST_URI | sed 's;\?.*;;'} -location=`{echo $location | sed ' - s;[^/]+/\.\./;/;g - s;/\./;/;g - s;//+;/;g -'} -SERVER_NAME=`{echo $SERVER_NAME | sed 's;^(\[[^\]]+\]|[^:]+)\:([0-9]+)$;\1 \2;'} -if(~ $#SERVER_NAME 2){ - SERVER_PORT=$SERVER_NAME(2) - SERVER_NAME=$SERVER_NAME(1) -} -if(~ $REQUEST_METHOD (PUT POST)){ - if(! ~ $"CONTENT_LENGTH '') - trim_input | exec $rc_httpd_dir/select-handler - if not{ - if(~ $chunked yes){ - echo 'HTTP/1.1 411 Length required'^$cr - echo $cr - exit - } - exec $rc_httpd_dir/select-handler - } -} -if not - . $rc_httpd_dir/select-handler diff --git a/werc/bin/contrib/rc-httpd/select-handler b/werc/bin/contrib/rc-httpd/select-handler deleted file mode 100755 index ec819d4..0000000 --- a/werc/bin/contrib/rc-httpd/select-handler +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/rc -rfork n - -# Route requests to werc. -# Change paths to match your system. - -if(~ $SERVER_NAME 9base.werc.cat-v.org) - PLAN9=/usr/local/9base -if(~ $SERVER_NAME frontbase.werc.cat-v.org) - PLAN9=/usr/local/plan9front -if(~ $SERVER_NAME plan9port.werc.cat-v.org) - PLAN9=/usr/local/plan9 - -if(~ $SERVER_NAME *){ - PATH_INFO=$location - FS_ROOT=/home/sl/www/werc/sites/$SERVER_NAME - exec static-or-cgi /home/sl/www/werc/bin/werc.rc -} -if not - error 503 diff --git a/werc/bin/contrib/tcp80 b/werc/bin/contrib/tcp80 deleted file mode 100755 index ae111a0..0000000 --- a/werc/bin/contrib/tcp80 +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/rc -# For use with listen(8). -# Change paths to match your system. -# Eitdit rc-httpd/rc-httpd to match your system. -PLAN9=/usr/local/plan9 -PATH=($PATH /home/sl/www/werc/bin/contrib) -exec /home/sl/www/werc/bin/contrib/rc-httpd/rc-httpd >>[2]/var/log/rc-httpd diff --git a/werc/bin/contrib/urldecode.awk b/werc/bin/contrib/urldecode.awk deleted file mode 100755 index bd791e3..0000000 --- a/werc/bin/contrib/urldecode.awk +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/awk -f -BEGIN { - hextab ["0"] = 0; hextab ["8"] = 8; - hextab ["1"] = 1; hextab ["9"] = 9; - hextab ["2"] = 2; hextab ["A"] = hextab ["a"] = 10 - hextab ["3"] = 3; hextab ["B"] = hextab ["b"] = 11; - hextab ["4"] = 4; hextab ["C"] = hextab ["c"] = 12; - hextab ["5"] = 5; hextab ["D"] = hextab ["d"] = 13; - hextab ["6"] = 6; hextab ["E"] = hextab ["e"] = 14; - hextab ["7"] = 7; hextab ["F"] = hextab ["f"] = 15; -} -{ - decoded = "" - i = 1 - len = length ($0) - while ( i <= len ) { - c = substr ($0, i, 1) - if ( c == "%" ) { - if ( i+2 <= len ) { - c1 = substr ($0, i+1, 1) - c2 = substr ($0, i+2, 1) - if ( hextab [c1] == "" || hextab [c2] == "" ) { - print "WARNING: invalid hex encoding: %" c1 c2 | "cat >&2" - } else { - code = 0 + hextab [c1] * 16 + hextab [c2] + 0 - c = sprintf ("%c", code) - i = i + 2 - } - } else { - print "WARNING: invalid % encoding: " substr ($0, i, len - i) - } - } else if ( c == "+" ) { - c = " " - } - decoded = decoded c - ++i - } - print decoded -} diff --git a/werc/bin/contrib/urlencode.awk b/werc/bin/contrib/urlencode.awk deleted file mode 100755 index d4d354d..0000000 --- a/werc/bin/contrib/urlencode.awk +++ /dev/null @@ -1,126 +0,0 @@ -# Taken from http://www.shelldorado.com/scripts/cmds/urlencode -########################################################################## -# Title : urlencode - encode URL data -# Author : Heiner Steven (heiner.steven@odn.de) -# Date : 2000-03-15 -# Requires : awk -# Categories : File Conversion, WWW, CGI -# SCCS-Id. : @(#) urlencode 1.4 06/10/29 -########################################################################## -# Description -# Encode data according to -# RFC 1738: "Uniform Resource Locators (URL)" and -# RFC 1866: "Hypertext Markup Language - 2.0" (HTML) -# -# This encoding is used i.e. for the MIME type -# "application/x-www-form-urlencoded" -# -# Notes -# o The default behaviour is not to encode the line endings. This -# may not be what was intended, because the result will be -# multiple lines of output (which cannot be used in an URL or a -# HTTP "POST" request). If the desired output should be one -# line, use the "-l" option. -# -# o The "-l" option assumes, that the end-of-line is denoted by -# the character LF (ASCII 10). This is not true for Windows or -# Mac systems, where the end of a line is denoted by the two -# characters CR LF (ASCII 13 10). -# We use this for symmetry; data processed in the following way: -# cat | urlencode -l | urldecode -l -# should (and will) result in the original data -# -# o Large lines (or binary files) will break many AWK -# implementations. If you get the message -# awk: record `...' too long -# record number xxx -# consider using GNU AWK (gawk). -# -# o urlencode will always terminate it's output with an EOL -# character -# -# Thanks to Stefan Brozinski for pointing out a bug related to non-standard -# locales. -# -# See also -# urldecode -########################################################################## - -PN=`basename "$0"` # Program name -VER='1.4' - -: ${AWK=awk} - -Usage () { - echo >&2 "$PN - encode URL data, $VER -usage: $PN [-l] [file ...] - -l: encode line endings (result will be one line of output) - -The default is to encode each input line on its own." - exit 1 -} - -Msg () { - for MsgLine - do echo "$PN: $MsgLine" >&2 - done -} - -Fatal () { Msg "$@"; exit 1; } - -set -- `getopt hl "$@" 2>/dev/null` || Usage -[ $# -lt 1 ] && Usage # "getopt" detected an error - -EncodeEOL=no -while [ $# -gt 0 ] -do - case "$1" in - -l) EncodeEOL=yes;; - --) shift; break;; - -h) Usage;; - -*) Usage;; - *) break;; # First file name - esac - shift -done - -LANG=C export LANG -$AWK ' - BEGIN { - # We assume an awk implementation that is just plain dumb. - # We will convert an character to its ASCII value with the - # table ord[], and produce two-digit hexadecimal output - # without the printf("%02X") feature. - - EOL = "%0A" # "end of line" string (encoded) - split ("1 2 3 4 5 6 7 8 9 A B C D E F", hextab, " ") - hextab [0] = 0 - for ( i=1; i<=255; ++i ) ord [ sprintf ("%c", i) "" ] = i + 0 - if ("'"$EncodeEOL"'" == "yes") EncodeEOL = 1; else EncodeEOL = 0 - } - { - encoded = "" - for ( i=1; i<=length ($0); ++i ) { - c = substr ($0, i, 1) - if ( c ~ /[a-zA-Z0-9.-]/ ) { - encoded = encoded c # safe character - } else if ( c == " " ) { - encoded = encoded "+" # special handling - } else { - # unsafe character, encode it as a two-digit hex-number - lo = ord [c] % 16 - hi = int (ord [c] / 16); - encoded = encoded "%" hextab [hi] hextab [lo] - } - } - if ( EncodeEOL ) { - printf ("%s", encoded EOL) - } else { - print encoded - } - } - END { - #if ( EncodeEOL ) print "" - } -' "$@" - diff --git a/werc/bin/contrib/webserver.rc b/werc/bin/contrib/webserver.rc deleted file mode 100755 index 8044565..0000000 --- a/werc/bin/contrib/webserver.rc +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/rc - -# A web server in rc by maht -# Originally from http://www.proweb.co.uk/~matt/rc/webserver.rc - -ifs=' ' -request=`{sed 1q} - -url=$request(2) -file=`{echo $url | sed 's/http:\/\/[^\/]*//' | tr -d \012} - -if(test -d $file){ - file=$file ^'/index.html' -} -if(test -e $file) { - response='200' -} -if not { - response='404' - file='404.html' -} - -echo 'HTTP/1.1 ' ^$response -echo 'Date: ' `{date} -echo 'Server: rc shell' -echo 'Content-Length: ' `{cat $file | wc -c | tr -d ' '} -echo 'Content-Type: ' `{file -i $file | awk '{ print $2 }'} -echo 'Connection: close' -echo -cat $file diff --git a/werc/bin/corehandlers.rc b/werc/bin/corehandlers.rc deleted file mode 100755 index a43e5b9..0000000 --- a/werc/bin/corehandlers.rc +++ /dev/null @@ -1,157 +0,0 @@ -# Werc builtin handlers - -fn nav_tree { - if(! ~ $#sideBarNavTitle 0) - echo '

    '$"sideBarNavTitle':

    ' - # Ignore stderr, last path element might be a file that doesn't exist (eg., foo for foo.md) - # /./ to deal with p9p's ls failure to follow dir symlinks otherwise - ls -F $sitedir/./$req_paths_list >[2]/dev/null \ - | { - sed $dirfilter'/\/[^_.\/][^\/]*(\.(md|txt|html)|\/)$/!d; s!^'$sitedir'!!; '$dirclean - if(! ~ $#synth_paths 0) echo $synth_paths | tr ' ' $NEW_LINE - } | sort -u | awk -F/ ' - function p(x, y, s) { for(i=0; i < x-y; i+=1) print s } - BEGIN { lNF=2; print "
    • › home
    • " } - { - d = "" - if(match($0, "/$")) - d = "/" - sub("/$", "") # Strip trailing / for dirs so NF is consistent - - p(NF, lNF, "
      • ") - p(lNF, NF, "
    • ") - lNF = NF - - bname = $NF d - path = $0 d - gsub(/[\-_]/, " ", bname) - - # To avoid false matches add trailing / even for plain files to act as delimiter - pa = path - gsub(/[^\/]$/, "&/", pa) - - if(index(ENVIRON["req_path"] "/", pa) == 1) - print "
    • » " bname "
    • " - else - print "
    • " bname "
    • " - } - END { p(lNF, 2, "
    "); print "" }' -} - -fn link_bar { - if(~ $1 -t) { - echo '

    '$2'

    ' - shift; shift - } - echo '
      ' - while(! ~ $#* 0) { - echo '
    • - '$1'
    • ' - shift; shift - } - echo '
    ' -} - -fn md_handler { $formatter $1 } - -fn tpl_handler { template $* } - -fn html_handler { - # body states: 0 = no found, 2 = after , 1 = after , -1 = after - awk 'gsub(".*<[Bb][Oo][Dd][Yy][^>]*>", "") > 0 {body=2} - gsub("]*>.*", "") > 0 {print; body=body-1} - body==2 {print} - body==0 {buf=buf "\n" $0} - END {if(body<=0) {print buf}}' < $1 -} - -fn txt_handler { - # Note: Words are not broken, even if they are way beyond 82 chars long - echo '
    '
    -    sed 's//\>/g' < $1 | fmt -l 82 -j
    -    echo '
    ' -} - -fn dir_listing_handler { - d=`{basename -d $1} - if(~ $#d 0) - d='/' - echo $d|sed 's,.*//,,g; s,/$,,; s,/, / ,g; s,.*,

    &

      ,' - # Symlinks suck: '/.' forces ls to list the linked dir if $d is a symlink. - ls -F $dir_listing_ls_opts $sitedir$d/. | sed $dirfilter$dirclean' s,.*/([^/]+/?)$,
    • \1
    • ,' - echo '
    ' -} - -fn notices_handler { - for(type in notify_errors notify_notes notify_success) - for(n in $$type) - echo '
    '$"n'
    ' -} - -fn setup_handlers { - - if(test -f $local_path.md) { - local_file=$local_path.md - handler_body_main=(md_handler $local_file) - } - if not if(test -f $local_path.tpl) { - local_file=$local_path.tpl - handler_body_main=(tpl_handler $local_file) - } - if not if(test -f $local_path.html) { - local_file=$local_path.html - handler_body_main=(html_handler $local_file) - } - # Global tpl (eg sitemap.tpl), should take precedence over txt handler! - if not if(test -f tpl^$req_path^.tpl) - # XXX Should we set $local_file for global .tpls? - handler_body_main=(tpl_handler tpl^$req_path^.tpl) - if not if(test -f $local_path.txt) { - local_file=$local_path.txt - handler_body_main=(txt_handler $local_file) - } - - # XXX Should check that $enabled_apps exist in $werc_apps? - # XXX Should split init of apps that provide main handler (eg., blog) and apps that don't (eg., comments)? - if(! ~ $#enabled_apps 0) - for(a in $enabled_apps) - $a^'_init' - - if(! ~ $#handler_body_main 0) { - # WE ARE NOT DONE I WANT MY HEADERS - if(test -f $sitedir$req_path'_header.md') - ll_add handlers_body_head md_handler $sitedir$req_path'_header.md' - if(test -f $sitedir$req_path'_footer.md') - ll_add handlers_body_foot md_handler $sitedir$req_path'_footer.md' - } # We are done - # Dir listing - if not if(~ $local_path */index) { - handler_body_main=(dir_listing_handler $req_path) - if(test -f $sitedir$req_path'_header.md') - ll_add handlers_body_head md_handler $sitedir$req_path'_header.md' - if(test -f $sitedir$req_path'_footer.md') - ll_add handlers_body_foot md_handler $sitedir$req_path'_footer.md' - } - # Canonize explicit .html urls, the web server might handle this first! - if not if(~ $local_path *.html && test -f $local_path) - perm_redirect `{ echo $req_path|sed 's/.html$//' } - # Fallback static file handler - if not if(test -f $local_path) - static_file $local_path - if not if(~ $req_path /pub/* && test -f .$req_path) - static_file .$req_path - # File not found - if not - setup_404_handler -} - -# This function allows config files to define their own 404 handlers. -fn setup_404_handler { - handler_body_main=(tpl_handler `{get_lib_file 404.tpl}) - echo 'Status: 404 Not Found' - dprint 'NOT FOUND: '$SERVER_NAME^$"REQUEST_URI^' - '^$"HTTP_REFERER^' - '^$"HTTP_USER_AGENT -} - -fn run_handlers { for(h in $*) run_handler $$h } -fn run_handler { $*(1) $*(2-) } - - diff --git a/werc/bin/fltr_cache.rc b/werc/bin/fltr_cache.rc deleted file mode 100755 index 9394724..0000000 --- a/werc/bin/fltr_cache.rc +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/rc - -fn fltr_cache { - a=() - tmpf=() - - proc=$1 - shift - - if(~ $#* 0) { - tmpf=/tmp/fmttmp.$pid - f=$tmpf - score=`{{tee $tmpf || exit 1} | sha1sum} - } - if not { - f=$1 - if(~ $f */) { - score=`{du -an $f | sha1sum || exit 1} # XXX using -n(bytes) instead of -t(lastmod) because sitemap proc touches files in tree. - a=$f - f=/dev/null - } - if not { - score=`{sha1sum $f || exit 1} - score=$score(1) - } - } - cachedir=/tmp/fltr_cache/$score - mkdir -p $cachedir >[2]/dev/null - - if(test -s $cachedir/$proc) - cat $cachedir/$proc - if not - if($proc $a < $f | tee $cachedir/$pid) - mv $cachedir/$pid $cachedir/$proc - - rm $tmpf $cachedir/$pid >[2]/dev/null & -} diff --git a/werc/bin/template.awk b/werc/bin/template.awk deleted file mode 100755 index 8f02ebb..0000000 --- a/werc/bin/template.awk +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/awk -f -function pr(str) { - if(lastc !~ "[{(]") - gsub(/'/, "''", str) - printf "%s", str -} -function trans(c) { - printf "%s", end - - lastc = c - end = "\n" - if(c == "%") - end = "" - else if(c == "(") - printf "echo -n " - else if(c ~ "[})]") { - end = "'\n" - printf "echo -n '" - } -} - -BEGIN { - lastc = "{" - trans("}") -} -END { - print end -} - -/^%/ && $0 !~ /^%[{()}%]/ && lastc !~ /[({]/ { - trans("%") - print substr($0, 2) - next -} -{ - if(lastc == "%") - trans("}") - n = split($0, a, "%") - pr(a[1]) - for(i=2; i<=n; i++) { - c = substr(a[i], 1, 1) - rest = substr(a[i], 2) - - if((lastc !~ "[({]" && c ~ "[({]") || - (lastc == "{" && c == "}") || - (lastc == "(" && c == ")")) - trans(c) - else if(c == "%") - pr("%") - else - pr("%" c) - pr(rest) - } - pr("\n") -} diff --git a/werc/bin/werc.rc b/werc/bin/werc.rc deleted file mode 100755 index 2eafdcc..0000000 --- a/werc/bin/werc.rc +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/rc -. ./cgilib.rc -. ./werclib.rc -. ./wercconf.rc -. ./corehandlers.rc -. ./fltr_cache.rc -cd .. - -forbidden_uri_chars='[^a-zA-Z0-9_+\-\/\.,:]' -difs=$ifs # Used to restore default ifs when needed - -# Expected input: ls -F style, $sitedir/path/to/files/ -# -dirfilter='s/\*$//; s,/+\./+,/,g; s,^\./,,; /\/[._][^\/]/d; /'$forbidden_uri_chars'/d; /\/sitemap\.xml$/d; /\/index\.(md|html|txt|tpl)$/d; /\/(robots|sitemap)\.txt$/d; /_werc\/?$/d; ' -dirclean=' s/\.(md|html|txt)$//; ' - -# Careful, the proper p9p path might not be set until initrc.local is sourced -path=(. /bin ./bin) - -res_tail='' -http_content_type='text/html' -ll_add handlers_bar_left nav_tree -werc_apps=( apps/* ) -werc_root=`{pwd} -sitesdir=sites - - . ./etc/initrc - -if(test -f etc/initrc.local) - . ./etc/initrc.local - -for(a in $werc_apps) - . ./$a/app.rc - -fn werc_exec_request { - site=$SERVER_NAME - base_url=https://$site - sitedir=$sitesdir/$site - headers=`{get_lib_file headers.tpl} - master_template=`{get_lib_file default_master.tpl} - current_date_time=`{date} - - # Note: $REQUEST_URI is not officially in CGI 1.1, but seems to be de-facto - # Note: We only urldecode %5F->'_' because some sites (stackoverflow.com?) urlencode it in their links, - # perhaps we should completel urldecode the whole url. - req_path=`{echo -n $REQUEST_URI | sed 's/\?.*//; s!//+!/!g; s/%5[Ff]/_/g; s/'^$forbidden_uri_chars^'//g; s/\.\.*/./g; 1q'} - req_url=$base_url^$req_path - local_path=$sitedir$req_path - local_file='' - ifs='/' { args=`{echo -n $req_path} } - - # Preload post args for templates where cgi's stdin is not accessible - if(~ $REQUEST_METHOD POST) { - load_post_args - login_user - } - - if(~ $req_path */index) - perm_redirect `{echo $req_path | sed 's,/index$,/,'} - - if(~ $local_path */) { - if(test -d $local_path) - local_path=$local_path^'index' - # XXX: This redir might step on apps with synthetic dirs. - if not if(ls `{basename -d $local_path}^* >/dev/null >[2]/dev/null) - perm_redirect `{echo $req_path|sed 's,/+$,,'} - } - if not if(~ $req_path *'.' *',' *';' *':') - perm_redirect `{echo $req_path | sed 's/[.,;:)]$//'} - if not if(test -d $local_path) - perm_redirect $req_path^'/' - - if(! ~ $#args 0) - ifs=$NEW_LINE { pageTitle=`{ echo $args|sed -e 's/ / - /g' -e 's/([a-z])-([a-z])/\1 \2/g' -e 's/_/ /g' } } - - cd $sitedir - req_paths_list='/' # Note: req_paths_list doesn't include 'stnythetic' dirs. - conf_wd='/' # Used in config files to know where we are in the document tree. - if(test -f _werc/config) - . _werc/config - for(i in $args) { - conf_wd=$conf_wd^$i - req_paths_list=($req_paths_list $conf_wd) - if(test -d $i) { - conf_wd=$conf_wd'/' - cd $i - if(test -f _werc/config) - . _werc/config - } - } - cd $werc_root - - if(~ $#perm_redir_to 1) - perm_redirect $perm_redir_to - for(l in $perm_redir_patterns) { - p=$$l - r=$p(1) - # If target is absolute, then patern must match whole string - if(~ $p(2) http://* https://*) - r='^'$r - t=`{ echo $req_path | sed 's!'^$r^'!'^$p(2)^'!' } # Malicious danger! - - if(! ~ $"t '' $req_path) - perm_redirect $t - } - - setup_handlers - - - # Set Page title - if(! ~ $local_file '') { - t=`{get_file_title $local_file} - if(! ~ $"t '') - pageTitle=$t - } - - # XXX Is this never true? because we set pageTitle earlier based on url. - if(~ $"pageTitle '') - pageTitle=$"siteTitle' '$"siteSubTitle -# if not -# pageTitle=$"pageTitle' | '$"siteTitle' '$"siteSubTitle - - for(h in $extraHttpHeaders) - echo $h - echo Content-Type: $http_content_type - echo # End of HTTP headers - - if(! ~ $#debug 0) - dprint $"SERVER_NAME^$"REQUEST_URI - $"HTTP_USER_AGENT - $"REQUEST_METHOD - $"handler_body_main - $"master_template - - if(~ $REQUEST_METHOD HEAD) - exit - - template $headers $master_template # | awk_buffer - echo $res_tail -} - -werc_exec_request diff --git a/werc/bin/werc_errlog_wrap.rc b/werc/bin/werc_errlog_wrap.rc deleted file mode 100755 index 94bd18f..0000000 --- a/werc/bin/werc_errlog_wrap.rc +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/rc - -# This is a wrapper script for broken http servers like recent lighttpd versions which throw away cgi's stderr. - -./werc.rc >>[2]/tmp/wlog.txt diff --git a/werc/bin/wercconf.rc b/werc/bin/wercconf.rc deleted file mode 100755 index bb3422d..0000000 --- a/werc/bin/wercconf.rc +++ /dev/null @@ -1,19 +0,0 @@ -# To be used from config files -fn conf_perm_redirect { - if(~ $#* 1) - perm_redir_to=$1 - if not - ll_addh perm_redir_patterns $1 $2 -} - -fn conf_hide_paths { - for(i in $*) - dirfilter=$dirfilter^'/'^`{echo $sitedir$conf_wd$i|sed 's!/+!\\/!g'}^'/d; ' -} - -# Usually will be called from within conf_enable_foo -fn conf_enable_app { - # Note: maybe we should add test -d apps/$1/? - if(! ~ $1 $enabled_apps) - enabled_apps=( $enabled_apps $1 ) -} diff --git a/werc/bin/werclib.rc b/werc/bin/werclib.rc deleted file mode 100755 index ebc1eec..0000000 --- a/werc/bin/werclib.rc +++ /dev/null @@ -1,393 +0,0 @@ -fn get_lib_file { - if(! ~ $#sitedir 0 && test -f $sitedir/_werc/lib/$1) - echo -n $sitedir/_werc/lib/$1 - if not if(! ~ $#masterSite 0 && test -f $sitesdir/$masterSite/_werc/lib/$1) - echo -n $sitesdir/$masterSite/_werc/lib/$1 - if not if(test -f lib/$1) - echo -n lib/$1 - if not if(~ $#* 2) - echo -n $2 - if not - status='Can''t find lib file: '$1 -} - -fn template { awk -f bin/template.awk $* | rc $rcargs } - -# Auth code -# TODO: check http://cookies.lcs.mit.edu/pubs/webauth:tr.pdf -allowed_user_chars='[a-zA-Z0-9_]' -# Cookie format: WERC_USER: name:timestamp:hash(name.timestamp.password) -# login_user can't be used from a template because it sets a cookie -fn login_user { - # Note: we set the cookie even if it is already there. - if(get_user $*) - set_cookie werc_user $"logged_user^':0:'^$"logged_password -} - -# Check login status, if called with group arg we check membership too -fn check_user { - get_user - g=($* admin) - _status=$status - if(! ~ $"_status '') - _status=(Not logged in: $"_status) - if not if(! ~ $#* 0 && ! ~ $logged_user $* && ! grep -s '^'^$logged_user^'$' $werc_root/etc/users/$g/members >[2]/dev/null) - _status=(User $logged_user not in: $*) - status=$_status -} - -# If not logged in, try to get user login info from POST or from cookie -fn get_user { - if(~ $#logged_user 0) { - if(~ $#* 2) { - user_name=$1 - user_password=$2 - } - if not if(~ $REQUEST_METHOD POST) - get_post_args user_name user_password - - if(~ $#user_name 0) { - ifs=':' { cu=`{ifs=$difs {get_cookie werc_user} | tr -d $NEW_LINE} } - if(! ~ $#cu 0) { - user_name=$cu(1) - user_password=$cu(3) - } - } - auth_user $user_name $user_password - } - if not - status=() -} - -# Check if user_name and user_password represent a valid user account -# If valid, 'log in' by setting logged_user -fn auth_user { - user_name=$1 - user_password=$2 - - pfile=$werc_root/etc/users/$"user_name/password - if(~ $#user_name 0 || ~ $#user_password 0) - status=('Auth: missing user name or pass: '^$"user_name^' / '^$"user_password) - if not if(! test -f $pfile) - status=('Auth: cant find '^$pfile) - if not if(! test -s $pfile || ! ~ `{mkpasswd -S `{cat $pfile | cut -d'$' -f3} $user_password} `{cat $pfile}) - status=('Auth: Pass '$user_password' doesnt match '^`{cat $pfile}) - if not { - logged_user=$user_name - logged_password=$user_password - dprint Auth: success - status=() - } -} - -fn user_controls { - echo User: $"logged_user -} - - -# .md '(meta-)data' extract -fn get_md_file_attr { - sed -n '/^\* '$2': /p; /^\* '$2': /q; /^$/q' < $1 -} - - -# File title extraction -fn get_md_title { - #sed 's/^(................................................................[^ ]*).*$/\1/g; 1q' < $1 - sed -n -e '1N; /^.*\n===*$/N; /.*\n===*\n *$/!b' -e 's/\n==*\n//p' < $1 -} - -fn get_html_title { - t=`{sed -n '32q; s/^.*<[Tt][Ii][Tt][Ll][Ee]> *([^<]+) *(<\/[Tt][Ii][Tt][Ll][Ee]>.*)?$/\1/p' < $1} - - # As a backup we might want to pick the first 'non-tag' text in the file with: - if(~ $"t '') - t=`{sed -n -e 's/^(<[^>]+>)*([^<]+).*/\2/p; 32q' < $1 | sed 1q} - - echo $t -} - -fn get_file_title { - if (~ $1 *.md) - get_md_title $1 - if not if(~ $1 *.html) - get_html_title $1 - if not if(~ $1 */) { - if(test -f $1/index.md) - get_md_title $1/index.md - if not if(test -f $1/index.html) - get_html_title $1/index.html - } -} - -fn ndate { - if(~ $#* 7) - date=$*(2-) - if not - date=`{date} - switch($date(2)){ - case Jan; mo=01 - case Feb; mo=02 - case Mar; mo=03 - case Apr; mo=04 - case May; mo=05 - case Jun; mo=06 - case Jul; mo=07 - case Aug; mo=08 - case Sep; mo=09 - case Oct; mo=10 - case Nov; mo=11 - case Dec; mo=12 - } - switch($date(3)){ - case [0-9] - da=0^$date(3) - case * - da=$date(3) - } - switch($date(5)){ - case A; tz=+0100 - case ADT; tz=-0300 - case AFT; tz=+430 - case AKDT; tz=-0800 - case AKST; tz=-0900 - case ALMT; tz=+0600 - case AMST; tz=-0300 - case AMT; tz=-0400 - case ANAST; tz=+1200 - case ANAT; tz=+1200 - case AQTT; tz=+0500 - case ART; tz=-0300 - case AST; tz=-0400 - case AZOST; tz=+0000 - case AZOT; tz=-0100 - case AZST; tz=+0500 - case AZT; tz=+0400 - case B; tz=+0200 - case BNT; tz=+0800 - case BOT; tz=-0400 - case BRST; tz=-0200 - case BRT; tz=-0300 - case BST; tz=+0100 - case BTT; tz=+0600 - case C; tz=+0300 - case CAST; tz=+0800 - case CAT; tz=+0200 - case CCT; tz=+0630 - case CDT; tz=-0500 - case CEST; tz=+0200 - case CET; tz=+0100 - case CHADT; tz=+1345 - case CHAST; tz=+1245 - case CKT; tz=-1000 - case CLST; tz=-0300 - case CLT; tz=-0400 - case COT; tz=-0500 - case CST; tz=-0600 - case CVT; tz=-0100 - case CXT; tz=+0700 - case ChST; tz=+1000 - case D; tz=+0400 - case DAVT; tz=+0700 - case E; tz=+0500 - case EASST; tz=-0500 - case EAST; tz=-0600 - case EAT; tz=+0300 - case ECT; tz=-0500 - case EDT; tz=-0400 - case EEST; tz=+0300 - case EET; tz=+0200 - case EGST; tz=+0000 - case EGT; tz=-0100 - case EST; tz=-0500 - case ET; tz=-0500 - case F; tz=+0600 - case FJST; tz=+1300 - case FJT; tz=+1200 - case FKST; tz=-0300 - case FKT; tz=-0400 - case FNT; tz=-0200 - case G; tz=+0700 - case GALT; tz=-0600 - case GAMT; tz=-0900 - case GET; tz=+0400 - case GFT; tz=-0300 - case GILT; tz=+1200 - case GMT; tz=+0000 - case GST; tz=+0400 - case GYT; tz=-0400 - case H; tz=+0800 - case HAA; tz=-0300 - case HAC; tz=-0500 - case HADT; tz=-0900 - case HAE; tz=-0400 - case HAP; tz=-0700 - case HAR; tz=-0600 - case HAST; tz=-1000 - case HAT; tz=-0230 - case HAY; tz=-0800 - case HKT; tz=+0800 - case HLV; tz=-0430 - case HNA; tz=-0400 - case HNC; tz=-0600 - case HNE; tz=-0500 - case HNP; tz=-0800 - case HNR; tz=-0700 - case HNT; tz=-0330 - case HNY; tz=-0900 - case HOVT; tz=+0700 - case I; tz=+0900 - case ICT; tz=+0700 - case IDT; tz=+0300 - case IOT; tz=+0600 - case IRDT; tz=+0430 - case IRKST; tz=+0900 - case IRKT; tz=+0800 - case IRST; tz=+0330 - case IST; tz=+0200 - case JST; tz=+0900 - case K; tz=+1000 - case KGT; tz=+0600 - case KRAST; tz=+0800 - case KRAT; tz=+0700 - case KST; tz=+0900 - case KUYT; tz=+0400 - case L; tz=+1100 - case LHDT; tz=+1100 - case LHST; tz=+1030 - case LINT; tz=+1400 - case M; tz=+1200 - case MAGST; tz=+1200 - case MAGT; tz=+1100 - case MART; tz=-0930 - case MAWT; tz=+0500 - case MDT; tz=-0600 - case MHT; tz=+1200 - case MMT; tz=+0630 - case MSD; tz=+0400 - case MSK; tz=+0300 - case MST; tz=-0700 - case MUT; tz=+0400 - case MVT; tz=+0500 - case MYT; tz=+0800 - case N; tz=-0100 - case NCT; tz=+1100 - case NDT; tz=-0230 - case NFT; tz=+1130 - case NOVST; tz=+0700 - case NOVT; tz=+0600 - case NPT; tz=+0545 - case NST; tz=-0330 - case NUT; tz=-1100 - case NZDT; tz=+1300 - case NZST; tz=+1200 - case O; tz=-0200 - case OMSST; tz=+0700 - case OMST; tz=+0600 - case P; tz=-0300 - case PDT; tz=-0700 - case PET; tz=-0500 - case PETST; tz=+1200 - case PETT; tz=+1200 - case PGT; tz=+1000 - case PHOT; tz=+1300 - case PHT; tz=+0800 - case PKT; tz=+0500 - case PMDT; tz=-0200 - case PMST; tz=-0300 - case PONT; tz=+1100 - case PST; tz=-0800 - case PT; tz=-0800 - case PWT; tz=+0900 - case PYST; tz=-0300 - case PYT; tz=-0400 - case Q; tz=-0400 - case R; tz=-0500 - case RET; tz=+0400 - case S; tz=-0600 - case SAMT; tz=+0400 - case SAST; tz=+0200 - case SBT; tz=+1100 - case SCT; tz=+0400 - case SGT; tz=+0800 - case SRT; tz=-0300 - case SST; tz=-1100 - case T; tz=-0700 - case TAHT; tz=-1000 - case TFT; tz=+0500 - case TJT; tz=+0500 - case TKT; tz=-1000 - case TLT; tz=+0900 - case TMT; tz=+0500 - case TVT; tz=+1200 - case U; tz=-0800 - case ULAT; tz=+0800 - case UYST; tz=-0200 - case UYT; tz=-0300 - case UZT; tz=+0500 - case V; tz=-0900 - case VET; tz=-0430 - case VLAST; tz=+1100 - case VLAT; tz=+1000 - case VUT; tz=+1100 - case W; tz=-1000 - case WAST; tz=+0200 - case WAT; tz=+0100 - case WDT; tz=+0900 - case WEST; tz=+0100 - case WET; tz=+0000 - case WFT; tz=+1200 - case WGST; tz=-0200 - case WGT; tz=-0300 - case WIB; tz=+0700 - case WIT; tz=+0900 - case WITA; tz=+0800 - case WST; tz=+0800 - case WT; tz=+0000 - case X; tz=-1100 - case Y; tz=-1200 - case YAKST; tz=+1000 - case YAKT; tz=+0900 - case YAPT; tz=+1000 - case YEKST; tz=+0600 - case YEKT; tz=+0500 - case Z; tz=+0000 - } - switch($1){ - case -a # rfc3339 - tz=`{echo $tz | sed 's/00$/:00/'} - echo $date(6)^-$mo-$da^T^$date(4)^$tz - case -i # iso-8601 lite - echo $date(6)^-$mo-$da - case -m # rfc2822 - echo $date(1)^, $da $date(2) $date(6) $date(4) $tz - case -t # iso-8601 - echo $date(6)^-$mo-$da^T^$date(4)^$tz - } -} - -########################################################################## -########################################################################## -#app_blog_methods = ( _post index.rss ) -#fn app_blog__post { -# echo -#} -# -#app_blog___default { -# if (~ $blog) -# call_app blogpost -#} -# -## -- -#app_blogpost_methods = ( comment _edit ) -# -#fn app_blogpost_comment { -# call_app comments -#} -# -## -- -#app_comments_methods = ( _post _edit ) -# -#fn app_comments___default { -# -#} diff --git a/werc/lib/404.tpl b/werc/lib/404.tpl deleted file mode 100644 index f839439..0000000 --- a/werc/lib/404.tpl +++ /dev/null @@ -1,3 +0,0 @@ -

    The requested document at '%($base_url$"req_path%)' doesn't exist

    -

    Or take a look at the sitemap.

    -
    diff --git a/werc/lib/default_master.tpl b/werc/lib/default_master.tpl deleted file mode 100644 index d712566..0000000 --- a/werc/lib/default_master.tpl +++ /dev/null @@ -1,30 +0,0 @@ -
    -

    %($"siteTitle%)
    [ %($"siteSubTitle%) ]

    - -
    - -% if(! ~ $#handlers_bar_left 0) { - -% } - -
    -% run_handlers $handlers_body_head -% run_handler $handler_body_main -% run_handlers $handlers_body_foot -
    - -
    -% cat `{ get_lib_file footer.inc } -
    diff --git a/werc/lib/footer.inc b/werc/lib/footer.inc deleted file mode 100644 index 1eac7d8..0000000 --- a/werc/lib/footer.inc +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/werc/lib/headers.tpl b/werc/lib/headers.tpl deleted file mode 100644 index 3b82e09..0000000 --- a/werc/lib/headers.tpl +++ /dev/null @@ -1,30 +0,0 @@ - - - - - %($pageTitle%) - - - -% if(test -f $sitedir/_werc/pub/style.css) -% echo ' ' - - -% # Legacy charset declaration for backards compatibility with non-html5 browsers. - - - -% if(! ~ $#meta_description 0) -% echo ' ' -% if(! ~ $#meta_keywords 0) -% echo ' ' - -% h = `{get_lib_file headers.inc} -% if(! ~ $#h 0) -% cat $h - - %($"extraHeaders%) - - - - diff --git a/werc/lib/top_bar.inc b/werc/lib/top_bar.inc deleted file mode 100644 index cbb89b8..0000000 --- a/werc/lib/top_bar.inc +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/werc/pub/default_favicon.ico b/werc/pub/default_favicon.ico deleted file mode 100755 index 817f5fa..0000000 Binary files a/werc/pub/default_favicon.ico and /dev/null differ diff --git a/werc/pub/favicon.ico b/werc/pub/favicon.ico deleted file mode 100644 index cb6f257..0000000 Binary files a/werc/pub/favicon.ico and /dev/null differ diff --git a/werc/pub/style/fonts/3270-Regular.woff b/werc/pub/style/fonts/3270-Regular.woff deleted file mode 100644 index d74887d..0000000 Binary files a/werc/pub/style/fonts/3270-Regular.woff and /dev/null differ diff --git a/werc/pub/style/fonts/3270Condensed-Regular.woff b/werc/pub/style/fonts/3270Condensed-Regular.woff deleted file mode 100644 index d17eb5e..0000000 Binary files a/werc/pub/style/fonts/3270Condensed-Regular.woff and /dev/null differ diff --git a/werc/pub/style/fonts/3270SemiCondensed-Regular.woff b/werc/pub/style/fonts/3270SemiCondensed-Regular.woff deleted file mode 100644 index 66db7b8..0000000 Binary files a/werc/pub/style/fonts/3270SemiCondensed-Regular.woff and /dev/null differ diff --git a/werc/pub/style/fonts/Creduci.ttf b/werc/pub/style/fonts/Creduci.ttf deleted file mode 100644 index 503dfe4..0000000 Binary files a/werc/pub/style/fonts/Creduci.ttf and /dev/null differ diff --git a/werc/pub/style/fonts/Director-Regular.woff b/werc/pub/style/fonts/Director-Regular.woff deleted file mode 100644 index 08cf4d3..0000000 Binary files a/werc/pub/style/fonts/Director-Regular.woff and /dev/null differ diff --git a/werc/pub/style/fonts/Director-Regular.woff2 b/werc/pub/style/fonts/Director-Regular.woff2 deleted file mode 100644 index b9fa97c..0000000 Binary files a/werc/pub/style/fonts/Director-Regular.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/FT88-Gothique.woff b/werc/pub/style/fonts/FT88-Gothique.woff deleted file mode 100644 index e9ce7b6..0000000 Binary files a/werc/pub/style/fonts/FT88-Gothique.woff and /dev/null differ diff --git a/werc/pub/style/fonts/FT88-Gothique.woff2 b/werc/pub/style/fonts/FT88-Gothique.woff2 deleted file mode 100644 index 3e2d34e..0000000 Binary files a/werc/pub/style/fonts/FT88-Gothique.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/Fontlab.otf b/werc/pub/style/fonts/Fontlab.otf deleted file mode 100644 index 6a34cfc..0000000 Binary files a/werc/pub/style/fonts/Fontlab.otf and /dev/null differ diff --git a/werc/pub/style/fonts/Garamondt-Italic.woff b/werc/pub/style/fonts/Garamondt-Italic.woff deleted file mode 100755 index d20850f..0000000 Binary files a/werc/pub/style/fonts/Garamondt-Italic.woff and /dev/null differ diff --git a/werc/pub/style/fonts/Garamondt-Regular.woff b/werc/pub/style/fonts/Garamondt-Regular.woff deleted file mode 100755 index c795aaa..0000000 Binary files a/werc/pub/style/fonts/Garamondt-Regular.woff and /dev/null differ diff --git a/werc/pub/style/fonts/Manusquared-Bold.woff b/werc/pub/style/fonts/Manusquared-Bold.woff deleted file mode 100644 index 464b383..0000000 Binary files a/werc/pub/style/fonts/Manusquared-Bold.woff and /dev/null differ diff --git a/werc/pub/style/fonts/Manusquared-Bold.woff2 b/werc/pub/style/fonts/Manusquared-Bold.woff2 deleted file mode 100644 index 54544e9..0000000 Binary files a/werc/pub/style/fonts/Manusquared-Bold.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/Manusquared-Regular.woff b/werc/pub/style/fonts/Manusquared-Regular.woff deleted file mode 100644 index 895a8b8..0000000 Binary files a/werc/pub/style/fonts/Manusquared-Regular.woff and /dev/null differ diff --git a/werc/pub/style/fonts/Manusquared-Regular.woff2 b/werc/pub/style/fonts/Manusquared-Regular.woff2 deleted file mode 100644 index e1d7ccb..0000000 Binary files a/werc/pub/style/fonts/Manusquared-Regular.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/Redaction_50-Bold.woff2 b/werc/pub/style/fonts/Redaction_50-Bold.woff2 deleted file mode 100644 index af22835..0000000 Binary files a/werc/pub/style/fonts/Redaction_50-Bold.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/Redaction_50-Italic.woff2 b/werc/pub/style/fonts/Redaction_50-Italic.woff2 deleted file mode 100644 index 13e52f0..0000000 Binary files a/werc/pub/style/fonts/Redaction_50-Italic.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/Redaction_50-Regular.woff2 b/werc/pub/style/fonts/Redaction_50-Regular.woff2 deleted file mode 100644 index 26ea348..0000000 Binary files a/werc/pub/style/fonts/Redaction_50-Regular.woff2 and /dev/null differ diff --git a/werc/pub/style/fonts/WonderType-Regular.otf b/werc/pub/style/fonts/WonderType-Regular.otf deleted file mode 100644 index de1e7af..0000000 Binary files a/werc/pub/style/fonts/WonderType-Regular.otf and /dev/null differ diff --git a/werc/pub/style/fonts/rumeur.otf b/werc/pub/style/fonts/rumeur.otf deleted file mode 100644 index 01e1b83..0000000 Binary files a/werc/pub/style/fonts/rumeur.otf and /dev/null differ diff --git a/werc/pub/style/fonts/terminal-grotesque-webfont.woff b/werc/pub/style/fonts/terminal-grotesque-webfont.woff deleted file mode 100644 index d721311..0000000 Binary files a/werc/pub/style/fonts/terminal-grotesque-webfont.woff and /dev/null differ diff --git a/werc/pub/style/fonts/terminal-grotesque-webfont.woff2 b/werc/pub/style/fonts/terminal-grotesque-webfont.woff2 deleted file mode 100644 index 1240fa3..0000000 Binary files a/werc/pub/style/fonts/terminal-grotesque-webfont.woff2 and /dev/null differ diff --git a/werc/pub/style/imgs/back.jpeg b/werc/pub/style/imgs/back.jpeg deleted file mode 100644 index 2d8cb67..0000000 Binary files a/werc/pub/style/imgs/back.jpeg and /dev/null differ diff --git a/werc/pub/style/imgs/sgl.png b/werc/pub/style/imgs/sgl.png deleted file mode 100755 index d68580e..0000000 Binary files a/werc/pub/style/imgs/sgl.png and /dev/null differ diff --git a/werc/pub/style/imgs/tc.png b/werc/pub/style/imgs/tc.png deleted file mode 100644 index 2548b0c..0000000 Binary files a/werc/pub/style/imgs/tc.png and /dev/null differ diff --git a/werc/pub/style/sinorca-screen-alt.css b/werc/pub/style/sinorca-screen-alt.css deleted file mode 100755 index d11e9ad..0000000 --- a/werc/pub/style/sinorca-screen-alt.css +++ /dev/null @@ -1,292 +0,0 @@ -/*********************************************** - * TITLE: Sinorca Alterative Screen Stylesheet * - * URI : sinorca/sinorca-screen-alt.css * - * MODIF: 2003-May-13 18:48 +0800 * - ***********************************************/ - - -/* ##### Common Styles ##### */ - -body { - color: black; - background-color: white; - font-family: verdana, helvetica, arial, sans-serif; - font-size: 71%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} - -html > body { - font-size: 8.5pt; -} - -acronym, .titleTip { - border-bottom: 1px dotted rgb(153,153,153); - cursor: help; - margin: 0; - padding: 0 0 0.4px 0; -} - -.doNotDisplay { - display: none; -} - -.smallCaps { - font-size: 110%; - font-variant: small-caps; -} - - -/* ##### Header ##### */ - -.superHeader { - color: white; - background-color: rgb(100,135,220); - height: 2em; -} - -.superHeader a { - color: white; - background-color: transparent; - text-decoration: none; - font-size: 91%; - margin: 0; - padding: 0 0.5ex 0 0.25ex; -} - -.superHeader a:hover { - text-decoration: underline; -} - -.superHeader .left { - position: absolute; - left: 1.5mm; - top: 0.75ex; -} - -.superHeader .right { - position: absolute; - right: 1.5mm; - top: 0.75ex; -} - -.midHeader { - color: rgb(39,78,144); - background-color: rgb(140,170,230); -} - -.headerTitle { - font-size: 337%; - font-weight: normal; - margin: 0 0 0 4mm; - padding: 0.25ex 0; -} - -.subHeader { - color: white; - background-color: rgb(0,51,153); - margin: 0; - padding: 1ex 1ex 1ex 1.5mm; -} - -.subHeader a { - color: white; - background-color: transparent; - text-decoration: none; - font-weight: bold; - margin: 0; - padding: 0 0.75ex 0 0.5ex; -} - -.subHeader a:hover { - text-decoration: underline; -} - -.superHeader .highlight, .subHeader .highlight { - color: rgb(253,160,91); - background-color: transparent; -} - - -/* ##### Side Boxes ##### */ - -#side-bar { - width: 14em; - margin: 2.5em 0 0 1.25mm; - float: left; - clear: left; -} - -body > #side-bar { - margin-left: 2.5mm; /* Circumvents a rendering bug in MSIE (6.0) */ -} - -.sideBarTitle { - color: white; - background-color: rgb(100,135,220); - font-weight: bold; - margin: 0; - padding: 0.4ex 0 0.4ex 0.6ex; -} - -#side-bar ul { - list-style-type: none; - list-style-position: outside; - margin: 0; - padding: 0 0 2.25em 0; -} - -#side-bar li { - margin: 0; - padding: 0.1ex 0; /* Circumvents a rendering bug (?) in MSIE (6.0) */ -} - -#side-bar a, .thisPage { - color: rgb(0,102,204); - background-color: transparent; - text-decoration: none; - font-weight: bold; - margin: 0; - padding: 1.3ex 2ex; - display: block; -} - -.thisPage { - color: black; - background-color: transparent; -} - -#side-bar a:hover { - color: white; - background-color: rgb(100,135,220); - text-decoration: none; -} - -.sideBarText { - line-height: 1.5em; - margin: 0 0 2.5em 0; - padding: 1ex 0.5ex 0 0.5ex; - display: block; -} - -.sideBarText + .sideBarText { /* Not recognised by MSIE (6.0) */ - margin-top: -1.5em; -} - -#side-bar .sideBarText a { - text-decoration: underline; - font-weight: normal; - margin: 0; - padding: 0; - display: inline; -} - -#side-bar .sideBarText a:hover { - color: rgb(0,102,204); - background-color: transparent; - text-decoration: none; -} - - -/* ##### Main Copy ##### */ - -#main-copy { - color: black; - background-color: transparent; - text-align: justify; - line-height: 1.5em; - margin: -1em 0 0 15em; - padding: 0.5mm 5mm 5mm 5mm; -} - -#bodyText { - margin: 0 0 0 15.5em; - padding: 2mm 5mm 2mm 5mm; -} - - -#main-copy p { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -#main-copy a { - color: rgb(0,102,204); - background-color: transparent; - text-decoration: underline; -} - -#main-copy a:hover { - text-decoration: none; -} - -#main-copy h1 { - color: rgb(0,102,204); - background-color: transparent; - font-size: 145.5%; - font-weight: bold; - margin: 2em 0 0 0; - padding: 0.5ex 0 0.5ex 0.6ex; - border-bottom: 1px solid rgb(0,102,204); -} - -#main-copy .topOfPage { - color: rgb(0,102,204); - background-color: transparent; - font-size: 91%; - font-weight: bold; - text-decoration: none; - margin: 3ex 1ex 0 0; - padding: 0; - float: right; -} - -dl { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -dt { - font-weight: bold; - margin: 0 0 0 0; - padding: 0; -} - -dd { - margin: 0 0 2em 2em; - padding: 0; -} - - -/* ##### Footer ##### */ - -#footer { - color: white; - background-color: rgb(100,135,220); - font-size: 91%; - margin: 0; - padding: 1em 2.5mm 2.5ex 2.5mm; - clear: both; -} - -#footer .left { - text-align: left; - line-height: 1.45em; - float: left; - clear: left; -} - -#footer .right { - text-align: right; - line-height: 1.45em; -} - -#footer a { - color: white; - background-color: transparent; - text-decoration: underline; -} - -#footer a:hover { - text-decoration: none; -} \ No newline at end of file diff --git a/werc/pub/style/style.css b/werc/pub/style/style.css deleted file mode 100644 index 5f15c60..0000000 --- a/werc/pub/style/style.css +++ /dev/null @@ -1,543 +0,0 @@ -body { display: flex; flex-wrap: wrap; font-family: sans; } -header { flex-basis: 100%; flex-shrink: 0; } -article { flex-basis: 60%; padding-left: 1em; } -footer { flex-basis: 100%; flex-shrink: 0; } -header nav { display: flex; justify-content: space-between; } -nav a, header a { text-decoration: none ; color: inherit; } -header h1 span { margin-left: 1em; font-size: 50%; font-style: italic; } -body > nav { flex-basis: content; padding-right: 1vw; min-width: 16em; } -nav ul { display: flex; flex-direction: column; list-style-type: none; list-style-position: outside; padding-left: 0; } -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 { - /* 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(--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: 90%; - font-family: var(--font-body); -} - -a { - text-decoration: none; - color: var(--link-color); -} - -a:hover { - text-decoration: underline; -} - -/* header and top bar */ -header nav { - background-color: var(--header-bg); - color: var(--header-text); - border-bottom: 3px solid var(--border-secondary); - padding: 0.3em; - font-size: 110%; -} - -header h1 { - display: flex; - background-color: var(--back-secondary); - color: var(--text-primary); - margin: 0; - border-bottom: 3px solid var(--border-secondary); - font-size: 200%; - font-weight: bold; - padding: 0.5ex 0 0.5ex 0.6ex; -} - -header h1 #headerSubTitle { - display: block; - margin-left: 2em; - font-size: 40%; - 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 { - width: 50px; -} - -header a:hover { - text-decoration: none; -} - -header nav a { - padding: 0.2ex 0.5ex 0.2ex; - transition: background-color 0.3s ease; -} - -header nav a:hover { - text-decoration: underline; - background-color: rgba(255, 255, 255, 0.2); -} - -header nav .right { - font-weight: bold; -} - -/* sidebar */ -body>nav { - padding: 0; - border-right: 3px solid var(--border-primary); -} - -body>nav>div a, -input[type="submit"], -.bu { - color: var(--color-accent); - display: block; - font-weight: bold; - padding: 0.25em 1ex 0.25em 2mm; - font-size: 102% -} - -body>nav>div a:hover, -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"], .bu { - background-color: transparent; - font-family: inherit; - border: none; - margin-top: 0; -} - -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"], .bu { - border: 2px solid var(--color-accent); - margin-top: 0.6em; -} - -.bu { - width: fit-content; -} - -fieldset { - padding: 1em; - max-width: 1000px; -} - -input[type="text"], textarea { - width: 100%; - padding: 10px; - margin-bottom: 10px; - box-sizing: border-box; - font-size: 12px; - font-family: monospace; -} - -.log input[type="text"] { - padding: 2px; - width: unset; -} - -body>nav>div .dt { - color: var(--text-primary); -} - -body>nav>div a:hover .dt { - color: var(--text-accent); -} - -body>nav>div p { - font-weight: bold; - margin: 0 0 0.5em 2mm; - padding: 1em 0 0 0; -} - -/* main copy */ -article { - padding: 0.5ex 1vw 5vh 1vw; - color: var(--text-primary); - backdrop-filter: blur(3px); - flex: 1 1 60%; - max-width: 1100px; -} - -article h1 { - color: var(--header-primary); - font-weight: bold; - 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(--header-tertiary); - font-weight: bold; - margin: 2em 0 0.2em 0; -} - -article h4 article h5 { - color: var(--header-other); - margin: 2em 0 0 0; -} - -article h6, -article h7, -article h8 { - 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); -} - -article a:hover { - filter: brightness(85%) -} - -article img { - border: 0.4em solid var(--bg-primary); -} - -textarea#comment_text { - max-width: 50em; - max-height: 5em; -} - -.center { - text-align: center; -} - -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; - text-align: center; -} - -hr { - color: var(--border-primary); -} - -.notify_errors { - padding: 0.2em; - color: red; -} - -/* footer */ -footer { - color: var(--text-primary); - background-color: color-mix(in srgb, var(--bg-primary), transparent 86%); -} - -footer a { - color: var(--link-color); -} - -footer div { - padding: 1em; -} - -/* tables */ -table { - border: 1px solid rgba(var(--bg-secondary), 0.5); - padding: 0; -} - -th { - color: var(--text-primary); - background-color: var(--bg-primary); -} - -tr:nth-child(odd) { - background-color: rgba(var(--bg-secondary), 0.1); -} - -/* accents */ -.accent { - color: var(--text-accent) -} - -.accent2 { - color: var(--color-accent) -} - -/* dates */ -.date { - display: flex; - align-items: center; - text-align: center; - font-weight: normal; - max-width: fit-content; - font-size: x-small; - color: var(--text-primary); -} - -.date::before, -.date::after { - content: '⋆★⋆'; - flex: 1; - color: var(--text-secondary); -} - -.date:not(:empty)::before { - margin-right: .25em; -} - -.date:not(:empty)::after { - margin-left: .25em; -} - -.bfeed p { - margin: 0.6ex 0 0.6ex; -} - -.bfeed h2 { - margin-bottom: 0.2ex; -} - -.bfeed h2 a { - font-size: 90%; - color: var(--text-accent); - text-decoration: none; -} - -.bfeed h2 a:hover { - text-decoration: none; -} - -blockquote { - font-style: italic; - 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 { - color: #f48c06; - text-shadow: - 0px -1px 3px #f48c06, - 0px -2px 6px #dc2f02, - 0px -6px 12px #9d0208; - animation: flicker 3s infinite; -} - -@keyframes flicker { - - 0%, - 100% { - text-shadow: - 0px -1px 3px #f48c06, - 0px -2px 6px #dc2f02, - 0px -6px 12px #9d0208; - } - - 50% { - text-shadow: - 0 -2px 6px #f48c06, - 0 -4px 12px #dc2f02, - 0 -8px 16px #9d0208; - } -} - -.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 { - flex-basis: 100%; - padding: 0.5em; - } - body > nav { - flex-basis: 100%; - border-right: none; - border-bottom: 3px solid var(--border-primary); - border-top: 3px solid var(--border-primary); - padding-bottom: 1em; - } -} \ No newline at end of file diff --git a/werc/pub/style/style.suckless.css b/werc/pub/style/style.suckless.css deleted file mode 100644 index 058da84..0000000 --- a/werc/pub/style/style.suckless.css +++ /dev/null @@ -1,375 +0,0 @@ -/* suckless.org werc style */ - -body { - color: #000000; - background-color: #ffffff; - font-family: verdana, helvetica, arial, sans-serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} - - -/* # Header # */ -.superHeader { - color: black; - background-color: #eeeeee; - height: 2em; -} - -.superHeader img { - vertical-align: bottom; -} - -.superHeader a { - color: black; - background-color: transparent; - text-decoration: none; - font-size: 91%; - margin: 0; - padding: 0 0.5ex 0 0.25ex; -} - -.superHeader a:hover { - text-decoration: underline; -} - -.superHeader .left { - position: absolute; - left: 1.5mm; - top: 0.75ex; -} - -.superHeader .right { - position: absolute; - right: 1.5mm; - top: 0.75ex; -} - -.midHeader { - background-color: #99ccff; - border-top: solid 0 #cccccc; - border-bottom: solid 0 #cccccc; - border-width: 1px 0; -} - -.midHeader a { - color: black; -} - -.headerTitle { - font-size: 200%; - font-weight: normal; - margin: 0 0 0 4mm; - padding: 0.25ex 0; -} -#headerSubTitle { - font-size: 50%; - font-style: italic; - margin-left: 1em; -} - -.headerTitle a { - text-decoration: none; -} - -.subHeader { - display: none; - color: black; - background-color: #99ccff; - margin: 0; - padding: 1ex 1ex 1ex 1.5mm; -} - -.subHeader a { - color: black; - background-color: transparent; - text-decoration: none; - font-weight: bold; - margin: 0; - padding: 0 0.75ex 0 0.5ex; -} - -.subHeader a:hover { - text-decoration: underline; -} - -.superHeader .highlight, .subHeader .highlight { - background-color: transparent; -} - - -/* # Side # */ -#side-bar { - width: 16em; - float: left; - clear: left; - border-right: 1px solid #cccccc; -} - -#side-bar div { - border: 0px; -} - -.sideBarTitle { - font-weight: bold; - margin: 0 0 0.5em 2mm; - padding: 1em 0 0 0; -} - -#side-bar ul { - list-style-type: none; - list-style-position: outside; - margin: 0; - padding: 0 0 0.3em 0; -} - -li ul { - padding-left: 1.0em !important; -} - -#side-bar li { - margin: 0; - padding: 0.1ex 0; /* Circumvents a rendering bug (?) in MSIE 6.0 */ -} - -#side-bar a { - color: #336699; - background-color: transparent; - text-decoration: none; - margin: 0; - padding: 0.35em 1ex 0.35em 2mm; - display: block; - text-transform: none; - font-weight: bold!important; - font-size: 104%; -} - -.thisPage, .thisPage a { - color: black!important; - font-weight: bold; - background-color: #eeeeeee; - padding-left: 5mm; -} - -#side-bar a:hover { - color: black; - background-color: #eeeeee; - text-decoration: none; - border: 0px; -} - -.sideBarText { - line-height: 1.5em; - margin: 0 0 1em 0; - padding: 0 1.5ex 0 2.5mm; - display: block; -} - -#side-bar .sideBarText a { - text-decoration: underline; - margin: 0; - padding: 0; - display: inline; -} - -#side-bar .sideBarText a:hover { - color: #336699; - background-color: transparent; - text-decoration: none; -} - -.lighterBackground { - color: inherit; - background-color: white; -} - -/* # Main Copy # */ -#main-copy { - max-width: 70em; - color: black; - background-color: transparent; - text-align: justify; - line-height: 1.5em; - margin: 0em 0 0 16em; - padding: 0.5mm 5mm 5mm 5mm; - border-left: 1px solid #cccccc; -} - -#bodyText { - margin: 0 0 0 15.5em; - padding: 2mm 5mm 2mm 5mm; -} - -#main-copy p { - margin: 1em 1ex 1em 1ex !important; /* Need !important so troff-generated pages don't look totally squezed */ - padding: 0; -} - -#main-copy a { - color: #336699; - background-color: transparent; - text-decoration: none; -} - -#main-copy a:hover { - text-decoration: underline; -} - -#main-copy h1, #main-copy h2 { - color: #336699; - background-color: transparent; - font-size: 135%; - margin: 2em 0 0 0; - padding: 0.5ex 0 0.5ex 0.6ex; - border-bottom: 1px solid #336699; -} - -#main-copy h2 { - font-size: 115.5%; - border-bottom: 1px solid #336699; -} - -#main-copy h3 { - color: #336699; - background-color: transparent; - font-size: 105%; - margin: 2em 0 0 0; - padding: 0.5ex 0 0 0.6ex; -} - -#main-copy .topOfPage { - color: #66cccc; - background-color: transparent; - font-size: 91%; - font-weight: bold; - text-decoration: none; - margin: 3ex 1ex 0 0; - padding: 0; - float: right; -} - -dl { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -dt { - font-weight: bold; - margin: 0 0 0 0; - padding: 0; -} - -dd { - margin: 0 0 2em 2em; - padding: 0; -} - - -/* # Footer # */ -#footer { - color: black; - background-color: #eeeeee; - font-size: 91%; - margin: 0; - padding: 1em 2.5mm 2.5ex 2.5mm; - clear: both; - border-top: 1px solid #cccccc; - border-bottom: 1px solid #cccccc; -} - -#footer .left { - text-align: left; - line-height: 1.45em; - float: left; - clear: left; -} - -#footer .right { - text-align: right; - line-height: 1.45em; -} - -#footer a { - color: black; - background-color: transparent; - text-decoration: none; -} - -#footer a:hover { - text-decoration: underline; -} - - -/* GENERAL */ - -table { - border: solid 1px black; -} -th { - background-color: #abc; - border: solid 1px black; - text-align: center; -} -td { - background-color: #def; - border: solid 1px black; -} - -hr { - border-width: 0px 0px 0.1em 0px; - border-color: black; -} - -acronym, .titleTip { - border-bottom: 1px dotted rgb(153,153,153); - cursor: help; - margin: 0; - padding: 0 0 0.4px 0; -} - -pre { - margin-left: 2em; - font-size: 1.2em; -} - -blockquote { - border-left: 1px solid blue; - font-style: italic; -} - -.smallCaps { - font-size: 110%; - font-variant: small-caps; -} - -.doNotDisplay { display: none; } - - -.notify_errors, -.notify_notes, -.notify_success { padding: .8em; margin-bottom: 1em; border: 1px solid #ddd; } - -.notify_errors { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } -.notify_notes { background: #FFF6BF; color: #514721; border-color: #FFD324; } -.notify_success { background: #E6EFC2; color: #264409; border-color: #C6D880; } -.notify_errors a { color: #8a1f11; } -.notify_notes a { color: #514721; } -.notify_success a { color: #264409; } - - -/* # Page/Handler specific # */ -h1.dir-list-head, ul.dir-list { - text-transform: none; - font-weight: bold; -} -ul.sitemap-list a { - text-transform: none; -} - -/* # Junk: should move elsewhere # */ -/* S-pam */ -.gpam { text-align: center; } -.gpam table, .gpam th, .gpam td { border: none; } - - diff --git a/werc/pub/style/style.werc140.css b/werc/pub/style/style.werc140.css deleted file mode 100755 index e3261e9..0000000 --- a/werc/pub/style/style.werc140.css +++ /dev/null @@ -1,330 +0,0 @@ -/* Default werc style */ - -body { - color: black; - background-color: white; - font-family: Helvetica, Verdana, Arial, 'Liberation Sans', FreeSans, sans-serif; - font-size: 84%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} - - -/* # Header # */ -.superHeader { - color: white; - background-color: rgb(100,135,220); - height: 1.6em; -} - -.superHeader img { vertical-align: bottom; } - -.superHeader a { - color: white; - background-color: transparent; - font-size: 91%; - margin: 0; - padding: 0 0.5ex 0 0.25ex; -} - -a { text-decoration: none; } -a:hover { text-decoration: underline; } - -.superHeader div { - position: absolute; - top: 0.40ex; -} - -.superHeader .left { left: 0.4em; } -.superHeader .right { right: 0.4em; } - -.midHeader { - color: rgb(39,78,144); - background-color: rgb(140,170,230); - background-color: #ff6d06; - border: solid 0 black; - border-width: 2px 0; -} - -.headerTitle { - color: black; - font-size: 233%; - font-weight: normal; - margin: 0 0 0 4mm; - padding: 0.25ex 0; -} -#headerSubTitle { - font-size: 50%; - font-style: italic; - margin-left: 1em; -} - -.headerTitle a { color: black; } -.headerTitle a:hover { text-decoration: none; } - -.subHeader { - display: none; - color: white; - background-color: rgb(0,51,153); - margin: 0; - padding: 1ex 1ex 1ex 1.5mm; -} - -.subHeader a { - color: white; - background-color: transparent; - font-weight: bold; - margin: 0; - padding: 0 0.75ex 0 0.5ex; -} - -.superHeader .highlight, .subHeader .highlight { - color: rgb(253,160,91); - background-color: transparent; -} - - -/* # Side # */ -#side-bar { - width: 16em; - float: left; - clear: left; - border-right: 1px solid #ddd; -} - -#side-bar div { - border-bottom: 1px solid #ddd; -} - -.sideBarTitle { - font-weight: bold; - margin: 0 0 0.5em 2mm; - padding: 1em 0 0 0; -} - -#side-bar ul { - list-style-type: none; - list-style-position: outside; - margin: 0; - padding: 0 0 0.3em 0; -} - -li ul { - padding-left: 0.6em !important; -} - -#side-bar li { - margin: 0; - padding: 0.1ex 0; /* Circumvents a rendering bug (?) in MSIE 6.0 XXX should move to iehacks.css, this causes an ugly gap */ -} - -#side-bar a { - color: rgb(0,102,204); - background-color: transparent; - margin: 0; - padding: 0.25em 1ex 0.25em 2mm; - display: block; - text-transform: capitalize; - font-weight: bold!important; - font-size: 102%; - border-left: white solid 0.2em; -} - -.thisPage, .thisPage a { - color: black!important; - background-color: white; - padding-left: 5mm; -} - -#side-bar a:hover { - color: white; - background-color: rgb(100,135,220); - border-left: black solid 0.2em; - text-decoration: none; -} - -.sideBarText { - line-height: 1.5em; - margin: 0 0 1em 0; - padding: 0 1.5ex 0 2.5mm; - display: block; -} - -#side-bar .sideBarText a { - margin: 0; - padding: 0; - display: inline; -} - -#side-bar .sideBarText a:hover { - color: rgb(0,102,204); - background-color: transparent; - text-decoration: none; -} - - -/* # Main Copy # */ -#main-copy { - max-width: 70em; - color: black; - background-color: transparent; - text-align: justify; - line-height: 1.5em; - margin: 0em 0 0 16em; - padding: 0.5mm 5mm 5mm 5mm; - border-left: 1px solid #ddd; -} - -#bodyText { - margin: 0 0 0 15.5em; - padding: 2mm 5mm 2mm 5mm; -} - -#main-copy p { - margin: 1em 1ex 1em 1ex !important; /* Need !important so troff-generated pages don't look totally squezed */ - padding: 0; -} - -#main-copy a { - color: rgb(0,102,204); - background-color: transparent; -} - -#main-copy a:hover { - color: rgb(100,135,220); -} - -#main-copy h1, #main-copy h2 { - color: rgb(0,102,204); - background-color: transparent; - font-size: 145.5%; - font-weight: bold; - margin: 2em 0 0 0; - padding: 0.5ex 0 0.5ex 0.6ex; - border-bottom: 2px solid rgb(0,102,204); -} - -#main-copy h2 { - font-size: 115.5%; - border-bottom: 1px solid rgb(0,102,204); -} - -#main-copy .topOfPage { - color: rgb(0,102,204); - background-color: transparent; - font-size: 91%; - font-weight: bold; - text-decoration: none; - margin: 3ex 1ex 0 0; - padding: 0; - float: right; -} - -dl { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -dt { - font-weight: bold; - margin: 0 0 0 0; - padding: 0; -} - -dd { - margin: 0 0 2em 2em; - padding: 0; -} - - -/* # Footer # */ -#footer { - color: white; - background-color: rgb(100,135,220); - padding: 1em; - clear: both; -} - -#footer .left { - text-align: left; - line-height: 1.55em; - float: left; - clear: left; -} - -#footer .right { - text-align: right; - line-height: 1.45em; -} - -#footer a { - color: white; - background-color: transparent; -} - - -/* GENERAL */ - -table { - border: solid 1px black; -} -th { - background-color: #abc; - border: solid 1px black; - text-align: center; -} -td { - background-color: #def; - border: solid 1px black; -} - -hr { - border-width: 0px 0px 0.1em 0px; - border-color: black; -} - -acronym, .titleTip { - border-bottom: 1px solid #ddd; - cursor: help; - margin: 0; - padding: 0 0 0.4px 0; -} - -pre { - margin-left: 2em; - font-size: 1.2em; -} - -blockquote { - border-left: 1px solid blue; - font-style: italic; -} - -.smallCaps { - font-size: 110%; - font-variant: small-caps; -} - -.doNotDisplay { display: none; } - - -.notify_errors, -.notify_notes, -.notify_success { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; } - -.notify_errors { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } -.notify_notes { background: #FFF6BF; color: #514721; border-color: #FFD324; } -.notify_success { background: #E6EFC2; color: #264409; border-color: #C6D880; } -.notify_errors a { color: #8a1f11; } -.notify_notes a { color: #514721; } -.notify_success a { color: #264409; } - - -/* # Page/Handler specific # */ -h1.dir-list-head, ul.dir-list { - text-transform: capitalize; - font-weight: bold; -} -ul.sitemap-list a { - text-transform: capitalize; -} diff --git a/werc/pub/style/style_old.css b/werc/pub/style/style_old.css deleted file mode 100755 index e4a41fe..0000000 --- a/werc/pub/style/style_old.css +++ /dev/null @@ -1,330 +0,0 @@ -/* Old Default style */ -/* ##### Common Styles ##### */ - -body { - color: black; - XXXbackground-color: rgb(240,240,240); - background-color: white; - font-family: verdana, helvetica, arial, sans-serif; - font-size: 71%; /* Enables font size scaling in MSIE */ - margin: 0; - padding: 0; -} - -html > body { - font-size: 8.5pt; -} - -acronym, .titleTip { - border-bottom: 1px dotted rgb(153,153,153); - cursor: help; - margin: 0; - padding: 0 0 0.4px 0; -} - -.doNotDisplay { - display: none; -} - -.smallCaps { - font-size: 110%; - font-variant: small-caps; -} - - -/* ##### Header ##### */ - -.superHeader { - color: white; - background-color: rgb(100,135,220); - height: 2em; -} - -.superHeader a { - color: white; - background-color: transparent; - text-decoration: none; - font-size: 91%; - margin: 0; - padding: 0 0.5ex 0 0.25ex; -} - -.superHeader a:hover { - text-decoration: underline; -} - -.superHeader .left { - position: absolute; - left: 1.5mm; - top: 0.75ex; -} - -.superHeader .right { - position: absolute; - right: 1.5mm; - top: 0.75ex; -} - -.midHeader { - color: rgb(39,78,144); - background-color: rgb(140,170,230); - border: solid 0 black; - border-width: 0.3em 0; -} - -.headerTitle { - color: black; - font-size: 337%; - font-weight: normal; - margin: 0 0 0 4mm; - padding: 0.25ex 0; -} -#headerSubTitle { - font-size: 50%; - font-style: italic; -} - -.subHeader { -display: none; - color: white; - background-color: rgb(0,51,153); - margin: 0; - padding: 1ex 1ex 1ex 1.5mm; -} - -.subHeader a { - color: white; - background-color: transparent; - text-decoration: none; - font-weight: bold; - margin: 0; - padding: 0 0.75ex 0 0.5ex; -} - -.subHeader a:hover { - text-decoration: underline; -} - -.superHeader .highlight, .subHeader .highlight { - color: rgb(253,160,91); - background-color: transparent; -} - - -/* ##### Side Bar ##### */ - -#side-bar { - width: 15em; - float: left; - clear: left; - border-right: 1px solid rgb(153,153,153); -} - -#side-bar div { - border-bottom: 1px solid rgb(153,153,153); -} - -.sideBarTitle { - font-weight: bold; - margin: 0 0 0.5em 2.5mm; - padding: 1em 0 0 0; -} - -#side-bar ul { - list-style-type: none; - list-style-position: outside; - margin: 0; - padding: 0 0 1.1em 0; -} - -#side-bar li { - margin: 0; - padding: 0.1ex 0; /* Circumvents a rendering bug (?) in MSIE 6.0 */ -} - -#side-bar a, .thisPage { - color: rgb(0,102,204); - background-color: transparent; - XXXtext-decoration: none; - margin: 0; - padding: 0.55em 1ex 0.55em 5mm; - display: block; -} - -.thisPage { - color: black; - background-color: white; - padding-left: 5mm; - XXXborder-top: 1px solid rgb(153,153,153); - XXXborder-bottom: 1px solid rgb(153,153,153); - font-weight: 600; -} - -#side-bar a:hover { - color: white; - background-color: rgb(100,135,220); - text-decoration: none; -} - -.sideBarText { - line-height: 1.5em; - margin: 0 0 1em 0; - padding: 0 1.5ex 0 2.5mm; - display: block; -} - -#side-bar .sideBarText a { - text-decoration: underline; - margin: 0; - padding: 0; - display: inline; -} - -#side-bar .sideBarText a:hover { - color: rgb(0,102,204); - background-color: transparent; - text-decoration: none; -} - -.lighterBackground { - color: inherit; - background-color: white; -} - - -/* ##### Main Copy ##### */ - -#main-copy { - max-width: 90em; - color: black; - background-color: white; - text-align: justify; - line-height: 1.5em; - margin: 0 0 0 15em; - padding: 0.5mm 5mm 5mm 5mm; - border-left: 1px solid rgb(153,153,153); -} - -#main-copy p { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -#main-copy a { - color: rgb(0,102,204); - background-color: transparent; - text-decoration: underline; -} - -#main-copy a:hover { - text-decoration: none; -} - -#main-copy h1 { - color: white; - background-color: rgb(100,135,220); - font-size: 100%; - font-weight: bold; - margin: 3em 0 0 0; - padding: 0.5ex 0 0.5ex 1ex; -} - -#main-copy .topOfPage { - color: white; - background-color: transparent; - font-size: 91%; - font-weight: bold; - text-decoration: none; - margin: 2.5ex 1ex 0 0; /* For MSIE */ - padding: 0; - float: right; -} - -#main-copy > .topOfPage { - margin: 2.75ex 1ex 0 0; /* For fully standards-compliant user agents */ -} - -dl { - margin: 1em 1ex 2em 1ex; - padding: 0; -} - -dt { - font-weight: bold; - margin: 0 0 0 0; - padding: 0; -} - -dd { - margin: 0 0 2em 2em; - padding: 0; -} - - -/* ##### Footer ##### */ - -#footer { - color: white; - background-color: rgb(100,135,220); - font-size: 91%; - margin: 0; - padding: 1em 2.5mm 2.5ex 2.5mm; - clear: both; -} - -#footer .left { - line-height: 1.45em; - float: left; - clear: left; -} - -#footer .right { - text-align: right; - line-height: 1.45em; -} - -#footer a { - color: white; - background-color: transparent; - text-decoration: underline; -} - -#footer a:hover { - text-decoration: none; -} - - -/* GENERAL */ -/* Spam */ -.spam { - text-align: center; -} - -/* Tables */ -table { - border: solid 1px black; -} -th { - background-color: #abc; - border: solid 1px black; -} -td { - background-color: #def; - border: solid 1px black; -} - -hr { - border-width: 0px 0px 0.1em 0px; - border-color: black; -} - -.spam table, .spam th, .spam td { - border: none; -} - -/* Code */ -pre { - margin-left: 2em; -} - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html deleted file mode 100644 index 3966800..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html +++ /dev/null @@ -1,21 +0,0 @@ - -
    - -

    BETTER LOVERS ($48.5)

    -
    -
    Friday, November 15th
    - - - -
    expensive ass metal core show (but good)
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    - - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470821/author b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470821/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470821/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470821/data b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470821/data deleted file mode 100644 index b928fb2..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470821/data +++ /dev/null @@ -1,23 +0,0 @@ - -
    - -

    BETTER LOVERS $48.5

    -
    -
    Friday, November 15th
    - - - -
    All-ages metalcore show
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470885/author b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470885/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470885/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470885/data b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470885/data deleted file mode 100644 index 6e76df9..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731470885/data +++ /dev/null @@ -1,20 +0,0 @@ - -
    - -

    BETTER LOVERS ($48.5)

    -
    -
    Friday, November 15th
    - - - -
    All-ages metalcore show
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731471520/author b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731471520/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731471520/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731471520/data b/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731471520/data deleted file mode 100644 index 3966800..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/0/index.html_werc/dirdir/1731471520/data +++ /dev/null @@ -1,21 +0,0 @@ - -
    - -

    BETTER LOVERS ($48.5)

    -
    -
    Friday, November 15th
    - - - -
    expensive ass metal core show (but good)
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    - - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/1/index.html b/werc/sites/events.thirdculture.top/2024/11/13/1/index.html deleted file mode 100644 index 4003ea2..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/1/index.html +++ /dev/null @@ -1,19 +0,0 @@ - -
    - -

    Altar Of The Fuzz ($20)

    -
    -
    Thursday, November 14th
    - - - -
    Fuzzy waves of raw sound to drown the cries of your bitch wife
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/1/index.html_werc/dirdir/1731471462/author b/werc/sites/events.thirdculture.top/2024/11/13/1/index.html_werc/dirdir/1731471462/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/1/index.html_werc/dirdir/1731471462/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/1/index.html_werc/dirdir/1731471462/data b/werc/sites/events.thirdculture.top/2024/11/13/1/index.html_werc/dirdir/1731471462/data deleted file mode 100644 index 4003ea2..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/1/index.html_werc/dirdir/1731471462/data +++ /dev/null @@ -1,19 +0,0 @@ - -
    - -

    Altar Of The Fuzz ($20)

    -
    -
    Thursday, November 14th
    - - - -
    Fuzzy waves of raw sound to drown the cries of your bitch wife
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html b/werc/sites/events.thirdculture.top/2024/11/13/2/index.html deleted file mode 100644 index 6c1b82c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html +++ /dev/null @@ -1,20 +0,0 @@ - -
    - -

    hard rock birthday party ($20)

    -
    -
    Saturday, November 16th
    - - - -
    butt rock made by divorced boomers with nothing better to do on their birthday
    -
    -
    - Event Poster -
    -
    - 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) -
    -
    - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472007/author b/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472007/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472007/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472007/data b/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472007/data deleted file mode 100644 index ca93cad..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472007/data +++ /dev/null @@ -1,19 +0,0 @@ - -
    - -

    hard rock birthday party $20

    -
    -
    Saturday, November 16th
    - - - -
    butt rock made by divorced boomers with nothing better to do on their birthday
    -
    -
    - Event Poster -
    -
    - 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) -
    -
    - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472091/author b/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472091/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472091/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472091/data b/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472091/data deleted file mode 100644 index 6c1b82c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/2/index.html_werc/dirdir/1731472091/data +++ /dev/null @@ -1,20 +0,0 @@ - -
    - -

    hard rock birthday party ($20)

    -
    -
    Saturday, November 16th
    - - - -
    butt rock made by divorced boomers with nothing better to do on their birthday
    -
    -
    - Event Poster -
    -
    - 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) -
    -
    - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/3/index.html b/werc/sites/events.thirdculture.top/2024/11/13/3/index.html deleted file mode 100644 index 912e554..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/3/index.html +++ /dev/null @@ -1,18 +0,0 @@ - -
    - -

    Unchained ($15)

    -
    -
    Friday, November 22nd
    - - - -
    mystery lineup of weird bands
    -
    -
    - Event Poster -
    -
    - 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 -
    -
    diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html deleted file mode 100644 index dbae83b..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html +++ /dev/null @@ -1,23 +0,0 @@ - -
    - -

    Apostlebird

    -
    -
    Friday, November 29
    - - - -
    our friends in apostlebird live on elgin
    -
    -
    - Event Poster -
    -
    -bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -
    -
    - - - - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475065/author b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475065/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475065/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475065/data b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475065/data deleted file mode 100644 index 593ce88..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475065/data +++ /dev/null @@ -1,18 +0,0 @@ - -
    - -

    Apostlebird

    -
    -
    Friday, November 29
    - - - -
    our friends in apostlebird live on elgin
    -
    -
    - Event Poster -
    - bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -
    -
    - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475072/author b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475072/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475072/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475072/data b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475072/data deleted file mode 100644 index 357a6a2..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475072/data +++ /dev/null @@ -1,19 +0,0 @@ - -
    - -

    Apostlebird

    -
    -
    Friday, November 29
    - - - -
    our friends in apostlebird live on elgin
    -
    -
    - Event Poster -
    - 2024-11-13T00:15:54,137815319-05:00.png bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -
    -
    - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475116/author b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475116/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475116/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475116/data b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475116/data deleted file mode 100644 index 4f05cc3..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475116/data +++ /dev/null @@ -1,18 +0,0 @@ - -
    - -

    Apostlebird

    -
    -
    Friday, November 29
    - - - -
    our friends in apostlebird live on elgin
    -
    -
    -bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -
    -
    - - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475220/author b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475220/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475220/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475220/data b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475220/data deleted file mode 100644 index bea1b2b..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475220/data +++ /dev/null @@ -1,22 +0,0 @@ - -
    - -

    Apostlebird

    -
    -
    Friday, November 29
    - - - -
    our friends in apostlebird live on elgin
    -
    -
    - -
    -
    -bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -
    -
    - - - - diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475546/author b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475546/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475546/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475546/data b/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475546/data deleted file mode 100644 index dbae83b..0000000 --- a/werc/sites/events.thirdculture.top/2024/11/13/4/index.html_werc/dirdir/1731475546/data +++ /dev/null @@ -1,23 +0,0 @@ - -
    - -

    Apostlebird

    -
    -
    Friday, November 29
    - - - -
    our friends in apostlebird live on elgin
    -
    -
    - Event Poster -
    -
    -bwoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo -
    -
    - - - - - diff --git a/werc/sites/events.thirdculture.top/_werc/config b/werc/sites/events.thirdculture.top/_werc/config deleted file mode 100644 index 4afa58f..0000000 --- a/werc/sites/events.thirdculture.top/_werc/config +++ /dev/null @@ -1,8 +0,0 @@ -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!
    (maintained by iancobain)' -conf_enable_wiki -conf_dirdir_index_type='html' diff --git a/werc/sites/events.thirdculture.top/_werc/lib/default_master.tpl b/werc/sites/events.thirdculture.top/_werc/lib/default_master.tpl deleted file mode 100644 index 17ef8b0..0000000 --- a/werc/sites/events.thirdculture.top/_werc/lib/default_master.tpl +++ /dev/null @@ -1,28 +0,0 @@ -
    -

    %($"siteTitle%)
    [ %($"siteSubTitle%) ]

    - -
    - -% if(! ~ $#handlers_bar_left 0) { - -% } - -
    -
    -% run_handlers $handlers_body_head -% run_handler $handler_body_main -% run_handlers $handlers_body_foot -
    - -
    -% run_handlers $handlers_foot_body -% cat `{ get_lib_file footer.inc } -
    diff --git a/werc/sites/events.thirdculture.top/_werc/lib/ico/foot.tpl b/werc/sites/events.thirdculture.top/_werc/lib/ico/foot.tpl deleted file mode 100644 index 788a39a..0000000 --- a/werc/sites/events.thirdculture.top/_werc/lib/ico/foot.tpl +++ /dev/null @@ -1,4 +0,0 @@ -

    [ Make a new post ]

    -
    -

    [ ]

    -
    \ No newline at end of file diff --git a/werc/sites/events.thirdculture.top/_werc/pub/imgs/starback.gif b/werc/sites/events.thirdculture.top/_werc/pub/imgs/starback.gif deleted file mode 100644 index f0da48c..0000000 Binary files a/werc/sites/events.thirdculture.top/_werc/pub/imgs/starback.gif and /dev/null differ diff --git a/werc/sites/events.thirdculture.top/_werc/pub/style.css b/werc/sites/events.thirdculture.top/_werc/pub/style.css deleted file mode 100644 index 4848e83..0000000 --- a/werc/sites/events.thirdculture.top/_werc/pub/style.css +++ /dev/null @@ -1,359 +0,0 @@ -body { - background: - url("imgs/starback.gif"), - black; - background-repeat: repeat; -} - -.background { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -1; - backdrop-filter: blur(1px); -} - -nav#side-bar { - display: none; -} - -article { - width: 100%; - max-width: 100%; - backdrop-filter: none; -} - -input[name="dirdir_edit"] { - color: #2667de; - display: inline-block; - font-weight: normal; - padding: 0; - font-size: 100% -} -input[name="dirdir_edit"]:hover { - color: #2667de !important; - background-color: none; - border-left: none; - text-decoration: underline; -} - -.icofeed { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); - gap: 10px; - padding: 20px; -} - -.categories_box { - max-width: 100%; -} - -.categories_box legend { - font-size: large; - font-weight: bold; -} - -.categories { - display: flex; - flex-wrap: wrap; - font-size: large; -} - -.categories a { - position: relative; - text-decoration: none; - transition: color 0.1s ease; -} - -.categories a:hover { - color: white; - animation: flicker 0.8s infinite; - transition: opacity 0.1s ease; -} - -.categories a::after { - content: "|"; - color: white; - padding-right: 0.5em; - padding-left: 0.5em; -} - -.categories a:last-child::after { - content: "|"; -} - -.categories a:first-child::before { - color: white; - content: "|"; - padding-right: 0.5em; -} - -@keyframes flicker { - 0% { color: #fff; opacity: 1; } - 25% { color: #def8ff; opacity: 1; } - 50% { color: #fff; opacity: 1; } - 75% { color: #def8ff; opacity: 1; } - 100% { color: #fff; opacity: 1; } -} - -.event_box { - text-align: center; - border-left: 4px solid white; - border-right: 4px solid white; - border-radius: 4px; - max-width: fit-content; - margin: auto; -} - -.event_box h2 { - font-size: xxx-large; -} - -.date { - display: flex; - background-color: rgba(30,30,30,0.5); - color: #f0f0f0; - padding: 8px 0px 8px 0px; - font-weight: bold; - text-align: center; - border-bottom: 1px solid #4a4a4a; - align-items: center; - font-size: large; - margin: auto; - max-width: none; -} - -.date::before, -.date::after { - content: '⋆★⋆'; - flex: 1; - color: grey; -} - -.date:not(:empty)::before { - margin-right: .25em; -} - -.date:not(:empty)::after { - margin-left: .25em; -} - - -.post { - background-color: rgba(0,0,0,0); - border: 1px solid #3a3a3a; - border-radius: 8px; - overflow: hidden; - display: flex; - flex-direction: column; - aspect-ratio: 1; - position: relative; - transition: box-shadow 0.3s ease; -} - -.post .event_info .date { - font-size: 0.9em; -} - -.post .event_info .date::before, -.post .event_info .date::after { - content: '⋆★⋆'; - flex: 1; - color: var(--alt-accent) -} - -.post .event_info .date:not(:empty)::before { - margin-right: .25em; -} - -.post .event_info .date:not(:empty)::after { - margin-left: .25em; -} - -.post .event_box h2 { - margin: 0; - padding: 12px; - font-size: 200%; - text-align: center; -} - -.post .cat_list { - padding: 0 12px; - font-size: 0.9em; - color: #b0b0b0; -} - -.post .cat_list a { - color: #66b3ff; - text-decoration: none; -} - -.location a[href=""] { - color: white; -} - -.location a[href=""]:hover { - color: white; - text-decoration: none; - filter: none; -} - -.post .cat_list a:hover { - text-decoration: underline; -} - -.cat_list div { - display: inline-block; -} - -.cat_list::before { - content: 'Catagories: '; -} - -.post .cat_list::before { - content: ''; -} - -.post .cat_list div:nth-child(n+4) { - display: none; -} - -.event_body { - padding: 12px; - color: #c0c0c0; - flex-grow: 1; - overflow: hidden; - font-size: medium; - max-width: 650px; -} - -.post .event_body { - text-overflow: ellipsis; - display: -webkit-box; - line-clamp: 3; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - font-size: 0.9em; -} - -.event_info { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background-color: rgba(30,30,30,0.5); - padding: 1px 1px 5px 1px; - margin: 0px 0px 0px 0px; -} - -.event_info > div { - text-align: center; - border-bottom: 1px solid #4a4a4a; - width: 100%; -} - -.event_info .cat_list { - padding-bottom: 5px; -} - -.post .event_info .cat_list { - width: initial; -} - -.event_info .location::before { - content: 'Location: '; - font-weight: bold; -} - -.event_info .event_link::before { - content: '> '; -} -.event_info .event_link::after { - content: ' <'; -} - -.post .event_poster { - position: absolute; - z-index: -1; - top: 0; - left: 0; - width: 100%; - height: 100%; - text-align: center; - background-color: black; -} - -.event_poster img { - width: 100%; - max-width: 600px; - box-sizing: border-box; -} - -.post .event_poster img { - height: 100%; - padding: 0; - margin: 0; - box-sizing: border-box; -} - -.post .event_box { - width: 100%; - height: 100%; - text-align: left; - border: none; -} - -.post .event_box > * { - display: none; -} - -.post:hover .event_info a, .post:hover .event_body { - z-index: 2; -} - -.event_box_link { - display: none; -} - -.post .event_box_link { - display: block; -} - -.event_img_link { - width: 100%; - max-width: 600px; - box-sizing: border-box; -} - -.post:hover .event_box { - background-color: rgba(0,0,0,0.7); -} - -.post:hover .event_box > * { - display: block; -} - -.post .event_box .event_poster { - display: block; -} - -.link_span { - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - z-index: 1; -} - -.post:hover .link_span { - z-index: 0; -} - -@media (max-width: 768px) { - .icofeed { - grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); - } -} \ No newline at end of file diff --git a/werc/sites/events.thirdculture.top/archive.md b/werc/sites/events.thirdculture.top/archive.md deleted file mode 100644 index b9c4d8d..0000000 --- a/werc/sites/events.thirdculture.top/archive.md +++ /dev/null @@ -1 +0,0 @@ -Under construction \ No newline at end of file diff --git a/werc/sites/events.thirdculture.top/categories/all-ages.txt b/werc/sites/events.thirdculture.top/categories/all-ages.txt deleted file mode 100644 index 6bb908d..0000000 --- a/werc/sites/events.thirdculture.top/categories/all-ages.txt +++ /dev/null @@ -1,4 +0,0 @@ -/2024/11/13/0 -/2024/11/13/1 -/2024/11/13/3 -/2024/11/13/4 diff --git a/werc/sites/events.thirdculture.top/categories/classic-rock.txt b/werc/sites/events.thirdculture.top/categories/classic-rock.txt deleted file mode 100644 index 3cac9e6..0000000 --- a/werc/sites/events.thirdculture.top/categories/classic-rock.txt +++ /dev/null @@ -1 +0,0 @@ -/2024/11/13/2 diff --git a/werc/sites/events.thirdculture.top/categories/doom-metal.txt b/werc/sites/events.thirdculture.top/categories/doom-metal.txt deleted file mode 100644 index 9e50ee0..0000000 --- a/werc/sites/events.thirdculture.top/categories/doom-metal.txt +++ /dev/null @@ -1 +0,0 @@ -/2024/11/13/1 diff --git a/werc/sites/events.thirdculture.top/categories/indie.txt b/werc/sites/events.thirdculture.top/categories/indie.txt deleted file mode 100644 index d28df70..0000000 --- a/werc/sites/events.thirdculture.top/categories/indie.txt +++ /dev/null @@ -1 +0,0 @@ -/2024/11/13/4 diff --git a/werc/sites/events.thirdculture.top/categories/metal.txt b/werc/sites/events.thirdculture.top/categories/metal.txt deleted file mode 100644 index 9e50ee0..0000000 --- a/werc/sites/events.thirdculture.top/categories/metal.txt +++ /dev/null @@ -1 +0,0 @@ -/2024/11/13/1 diff --git a/werc/sites/events.thirdculture.top/categories/metalcore.txt b/werc/sites/events.thirdculture.top/categories/metalcore.txt deleted file mode 100644 index 12ec3b9..0000000 --- a/werc/sites/events.thirdculture.top/categories/metalcore.txt +++ /dev/null @@ -1 +0,0 @@ -/2024/11/13/0 diff --git a/werc/sites/events.thirdculture.top/categories/punk.txt b/werc/sites/events.thirdculture.top/categories/punk.txt deleted file mode 100644 index 3cf334e..0000000 --- a/werc/sites/events.thirdculture.top/categories/punk.txt +++ /dev/null @@ -1,2 +0,0 @@ -/2024/11/13/0 -/2024/11/13/3 diff --git a/werc/sites/events.thirdculture.top/categories/rock.txt b/werc/sites/events.thirdculture.top/categories/rock.txt deleted file mode 100644 index 15ceba3..0000000 --- a/werc/sites/events.thirdculture.top/categories/rock.txt +++ /dev/null @@ -1,2 +0,0 @@ -/2024/11/13/2 -/2024/11/13/3 diff --git a/werc/sites/events.thirdculture.top/categories/shoegaze.txt b/werc/sites/events.thirdculture.top/categories/shoegaze.txt deleted file mode 100644 index d28df70..0000000 --- a/werc/sites/events.thirdculture.top/categories/shoegaze.txt +++ /dev/null @@ -1 +0,0 @@ -/2024/11/13/4 diff --git a/werc/sites/music.thirdculture.top/_werc/config b/werc/sites/music.thirdculture.top/_werc/config deleted file mode 100644 index 1e6eb6b..0000000 --- a/werc/sites/music.thirdculture.top/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -masterSite=thirdculture.top -siteTitle='Third Culture Music' -siteSubTitle='before the eyes have opened' diff --git a/werc/sites/music.thirdculture.top/index.md b/werc/sites/music.thirdculture.top/index.md deleted file mode 100644 index 82fad5e..0000000 --- a/werc/sites/music.thirdculture.top/index.md +++ /dev/null @@ -1,3 +0,0 @@ -Music -================================= -This page is under construction diff --git a/werc/sites/ppl.thirdculture.top/MrsHughHammersley/_werc/config b/werc/sites/ppl.thirdculture.top/MrsHughHammersley/_werc/config deleted file mode 100755 index a252d5d..0000000 --- a/werc/sites/ppl.thirdculture.top/MrsHughHammersley/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit nevada -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/MrsHughHammersley/_werc/style.css b/werc/sites/ppl.thirdculture.top/MrsHughHammersley/_werc/style.css deleted file mode 100755 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/MrsHughHammersley/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/MrsHughHammersley/blog/_werc/config b/werc/sites/ppl.thirdculture.top/MrsHughHammersley/blog/_werc/config deleted file mode 100755 index eb2b445..0000000 --- a/werc/sites/ppl.thirdculture.top/MrsHughHammersley/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=nevada -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/_header.md b/werc/sites/ppl.thirdculture.top/_header.md deleted file mode 100644 index 6fe5d54..0000000 --- a/werc/sites/ppl.thirdculture.top/_header.md +++ /dev/null @@ -1,7 +0,0 @@ -# Third Culture Members - -The following are the pages of third culture friends/members. - -![Ottawa Image](/_werc/pub/imgs/ottawa.png "main") - -Check out various blogs, galleries and other art done by third culture members by clicking the sites below (or on the sidebar). \ No newline at end of file diff --git a/werc/sites/ppl.thirdculture.top/_werc/config b/werc/sites/ppl.thirdculture.top/_werc/config deleted file mode 100644 index ed52285..0000000 --- a/werc/sites/ppl.thirdculture.top/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -masterSite=thirdculture.top -siteTitle='Third Culture Collective' -siteSubTitle='the members of third culture' diff --git a/werc/sites/ppl.thirdculture.top/_werc/pub/imgs/ottawa.png b/werc/sites/ppl.thirdculture.top/_werc/pub/imgs/ottawa.png deleted file mode 100644 index c8a57f5..0000000 Binary files a/werc/sites/ppl.thirdculture.top/_werc/pub/imgs/ottawa.png and /dev/null differ diff --git a/werc/sites/ppl.thirdculture.top/_werc/pub/style.css b/werc/sites/ppl.thirdculture.top/_werc/pub/style.css deleted file mode 100644 index ea184f8..0000000 --- a/werc/sites/ppl.thirdculture.top/_werc/pub/style.css +++ /dev/null @@ -1,51 +0,0 @@ -body { - background: var(--bg-primary); - background-color: var(--bg-primary); - font-family: var(--font-body); -} - -article p, article li { - font-size: large; - font-family: var(--font-body); -} - -img { - max-width: 600px; -} - -.main { - display: flex; - justify-content: center; - align-items: center; - margin: 0; -} - -.grid-container { - display: flex; - flex-wrap: wrap; - gap: 5px; - width: 100%; - max-width: 100%; -} - -.grid-item { - display: flex; - justify-content: center; - align-items: center; - background-color: var(--bg-primary); - border: 2px solid var(--color-secondary); - width: fit-content; - min-width: 88px; - height: 31px; -} - -.grid-item:hover img { - color: white; - text-decoration: underline; -} - -.grid-item img { - max-width: 100%; - max-height: 100%; - color: var(--color-accent) -} diff --git a/werc/sites/ppl.thirdculture.top/adil/_werc/config b/werc/sites/ppl.thirdculture.top/adil/_werc/config deleted file mode 100644 index 8e9d786..0000000 --- a/werc/sites/ppl.thirdculture.top/adil/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit adil -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/adil/_werc/style.css b/werc/sites/ppl.thirdculture.top/adil/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/adil/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/adil/blog/2024/11/13/0/index.md b/werc/sites/ppl.thirdculture.top/adil/blog/2024/11/13/0/index.md deleted file mode 100644 index 663e0a1..0000000 --- a/werc/sites/ppl.thirdculture.top/adil/blog/2024/11/13/0/index.md +++ /dev/null @@ -1,4 +0,0 @@ -Hello world -------------------------------------- - -Hi :3 diff --git a/werc/sites/ppl.thirdculture.top/adil/blog/2024/11/13/1/index.md b/werc/sites/ppl.thirdculture.top/adil/blog/2024/11/13/1/index.md deleted file mode 100644 index 68b5b7e..0000000 --- a/werc/sites/ppl.thirdculture.top/adil/blog/2024/11/13/1/index.md +++ /dev/null @@ -1,5 +0,0 @@ -The Beginnings -------------------------------------- - -I'm currently in the Q's room with Q, IanCobain and Vanne (my gf <3). Shooter is here too. Q just launched the site and is working very hard creating accounts and fixing bugs. I believe I made the first post and IanCobain made the first comment. Very exciting :D -Can't wait to see what everyone shares! diff --git a/werc/sites/ppl.thirdculture.top/adil/blog/_werc/config b/werc/sites/ppl.thirdculture.top/adil/blog/_werc/config deleted file mode 100644 index 170ae45..0000000 --- a/werc/sites/ppl.thirdculture.top/adil/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=adil -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/bea/_werc/config b/werc/sites/ppl.thirdculture.top/bea/_werc/config deleted file mode 100644 index 0daae42..0000000 --- a/werc/sites/ppl.thirdculture.top/bea/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit bea -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/bea/_werc/style.css b/werc/sites/ppl.thirdculture.top/bea/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/bea/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/bea/blog/_werc/config b/werc/sites/ppl.thirdculture.top/bea/blog/_werc/config deleted file mode 100644 index 2682eab..0000000 --- a/werc/sites/ppl.thirdculture.top/bea/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=bea -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/dulien/_werc/config b/werc/sites/ppl.thirdculture.top/dulien/_werc/config deleted file mode 100644 index e578055..0000000 --- a/werc/sites/ppl.thirdculture.top/dulien/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit dulien -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/dulien/_werc/style.css b/werc/sites/ppl.thirdculture.top/dulien/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/dulien/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/dulien/blog/_werc/config b/werc/sites/ppl.thirdculture.top/dulien/blog/_werc/config deleted file mode 100644 index 9a9001f..0000000 --- a/werc/sites/ppl.thirdculture.top/dulien/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=dulien -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/geunf/_werc/config b/werc/sites/ppl.thirdculture.top/geunf/_werc/config deleted file mode 100644 index 8c7cd4e..0000000 --- a/werc/sites/ppl.thirdculture.top/geunf/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit geunf -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/geunf/_werc/style.css b/werc/sites/ppl.thirdculture.top/geunf/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/geunf/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/geunf/blog/_werc/config b/werc/sites/ppl.thirdculture.top/geunf/blog/_werc/config deleted file mode 100644 index c9402c4..0000000 --- a/werc/sites/ppl.thirdculture.top/geunf/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=geunf -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/iancobain/_werc/config b/werc/sites/ppl.thirdculture.top/iancobain/_werc/config deleted file mode 100644 index b0ff5ee..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit iancobain -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/iancobain/_werc/style.css b/werc/sites/ppl.thirdculture.top/iancobain/_werc/style.css deleted file mode 100644 index 4e9a1d3..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} \ No newline at end of file diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md deleted file mode 100644 index 9bf3c05..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md +++ /dev/null @@ -1,13 +0,0 @@ -Where am I? -------------------------------------- - -November 11th, two thousand twenty four, in the parliament of the south. 9:58:31 on a Casio g-shock watch. Something significant is possible. - -![bane_of_the_deathless](http://up.thirdculture.top/aqFSIt6BGr/aktan.png) - -In the right hands, the holy chord may resonate with the new world. - - - - - diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467438/author b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467438/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467438/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467438/data b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467438/data deleted file mode 100644 index 2acdc79..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467438/data +++ /dev/null @@ -1,9 +0,0 @@ -Where am I? -------------------------------------- - -November 11th, two thousand twenty four, in the parliament of the south. 9:58:31 on a Casio g-shock watch. Something significant is possible. - -In the right hands, the holy chord will resonate with the new world. - -![title image](http://up.thirdculture.top/aqFSIt6BGr/aktan.png) - diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467556/author b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467556/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467556/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467556/data b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467556/data deleted file mode 100644 index a070560..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467556/data +++ /dev/null @@ -1,12 +0,0 @@ -Where am I? -------------------------------------- - -November 11th, two thousand twenty four, in the parliament of the south. 9:58:31 on a Casio g-shock watch. Something significant is possible. - -![bane_of_the_deathless](http://up.thirdculture.top/aqFSIt6BGr/aktan.png) - -In the right hands, the holy chord will resonate with the new world. - - - - diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467565/author b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467565/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467565/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467565/data b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467565/data deleted file mode 100644 index a070560..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467565/data +++ /dev/null @@ -1,12 +0,0 @@ -Where am I? -------------------------------------- - -November 11th, two thousand twenty four, in the parliament of the south. 9:58:31 on a Casio g-shock watch. Something significant is possible. - -![bane_of_the_deathless](http://up.thirdculture.top/aqFSIt6BGr/aktan.png) - -In the right hands, the holy chord will resonate with the new world. - - - - diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467601/author b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467601/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467601/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467601/data b/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467601/data deleted file mode 100644 index 9bf3c05..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/index.md_werc/dirdir/1731467601/data +++ /dev/null @@ -1,13 +0,0 @@ -Where am I? -------------------------------------- - -November 11th, two thousand twenty four, in the parliament of the south. 9:58:31 on a Casio g-shock watch. Something significant is possible. - -![bane_of_the_deathless](http://up.thirdculture.top/aqFSIt6BGr/aktan.png) - -In the right hands, the holy chord may resonate with the new world. - - - - - diff --git a/werc/sites/ppl.thirdculture.top/iancobain/blog/_werc/config b/werc/sites/ppl.thirdculture.top/iancobain/blog/_werc/config deleted file mode 100644 index 38d10d0..0000000 --- a/werc/sites/ppl.thirdculture.top/iancobain/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=iancobain -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/index.html b/werc/sites/ppl.thirdculture.top/index.html deleted file mode 100644 index 4fd074b..0000000 --- a/werc/sites/ppl.thirdculture.top/index.html +++ /dev/null @@ -1,37 +0,0 @@ -
    -
    -
    - q -
    -
    - kaz -
    -
    - sean -
    -
    - dulien -
    -
    - geunf -
    -
    - mrshughhammersley -
    -
    - screenshare1112 -
    -
    - vanne -
    -
    - adil -
    -
    - iancobain -
    -
    - bea -
    -
    -
    diff --git a/werc/sites/ppl.thirdculture.top/kaz/_werc/config b/werc/sites/ppl.thirdculture.top/kaz/_werc/config deleted file mode 100644 index 09c94c0..0000000 --- a/werc/sites/ppl.thirdculture.top/kaz/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit kaz -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/kaz/_werc/style.css b/werc/sites/ppl.thirdculture.top/kaz/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/kaz/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/kaz/blog/_werc/config b/werc/sites/ppl.thirdculture.top/kaz/blog/_werc/config deleted file mode 100644 index a3b217f..0000000 --- a/werc/sites/ppl.thirdculture.top/kaz/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=kaz -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/q/_images/q.jpg b/werc/sites/ppl.thirdculture.top/q/_images/q.jpg deleted file mode 100644 index 1d78fb1..0000000 Binary files a/werc/sites/ppl.thirdculture.top/q/_images/q.jpg and /dev/null differ diff --git a/werc/sites/ppl.thirdculture.top/q/_werc/config b/werc/sites/ppl.thirdculture.top/q/_werc/config deleted file mode 100644 index f5deac4..0000000 --- a/werc/sites/ppl.thirdculture.top/q/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit q -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/q/_werc/style.css b/werc/sites/ppl.thirdculture.top/q/_werc/style.css deleted file mode 100644 index b69ac28..0000000 --- a/werc/sites/ppl.thirdculture.top/q/_werc/style.css +++ /dev/null @@ -1,47 +0,0 @@ -:root { - /* Main color scheme */ - --color-primary: #0bda51; - --color-secondary: #6c3082; - --color-accent: #6c3082; - - /* Background colors */ - --bg-primary: #0C1713; - --bg-secondary: #230903; - - /* Text colors */ - --text-primary: #D9D0DE; - --text-secondary: #65655E; - --text-accent: #CC8899; - - /* Header colours */ - --header-primary:#0bda51; - --header-secondary: #0bda51; - --header-tertiary: #CC8899; - --header-other: #6c3082; - - /* Link colors */ - --link-color: #1d75d4ff; - --link-hover: #5B3D8Aff; - - /* Border colors */ - --border-primary: #0bda51; - --border-secondary: #0bda51; - --border-image: #230903; - - /* Special purpose colors */ - --code-color: #18A02Cff; - --header-bg: #0C1713; - --header-text: #D9D0DE; - - /* Font families */ - --font-headers: monospace; - --font-body: monospace; -} - -article p, article li { - font-size: x-large; -} - -header nav { - font-size: large; -} \ No newline at end of file diff --git a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md b/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md deleted file mode 100644 index 13ff846..0000000 --- a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md +++ /dev/null @@ -1,7 +0,0 @@ -Launched third culture -------------------------------------- - -So many bugs in production to fix lol - -update: still bug hunting, I have a list now - diff --git a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731473731/author b/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731473731/author deleted file mode 100644 index bca70f3..0000000 --- a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731473731/author +++ /dev/null @@ -1 +0,0 @@ -q diff --git a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731473731/data b/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731473731/data deleted file mode 100644 index 13ff846..0000000 --- a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731473731/data +++ /dev/null @@ -1,7 +0,0 @@ -Launched third culture -------------------------------------- - -So many bugs in production to fix lol - -update: still bug hunting, I have a list now - diff --git a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731478648/author b/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731478648/author deleted file mode 100644 index bca70f3..0000000 --- a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731478648/author +++ /dev/null @@ -1 +0,0 @@ -q diff --git a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731478648/data b/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731478648/data deleted file mode 100644 index 36c0718..0000000 --- a/werc/sites/ppl.thirdculture.top/q/blog/2024/11/13/0/index.md_werc/dirdir/1731478648/data +++ /dev/null @@ -1,9 +0,0 @@ -Launched third culture -------------------------------------- - -So many bugs in production to fix lol - -update: still bug hunting, I have a list now - -update: did some good fixes goodnight - diff --git a/werc/sites/ppl.thirdculture.top/q/blog/_werc/config b/werc/sites/ppl.thirdculture.top/q/blog/_werc/config deleted file mode 100644 index fc4bea9..0000000 --- a/werc/sites/ppl.thirdculture.top/q/blog/_werc/config +++ /dev/null @@ -1,5 +0,0 @@ -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=q -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/q/index.md b/werc/sites/ppl.thirdculture.top/q/index.md deleted file mode 100644 index 138e965..0000000 --- a/werc/sites/ppl.thirdculture.top/q/index.md +++ /dev/null @@ -1,8 +0,0 @@ -# Q - -Guitarist and vocalist for moridori. - -![picture of me](_images/q.jpg) - -You can find my personal releases under the name morisuki sometimes as well :) - diff --git a/werc/sites/ppl.thirdculture.top/q/index.md_werc/dirdir/1731465268/author b/werc/sites/ppl.thirdculture.top/q/index.md_werc/dirdir/1731465268/author deleted file mode 100644 index bca70f3..0000000 --- a/werc/sites/ppl.thirdculture.top/q/index.md_werc/dirdir/1731465268/author +++ /dev/null @@ -1 +0,0 @@ -q diff --git a/werc/sites/ppl.thirdculture.top/q/index.md_werc/dirdir/1731465268/data b/werc/sites/ppl.thirdculture.top/q/index.md_werc/dirdir/1731465268/data deleted file mode 100644 index 138e965..0000000 --- a/werc/sites/ppl.thirdculture.top/q/index.md_werc/dirdir/1731465268/data +++ /dev/null @@ -1,8 +0,0 @@ -# Q - -Guitarist and vocalist for moridori. - -![picture of me](_images/q.jpg) - -You can find my personal releases under the name morisuki sometimes as well :) - diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/_werc/config b/werc/sites/ppl.thirdculture.top/screenshare1112/_werc/config deleted file mode 100755 index 6b1f83a..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit thomas -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/_werc/style.css b/werc/sites/ppl.thirdculture.top/screenshare1112/_werc/style.css deleted file mode 100755 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/blog/_werc/config b/werc/sites/ppl.thirdculture.top/screenshare1112/blog/_werc/config deleted file mode 100755 index 9e95596..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=thomas -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md deleted file mode 100644 index 855147a..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md +++ /dev/null @@ -1,6 +0,0 @@ -screenshare - tom - PLANT, blog///// - -hi - - - diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549247/author b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549247/author deleted file mode 100644 index aef2455..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549247/author +++ /dev/null @@ -1 +0,0 @@ -screenshare1112 diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549247/data b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549247/data deleted file mode 100644 index d34b367..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549247/data +++ /dev/null @@ -1 +0,0 @@ -In class with Zack, test run #1. Love - SCREENSHARE diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549269/author b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549269/author deleted file mode 100644 index aef2455..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549269/author +++ /dev/null @@ -1 +0,0 @@ -screenshare1112 diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549269/data b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549269/data deleted file mode 100644 index 139597f..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549269/data +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549873/author b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549873/author deleted file mode 100644 index aef2455..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549873/author +++ /dev/null @@ -1 +0,0 @@ -screenshare1112 diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549873/data b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549873/data deleted file mode 100644 index e5a8e7c..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549873/data +++ /dev/null @@ -1,3 +0,0 @@ -blog/ - - diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549920/author b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549920/author deleted file mode 100644 index aef2455..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549920/author +++ /dev/null @@ -1 +0,0 @@ -screenshare1112 diff --git a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549920/data b/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549920/data deleted file mode 100644 index 855147a..0000000 --- a/werc/sites/ppl.thirdculture.top/screenshare1112/index.md_werc/dirdir/1731549920/data +++ /dev/null @@ -1,6 +0,0 @@ -screenshare - tom - PLANT, blog///// - -hi - - - diff --git a/werc/sites/ppl.thirdculture.top/sean/_werc/config b/werc/sites/ppl.thirdculture.top/sean/_werc/config deleted file mode 100644 index 6d727ab..0000000 --- a/werc/sites/ppl.thirdculture.top/sean/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit sean -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/sean/_werc/style.css b/werc/sites/ppl.thirdculture.top/sean/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/sean/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/sean/blog/_werc/config b/werc/sites/ppl.thirdculture.top/sean/blog/_werc/config deleted file mode 100644 index 63c1d39..0000000 --- a/werc/sites/ppl.thirdculture.top/sean/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=sean -blogTitle='' -blogDesc='' diff --git a/werc/sites/ppl.thirdculture.top/sitemap.gz b/werc/sites/ppl.thirdculture.top/sitemap.gz deleted file mode 100644 index 81975a4..0000000 Binary files a/werc/sites/ppl.thirdculture.top/sitemap.gz and /dev/null differ diff --git a/werc/sites/ppl.thirdculture.top/sitemap.txt b/werc/sites/ppl.thirdculture.top/sitemap.txt deleted file mode 100644 index e55e55c..0000000 --- a/werc/sites/ppl.thirdculture.top/sitemap.txt +++ /dev/null @@ -1,39 +0,0 @@ -http://ppl.thirdculture.top/MrsHughHammersley/ -http://ppl.thirdculture.top/MrsHughHammersley/blog/ -http://ppl.thirdculture.top/adil/ -http://ppl.thirdculture.top/adil/blog/ -http://ppl.thirdculture.top/adil/blog/2024/ -http://ppl.thirdculture.top/adil/blog/2024/11/ -http://ppl.thirdculture.top/adil/blog/2024/11/13/ -http://ppl.thirdculture.top/adil/blog/2024/11/13/0/ -http://ppl.thirdculture.top/adil/blog/2024/11/13/1/ -http://ppl.thirdculture.top/bea/ -http://ppl.thirdculture.top/bea/blog/ -http://ppl.thirdculture.top/dulien/ -http://ppl.thirdculture.top/dulien/blog/ -http://ppl.thirdculture.top/geunf/ -http://ppl.thirdculture.top/geunf/blog/ -http://ppl.thirdculture.top/iancobain/ -http://ppl.thirdculture.top/iancobain/blog/ -http://ppl.thirdculture.top/iancobain/blog/2024/ -http://ppl.thirdculture.top/iancobain/blog/2024/11/ -http://ppl.thirdculture.top/iancobain/blog/2024/11/13/ -http://ppl.thirdculture.top/iancobain/blog/2024/11/13/0-dick_and_balls/ -http://ppl.thirdculture.top/kaz/ -http://ppl.thirdculture.top/kaz/blog/ -http://ppl.thirdculture.top/q/ -http://ppl.thirdculture.top/q/blog/ -http://ppl.thirdculture.top/q/blog/2024/ -http://ppl.thirdculture.top/q/blog/2024/11/ -http://ppl.thirdculture.top/q/blog/2024/11/13/ -http://ppl.thirdculture.top/q/blog/2024/11/13/0/ -http://ppl.thirdculture.top/screenshare1112/ -http://ppl.thirdculture.top/screenshare1112/blog/ -http://ppl.thirdculture.top/sean/ -http://ppl.thirdculture.top/sean/blog/ -http://ppl.thirdculture.top/vanne/ -http://ppl.thirdculture.top/vanne/blog/ -http://ppl.thirdculture.top/vanne/blog/2024/ -http://ppl.thirdculture.top/vanne/blog/2024/11/ -http://ppl.thirdculture.top/vanne/blog/2024/11/13/ -http://ppl.thirdculture.top/vanne/blog/2024/11/13/0/ diff --git a/werc/sites/ppl.thirdculture.top/vanne/_werc/config b/werc/sites/ppl.thirdculture.top/vanne/_werc/config deleted file mode 100644 index f719ea0..0000000 --- a/werc/sites/ppl.thirdculture.top/vanne/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit vanne -css_file='_werc/style.css' diff --git a/werc/sites/ppl.thirdculture.top/vanne/_werc/style.css b/werc/sites/ppl.thirdculture.top/vanne/_werc/style.css deleted file mode 100644 index ab6602e..0000000 --- a/werc/sites/ppl.thirdculture.top/vanne/_werc/style.css +++ /dev/null @@ -1,39 +0,0 @@ -:root { - /* 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; -} diff --git a/werc/sites/ppl.thirdculture.top/vanne/blog/2024/11/13/0/index.md b/werc/sites/ppl.thirdculture.top/vanne/blog/2024/11/13/0/index.md deleted file mode 100644 index 0689cb6..0000000 --- a/werc/sites/ppl.thirdculture.top/vanne/blog/2024/11/13/0/index.md +++ /dev/null @@ -1,12 +0,0 @@ -☨ -------------------------------------- - -Vanne here. - -Third culture is too. - -Thank you for this opportunity, Q. - -Good things to come. - --☨ diff --git a/werc/sites/ppl.thirdculture.top/vanne/blog/_werc/config b/werc/sites/ppl.thirdculture.top/vanne/blog/_werc/config deleted file mode 100644 index 64d603a..0000000 --- a/werc/sites/ppl.thirdculture.top/vanne/blog/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=vanne -blogTitle='' -blogDesc='' diff --git a/werc/sites/social.thirdculture.top/_werc/config b/werc/sites/social.thirdculture.top/_werc/config deleted file mode 100644 index 3b03c75..0000000 --- a/werc/sites/social.thirdculture.top/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -masterSite=thirdculture.top -siteTitle='Third Culture Socials' -siteSubTitle='take some time' diff --git a/werc/sites/social.thirdculture.top/index.md b/werc/sites/social.thirdculture.top/index.md deleted file mode 100644 index 2188fc0..0000000 --- a/werc/sites/social.thirdculture.top/index.md +++ /dev/null @@ -1,3 +0,0 @@ -Socials -================================= -This page is under construction diff --git a/werc/sites/thirdculture.top/_files/uploaded/cait.png b/werc/sites/thirdculture.top/_files/uploaded/cait.png deleted file mode 100644 index 1343405..0000000 Binary files a/werc/sites/thirdculture.top/_files/uploaded/cait.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_header.md b/werc/sites/thirdculture.top/_header.md deleted file mode 100644 index 3631f90..0000000 --- a/werc/sites/thirdculture.top/_header.md +++ /dev/null @@ -1,14 +0,0 @@ -# Home of the *third culture* collective - -An art collective formed in Ottawa, ON. - -> "Always leave a place better than when you came" - -Born from the need to express in a setting of isolation and normativity. We seek to be a resilient center for those who search to better themselves and the collapsing cultures around them through **honest expression**. - -![Ruins](/_werc/pub/imgs/dither_ruins.png "main") - -Feel free to explore the site and learn about the collective. We are grateful you paid a visit. Thank you. - -*Note: This site is currently heavily under construction lots of things will change in the near future so if you found this place now you're kinda early to the party, buts thats kinda cool huh?* -
    diff --git a/werc/sites/thirdculture.top/_trust/join.md b/werc/sites/thirdculture.top/_trust/join.md deleted file mode 100644 index f161b8d..0000000 --- a/werc/sites/thirdculture.top/_trust/join.md +++ /dev/null @@ -1,19 +0,0 @@ -# Joining third culture - -The third culture website [thirdculture.top](https://thirdculture.top) is a community/collaborative space. A place where you can contribute towards the collective as well as provide an alternative space for art of any kind. Treat it as your own personal website, we try to give you the most control possible to that end. - -This website is very much under construction and a lot of pages and styles may change in the future so just keep that in mind as we progress with the development of this site. - -## Trust - -Third culture is built on a system of trust, being a contributor you have a responsibility to maintain that trust. For example there may be some things that don't work as intended, or break, or could be exploited. If you discover a bug or an exploit, please message/talk to me (q) directly or send an email to moridori@disroot.org instead of using it maliciously. As a member of third culture, this project is yours as much as it is ours. - -## Technicals - -Third culture is built using the [werc](https://werc.cat-v.org/) framework that uses [plan9](https://plan9.io/plan9/) core utils on the backend. This framework is what allows you to make changes directly using the site with your login, instead of just being a static site (like most other sites). - -The reasons for choosing such a system come from values of minimalism and simplicity. This is done to prioritize your personal expression and give you almost full control over the pages you maintain. - -## Joining - -To join, all you have to do is use [this page](/_tools/hash) to generate a password hash for your account. A password hash is a one way encrypted version of your password (meaning we can't get your password from the encrypted text). We have you generate the hashes so we don't need your password in plaintext to create your account. Although, we still suggest you use a password that's not tied to any other account. Send the details to me, Q, or moridori@disroot.org, and I'll let you know when your account is created and you can log in. diff --git a/werc/sites/thirdculture.top/_trust/todo.md b/werc/sites/thirdculture.top/_trust/todo.md deleted file mode 100644 index 1f8d7e7..0000000 --- a/werc/sites/thirdculture.top/_trust/todo.md +++ /dev/null @@ -1,31 +0,0 @@ -# TODO - -* Create file upload solution. Works with wiki app to allow file upload. Also repository just to upload media for use in more general cases like blog posts and what not. -* Create a [cerca](https://cblgh.org/cerca/) forum -* Create IRC chat -* Create music page -* Create visual page -* Create social page -* Create style guide -* Create font management system (font upload and use) -* Peertube instance for videos -* Populate love page -* Populate wiki -* Create custom user styles as templates -* Create akkoma instance?? - -# Bugs - -* FIX PERMISSION ISSUE WITH RSYNC -* CREATE DEV OPS -* fix utc time -* css not keeping for blog or subpages on personal site -* cookie that works between subdomains -* ico order things by post date -* ico scale title based on side -* ico common locations clicks -* better editing or events page similar to how created -* make clear direction for what pages are for -* mobile needs a hella facelift -* make script for adding new users given hashes and username -* make script for easily updating site pulling new changes and then apply local ones then pushing to server diff --git a/werc/sites/thirdculture.top/_trust/welcome.md b/werc/sites/thirdculture.top/_trust/welcome.md deleted file mode 100644 index e27f033..0000000 --- a/werc/sites/thirdculture.top/_trust/welcome.md +++ /dev/null @@ -1,26 +0,0 @@ -# Welcome to third culture - -Welcome to third culture, with an account you can now log in and make changes to personal pages, wiki and other various pages. To log in all you have to do is click the "User Login" link at the bottom of any page. You only have to do this once per subdomain (meaning to make changes on thirdcultre.top you have to login once and then to make changes on ppl.thirdculture.top you have to log in again on one of those pages) - -![Supporting log in image](/_werc/pub/imgs/loginguide.png "main") - -With an account you have access to edit the wiki, create guides, control over your own members page (at [ppl.thirdculture.top](https://ppl.thirdculture.top)) and access to various other pages. - -Third culture is currently under construction check the [TODO](todo) page to see more details on whats getting done. - -A high priority todo is providing easy file uploads but right now that is not completely possible. For right now you can use the [up.thirdculture.top](https://up.thridculture.top) file uploading service and then make sure to copy the link given to you once it is uploaded and use that link in your image tags. - -Alternatively, if a file management system is better for you, use your login to access the [files.thirdculture.top](https://files.thirdculture.top) page there you can upload files/media directly to the *uploaded* directory where your content can be accessed using the link `https://thirdculture.top/_files/uploaded/FILENAME` on other pages (for example the wiki). Or you can access the *people* pages directly (where I'm trusting you to only edit and upload to the location that belongs to you) there you can upload files directly to the person directory where things can be more easily accessed/managed for your personal pages. - -Note: to include an image in markdown (if used file upload service) you can use: - -Not centered -``` -![image description](https://up.thridculture.top/9Rz0GsM4Mt/gaming.png) -``` -Centered -``` -![image description](https://up.thridculture.top/9Rz0GsM4Mt/gaming.png "main") -``` - -This is a temporary solution for the time being as I develop a way to upload pictures better. diff --git a/werc/sites/thirdculture.top/_werc/config b/werc/sites/thirdculture.top/_werc/config deleted file mode 100644 index be084c7..0000000 --- a/werc/sites/thirdculture.top/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -siteTitle='Third Culture' -siteSubTitle='what is, was, and will be' -conf_enable_blog news/ -blogTitle='Third Culture News' -blogDesc='Updates from the Third Culture collective' -conf_blog_only_pull=1 diff --git a/werc/sites/thirdculture.top/_werc/lib/blagh/new_post.tpl b/werc/sites/thirdculture.top/_werc/lib/blagh/new_post.tpl deleted file mode 100644 index 75c0efa..0000000 --- a/werc/sites/thirdculture.top/_werc/lib/blagh/new_post.tpl +++ /dev/null @@ -1,12 +0,0 @@ -
    -% notices_handler -
    - Submit a new blog post - - - -

    Content:

    -
    - -
    -
    diff --git a/werc/sites/thirdculture.top/_werc/lib/dirdir/edit.tpl b/werc/sites/thirdculture.top/_werc/lib/dirdir/edit.tpl deleted file mode 100755 index 0eff18a..0000000 --- a/werc/sites/thirdculture.top/_werc/lib/dirdir/edit.tpl +++ /dev/null @@ -1,26 +0,0 @@ -
    -

    Editing: %($req_path%)

    -
    -
    - -
    - - - DirDir documents are written using Markdown syntax. -
    -
    - -% if(! ~ $"post_arg_dirdir_preview '') { -

    Preview:

    -
    -% echo $post_arg_edit_text | dos2unix | $formatter -
    -% } diff --git a/werc/sites/thirdculture.top/_werc/lib/footer.inc b/werc/sites/thirdculture.top/_werc/lib/footer.inc deleted file mode 100644 index 666f52a..0000000 --- a/werc/sites/thirdculture.top/_werc/lib/footer.inc +++ /dev/null @@ -1,3 +0,0 @@ -
    - - \ No newline at end of file diff --git a/werc/sites/thirdculture.top/_werc/lib/top_bar.inc b/werc/sites/thirdculture.top/_werc/lib/top_bar.inc deleted file mode 100644 index 07afa32..0000000 --- a/werc/sites/thirdculture.top/_werc/lib/top_bar.inc +++ /dev/null @@ -1,22 +0,0 @@ -
    - [ - home | - members | - events | - music | - social | - visual | - wiki - ] -
    - -
    - [ - moridori | - 4mdv | - faal | - los3r | - ps - ] -
    - diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/2kkidori.png b/werc/sites/thirdculture.top/_werc/pub/imgs/2kkidori.png deleted file mode 100644 index b295726..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/2kkidori.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/4mdv.jpeg b/werc/sites/thirdculture.top/_werc/pub/imgs/4mdv.jpeg deleted file mode 100644 index 1a935d6..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/4mdv.jpeg and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/cables.png b/werc/sites/thirdculture.top/_werc/pub/imgs/cables.png deleted file mode 100644 index ff003dc..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/cables.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/chillin.png b/werc/sites/thirdculture.top/_werc/pub/imgs/chillin.png deleted file mode 100644 index 3f7e74c..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/chillin.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/church.png b/werc/sites/thirdculture.top/_werc/pub/imgs/church.png deleted file mode 100644 index d447626..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/church.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/clutter.png b/werc/sites/thirdculture.top/_werc/pub/imgs/clutter.png deleted file mode 100644 index b8d3465..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/clutter.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/dither_ruins.png b/werc/sites/thirdculture.top/_werc/pub/imgs/dither_ruins.png deleted file mode 100644 index e3d140f..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/dither_ruins.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/drive.png b/werc/sites/thirdculture.top/_werc/pub/imgs/drive.png deleted file mode 100644 index dc61f19..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/drive.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/faal.png b/werc/sites/thirdculture.top/_werc/pub/imgs/faal.png deleted file mode 100644 index e2b9c35..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/faal.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/loginguide.png b/werc/sites/thirdculture.top/_werc/pub/imgs/loginguide.png deleted file mode 100644 index 0ea79f5..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/loginguide.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/los3r.jpeg b/werc/sites/thirdculture.top/_werc/pub/imgs/los3r.jpeg deleted file mode 100644 index a41cc23..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/los3r.jpeg and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/news.png b/werc/sites/thirdculture.top/_werc/pub/imgs/news.png deleted file mode 100644 index 5c55cce..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/news.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/p2.png b/werc/sites/thirdculture.top/_werc/pub/imgs/p2.png deleted file mode 100644 index 758c70d..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/p2.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/patch.png b/werc/sites/thirdculture.top/_werc/pub/imgs/patch.png deleted file mode 100644 index edc23fd..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/patch.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/publicsector.png b/werc/sites/thirdculture.top/_werc/pub/imgs/publicsector.png deleted file mode 100644 index 5c81bdc..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/publicsector.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/ruins.jpeg b/werc/sites/thirdculture.top/_werc/pub/imgs/ruins.jpeg deleted file mode 100644 index 639dfa4..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/ruins.jpeg and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/saya.png b/werc/sites/thirdculture.top/_werc/pub/imgs/saya.png deleted file mode 100644 index 3bffba7..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/saya.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/tcl.svg b/werc/sites/thirdculture.top/_werc/pub/imgs/tcl.svg deleted file mode 100644 index 8b2ad2c..0000000 --- a/werc/sites/thirdculture.top/_werc/pub/imgs/tcl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/tcl2.svg b/werc/sites/thirdculture.top/_werc/pub/imgs/tcl2.svg deleted file mode 100644 index 2dcaf27..0000000 --- a/werc/sites/thirdculture.top/_werc/pub/imgs/tcl2.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/werc/sites/thirdculture.top/_werc/pub/imgs/wires.png b/werc/sites/thirdculture.top/_werc/pub/imgs/wires.png deleted file mode 100644 index 8e1a68d..0000000 Binary files a/werc/sites/thirdculture.top/_werc/pub/imgs/wires.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/about/index.md b/werc/sites/thirdculture.top/about/index.md deleted file mode 100644 index 2e557d4..0000000 --- a/werc/sites/thirdculture.top/about/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# About: Third Culture - -**Third Culture** is an artist collective started by [moridori](https://moridori.xyz), [los3r](https://www.instagram.com/los3333r/) and [public sector](https://www.instagram.com/publicsector.zip/) in 2024. -We currently operate out of Ottawa ON, Canada. - -![Image of members chilling](/_werc/pub/imgs/chillin.png "main") - -**Third Culture** was born out of the need to connect passionate and honest artists in an otherwise isolated landscape (real life and online). Our desire is to build a third place that supports creation and artistry as well as intermingles it with other forms. For many of us, we feel a lack of belonging, scattered passions yet without a shared foundation. This is what stifles many modes of artistry and keeps us isolated from each other and potential friends alike. Third Culture seeks to remedy this. To us real impact is not an increasing number on a screen but tangible change you make in yourself and others lives and seeing it first hand. We want to bridge this gap and allow for free and honest expression to flow through our senses and not locked in our hearts. Leave beautiful ruins. - -We are a joint project with the [public sector](https://www.instagram.com/publicsector.zip/) collective/label. - -**Third Culture** members? Check out the [collective page](/collective). diff --git a/werc/sites/thirdculture.top/collective/4mdv/_werc/4mdvdrive.png b/werc/sites/thirdculture.top/collective/4mdv/_werc/4mdvdrive.png deleted file mode 100644 index 34bb067..0000000 Binary files a/werc/sites/thirdculture.top/collective/4mdv/_werc/4mdvdrive.png and /dev/null differ diff --git a/werc/sites/thirdculture.top/collective/4mdv/_werc/config b/werc/sites/thirdculture.top/collective/4mdv/_werc/config deleted file mode 100644 index cd9a9e4..0000000 --- a/werc/sites/thirdculture.top/collective/4mdv/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -extraHeaders='' -conf_enable_wiki -wiki_editors_groups=mori diff --git a/werc/sites/thirdculture.top/collective/4mdv/_werc/style.css b/werc/sites/thirdculture.top/collective/4mdv/_werc/style.css deleted file mode 100644 index 3bdc15a..0000000 --- a/werc/sites/thirdculture.top/collective/4mdv/_werc/style.css +++ /dev/null @@ -1,74 +0,0 @@ -@font-face { - font-family: "redact"; - src: - url("/pub/style/fonts/Redaction_50-Regular.woff2") format('woff2') -} - -:root { - /* Main color scheme */ - --color-primary: ghostwhite; - --color-secondary: darkred; - --color-accent: cornflowerblue; - - /* Background colors */ - --bg-primary: #000000ff; - --bg-secondary: #000000ff; - - /* Text colors */ - --text-primary: ghostwhite; - --text-secondary: #989898ff; - --text-accent: darkred; - - /* Header colours */ - --header-primary:darkred; - --header-secondary: darkred; - --header-tertiary: cornflowerblue; - --header-other: ghostwhite; - - /* Link colors */ - --link-color: #1d75d4ff; - --link-hover: #5B3D8Aff; - - /* Border colors */ - --border-primary: #111111ff; - --border-secondary: #030303ff; - --border-image: #000300ff; - - /* Special purpose colors */ - --code-color: #18A02Cff; - --header-bg: darkred; - --header-text: #030303ff; - - /* Font families */ - --font-headers: redact, sans-serif; - --font-body: monospace; -} - -body { - background: - linear-gradient(to right, rgba(0, 5, 10, 0.9), rgba(0, 5, 5, 0.9)), - url('4mdvdrive.png'), - 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: 110%; - font-family: monospace; -} - -header h1 .headerLink { - font-family: redact, sans-serif; - font-size: 105%; -} - -article h1 { - font-family: redact, sans-serif; - font-size: 220%; -} - -article { - text-align: center; -} \ No newline at end of file diff --git a/werc/sites/thirdculture.top/collective/4mdv/index.md b/werc/sites/thirdculture.top/collective/4mdv/index.md deleted file mode 100644 index e088afb..0000000 --- a/werc/sites/thirdculture.top/collective/4mdv/index.md +++ /dev/null @@ -1,7 +0,0 @@ -498,516,889 Dead Virgins -============================= -Incelcore band from the worst capital. Still blackpilled despite all efforts. Broken heart society. - -Main Link: \[ [deadcel.me](https://deadcel.me) \] - - \ No newline at end of file diff --git a/werc/sites/thirdculture.top/collective/faal/_werc/config b/werc/sites/thirdculture.top/collective/faal/_werc/config deleted file mode 100644 index cd9a9e4..0000000 --- a/werc/sites/thirdculture.top/collective/faal/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -extraHeaders='' -conf_enable_wiki -wiki_editors_groups=mori diff --git a/werc/sites/thirdculture.top/collective/faal/_werc/style.css b/werc/sites/thirdculture.top/collective/faal/_werc/style.css deleted file mode 100644 index 21d5688..0000000 --- a/werc/sites/thirdculture.top/collective/faal/_werc/style.css +++ /dev/null @@ -1,75 +0,0 @@ -@font-face { - font-family: "director"; - src: - url("/pub/style/fonts/Director-Regular.woff2") format('woff2'), - url("/pub/style/fonts/Director-Regular.woff") format('woff'); -} - -:root { - /* Main color scheme */ - --color-primary: #E4F0FEff; - --color-secondary: rgb(148, 50, 50); - --color-accent: #970101ff; - - /* Background colors */ - --bg-primary: #E0C9A6ff; - --bg-secondary: #cca76dff; - - /* Text colors */ - --text-primary: #000000ff; - --text-secondary: #989898ff; - --text-accent: rgb(148, 50, 50); - - /* Header colours */ - --header-primary:rgb(148, 50, 50); - --header-secondary: rgb(148, 50, 50); - --header-tertiary: #970101ff; - --header-other: #000000ff; - - /* Link colors */ - --link-color: #1d75d4ff; - --link-hover: #5B3D8Aff; - - /* Border colors */ - --border-primary: rgb(148, 50, 50); - --border-secondary: #030303ff; - --border-image: #000300ff; - - /* Special purpose colors */ - --code-color: #18A02Cff; - --header-bg: rgb(148, 50, 50); - --header-text: #030303ff; - - /* Font families */ - --font-headers: director, sans-serif; - --font-body: serif; -} - -body { - background: 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: 90%; - font-family: serif; -} - -header h1 .headerLink { - font-family: director, sans-serif; -} - -article h1 { - font-family: director, sans-serif; -} - -article { - text-align: center; -} - -article img { - border: 0.4em solid var(--border-image); - background-color: var(--border-image) !important; -} \ No newline at end of file diff --git a/werc/sites/thirdculture.top/collective/faal/index.md b/werc/sites/thirdculture.top/collective/faal/index.md deleted file mode 100644 index 471237b..0000000 --- a/werc/sites/thirdculture.top/collective/faal/index.md +++ /dev/null @@ -1,9 +0,0 @@ -Future As A Letterbomber -============================= -Future As A Letterbomber is a post-hardcore band. -*No price is too high to pay for the privilege of owning yourself* - -Main Link: \[ [website](https://moridori.xyz/letterbomber/) \] - - - diff --git a/werc/sites/thirdculture.top/collective/index.md b/werc/sites/thirdculture.top/collective/index.md deleted file mode 100644 index 49e3500..0000000 --- a/werc/sites/thirdculture.top/collective/index.md +++ /dev/null @@ -1,25 +0,0 @@ -# Third Culture Collective - -Our sounds, drawings, writing all support a grander purpose towards community. Ottawa (and our bedrooms) are cold, dark, quiet and lonely places it doesn't always have to be this way. Together we can build a place to shelter each other from the harsh systems and hierarchies we have found ourselves forced under and increasingly tortured by. Break through and find motivation in ourselves and common ground with others. Somewhere we actually belong. - -![Parliament 2](/_werc/pub/imgs/p2.png "main") - -## Members - -* [moridori](moridori) -* [los3r](los3r) -* [Future as a Letterbomber](faal) -* [498,516,889 Dead Virgins](4mdv) -* [Public Sector](public_sector) - -A larger members list can be found on the members page along with their works. - -## Connect - -You can subscribe to our [news](//news) feed with RSS and I'll make a mailing list one of these days too! - -I would also suggest following the people/bands that make up third culture as it grows. They are the engine. - -## Get In Touch - -You can talk over email for more formal communication [ moridori (at) disroot.org ] alternatively try the forum, the fediverse, or irc (most of these will come when I get to self hosting them). diff --git a/werc/sites/thirdculture.top/collective/los3r/_werc/config b/werc/sites/thirdculture.top/collective/los3r/_werc/config deleted file mode 100644 index d30532a..0000000 --- a/werc/sites/thirdculture.top/collective/los3r/_werc/config +++ /dev/null @@ -1,5 +0,0 @@ -extraHeaders='' -conf_enable_wiki -conf_enable_cssedit loser -css_file='_werc/style.css' -wiki_editors_groups=loser diff --git a/werc/sites/thirdculture.top/collective/los3r/_werc/style.css b/werc/sites/thirdculture.top/collective/los3r/_werc/style.css deleted file mode 100644 index 3747050..0000000 --- a/werc/sites/thirdculture.top/collective/los3r/_werc/style.css +++ /dev/null @@ -1,82 +0,0 @@ -@font-face { - font-family: "man"; - src: - url("/pub/style/fonts/Manusquared-Bold.woff2") format('woff2'), - url("/pub/style/fonts/Manusquared-Bold.woff") format('woff'); -} -:root { - /* Main color scheme */ - --color-primary: #000000ff; - --color-secondary: #5B3D8Aff; - --color-accent: rgb(25, 59, 121); - - /* Background colors */ - --bg-primary: #d6d6d6ff; - --bg-secondary: #c2c2c2ff; - - /* Text colors */ - --text-primary: #000000ff; - --text-secondary: #989898ff; - --text-accent: #5B3D8Aff; - - /* Header colours */ - --header-primary:#5B3D8Aff; - --header-secondary: #5B3D8Aff; - --header-tertiary: rgb(25, 59, 121); - --header-other: #000000ff; - - /* Link colors */ - --link-color: rgb(31, 76, 160); - --link-hover: #5B3D8Aff; - - /* Border colors */ - --border-primary: #000000ff; - --border-secondary: #030303ff; - --border-image: #000300ff; - - /* Special purpose colors */ - --code-color: #18A02Cff; - --header-bg: #5B3D8Aff; - --header-text: #030303ff; - - /* Font families */ - --font-headers: man, sans-serif; - --font-body: verdana, helvetica, arial, sans-serif; -} - -body { - background: 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: 90%; - font-family: verdana, sans-serif; -} - -header h1 .headerLink { - font-family: man, sans-serif; -} - -article h1 { - font-family: man, sans-serif; -} - -article { - text-align: center; -} - -article img { - border: 0.4em solid var(--border-image); - background-color: var(--border-image) !important; -} - - - - - - - - diff --git a/werc/sites/thirdculture.top/collective/los3r/index.md b/werc/sites/thirdculture.top/collective/los3r/index.md deleted file mode 100644 index 38c6149..0000000 --- a/werc/sites/thirdculture.top/collective/los3r/index.md +++ /dev/null @@ -1,17 +0,0 @@ -Los3r -============================= -i dont want to b a los3r - -Main Link: \[ [Instagram](https://www.instagram.com/los3333r/) \] - - - -\[ [Bandcamp](https://los3r.bandcamp.com/music) \] -\[ [Youtube](https://www.youtube.com/@los3333r) \] -\[ [Soundcloud](https://soundcloud.com/los3333r) \] -\[ [Spotify](https://open.spotify.com/artist/1Ue0AwMk9yZMuwrlFDaJzc) \] -\[ [Instagram](https://www.instagram.com/los3333r/) \] -\[ [Apple](https://music.apple.com/us/artist/los3r/1661508353) \] - - - diff --git a/werc/sites/thirdculture.top/collective/moridori/_werc/config b/werc/sites/thirdculture.top/collective/moridori/_werc/config deleted file mode 100644 index cd9a9e4..0000000 --- a/werc/sites/thirdculture.top/collective/moridori/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -extraHeaders='' -conf_enable_wiki -wiki_editors_groups=mori diff --git a/werc/sites/thirdculture.top/collective/moridori/_werc/style.css b/werc/sites/thirdculture.top/collective/moridori/_werc/style.css deleted file mode 100644 index 6cc26dd..0000000 --- a/werc/sites/thirdculture.top/collective/moridori/_werc/style.css +++ /dev/null @@ -1,77 +0,0 @@ -@font-face { - font-family: "threetwo"; - src: - url("/pub/style/fonts/3270-Regular.woff") format('woff'); -} - -:root { - /* Main color scheme */ - --color-primary: #ffffffff; - --color-secondary: #d478eeff; - --color-accent: #303030ff; - - /* Background colors */ - --bg-primary: #000000ff; - --bg-secondary: #000000ff; - - /* Text colors */ - --text-primary: #ffffffff; - --text-secondary: #989898ff; - --text-accent: #d478eeff; - - /* Header colours */ - --header-primary:#d478eeff; - --header-secondary: #d478eeff; - --header-tertiary: #303030ff; - --header-other: #ffffffff; - - /* Link colors */ - --link-color: #1d75d4ff; - --link-hover: #5B3D8Aff; - - /* Border colors */ - --border-primary: rgb(10, 10, 10); - --border-secondary: #030303ff; - --border-image: #303030ff; - - /* Special purpose colors */ - --code-color: #18A02Cff; - --header-bg: #d478eeff; - --header-text: #030303ff; - - /* Font families */ - --font-headers: threetwo, sans-serif; - --font-body: monospace; -} - -body { - background: 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: 110%; - font-family: monospace; -} - -header h1 .headerLink { - font-family: threetwo, sans-serif; - font-size: 120%; -} - -article h1 { - font-family: threetwo, sans-serif; - font-size: 260%; - margin-top: 10px; -} - -article { - text-align: center; -} - -article img { - border: 0.4em solid var(--border-image); - background-color: var(--bg-primary) !important; -} \ No newline at end of file diff --git a/werc/sites/thirdculture.top/collective/moridori/index.md b/werc/sites/thirdculture.top/collective/moridori/index.md deleted file mode 100644 index 7658f76..0000000 --- a/werc/sites/thirdculture.top/collective/moridori/index.md +++ /dev/null @@ -1,12 +0,0 @@ -moridori -============================= -Emotional hardcore's wonderful death. -Main Link: \[ [https://moridori.xyz](https://moridori.xyz) \] - - - -\[ [Music](https://moridori.xyz/#recordings) \] -\[ [Youtube](https://www.youtube.com/@killmoridori) \] - - - diff --git a/werc/sites/thirdculture.top/collective/public_sector/_werc/config b/werc/sites/thirdculture.top/collective/public_sector/_werc/config deleted file mode 100644 index 697a626..0000000 --- a/werc/sites/thirdculture.top/collective/public_sector/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -extraHeaders='' -conf_enable_wiki -wiki_editors_groups=ps diff --git a/werc/sites/thirdculture.top/collective/public_sector/_werc/style.css b/werc/sites/thirdculture.top/collective/public_sector/_werc/style.css deleted file mode 100644 index edae068..0000000 --- a/werc/sites/thirdculture.top/collective/public_sector/_werc/style.css +++ /dev/null @@ -1,55 +0,0 @@ -:root { - /* Main color scheme */ - --color-primary: #000000; - --color-secondary: #000000; - --color-accent: rgb(162, 255, 0); - - /* Background colors */ - --bg-primary: #ffffffff; - --bg-secondary: #ffffffff; - - /* Text colors */ - --text-primary: #000000; - --text-secondary: #000000; - --text-accent: rgb(162, 255, 0); - - /* Header colours */ - --header-primary:#000000; - --header-secondary: #000000; - --header-tertiary: #000000; - --header-other: #000000; - - /* Link colors */ - --link-color: #1d75d4ff; - --link-hover: #5B3D8Aff; - - /* Border colors */ - --border-primary: rgb(10, 10, 10); - --border-secondary: #030303ff; - --border-image: #303030ff; - - /* Special purpose colors */ - --code-color: #18A02Cff; - --header-bg: #ffffffff; - --header-text: #000000; - - /* Font families */ - --font-headers: sans-serif; - --font-body: sans-serif; -} - -body { - background: 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: 110%; - font-family: monospace; -} - -article { - text-align: center; -} \ No newline at end of file diff --git a/werc/sites/thirdculture.top/collective/public_sector/index.md b/werc/sites/thirdculture.top/collective/public_sector/index.md deleted file mode 100644 index 6a3ae06..0000000 --- a/werc/sites/thirdculture.top/collective/public_sector/index.md +++ /dev/null @@ -1,5 +0,0 @@ -Public Sector -============================= -Main Link: \[ [https://www.instagram.com/publicsector.zip/](https://www.instagram.com/publicsector.zip/) \] - - diff --git a/werc/sites/thirdculture.top/favicon.ico b/werc/sites/thirdculture.top/favicon.ico deleted file mode 100644 index cb6f257..0000000 Binary files a/werc/sites/thirdculture.top/favicon.ico and /dev/null differ diff --git a/werc/sites/thirdculture.top/favicon.svg b/werc/sites/thirdculture.top/favicon.svg deleted file mode 100644 index 2dcaf27..0000000 --- a/werc/sites/thirdculture.top/favicon.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/werc/sites/thirdculture.top/guides/_werc/config b/werc/sites/thirdculture.top/guides/_werc/config deleted file mode 100644 index cd55bcf..0000000 --- a/werc/sites/thirdculture.top/guides/_werc/config +++ /dev/null @@ -1,2 +0,0 @@ -conf_enable_comments -conf_enable_wiki diff --git a/werc/sites/thirdculture.top/guides/index.md b/werc/sites/thirdculture.top/guides/index.md deleted file mode 100644 index c768953..0000000 --- a/werc/sites/thirdculture.top/guides/index.md +++ /dev/null @@ -1,7 +0,0 @@ -# Guides - -Under this page you can find various guides of an assorted kind of nature. - -![image of support](/_werc/pub/imgs/news.png "main") - -We value guides on anything really. Please submit if you have something you want to contribute. \ No newline at end of file diff --git a/werc/sites/thirdculture.top/index.md b/werc/sites/thirdculture.top/index.md deleted file mode 100644 index e69de29..0000000 diff --git a/werc/sites/thirdculture.top/index.rss b/werc/sites/thirdculture.top/index.rss deleted file mode 100644 index e69de29..0000000 diff --git a/werc/sites/thirdculture.top/love/Metal Gear Solid.md b/werc/sites/thirdculture.top/love/Metal Gear Solid.md deleted file mode 100644 index e69de29..0000000 diff --git a/werc/sites/thirdculture.top/love/_werc/config b/werc/sites/thirdculture.top/love/_werc/config deleted file mode 100644 index 003eac0..0000000 --- a/werc/sites/thirdculture.top/love/_werc/config +++ /dev/null @@ -1,2 +0,0 @@ -conf_enable_wiki - diff --git a/werc/sites/thirdculture.top/love/books.md b/werc/sites/thirdculture.top/love/books.md deleted file mode 100644 index 3a0370d..0000000 --- a/werc/sites/thirdculture.top/love/books.md +++ /dev/null @@ -1,7 +0,0 @@ -# Books - -The ever growing third culture library! - -**The Fall** by *Albert Camus* I really like this book, it's helped me quite a bit throughout my life to have read this. (q) -**Welcome to the NHK** by *Tatsuhiko Takimoto* better than the anime (which is also very good) and came first. (q) - diff --git a/werc/sites/thirdculture.top/love/games.md b/werc/sites/thirdculture.top/love/games.md deleted file mode 100644 index 9dcd640..0000000 --- a/werc/sites/thirdculture.top/love/games.md +++ /dev/null @@ -1,25 +0,0 @@ -# Games - -Cool games that have made an impact on our lives. - -(Hey q I organized these in alphabetical order. Lmk if that's okay or if you want it by author) - -## Video Games - -[cave story](https://www.cavestory.org/) this is the game that inspired me to want to become an indie dev and make games for a living. This is a link to the tribute site, but play the game. (q) - -Dishonored and Dishonored 2. Steampunk stealth-action immersive sim. Super interesting world with a lot of detail in it. You use super powers to teleport, entering the bodies of people/animals, summon man-eating rats, etc. Very engaging with a lot of replay value. Choosing between either violent/non-violent and overt/non-overt approaches changes how the world is affected around you. Despite the game being about assassination, you can beat it without killing a single person. Highly recommend. -- (adil) - -Hotline Miami and Hotline Miami 2. Sharp and expressive use of top down pixel art. Addicting gameplay. GOATED soundtrack. A story that seems simple on the surface but invites a lot of digging from the audience. The first game definitely has better gameplay and level design than the second game but the second one has a better score and story. It's a must-play for anyone who loves the video game medium. -- (adil) - -Metal Gear Solid (1 through 3). What more is there to say? It's the greatest action-stealth franchise with kick-ass music, boss fights, and voice acting wrapped in a conspiracy thriller that becomes more relevant each year. I like 4 and 5 too but 1 - 3 are my favourites. -- (adil) - -[yume nikki/yume 2kki](https://ynoproject.net/) yume nikki has real fucking aura man. I love this game and shows how unique games are as an art form. Creating a world for you to explore. Because of this novel idea there are many very cool games inspired from it, I have played many of them and their influences is in much of my work. The link is to an online project that allows you to play these amazing games in browser. (q) - - - - - diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731347224/author b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731347224/author deleted file mode 100644 index 7428126..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731347224/author +++ /dev/null @@ -1 +0,0 @@ -artificer diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731347224/data b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731347224/data deleted file mode 100644 index 7b6a304..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731347224/data +++ /dev/null @@ -1,10 +0,0 @@ -# Games - -Cool games that have made an impact on our lives. - -## Video Games - -[cave story](https://www.cavestory.org/) this is the game that inspired me to want to become an indie dev and make games for a living. This is a link to the tribute site, but play the game. (q) - -[yume nikki/yume 2kki](https://ynoproject.net/) yume nikki has real fucking aura man. I love this game and shows how unique games are as an art form. Creating a world for you to explore. Because of this novel idea there are many very cool games inspired from it, I have played many of them and their influences is in much of my work. The link is to an online project that allows you to play these amazing games in browser. (q) - diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731523875/author b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731523875/author deleted file mode 100644 index c8aba94..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731523875/author +++ /dev/null @@ -1 +0,0 @@ -adil diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731523875/data b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731523875/data deleted file mode 100644 index a23079a..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731523875/data +++ /dev/null @@ -1,14 +0,0 @@ -# Games - -Cool games that have made an impact on our lives. - -## Video Games - -Metal Gear Solid (1 through 3). What more is there to say? It's the greatest action-stealth franchise with kick-ass music, boss fights, and voice acting wrapped in a conspiracy thriller that becomes more relevant each year. I like 4 and 5 too but 1 - 3 are my favourites. -- adil - -[cave story](https://www.cavestory.org/) this is the game that inspired me to want to become an indie dev and make games for a living. This is a link to the tribute site, but play the game. (q) - -[yume nikki/yume 2kki](https://ynoproject.net/) yume nikki has real fucking aura man. I love this game and shows how unique games are as an art form. Creating a world for you to explore. Because of this novel idea there are many very cool games inspired from it, I have played many of them and their influences is in much of my work. The link is to an online project that allows you to play these amazing games in browser. (q) - - diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731525021/author b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731525021/author deleted file mode 100644 index c8aba94..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731525021/author +++ /dev/null @@ -1 +0,0 @@ -adil diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731525021/data b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731525021/data deleted file mode 100644 index c1e9675..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731525021/data +++ /dev/null @@ -1,21 +0,0 @@ -# Games - -Cool games that have made an impact on our lives. - -## Video Games - -Dishonored and Dishonored 2. Steampunk stealth-action immersive sim. Super interesting world with a lot of detail in it. You use super powers to teleport, entering the bodies of people/animals, summon man-eating rats, etc. Very engaging with a lot of replay value. Choosing between either violent/non-violent and overt/non-overt approaches changes how the world is affected around you. Despite the game being about assassination, you can beat it without killing a single person. Highly recommend. -- adil - -Hotline Miami and Hotline Miami 2. Sharp and expressive use of top down pixel art. Addicting gameplay. GOATED soundtrack. A story that seems simple on the surface but invites a lot of digging from the audience. The first game definitely has better gameplay and level design than the second game but the second one has a better score and story. It's a must-play for anyone who loves the video game medium. -- adil - -Metal Gear Solid (1 through 3). What more is there to say? It's the greatest action-stealth franchise with kick-ass music, boss fights, and voice acting wrapped in a conspiracy thriller that becomes more relevant each year. I like 4 and 5 too but 1 - 3 are my favourites. -- adil - -[cave story](https://www.cavestory.org/) this is the game that inspired me to want to become an indie dev and make games for a living. This is a link to the tribute site, but play the game. (q) - -[yume nikki/yume 2kki](https://ynoproject.net/) yume nikki has real fucking aura man. I love this game and shows how unique games are as an art form. Creating a world for you to explore. Because of this novel idea there are many very cool games inspired from it, I have played many of them and their influences is in much of my work. The link is to an online project that allows you to play these amazing games in browser. (q) - - - diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526784/author b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526784/author deleted file mode 100644 index c8aba94..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526784/author +++ /dev/null @@ -1 +0,0 @@ -adil diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526784/data b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526784/data deleted file mode 100644 index 6628cad..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526784/data +++ /dev/null @@ -1,24 +0,0 @@ -# Games - -Cool games that have made an impact on our lives. - -(Hey q I organized these in alphabetical order. Lmk if that's okay or if you want it by author) - -## Video Games - -[cave story](https://www.cavestory.org/) this is the game that inspired me to want to become an indie dev and make games for a living. This is a link to the tribute site, but play the game. (q) - -Dishonored and Dishonored 2. Steampunk stealth-action immersive sim. Super interesting world with a lot of detail in it. You use super powers to teleport, entering the bodies of people/animals, summon man-eating rats, etc. Very engaging with a lot of replay value. Choosing between either violent/non-violent and overt/non-overt approaches changes how the world is affected around you. Despite the game being about assassination, you can beat it without killing a single person. Highly recommend. -- adil - -Hotline Miami and Hotline Miami 2. Sharp and expressive use of top down pixel art. Addicting gameplay. GOATED soundtrack. A story that seems simple on the surface but invites a lot of digging from the audience. The first game definitely has better gameplay and level design than the second game but the second one has a better score and story. It's a must-play for anyone who loves the video game medium. -- adil - -Metal Gear Solid (1 through 3). What more is there to say? It's the greatest action-stealth franchise with kick-ass music, boss fights, and voice acting wrapped in a conspiracy thriller that becomes more relevant each year. I like 4 and 5 too but 1 - 3 are my favourites. -- adil - -[yume nikki/yume 2kki](https://ynoproject.net/) yume nikki has real fucking aura man. I love this game and shows how unique games are as an art form. Creating a world for you to explore. Because of this novel idea there are many very cool games inspired from it, I have played many of them and their influences is in much of my work. The link is to an online project that allows you to play these amazing games in browser. (q) - - - - diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526870/author b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526870/author deleted file mode 100644 index c8aba94..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526870/author +++ /dev/null @@ -1 +0,0 @@ -adil diff --git a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526870/data b/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526870/data deleted file mode 100644 index 9dcd640..0000000 --- a/werc/sites/thirdculture.top/love/games.md_werc/dirdir/1731526870/data +++ /dev/null @@ -1,25 +0,0 @@ -# Games - -Cool games that have made an impact on our lives. - -(Hey q I organized these in alphabetical order. Lmk if that's okay or if you want it by author) - -## Video Games - -[cave story](https://www.cavestory.org/) this is the game that inspired me to want to become an indie dev and make games for a living. This is a link to the tribute site, but play the game. (q) - -Dishonored and Dishonored 2. Steampunk stealth-action immersive sim. Super interesting world with a lot of detail in it. You use super powers to teleport, entering the bodies of people/animals, summon man-eating rats, etc. Very engaging with a lot of replay value. Choosing between either violent/non-violent and overt/non-overt approaches changes how the world is affected around you. Despite the game being about assassination, you can beat it without killing a single person. Highly recommend. -- (adil) - -Hotline Miami and Hotline Miami 2. Sharp and expressive use of top down pixel art. Addicting gameplay. GOATED soundtrack. A story that seems simple on the surface but invites a lot of digging from the audience. The first game definitely has better gameplay and level design than the second game but the second one has a better score and story. It's a must-play for anyone who loves the video game medium. -- (adil) - -Metal Gear Solid (1 through 3). What more is there to say? It's the greatest action-stealth franchise with kick-ass music, boss fights, and voice acting wrapped in a conspiracy thriller that becomes more relevant each year. I like 4 and 5 too but 1 - 3 are my favourites. -- (adil) - -[yume nikki/yume 2kki](https://ynoproject.net/) yume nikki has real fucking aura man. I love this game and shows how unique games are as an art form. Creating a world for you to explore. Because of this novel idea there are many very cool games inspired from it, I have played many of them and their influences is in much of my work. The link is to an online project that allows you to play these amazing games in browser. (q) - - - - - diff --git a/werc/sites/thirdculture.top/love/index.md b/werc/sites/thirdculture.top/love/index.md deleted file mode 100644 index 7cef0d5..0000000 --- a/werc/sites/thirdculture.top/love/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# Things we love! - -This page is a somewhat categorized list of things we think are cool. Think of this as a bookmarks page for third culture and use it to find out about other interesting things going on locally or otherwise online. We believe that any website should maintain a list of their creator's favourite things. - -![cool love title page image](/_werc/pub/imgs/saya.png "main") - -See the side bar or see below for a list of catagories. - -* [music we love](music) -* [sites we love](sites) -* [games we love](games) -* [books we love](books) -* [videos we love](video) - diff --git a/werc/sites/thirdculture.top/love/music.md b/werc/sites/thirdculture.top/love/music.md deleted file mode 100644 index dc1418d..0000000 --- a/werc/sites/thirdculture.top/love/music.md +++ /dev/null @@ -1,8 +0,0 @@ -# Music - -Music valued by third culture and its members! - -## Influences -I maintain a list on my band moridori's site: [moridori's influences](https://moridori.xyz/influences.html). (q) - - diff --git a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522391/author b/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522391/author deleted file mode 100644 index 7428126..0000000 --- a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522391/author +++ /dev/null @@ -1 +0,0 @@ -artificer diff --git a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522391/data b/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522391/data deleted file mode 100644 index f27ae49..0000000 --- a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522391/data +++ /dev/null @@ -1,9 +0,0 @@ -# Music - -Music valued by third culture and its members! - -## Influences -I maintain a list on my band moridori's site: [moridori's influences](https://moridori.xyz/influences.html). (q) - -bladee - diff --git a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522401/author b/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522401/author deleted file mode 100644 index 7428126..0000000 --- a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522401/author +++ /dev/null @@ -1 +0,0 @@ -artificer diff --git a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522401/data b/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522401/data deleted file mode 100644 index dc1418d..0000000 --- a/werc/sites/thirdculture.top/love/music.md_werc/dirdir/1730522401/data +++ /dev/null @@ -1,8 +0,0 @@ -# Music - -Music valued by third culture and its members! - -## Influences -I maintain a list on my band moridori's site: [moridori's influences](https://moridori.xyz/influences.html). (q) - - diff --git a/werc/sites/thirdculture.top/love/sites.md b/werc/sites/thirdculture.top/love/sites.md deleted file mode 100644 index 3e8c7f7..0000000 --- a/werc/sites/thirdculture.top/love/sites.md +++ /dev/null @@ -1,25 +0,0 @@ -# Sites - -Collection of websites that are interesting and/or have value to us. - -## People - -[gsracz](https://gsracz.com) Gabes site. (q) - -## Tech - -[hundred rabbits](https://100r.co), [xxiivv.com](https://xxiivv.com), [kokorobot.ca](https://kokorobot.ca) a 2 person collective focused on data preservation and sailing while also utilizing tech. Great intro into the benefits of minimalism they also make music and all kinds of art. Highly worth a visit, an abundance of useful and inspiring information/projects/art. (q) - -[cat-v](https://cat-v.org/) If you're into minimalism and know a bit about true personal computing this is a useful place. Their quotes page is highly entertaining and informative for any kind of person though. (q) - -[The Hitchhiker's Guide to Online Anonymity](https://anonymousplanet.org/guide.html) Good resource if you are in the know. (alx) - -### Service Providers - -[disroot](https://disroot.org) moridori uses this collectives services as an email provider. The desire for freedom for me truly requires one to be anti big governments and anti big corporation. I support these guys mission and they offer an awesome service. (q) - -[cock.li](https://cock.li) a more based email service provider. They offer a great service and recently started not requiring invites (again). 498,512,889 Dead Virgins use these guys for email, so basically youre not based and auramaxxed if you don't have an email with them. (alx) - -## Collectives - -[1maginary.online](https://1maginary.online) dulien showed me this site and it is what helped inspire this project. They support cool online/hyperpop artists and the radio is super cool! (q) \ No newline at end of file diff --git a/werc/sites/thirdculture.top/love/video.md b/werc/sites/thirdculture.top/love/video.md deleted file mode 100644 index f192c0d..0000000 --- a/werc/sites/thirdculture.top/love/video.md +++ /dev/null @@ -1,13 +0,0 @@ -# Video/Audio - -Video and other related content that we like! - -## Videos - -[pilotredsun](https://www.youtube.com/@PilotRedSun) I quote this guy all the time. (q) -[neverknowsbest](https://www.youtube.com/@NeverKnowsBest) makes gaming cool. (q) -[jimmymcgee](https://www.youtube.com/@JimmyMcG33) best video game reviews ever. (q) - -## Podcast - -[horseshoe theory](https://www.youtube.com/@HSTPOD) this is a podcast cohosted by jreg who used to be a somewhat prominent figure in Ottawa (and is a popular canadian youtuber). He has recently created his own collective in Toronto to much success. This project in particular helped inspire this project as a dream that could happen and its a great resource to see what cool people in Canada are doing. Both hosts believe theres no hope in Ottawa, I guess we will see about that then... (q) \ No newline at end of file diff --git a/werc/sites/thirdculture.top/news/2024/07/12/0/index.md b/werc/sites/thirdculture.top/news/2024/07/12/0/index.md deleted file mode 100644 index 38e59d3..0000000 --- a/werc/sites/thirdculture.top/news/2024/07/12/0/index.md +++ /dev/null @@ -1,4 +0,0 @@ -third culture is founded -------------------------------------- - -Far out and away from the crowd, in complete darkness, a *match is lit*. diff --git a/werc/sites/thirdculture.top/news/_header.md b/werc/sites/thirdculture.top/news/_header.md deleted file mode 100644 index 4db53e2..0000000 --- a/werc/sites/thirdculture.top/news/_header.md +++ /dev/null @@ -1 +0,0 @@ -Subscribe to the **Third Culture** news feed: **\[[rss](index.rss)|[atom](index.atom)|[json](feed.json)\]** \ No newline at end of file diff --git a/werc/sites/thirdculture.top/news/_werc/config b/werc/sites/thirdculture.top/news/_werc/config deleted file mode 100644 index 5ea549d..0000000 --- a/werc/sites/thirdculture.top/news/_werc/config +++ /dev/null @@ -1,6 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -conf_blog_editors=core -blogTitle='Third Culture News' -blogDesc='Updates from the Third Culture collective' diff --git a/werc/sites/thirdculture.top/news/feed.json b/werc/sites/thirdculture.top/news/feed.json deleted file mode 100644 index e69de29..0000000 diff --git a/werc/sites/thirdculture.top/news/index.atom b/werc/sites/thirdculture.top/news/index.atom deleted file mode 100644 index e69de29..0000000 diff --git a/werc/sites/thirdculture.top/news/index.rss b/werc/sites/thirdculture.top/news/index.rss deleted file mode 100644 index e69de29..0000000 diff --git a/werc/sites/thirdculture.top/philosophy/index.md b/werc/sites/thirdculture.top/philosophy/index.md deleted file mode 100644 index 0e4c0e5..0000000 --- a/werc/sites/thirdculture.top/philosophy/index.md +++ /dev/null @@ -1,19 +0,0 @@ -# Philosophy: Third Culture - -This page is under construction to give time for our members to discuss and define a core value system for this project. - - - -![lost in the wires](/_werc/pub/imgs/cables.png "main") - diff --git a/werc/sites/thirdculture.top/support/index.md b/werc/sites/thirdculture.top/support/index.md deleted file mode 100644 index 868ece4..0000000 --- a/werc/sites/thirdculture.top/support/index.md +++ /dev/null @@ -1,19 +0,0 @@ -# Support: Third Culture - -Thanks for showing interest in supporting us! There are many ways you can support the third culture project. This page will show a few ways you can. - -![image of support](/_werc/pub/imgs/church.png "main") - -## Join the Collective - -If you resonate with our mission and want to build a community here in Ottawa ON, then lets fucking do this. Contact us. More info can be read on the [collective](/collective) page. My inbox is also always open at moridori(at)disroot.org or feel free to contact one of our members over Instagram. Talking to any of the members in person too is always welcome. - -## Marketplace - -Check out Third Culture's marketplace. Many of these things may be one off things or just somethings we want to sell. You can find merch, art, useful things; all being sold by the members or third culture. We will post new listings here as they come up. - -Go to the [Marketplace](marketplace). - -## Donation - -Donations aren't necessarily a priority right now. Feel free to chip in a bit extra at our members shows/house shows though, this shit ain't free for us. \ No newline at end of file diff --git a/werc/sites/thirdculture.top/support/marketplace/_header.md b/werc/sites/thirdculture.top/support/marketplace/_header.md deleted file mode 100644 index d7d0855..0000000 --- a/werc/sites/thirdculture.top/support/marketplace/_header.md +++ /dev/null @@ -1,9 +0,0 @@ -# Marketplace: Third Culture - -Here you may find: **merch, drawings, art, physical music releases, mixtapes, stuff we are trying to get rid of**. - -![image of clutter](/_werc/pub/imgs/clutter.png "main") - -Details about how to go about payment and getting the item you want will be contained in each post. We will do out best with making sure that sold items are marked as such. Hope you find something you like. - -- - - diff --git a/werc/sites/thirdculture.top/support/marketplace/_werc/config b/werc/sites/thirdculture.top/support/marketplace/_werc/config deleted file mode 100644 index 6492e41..0000000 --- a/werc/sites/thirdculture.top/support/marketplace/_werc/config +++ /dev/null @@ -1,4 +0,0 @@ -conf_enable_wiki -conf_enable_blog -conf_blog_only_pull=0 -blogTitle='Whats For Sale?' diff --git a/werc/sites/thirdculture.top/wiki/_werc/config b/werc/sites/thirdculture.top/wiki/_werc/config deleted file mode 100644 index ddc613e..0000000 --- a/werc/sites/thirdculture.top/wiki/_werc/config +++ /dev/null @@ -1,2 +0,0 @@ -conf_enable_wiki -conf_enable_comments diff --git a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md b/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md deleted file mode 100644 index b54cb52..0000000 --- a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md +++ /dev/null @@ -1,3 +0,0 @@ -Bologna Colorado is a garage rock band from Halifax, Nova Scotia. - -Distorted waves of jagged silver rip through your chest to the jig of a hundred laughing corpses. A Bologna Colorado show is a raucous host of young folk, bouncing like amateurs to hotel lobby piano pieces and earsplitting power chords. Reminiscent of the Ramones, the Oh-Sees, the Dead Kennedys, and the oddly attractive tweaker shitting herself on your front porch, their cheap all ages shows will be a memory to treasure whether you like it or not. diff --git a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md_werc/dirdir/1731466381/author b/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md_werc/dirdir/1731466381/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md_werc/dirdir/1731466381/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md_werc/dirdir/1731466381/data b/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md_werc/dirdir/1731466381/data deleted file mode 100644 index b54cb52..0000000 --- a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado.md_werc/dirdir/1731466381/data +++ /dev/null @@ -1,3 +0,0 @@ -Bologna Colorado is a garage rock band from Halifax, Nova Scotia. - -Distorted waves of jagged silver rip through your chest to the jig of a hundred laughing corpses. A Bologna Colorado show is a raucous host of young folk, bouncing like amateurs to hotel lobby piano pieces and earsplitting power chords. Reminiscent of the Ramones, the Oh-Sees, the Dead Kennedys, and the oddly attractive tweaker shitting herself on your front porch, their cheap all ages shows will be a memory to treasure whether you like it or not. diff --git a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/body b/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/body deleted file mode 100644 index 5df6ad1..0000000 --- a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/body +++ /dev/null @@ -1 +0,0 @@ -The keys they incorporate are so so good. The front man is so zany. diff --git a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/posted b/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/posted deleted file mode 100644 index 717a22d..0000000 --- a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/posted +++ /dev/null @@ -1 +0,0 @@ -Wed Nov 13 15:25:58 GMT 2024 diff --git a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/user b/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/user deleted file mode 100644 index 1dbfe51..0000000 --- a/werc/sites/thirdculture.top/wiki/bands/bologna_colorado_werc/comments/1731511558/user +++ /dev/null @@ -1 +0,0 @@ -vanne diff --git a/werc/sites/thirdculture.top/wiki/index.md b/werc/sites/thirdculture.top/wiki/index.md deleted file mode 100644 index 79ac52b..0000000 --- a/werc/sites/thirdculture.top/wiki/index.md +++ /dev/null @@ -1,21 +0,0 @@ -This is the Third Culture Wiki :) -============================================= - -This is a living document that contains information and history about third culture's, artists, projects, notable events and things we think are cool. - -![image of support](/_werc/pub/imgs/wires.png "main") - -**Third Culture** is an online collective started in Ottawa ON focused on creating a community of passionate artists/dreamers/activists who feel they don't have a place to belong. You can read more about third culture on the [about](/about) page and explore our [member's pages](https://ppl.thirdculture.top) for more member specific information. - -## Contributing to the Wiki - -* Respect the privacy of others. Make sure you only include information that the artist themselves have posted publicly or ask permission. -* Do not post anything harmful, this wiki is primary a place to keep track of facts. Opinion can be kept on personal pages or in forum discussion. -* Comments should include relevant discussion, don't be a bully or toxic. Mistakes/errors should be reported through the proper channels not in the comments. -* Having primary sources is encouraged but not entirely necessary. If your page lacks primary sources consider generating your own (for example by doing a mini interview, which can also be kept in the wiki). -* If you spam or produce malicious content your account will be deleted, treat this wiki more as an academic setting if that helps you. -* Currently new account posting is not enabled, if you do have an entry you want you can contact us to receive an account or just send us the content of the edits/page you want created to moridori(at)disroot.org. You can also leave a comment as a new user and you may get an account. (I may make a general account for the purpose of allowing outsider edits) - -## Reporting Problems and General Contact - -Currently you can reach the admin (q) at moridori(at)disroot.org diff --git a/werc/sites/thirdculture.top/wiki/music.md b/werc/sites/thirdculture.top/wiki/music.md deleted file mode 100644 index d333a0f..0000000 --- a/werc/sites/thirdculture.top/wiki/music.md +++ /dev/null @@ -1,2 +0,0 @@ -Music is a form of art, conveyed through the medium of sound. - diff --git a/werc/sites/thirdculture.top/wiki/music.md_werc/dirdir/1731465875/author b/werc/sites/thirdculture.top/wiki/music.md_werc/dirdir/1731465875/author deleted file mode 100644 index 59f781c..0000000 --- a/werc/sites/thirdculture.top/wiki/music.md_werc/dirdir/1731465875/author +++ /dev/null @@ -1 +0,0 @@ -iancobain diff --git a/werc/sites/thirdculture.top/wiki/music.md_werc/dirdir/1731465875/data b/werc/sites/thirdculture.top/wiki/music.md_werc/dirdir/1731465875/data deleted file mode 100644 index d333a0f..0000000 --- a/werc/sites/thirdculture.top/wiki/music.md_werc/dirdir/1731465875/data +++ /dev/null @@ -1,2 +0,0 @@ -Music is a form of art, conveyed through the medium of sound. - diff --git a/werc/sites/visual.thirdculture.top/_werc/config b/werc/sites/visual.thirdculture.top/_werc/config deleted file mode 100644 index eb7b001..0000000 --- a/werc/sites/visual.thirdculture.top/_werc/config +++ /dev/null @@ -1,3 +0,0 @@ -masterSite=thirdculture.top -siteTitle='Third Culture Visuals' -siteSubTitle='eyes have opened' diff --git a/werc/sites/visual.thirdculture.top/index.md b/werc/sites/visual.thirdculture.top/index.md deleted file mode 100644 index d7f8366..0000000 --- a/werc/sites/visual.thirdculture.top/index.md +++ /dev/null @@ -1,3 +0,0 @@ -Visuals -================================= -This page is under construction diff --git a/werc/tpl/_debug.tpl b/werc/tpl/_debug.tpl deleted file mode 100644 index 4d650ea..0000000 --- a/werc/tpl/_debug.tpl +++ /dev/null @@ -1,29 +0,0 @@ -% if(! ~ $#debug_shell 0) { -
    - - -
    - - -%{ -fn evl { - # Buffering is probably messing this up: - #rc -c 'flag x +;{'^$post_arg_command'} |[2] awk ''{print ">> "$0}''' - rc -c 'flag s +; flag x +;'^$post_arg_command -} - if(! ~ $#post_arg_command 0 && ! ~ $#post_arg_command '') { - echo '
    '
    -        evl | escape_html |[2] awk '{print ""$0""}' 
    -        echo '
    ' - } -%} -% } - -
    -% env | escape_html
    -

    - -% umask - diff --git a/werc/tpl/_tools/hash.tpl b/werc/tpl/_tools/hash.tpl deleted file mode 100644 index f78de7d..0000000 --- a/werc/tpl/_tools/hash.tpl +++ /dev/null @@ -1,35 +0,0 @@ -

    Password Hash Generator

    -

    This tool is for generating password hashes to be used for your Third Culture user account.

    -
    -
    -
    -
    - -
    -
    - -
    - -% if(~ $REQUEST_METHOD POST) { -% if(~ $#post_arg_password 0 || ~ $#post_arg_verify_password 0) { -
    Error: Both password fields are required!
    -% } -% if not if(! ~ $"post_arg_password $"post_arg_verify_password) { -
    Error: Passwords do not match!
    -% } -% if not { -% fn sanitize_input { printf '%s' $1 | sed 's/[[:cntrl:]]//g' } -% clean_password=`{sanitize_input $"post_arg_password} -% mkpasswd_hash=`{printf '%s' $"clean_password | mkpasswd} -% htpasswd_hash=`{printf '%s' $"clean_password | htpasswd -n -b dummy - | sed 's/^dummy://'} -

    Generated Hashes:

    -
    - - mkpasswd hash: %(`{echo $mkpasswd_hash | sed 's/&/\&/g; s//\>/g; s/''/\"/g'}%)
    - htpasswd hash: %(`{echo $htpasswd_hash | sed 's/&/\&/g; s//\>/g; s/''/\"/g'}%) -
    -
    - Copy the output in the box above and send them to q. DM or over email (moridori@disroot.org). -
    -% } -% } \ No newline at end of file diff --git a/werc/tpl/_users/login.tpl b/werc/tpl/_users/login.tpl deleted file mode 100644 index ebaca78..0000000 --- a/werc/tpl/_users/login.tpl +++ /dev/null @@ -1,18 +0,0 @@ -

    User login

    -
    -% if(check_user) { - You are logged in as: %($logged_user%) -% } -% if not { -% if (~ $REQUEST_METHOD POST) -% echo '
    Login failed!
    ' -
    -
    -
    -
    - -
    -
    -% } - -
    diff --git a/werc/tpl/sitemap.tpl b/werc/tpl/sitemap.tpl deleted file mode 100644 index 9505b6d..0000000 --- a/werc/tpl/sitemap.tpl +++ /dev/null @@ -1,67 +0,0 @@ -

    Site map

    - -%{ -tmpfile=/tmp/werc_sitemap_$pid.txt -tmpfilex=/tmp/werc_sitemapx_$pid.txt -saveddf=$dirfilter - -MON2NUM='s/Jan/01/; s/Feb/02/; s/Mar/03/; s/Apr/04/; s/May/05/; s/Jun/06/; s/Jul/07/; s/Aug/08/; s/Sep/09/; s/Oct/10/; s/Nov/11/; s/Dec/12/;' - -fn get_mdate { - t=`{mtime $1} - t=`{date $t(1) | sed -e $MON2NUM -e 's/ ([0-9]) / 0\1 /g'} # Make sure day of the month is two digits. - echo $t(6)^'-'^$t(2)^'-'^$t(3) -} - -fn listDir { - d=$1 - dirfilter=$saveddf - if(test -f $d/_werc/config) - . $d/_werc/config - - if(~ $#perm_redir_to 0) { - echo '
      ' - - for(i in `{ls -dF $d^*/ $d^*.md $d^*.html $d^*.txt >[2]/dev/null | sed $dirfilter}) { - desc=`{get_file_title $i} - u=`{echo $i|sed 's!'$sitedir'!!; '$dirclean's!/index$!/!; '} - if(! ~ $#desc 0 && ! ~ $desc '') - desc=' - '$"desc - n=`{echo /$u|sed 's/[\-_]/ /g; s,.*/([^/]+)/?$,\1,'} - echo '
    • '^$"n^'' $"desc '
    • ' - echo $base_url^$u >> $tmpfile - echo ''$base_url^$u''^`{get_mdate $i}^'' >> $tmpfilex - if(test -d $i) - @{ listDir $i } - } - echo '
    ' - } -} - - -fltr_cache listDir $sitedir/ - -if(test -s $tmpfile) { - mv $tmpfile $sitedir/sitemap.txt & -} -if not if(test -f $tmpfile) - rm $tmpfile - -if(test -s $tmpfilex) { - { - echo ' -' - - cat $tmpfilex - rm $tmpfilex & - echo '' - # TODO Enable automaic search engine update notification. - #hget 'http://google.com/ping?sitemap='^`{url_encode $base_url'/sitemap.gz'} > /dev/null - - } | gzip > $sitedir/sitemap.gz & - #} > $sitedir/sitemap.xml & -} -if not if(test -f $tmpfilex) - rm $tmpfilex - -%}