Initial commit
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
Isaac Mills 2024-10-16 17:27:27 -06:00
commit f64e482cbe
Signed by: fnmain
GPG key ID: B67D7410F33A0F61
24 changed files with 5409 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
node_modules
.parcel-cache
dist/

20
.woodpecker.yml Normal file
View file

@ -0,0 +1,20 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
partial: false
steps:
- name: build
image: journal
commands:
- yarn install
- yarn run build
- rm -rf dist/atom.xml
- find dist/ -name "*.map" -o -name "*.js" -o -name "*.ico" -o -name "*.css" -o -name "*.html" -o -name "*.svg" | parallel brotli
- rm -rf /var/woodpecker/journal/index.* /var/woodpecker/journal/favicon.* /var/woodpecker/journal/logo-z.* /var/woodpecker/journal/webclip.* /var/woodpecker/journal/images
- mv dist/* /var/woodpecker/journal/
volumes:
- /var/woodpecker:/var/woodpecker
- /usr/share/fonts:/usr/share/fonts
- /usr/lib/helix/runtime/:/usr/lib/helix/runtime/

BIN
LiberationSans-Bold.woff2 Normal file

Binary file not shown.

Binary file not shown.

BIN
LiberationSans-Italic.ttf Normal file

Binary file not shown.

BIN
LiberationSans-Regular.ttf Normal file

Binary file not shown.

2
atom.xml Normal file
View file

@ -0,0 +1,2 @@
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en"><title>Compute</title><id></id><updated>2024-10-10T19:43:49+00:00</updated><link href="https://compute.nations.lol" rel="alternate" hreflang="en" type="text/html"/><link href="https://compute.nations.lol/atom.xml" rel="self" hreflang="en" type="application/atom+xml" title="Compute"/><logo>https://compute.nations.lol/images/logo-z.png</logo><subtitle>Your dose of Comp-Sci journalism. Compute is a publication run out of Lake Braddock high school which writes articles about all things Computer Science from AI, to video games, to programming tips. It&apos;s all on Compute.</subtitle><entry><title>Introduction to Artificial Intelligence : Origins and Limitations</title><id>AIgniting_the_Future_With_Mind-BOTtling_Insights_</id><updated>2024-06-08T01:48:31+00:00</updated><author><name>Kenneth Ye</name></author><link href="https://compute.nations.lol/master/AIgniting_the_Future_With_Mind-BOTtling_Insights_.html" rel="alternate" type="text/html" title="Introduction to Artificial Intelligence : Origins and Limitations"/><published>2024-06-05T14:30:00+00:00</published><summary>At the vanguard of technological advancement, artificial intelligence(AI) holds the potential to completely transform the way we work, live, and interact with the world. Fundamentally, AI is the creation of computer systems that are able to carry out operations that usually call for human intelligence, like comprehending natural language...</summary><content xml:base="https://compute.nations.lol/master" xml:lang="en" type="html" src="https://compute.nations.lol/master/AIgniting_the_Future_With_Mind-BOTtling_Insights_.html"></content><media:thumbnail url="https://compute.nations.lol/master/AIgniting_the_Future_With_Mind-BOTtling_Insights_.png"></media:thumbnail></entry><entry><title>Forward</title><id>forward</id><updated>2024-06-08T01:48:31+00:00</updated><author><name>Jonah Ascoli</name></author><link href="https://compute.nations.lol/master/forward.html" rel="alternate" type="text/html" title="Forward"/><published>2024-05-06T12:00:00+00:00</published><summary>My name is Jonah Ascoli, and I&apos;m the founding editor of Compute.</summary><content xml:base="https://compute.nations.lol/master" xml:lang="en" type="html" src="https://compute.nations.lol/master/forward.html"></content><media:thumbnail url="https://compute.nations.lol/master/forward.png"></media:thumbnail></entry><entry><title>Web-dev, and the Power of Simplicity.</title><id>how_to_run_a_journal</id><updated>2024-06-08T01:48:31+00:00</updated><author><name>Isaac Mills</name></author><link href="https://compute.nations.lol/master/how_to_run_a_journal.html" rel="alternate" type="text/html" title="Web-dev, and the Power of Simplicity."/><published>2024-05-02T12:00:00+00:00</published><summary>Hi! I&apos;m Isaac Mills, I&apos;m the guy managing the infrastructure behind Compute! In this article, I&apos;d like to talk about just that: the infra behind this media outlet, how it all works, and why it is the way it is.</summary><content xml:base="https://compute.nations.lol/master" xml:lang="en" type="html" src="https://compute.nations.lol/master/how_to_run_a_journal.html"></content><media:thumbnail url="https://compute.nations.lol/master/how_to_run_a_journal.png"></media:thumbnail></entry><entry><title>Do Not Fear the Threat Artificial Intelligence Poses to Computer Science</title><id>do_not_fear</id><updated>2024-06-08T01:48:31+00:00</updated><author><name>Paul Krause</name></author><author><name>Isaac Mills</name></author><link href="https://compute.nations.lol/master/do_not_fear.html" rel="alternate" type="text/html" title="Do Not Fear the Threat Artificial Intelligence Poses to Computer Science"/><published>2024-04-25T08:00:00+00:00</published><summary>Computer science positions are some of the fastest growing occupations as nearly 400,000 openings are projected per year by the U.S. Bureau of Labor Statistics. In 2020, the median annual wage of computer and information technology occupations was $100,530 and $50,000 more than the median annual...</summary><content xml:base="https://compute.nations.lol/master" xml:lang="en" type="html" src="https://compute.nations.lol/master/do_not_fear.html"></content><media:thumbnail url="https://compute.nations.lol/master/do_not_fear.png"></media:thumbnail></entry></feed>

View file

@ -0,0 +1,291 @@
:root {
--white: white;
--black: black;
}
body {
font-family: 'Arimo', 'Arial', sans-serif;
}
.w-layout-vflex {
flex-direction: column;
align-items: flex-start;
display: flex;
}
.unwrapped-edition {
display: block;
}
.wrapped-edition {
display: none;
}
.w-layout-blockcontainer {
max-width: 940px;
margin-left: auto;
margin-right: auto;
display: block;
}
.w-layout-grid {
grid-row-gap: 16px;
grid-column-gap: 16px;
grid-template-rows: auto auto;
grid-template-columns: 1fr 1fr;
grid-auto-columns: 1fr;
display: grid;
}
.w-layout-hflex {
flex-direction: row;
align-items: flex-start;
display: flex;
}
@media screen and (max-width: 991px) {
.w-layout-blockcontainer {
max-width: 728px;
}
}
@media screen and (max-width: 767px) {
.w-layout-blockcontainer {
max-width: none;
}
}
article {
margin: 20px;
}
h1 {
margin-top: auto;
font-size: 128px;
font-weight: 700;
}
p {
margin-bottom: 10px;
margin-top: 10px;
font-size: 18px;
}
li {
font-size: 18px;
}
.utility-page-wrap {
justify-content: center;
align-items: center;
width: 100vw;
max-width: 100%;
height: 100vh;
max-height: 100%;
display: flex;
}
.utility-page-content {
text-align: center;
flex-direction: column;
width: 260px;
display: flex;
}
.utility-page-form {
flex-direction: column;
align-items: stretch;
display: flex;
}
.container-2 {
padding-top: 8px;
padding-bottom: 8px;
}
.flex-block-2 {
justify-content: center;
align-items: center;
flex-flow: column;
justify-content: space-around;
padding-top: 0;
display: flex;
overflow-x: hidden;
}
.heading-3 {
color: #f6c415;
font-size: min(22vw, 300px);
overflow-x: hidden;
}
.wrapped-compute {
display: none;
line-height: 1.0;
}
.heading-3.unwrapped-compute.compute-gradiant {
-webkit-text-fill-color: transparent;
background-image: linear-gradient(90deg, #f6c415, #f6c41533);
-webkit-background-clip: text;
background-clip: text;
}
.text-block {
color: #fff;
text-align: center;
margin-left: 20px;
margin-right: 20px;
font-size: 18px;
}
.container-3 {
height: 20vh;
margin-top: 8px;
margin-bottom: 8px;
padding-left: 16px;
padding-right: 16px;
}
.heading-3 {
padding-bottom: 20px;
}
.heading-4 {
margin-top: 0;
margin-bottom: 0;
font-size: 5vw;
}
.heading-5 {
margin-top: 0;
margin-bottom: 0;
}
.heading-6 {
margin-top: 0;
margin-bottom: 0;
font-size: 64px;
}
.paragraph {
font-size: 24px;
}
.heading-7 {
font-size: 64px;
}
.grid {
padding-left: 16px;
padding-right: 16px;
}
.heading-8 {
color: #f6c415;
text-align: left;
-webkit-text-fill-color: transparent;
background-image: linear-gradient(90deg, #f6c415, rgba(246, 196, 21, .3));
-webkit-background-clip: text;
background-clip: text;
margin-bottom: 20px;
margin-left: 20px;
margin-right: 20px;
}
.image {
-webkit-text-fill-color: inherit;
background-clip: border-box;
border-radius: 50%;
margin-bottom: 0;
margin-left: 20px;
margin-right: 10px;
}
.flex-block-3 {
align-items: center;
margin-bottom: 20px;
}
.text-block-2 {
color: #fff;
font-size: 18px;
}
@media screen and (max-width: 991px) {
.grid {
grid-template-columns: 1fr;
}
.heading-8 {
margin-bottom: 20px;
font-size: 64px;
}
}
@media screen and (max-width: 767px) {
.compute-gradiant {
-webkit-text-fill-color: transparent;
background-image: linear-gradient(90deg, #f6c415, #f6c41533);
-webkit-background-clip: text;
background-clip: text;
}
.wrapped-compute {
display: block;
}
.ais-Hits-item {
margin-bottom: 1em;
width: calc(50% - 1rem);
}
.unwrapped-compute {
display: none;
}
.heading-8 {
font-size: 64px;
}
}
@media screen and (max-width: 479px) {
.unwrapped-edition {
display: none;
}
.wrapped-edition {
display: block;
}
.flex-block-2 {
flex-flow: column;
justify-content: space-around;
}
.heading-3 {
font-size: 48vw;
}
.wrapped-compute {
display: block;
}
.heading-3.wrapped-compute.compute-gradiant {
-webkit-text-fill-color: transparent;
background-image: linear-gradient(90deg, #f6c415, #f6c41533);
-webkit-background-clip: text;
background-clip: text;
min-height: 48vw;
margin-top: 0;
overflow-y: hidden;
}
.unwrapped-compute {
display: none;
}
.text-block {
font-size: 6vw;
}
}

355
css/normalize.css vendored Normal file
View file

@ -0,0 +1,355 @@
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS and IE text size adjust after device orientation change,
* without disabling user zoom.
*/
html {
font-family: sans-serif;
/* 1 */
-ms-text-size-adjust: 100%;
/* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block;
/* 1 */
vertical-align: baseline;
/* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability of focused elements when they are also in an
* active/hover state.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit;
/* 1 */
font: inherit;
/* 2 */
margin: 0;
/* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
* 4. CUSTOM FOR WEBFLOW: Removed the input[type="submit"] selector to reduce
* specificity and defer to the .w-button selector
*/
button,
html input[type="button"],
input[type="reset"] {
-webkit-appearance: button;
/* 2 */
cursor: pointer;
/* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type='checkbox'],
input[type='radio'] {
box-sizing: border-box;
/* 1 */
padding: 0;
/* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. CUSTOM FOR WEBFLOW: changed from `textfield` to `none` to normalize iOS rounded input
* 2. CUSTOM FOR WEBFLOW: box-sizing: content-box rule removed
* (similar to normalize.css >=4.0.0)
*/
input[type='search'] {
-webkit-appearance: none;
/* 1 */
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0;
/* 1 */
padding: 0;
/* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}

2141
css/webflow.css Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
images/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
images/logo-z.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

1
images/logo-z.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="310" height="310"><path d="m185.078 57.813.274 84.386.115-.115 20.619 20.62-20.602 20.6.063 19.03h54.144l-53.94 53.941.265 47.532s5.331 3.357 10.125 3.172 46.038-18.011 54.388-24.368 32.647-29.674 37.282-36.22c4.634-6.547 21.424-62.616 20.916-71.278-.508-8.661-7.786-29.062-7.786-29.062s13.016-5.257 24.202-23.047c11.185-17.79 13.378-27.956 7.181-39.988-6.196-12.033-61.187.289-61.187.289s-47.064-25.492-86.059-25.492zm121.647 32.75c4.449-.054 8.763.277 12.363 1.253 14.398 3.906-25.717 41.653-25.717 41.653l-14.54-39.13s14.546-3.616 27.894-3.776zm-58.229 10.011 2.33 24.137-20.644 11.42-22.446-20.809zm-63.55-42.761.37 84.386-.117-.114-20.46 20.776 20.757 20.444.083 19.029-54.143.413 54.349 53.528.098 47.532s-5.305 3.398-10.1 3.25c-4.795-.15-46.175-17.66-54.573-23.953S88.338 253.68 83.654 247.17s-21.901-62.45-21.46-71.116c.443-8.665 7.564-29.121 7.564-29.121s-13.055-5.157-24.376-22.862c-11.32-17.705-13.59-27.853-7.486-39.932 6.105-12.08 61.188-.178 61.188-.178s46.868-25.85 85.862-26.147zM63.552 91.489c-4.449-.02-8.76.344-12.353 1.348-14.368 4.016 26.034 41.455 26.034 41.455l14.242-39.238s-14.574-3.506-27.923-3.565zm58.304 9.568-2.146 24.154 20.73 11.262 22.287-20.98z" style="fill:#572c84;stroke:#f6c318;stroke-width:5;stroke-linejoin:round" transform="rotate(.218 7364.703 -7830.871)"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
images/opengraph.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
images/webclip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

172
index.html Normal file
View file

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html data-wf-page=66007382143b5f99deb2022a data-wf-site=66007382143b5f99deb20223 prefix="og: http://ogp.me/ns#"
xmlns:og="http://opengraphprotocol.org/schema/">
<head>
<meta charset=utf-8>
<title>Compute</title>
<link href="/atom.xml" rel="alternate" title="Compute: Lake Braddock's Comp-Sci Journal" type="application/atom+xml">
<meta content=width=device-width,initial-scale=1 name=viewport>
<meta content=Webflow name=generator>
<meta content=Compute property=og:title>
<meta content=Compute property=twitter:title>
<meta name="theme-color" content="#F6C415">
<meta content="Compute: Lake Braddock's Comp-Sci journal" property=og:site_name>
<meta content=website property=og:type>
<meta content=/images/opengraph.png property=og:image>
<meta content=/images/opengraph.png property=twitter:image>
<meta content=1200 property=og:image:width>
<meta content=630 property=og:image:height>
<meta property="og:url" content="https://compute.nations.lol">
<meta property="twitter:url" content="https://compute.nations.lol">
<meta property="twitter:domain" content="compute.nations.lol">
<meta name="twitter:card" content="summary_large_image">
<meta
content="Your dose of Comp-Sci journalism. Compute is a publication run out of Lake Braddock high school which writes articles about all things Computer Science from AI, to video games, to programming tips. It's all on Compute."
property=og:description>
<meta
content="Your dose of Comp-Sci journalism. Compute is a publication run out of Lake Braddock high school which writes articles about all things Computer Science from AI, to video games, to programming tips. It's all on Compute."
property=twitter:description>
<link href=https://cdn.jsdelivr.net/npm/instantsearch.css@7/themes/algolia-min.css rel=stylesheet>
<link href=./meili.css rel=stylesheet>
<link href=/css/normalize.css rel=stylesheet>
<link href=/css/webflow.css rel=stylesheet>
<link href=/css/compute-c23f91.webflow.css rel=stylesheet>
<script>!function (o, c) {var n = c.documentElement, t = " w-mod-"; n.className += t + "js", ("ontouchstart" in o || o.DocumentTouch && c instanceof DocumentTouch) && (n.className += t + "touch")}(window, document);</script>
<link rel="icon shortcut" href=/images/favicon.ico type=image/x-icon>
<link href=/images/webclip.png rel=apple-touch-icon>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap"
rel="stylesheet">
<style>
@keyframes ldio-yzaezf3dcml {
0% {
transform: rotate(0)
}
to {
transform: rotate(360deg)
}
}
.ldio-yzaezf3dcml>div>div {
border-radius: 50%;
position: absolute
}
.ldio-yzaezf3dcml>div>div:first-child {
background: #572c84;
width: 140px;
height: 140px;
top: 30px;
left: 30px
}
.ldio-yzaezf3dcml>div>div:nth-child(2) {
transform-origin: 21px 60.2px;
background: #f1bf18;
width: 42px;
height: 42px;
animation: 1s linear infinite ldio-yzaezf3dcml;
top: 39.8px;
left: 79px
}
.loadingio-spinner-disk-2by998twmg9 {
background: #fff;
width: 200px;
height: 200px;
display: inline-block;
overflow: hidden
}
.ldio-yzaezf3dcml {
backface-visibility: hidden;
transform-origin: 0 0;
width: 100%;
height: 100%;
position: relative;
transform: matrix(1, 0, 0, 1, 0, 0)
}
.ldio-yzaezf3dcml div {
box-sizing: content-box
}
#loading_spinner:not(:only-child) {
display: none
}
</style>
</head>
<body>
<div class=w-nav data-animation=default data-collapse=medium data-duration=400 data-easing=ease data-easing2=ease
role=banner>
<div class="container-2 w-container"><a class=w-nav-brand href=#><img alt="Compute Logo" height=64 width=64
loading=lazy src=/images/logo-z.svg></a>
<nav class=w-nav-menu role=navigation><a class=w-nav-link href=#>Home</a><a class=w-nav-link
href=/atom.xml>RSS/Atom</a><a class=w-nav-link href=https://discord.gg/mRHP9mSqG9>Discord Server</a></nav>
<div class=w-nav-button>
<div class=w-icon-nav-menu></div>
</div>
</div>
</div>
<div class="flex-block-2 w-layout-vflex" style="background-color: #552a85">
<h1 class="compute-gradiant heading-3 unwrapped-compute">Compute</h1>
<h1 class="compute-gradiant heading-3 wrapped-compute">Com<br>pute</h1>
<div class=text-block style=margin:20px;font-weight:300>Your dose of comp-sci journalism</div>
</div>
<!-- <div class="flex-block-2 w-layout-vflex" style="background-color: #f6c318"> -->
<!-- <a href="/first_edition.html" class="unwrapped-edition" style="text-decoration: none;"> -->
<!-- <p style="color: #552a85; font-family: 'Fira Code', monospace; font-size: 6vw;margin: 10;">First Edition -></p> -->
<!-- </a> -->
<!-- <a href="/first_edition.html" class="wrapped-edition" style="text-decoration: none;"> -->
<!-- <p style="color: #552a85; font-family: 'Fira Code', monospace; font-size: 8vw;margin: 10;text-align: center;"> -->
<!-- First<br>Edition<br>-></p> -->
<!-- </a> -->
<!-- </div> -->
<div style=margin:20px>
<div id=searchbox></div>
<center id=sortby></center>
<div id=hits>
<center id=loading_spinner>
<div class=loadingio-spinner-disk-2by998twmg9>
<div class=ldio-yzaezf3dcml>
<div>
<div></div>
<div></div>
</div>
</div>
</div>
</center>
</div>
<div id=pagination></div>
</div>
<hr>
<center style="min-height: 200px;">
<a style="text-decoration: none;" href="https://listmonk.nations.lol/subscription/form">
<h3 style="font-size: 24px; color: grey;">Get Notified of new articles!</h3>
</a>
<a style="vertical-align: text-bottom;" href="https://listmonk.nations.lol/subscription/form"><svg
xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"
style="vertical-align: text-bottom;">
<path style="fill: grey;"
d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm320-280L160-640v400h640v-400L480-440Zm0-80 320-200H160l320 200ZM160-640v-80 480-400Z" />
</svg></a>
<a href="http://compute.nations.lol/atom.xml" style="vertical-align: text-bottom;"><svg
xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"
style="vertical-align: text-bottom;">
<path style="fill: grey;"
d="M200-120q-33 0-56.5-23.5T120-200q0-33 23.5-56.5T200-280q33 0 56.5 23.5T280-200q0 33-23.5 56.5T200-120Zm480 0q0-117-44-218.5T516-516q-76-76-177.5-120T120-680v-120q142 0 265 53t216 146q93 93 146 216t53 265H680Zm-240 0q0-67-25-124.5T346-346q-44-44-101.5-69T120-440v-120q92 0 171.5 34.5T431-431q60 60 94.5 139.5T560-120H440Z" />
</svg></a>
</center>
<script crossorigin
src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=66007382143b5f99deb20223"></script>
<script src=/js/webflow.js></script>
<script src=./meili.js type=module></script>
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4"></script>
</body>
</html>

36
js/webflow.js Normal file

File diff suppressed because one or more lines are too long

BIN
liberation-bold.woff2 Normal file

Binary file not shown.

BIN
liberation.woff2 Normal file

Binary file not shown.

51
meili.css Normal file
View file

@ -0,0 +1,51 @@
.ais-ClearRefinements {
margin: 1em 0;
}
.ais-SearchBox {
margin: 1em 0;
}
.ais-SortBy {
margin: 1em 0;
}
.ais-Pagination {
margin-top: 1em;
}
.left-panel {
float: left;
width: 200px;
}
.right-panel {
margin-left: 210px;
}
.ais-InstantSearch {
max-width: 960px;
overflow: hidden;
margin: 0 auto;
}
.ais-Hits-item img {
margin-right: 1em;
width: 100%;
height: 100%;
margin-bottom: 0.5em;
}
.hit-name {
margin-bottom: 0.5em;
}
.hit-description {
font-size: 90%;
margin-bottom: 0.5em;
color: grey;
}
.hit-info {
font-size: 90%;
}

64
meili.js Normal file
View file

@ -0,0 +1,64 @@
import { instantMeiliSearch } from "@meilisearch/instant-meilisearch";
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('journal[sortBy]') == null) {
urlParams.set('journal[sortBy]', 'journal:published_timestamp:desc');
window.location.search = urlParams;
}
const search = instantsearch({
indexName: "journal",
routing: true,
searchClient: instantMeiliSearch(
"https://meili.nations.lol",
process.env.MEILI_KEY,
{
finitePagination: true
}
)
.searchClient
});
search.addWidgets([
instantsearch.widgets.searchBox({
container: "#searchbox"
}),
instantsearch.widgets.sortBy({
container: "#sortby",
items: [
{ label: 'Newest', value: 'journal:published_timestamp:desc'},
{ label: 'Oldest', value: 'journal:published_timestamp:asc'},
]
}),
instantsearch.widgets.configure({
hitsPerPage: 6,
snippetEllipsisText: "...",
attributesToSnippet: ["content:50"],
}),
instantsearch.widgets.hits({
container: "#hits",
templates: {
item: `
<div>
<a class="hit-name" href="/master/{{id}}.html">
{{#helpers.highlight}}{ "attribute": "title" }{{/helpers.highlight}}
</a>
<div class="hit-description">
{{#helpers.snippet}}{ "attribute": "content" }{{/helpers.snippet}}
</div>
<div class="hit-info">authors: {{authors}}</div>
<div class="hit-info">published: {{published}}</div>
</div>
`
}
}),
instantsearch.widgets.pagination({
container: "#pagination"
})
]);
search.start();

27
package.json Normal file
View file

@ -0,0 +1,27 @@
{
"name": "compute",
"version": "1.0.0",
"description": "",
"scripts": {
"start": "parcel index.html",
"build": "parcel build index.html"
},
"dependencies": {
"@babel/core": "7.25.8",
"@meilisearch/instant-meilisearch": "0.21.0"
},
"devDependencies": {
"@babel/core": "7.25.8",
"@parcel/packager-xml": "2.12.0",
"@parcel/transformer-xml": "2.12.0",
"buffer": "^6.0.3",
"crypto-browserify": "^3.12.0",
"events": "^3.3.0",
"parcel": "2.12.0",
"process": "^0.11.10",
"stream-browserify": "^3.0.0",
"string_decoder": "^1.3.0",
"vm-browserify": "^1.1.2"
},
"keywords": []
}

2246
yarn.lock Normal file

File diff suppressed because it is too large Load diff