This commit is contained in:
Michael Zhang 2021-08-28 04:45:16 -05:00
parent f0e7a7d32d
commit 447e402929
Signed by: michael
GPG key ID: BDA47A31A3C8EE6B
23 changed files with 704 additions and 407 deletions

View file

@ -3,5 +3,5 @@ root = true
[*]
indent_style = space
[*.{svelte,ts}]
[*.{svelte,ts,json}]
indent_size = 2

4
.gitignore vendored
View file

@ -1,5 +1,7 @@
.DS_Store
node_modules
*/package-lock.json
!/package-lock.json
/build
/.svelte-kit
/package

View file

@ -0,0 +1,5 @@
compile-database
===
This is a script that converts the files from the `material` directory into an
sqlite database with some indexing to allow fast search during run-time.

View file

@ -0,0 +1,6 @@
{
"name": "compile-database",
"devDependencies": {
"ts-node": "^10.2.1"
}
}

718
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,30 +1,6 @@
{
"name": "web",
"version": "0.0.1",
"scripts": {
"dev": "svelte-kit dev",
"build": "svelte-kit build",
"preview": "svelte-kit preview",
"check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
},
"devDependencies": {
"@sveltejs/kit": "next",
"@typescript-eslint/eslint-plugin": "^4.19.0",
"@typescript-eslint/parser": "^4.19.0",
"eslint": "^7.22.0",
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-svelte3": "^3.2.0",
"node-sass": "^6.0.1",
"prettier": "~2.2.1",
"prettier-plugin-svelte": "^2.2.0",
"svelte": "^3.34.0",
"svelte-check": "^2.0.0",
"svelte-preprocess": "^4.0.0",
"tslib": "^2.0.0",
"typescript": "^4.0.0"
},
"type": "module"
"compile-database": "file:compile-database",
"web": "file:web"
}
}

1
result
View file

@ -1 +0,0 @@
/nix/store/6z8hvajcipvnzqc64hk9qln9svly2idk-python3.9-sm2

View file

@ -1,142 +0,0 @@
<div id="app" class="container">
<header class="header">
<div class="brand"><a href="/">Edu</a></div>
<nav class="header-nav">
<ul class="list list-reset">
<li><a href="/about">About</a></li>
<li><a href="/learn">Learn</a></li>
<li><a href="/browse">Browse</a></li>
<li><a href="/contribute">Contribute</a></li>
</ul>
</nav>
</header>
<slot></slot>
<footer class="footer">
<div class="footer-blocks">
<div class="footer-block">
<div class="footer-block-title">For Students</div>
<ul class="list-reset">
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
</ul>
</div>
<div class="footer-block">
<div class="footer-block-title">About Us</div>
<ul class="list-reset">
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
</ul>
</div>
</div>
</footer>
</div>
<style lang="scss" scoped>
#app {
font-family: sans-serif;
}
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 768px) {
.container {
width: 750px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
.list-reset {
list-style: none;
padding: 0;
justify-content: flex-end;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
height: 80px;
.brand {
margin-right: 32px;
a {
color: black;
font-weight: bold;
text-decoration: none;
font-size: 1.5em;
}
}
.header-nav {
flex-grow: 1;
.list {
display: flex;
align-items: center;
flex-grow: 1;
white-space: nowrap;
margin-bottom: 0;
li {
margin: 0;
box-sizing: inherit;
a {
display: block;
text-decoration: none;
color: black;
padding: 0 32px;
}
}
}
}
}
.footer {
.footer-blocks {
display: flex;
flex-wrap: wrap;
margin-right: -24px;
margin-left: -24px;
margin-top: -12px;
.footer-block {
flex-grow: 1;
flex-basis: 160px;
box-sizing: content-box;
padding: 12px 24px;
.footer-block-title {
text-transform: uppercase;
font-weight: bold;
line-height: 22px;
}
a {
color: lighten(black, 20%);
text-decoration: none;
}
}
}
}
</style>

3
web/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
/build
/.svelte-kit
/package

30
web/package.json Normal file
View file

@ -0,0 +1,30 @@
{
"name": "web",
"version": "0.0.1",
"scripts": {
"dev": "svelte-kit dev",
"build": "svelte-kit build",
"preview": "svelte-kit preview",
"check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
},
"devDependencies": {
"@sveltejs/kit": "next",
"@typescript-eslint/eslint-plugin": "^4.19.0",
"@typescript-eslint/parser": "^4.19.0",
"eslint": "^7.22.0",
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-svelte3": "^3.2.0",
"node-sass": "^6.0.1",
"prettier": "~2.2.1",
"prettier-plugin-svelte": "^2.2.0",
"svelte": "^3.34.0",
"svelte-check": "^2.0.0",
"svelte-preprocess": "^4.0.0",
"tslib": "^2.0.0",
"typescript": "^4.0.0"
},
"type": "module"
}

View file

@ -5,6 +5,7 @@
<link rel="icon" href="/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%svelte.head%
<style>html, body { margin: 0; paddding: 0; }</style>
</head>
<body>
<div id="svelte">%svelte.body%</div>

View file

@ -0,0 +1,169 @@
<div id="app">
<div class="content-wrap">
<div class="container">
<header class="header">
<div class="brand"><a href="/">Edu</a></div>
<nav class="header-nav">
<ul class="list list-reset">
<li><a href="/about">About</a></li>
<li><a href="/learn">Learn</a></li>
<li><a href="/browse">Browse</a></li>
<li><a href="/contribute">Contribute</a></li>
</ul>
</nav>
</header>
<slot></slot>
</div>
<footer class="footer">
<div class="container">
<div class="footer-blocks">
<div class="footer-block">
<div class="footer-block-title">Eduproj</div>
<ul class="list-reset">
<li>Hellosus</li>
</ul>
</div>
<div class="footer-block">
<div class="footer-block-title">For Students</div>
<ul class="list-reset">
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
</ul>
</div>
<div class="footer-block">
<div class="footer-block-title">About Us</div>
<ul class="list-reset">
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
</ul>
</div>
</div>
</div>
</footer>
</div>
</div>
<style lang="scss" scoped>
$footer-height: 180px;
#app {
font-family: sans-serif;
position: relative;
min-height: 100vh;
.content-wrap {
padding-bottom: $footer-height;
}
}
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 768px) {
.container {
width: 750px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
.list-reset {
list-style: none;
padding: 0;
justify-content: flex-end;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
height: 80px;
.brand {
margin-right: 32px;
a {
color: black;
font-weight: bold;
text-decoration: none;
font-size: 1.5em;
}
}
.header-nav {
flex-grow: 1;
.list {
display: flex;
align-items: center;
flex-grow: 1;
white-space: nowrap;
margin-bottom: 0;
li {
margin: 0;
box-sizing: inherit;
a {
display: block;
text-decoration: none;
color: black;
padding: 0 32px;
}
}
}
}
}
.footer {
background-color: #eee;
position: absolute;
bottom: 0;
width: 100%;
height: $footer-height;
padding-top: 24px;
.footer-blocks {
display: flex;
flex-wrap: wrap;
margin-right: -24px;
margin-left: -24px;
margin-top: -12px;
.footer-block {
flex-grow: 1;
flex-basis: 160px;
box-sizing: content-box;
padding: 12px 24px;
.footer-block-title {
text-transform: uppercase;
font-weight: bold;
line-height: 22px;
}
a {
color: lighten(black, 20%);
text-decoration: none;
}
}
}
}
</style>

View file

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB