Initial commit
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful

This commit is contained in:
Isaac Mills 2024-10-23 14:04:35 -06:00
commit 864b2b484f
Signed by: fnmain
GPG key ID: B67D7410F33A0F61
29 changed files with 17253 additions and 0 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
woff2/* filter=lfs diff=lfs merge=lfs -text
images/* filter=lfs diff=lfs merge=lfs -text

4
.gitignore vendored Normal file
View file

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

4
.parcelrc Normal file
View file

@ -0,0 +1,4 @@
{
"extends": "@parcel/config-default",
"namers": ["./image_namer.mjs", "..."]
}

22
.woodpecker.yml Normal file
View file

@ -0,0 +1,22 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
partial: false
steps:
- name: build
image: journal
environment:
PARCEL_WORKER_BACKEND: process
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" -o -name "*.pdf" | 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
ComputeEdition1.pdf 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,319 @@
: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;
}
#banner {
background-color: #f6c318;
color: #552a85;
text-align: center;
padding: 10px;
position: relative;
font-size: 24pt;
font-family: monospace
}
@media screen and (max-width: 991px) {
.w-layout-blockcontainer {
max-width: 728px;
}
}
@media screen and (max-width: 767px) {
.w-layout-blockcontainer {
max-width: none;
}
#banner {
font-size: 20pt;
}
#close-banner {
display: 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, 280px);
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;
}
.heading-3 {
font-size: 28vw;
}
}
@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;
}
.ais-Hits-item {
margin-bottom: 1em;
width: 100%;
}
.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;
}

153
css/norwester-pro.css Normal file
View file

@ -0,0 +1,153 @@
@font-face {
font-family: 'Norwester Pro';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro'),
local('NorwesterPro-Regular'),
url(/woff2/NorwesterPro-Regular.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Oblique';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Oblique'),
local('NorwesterPro-RegularOblique'),
url(/woff2/NorwesterPro-RegularOblique.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Regular';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Regular'),
local('NorwesterPro-Regular'),
url(/woff2/NorwesterPro-Regular.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Regular Oblique';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Regular Oblique'),
local('NorwesterPro-RegularOblique'),
url(/woff2/NorwesterPro-RegularOblique.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Rounded';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Rounded'),
local('NorwesterPro-Rounded'),
url(/woff2/NorwesterPro-Rounded.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Rounded Oblique';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Rounded Oblique'),
local('NorwesterPro-RoundedOblique'),
url(/woff2/NorwesterPro-RoundedOblique.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Square';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Square'),
local('NorwesterPro-Square'),
url(/woff2/NorwesterPro-Square.woff2) format('woff2');
}
@font-face {
font-family: 'Norwester Pro Square Oblique';
font-weight: bold;
font-style: normal;
font-display: block;
src: local('Norwester Pro Square Oblique'),
local('NorwesterPro-SquareOblique'),
url(/woff2/NorwesterPro-SquareOblique.woff2) format('woff2');
}
.nw-regular {
font-family: 'Norwester Pro Regular';
}
.nw-regular-obl,
.nw-regular em {
font-family: 'Norwester Pro Regular Oblique';
font-style: normal;
}
.nw-rounded {
font-family: 'Norwester Pro Rounded';
}
.nw-rounded-obl,
.nw-rounded em {
font-family: 'Norwester Pro Rounded Oblique';
}
.nw-square {
font-family: 'Norwester Pro Square';
}
.nw-square-obl,
.nw-square em {
font-family: 'Norwester Pro Square Oblique';
}
.nw-ss01,
.nw-salt {
/* C ð J Ľ S Ü Z @ & */
font-feature-settings: 'ss01';
}
.nw-uppercase {
text-transform: uppercase;
/* Default to no ligatures */
font-variant-ligatures: none;
}
.nw-all-small-caps {
font-variant-caps: all-small-caps;
}
.nw-liga {
text-transform: uppercase;
/* CA CO. EA LA LI LL TH */
font-variant-ligatures: common-ligatures;
}
.nw-liga-off {
/* Turn common-ligatures off but keep discretionary */
font-feature-settings: 'liga' off;
}
.nw-dliga {
text-transform: uppercase;
/* FOR, OF THE, AND, etc */
font-variant-ligatures: discretionary-ligatures;
}
.nw-lining-nums {
font-variant-numeric: lining-nums;
}
.nw-tabular-nums {
font-variant-numeric: tabular-nums;
}
.nw-oldstyle-nums {
font-variant-numeric: oldstyle-nums;
}

2141
css/webflow.css Normal file

File diff suppressed because it is too large Load diff

14
image_namer.mjs Normal file
View file

@ -0,0 +1,14 @@
import {Namer} from '@parcel/plugin';
import path from 'path';
export default new Namer({
name({bundle}) {
if (bundle.type === 'png' || bundle.type === 'jpg' || bundle.type == 'svg' || bundle.type === 'ico') {
let filePath = bundle.getMainEntry().filePath;
return `images/${path.basename(filePath)}`;
}
// Allow the next namer to handle this bundle.
return null;
}
});

BIN
images/favicon.ico (Stored with Git LFS) Normal file

Binary file not shown.

BIN
images/logo-z.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
images/logo-z.svg (Stored with Git LFS) Normal file

Binary file not shown.

BIN
images/opengraph.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
images/webclip.png (Stored with Git LFS) Normal file

Binary file not shown.

186
index.html Normal file
View file

@ -0,0 +1,186 @@
<!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/norwester-pro.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 nw-regular" 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>
<!-- BANNER -->
<div id="banner">
<a id="banner-message" href="/ComputeEdition1.pdf"><u>FIRST EDITION IS OUT NOW!</u></a>
<button
style="position: absolute; right: 8px; top: 0px; height: 100%; background: none; border: none; color: #552a85; font-weight: bold; cursor: pointer;"
id="close-banner">✖</button>
</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>
<script>
document.getElementById("close-banner").onclick = function () {
document.getElementById("banner").style.display = "none";
};
</script>
</body>
</html>

36
js/webflow.js Normal file

File diff suppressed because one or more lines are too long

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();

11478
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

28
package.json Normal file
View file

@ -0,0 +1,28 @@
{
"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",
"compute": "file:"
},
"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": []
}

BIN
woff2/NorwesterPro-Regular.woff2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
woff2/NorwesterPro-RegularOblique.woff2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
woff2/NorwesterPro-Rounded.woff2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
woff2/NorwesterPro-RoundedOblique.woff2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
woff2/NorwesterPro-Square.woff2 (Stored with Git LFS) Normal file

Binary file not shown.

BIN
woff2/NorwesterPro-SquareOblique.woff2 (Stored with Git LFS) Normal file

Binary file not shown.

2361
yarn.lock Normal file

File diff suppressed because it is too large Load diff