Update
This commit is contained in:
@@ -7,12 +7,12 @@ using Server.DatabaseSupport, Server.TemplateEditor
|
||||
|
||||
controller = "basic"
|
||||
dict_layouts = Dict(
|
||||
:landing => generate_layout_html("main",controller,"landing",css=["landing"]),
|
||||
:landing => generate_layout_html("main",controller,"landing",css=["landing"],libraries=["Leaflet"]),
|
||||
:manifesto => generate_layout_html("main",controller,"manifesto"),
|
||||
:join_us => generate_layout_html("main",controller,"join_us"),
|
||||
:groups => generate_layout_html("main",controller,"groups"),
|
||||
:cooperatives => generate_layout_html("main",controller,"cooperatives"),
|
||||
:communities => generate_layout_html("main",controller,"communities"),
|
||||
:join_us => generate_layout_html("main",controller,"join_us",libraries=["Leaflet"]),
|
||||
:groups => generate_layout_html("main",controller,"groups",libraries=["Leaflet"]),
|
||||
:cooperatives => generate_layout_html("main",controller,"cooperatives",libraries=["Leaflet"]),
|
||||
:communities => generate_layout_html("main",controller,"communities",libraries=["Leaflet"]),
|
||||
)
|
||||
|
||||
#---General-----------------------------------------------------
|
||||
|
39
Server/app/svelte/public/js/communities.js
Normal file
39
Server/app/svelte/public/js/communities.js
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
export let communities = [
|
||||
{
|
||||
location: ["Estonia, Kohtla-Järve",[59.409521829709504, 27.288415912535914]],
|
||||
status: "forming",
|
||||
members: 2,
|
||||
contact: ["https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh","WhatsApp invite link"]
|
||||
}
|
||||
]
|
||||
|
||||
export function addMarkersCommunities(map) {
|
||||
for (let g of communities) {
|
||||
let coordinates
|
||||
let text = ""
|
||||
for (let field in g) {
|
||||
let fieldText = field[0].toUpperCase() + field.slice(1) + ": "
|
||||
if (field=="contact") {
|
||||
text += fieldText + "<a href='" + g.contact[0] + "' target='_blank' rel=noreferrer>" + g.contact[1] + "</a>"
|
||||
}
|
||||
else if (field=="location") {
|
||||
text += fieldText + g[field][0] + "<br>"
|
||||
coordinates = g[field][1]
|
||||
}
|
||||
else {
|
||||
text += fieldText + g[field] + "<br>"
|
||||
}
|
||||
}
|
||||
var greenIcon = new L.Icon({
|
||||
iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png',
|
||||
shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',
|
||||
iconSize: [25, 41],
|
||||
iconAnchor: [12, 41],
|
||||
popupAnchor: [1, -34],
|
||||
shadowSize: [41, 41]
|
||||
});
|
||||
let marker = L.marker(coordinates, {icon: greenIcon})
|
||||
marker.addTo(map).bindPopup(text)
|
||||
}
|
||||
}
|
51
Server/app/svelte/public/js/coops.js
Normal file
51
Server/app/svelte/public/js/coops.js
Normal file
@@ -0,0 +1,51 @@
|
||||
export let coops = [
|
||||
{
|
||||
logo: "chiron_logo",
|
||||
name: "Chiron Health",
|
||||
location: ["Estonia, Kohtla-Järve",[59.40338782864918, 27.286240058760324]],
|
||||
market: "wellness and health",
|
||||
workers: 2,
|
||||
status: "launch in 2 months",
|
||||
website: "chrn.health",
|
||||
contact: ["https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh","WhatsApp invite link"],
|
||||
description: "Chiron Health is a health platform providing courses and services on the topics of nutrition, exercise, sleep and mental wellbeing.",
|
||||
},
|
||||
{
|
||||
logo: "kuusk_logo",
|
||||
name: "Kuusk",
|
||||
location: ["Estonia, Kohtla-Järve",[59.405466538976185, 27.289104862336302]],
|
||||
market: "herbal teas",
|
||||
workers: 1,
|
||||
status: "launch in TBD months",
|
||||
website: "-",
|
||||
contact: ["https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh","WhatsApp invite link"],
|
||||
description: "Kuusk is an online store that sells herbal teas from exclusively local wild plants, as well as an online gathering course.",
|
||||
}
|
||||
]
|
||||
|
||||
export function addMarkersCoops(map) {
|
||||
for (let g of coops) {
|
||||
let coordinates
|
||||
let text = ""
|
||||
for (let field in g) {
|
||||
let fieldText = "<b>" + field[0].toUpperCase() + field.slice(1) + ": " + "</b>"
|
||||
if (field=="logo") {
|
||||
text += "<picture><source srcset=" + "/img/coops/" + g.logo + ".webp><source srcset='/img/coops/" + g.logo + ".png'><img alt='logo' style='position: relative; max-height: 5rem; max-width: 100%; margin: auto;'></picture>" + "<br>"
|
||||
}
|
||||
else if (field=="contact") {
|
||||
text += fieldText + "<a href='https://www." + g.contact[0] + "' target='_blank' rel=noreferrer>" + g.contact[1] + "</a>" + "<br>"
|
||||
}
|
||||
else if (field=="website") {
|
||||
text += fieldText + "<a href='" + g.website + "' target='_blank' rel=noreferrer>" + g.website + "</a>" + "<br>"
|
||||
}
|
||||
else if (field=="location") {
|
||||
text += fieldText + g[field][0] + "<br>"
|
||||
coordinates = g[field][1]
|
||||
}
|
||||
else {
|
||||
text += fieldText + g[field] + "<br>"
|
||||
}
|
||||
}
|
||||
L.marker(coordinates).addTo(map).bindPopup(text)
|
||||
}
|
||||
}
|
37
Server/app/svelte/public/js/groups.js
Normal file
37
Server/app/svelte/public/js/groups.js
Normal file
@@ -0,0 +1,37 @@
|
||||
export let groups = [
|
||||
{
|
||||
location: ["Estonia, Kohtla-Järve",[59.40629447076191, 27.280605339416322]],
|
||||
members: 3,
|
||||
contact: ["https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh","WhatsApp invite link"]
|
||||
}
|
||||
]
|
||||
|
||||
export function addMarkersGroups(map) {
|
||||
for (let g of groups) {
|
||||
let coordinates
|
||||
let text = ""
|
||||
for (let field in g) {
|
||||
let fieldText = field[0].toUpperCase() + field.slice(1) + ": "
|
||||
if (field=="contact") {
|
||||
text += fieldText + "<a href='" + g.contact[0] + "' target='_blank' rel=noreferrer>" + g.contact[1] + "</a>"
|
||||
}
|
||||
else if (field=="location") {
|
||||
text += fieldText + g[field][0] + "<br>"
|
||||
coordinates = g[field][1]
|
||||
}
|
||||
else {
|
||||
text += fieldText + g[field] + "<br>"
|
||||
}
|
||||
}
|
||||
var greenIcon = new L.Icon({
|
||||
iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png',
|
||||
shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',
|
||||
iconSize: [25, 41],
|
||||
iconAnchor: [12, 41],
|
||||
popupAnchor: [1, -34],
|
||||
shadowSize: [41, 41]
|
||||
});
|
||||
let marker = L.marker(coordinates, {icon: greenIcon})
|
||||
marker.addTo(map).bindPopup(text)
|
||||
}
|
||||
}
|
@@ -10,6 +10,7 @@ import watch from "rollup-plugin-watch";
|
||||
|
||||
const production = !process.env.ROLLUP_WATCH;
|
||||
|
||||
|
||||
function serve() {
|
||||
let server;
|
||||
|
||||
|
@@ -3,22 +3,99 @@
|
||||
<script>
|
||||
// Import statements
|
||||
import { onMount } from 'svelte'
|
||||
|
||||
import { communities, addMarkersCommunities } from '/js/communities.js'
|
||||
|
||||
// Import components
|
||||
import "/js/components/map-component.js"
|
||||
|
||||
// Main code
|
||||
|
||||
|
||||
function mapCallbackCommunities(createMap) {
|
||||
let map = createMap([51.505, -0.09],3)
|
||||
addMarkersCommunities(map)
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<div id="container">
|
||||
<!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
|
||||
<div id="text-container">
|
||||
<h1>Communities</h1>
|
||||
<p>We build libertarian socialist communities by buying land, housing and the means of production which are then owned by the members of these communities. There is no private property within the communities and, therefore, exploitation and suffering that comes with it. Decisions are made through direct democracy with a focus on consensus ensuring that each community member has power over decisions that affect their life. Communities try to establish their own cooperatives in order to finance their development becoming financially independent and sustainable, which allows for their survival and growth. Within communities the gift economy is utilized whenever possible. Each community is a small beacon of socialism within the dark capitalist world showing us how good life can be if only we achieve our goal.</p>
|
||||
<h3>Our communities</h3>
|
||||
<map-component id="map" callback={mapCallbackCommunities}></map-component>
|
||||
<h4>Europe</h4>
|
||||
{#each communities as community}
|
||||
<div class="location-info">
|
||||
<p><b>Location: </b>{community.location[0]}</p>
|
||||
<p><b>Status: </b>{community.status}</p>
|
||||
<p><b>Members: </b>{community.members}</p>
|
||||
<p><b>Contact: </b><a href={community.contact[0]} target=;_blank; rel=noreferrer>{community.contact[1]}</a></p>
|
||||
</div>
|
||||
{/each}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@import '/css/common.css';
|
||||
|
||||
h4 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.location-info {
|
||||
position: relative;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.location-info p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: 1.2rem;
|
||||
color: #DD1C1A;
|
||||
}
|
||||
|
||||
#map {
|
||||
--height: 30rem;
|
||||
--width: 100%;
|
||||
--margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
#text-container {
|
||||
max-width: calc(100vw - 4rem);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: auto;
|
||||
max-width: 1200px;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
#container>div>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container p {
|
||||
font-size: 1.2rem;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
</style>
|
43
Server/app/svelte/src/components/map-component.svelte
Normal file
43
Server/app/svelte/src/components/map-component.svelte
Normal file
@@ -0,0 +1,43 @@
|
||||
<svelte:options tag="map-component" />
|
||||
|
||||
<script>
|
||||
// Import statements
|
||||
import { onMount } from 'svelte'
|
||||
|
||||
// Import components
|
||||
|
||||
// Export statements
|
||||
export let callback = null
|
||||
|
||||
// Main code
|
||||
let mapContainer
|
||||
|
||||
function createMap(center,zoom) {
|
||||
let map = L.map(mapContainer, {
|
||||
center: center,
|
||||
zoom: zoom
|
||||
});
|
||||
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||
}).addTo(map);
|
||||
return map
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
callback(createMap)
|
||||
})
|
||||
</script>
|
||||
|
||||
<div bind:this={mapContainer} id="map"></div>
|
||||
|
||||
|
||||
<style>
|
||||
@import 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css';
|
||||
|
||||
#map {
|
||||
height: var(--height);
|
||||
width: var(--width,100%);
|
||||
margin-bottom: var(--margin-bottom,0)
|
||||
}
|
||||
|
||||
</style>
|
@@ -3,22 +3,131 @@
|
||||
<script>
|
||||
// Import statements
|
||||
import { onMount } from 'svelte'
|
||||
import { coops, addMarkersCoops } from '/js/coops.js'
|
||||
|
||||
// Import components
|
||||
import "/js/components/map-component.js"
|
||||
|
||||
// Main code
|
||||
|
||||
|
||||
function mapCallbackCoops(createMap) {
|
||||
let map = createMap([51.505, -0.09],3)
|
||||
addMarkersCoops(map)
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<div id="container">
|
||||
<!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
|
||||
<div id="text-container">
|
||||
<h1>Cooperatives</h1>
|
||||
<p>We create worker cooperatives that embody a transformative business model in which the workers themselves own and democratically control the enterprise. In these cooperatives, each employee has a say in decision-making, and profits are shared based on individual contributions. This participatory structure fosters a sense of ownership, motivation, and job satisfaction among workers, resulting in a more fulfilling and empowering work experience. Moreover, worker cooperatives promote economic equity by distributing profits more equitably among all workers, challenging the concentration of wealth seen in traditional capitalist enterprises.</p>
|
||||
<p>Worker cooperatives prioritize the well-being of their workers, striving for fair wages, safe working conditions, and a healthy work-life balance. By placing the needs of workers at the forefront, these cooperatives create supportive and sustainable work environments that promote social cohesion and job security. Furthermore, worker cooperatives adopt long-term perspectives and prioritize the interests of their local communities. With decision-making power vested in the workers themselves, cooperatives are less inclined to pursue short-term profit-maximization strategies that harm workers and communities. Instead, they reinvest their profits locally, contributing to the development and resilience of their communities.</p>
|
||||
<h3>Our cooperatives</h3>
|
||||
<map-component id="map" callback={mapCallbackCoops}></map-component>
|
||||
<h4>Europe</h4>
|
||||
{#each coops as coop}
|
||||
<div class="location-info">
|
||||
<div>
|
||||
<div>
|
||||
<p><b>Name: </b>{coop.name}</p>
|
||||
<p><b>Location: </b>{coop.lcoation}</p>
|
||||
<p><b>Market: </b>{coop.market}</p>
|
||||
<p><b>Workers: </b>{coop.workers}</p>
|
||||
<p><b>Status: </b>{coop.status}</p>
|
||||
<p><b>Website: </b><a href={"https://www."+coop.website} target="_blank" rel=noreferrer>{coop.website}</a></p>
|
||||
<p><b>Contact: </b><a href={coop.contact[0]} target=;_blank; rel=noreferrer>{coop.contact[1]}</a></p>
|
||||
</div>
|
||||
<picture>
|
||||
<source srcset={"/img/coops/"+coop.logo+".webp"}>
|
||||
<source srcset={"/img/coops/"+coop.logo+".png"}>
|
||||
<img class="coop-logo" alt="logo">
|
||||
</picture>
|
||||
</div>
|
||||
<p><b>Description: </b>{coop.description}</p>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@import '/css/common.css';
|
||||
|
||||
.location-info>:first-child {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
gap: 3rem;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.location-info>:first-child>:first-child {
|
||||
flex:none;
|
||||
}
|
||||
|
||||
.coop-logo {
|
||||
position: relative;
|
||||
right: 0;
|
||||
max-height: 8rem;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.location-info {
|
||||
position: relative;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.location-info p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: 1.2rem;
|
||||
color: #DD1C1A;
|
||||
}
|
||||
|
||||
#map {
|
||||
--height: 30rem;
|
||||
--width: 100%;
|
||||
--margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
#text-container {
|
||||
max-width: calc(100vw - 4rem);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: auto;
|
||||
max-width: 1200px;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
#container>div>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container p {
|
||||
font-size: 1.2rem;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
</style>
|
@@ -16,7 +16,7 @@
|
||||
<div id="contact-us-container">
|
||||
<h2>CONTACT US</h2>
|
||||
<!--<p>Email: <a href="mailto:info@chiron.com">info@libsoc.org</a></p>-->
|
||||
<p>WhatsApp: <a href="https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh" target="_blank">group invite link</a></p>
|
||||
<p>WhatsApp: <a href="https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh" target="_blank" rel=noreferrer>group invite link</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<button on:click={() => {location.href='#'}} id="footer-up" aria-label="go up">
|
||||
|
@@ -3,22 +3,91 @@
|
||||
<script>
|
||||
// Import statements
|
||||
import { onMount } from 'svelte'
|
||||
import { groups, addMarkersGroups } from '/js/groups.js'
|
||||
|
||||
// Import components
|
||||
import "/js/components/map-component.js"
|
||||
|
||||
// Main code
|
||||
|
||||
|
||||
|
||||
export function mapCallbackGroups(createMap) {
|
||||
let map = createMap([51.505, -0.09],3)
|
||||
addMarkersGroups(map)
|
||||
}
|
||||
onMount(() => {
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<div id="container">
|
||||
<!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
|
||||
<div id="text-container">
|
||||
<h1>Groups</h1>
|
||||
<p>We try to raise awareness among individuals about the detrimental impact of the current politico-economic systems on our collective well-being. Through educational initiatives, community engagement, and critical analysis, we strive to illuminate the structural flaws and inherent inequalities that permeate capitalist societies. By shedding light on these systemic issues, we empower people to question the status quo and envision alternative paths towards a more just and sustainable future.</p>
|
||||
<p>However, our mission extends beyond theoretical exploration and ideological discourse. We firmly believe in the power of mutual aid and collective action to alleviate the immediate challenges and hardships faced within a capitalist framework. Through the practice of mutual aid, we actively support one another by sharing resources, knowledge, and skills, thereby fostering a sense of solidarity and resilience. Whether it's organizing community gardens, establishing local food cooperatives, or providing mutual support networks, our aim is to make life under capitalism more bearable and to cultivate pockets of resistance and alternatives within the existing system.</p>
|
||||
<h3>Our groups</h3>
|
||||
<map-component id="map" callback={mapCallbackGroups}></map-component>
|
||||
<h4>Europe</h4>
|
||||
{#each groups as group}
|
||||
<div class="location-info">
|
||||
<p><b>Location: </b>{group.location[0]}</p>
|
||||
<p><b>Members: </b>{group.members}</p>
|
||||
<p><b>Contact: </b><a href={group.contact[0]} target=;_blank; rel=noreferrer>{group.contact[1]}</a></p>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@import '/css/common.css';
|
||||
|
||||
h4 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.location-info p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: 1.2rem;
|
||||
color: #DD1C1A;
|
||||
}
|
||||
|
||||
#map {
|
||||
--height: 30rem;
|
||||
--width: 100%;
|
||||
--margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
#text-container {
|
||||
max-width: calc(100vw - 4rem);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: auto;
|
||||
max-width: 1200px;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
#container>div>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container p {
|
||||
font-size: 1.2rem;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
</style>
|
@@ -3,12 +3,25 @@
|
||||
<script>
|
||||
// Import statements
|
||||
import { onMount } from 'svelte'
|
||||
|
||||
import { addMarkersGroups } from '/js/groups.js'
|
||||
import { addMarkersCoops } from '/js/coops.js'
|
||||
import { addMarkersCommunities } from '/js/communities.js'
|
||||
// Import components
|
||||
|
||||
// Main code
|
||||
|
||||
|
||||
|
||||
|
||||
// Import components
|
||||
import "/js/components/map-component.js"
|
||||
|
||||
// Main code
|
||||
export function mapCallback(createMap) {
|
||||
let map = createMap([51.505, -0.09],3)
|
||||
addMarkersGroups(map)
|
||||
addMarkersCoops(map)
|
||||
addMarkersCommunities(map)
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
|
||||
@@ -16,9 +29,103 @@
|
||||
</script>
|
||||
|
||||
|
||||
Are you against exploitation of one human being by another?
|
||||
Do you agree that we should cooperate and not compete with each other?
|
||||
In that case, you are already a libertarian socialist. Join us
|
||||
|
||||
FInd our group, community or cooperative near you and join in order to make a world we both envision a reality.
|
||||
|
||||
None of them near you? Not a problem! Join our WhatsApp group and we will help you get started.
|
||||
<div id="container">
|
||||
<!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
|
||||
<div id="text-container">
|
||||
<h1>Join us</h1>
|
||||
<div id="condition-list">
|
||||
<p>1. Are you against dictatorship and in favor of democracy?</p>
|
||||
<p>2. Are you against exploitation of one human being by another?</p>
|
||||
<p>3. Do you agree that we should cooperate and not compete with each other?</p>
|
||||
<p>If the answer is <b>YES</b>, then you are already a libertarian socialist. <b>JOIN US!</b></p>
|
||||
</div>
|
||||
<div id="call-to-action-list">
|
||||
<p>Find our</p>
|
||||
<ol>
|
||||
<li><a href="https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh">group</a>,</li>
|
||||
<li><a href="https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh">community</a> or</li>
|
||||
<li><a href="https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh">cooperative</a></li>
|
||||
</ol>
|
||||
<p>near you and join to help make a world we both envision a reality.</p>
|
||||
</div>
|
||||
<p>None of them near you? Not a problem! Join our <a href="https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh" target="_blank" rel=noreferrer>WhatsApp group</a> and we will help you start your own.</p>
|
||||
<map-component id="map" callback={mapCallback}></map-component>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@import '/css/common.css';
|
||||
|
||||
#map {
|
||||
--height: 30rem;
|
||||
--width: 100%;
|
||||
--margin-bottom: 3rem;
|
||||
}
|
||||
|
||||
ol>li {
|
||||
position: relative;
|
||||
font-size: 1.2rem;
|
||||
font-family: var(--serif,serif);
|
||||
left: 3rem;
|
||||
}
|
||||
|
||||
#condition-list {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
#condition-list>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#text-container {
|
||||
max-width: calc(100vw - 4rem);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: auto;
|
||||
max-width: 1200px;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
#container>div>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#call-to-action-list>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#call-to-action-list>:nth-child(2) {
|
||||
margin-bottom: 0rem;
|
||||
}
|
||||
|
||||
#call-to-action-list>ol>li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
#text-container a {
|
||||
font-size: 1.2rem;
|
||||
color: #DD1C1A
|
||||
}
|
||||
|
||||
#container p {
|
||||
font-size: 1.2rem;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
</style>
|
@@ -15,26 +15,71 @@
|
||||
|
||||
})
|
||||
</script>
|
||||
<!--
|
||||
<div id="who-we-are">
|
||||
<p>WHO WE ARE GOES HERE</p>
|
||||
|
||||
<div id="container">
|
||||
<picture>
|
||||
<source srcset="/img/crowd.webp">
|
||||
<source srcset="/img/crowd.png">
|
||||
<img id="crowd" alt="crowd">
|
||||
</picture>
|
||||
|
||||
<div id="text-container">
|
||||
<p>We are people united around a single cause of bringing down authoritarian exploitative systems represented by different forms of capitalism and replacing them with libertarian socialist systems to create a more equitable and democratic world.</p>
|
||||
<div id="container-grid">
|
||||
<div>
|
||||
<p>GROUPS: We organize into groups for education, advocacy and mutual aid. We aim to show people how the current politico-economic systems negatively affect our wellbeing, show them the alternatives, and engage in mutual aid to make our life under capitalism easier.</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>COMMUNITIES: We build communities according to libertarian socialist principles where people own their land, their houses, the means of production and use direct democracy to make decisions. We are growing our socialist world one community at a time.</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>COOPERATIVES: We create worker cooperatives in order to finance the functioning of our groups and communities. Economic power determines political power, therefore, establishing cooperatives is one of the first steps towards achieving socialism by providing democratic workplaces for workers instead of authoritarian capitalist businesses.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<style>
|
||||
@import '/css/common.css';
|
||||
|
||||
#who-we-are {
|
||||
#text-container {
|
||||
max-width: calc(100vw - 4rem);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#crowd {
|
||||
width: 100%;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: auto;
|
||||
background-color: rgb(194, 194, 194);
|
||||
max-width: 1200px;
|
||||
height: 10rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 5rem;
|
||||
}
|
||||
|
||||
#who-we-are p {
|
||||
#container>div>p {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
#container p {
|
||||
font-size: 1.2rem;
|
||||
text-align: center;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
#container-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1.3fr;
|
||||
grid-gap: 3rem;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1000px) {
|
||||
#container-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
grid-gap: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
@@ -3,23 +3,124 @@
|
||||
<script>
|
||||
// Import statements
|
||||
import { onMount } from 'svelte'
|
||||
import { getData } from "/js/libraries/serverTools.js"
|
||||
|
||||
// Import components
|
||||
|
||||
|
||||
// Main code
|
||||
let manifesto = []
|
||||
let key
|
||||
|
||||
|
||||
const htmlDelims = ["ul","ol"]
|
||||
getData("/assets/manifesto.txt",function(response) {
|
||||
let splitText = response.split(/\r?\n/)
|
||||
for (let j=0;j<splitText.length;j++) {
|
||||
let line = splitText[j]
|
||||
let delimInd = htmlDelims.map((x) => line.includes("<"+x+">")).findIndex((x) => x)
|
||||
if (delimInd!=-1) {
|
||||
let delim = htmlDelims[delimInd]
|
||||
let obj = {}
|
||||
obj[delim] = []
|
||||
let delimEndTag = "</"+delim+">"
|
||||
while (true) {
|
||||
j += 1
|
||||
line = splitText[j]
|
||||
if (line.includes(delimEndTag)) {
|
||||
manifesto.push(obj)
|
||||
break
|
||||
}
|
||||
else {
|
||||
obj[delim].push(line)
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
manifesto.push(line)
|
||||
}
|
||||
}
|
||||
key += 1
|
||||
})
|
||||
|
||||
onMount(() => {
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
<div id="container">
|
||||
<div id="text-container">
|
||||
{#key key}
|
||||
{#each manifesto as line}
|
||||
{#if line!==""}
|
||||
{#if typeof (line === 'object') && (Object.keys(line)[0]=="ul")}
|
||||
<ul>
|
||||
{#each line.ul as line2}
|
||||
<li>{line2}</li>
|
||||
{/each}
|
||||
</ul>
|
||||
{:else if typeof (line === 'object') && (Object.keys(line)[0]=="ol")}
|
||||
<ol>
|
||||
{#each line.ol as line2}
|
||||
<li>
|
||||
{@html line2}
|
||||
</li>
|
||||
{/each}
|
||||
</ol>
|
||||
{:else if line.slice(0,3)=="###"}
|
||||
<h3>{@html line.slice(4,line.length)}</h3>
|
||||
{:else if line.slice(0,2)=="##"}
|
||||
<h2>{@html line.slice(3,line.length)}</h2>
|
||||
{:else if line[0]=="#"}
|
||||
<h1>{@html line.slice(2,line.length)}</h1>
|
||||
{:else}
|
||||
<p class="margin-end">
|
||||
{@html line}
|
||||
</p>
|
||||
{/if}
|
||||
{/if}
|
||||
{/each}
|
||||
{/key}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
@import '/css/common.css';
|
||||
|
||||
h1 {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 2.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-bottom: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#text-container {
|
||||
max-width: calc(100vw - 4rem);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#container {
|
||||
margin: auto;
|
||||
max-width: 1200px;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
#container>div>p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
#container p {
|
||||
font-size: 1.2rem;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
</style>
|
@@ -12,7 +12,7 @@
|
||||
function changeNavbar() {
|
||||
if (hambInput.checked) {
|
||||
navbar.style.background = "white"
|
||||
navbar.style.boxShadow = "0 0 0.314rem rgb(187, 187, 187)"
|
||||
//navbar.style.boxShadow = "0 0 0.314rem rgb(187, 187, 187)"
|
||||
}
|
||||
else {
|
||||
setTimeout(()=> {
|
||||
|
Reference in New Issue
Block a user