Compare commits

...

5 commits

Author SHA1 Message Date
0ac61aa115 started work on writings page 2020-04-14 03:23:52 +10:00
7c61f33833 contacts page 2020-04-12 19:37:27 +10:00
ea7b5be1a1 resources 2020-04-12 19:04:33 +10:00
810c77cd6e basic css, home page text 2020-04-12 19:03:02 +10:00
b44d3be2e9 the very basics 2020-04-12 18:20:44 +10:00
20 changed files with 241 additions and 0 deletions

3
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,3 @@
{
"python.pythonPath": "/mnt/code/web/pecha.red/venv/bin/python3.8"
}

24
app.py Executable file
View file

@ -0,0 +1,24 @@
from flask import Flask, render_template, json
from flask_misaka import markdown
import glob
app = Flask(__name__)
contact_data = json.load(open("data/contact.json"))
writings = []
for filename in glob.iglob("writings/**/*.md", recursive = True):
# TODO: split into parent dir and filename
writings.append(filename)
@app.route("/")
def render_home():
return render_template("home.html", big_header = True)
@app.route("/contact")
def render_contact():
return render_template("contact.html", data = contact_data)
@app.route("/writings")
def render_writings():
return render_template("writings.html", writings = writings)

0
config.py Normal file
View file

13
data/contact.json Normal file
View file

@ -0,0 +1,13 @@
{
"Social": [
["pech@bune.city (Email)", "mailto:pech@bune.city"],
["Fediverse", "https://fedi.lynnesbian.space/@Petra_fied"],
["Petra-fied#1528 (Discord)", null]
],
"Other": [
["Keybase", "https://keybase.io/pecha"],
["Git", "https://git.bune.city/petra-fied"],
["SW-0502-8685-4802 (Switch)", null],
["My blog (to be rehosted)", "https://petra.press/"]
]
}

3
requirements.txt Normal file
View file

@ -0,0 +1,3 @@
Flask==1.1.2
Flask-Misaka==1.0.0
python-frontmatter==0.5.0

BIN
static/fonts/Cozette.woff Normal file

Binary file not shown.

BIN
static/fonts/Cozette.woff2 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

24
static/fonts/style.css Normal file
View file

@ -0,0 +1,24 @@
@font-face {
font-family: 'TOMMY HILFIGER AF';
src: local('TOMMY HILFIGER AF'), local('TOMMYHILFIGERAF'),
url('TOMMYHILFIGERAF.woff2') format('woff2'),
url('TOMMYHILFIGERAF.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'VCR OSD Mono';
src: local('VCR OSD Mono'), local('VCROSDMono'),
url('VCROSDMono.woff2') format('woff2'),
url('VCROSDMono.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Cozette';
src: local('Cozette'),
url('Cozette.woff2') format('woff2'),
url('Cozette.woff') format('woff');
font-weight: normal;
font-style: normal;
}

BIN
static/images/worst.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 KiB

76
static/style.css Normal file
View file

@ -0,0 +1,76 @@
body {
margin: 0;
background-color: #1E3942;
background-image: url("/static/images/worst.jpg");
background-attachment: fixed;
background-size: cover;
color: #cc9ba8;
font-family: sans-serif;
}
#big-header {
font-size: 2em;
font-family: 'VCR OSD Mono', monospace;
}
#big-header h1 {
font-size: 2.75em;
font-family: 'Montserrat', sans-serif;
margin: 0;
color: #6E2638;
}
#subtitle {
margin-bottom: 20px;
}
header {
text-align: center;
background: #0E111380;
padding: 40px 0;
}
nav {
width: 80%;
margin: 0 auto;
display: flex;
}
nav a {
font-family: 'VCR OSD Mono', monospace;
color: #90243A;
text-decoration: none;
padding: 5px 10px;
margin: 0;
height: 1.2em;
border-right: 2px red solid;
padding-right: 12px;
flex-basis: 100%;
user-select: none;
transition: 0.5s all;
}
nav a:first-of-type {
border-left: 2px red solid;
padding-left: 12px;
}
nav a:hover {
background-color:black;
}
h1 {
font-family: 'VCR OSD Mono', monospace;
}
main {
font-size: 1.25em;
padding: 10px;
margin: 30px auto;
width: 80%;
max-width: max-content;
background: #0E111380;
font-family: 'VCR OSD Mono', monospace; /*???*/
}
main.centred {
text-align: center;
}
main a {
color: #81a1a8;
}
main ul {
padding-left: 30px;
}

34
templates/base.html Normal file
View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %} - pecha.red</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- <link rel="stylesheet" href="https://kit-free.fontawesome.com/releases/latest/css/free.min.css"> -->
<link rel='stylesheet' type='text/css' href="{{ url_for('static', filename='style.css') }}" />
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,700&display=swap"> -->
<!-- <script src="{{ url_for('static', filename='script.js') }}"></script> -->
<link href="https://fonts.googleapis.com/css2?family=Montserrat&display=swap" rel="stylesheet">
<link rel='stylesheet' type='text/css' href="{{ url_for('static', filename='fonts/style.css') }}" />
</head>
<body>
<header>
{% if big_header %}
<div id='big-header'>
<h1>PECHA.RED</h1>
<div id='subtitle'>THE WORST IS YET TO COME</div>
</div>
{% endif %}
<nav>
<a href="/">HOME</a>
<a href="/writings">WRITINGS</a>
<a href="/library">LIBRARY</a>
<a href="https://petra.press">BLOG</a>
<a href="https://git.bune.city/petra-fied">GIT</a>
<a href="/contact">CONTACT</a>
</nav>
</header>
{% block content %}{% endblock %}
</body>
</html>

15
templates/contact.html Normal file
View file

@ -0,0 +1,15 @@
{% extends 'base.html' %}
{% block title %}contact{% endblock %}
{% block content %}
<main>
<h1>Contact</h1>
{% for heading, entries in data.items() %}
<h2>{{ heading }}</h2>
<ul>
{% for entry in entries %}
<li>{% if entry[1] %}<a href='{{ entry[1] }}'>{% endif %}{{ entry[0] }}{% if entry[1] %}</a>{% endif %}</li>
{% endfor %}
</ul>
{% endfor %}
</main>
{% endblock %}

10
templates/home.html Normal file
View file

@ -0,0 +1,10 @@
{% extends 'base.html' %}
{% block title %}home{% endblock %}
{% block content %}
<main class='centred'>
<h1>Henlo! 0u0</h1>
<p>My name is Petra, but Pet, Pech, Pecha etc are all fine =w=</p>
<p>I'm an aspiring Political Economist, but I'm broadly interested in the social sciences and philosophy pretty generally.</p>
<p>This is meant as a landing page for stuff I've created or am interested in.</p>
</main>
{% endblock %}

13
templates/writings.html Normal file
View file

@ -0,0 +1,13 @@
{% extends 'base.html' %}
{% block title %}writings{% endblock %}
{% block content %}
<main>
<h1>My writings</h1>
<div id='sidebar'>
{% for writing in writings %}
{{ writing }}
{% endfor %}
</div>
</main>
{% endblock %}

6
writings/article/test.md Normal file
View file

@ -0,0 +1,6 @@
---
title: Test
categories: [C, D]
---
henlo henlo testing!

View file

@ -0,0 +1,20 @@
---
title: Identity, Essentalism and Constructionism
categories: [A, B]
---
Identity is distinct from "self," which is the pure, subjective experience of one's being. Identity, while about individuals, is fundamentally social. HOW it is social however is debated- two broad theories of identity are essentialism and social constructionism.
Essentialism, broadly, is the idea that identity (or some aspect of identity) is inherent, unchanging and set. The explanation of why is extraneous to the fundamental definition of essentialism, but common explanations are biology, or, frequently, some higher ontological or metaphysical definition of identity.
For example, essentialist conceptions of race suggest that races naturally and fundamentally are more or less intelligent, more or less physically able et cetera than others, and this can be expressed in various ways. These include, for instance, the (awful) 19th century """scientific racism""" movement that aimed to measure race through things like phrenology, but also ideas like Julius Evola's "spiritual racism."
Social constructionism, as the name implies, states that identity is constructed socially (ie, built by humans through the social world, attitudes and interactions). This is distinct from truly subjectivist ontologies where meaning is purely imposed on the object by the subject- social constructivism believes in identities that, while constructed, still partially emerge from biology or other "deep" facts of our natures. 
A good example might be gender. Even though gender roles, performances and our ideas of gender vary hugely from culture to culture, sex (and its multitude variations) are an omnipresent factor in human societies. This has created a situation whereby there have been no societies discovered without any evidence of (some form of) sexed or gendered conceptions and roles, even though what those conceptions and roles *actually are* are highly varied and in large part disconnected from any "biological reality."
In other words, there is an underlying reality, spark or impulse towards these sorts of categories, and these "trends" are usually strongly associated with the concepts more broadly even when the specifics of those categories are socially constructed. 
Put another way, just as Simone de Beauvoir says "one is not born a woman, but rather one becomes one" and Julia Kristeva says "strictly speaking, 'women' cannot be said to exist," nevertheless the social constructs of womanhood and femininity in our society are strongly associated with things like menstruation and motherhood. And this association exists despite the logical, categorical separation and lack of universality of those experiences amongst women. 
Most essentialist thinking in a society aligns with the ideas of that society on identity, sex, gender or whatever else category is in question. Thus, most of the time the operational difference between social constructionism and essentialism is whether or not a society's beliefs and collective constructs are taken as a face-value truth or not.