meta content
This commit is contained in:
parent
b9ce32ea8d
commit
90bbdce08f
142
src/books/books.json
Normal file
142
src/books/books.json
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
{
|
||||||
|
"completed": {
|
||||||
|
"desc": "Individual books, series, and manga I read and enjoyed enough to keep in my collection",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"main": "I am a Strange Loop",
|
||||||
|
"sub": "Douglass R. Hofstadter",
|
||||||
|
"url": "https://openlibrary.org/works/OL8067922W/I_Am_a_Strange_Loop?edition=key%3A/books/OL24948194M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "2001 a Space Odyssey (series)",
|
||||||
|
"sub": "Arthur C. Clarke",
|
||||||
|
"url": "https://openlibrary.org/books/OL18674505M/2001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Zeros and Ones",
|
||||||
|
"sub": "Sadie Plant",
|
||||||
|
"url": "https://openlibrary.org/works/OL937516W/Zeros_and_Ones"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Xenofeminism",
|
||||||
|
"sub": "Helen Hester",
|
||||||
|
"url": "https://openlibrary.org/works/OL20586475W/Xenofeminism"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Daodejing (Wang Pi's commentary)",
|
||||||
|
"sub": "Lao-Tzu",
|
||||||
|
"url": "https://openlibrary.org/works/OL26585958W/Translation_of_Lao-Tzu%27s_Tao_Te_Ching_and_Wang_Pi%27s_Commentary?edition=key%3A/books/OL37483524M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Groundwork for the Metaphysics of Morals",
|
||||||
|
"sub": "Immanuel Kant",
|
||||||
|
"url": "https://openlibrary.org/works/OL99843W/Grundlegung_zur_Metaphysik_der_Sitten"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "The Burn Journals",
|
||||||
|
"sub": "Brent Runyon",
|
||||||
|
"url": "https://openlibrary.org/works/OL8043765W/The_Burn_Journals"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "The Hitch Hikers Guide to the Galaxy (series)",
|
||||||
|
"sub": "Douglas Adams",
|
||||||
|
"url": "https://openlibrary.org/works/OL2163649W/The_Hitch_Hiker%27s_Guide_to_the_Galaxy?edition=key%3A/books/OL32838419M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Six of Crows (duology)",
|
||||||
|
"sub": "Leigh Bardugo",
|
||||||
|
"url": "https://openlibrary.org/works/OL17332479W/Six_of_Crows?edition=key%3A/books/OL32178549M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Berserk (series)",
|
||||||
|
"sub": "三浦建太郎",
|
||||||
|
"url": "https://openlibrary.org/works/OL8988597W/Berserk_Vol._1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Hunter x Hunter (series)",
|
||||||
|
"sub": "冨樫 義博",
|
||||||
|
"url": "https://openlibrary.org/works/OL8215148W/Hunter_x_Hunter_Volume_1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"backlog": {
|
||||||
|
"desc": "Works sitting on my shelf right now waiting to be read",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"main": "Gödel, Escher, Bach",
|
||||||
|
"sub": "Douglas R. Hofstadter",
|
||||||
|
"url": "https://openlibrary.org/works/OL716850W/G%C3%B6del_Escher_Bach"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Snow Crash",
|
||||||
|
"sub": "Neal Stephenson",
|
||||||
|
"url": "https://openlibrary.org/works/OL38501W/Snow_Crash"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Dune",
|
||||||
|
"sub": "Frank Herbert",
|
||||||
|
"url": "https://openlibrary.org/works/OL893415W/Dune?edition=key%3A/books/OL26242482M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Catch 22",
|
||||||
|
"sub": "Joseph Heller",
|
||||||
|
"url": "https://openlibrary.org/works/OL29300587W/Catch_22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "The End of History and the Last Man",
|
||||||
|
"sub": "Francis Fukuyama",
|
||||||
|
"url": "https://openlibrary.org/works/OL2670501W/The_End_of_History_and_the_Last_Man"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Spiritual Writings",
|
||||||
|
"sub": "Søren Kierkegaard",
|
||||||
|
"url": "https://openlibrary.org/works/OL112700W/Provocations?edition=key%3A/books/OL3319828M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Gravity's Rainbow",
|
||||||
|
"sub": "Thomas Pynchon",
|
||||||
|
"url": "https://openlibrary.org/works/OL24784277W/Beyond_Good_and_Evil"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Beyond Good and Evil",
|
||||||
|
"sub": "Friedrich Nietzsche",
|
||||||
|
"url": "https://openlibrary.org/works/OL24784277W/Beyond_Good_and_Evil"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"novelties": {
|
||||||
|
"desc": "Books I will probably never read, but were interesting enough to collect anyway",
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"main": "Raster Graphics Handbook",
|
||||||
|
"sub": "Van Nostrand Reinhold",
|
||||||
|
"url": "https://openlibrary.org/works/OL16444194W/Raster_graphics_handbook?edition=key%3A/books/OL2849584M"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Fanged Noumena",
|
||||||
|
"sub": "Nick Land",
|
||||||
|
"url": "https://openlibrary.org/works/OL20705619W/Fanged_Noumena"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Beginning Flash Game Programming for Dummies",
|
||||||
|
"sub": "Andy Harris",
|
||||||
|
"url": "https://openlibrary.org/works/OL4110556W/Beginning_Flash_Game_Programming_For_Dummies"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "The Infinite and the Final Cause for Creation",
|
||||||
|
"sub": "Emanuel Swedenborg",
|
||||||
|
"url": "https://openlibrary.org/works/OL33307W/Outlines_of_a_philosophical_argument_on_the_infinite"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Compilers: Principles, Techniques, and Tools (1st ed)",
|
||||||
|
"sub": "Alfred V. Aho",
|
||||||
|
"url": "https://openlibrary.org/works/OL3509433W/Compilers_principles_techniques_and_tools"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Hypermedia Systems",
|
||||||
|
"sub": "Carson Gross",
|
||||||
|
"url": "https://openlibrary.org/works/OL38674782W/Hypermedia_Systems?edition=key%3A/books/OL53364657M"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,60 +1,5 @@
|
||||||
# books
|
# books
|
||||||
My favorite book is always the last one I read (unless it sucked)
|
My favorite book is always the last one I read (unless it sucked)
|
||||||
## completed
|
|
||||||
Individual books, series, and manga I read and enjoyed enough to keep in my
|
<json-data src="/books/books.json" show="list"></json-data>
|
||||||
collection
|
|
||||||
* [I am a Strange Loop](https://openlibrary.org/works/OL8067922W/I_Am_a_Strange_Loop?edition=key%3A/books/OL24948194M) -
|
|
||||||
_Douglas R. Hofstadter_
|
|
||||||
* [2001 a Space Odyssey (series)](https://openlibrary.org/books/OL18674505M/2001) -
|
|
||||||
_Arthur C. Clarke_
|
|
||||||
* [Zeros and Ones](https://openlibrary.org/works/OL937516W/Zeros_and_Ones) -
|
|
||||||
_Sadie Plant_
|
|
||||||
* [Xenofeminism](https://openlibrary.org/works/OL20586475W/Xenofeminism) -
|
|
||||||
_Helen Hester_
|
|
||||||
* [Daodejing (Wang Pi's commentary)](https://openlibrary.org/works/OL26585958W/Translation_of_Lao-Tzu%27s_Tao_Te_Ching_and_Wang_Pi%27s_Commentary?edition=key%3A/books/OL37483524M) -
|
|
||||||
_Lao-Tzu_
|
|
||||||
* [Groundwork for the Metaphysics of Morals](https://openlibrary.org/works/OL99843W/Grundlegung_zur_Metaphysik_der_Sitten) -
|
|
||||||
_Immanuel Kant_
|
|
||||||
* [The Burn Journals](https://openlibrary.org/works/OL8043765W/The_Burn_Journals) -
|
|
||||||
_Brent Runyon_
|
|
||||||
* [The Hitch Hikers Guide to the Galaxy (series)](https://openlibrary.org/works/OL2163649W/The_Hitch_Hiker%27s_Guide_to_the_Galaxy?edition=key%3A/books/OL32838419M) -
|
|
||||||
_Douglas Adams_
|
|
||||||
* [Six of Crows (duology)](https://openlibrary.org/works/OL17332479W/Six_of_Crows?edition=key%3A/books/OL32178549M) -
|
|
||||||
_Leigh Bardugo_
|
|
||||||
* [Berserk (series)](https://openlibrary.org/works/OL8988597W/Berserk_Vol._1) -
|
|
||||||
_三浦建太郎_
|
|
||||||
* [Hunter x Hunter (series)](https://openlibrary.org/works/OL8215148W/Hunter_x_Hunter_Volume_1) -
|
|
||||||
_冨樫 義博_
|
|
||||||
## backlog
|
|
||||||
Works sitting on my shelf right now waiting to be read
|
|
||||||
* [Gödel, Escher, Bach](https://openlibrary.org/works/OL716850W/G%C3%B6del_Escher_Bach) -
|
|
||||||
_Douglas R. Hofstadter_
|
|
||||||
* [Snow Crash](https://openlibrary.org/works/OL38501W/Snow_Crash) -
|
|
||||||
_Neal Stephenson_
|
|
||||||
* [Dune](https://openlibrary.org/works/OL893415W/Dune?edition=key%3A/books/OL26242482M) -
|
|
||||||
_Frank Herbert_
|
|
||||||
* [Catch 22](https://openlibrary.org/works/OL29300587W/Catch_22) -
|
|
||||||
_Joseph Heller_
|
|
||||||
* [The End of History and the Last Man](https://openlibrary.org/works/OL2670501W/The_End_of_History_and_the_Last_Man) -
|
|
||||||
_Francis Fukuyama_
|
|
||||||
* [Spiritual Writings](https://openlibrary.org/works/OL112700W/Provocations?edition=key%3A/books/OL3319828M) -
|
|
||||||
_Søren Kierkegaard_
|
|
||||||
* [Gravity's Rainbow](https://openlibrary.org/works/OL2636675W/Gravity%27s_Rainbow) -
|
|
||||||
_Thomas Pynchon_
|
|
||||||
* [Beyond Good and Evil](https://openlibrary.org/works/OL24784277W/Beyond_Good_and_Evil) -
|
|
||||||
_Friedrich Nietzsche_
|
|
||||||
## novelties
|
|
||||||
Books I will probably never read, but were interesting
|
|
||||||
enough to collect anyway
|
|
||||||
* [Raster Graphics Handbook](https://openlibrary.org/works/OL16444194W/Raster_graphics_handbook?edition=key%3A/books/OL2849584M) -
|
|
||||||
_Van Nostrand Reinhold_
|
|
||||||
* [Fanged Noumena](https://openlibrary.org/works/OL20705619W/Fanged_Noumena) -
|
|
||||||
_Nick Land_
|
|
||||||
* [Beginning Flash Game Programming for Dummies](https://openlibrary.org/works/OL4110556W/Beginning_Flash_Game_Programming_For_Dummies) -
|
|
||||||
_Andy Harris_
|
|
||||||
* [The Infinite and the Final Cause for Creation](https://openlibrary.org/works/OL33307W/Outlines_of_a_philosophical_argument_on_the_infinite) -
|
|
||||||
_Emanuel Swedenborg_
|
|
||||||
* [Compilers: Principles, Techniques, and Tools (1st ed)](https://openlibrary.org/works/OL3509433W/Compilers_principles_techniques_and_tools) -
|
|
||||||
_Alfred V. Aho_
|
|
||||||
* [Hypermedia Systems](https://openlibrary.org/works/OL38674782W/Hypermedia_Systems?edition=key%3A/books/OL53364657M) -
|
|
||||||
_Carson Gross_
|
|
||||||
|
|
|
@ -46,37 +46,12 @@ table, th, td {
|
||||||
align-content: center;
|
align-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a, a:visited {
|
||||||
color: #df3e23;
|
color: #df3e23;
|
||||||
/* font-style: italic; */
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:visited {
|
|
||||||
color: #df3e23;
|
|
||||||
font-style: italic;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:focus:before,a:active:before,a:hover:before {
|
|
||||||
content: "[";
|
|
||||||
font-style: normal;
|
|
||||||
color: black;
|
|
||||||
outline: none;
|
|
||||||
outline-color: transparent;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:focus:after,a:active:after,a:hover:after {
|
|
||||||
content: "]";
|
|
||||||
font-style: normal;
|
|
||||||
color: black;
|
|
||||||
outline: none;
|
|
||||||
outline-color: transparent;
|
|
||||||
outline-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
p,ul {
|
p,ul {
|
||||||
margin-top: 0.3em;
|
margin-top: 0.3em;
|
||||||
}
|
}
|
||||||
|
@ -109,7 +84,11 @@ figcaption {
|
||||||
line-height: 110%;
|
line-height: 110%;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img[src] {
|
||||||
|
border-radius: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure img {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
|
16
src/hyperspace/index.md
Normal file
16
src/hyperspace/index.md
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# hyperspace
|
||||||
|
## interesting sites
|
||||||
|
* [dimden](https://dimden.dev/)
|
||||||
|
* [zenmai studio](https://zenmaistudio.com/)
|
||||||
|
* [oddity commoddity](https://odditycommoddity.neocities.org/)
|
||||||
|
* [texture town](https://textures.neocities.org/)
|
||||||
|
* [cabbage sorter](https://cabbagesorter.neocities.org/)
|
||||||
|
* [mr bashful](https://mrbashful.com/)
|
||||||
|
* [sad girls club](https://sadgirlsclub.wtf/)
|
||||||
|
* [BJ's website](https://beedge.neocities.org/)
|
||||||
|
* [angels are mathematical](https://angelsaremathematical.neocities.org/)
|
||||||
|
* [psychocool](https://psychcool.org/links)
|
||||||
|
* [nenrikido](https://nenrikido.neocities.org/)
|
||||||
|
* [incessantpain](https://incessantpain.neocities.org/)
|
||||||
|
## cool webrings
|
||||||
|
* [neocratives](http://neocreatives.byethost5.com/)
|
22
src/index.md
22
src/index.md
|
@ -6,11 +6,19 @@ am from the United States, where I was born in 2003. In 2025 I will receive my
|
||||||
bachellors in Computer Science from the [University of Texas at San
|
bachellors in Computer Science from the [University of Texas at San
|
||||||
Antonio](https://utsa.edu).
|
Antonio](https://utsa.edu).
|
||||||
|
|
||||||
|
|
||||||
## site map
|
## site map
|
||||||
* [my git server](https://git.lgatlin.dev/logan) - _personal code forge_
|
* [my git server](https://git.lgatlin.dev/logan) - _Private forgejo instance_
|
||||||
* [software](/software) - _thoughts on programming_
|
* [software](/software) - _Thoughts on programming_
|
||||||
* [books](/books) - _reading corner_
|
* [books](/books) - _Reading corner_
|
||||||
* [music](/music) - _sick tunes_
|
* [music](/music) - _Sick tunes_
|
||||||
* [toybox](/toys) - _awesome web apps_
|
* [toybox](/toys) - _Awesome web apps_
|
||||||
* [hyperspace](/hyperspace) - _everything world wide web_
|
* [hyperspace](/hyperspace) - _Everything world wide web_
|
||||||
|
|
||||||
|
## meta
|
||||||
|
* [server info](/server-info.html) - _Technical information about this server_
|
||||||
|
* [style guide](/style-guide.html) - _Formatting rules for this site_
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<img src="favicon.gif" style="width: 10em;"> <br>
|
||||||
|
<em>If you're not remembered, then you never existed</em>
|
||||||
|
</section>
|
||||||
|
|
|
@ -1,39 +1,85 @@
|
||||||
async function figureGrid(jsonURL) {
|
class JsonData extends HTMLElement {
|
||||||
const response = await fetch(jsonURL);
|
static observedAttributes = ["src", "show"];
|
||||||
const json = await response.json();
|
|
||||||
let html = "";
|
|
||||||
for (const headerName in json) {
|
|
||||||
html = html.concat("<section>")
|
|
||||||
let entries = json[headerName];
|
|
||||||
for (let i = 0; i < entries.length; i++) {
|
|
||||||
let entry = entries[i];
|
|
||||||
html = html.concat(
|
|
||||||
`<figure>
|
|
||||||
<img src="${entry.url}">
|
|
||||||
<figcaption>
|
|
||||||
<b>${entry.main}</b><br>
|
|
||||||
<em>${entry.sub}</em>
|
|
||||||
</figcaption>
|
|
||||||
</figure>`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
html = html.concat("</section>")
|
|
||||||
}
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
class FigureGrid extends HTMLElement {
|
|
||||||
static observedAttributes = ["src"];
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static grid(json) {
|
||||||
|
let html = "";
|
||||||
|
for (const headerName in json) {
|
||||||
|
html = html.concat(`
|
||||||
|
<h2>${headerName}</h2>
|
||||||
|
<p>${json[headerName].desc || ""}</p>
|
||||||
|
<section>
|
||||||
|
`);
|
||||||
|
let entries = json[headerName].items || [];
|
||||||
|
for (let i = 0; i < entries.length; i++) {
|
||||||
|
let entry = entries[i];
|
||||||
|
html = html.concat(
|
||||||
|
`<figure>
|
||||||
|
<img src="${entry.url}">
|
||||||
|
<figcaption>
|
||||||
|
<b>${entry.main}</b><br>
|
||||||
|
<em>${entry.sub}</em>
|
||||||
|
</figcaption>
|
||||||
|
</figure>`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
html = html.concat("</section>")
|
||||||
|
}
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
static list(json) {
|
||||||
|
let html = "";
|
||||||
|
for (const headerName in json) {
|
||||||
|
html = html.concat(`
|
||||||
|
<h2>${headerName}</h2>
|
||||||
|
<p>${json[headerName].desc || ""}</p>
|
||||||
|
`);
|
||||||
|
let entries = json[headerName].items || [];
|
||||||
|
html = html.concat("<ul>")
|
||||||
|
for (let i = 0; i < entries.length; i++) {
|
||||||
|
let entry = entries[i];
|
||||||
|
html = html.concat(`<li>
|
||||||
|
<a href="${entry.url}">
|
||||||
|
<b>${entry.main}</b>
|
||||||
|
</a> -
|
||||||
|
<em>${entry.sub}</em>
|
||||||
|
</li>`);
|
||||||
|
}
|
||||||
|
html = html.concat("</ul>")
|
||||||
|
}
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
async connectedCallback() {
|
||||||
|
if (this.src == undefined) {
|
||||||
|
this.innerHTML = "src is undefined";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const response = await fetch(this.src);
|
||||||
|
const json = await response.json();
|
||||||
|
switch(this.show) {
|
||||||
|
case "grid":
|
||||||
|
this.innerHTML = JsonData.grid(json);
|
||||||
|
break;
|
||||||
|
case "list":
|
||||||
|
this.innerHTML = JsonData.list(json);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
async attributeChangedCallback(name, oldValue, newValue) {
|
async attributeChangedCallback(name, oldValue, newValue) {
|
||||||
if (name == "src") {
|
if (name == "src") {
|
||||||
this.innerHTML = await figureGrid(newValue);
|
this.src = newValue;
|
||||||
|
} else if (name == "show") {
|
||||||
|
this.show = newValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
customElements.define("figure-grid", FigureGrid);
|
customElements.define("json-data", JsonData);
|
||||||
|
|
||||||
|
|
|
@ -1,207 +1,217 @@
|
||||||
{
|
{
|
||||||
"chill": [
|
"chill": {
|
||||||
{
|
"items": [
|
||||||
"main": "Cosmos",
|
{
|
||||||
"sub": "Yuji Ohno",
|
"main": "Cosmos",
|
||||||
"url": "/res/albums/cosmos.webp"
|
"sub": "Yuji Ohno",
|
||||||
},
|
"url": "/res/albums/cosmos.webp"
|
||||||
{
|
},
|
||||||
"main": "Deep Breakfast",
|
{
|
||||||
"sub": "Ray Lynch",
|
"main": "Deep Breakfast",
|
||||||
"url": "/res/albums/deep_breakfast.webp"
|
"sub": "Ray Lynch",
|
||||||
},
|
"url": "/res/albums/deep_breakfast.webp"
|
||||||
{
|
},
|
||||||
"main": "Dune",
|
{
|
||||||
"sub": "David Matthews",
|
"main": "Dune",
|
||||||
"url": "/res/albums/dune.webp"
|
"sub": "David Matthews",
|
||||||
},
|
"url": "/res/albums/dune.webp"
|
||||||
{
|
},
|
||||||
"main": "God's Trashmen Sent to Right the Mess",
|
{
|
||||||
"sub": "Fievel is Glauque",
|
"main": "God's Trashmen Sent to Right the Mess",
|
||||||
"url": "/res/albums/gods_trashmen.webp"
|
"sub": "Fievel is Glauque",
|
||||||
},
|
"url": "/res/albums/gods_trashmen.webp"
|
||||||
{
|
},
|
||||||
"main": "MACROCOSM",
|
{
|
||||||
"sub": "BALTHVS",
|
"main": "MACROCOSM",
|
||||||
"url": "/res/albums/macrocosm.webp"
|
"sub": "BALTHVS",
|
||||||
},
|
"url": "/res/albums/macrocosm.webp"
|
||||||
{
|
},
|
||||||
"main": "Ciao! Baby",
|
{
|
||||||
"sub": "The Marshmallow Kisses",
|
"main": "Ciao! Baby",
|
||||||
"url": "/res/albums/ciao_baby.webp"
|
"sub": "The Marshmallow Kisses",
|
||||||
},
|
"url": "/res/albums/ciao_baby.webp"
|
||||||
{
|
},
|
||||||
"main": "an anxious object",
|
{
|
||||||
"sub": "mouse on the keys",
|
"main": "an anxious object",
|
||||||
"url": "/res/albums/mouse_on_the_keys.webp"
|
"sub": "mouse on the keys",
|
||||||
},
|
"url": "/res/albums/mouse_on_the_keys.webp"
|
||||||
{
|
},
|
||||||
"main": "Funky Stuff",
|
{
|
||||||
"sub": " Jiro Inagaki",
|
"main": "Funky Stuff",
|
||||||
"url": "/res/albums/funky_stuff.webp"
|
"sub": " Jiro Inagaki",
|
||||||
},
|
"url": "/res/albums/funky_stuff.webp"
|
||||||
{
|
},
|
||||||
"main": "Make Up City",
|
{
|
||||||
"sub": "CASIOPEA",
|
"main": "Make Up City",
|
||||||
"url": "/res/albums/make_up_city.webp"
|
"sub": "CASIOPEA",
|
||||||
},
|
"url": "/res/albums/make_up_city.webp"
|
||||||
{
|
},
|
||||||
"main": "Mint Jams",
|
{
|
||||||
"sub": "CASIOPEA",
|
"main": "Mint Jams",
|
||||||
"url": "/res/albums/mint_jams.webp"
|
"sub": "CASIOPEA",
|
||||||
}
|
"url": "/res/albums/mint_jams.webp"
|
||||||
],
|
}
|
||||||
"experimental": [
|
]
|
||||||
{
|
},
|
||||||
"main": "Departing",
|
"experimental": {
|
||||||
"sub": "Jesus Molina",
|
"items": [
|
||||||
"url": "/res/albums/departing.webp"
|
{
|
||||||
},
|
"main": "Departing",
|
||||||
{
|
"sub": "Jesus Molina",
|
||||||
"main": "Choose your Weapon",
|
"url": "/res/albums/departing.webp"
|
||||||
"sub": "Hiatus Kaiyote",
|
},
|
||||||
"url": "/res/albums/choose_your_weapon.webp"
|
{
|
||||||
},
|
"main": "Choose your Weapon",
|
||||||
{
|
"sub": "Hiatus Kaiyote",
|
||||||
"main": "Hold Your Horse Is",
|
"url": "/res/albums/choose_your_weapon.webp"
|
||||||
"sub": "Hella",
|
},
|
||||||
"url": "/res/albums/hold_your_horse_is.webp"
|
{
|
||||||
},
|
"main": "Hold Your Horse Is",
|
||||||
{
|
"sub": "Hella",
|
||||||
"main": "Mother Earth's Plantasia",
|
"url": "/res/albums/hold_your_horse_is.webp"
|
||||||
"sub": "Mort Garson",
|
},
|
||||||
"url": "/res/albums/plantasia.webp"
|
{
|
||||||
},
|
"main": "Mother Earth's Plantasia",
|
||||||
{
|
"sub": "Mort Garson",
|
||||||
"main": "The Wozard of Iz - An Electronic Odyssey",
|
"url": "/res/albums/plantasia.webp"
|
||||||
"sub": "Mort Garson",
|
},
|
||||||
"url": "/res/albums/wozard_of_iz.webp"
|
{
|
||||||
},
|
"main": "The Wozard of Iz - An Electronic Odyssey",
|
||||||
{
|
"sub": "Mort Garson",
|
||||||
"main": "Los Desamores de Dewey Martino",
|
"url": "/res/albums/wozard_of_iz.webp"
|
||||||
"sub": "Dewey Martino",
|
},
|
||||||
"url": "/res/albums/los_desamores_de_dewey_martino.webp"
|
{
|
||||||
},
|
"main": "Los Desamores de Dewey Martino",
|
||||||
{
|
"sub": "Dewey Martino",
|
||||||
"main": "New History Warfare Vol. 3: To See More Light",
|
"url": "/res/albums/los_desamores_de_dewey_martino.webp"
|
||||||
"sub": "Colin Stetson",
|
},
|
||||||
"url": "/res/albums/new_history_warfare_3.webp"
|
{
|
||||||
},
|
"main": "New History Warfare Vol. 3: To See More Light",
|
||||||
{
|
"sub": "Colin Stetson",
|
||||||
"main": "Hylics 2 Original Soundtrack",
|
"url": "/res/albums/new_history_warfare_3.webp"
|
||||||
"sub": "Chuck Salamone",
|
},
|
||||||
"url": "/res/albums/hylics2.webp"
|
{
|
||||||
}
|
"main": "Hylics 2 Original Soundtrack",
|
||||||
],
|
"sub": "Chuck Salamone",
|
||||||
"electronic": [
|
"url": "/res/albums/hylics2.webp"
|
||||||
{
|
}
|
||||||
"main": "H.A.Q.Q.",
|
]
|
||||||
"sub": "Liturgy",
|
},
|
||||||
"url": "/res/albums/haqq.webp"
|
"electronic": {
|
||||||
},
|
"items": [
|
||||||
{
|
{
|
||||||
"main": "One Year Madness",
|
"main": "H.A.Q.Q.",
|
||||||
"sub": "Golemm",
|
"sub": "Liturgy",
|
||||||
"url": "/res/albums/one_year_madness.webp"
|
"url": "/res/albums/haqq.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"main": "Cyberspace",
|
"main": "One Year Madness",
|
||||||
"sub": "Yameii Online",
|
"sub": "Golemm",
|
||||||
"url": "/res/albums/cyberspace.webp"
|
"url": "/res/albums/one_year_madness.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"main": "Wlfgrl",
|
"main": "Cyberspace",
|
||||||
"sub": "Machine Girl",
|
"sub": "Yameii Online",
|
||||||
"url": "/res/albums/wlfgrl.webp"
|
"url": "/res/albums/cyberspace.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"main": "...Because I'm Young Arrogant and Hate Everything You Stand For",
|
"main": "Wlfgrl",
|
||||||
"sub": "Machine Girl",
|
"sub": "Machine Girl",
|
||||||
"url": "/res/albums/young_arrogant.webp"
|
"url": "/res/albums/wlfgrl.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"main": "Parousia",
|
"main": "...Because I'm Young Arrogant and Hate Everything You Stand For",
|
||||||
"sub": "XI",
|
"sub": "Machine Girl",
|
||||||
"url": "/res/albums/parousia.webp"
|
"url": "/res/albums/young_arrogant.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"main": "www.",
|
"main": "Parousia",
|
||||||
"sub": "cosmic collective",
|
"sub": "XI",
|
||||||
"url": "/res/albums/www.webp"
|
"url": "/res/albums/parousia.webp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"main": "TMP2",
|
"main": "www.",
|
||||||
"sub": "Graham Kartna",
|
"sub": "cosmic collective",
|
||||||
"url": "/res/albums/tmp2.webp"
|
"url": "/res/albums/www.webp"
|
||||||
}
|
},
|
||||||
],
|
{
|
||||||
"high energy": [
|
"main": "TMP2",
|
||||||
{
|
"sub": "Graham Kartna",
|
||||||
"main": "Each and Every Word Leaves Me Here Alone",
|
"url": "/res/albums/tmp2.webp"
|
||||||
"sub": "Foreground Eclipse",
|
}
|
||||||
"url": "/res/albums/fge_1.webp"
|
]
|
||||||
},
|
},
|
||||||
{
|
"high energy": {
|
||||||
"main": "Missing, Loving, Suffering",
|
"items": [
|
||||||
"sub": "Foreground Eclipse",
|
{
|
||||||
"url": "/res/albums/fge_2.webp"
|
"main": "Each and Every Word Leaves Me Here Alone",
|
||||||
},
|
"sub": "Foreground Eclipse",
|
||||||
{
|
"url": "/res/albums/fge_1.webp"
|
||||||
"main": "ITEKOMA HITS",
|
},
|
||||||
"sub": "Otoboke Beaver",
|
{
|
||||||
"url": "/res/albums/itekoma_hits.webp"
|
"main": "Missing, Loving, Suffering",
|
||||||
},
|
"sub": "Foreground Eclipse",
|
||||||
{
|
"url": "/res/albums/fge_2.webp"
|
||||||
"main": "World is Yours",
|
},
|
||||||
"sub": "MASS OF THE FERMENTING DREGS",
|
{
|
||||||
"url": "/res/albums/world_is_yours.webp"
|
"main": "ITEKOMA HITS",
|
||||||
},
|
"sub": "Otoboke Beaver",
|
||||||
{
|
"url": "/res/albums/itekoma_hits.webp"
|
||||||
"main": "New Levels New Devils",
|
},
|
||||||
"sub": "Polyphia",
|
{
|
||||||
"url": "/res/albums/new_levels_new_devils.webp"
|
"main": "World is Yours",
|
||||||
}
|
"sub": "MASS OF THE FERMENTING DREGS",
|
||||||
],
|
"url": "/res/albums/world_is_yours.webp"
|
||||||
"misc": [
|
},
|
||||||
{
|
{
|
||||||
"main": "27 Demos",
|
"main": "New Levels New Devils",
|
||||||
"sub": "Margo Guryan ",
|
"sub": "Polyphia",
|
||||||
"url": "/res/albums/27_demos.webp"
|
"url": "/res/albums/new_levels_new_devils.webp"
|
||||||
},
|
}
|
||||||
{
|
]
|
||||||
"main": "the first glass beach album",
|
},
|
||||||
"sub": "Glass Beach",
|
"misc": {
|
||||||
"url": "/res/albums/glass_beach.webp"
|
"items": [
|
||||||
},
|
{
|
||||||
{
|
"main": "27 Demos",
|
||||||
"main": "Her Abiding Memory",
|
"sub": "Margo Guryan ",
|
||||||
"sub": "Pitcher56",
|
"url": "/res/albums/27_demos.webp"
|
||||||
"url": "/res/albums/her_abiding_memory.webp"
|
},
|
||||||
},
|
{
|
||||||
{
|
"main": "the first glass beach album",
|
||||||
"main": "High Society",
|
"sub": "Glass Beach",
|
||||||
"sub": "Enon",
|
"url": "/res/albums/glass_beach.webp"
|
||||||
"url": "/res/albums/high_society.webp"
|
},
|
||||||
},
|
{
|
||||||
{
|
"main": "Her Abiding Memory",
|
||||||
"main": "Live at Bush Hall",
|
"sub": "Pitcher56",
|
||||||
"sub": "Black Country, New Road",
|
"url": "/res/albums/her_abiding_memory.webp"
|
||||||
"url": "/res/albums/live_at_bush_hall.webp"
|
},
|
||||||
},
|
{
|
||||||
{
|
"main": "High Society",
|
||||||
"main": "Mass Teen Fainting",
|
"sub": "Enon",
|
||||||
"sub": "Plumtree",
|
"url": "/res/albums/high_society.webp"
|
||||||
"url": "/res/albums/mass_teen_fainting.webp"
|
},
|
||||||
},
|
{
|
||||||
{
|
"main": "Live at Bush Hall",
|
||||||
"main": "My Caution Line",
|
"sub": "Black Country, New Road",
|
||||||
"sub": "Citrobal",
|
"url": "/res/albums/live_at_bush_hall.webp"
|
||||||
"url": "/res/albums/my_caution_line.webp"
|
},
|
||||||
},
|
{
|
||||||
{
|
"main": "Mass Teen Fainting",
|
||||||
"main": "Oncle Jazz",
|
"sub": "Plumtree",
|
||||||
"sub": "Men I Trust",
|
"url": "/res/albums/mass_teen_fainting.webp"
|
||||||
"url": "/res/albums/oncle_jazz.webp"
|
},
|
||||||
}
|
{
|
||||||
]
|
"main": "My Caution Line",
|
||||||
|
"sub": "Citrobal",
|
||||||
|
"url": "/res/albums/my_caution_line.webp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"main": "Oncle Jazz",
|
||||||
|
"sub": "Men I Trust",
|
||||||
|
"url": "/res/albums/oncle_jazz.webp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,4 +3,4 @@ Music is a huge passion of mine. I prefer listening to albums in full from
|
||||||
start to finish in order. My favorite albums are usually experimental, unique,
|
start to finish in order. My favorite albums are usually experimental, unique,
|
||||||
or have a particular theme they explore
|
or have a particular theme they explore
|
||||||
|
|
||||||
<figure-grid src="/music/albums.json"></figure-grid>
|
<json-data src="/music/albums.json" show="grid"></json-data>
|
||||||
|
|
BIN
src/res/AtkinsonHyperlegible-Bold.ttf
Normal file
BIN
src/res/AtkinsonHyperlegible-Bold.ttf
Normal file
Binary file not shown.
14
src/server-info.md
Normal file
14
src/server-info.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# server info
|
||||||
|
## hardware
|
||||||
|
I host this website locally on an [Intel
|
||||||
|
NUC](https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/NUC8i3BE_NUC8i5BE_NUC8i7BE_TechProdSpec.pdf).
|
||||||
|
It runs an i3-8109U 4 core 3.6 GHz processor, 32 GB of RAM, and 120 GB SSD
|
||||||
|
storage.
|
||||||
|
## software
|
||||||
|
Pages and resources are served using Apache. I write pages using a custom
|
||||||
|
subset of markup, which gets compiled to static HTML files using my [simple
|
||||||
|
build system](https://git.lgatlin.dev/logan/mdconvert). Deployments are handled
|
||||||
|
automatically using git hooks. I host my own [forgejo](https://forgejo.org/)
|
||||||
|
git instance on the same machine, which makes continuous integration simple and
|
||||||
|
fast
|
||||||
|
|
34
src/style-guide.md
Normal file
34
src/style-guide.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# style guide
|
||||||
|
Having a consistent design language is very important to me. This document lays
|
||||||
|
out specific stylistic rules for pages on this site. Human error is always a
|
||||||
|
factor, and so these rules are more prescription than description
|
||||||
|
## headings
|
||||||
|
One heading should appear at the top of every page. Text should contain only
|
||||||
|
lowercase ascii alphabetic characters. It should represent the title of the
|
||||||
|
page, and match the URL tail (substituting spaces for hyphens, and sans
|
||||||
|
file extension)
|
||||||
|
## subheadings
|
||||||
|
Pages may have any number of subheadings under the top level heading. Text
|
||||||
|
should contain only lowercase ascii alphabetic characters. A subheading must
|
||||||
|
never be immediately followed by another subheading
|
||||||
|
## paragraphs
|
||||||
|
Paragraph text should be written in complete grammatically correct sentences,
|
||||||
|
and may use any non-emoji unicode characters. The last sentence in a paragraph
|
||||||
|
should not end in a period if the paragraph is followed by anything other than
|
||||||
|
another paragraph
|
||||||
|
## hyperlinks
|
||||||
|
Hyperlinks may appear inline in any text other than headings and subheadings.
|
||||||
|
The hyperlink text should be descriptive of the page it is linking to, and
|
||||||
|
never the same as the link itself (e.g. [logan's site](/) not
|
||||||
|
[https://lgatlin.dev/](/)). Internal links should have the same text as the
|
||||||
|
page title they link to. Hyperlinks should be used liberally, and regularly
|
||||||
|
audited for dead or redirected targets
|
||||||
|
## lists
|
||||||
|
List items should begin with a title that is all lowercase, optionally followed
|
||||||
|
by a hyphen ('-') and a subtitle or attribution. The subtitle or attribution
|
||||||
|
should start with a capital letter and contain no punctuation
|
||||||
|
## collage
|
||||||
|
A collage consists of a set of images, optionally with a title and subtitle
|
||||||
|
below each image. Collages should not be on a fixed grid, and should rearrange
|
||||||
|
themselves to best fit the screen dimensions. Image titles may contain
|
||||||
|
hyperlinks, but images may never be hyperlinks themselves
|
Loading…
Reference in a new issue