forked from hswaw/hscloud
hswaw/site: add landing page prototype
This rips out the existing HTML and CSS. In the end, we're not going to use it. In its place, it adds a simplistic landing page, hoping to gather more attention and curiosity from other hackers that would like to make it prettier. Change-Id: I322b071a8510536bd6aad9252ae7aa8fe3a734bc
This commit is contained in:
parent
3c9092ad5f
commit
4d7b2f01ec
22 changed files with 865 additions and 659 deletions
1
hswaw/site/COPYING
Normal file
1
hswaw/site/COPYING
Normal file
|
@ -0,0 +1 @@
|
|||
The files in this directory (hswaw/site/*) and its subdirectories are, unless otherwise noted, licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
|
@ -72,7 +72,5 @@ func (s *service) handleHTTPStatic(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
func (s *service) registerHTTP(mux *http.ServeMux) {
|
||||
mux.HandleFunc("/static/", s.handleHTTPStatic)
|
||||
mux.HandleFunc("/", s.handleMain)
|
||||
mux.HandleFunc("/about", s.handleAbout)
|
||||
mux.HandleFunc("/about_en", s.handleAboutEn)
|
||||
mux.HandleFunc("/", s.handleIndex)
|
||||
}
|
||||
|
|
|
@ -4,9 +4,12 @@ load("@io_bazel_rules_go//extras:embed_data.bzl", "go_embed_data")
|
|||
go_embed_data(
|
||||
name = "static",
|
||||
srcs = [
|
||||
"kontakt.png",
|
||||
"main.css",
|
||||
"mapka.png",
|
||||
"leaflet.css",
|
||||
"leaflet.js",
|
||||
"landing.css",
|
||||
"syrenka.png",
|
||||
"images/marker-icon.png",
|
||||
"images/marker-shadow.png",
|
||||
],
|
||||
package = "static",
|
||||
)
|
||||
|
|
28
hswaw/site/static/README.md
Normal file
28
hswaw/site/static/README.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
Attribution: leaflet.js
|
||||
---
|
||||
|
||||
`leaflet.{css,js}` and `images/marker-{icon,shadow}.png` from https://unpkg.com/browse/leaflet@1.7.1/dist/. Licensed under BSD 2-Clause:
|
||||
|
||||
Copyright (c) 2010-2021, Vladimir Agafonkin
|
||||
Copyright (c) 2010-2011, CloudMade
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are
|
||||
permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
conditions and the following disclaimer.
|
||||
|
||||
2. 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.
|
||||
|
||||
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 HOLDER 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.
|
BIN
hswaw/site/static/images/marker-icon.png
Normal file
BIN
hswaw/site/static/images/marker-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
hswaw/site/static/images/marker-shadow.png
Normal file
BIN
hswaw/site/static/images/marker-shadow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 618 B |
Binary file not shown.
Before Width: | Height: | Size: 491 B |
98
hswaw/site/static/landing.css
Normal file
98
hswaw/site/static/landing.css
Normal file
|
@ -0,0 +1,98 @@
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #444;
|
||||
color: #fffdf3;
|
||||
font-weight: 100;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#page {
|
||||
max-width: 42rem;
|
||||
margin: auto;
|
||||
padding-top: 2rem;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 150%;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.logo {
|
||||
max-width: 10rem;
|
||||
max-height: 20vh
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 30px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
padding-top: 1rem;
|
||||
text-align: center;
|
||||
font-family: 'Allerta', sans-serif;
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #141000;
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #fffdf3;
|
||||
}
|
||||
|
||||
b {
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0 0 0 1em;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
li i {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 40vh;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#background-logo {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: -10;
|
||||
}
|
||||
|
||||
#background-logo img {
|
||||
opacity: 3%;
|
||||
margin-top: 2%;
|
||||
margin-left: 5%;
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin-top: 2rem;
|
||||
font-size: 0.8rem;
|
||||
opacity: 60%;
|
||||
}
|
||||
|
||||
#quicklinks {
|
||||
float: right;
|
||||
font-family: monospace;
|
||||
font-size: 14px;
|
||||
margin: 2rem;
|
||||
}
|
640
hswaw/site/static/leaflet.css
Normal file
640
hswaw/site/static/leaflet.css
Normal file
|
@ -0,0 +1,640 @@
|
|||
/* required styles */
|
||||
|
||||
.leaflet-pane,
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-tile-container,
|
||||
.leaflet-pane > svg,
|
||||
.leaflet-pane > canvas,
|
||||
.leaflet-zoom-box,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-layer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
.leaflet-tile,
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-user-drag: none;
|
||||
}
|
||||
/* Prevents IE11 from highlighting tiles in blue */
|
||||
.leaflet-tile::selection {
|
||||
background: transparent;
|
||||
}
|
||||
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
||||
.leaflet-safari .leaflet-tile {
|
||||
image-rendering: -webkit-optimize-contrast;
|
||||
}
|
||||
/* hack that prevents hw layers "stretching" when loading new tiles */
|
||||
.leaflet-safari .leaflet-tile-container {
|
||||
width: 1600px;
|
||||
height: 1600px;
|
||||
-webkit-transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow {
|
||||
display: block;
|
||||
}
|
||||
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
|
||||
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
|
||||
.leaflet-container .leaflet-overlay-pane svg,
|
||||
.leaflet-container .leaflet-marker-pane img,
|
||||
.leaflet-container .leaflet-shadow-pane img,
|
||||
.leaflet-container .leaflet-tile-pane img,
|
||||
.leaflet-container img.leaflet-image-layer,
|
||||
.leaflet-container .leaflet-tile {
|
||||
max-width: none !important;
|
||||
max-height: none !important;
|
||||
}
|
||||
|
||||
.leaflet-container.leaflet-touch-zoom {
|
||||
-ms-touch-action: pan-x pan-y;
|
||||
touch-action: pan-x pan-y;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag {
|
||||
-ms-touch-action: pinch-zoom;
|
||||
/* Fallback for FF which doesn't support pinch-zoom */
|
||||
touch-action: none;
|
||||
touch-action: pinch-zoom;
|
||||
}
|
||||
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.leaflet-container {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
.leaflet-container a {
|
||||
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
|
||||
}
|
||||
.leaflet-tile {
|
||||
filter: inherit;
|
||||
visibility: hidden;
|
||||
}
|
||||
.leaflet-tile-loaded {
|
||||
visibility: inherit;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
width: 0;
|
||||
height: 0;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
z-index: 800;
|
||||
}
|
||||
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
|
||||
.leaflet-overlay-pane svg {
|
||||
-moz-user-select: none;
|
||||
}
|
||||
|
||||
.leaflet-pane { z-index: 400; }
|
||||
|
||||
.leaflet-tile-pane { z-index: 200; }
|
||||
.leaflet-overlay-pane { z-index: 400; }
|
||||
.leaflet-shadow-pane { z-index: 500; }
|
||||
.leaflet-marker-pane { z-index: 600; }
|
||||
.leaflet-tooltip-pane { z-index: 650; }
|
||||
.leaflet-popup-pane { z-index: 700; }
|
||||
|
||||
.leaflet-map-pane canvas { z-index: 100; }
|
||||
.leaflet-map-pane svg { z-index: 200; }
|
||||
|
||||
.leaflet-vml-shape {
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
}
|
||||
.lvml {
|
||||
behavior: url(#default#VML);
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
|
||||
/* control positioning */
|
||||
|
||||
.leaflet-control {
|
||||
position: relative;
|
||||
z-index: 800;
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-top,
|
||||
.leaflet-bottom {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-top {
|
||||
top: 0;
|
||||
}
|
||||
.leaflet-right {
|
||||
right: 0;
|
||||
}
|
||||
.leaflet-bottom {
|
||||
bottom: 0;
|
||||
}
|
||||
.leaflet-left {
|
||||
left: 0;
|
||||
}
|
||||
.leaflet-control {
|
||||
float: left;
|
||||
clear: both;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
float: right;
|
||||
}
|
||||
.leaflet-top .leaflet-control {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.leaflet-left .leaflet-control {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.leaflet-right .leaflet-control {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* zoom and fade animations */
|
||||
|
||||
.leaflet-fade-anim .leaflet-tile {
|
||||
will-change: opacity;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-popup {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s linear;
|
||||
-moz-transition: opacity 0.2s linear;
|
||||
transition: opacity 0.2s linear;
|
||||
}
|
||||
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
||||
opacity: 1;
|
||||
}
|
||||
.leaflet-zoom-animated {
|
||||
-webkit-transform-origin: 0 0;
|
||||
-ms-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
will-change: transform;
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
||||
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
||||
}
|
||||
.leaflet-zoom-anim .leaflet-tile,
|
||||
.leaflet-pan-anim .leaflet-tile {
|
||||
-webkit-transition: none;
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.leaflet-zoom-anim .leaflet-zoom-hide {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
|
||||
/* cursors */
|
||||
|
||||
.leaflet-interactive {
|
||||
cursor: pointer;
|
||||
}
|
||||
.leaflet-grab {
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: grab;
|
||||
}
|
||||
.leaflet-crosshair,
|
||||
.leaflet-crosshair .leaflet-interactive {
|
||||
cursor: crosshair;
|
||||
}
|
||||
.leaflet-popup-pane,
|
||||
.leaflet-control {
|
||||
cursor: auto;
|
||||
}
|
||||
.leaflet-dragging .leaflet-grab,
|
||||
.leaflet-dragging .leaflet-grab .leaflet-interactive,
|
||||
.leaflet-dragging .leaflet-marker-draggable {
|
||||
cursor: move;
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
/* marker & overlays interactivity */
|
||||
.leaflet-marker-icon,
|
||||
.leaflet-marker-shadow,
|
||||
.leaflet-image-layer,
|
||||
.leaflet-pane > svg path,
|
||||
.leaflet-tile-container {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.leaflet-marker-icon.leaflet-interactive,
|
||||
.leaflet-image-layer.leaflet-interactive,
|
||||
.leaflet-pane > svg path.leaflet-interactive,
|
||||
svg.leaflet-image-layer.leaflet-interactive path {
|
||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
/* visual tweaks */
|
||||
|
||||
.leaflet-container {
|
||||
background: #ddd;
|
||||
outline: 0;
|
||||
}
|
||||
.leaflet-container a {
|
||||
color: #0078A8;
|
||||
}
|
||||
.leaflet-container a.leaflet-active {
|
||||
outline: 2px solid orange;
|
||||
}
|
||||
.leaflet-zoom-box {
|
||||
border: 2px dotted #38f;
|
||||
background: rgba(255,255,255,0.5);
|
||||
}
|
||||
|
||||
|
||||
/* general typography */
|
||||
.leaflet-container {
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
|
||||
/* general toolbar styles */
|
||||
|
||||
.leaflet-bar {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-bar a:hover {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #ccc;
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
line-height: 26px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
.leaflet-bar a,
|
||||
.leaflet-control-layers-toggle {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
}
|
||||
.leaflet-bar a:hover {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
.leaflet-bar a:first-child {
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
.leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom: none;
|
||||
}
|
||||
.leaflet-bar a.leaflet-disabled {
|
||||
cursor: default;
|
||||
background-color: #f4f4f4;
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-bar a {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.leaflet-touch .leaflet-bar a:first-child {
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
}
|
||||
.leaflet-touch .leaflet-bar a:last-child {
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
|
||||
/* zoom control */
|
||||
|
||||
.leaflet-control-zoom-in,
|
||||
.leaflet-control-zoom-out {
|
||||
font: bold 18px 'Lucida Console', Monaco, monospace;
|
||||
text-indent: 1px;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
|
||||
/* layers control */
|
||||
|
||||
.leaflet-control-layers {
|
||||
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.leaflet-control-layers-toggle {
|
||||
background-image: url(images/layers.png);
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
}
|
||||
.leaflet-retina .leaflet-control-layers-toggle {
|
||||
background-image: url(images/layers-2x.png);
|
||||
background-size: 26px 26px;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers-toggle {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
.leaflet-control-layers .leaflet-control-layers-list,
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
|
||||
display: none;
|
||||
}
|
||||
.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.leaflet-control-layers-expanded {
|
||||
padding: 6px 10px 6px 6px;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
}
|
||||
.leaflet-control-layers-scrollbar {
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
padding-right: 5px;
|
||||
}
|
||||
.leaflet-control-layers-selector {
|
||||
margin-top: 2px;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.leaflet-control-layers label {
|
||||
display: block;
|
||||
}
|
||||
.leaflet-control-layers-separator {
|
||||
height: 0;
|
||||
border-top: 1px solid #ddd;
|
||||
margin: 5px -10px 5px -6px;
|
||||
}
|
||||
|
||||
/* Default icon URLs */
|
||||
.leaflet-default-icon-path {
|
||||
background-image: url(images/marker-icon.png);
|
||||
}
|
||||
|
||||
|
||||
/* attribution and scale controls */
|
||||
|
||||
.leaflet-container .leaflet-control-attribution {
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
margin: 0;
|
||||
}
|
||||
.leaflet-control-attribution,
|
||||
.leaflet-control-scale-line {
|
||||
padding: 0 5px;
|
||||
color: #333;
|
||||
}
|
||||
.leaflet-control-attribution a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.leaflet-control-attribution a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.leaflet-container .leaflet-control-attribution,
|
||||
.leaflet-container .leaflet-control-scale {
|
||||
font-size: 11px;
|
||||
}
|
||||
.leaflet-left .leaflet-control-scale {
|
||||
margin-left: 5px;
|
||||
}
|
||||
.leaflet-bottom .leaflet-control-scale {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.leaflet-control-scale-line {
|
||||
border: 2px solid #777;
|
||||
border-top: none;
|
||||
line-height: 1.1;
|
||||
padding: 2px 5px 1px;
|
||||
font-size: 11px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
background: #fff;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child) {
|
||||
border-top: 2px solid #777;
|
||||
border-bottom: none;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
|
||||
border-bottom: 2px solid #777;
|
||||
}
|
||||
|
||||
.leaflet-touch .leaflet-control-attribution,
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
box-shadow: none;
|
||||
}
|
||||
.leaflet-touch .leaflet-control-layers,
|
||||
.leaflet-touch .leaflet-bar {
|
||||
border: 2px solid rgba(0,0,0,0.2);
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
|
||||
/* popup */
|
||||
|
||||
.leaflet-popup {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.leaflet-popup-content-wrapper {
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.leaflet-popup-content {
|
||||
margin: 13px 19px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.leaflet-popup-content p {
|
||||
margin: 18px 0;
|
||||
}
|
||||
.leaflet-popup-tip-container {
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -20px;
|
||||
overflow: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
.leaflet-popup-tip {
|
||||
width: 17px;
|
||||
height: 17px;
|
||||
padding: 1px;
|
||||
|
||||
margin: -10px auto 0;
|
||||
|
||||
-webkit-transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.leaflet-popup-content-wrapper,
|
||||
.leaflet-popup-tip {
|
||||
background: white;
|
||||
color: #333;
|
||||
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 4px 4px 0 0;
|
||||
border: none;
|
||||
text-align: center;
|
||||
width: 18px;
|
||||
height: 14px;
|
||||
font: 16px/14px Tahoma, Verdana, sans-serif;
|
||||
color: #c3c3c3;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
}
|
||||
.leaflet-container a.leaflet-popup-close-button:hover {
|
||||
color: #999;
|
||||
}
|
||||
.leaflet-popup-scrolled {
|
||||
overflow: auto;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper {
|
||||
-ms-zoom: 1;
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
width: 24px;
|
||||
margin: 0 auto;
|
||||
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
|
||||
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
|
||||
}
|
||||
.leaflet-oldie .leaflet-popup-tip-container {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.leaflet-oldie .leaflet-control-zoom,
|
||||
.leaflet-oldie .leaflet-control-layers,
|
||||
.leaflet-oldie .leaflet-popup-content-wrapper,
|
||||
.leaflet-oldie .leaflet-popup-tip {
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
|
||||
/* div icon */
|
||||
|
||||
.leaflet-div-icon {
|
||||
background: #fff;
|
||||
border: 1px solid #666;
|
||||
}
|
||||
|
||||
|
||||
/* Tooltip */
|
||||
/* Base styles for the element that has a tooltip */
|
||||
.leaflet-tooltip {
|
||||
position: absolute;
|
||||
padding: 6px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 3px;
|
||||
color: #222;
|
||||
white-space: nowrap;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
|
||||
}
|
||||
.leaflet-tooltip.leaflet-clickable {
|
||||
cursor: pointer;
|
||||
pointer-events: auto;
|
||||
}
|
||||
.leaflet-tooltip-top:before,
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
border: 6px solid transparent;
|
||||
background: transparent;
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* Directions */
|
||||
|
||||
.leaflet-tooltip-bottom {
|
||||
margin-top: 6px;
|
||||
}
|
||||
.leaflet-tooltip-top {
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before,
|
||||
.leaflet-tooltip-top:before {
|
||||
left: 50%;
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-top:before {
|
||||
bottom: 0;
|
||||
margin-bottom: -12px;
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-bottom:before {
|
||||
top: 0;
|
||||
margin-top: -12px;
|
||||
margin-left: -6px;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-left {
|
||||
margin-left: -6px;
|
||||
}
|
||||
.leaflet-tooltip-right {
|
||||
margin-left: 6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before,
|
||||
.leaflet-tooltip-right:before {
|
||||
top: 50%;
|
||||
margin-top: -6px;
|
||||
}
|
||||
.leaflet-tooltip-left:before {
|
||||
right: 0;
|
||||
margin-right: -12px;
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.leaflet-tooltip-right:before {
|
||||
left: 0;
|
||||
margin-left: -12px;
|
||||
border-right-color: #fff;
|
||||
}
|
6
hswaw/site/static/leaflet.js
Normal file
6
hswaw/site/static/leaflet.js
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,251 +0,0 @@
|
|||
a.news-title {
|
||||
text-decoration: none;
|
||||
color: #222
|
||||
}
|
||||
|
||||
p.news-footer {
|
||||
font-size: 12px !important;
|
||||
color: #999;
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.news-rectangle {
|
||||
background-color: #21a;
|
||||
border-radius: 5px;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 8px 5px 5px 5px;
|
||||
padding: 0 0 2px 0;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.news .date:before {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
display: block;
|
||||
font-family: 'Titillium Web', sans;
|
||||
color: #eee;
|
||||
border-radius: 5px;
|
||||
margin: 8px 0 5px 5px;
|
||||
padding: 0 0 2px 0;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
width: 80px;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
.news .redmine .date:before {
|
||||
content: "redmine";
|
||||
background: #c3352b;
|
||||
}
|
||||
|
||||
.news .blog .date:before {
|
||||
content: "blog";
|
||||
background: #21a;
|
||||
}
|
||||
|
||||
ul.news {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul.news li {
|
||||
border-bottom: 2px groove #fff;
|
||||
padding-top: 8px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
#hs_content .news li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#about {
|
||||
border-bottom: 2px groove #fff;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
#hs_branding {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#hs_main {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
span.date {
|
||||
font-weight: bold;
|
||||
display: block;
|
||||
width: 90px;
|
||||
text-align: center;
|
||||
float: left;
|
||||
}
|
||||
|
||||
span.author {
|
||||
text-decoration: italic;
|
||||
}
|
||||
|
||||
#hs_main {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#left {
|
||||
border-right: 2px groove #fff;
|
||||
margin-right: 320px;
|
||||
}
|
||||
|
||||
#right {
|
||||
position: absolute;
|
||||
width: 300px;
|
||||
top: 100px;
|
||||
padding-top: 16px;
|
||||
right: 0;
|
||||
margin-right: 20px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.moar {
|
||||
font-family: "Titillium Web", sans;
|
||||
font-weight: bold;
|
||||
// background: url("/static/cutcube.png");
|
||||
background-color: #fd6;
|
||||
// background-color: #2c702a;
|
||||
color: #222;
|
||||
padding: 4px;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
#hs_branding {
|
||||
width: 95%;
|
||||
}
|
||||
#hs_main {
|
||||
width: 95%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 625px) {
|
||||
#hs_branding {
|
||||
width: 100%;
|
||||
}
|
||||
#hs_main {
|
||||
width: 100%;
|
||||
}
|
||||
#right {
|
||||
position: static;
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
#left {
|
||||
float: none;
|
||||
width: 100%;
|
||||
margin-right: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 480px) {
|
||||
#hs_branding a {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
#hs_branding li a {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
}
|
||||
|
||||
#right h4 {
|
||||
margin-bottom: 0px;
|
||||
margin-left: 0px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
h1.mail {
|
||||
margin-bottom: 2px !important;
|
||||
}
|
||||
|
||||
#right .email-entry {
|
||||
width: 90%;
|
||||
border: 1px groove #777;
|
||||
padding: 2px;
|
||||
background: none repeat scroll 0% 0% rgb(250, 250, 250);
|
||||
color: rgb(34, 34, 34);
|
||||
margin: 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#right .email-submit {
|
||||
padding: 4px 14px 4px 14px;
|
||||
}
|
||||
|
||||
.mailcheck {
|
||||
margin-right: 8px;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
div.mail-desc {
|
||||
font-size: 14px;
|
||||
padding-left: 26px;
|
||||
line-height: 15px;
|
||||
}
|
||||
|
||||
div.mail-captcha {
|
||||
width: 276px;
|
||||
height: 40px;
|
||||
}
|
||||
div.mail-captcha img {
|
||||
border: 1px groove #777;
|
||||
width: 80px;
|
||||
height: 30px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.mail-captcha input {
|
||||
float: left;
|
||||
width: 178px !important;
|
||||
height: 26px !important;
|
||||
margin-top: 0 !important;
|
||||
margin-bottom: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
div.flashes {
|
||||
padding: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 80%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
div.flashes ul {
|
||||
list-style-type: none;
|
||||
padding: 0 0 5px 0;
|
||||
}
|
||||
|
||||
div.flashes li {
|
||||
width: 90%;
|
||||
border-radius: 4px;
|
||||
background-color: #308033;
|
||||
padding: 5px;
|
||||
margin-top: 5px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
div.flashes li.error {
|
||||
background-color: #a01023;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 732 KiB |
BIN
hswaw/site/static/syrenka.png
Normal file
BIN
hswaw/site/static/syrenka.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
|
@ -4,12 +4,7 @@ load("@io_bazel_rules_go//extras:embed_data.bzl", "go_embed_data")
|
|||
go_embed_data(
|
||||
name = "templates",
|
||||
srcs = [
|
||||
"about.html",
|
||||
"about_en.html",
|
||||
"basic.html",
|
||||
"main.html",
|
||||
"subscribe.html",
|
||||
"subscribe_en.html",
|
||||
"index.html",
|
||||
],
|
||||
package = "templates",
|
||||
)
|
||||
|
|
|
@ -1,102 +0,0 @@
|
|||
{{ define "page_scripts" }}
|
||||
<script type="text/javascript" src="https://widgets.twimg.com/j/2/widget.js"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ define "page_style" }}
|
||||
<link rel="stylesheet" href="static/main.css"/>
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}O Hackerspace Warszawa{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<div id="left">
|
||||
<div id="about">
|
||||
<h2><a href="about_en">Read about us in English</a></h2>
|
||||
<h1>O Hackerspace Warszawa</h1>
|
||||
<p>
|
||||
Hackerspace to przestrzeń stworzona i utrzymywana przez grupę kreatywnych osób, które łączy fascynacja
|
||||
ogólno pojętym tworzeniem w duchu kultury hackerskiej. Przestrzeń stymuluje rozwój projektów, organizując i
|
||||
użyczając potrzebnych narzędzi. Hackerspace nie zna barier, jeśli masz ciekawy pomysł i szukasz ludzi
|
||||
chętnych do współpracy lub po prostu potrzebujesz miejsca i sprzętu - zapraszamy!
|
||||
</p>
|
||||
<p>
|
||||
Jeżeli chcesz się do nas przyłączyć, przeczytaj dokładniejsze informacje o naszych celach i zapisz się
|
||||
na jedną z naszych list mailingowych. Zapraszamy również w każdy czwartek po 18:00, kiedy hackerspace jest otwarty
|
||||
dla wszystkich zainteresowanych. Posiadamy również mail kontaktowy: <img src="static/kontakt.png"/>
|
||||
</p>
|
||||
<h3>Cele</h3>
|
||||
<ul>
|
||||
<li>Chcemy tworzyć miejsce, w którym ludzie zainteresowani techniką, elektroniką, informatyką, mechaniką, sztuką i pokrewnymi dziedzinami tworzenia mogą się zbierać aby rozmawiać, wymieniać się pomysłami i rozwiązaniami, oraz pracować nad projektami.</li>
|
||||
<li>Chcemy żeby miejsce to było w Warszawie, w miejscu zapewniającym optymalny dojazd, zwłaszcza komunikacją publiczną.</li>
|
||||
<li>Chcemy niezależności, dlatego uznajemy że optymalnym źródłem finansowania są obowiązkowe składki. Składki zostaną wykorzystane na finansowanie miejsca oraz, gdy to zostanie zapewnione, na zakup narzędzi.</li>
|
||||
<li>Chcemy żeby miejsce było otwarte na nowych ludzi i nowe pomysły.</li>
|
||||
<li>Chcemy zebrać narzędzia i wiedzę jak się ich używa w miejscu umożliwiającym ich używanie.</li>
|
||||
<li>Chcemy się rozwijać i poznawać nowe dziedziny wiedzy</li>
|
||||
<li>Chcemy się dobrze bawić.</li>
|
||||
</ul>
|
||||
<h3>Lokalizacja</h3>
|
||||
<p>
|
||||
Warszawski Hackerspace mieści się na podwyższonym parterze w budynku na ul. Wolność 2A.
|
||||
<pre>
|
||||
Warszawski Hackerspace
|
||||
ul. Wolność 2A
|
||||
01-018 Warszawa
|
||||
52°14'29.8"N 20°59'5.5"E
|
||||
</pre>
|
||||
Wejście od ulicy Żelaznej. Po wejściu na plac/parking należy przejść tunelem pod budynkiem i wejść na klatkę schodową po lewej stronie.
|
||||
</p>
|
||||
<div style="align:center, text-align:center"><iframe width="90%" height="550" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=20.983859896659855%2C52.24110833176657%2C20.985909104347233%2C52.24213811954793&layer=mapnik&marker=52.241623228644364%2C20.98488450050354" style="border: 1px solid black"></iframe><br /></div><small><a href="https://www.openstreetmap.org/?mlat=52.24162&mlon=20.98488#map=19/52.24162/20.98488">View Larger Map</a></small>
|
||||
<h3>Członkowie</h3>
|
||||
<ul>
|
||||
<li>Hackerspace składa się z członków.</li>
|
||||
<li>O członkostwie decyduje regularne płacenie składek.</li>
|
||||
<li>Członkostwo daje dostęp do hackerspace 24/7.</li>
|
||||
<li>Wszyscy członkowie są równi.</li>
|
||||
</ul>
|
||||
<h3>Składki</h3>
|
||||
<ul>
|
||||
<li><b>Starving Hacker</b>, minimalnie 50 PLN miesięcznie. Ograniczone do uczniów / studentów (lub specjalnych przypadków).</li>
|
||||
<li><b>Fatty Hacker</b>, minimalnie 100 PLN miesięcznie.</li>
|
||||
<li><b>Super-Fatty Hacker</b>, 150 PLN lub więcej dla bogatych Hackerów, którzy chcą dodatkowo wesprzeć rozwój HS.</li>
|
||||
</ul>
|
||||
<p>Potrzebujemy minimalnie 6000 PLN na miesiąc, żeby opłacić czynsz i rachunki. Dodatkowe fundusze są szczególnie potrzebne do dalszej ekspansji (nowe pomieszczenia), a także inwestycje w gadżety promujące, sprzęt i infrastrukturę HS.</p>
|
||||
<h3>Dodatkowe informacje:</h3>
|
||||
<ul>
|
||||
<li>Nasza <a href="https://wiki.hackerspace.pl/faq">lista pytań i odpowiedzi (FAQ)</a></li>
|
||||
<li>Informacje dla osób <a href="https://wiki.hackerspace.pl/jak-dolaczyc">chcących do nas dołączyć</a></li>
|
||||
<li>Samouczek <a href="http://catb.org/~esr/faqs/hacker-howto.html">How To Become A Hacker</a> autorstwa ESR</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="right">
|
||||
<!-- TODO(q3k): add this {% include "subscribe.html" %} -->
|
||||
<h1 class="twitter">Twitter</h1>
|
||||
<script type="text/javascript">
|
||||
new TWTR.Widget({
|
||||
version: 2,
|
||||
type: 'profile',
|
||||
rpp: 5,
|
||||
interval: 6000,
|
||||
theme: {
|
||||
shell: {
|
||||
background: '#eee',
|
||||
color: '#222'
|
||||
},
|
||||
tweets: {
|
||||
background: '#eee',
|
||||
color: '#222',
|
||||
links: '#001ea6'
|
||||
}
|
||||
},
|
||||
features: {
|
||||
scrollbar: false,
|
||||
loop: false,
|
||||
live: false,
|
||||
hashtags: true,
|
||||
timestamp: true,
|
||||
avatars: true,
|
||||
behavior: 'all'
|
||||
}
|
||||
}).render().setUser('hackerspacepl').start();
|
||||
</script>
|
||||
</div>
|
||||
{{ end }}
|
|
@ -1,100 +0,0 @@
|
|||
{{ define "page_scripts" }}
|
||||
<script type="text/javascript" src="https://widgets.twimg.com/j/2/widget.js"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ define "page_style" }}
|
||||
<link rel="stylesheet" href="static/main.css"/>
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}About Warsaw Hackerspace{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<div id="left">
|
||||
<div id="about">
|
||||
<h2><a href="about">Poczytaj o nas po polsku</a></h2>
|
||||
<h1>About the Warsaw Hackerspace</h1>
|
||||
<p>
|
||||
A hackerspace is a place created and maintained by a group of people whish combines fascination
|
||||
about new technologies with a broadly understood creativity and hacker spirit. A hackerspace stimulates
|
||||
the development of interesting projects by supplying necessary tools and attracting people with knowledge to
|
||||
use them. A hackerspace know no limits, if you have an interesting idea and you are looking for people to help you
|
||||
with it's development or simply a place to work - you are most welcome!
|
||||
</p>
|
||||
<p>
|
||||
If you want to join us, read about our goals and join one of our mailing lists. We meet live at the Hackerspace every Thursday from 6pm. We also have a contact email address: <img src="static/kontakt.png"/>.
|
||||
</p>
|
||||
<h3>Warsaw Hackerspace Goals</h3>
|
||||
<ul>
|
||||
<li>We want to maintain a place in which people interested in technology, electronics, informatics, mechanics, art and related activities can meet to talk, exchange ideas, solutions and work together on their projects.</li>
|
||||
<li>We want a Hackerspace to be located in Warsaw, in an easily accessbile place, especially using public transport.</li>
|
||||
<li>We want independence, thats why we think that member fees are the best financial model for us. The collected money is used to rent physical space and buy necessary tools and equipment.</li>
|
||||
<li>We want the Warsaw Hackerspace to be a friendly and open place for new people and ideas.</li>
|
||||
<li>We want to maintain tools and knowledge about their usage in a place which allow for their safe use.</li>
|
||||
<li>We want to develop and explore new areas of interest.</li>
|
||||
<li>We want to have fun.</li>
|
||||
</ul>
|
||||
<h3>Location</h3>
|
||||
<p>
|
||||
The Warsaw Hackerspace is located on the ground floor at Wolność 2A road in Warsaw. The main entrance is from ul. Żelazna. After getting to the parking lot, use the tunnel under the building and enter the stairwell on the left side.
|
||||
<pre>
|
||||
Warszawski Hackerspace
|
||||
ul. Wolność 2A
|
||||
01-018 Warszawa
|
||||
52°14'29.8"N 20°59'5.5"E
|
||||
</pre>
|
||||
</p>
|
||||
<div style="align:center, text-align:center"><iframe width="90%" height="550" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=20.983859896659855%2C52.24110833176657%2C20.985909104347233%2C52.24213811954793&layer=mapnik&marker=52.241623228644364%2C20.98488450050354" style="border: 1px solid black"></iframe><br /></div><small><a href="https://www.openstreetmap.org/?mlat=52.24162&mlon=20.98488#map=19/52.24162/20.98488">View Larger Map</a></small>
|
||||
<h3>Membership</h3>
|
||||
<ul>
|
||||
<li>The Hackerspace is by and for members.</li>
|
||||
<li>All members are required to pay a monthly fee.</li>
|
||||
<li>All members are allowed to be in the Hackerspace 24/7.</li>
|
||||
<li>All members are equal.</li>
|
||||
</ul>
|
||||
<h3>Contributions</h3>
|
||||
<ul>
|
||||
<li><b>Starving Hacker</b>, at least 50 PLN per month. Limited to students (and other special financial situations).</li>
|
||||
<li><b>Fatty Hacker</b>, at least 100 PLN per month.</li>
|
||||
<li><b>Super-Fatty Hacker</b>, 150 PLN or more - for rich Hackers who want to support our Hackerspace.</li>
|
||||
</ul>
|
||||
<p>We need at least 6000 PLN per monts to be able to pay the rent and bills. Additional funding is especially needed for further remodelling and adaption of our space, and for investments in gadgets, promotion and infrastructure.</p>
|
||||
<h3>More informations:</h3>
|
||||
<ul>
|
||||
<li>Our <a href="https://wiki.hackerspace.pl/faq">Frequently Asked Questions (FAQ)</a></li>
|
||||
<li>Information for people who wants to <a href="https://wiki.hackerspace.pl/jak-dolaczyc">join us</a></li>
|
||||
<li>Tutorial <a href="http://catb.org/~esr/faqs/hacker-howto.html">How To Become A Hacker</a> by ESR</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="right">
|
||||
<!-- TODO(q3k): add this {% include "subscribe_en.html" %} -->
|
||||
<h1 class="twitter">Twitter</h1>
|
||||
<script type="text/javascript">
|
||||
new TWTR.Widget({
|
||||
version: 2,
|
||||
type: 'profile',
|
||||
rpp: 5,
|
||||
interval: 6000,
|
||||
theme: {
|
||||
shell: {
|
||||
background: '#eee',
|
||||
color: '#222'
|
||||
},
|
||||
tweets: {
|
||||
background: '#eee',
|
||||
color: '#222',
|
||||
links: '#001ea6'
|
||||
}
|
||||
},
|
||||
features: {
|
||||
scrollbar: false,
|
||||
loop: false,
|
||||
live: false,
|
||||
hashtags: true,
|
||||
timestamp: true,
|
||||
avatars: true,
|
||||
behavior: 'all'
|
||||
}
|
||||
}).render().setUser('hackerspacepl').start();
|
||||
</script>
|
||||
</div>
|
||||
{{ end }}
|
|
@ -1,63 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
|
||||
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
|
||||
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><![endif]-->
|
||||
<title>{{ template "title" . }}</title>
|
||||
<script src="https://static.hackerspace.pl/js/jquery.min.js"></script>
|
||||
<script src="https://static.hackerspace.pl/js/checkinator-header.js"></script>
|
||||
{{ template "page_scripts" . }}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="google-site-verification" content="trUiKRnUNhystQjYg-j5j_0qEn09Wijd94aYhv3RyB8" />
|
||||
|
||||
<link rel="shortcut icon" href="https://static.hackerspace.pl/img/favicon.ico"/>
|
||||
<link rel="apple-touch-icon" href="https://static.hackerspace.pl/img/glider.png"/>
|
||||
<link rel="stylesheet" href="https://static.hackerspace.pl/fonts/news-cycle/stylesheet.css"/>
|
||||
<link rel="stylesheet" href="https://static.hackerspace.pl/fonts/titillium/stylesheet.css"/>
|
||||
<link rel="stylesheet" href="https://static.hackerspace.pl/css/style.css?v=2"/>
|
||||
{{ template "page_style" . }}
|
||||
</head>
|
||||
<body>
|
||||
<a name="top"></a>
|
||||
<header id="hs_branding">
|
||||
<a id="hs_header" href="https://hackerspace.pl/">Warsaw Hackerspace</a>
|
||||
<ul id="hs_header_menu">
|
||||
<li><a href="https://hackerspace.pl/about">about</a></li>
|
||||
<li><a href="https://blog.hackerspace.pl">blog</a></li>
|
||||
<li><a href="https://gallery.hackerspace.pl">gallery</a></li>
|
||||
<li><a href="https://wiki.hackerspace.pl">wiki</a></li>
|
||||
<li><a href="https://code.hackerspace.pl">code</a></li>
|
||||
<li><a href="https://webchat.hackerspace.pl">chat</a></li>
|
||||
<li><a href="https://redmine.hackerspace.pl">tasks</a></li>
|
||||
<li><a href="https://wiki.hackerspace.pl/partners">partners</a></li>
|
||||
</ul>
|
||||
</header>
|
||||
<div id="hs_main">
|
||||
<div id="hs_rotimage">
|
||||
<div id="status" style="display: none;">
|
||||
<div id="status-tooltip" style="display: none;">
|
||||
<p>Refreshing...</p>
|
||||
</div>
|
||||
<img src="https://static.hackerspace.pl/img/status-open.png" alt="Sorry, we're open! - The Warsaw Hackerspace is open right now." />
|
||||
</div>
|
||||
<div class="hs_login_bar">
|
||||
<ul>
|
||||
<li><a class="action user" href="https://ldap.hackerspace.pl">Member profile</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="hs_content">
|
||||
{{ template "content" . }}
|
||||
</div>
|
||||
</div>
|
||||
{{ template "footer" . }}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
{{ define "page_scripts" }}{{ end }}
|
||||
{{ define "page_style" }}{{ end }}
|
||||
{{ define "content" }}{{ end }}
|
||||
{{ define "footer" }}{{ end }}
|
80
hswaw/site/templates/index.html
Normal file
80
hswaw/site/templates/index.html
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<!-- https://html.spec.whatwg.org/multipage/syntax.html#syntax-tag-omission -->
|
||||
<title>Warszawski Hackerspace</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
||||
<link rel="stylesheet" href="/static/landing.css"/>
|
||||
<link rel="stylesheet" href="/static/leaflet.css"/>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Allerta&family=Lato&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
</style>
|
||||
<div id="background-logo">
|
||||
<img src="/static/syrenka.png" />
|
||||
</div>
|
||||
<div id="quicklinks">
|
||||
<a href="https://wiki.hackerspace.pl/">wiki</a> | <a href="https://blog.hackerspace.pl/">blog</a> | <a href="https://profile.hackerspace.pl/">profil</a> | <a href="https://wiki.hackerspace.pl/partnerzy">partnerzy</a>
|
||||
</div>
|
||||
<div id="page">
|
||||
<h1>Warszawski Hackerspace</h1>
|
||||
<p>
|
||||
Przestrzeń stworzona i utrzymywana przez grupę kreatywnych osób, które łączy fascynacja ogólno pojętym tworzeniem w duchu <a href="https://pl.wikipedia.org/wiki/Spo%C5%82eczno%C5%9B%C4%87_haker%C3%B3w">kultury hackerskiej</a>.
|
||||
</p>
|
||||
<p>
|
||||
<b>Hackerspace nie zna barier.</b> Jeśli masz ciekawy pomysł i szukasz ludzi chętnych do współpracy lub po prostu potrzebujesz miejsca i sprzętu - <a href="">zapraszamy</a>!
|
||||
</p>
|
||||
<h2>Nadchodzące wydarzenia</h2>
|
||||
<p>
|
||||
<center><i>Nic zaplanowanego...</i></center>
|
||||
</p>
|
||||
<h2>Blog</h2>
|
||||
<p>
|
||||
Najnowsze wpisy z naszego <a href="https://blog.hackerspace.pl">bloga</a>:
|
||||
<ul>
|
||||
{{ range .Entries }}
|
||||
<li><a href="{{ .Link.Href }}">{{ .Title }}</a> <i>{{ .UpdatedHuman }}, {{ .Author }}</i></li>
|
||||
{{ else }}
|
||||
<li><i>Ups, nie udało się załadować wpisów.</i></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<h2>Gdzie jesteśmy?</h2>
|
||||
<p>
|
||||
Warszawski Hackerspace mieści się na <a href="https://wiki.hackerspace.pl/jak-trafic">podwyższonym parterze w budynku na ul. Wolność 2A</a>.
|
||||
<pre>Warszawski Hackerspace
|
||||
ul. Wolność 2A
|
||||
01-018 Warszawa
|
||||
52°14'29.8"N 20°59'5.5"E</pre>
|
||||
</p>
|
||||
<div id="map"></div>
|
||||
<h2>Kontakt</h2>
|
||||
<p>
|
||||
Mamy <a href="https://matrix.to/#/#general:hackerspace.pl">aktywny pokój na Matrixie</a> połączony z IRC (#hswaw na irc.libera.chat) gdzie możesz porozmawiać na żywo z naszymi członkami i wkręcić się w naszą społeczność online.
|
||||
</p>
|
||||
<p>
|
||||
Możesz też zapisać się na nasze listy dyskusyjne: <a href="https://lists.hackerspace.pl/postorius/lists/waw.lists.hackerspace.pl/">waw@</a> (publiczna o HSWAW) oraz <a href="https://lists.hackerspace.pl/postorius/lists/waw-proj.lists.hackerspace.pl/">waw-proj@</a> (o projektach).
|
||||
</p>
|
||||
<p>
|
||||
Zapraszamy też do bezpośredniego kontaktu mejlowego na <a href="mailto:kontakt@hackerspace.pl">kontakt@hackerspace.pl</a>.
|
||||
</p>
|
||||
|
||||
<div id="footer">
|
||||
<span>© 2021 <a href="https://cs.hackerspace.pl/hscloud/-/tree/hswaw/site">Autorzy Strony</a>. Ten utwór jest dostępny na <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">licencji Creative Commons Uznanie autorstwa 4.0 Międzynarodowe</a>.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.loadMap = () => {
|
||||
let map = L.map('map', {
|
||||
center: [52.24158, 20.9848],
|
||||
zoom: 13,
|
||||
scrollWheelZoom: false,
|
||||
});
|
||||
|
||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||
}).addTo(map);
|
||||
|
||||
L.marker([52.24158, 20.9848]).addTo(map);
|
||||
}
|
||||
</script>
|
||||
<script src="/static/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin="" onload="loadMap()"></script>
|
|
@ -1,77 +0,0 @@
|
|||
{{ define "page_scripts" }}
|
||||
<script type="text/javascript" src="https://widgets.twimg.com/j/2/widget.js"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ define "page_style" }}
|
||||
<link rel="stylesheet" href="static/main.css"/>
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}Hackerspace Warszawa - strona główna{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<div id="left">
|
||||
<div id="about">
|
||||
<h1>Czym jest Hackerspace?</h1>
|
||||
<p>
|
||||
Hackerspace to przestrzeń stworzona i utrzymywana przez grupę kreatywnych osób, które łączy fascynacja
|
||||
ogólno pojętym tworzeniem w duchu <a href="http://ultra.ap.krakow.pl/~raj/hacker-howto.html">kultury
|
||||
hackerskiej</a>. Przestrzeń stymuluje rozwój projektów, organizując i użyczając potrzebnych narzędzi.
|
||||
Hackerspace nie zna barier, jeśli masz ciekawy pomysł i szukasz ludzi chętnych do współpracy lub po
|
||||
prostu potrzebujesz miejsca i sprzętu - zapraszamy!
|
||||
</p>
|
||||
<a href="/about" class="moar">Gdzie jesteśmy? Co robimy? Jak do nas dołączyć? Dowiedz się więcej!</a>
|
||||
</div>
|
||||
<h1>Nowości</h1>
|
||||
<ul class="news">
|
||||
{{ range .Entries }}
|
||||
<li class="{{ .Source }}">
|
||||
<a class="news-title" href="{{ .Link.Href }}">
|
||||
<h3><span class="news-rectangle">blog</span>{{ .Title }}</h3>
|
||||
</a>
|
||||
<p class="news">
|
||||
{{ .Summary }}
|
||||
</p>
|
||||
<p class="news-footer">
|
||||
Ostatnio aktualizowane {{ .UpdatedHuman }} przez {{ .Author }}
|
||||
</p>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<h1>Kalendarz</h1>
|
||||
<i>borked ,-,</i>
|
||||
<!-- TODO(q3k): fix this: <iframe style="max-width: 750px;width:100%;border: none;" height="315" src="https://owncloud.hackerspace.pl/index.php/apps/calendar/embed/g8toktZrA9fyAHNi"></iframe> -->
|
||||
</div>
|
||||
<div id="right">
|
||||
<!-- TODO(q3k): add this {% include "subscribe.html" %} -->
|
||||
<h1 class="twitter">Twitter</h1>
|
||||
<script type="text/javascript">
|
||||
new TWTR.Widget({
|
||||
version: 2,
|
||||
type: 'profile',
|
||||
rpp: 5,
|
||||
interval: 6000,
|
||||
theme: {
|
||||
shell: {
|
||||
background: '#eee',
|
||||
color: '#222'
|
||||
},
|
||||
tweets: {
|
||||
background: '#eee',
|
||||