First commit to new theme
|
@ -6,6 +6,6 @@ import tailwind from "@astrojs/tailwind";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: 'https://astro-modern-personal-website.netlify.app',
|
site: 'https://andyscott.me',
|
||||||
integrations: [mdx(), sitemap(), tailwind()]
|
integrations: [mdx(), sitemap(), tailwind()]
|
||||||
});
|
});
|
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "Astro Modern Personal Website",
|
"name": "Astro Modern Personal Website",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "Astro Modern Personal Website",
|
"name": "Astro Modern Personal Website",
|
||||||
"version": "1.1.0",
|
"version": "1.1.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/mdx": "^0.11.1",
|
"@astrojs/mdx": "^0.11.1",
|
||||||
"@astrojs/rss": "^1.0.1",
|
"@astrojs/rss": "^1.0.1",
|
||||||
|
|
BIN
public/favicon.ico
Normal file
After Width: | Height: | Size: 318 B |
|
@ -1,13 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 36 36">
|
|
||||||
<path fill="#000" d="M22.25 4h-8.5a1 1 0 0 0-.96.73l-5.54 19.4a.5.5 0 0 0 .62.62l5.05-1.44a2 2 0 0 0 1.38-1.4l3.22-11.66a.5.5 0 0 1 .96 0l3.22 11.67a2 2 0 0 0 1.38 1.39l5.05 1.44a.5.5 0 0 0 .62-.62l-5.54-19.4a1 1 0 0 0-.96-.73Z"/>
|
|
||||||
<path fill="url(#gradient)" d="M18 28a7.63 7.63 0 0 1-5-2c-1.4 2.1-.35 4.35.6 5.55.14.17.41.07.47-.15.44-1.8 2.93-1.22 2.93.6 0 2.28.87 3.4 1.72 3.81.34.16.59-.2.49-.56-.31-1.05-.29-2.46 1.29-3.25 3-1.5 3.17-4.83 2.5-6-.67.67-2.6 2-5 2Z"/>
|
|
||||||
<defs>
|
|
||||||
<linearGradient id="gradient" x1="16" x2="16" y1="32" y2="24" gradientUnits="userSpaceOnUse">
|
|
||||||
<stop stop-color="#000"/>
|
|
||||||
<stop offset="1" stop-color="#000" stop-opacity="0"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<style>
|
|
||||||
@media (prefers-color-scheme:dark){:root{filter:invert(100%)}}
|
|
||||||
</style>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 873 B |
Before Width: | Height: | Size: 6.6 KiB |
BIN
public/post_images/2d_puzzle_solver.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
public/post_images/exercise_tracker_home.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
public/post_images/hash_maps.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
public/post_images/krokusse_violett.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
public/post_images/masm_low_level_io.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
public/post_images/openweather_grpc_api_uml.jpg
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
public/post_images/password_generator_cli.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
public/post_images/ship_game.jpg
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/post_images/snowman_on_frozen_lake.jpg
Normal file
After Width: | Height: | Size: 919 KiB |
Before Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 61 KiB |
BIN
public/profile.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
public/project_images/2d_puzzle_solver.jpg
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
public/project_images/dotfiles.jpg
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
public/project_images/exercise_tracker.jpg
Normal file
After Width: | Height: | Size: 144 KiB |
BIN
public/project_images/hash_maps.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
public/project_images/masm_low_level_io.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
public/project_images/openweather_grpc_api.jpg
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
public/project_images/password_generator_cli.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
public/project_images/ship_game.jpg
Normal file
After Width: | Height: | Size: 10 KiB |
|
@ -1,4 +1,4 @@
|
||||||
User-agent: *
|
User-agent: *
|
||||||
Allow: /
|
Allow: /
|
||||||
|
|
||||||
Sitemap: https://astro-modern-personal-website.netlify.app/sitemap-index.xml
|
Sitemap: https://andyscott.me/sitemap-index.xml
|
Before Width: | Height: | Size: 281 KiB |
|
@ -15,24 +15,10 @@ const { title, description, image = '/social_img.png' } = Astro.props;
|
||||||
<!-- Global Metadata -->
|
<!-- Global Metadata -->
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
||||||
<meta name="generator" content={Astro.generator} />
|
<meta name="generator" content={Astro.generator} />
|
||||||
|
|
||||||
<!-- Primary Meta Tags -->
|
<!-- Primary Meta Tags -->
|
||||||
<title>{title}</title>
|
<title>{title}</title>
|
||||||
<meta name="title" content={title} />
|
<meta name="title" content={title} />
|
||||||
<meta name="description" content={description} />
|
<meta name="description" content={description} />
|
||||||
|
|
||||||
<!-- Open Graph / Facebook -->
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content={Astro.url} />
|
|
||||||
<meta property="og:title" content={title} />
|
|
||||||
<meta property="og:description" content={description} />
|
|
||||||
<meta property="og:image" content={new URL(image, Astro.url)} />
|
|
||||||
|
|
||||||
<!-- Twitter -->
|
|
||||||
<meta property="twitter:card" content="summary_large_image" />
|
|
||||||
<meta property="twitter:url" content={Astro.url} />
|
|
||||||
<meta property="twitter:title" content={title} />
|
|
||||||
<meta property="twitter:description" content={description} />
|
|
||||||
<meta property="twitter:image" content={new URL(image, Astro.url)} />
|
|
||||||
|
|
|
@ -3,15 +3,30 @@ const today = new Date();
|
||||||
---
|
---
|
||||||
|
|
||||||
<footer class="footer footer-center block mb-5 pt-10">
|
<footer class="footer footer-center block mb-5 pt-10">
|
||||||
<div class="pb-2">
|
|
||||||
© {today.getFullYear()} Manuel Ernesto
|
|
||||||
</div>
|
|
||||||
<div class="inline opacity-75">
|
<div class="inline opacity-75">
|
||||||
<!-- Thanks for using this template. Please keep this line to support my work :) -->
|
<!-- Thanks for using this template. Please keep this line to support my work :) -->
|
||||||
<a href="https://github.com/manuelernestog/astro-modern-personal-website" target="_blank" class="font-bold">Website Template</a> developed by
|
<a
|
||||||
<a href="https://manuelernestog.github.io" target="_blank" class="font-bold">Manuel Ernesto ⚡️</a>
|
href="https://github.com/manuelernestog/astro-modern-personal-website"
|
||||||
|
target="_blank"
|
||||||
|
class="font-bold"
|
||||||
|
>Website Template</a
|
||||||
|
>
|
||||||
|
developed by
|
||||||
|
<a href="https://manuelernestog.github.io" target="_blank" class="font-bold"
|
||||||
|
>Manuel Ernesto ⚡️</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="pb-2">
|
||||||
|
<p>
|
||||||
|
Excluding the template design, all page content for
|
||||||
|
<a href="https://andyscott.me" class="font-bold">andyscott dot me</a>
|
||||||
|
© 2021 Andrew Scott under a
|
||||||
|
<a
|
||||||
|
href="https://creativecommons.org/licenses/by-sa/4.0/"
|
||||||
|
class="font-bold"
|
||||||
|
>Creative Commons Attribution-ShareAlike 4.0 International License</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<style>
|
<style></style>
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -4,13 +4,23 @@
|
||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<div class="navbar-start">
|
<div class="navbar-start">
|
||||||
<label for="my-drawer" class="btn btn-square btn-ghost">
|
<label for="my-drawer" class="btn btn-square btn-ghost">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" class="inline-block w-5 h-5 stroke-current"
|
<svg
|
||||||
><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="none"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
class="inline-block w-5 h-5 stroke-current"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-width="2"
|
||||||
|
d="M4 6h16M4 12h16M4 18h16"
|
||||||
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-center">
|
<div class="navbar-center">
|
||||||
<a class="btn btn-ghost normal-case text-xl" href="/">Manuel Ernesto ⚡️</a>
|
<a class="btn btn-ghost normal-case text-xl" href="/">Andrew Scott</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-end"></div>
|
<div class="navbar-end"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,9 +3,15 @@
|
||||||
<div class="menu p-4 overflow-y-auto w-[19rem] bg-base-200 text-base-content">
|
<div class="menu p-4 overflow-y-auto w-[19rem] bg-base-200 text-base-content">
|
||||||
<div class="w-fit">
|
<div class="w-fit">
|
||||||
<a href="/">
|
<a href="/">
|
||||||
<div class="avatar transition ease-in-out w-1/2 hover:scale-[102%] block m-auto mt-3 mb-6">
|
<div
|
||||||
|
class="avatar transition ease-in-out w-1/2 hover:scale-[102%] block m-auto mt-3 mb-6"
|
||||||
|
>
|
||||||
<div>
|
<div>
|
||||||
<img class="mask mask-circle" src="/profile.jpg" alt="profile image" />
|
<img
|
||||||
|
class="mask mask-circle"
|
||||||
|
src="/profile.png"
|
||||||
|
alt="profile image"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -14,15 +20,18 @@
|
||||||
<!-- Sidebar content here -->
|
<!-- Sidebar content here -->
|
||||||
<li><a href="/">Home</a></li>
|
<li><a href="/">Home</a></li>
|
||||||
<li><a href="/projects">Projects</a></li>
|
<li><a href="/projects">Projects</a></li>
|
||||||
<li><a href="/store/1">Store</a></li>
|
|
||||||
<li><a href="/blog/1">Blog</a></li>
|
<li><a href="/blog/1">Blog</a></li>
|
||||||
<li><a href="/cv">CV</a></li>
|
<li><a href="/cv">CV</a></li>
|
||||||
<li><a href="https://manuelernestog.github.io/paylink/" target="_blank">Support my Work</a></li>
|
<li><a href="mailto:andy@andyscott.me">Contact</a></li>
|
||||||
<li><a href="mailto:contact.manuelernestog@gmail.com">Contact</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="grow"></div>
|
<div class="grow"></div>
|
||||||
<div class="social-icons px-4 my-2 flex self-center">
|
<div class="social-icons px-4 my-2 flex self-center">
|
||||||
<a href="https://github.com/manuelernestog" target="_blank" class="mx-3" aria-label="Github">
|
<a
|
||||||
|
href="https://codeberg.org/andcscott"
|
||||||
|
target="_blank"
|
||||||
|
class="mx-3"
|
||||||
|
aria-label="Git"
|
||||||
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="24"
|
width="24"
|
||||||
|
@ -30,13 +39,17 @@
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
style="fill: currentColor;transform: ;msFilter:;"
|
style="fill: currentColor;transform: ;msFilter:;"
|
||||||
><path
|
><path
|
||||||
fill-rule="evenodd"
|
d="M3 19h18a1.002 1.002 0 0 0 .823-1.569l-9-13c-.373-.539-1.271-.539-1.645 0l-9 13A.999.999 0 0 0 3 19z"
|
||||||
clip-rule="evenodd"
|
|
||||||
d="M12.026 2c-5.509 0-9.974 4.465-9.974 9.974 0 4.406 2.857 8.145 6.821 9.465.499.09.679-.217.679-.481 0-.237-.008-.865-.011-1.696-2.775.602-3.361-1.338-3.361-1.338-.452-1.152-1.107-1.459-1.107-1.459-.905-.619.069-.605.069-.605 1.002.07 1.527 1.028 1.527 1.028.89 1.524 2.336 1.084 2.902.829.091-.645.351-1.085.635-1.334-2.214-.251-4.542-1.107-4.542-4.93 0-1.087.389-1.979 1.024-2.675-.101-.253-.446-1.268.099-2.64 0 0 .837-.269 2.742 1.021a9.582 9.582 0 0 1 2.496-.336 9.554 9.554 0 0 1 2.496.336c1.906-1.291 2.742-1.021 2.742-1.021.545 1.372.203 2.387.099 2.64.64.696 1.024 1.587 1.024 2.675 0 3.833-2.33 4.675-4.552 4.922.355.308.675.916.675 1.846 0 1.334-.012 2.41-.012 2.737 0 .267.178.577.687.479C19.146 20.115 22 16.379 22 11.974 22 6.465 17.535 2 12.026 2z"
|
|
||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://twitter.com/manuelernestog" target="_blank" class="mx-3" aria-label="Twitter">
|
<a
|
||||||
|
href="https://fosstodon.org/@ascott"
|
||||||
|
rel="me"
|
||||||
|
target="_blank"
|
||||||
|
class="mx-3"
|
||||||
|
aria-label="Mastodon"
|
||||||
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="24"
|
width="24"
|
||||||
|
@ -44,11 +57,16 @@
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
style="fill: currentColor;transform: ;msFilter:;"
|
style="fill: currentColor;transform: ;msFilter:;"
|
||||||
><path
|
><path
|
||||||
d="M19.633 7.997c.013.175.013.349.013.523 0 5.325-4.053 11.461-11.46 11.461-2.282 0-4.402-.661-6.186-1.809.324.037.636.05.973.05a8.07 8.07 0 0 0 5.001-1.721 4.036 4.036 0 0 1-3.767-2.793c.249.037.499.062.761.062.361 0 .724-.05 1.061-.137a4.027 4.027 0 0 1-3.23-3.953v-.05c.537.299 1.16.486 1.82.511a4.022 4.022 0 0 1-1.796-3.354c0-.748.199-1.434.548-2.032a11.457 11.457 0 0 0 8.306 4.215c-.062-.3-.1-.611-.1-.923a4.026 4.026 0 0 1 4.028-4.028c1.16 0 2.207.486 2.943 1.272a7.957 7.957 0 0 0 2.556-.973 4.02 4.02 0 0 1-1.771 2.22 8.073 8.073 0 0 0 2.319-.624 8.645 8.645 0 0 1-2.019 2.083z"
|
d="M16 17.24c2.5-.3 4.69-1.84 5-3.25a33.59 33.59 0 0 0 .4-5.42C21.33 4.23 18.48 3 18.48 3A17.64 17.64 0 0 0 12 2a17.64 17.64 0 0 0-6.48 1S2.68 4.23 2.68 8.57v3.44c.1 4.24.78 8.42 4.7 9.46A14.73 14.73 0 0 0 12 22a9.21 9.21 0 0 0 3.54-.81l-.07-1.64A11.41 11.41 0 0 1 12 20c-1.8-.06-3.71-.19-4-2.4a4.26 4.26 0 0 1 0-.63 22.68 22.68 0 0 0 4 .54 23.6 23.6 0 0 0 4-.27zm-6.54-9.8q-1.35 0-1.35 1.62v5.1H6V8.9a3.78 3.78 0 0 1 .82-2.56 2.85 2.85 0 0 1 2.23-1 2.68 2.68 0 0 1 2.4 1.23l.52.87.52-.87a2.68 2.68 0 0 1 2.4-1.23 2.85 2.85 0 0 1 2.23 1A3.78 3.78 0 0 1 18 8.9v5.26h-2.11v-5.1q0-1.62-1.35-1.62c-1 0-1.51.64-1.51 1.92v2.79H11V9.36c0-1.28-.54-1.92-1.54-1.92z"
|
||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://t.me/manuelernestog" target="_blank" class="mx-3" aria-label="Telegram">
|
<a
|
||||||
|
href="xmpp:andrew@chat.acscott.dev?omemo-sid-1469474723=2f136a2443193c56bf6106509f126cb91a06d2765a1cab2b3ef49d7dedef4d12"
|
||||||
|
target="_blank"
|
||||||
|
class="mx-3"
|
||||||
|
aria-label="XMPP"
|
||||||
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="24"
|
width="24"
|
||||||
|
@ -56,12 +74,19 @@
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
style="fill: currentColor;transform: ;msFilter:;"
|
style="fill: currentColor;transform: ;msFilter:;"
|
||||||
><path
|
><path
|
||||||
d="m20.665 3.717-17.73 6.837c-1.21.486-1.203 1.161-.222 1.462l4.552 1.42 10.532-6.645c.498-.303.953-.14.579.192l-8.533 7.701h-.002l.002.001-.314 4.692c.46 0 .663-.211.921-.46l2.211-2.15 4.599 3.397c.848.467 1.457.227 1.668-.785l3.019-14.228c.309-1.239-.473-1.8-1.282-1.434z"
|
d="M5 18v3.766l1.515-.909L11.277 18H16c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2H4c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h1zM4 8h12v8h-5.277L7 18.234V16H4V8z"
|
||||||
|
></path><path
|
||||||
|
d="M20 2H8c-1.103 0-2 .897-2 2h12c1.103 0 2 .897 2 2v8c1.103 0 2-.897 2-2V4c0-1.103-.897-2-2-2z"
|
||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="https://www.linkedin.com/in/manuelernestogr" target="_blank" class="mx-3" aria-label="Linkedin">
|
<a
|
||||||
|
href="https://www.linkedin.com/in/andcscott"
|
||||||
|
target="_blank"
|
||||||
|
class="mx-3"
|
||||||
|
aria-label="Linkedin"
|
||||||
|
>
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
width="24"
|
width="24"
|
||||||
|
@ -74,6 +99,24 @@
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://keyoxide.org/28690B7BD571C5764970FAA0A40D4DEEBCE23B57"
|
||||||
|
target="_blank"
|
||||||
|
class="mx-3"
|
||||||
|
aria-label="Keyoxide"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
style="fill: currentColor;transform: ;msFilter:;"
|
||||||
|
><path
|
||||||
|
d="M3.433 17.325 3.079 19.8a1 1 0 0 0 1.131 1.131l2.475-.354C7.06 20.524 8 18 8 18s.472.405.665.466c.412.13.813-.274.948-.684L10 16.01s.577.292.786.335c.266.055.524-.109.707-.293a.988.988 0 0 0 .241-.391L12 14.01s.675.187.906.214c.263.03.519-.104.707-.293l1.138-1.137a5.502 5.502 0 0 0 5.581-1.338 5.507 5.507 0 0 0 0-7.778 5.507 5.507 0 0 0-7.778 0 5.5 5.5 0 0 0-1.338 5.581l-7.501 7.5a.994.994 0 0 0-.282.566zM18.504 5.506a2.919 2.919 0 0 1 0 4.122l-4.122-4.122a2.919 2.919 0 0 1 4.122 0z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="/rss.xml" target="_blank" class="mx-3" aria-label="RSS Feed">
|
<a href="/rss.xml" target="_blank" class="mx-3" aria-label="RSS Feed">
|
||||||
<svg
|
<svg
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
@ -81,8 +124,11 @@
|
||||||
height="24"
|
height="24"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
style="fill: currentColor;transform: ;msFilter:;"
|
style="fill: currentColor;transform: ;msFilter:;"
|
||||||
><path d="M19 20.001C19 11.729 12.271 5 4 5v2c7.168 0 13 5.832 13 13.001h2z"></path><path
|
><path
|
||||||
d="M12 20.001h2C14 14.486 9.514 10 4 10v2c4.411 0 8 3.589 8 8.001z"></path><circle cx="6" cy="18" r="2"></circle>
|
d="M19 20.001C19 11.729 12.271 5 4 5v2c7.168 0 13 5.832 13 13.001h2z"
|
||||||
|
></path><path
|
||||||
|
d="M12 20.001h2C14 14.486 9.514 10 4 10v2c4.411 0 8 3.589 8 8.001z"
|
||||||
|
></path><circle cx="6" cy="18" r="2"></circle>
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Place any global data in this file.
|
// Place any global data in this file.
|
||||||
// You can import this data from anywhere in your site by using the `import` keyword.
|
// You can import this data from anywhere in your site by using the `import` keyword.
|
||||||
|
|
||||||
export const SITE_TITLE = 'Astro Modern Personal Website Template';
|
export const SITE_TITLE = "Andy Scott";
|
||||||
export const SITE_DESCRIPTION = 'Astro Modern Personal Website template with Project Section, CV Section, Paginated Blog, RSS Feed, SEO Friendly, Visual themes and Responsive Desing.';
|
export const SITE_DESCRIPTION = "Personal and Portfolio Site for Andy Scott";
|
||||||
|
|
|
@ -10,7 +10,7 @@ const { image, title = SITE_TITLE, description = SITE_DESCRIPTION } = Astro.prop
|
||||||
---
|
---
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" data-theme="lofi">
|
<html lang="en" data-theme="dark">
|
||||||
<head>
|
<head>
|
||||||
<BaseHead title={title} description={description} image={image} />
|
<BaseHead title={title} description={description} image={image} />
|
||||||
</head>
|
</head>
|
||||||
|
|
15
src/pages/blog/exercise_tracker.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "Exercise Tracker"
|
||||||
|
description: "Single Page Application using the MERN Stack"
|
||||||
|
pubDate: "Jun 16 2022"
|
||||||
|
heroImage: "/post_images/exercise_tracker_home.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
I was finally able to make the first of my projects from this spring public today. This single
|
||||||
|
page application uses the MongoDB, Express, React, and Node (MERN) Stack to implement
|
||||||
|
a REST API and a graphical interface for logging exercises. The home page greets the user
|
||||||
|
with a table of past exercises. An exercise can be edited, or deleted, by clicking on the
|
||||||
|
appropriate icon within the table. [source code](https://git.andyscott.me/a/ExerciseTracker)
|
||||||
|
|
||||||
|
*Updated Dec 9 2022*
|
23
src/pages/blog/first_post.md
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "First Post"
|
||||||
|
description: "It's time for the inaugural post!"
|
||||||
|
pubDate: "Jan 11 2022"
|
||||||
|
heroImage: "/profile.png"
|
||||||
|
---
|
||||||
|
|
||||||
|
Hello and welcome to the blog section of my page! I intend to use this section to post some
|
||||||
|
updates on my projects. This will include new projects I'm working on along with updated
|
||||||
|
information on pre-existing projects. Most of the posts will be short and to the point,
|
||||||
|
especially while I get used to this style of writing and form some expectations for how I
|
||||||
|
might want to use these posts in the future.
|
||||||
|
|
||||||
|
I may also occasionally take the opportunity to provide some commentary and personal
|
||||||
|
opinions. For the moment, however, I do not anticipate writing lengthy and in-depth posts
|
||||||
|
on a regular basis like you might see on someone's personal blog. I anticipate the
|
||||||
|
frequency of my posts will largely be dictated by the projects I'm working on, and whether
|
||||||
|
or not I can discuss them publicly.
|
||||||
|
|
||||||
|
There also won't be any way to comment or react to posts simply because I
|
||||||
|
don't anticipate being very popular. If that changes for some reason I'll be happy to add
|
||||||
|
more features in the future.
|
17
src/pages/blog/hash_maps.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "Hash Maps"
|
||||||
|
description: "Two hash maps with different collision avoidance mechanisms"
|
||||||
|
pubDate: "Jun 25 2022"
|
||||||
|
heroImage: "/post_images/hash_maps.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
This is the second of the two projects I prepared for this spring. For this project
|
||||||
|
I've focussed on implementing data structures in Python, namely hash maps and hash
|
||||||
|
tables. In these implementations I demonstrate two different methods for avoiding hash
|
||||||
|
colisions: open addressing with quadratic probing; and separate chaining.
|
||||||
|
|
||||||
|
While data structures might seem bit mundane I actually had a lot of fun with this one!
|
||||||
|
I felt much more confident in this project than I have in the past as well. It's really
|
||||||
|
exciting to see the progress I've made since last fall and I can't wait to share more in
|
||||||
|
the future. [source code](https://git.andyscott.me/a/HashMaps)
|
20
src/pages/blog/masm_low_level_io.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "MASM & Low Level I/O"
|
||||||
|
description: "Using the Microsoft Macro Assembler for low level operations"
|
||||||
|
pubDate: "Mar 26 2022"
|
||||||
|
heroImage: "/post_images/masm_low_level_io.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
Definitely check this one out if you're interested in MASM or IA-32 (x86) Assembly
|
||||||
|
Language. This program uses string primitives, macros and procedures to perform low
|
||||||
|
level I/O operations with the Microsoft Macro Assembler (MASM). MASM is an x86
|
||||||
|
assembler.
|
||||||
|
|
||||||
|
The program asks for 10 signed integers from the user as strings. The strings are
|
||||||
|
converted from ASCII to SDWORDs and stored in an array. Then, their sum, and the
|
||||||
|
truncated average are calculated. Finally, all numbers entered by the user as well as the
|
||||||
|
results are converted back to their ASCII representations and printed as strings.
|
||||||
|
[source code](https://git.andyscott.me/a/MASM-Low-Level-IO/)
|
||||||
|
|
||||||
|
*Updated Dec 9 2022*
|
36
src/pages/blog/openweather_grpc_api.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "OpenWeather gRPC API"
|
||||||
|
description: "A high performance API for gRPC clients to fetch weather data"
|
||||||
|
pubDate: "Aug 28 2022"
|
||||||
|
heroImage: "/post_images/openweather_grpc_api_uml.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
Long time, no see! This is the first of three new projects from this summer that
|
||||||
|
I'd like to introduce to you.
|
||||||
|
|
||||||
|
Written in Go, this microservice uses
|
||||||
|
[protocol buffers](https://developers.google.com/protocol-buffers/docs/overview)
|
||||||
|
to define a highly performant
|
||||||
|
[gRPC API](https://grpc.io/docs/what-is-grpc/introduction/).
|
||||||
|
|
||||||
|
Compared to other APIs like RESTful APIs, gRPC offers several key benefits,
|
||||||
|
including:
|
||||||
|
|
||||||
|
- Efficient connection management with HTTP/2
|
||||||
|
- Simpler server implementation
|
||||||
|
- Easily generate client-side code for a variety of programming languages
|
||||||
|
- Messages serialized to binary for more efficient payloads
|
||||||
|
|
||||||
|
The API accepts remote procedure calls to fetch weather and gelocation data from
|
||||||
|
[OpenWeatherMap.org](https://openweathermap.org). The service acts as an intermediary
|
||||||
|
between gRPC clients and the OpenWeather API.
|
||||||
|
|
||||||
|
The following features are currently available:
|
||||||
|
|
||||||
|
- Current forecasts by city, zip code, or exact location
|
||||||
|
- Five day forecasts by city, zip code, or exact location
|
||||||
|
- Geolocation data (latitude and longitude) for a particular city or zip code
|
||||||
|
- Choose your preferred units among imperial, metric, or the OpenWeather default (Kelvin/meters per second)
|
||||||
|
|
||||||
|
[source code](https://git.andyscott.me/a/OpenWeather-gRPC-API)
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
layout: "../../layouts/PostLayout.astro"
|
|
||||||
title: "Demo Post 1"
|
|
||||||
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
||||||
pubDate: "Sep 10 2022"
|
|
||||||
heroImage: "/post_img.webp"
|
|
||||||
---
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
|
||||||
|
|
||||||
Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.
|
|
||||||
|
|
||||||
Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim.
|
|
||||||
|
|
||||||
Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi.
|
|
||||||
|
|
||||||
Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna.
|
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
layout: "../../layouts/PostLayout.astro"
|
|
||||||
title: "Demo Post 2"
|
|
||||||
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
||||||
pubDate: "Sep 11 2022"
|
|
||||||
heroImage: "/post_img.webp"
|
|
||||||
---
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
|
||||||
|
|
||||||
Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.
|
|
||||||
|
|
||||||
Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim.
|
|
||||||
|
|
||||||
Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi.
|
|
||||||
|
|
||||||
Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna.
|
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
layout: "../../layouts/PostLayout.astro"
|
|
||||||
title: "Demo Post 3"
|
|
||||||
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
||||||
pubDate: "Sep 12 2022"
|
|
||||||
heroImage: "/post_img.webp"
|
|
||||||
---
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
|
||||||
|
|
||||||
Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.
|
|
||||||
|
|
||||||
Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim.
|
|
||||||
|
|
||||||
Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi.
|
|
||||||
|
|
||||||
Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna.
|
|
14
src/pages/blog/s22_term_almost_over.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "Spring '22 Term"
|
||||||
|
description: "Wrapping Up Spring '22"
|
||||||
|
pubDate: "May 31 2022"
|
||||||
|
heroImage: "/post_images/krokusse_violett.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
I can't believe the Spring '22 term is almost over! I'll be working on final projects this week
|
||||||
|
and look forward to sharing them when I can. You can expect a HashMap implementation for my
|
||||||
|
Data Structures class and a Full Stack MERN app that I'm writing for Web Developement.
|
||||||
|
Final exams are next week, and then it's on to the summer term.
|
||||||
|
|
||||||
|
*Photo Thomas Wolf, [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/deed.en)*
|
19
src/pages/blog/ship_game.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "Ship Game"
|
||||||
|
description: "A backend for the Battleship-like 'Ship Game'"
|
||||||
|
pubDate: "Apr 11 2022"
|
||||||
|
heroImage: "/post_images/ship_game.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
I've added the second of the two projects I mentioned in my
|
||||||
|
[previous post](https://andyscott.me/blog/w22_term_almost_over). ShipGame is a
|
||||||
|
Battleship-like game for two players. This code provides a backend for the game written in
|
||||||
|
Python.
|
||||||
|
|
||||||
|
Each player has a 10x10 grid on which they place their ships. On their turn, the player
|
||||||
|
fires a torpedo at a square on their opponents grid. Player 'first' gets the first turn, after
|
||||||
|
which the players alternate. A ship is sunk when all of its squares have been hit. A player
|
||||||
|
wins when all of their opponents ships have been sunk. [source code]()
|
||||||
|
|
||||||
|
*Updated Dec 10 2022*
|
21
src/pages/blog/w22_term_almost_over.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
layout: "../../layouts/PostLayout.astro"
|
||||||
|
title: "Winter '22 Term"
|
||||||
|
description: "Winter 2022 at Oregon State is almost over!"
|
||||||
|
pubDate: "Mar 16 2022"
|
||||||
|
heroImage: "/post_images/snowman_on_frozen_lake.jpg"
|
||||||
|
---
|
||||||
|
|
||||||
|
It's been a while since I had any updates to post. Unfortunately this term at OSU left little
|
||||||
|
time for personal projects. I had expected this but it's still a little disappointing. Even
|
||||||
|
though I wasn't able to share any code publicly I was definitely keeping busy with
|
||||||
|
Computer Architecture, Assembly, Python, and UX Design. UX Design in particular was a
|
||||||
|
different experience for me and got me outside my comfort zone, which is always a good
|
||||||
|
thing!
|
||||||
|
|
||||||
|
Some good news too! I finished my last final exam today so I'll be ready to showcase a
|
||||||
|
couple more projects soon. One project experiments with low level I/O and string
|
||||||
|
primitives in IA-32 Assembly with MASM, and the other is a backend for a Battleship-like
|
||||||
|
game written in Python.
|
||||||
|
|
||||||
|
*Photo Petri Tapola, [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0)*
|
|
@ -3,16 +3,21 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
||||||
import TimeLineElement from "../components/cv/TimeLine.astro";
|
import TimeLineElement from "../components/cv/TimeLine.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<BaseLayout title = "Resume">
|
<BaseLayout title="Resume">
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<div class="text-3xl w-full font-bold">Profile</div>
|
<div class="text-3xl w-full font-bold">About Me</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-10 text-justify">
|
<div class="mb-10 text-justify">
|
||||||
Engineer in Informatics Science with 6 years + of experience in software development. Dominion of various programming
|
My first memorable experience with technology was at age five - Nintendo
|
||||||
languages, frameworks, CMS and graphics engines. Experience in WEB design and development. Work with Data Base handled
|
introduced me to Mario, Tetris, and Zelda. My love of games took hold
|
||||||
systems, as well as design, normalization and migration. Knowledge of work with graphic design tools for image
|
immediately, and I've been hooked on technology ever since. Games, and the
|
||||||
manipulation , User Interfaces design, Web sites, logos and other ones.
|
hardware necessary to play them, were always evolving so I became determined
|
||||||
|
to build my own desktop computer in high school. Since then, I've built at
|
||||||
|
least another dozen computers and a couple home servers to host my own
|
||||||
|
privacy focussed cloud services. These experiences have led me to become a
|
||||||
|
strong proponent of open source software, in part due to its transparency,
|
||||||
|
quality, innovation, and diversity.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
|
@ -21,95 +26,65 @@ import TimeLineElement from "../components/cv/TimeLine.astro";
|
||||||
|
|
||||||
<div class="time-line-container grid gap-4 mb-10">
|
<div class="time-line-container grid gap-4 mb-10">
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Technician Information-Technology"
|
title="Bachelor of Science – Computer Science"
|
||||||
subtitle="2006 to 2009 at Osvaldo Herrera Polytechnic institute, Habana, Cuba"
|
subtitle="2021 to Present at Oregon State University, Corvallis, OR"
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Informatics Science Engineer"
|
title="Bachelor of Arts – Ethics, History, and Public Policy"
|
||||||
subtitle="2010 to 2015 at University of Informatics Science (UCI), Habana, Cuba"
|
subtitle="2005 to 2009 at Carnegie-Mellon University, Pittsburgh, PA"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<div class="text-3xl w-full font-bold">Experience</div>
|
<div class="text-3xl w-full font-bold">Work Experience</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="time-line-container mb-10">
|
<div class="time-line-container mb-10">
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="UI Designer and Developer at Integral Access Control System (Thesis)"
|
title="Health and Well-Being"
|
||||||
subtitle="From 2015 at XETID, Habana, Cuba"
|
subtitle="From Mar 2017 to Present"
|
||||||
desc="System multiplatform that includes the steps of a company's personnel, the structure and composition thereof, as well as a powerful designer of credentials and module of control of access. Outspread at the MINFAR and another entities of the country. Technologies: C++, Qt Framework, Subversión, Visual Paradigm, PostgreSQL, Jmeter"
|
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Web Developer at Integral Oil Drilling System 2.0"
|
title="Senior Representative, Annuity Claims"
|
||||||
subtitle="From 2015 to 2016 at CEDIN, UCI, Habana, Cuba"
|
subtitle="From Mar 2013 to Mar 2017 at New York Life Insurance Company"
|
||||||
desc="System of steps of process of perforation of oil wells. Outspread in the direction of Intervención of Wells and various wells of drilling of the Occident of the country. Generate reports and graphs of process of perforation making use of data mining. Technologies: Php,Symfony 2.7 , Subversión, PostgreSQL, HigthChart, Ireport, Boostrap 2, JQuery, HTML,CSS, JavaScript"
|
desc="Managed migration of annuity claims processing from legacy mainframe system to a modern web interface, conducting quality assurance testing while ensuring compliance with state laws. Implemented new correspondence templates increasing efficiency and accuracy, saving approximately 100 hours per processor per year."
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Full Stack Dev, Software Architect and Project Leader at Integral Oil Drilling System 3.0"
|
title="Representative"
|
||||||
subtitle="From 2016 to 2017 at CEDIN, UCI, Habana, Cuba"
|
subtitle="From Feb 2010 to Mar 2013 at New York Life Insurance Company"
|
||||||
desc="System of steps of process of perforation of oil wells. Outspread in the direction of Intervención of Wells and various wells of drilling of the Occident of the country. Generate reports and graphs of process of perforation making use of data mining. Technologies: Php,Symfony 2.8 , Gitlab, PostgreSQL, HigthChart, Boostrap 2, JQuery, HTML,CSS, JavaScript"
|
desc="Processed death claims against life insurance policies and annuities. Assisted claimants and their representatives in both establishing new claims and finalizing existing claims."
|
||||||
/>
|
/>
|
||||||
<TimeLineElement
|
<TimeLineElement
|
||||||
title="Full Stack Dev, UI/UX Designer and Software Architect at Primary Information System"
|
title="Work Study Assistant, Equal Opportunity Services"
|
||||||
subtitle="From 2017 to 2018 at CEDIN, UCI, Habana, Cuba"
|
subtitle="From Jan 2006 to May 2009 at Carnegie-Mellon University"
|
||||||
desc="System of steps of primary information at a company. personnel's steps, control of access, impression of credentials, steps of locales, structure and composition. Technologies: Php,Symfony 3.3 , Gitlab, PostgreSQL, , Boostrap 3, JQuery, HTML,CSS, JavaScript"
|
desc="Converted existing student and employee files from traditional paper to a digital database. Proctored distraction reduced test-taking environment for learning disabled students. Acted as primary on-call contact for after hours assignments. Directly assisted the Manager of Disability Resources in meeting the needs of disabled students as delineated by federal guidelines and University policy."
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-5">
|
|
||||||
<div class="text-3xl w-full font-bold">Certifications</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul class="list-disc mx-6 mb-10 grid gap-2">
|
|
||||||
<li>
|
|
||||||
<a href="https://www.efset.org/cert/DxtNKG" target="_blank"> EF SET English Certificate 74/100 (C2 Proficient)</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://certiprof.com/pages/scrum-foundation-professional-certificate-sfpc-en-sp" target="_blank"> Scrum Foundation Professional Certificate (SFPC)</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
<div class="text-3xl w-full font-bold">Skills</div>
|
<div class="text-3xl w-full font-bold">Skills</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ul class="list-disc md:columns-5 columns-2 mx-6">
|
<ul class="list-disc md:columns-5 columns-2 mx-6">
|
||||||
<li>Spanish (Native)</li>
|
<li>C</li>
|
||||||
<li>English (C2)</li>
|
|
||||||
<li>JavaScript</li>
|
|
||||||
<li>C++</li>
|
<li>C++</li>
|
||||||
<li>PHP</li>
|
<li>Python</li>
|
||||||
<li>Ruby</li>
|
<li>Go</li>
|
||||||
<li>Postgres SQL</li>
|
<li>x86 Assembly</li>
|
||||||
<li>MySQL</li>
|
<li>MASM</li>
|
||||||
<li>CSS</li>
|
<li>Agile</li>
|
||||||
<li>SASS</li>
|
|
||||||
<li>HTML</li>
|
|
||||||
<li>Node.js</li>
|
|
||||||
<li>Ruby on Rails</li>
|
|
||||||
<li>AngularJS</li>
|
|
||||||
<li>VUE</li>
|
|
||||||
<li>Astro</li>
|
|
||||||
<li>Symfony 3</li>
|
|
||||||
<li>Yii2</li>
|
|
||||||
<li>Bootstrap</li>
|
|
||||||
<li>Taildwind</li>
|
|
||||||
<li>JQuery</li>
|
|
||||||
<li>Wordpress</li>
|
|
||||||
<li>Git</li>
|
<li>Git</li>
|
||||||
|
<li>CI/CD</li>
|
||||||
|
<li>Linux</li>
|
||||||
|
<li>Linux Server</li>
|
||||||
|
<li>SELinux</li>
|
||||||
|
<li>KVM</li>
|
||||||
|
<li>UX Research</li>
|
||||||
|
<li>UX Design</li>
|
||||||
<li>Jira</li>
|
<li>Jira</li>
|
||||||
<li>Trello</li>
|
<li>Trello</li>
|
||||||
<li>BaseCamp</li>
|
|
||||||
<li>Scrum</li>
|
|
||||||
<li>Shape Up</li>
|
|
||||||
<li>LeanStartup</li>
|
|
||||||
<li>UI Design</li>
|
|
||||||
<li>WEB Design</li>
|
|
||||||
<li>Logo Design</li>
|
|
||||||
<li>Image Manipulation</li>
|
|
||||||
<li>Office Suite</li>
|
<li>Office Suite</li>
|
||||||
<li>Adobe Photoshop</li>
|
<li>Emacs</li>
|
||||||
<li>KdenLive</li>
|
<li>Vim</li>
|
||||||
</ul>
|
</ul>
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
|
|
|
@ -3,64 +3,77 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
||||||
import HorizontalCard from "../components/HorizontalCard.astro";
|
import HorizontalCard from "../components/HorizontalCard.astro";
|
||||||
|
|
||||||
const posts = (await Astro.glob("./blog/*.{md,mdx}")).sort(
|
const posts = (await Astro.glob("./blog/*.{md,mdx}")).sort(
|
||||||
(a, b) => new Date(b.frontmatter.pubDate).valueOf() - new Date(a.frontmatter.pubDate).valueOf()
|
(a, b) =>
|
||||||
|
new Date(b.frontmatter.pubDate).valueOf() -
|
||||||
|
new Date(a.frontmatter.pubDate).valueOf()
|
||||||
);
|
);
|
||||||
|
|
||||||
const last_posts = posts.slice(0, 3);
|
const last_posts = posts.slice(0, 3);
|
||||||
---
|
---
|
||||||
|
|
||||||
<BaseLayout>
|
<BaseLayout>
|
||||||
|
|
||||||
<div class="pb-12 mt-5">
|
<div class="pb-12 mt-5">
|
||||||
<div class="text-xl py-1">Hey there 👋</div>
|
<div class="text-xl py-1">Greetings, fellow human 🤘</div>
|
||||||
<div class="text-5xl font-bold">I'm Manuel Ernesto</div>
|
<div class="text-5xl font-bold">I'm Andy Scott</div>
|
||||||
<div class="text-3xl py-3 font-bold">Software Engineer and Entrepreneur</div>
|
<div class="text-3xl py-3 font-bold">
|
||||||
|
Computer Science Student & Free Software Advocate
|
||||||
|
</div>
|
||||||
<div class="py-2">
|
<div class="py-2">
|
||||||
<text class="text-lg">
|
<text class="text-lg">
|
||||||
I made this template for everyone who needs to create a personal website easily and quickly. This template includes Project Section, CV Section, Store, Paginated Blog, RSS Feed, SEO Friendly, Responsive Desing and 29 Visual themes. I hope you find it useful!
|
I created this site to showcase my projects, and occasionally blog about
|
||||||
</text
|
their developement. Check out the sidebar, or continue reading if you’d
|
||||||
>
|
like to know more!
|
||||||
|
</text>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-8">
|
<div class="mt-8">
|
||||||
<a class="btn" href="https://twitter.com/manuelernestog" target="_blank"> Let's connect!</a>
|
<a class="btn" href="https://fosstodon.org/@ascott" target="_blank">
|
||||||
<a href="https://github.com/manuelernestog/astro-modern-personal-website" target="_blank" class="btn btn-outline ml-5"> Get This template</a>
|
Connect on The Fediverse</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://codeberg.org/andcscott"
|
||||||
|
target="_blank"
|
||||||
|
class="btn btn-outline ml-5"
|
||||||
|
>
|
||||||
|
Show Me the Code</a
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="text-3xl w-full font-bold mb-2">My last projects {"</>"}</div>
|
<div class="text-3xl w-full font-bold mb-2">Latest projects {"</>"}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 1"
|
title="2D Puzzle Solver"
|
||||||
img="/post_img.webp"
|
img="/project_images/2d_puzzle_solver.jpg"
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="Uses breadth first search (BFS) for graph traversal to solve 2D puzzles"
|
||||||
url="#"
|
url="https://codeberg.org/andcscott/2D-Puzzle-Solver"
|
||||||
badge="NEW"
|
badge="Graphs"
|
||||||
/>
|
/>
|
||||||
<div class="divider my-0"></div>
|
<div class="divider my-0"></div>
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 2"
|
title="OpenWeather gRPC API"
|
||||||
img="/post_img.webp"
|
img="/project_images/openweather_grpc_api.jpg"
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="Written in Go, this microservice uses protocol buffers to define a highly performant gRPC API"
|
||||||
url="#"
|
url="https://codeberg.org/andcscott/OpenWeather-gRPC-API"
|
||||||
|
badge="gRPC"
|
||||||
/>
|
/>
|
||||||
<div class="divider my-0"></div>
|
<div class="divider my-0"></div>
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 3"
|
title="Hash Maps"
|
||||||
img="/post_img.webp"
|
img="/project_images/hash_maps.jpg"
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="Two hash map implementations featuring open addressing with quadratic probing and separate chaining"
|
||||||
url="#"
|
url="https://codeberg.org/andcscott/HashMaps"
|
||||||
badge="FOSS"
|
badge="Data Structures"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="text-3xl w-full font-bold mb-5 mt-10">Latest from blog</div>
|
<div class="text-3xl w-full font-bold mb-5 mt-10">Latest posts</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{
|
{
|
||||||
last_posts.map((post) => (
|
last_posts.map((post) => (
|
||||||
|
<>
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title={post.frontmatter.title}
|
title={post.frontmatter.title}
|
||||||
img={post.frontmatter.heroImage}
|
img={post.frontmatter.heroImage}
|
||||||
|
@ -68,8 +81,8 @@ const last_posts = posts.slice(0, 3);
|
||||||
url={post.url}
|
url={post.url}
|
||||||
target="_self"
|
target="_self"
|
||||||
/>
|
/>
|
||||||
<div class="divider my-0"></div>
|
<div class="divider my-0" />
|
||||||
|
</>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
|
|
|
@ -3,49 +3,83 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
||||||
import HorizontalCard from "../components/HorizontalCard.astro";
|
import HorizontalCard from "../components/HorizontalCard.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<BaseLayout title = "Projects">
|
<BaseLayout title="Active Projects">
|
||||||
<div>
|
<div>
|
||||||
<div class="text-3xl w-full font-bold mb-5">Projects Header</div>
|
<div class="text-3xl w-full font-bold mb-5">Active Projects</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 1"
|
title="Advent of Code 2022"
|
||||||
img="/post_img.webp"
|
img=""
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="An advent calendar of programming puzzles"
|
||||||
url="#"
|
url="https://adventofcode.com"
|
||||||
badge="NEW"
|
badge="NEW"
|
||||||
/>
|
/>
|
||||||
<div class="divider my-0"></div>
|
<div class="divider my-0"></div>
|
||||||
<HorizontalCard
|
|
||||||
title="Demo Project 2"
|
|
||||||
img="/post_img.webp"
|
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
||||||
url="#"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="text-3xl w-full font-bold mb-5 mt-10">Projects Header</div>
|
<div class="text-3xl w-full font-bold mb-5 mt-10">All Projects</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 3"
|
title="2D Puzzle Solver"
|
||||||
img="/post_img.webp"
|
img="/project_images/2d_puzzle_solver.jpg"
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="Uses breadth first search (BFS) for graph traversal to solve 2D puzzles in the fewest moves possible"
|
||||||
url="#"
|
url="https://codeberg.org/andcscott/2D-Puzzle-Solver"
|
||||||
badge="FOSS"
|
badge="Graphs"
|
||||||
/>
|
/>
|
||||||
<div class="divider my-0"></div>
|
<div class="divider my-0"></div>
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 4"
|
title="OpenWeather gRPC API"
|
||||||
img="/post_img.webp"
|
img="/project_images/openweather_grpc_api.jpg"
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="Written in Go, this microservice uses protocol buffers to define a highly performant gRPC API for fetching weather data"
|
||||||
url="#"
|
url="https://codeberg.org/andcscott/OpenWeather-gRPC-API"
|
||||||
|
badge="gRPC"
|
||||||
/>
|
/>
|
||||||
<div class="divider my-0"></div>
|
<div class="divider my-0"></div>
|
||||||
<HorizontalCard
|
<HorizontalCard
|
||||||
title="Demo Project 5"
|
title="Hash Maps"
|
||||||
img="/post_img.webp"
|
img="/project_images/hash_maps.jpg"
|
||||||
desc="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
desc="Two hash map implementations featuring open addressing with quadratic probing and separate chaining to handle collisions"
|
||||||
url="#"
|
url="https://codeberg.org/andcscott/HashMaps"
|
||||||
|
badge="Data Structures"
|
||||||
|
/>
|
||||||
|
<div class="divider my-0"></div>
|
||||||
|
<HorizontalCard
|
||||||
|
title="Exercise Tracker"
|
||||||
|
img="/project_images/exercise_tracker.jpg"
|
||||||
|
desc="A full stack MERN app for tracking your exercises."
|
||||||
|
url="https://codeberg.org/andcscott/ExerciseTracker"
|
||||||
|
badge="SPA"
|
||||||
|
/>
|
||||||
|
<div class="divider my-0"></div>
|
||||||
|
<HorizontalCard
|
||||||
|
title="Ship Game"
|
||||||
|
img="/project_images/hash_maps.jpg"
|
||||||
|
desc="A backend for the Battleship-like 'Ship Game'"
|
||||||
|
url="https://codeberg.org/andcscott/ShipGame"
|
||||||
|
badge="Game"
|
||||||
|
/>
|
||||||
|
<div class="divider my-0"></div>
|
||||||
|
<HorizontalCard
|
||||||
|
title="MASM & Low Level I/O"
|
||||||
|
img="/project_images/masm_low_level_io.jpg"
|
||||||
|
desc="Using the Microsoft Macro Assembler for low level operations"
|
||||||
|
url="https://git.acscott.dev/a/MASM-Low-Level-IO"
|
||||||
|
badge="Assembly"
|
||||||
|
/>
|
||||||
|
<div class="divider my-0"></div>
|
||||||
|
<HorizontalCard
|
||||||
|
title="Dotfiles"
|
||||||
|
img="/project_images/dotfiles.jpg"
|
||||||
|
desc="Not a project per se, but always a work in progress"
|
||||||
|
url="https://codeberg.org/andcscott/dotfiles"
|
||||||
|
/>
|
||||||
|
<div class="divider my-0"></div>
|
||||||
|
<HorizontalCard
|
||||||
|
title="Password Generator (CLI)"
|
||||||
|
img="/project_images/password_generator_cli.jpg"
|
||||||
|
desc="My first Python project"
|
||||||
|
url="https://codeberg.org/andcscott/password-generator-cli"
|
||||||
/>
|
/>
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
---
|
|
||||||
import BaseLayout from "../../layouts/BaseLayout.astro";
|
|
||||||
import HorizontalShopItem from "../../components/HorizontalShopItem.astro";
|
|
||||||
|
|
||||||
export async function getStaticPaths({ paginate }) {
|
|
||||||
const posts = (await Astro.glob("./*.{md,mdx}")).sort(
|
|
||||||
(a, b) => new Date(b.frontmatter.pubDate).valueOf() - new Date(a.frontmatter.pubDate).valueOf()
|
|
||||||
);
|
|
||||||
|
|
||||||
return paginate(posts, { pageSize: 10 });
|
|
||||||
}
|
|
||||||
const { page } = Astro.props;
|
|
||||||
---
|
|
||||||
|
|
||||||
<BaseLayout title = "Store">
|
|
||||||
<ul>
|
|
||||||
<!--List the array of astronaut info-->
|
|
||||||
{page.data.map(( post ) => (
|
|
||||||
<HorizontalShopItem
|
|
||||||
title={post.frontmatter.title}
|
|
||||||
img={post.frontmatter.heroImage}
|
|
||||||
desc={post.frontmatter.description}
|
|
||||||
pricing={post.frontmatter.pricing}
|
|
||||||
oldPricing={post.frontmatter.oldPricing}
|
|
||||||
checkoutUrl={post.frontmatter.checkoutUrl}
|
|
||||||
badge={post.frontmatter.badge}
|
|
||||||
details={post.frontmatter.details}
|
|
||||||
tags={post.frontmatter.tags}
|
|
||||||
url={post.url}
|
|
||||||
custom_link={post.frontmatter.custom_link}
|
|
||||||
custom_link_label={post.frontmatter.custom_link_label}
|
|
||||||
target="_self"
|
|
||||||
/>
|
|
||||||
<div class="divider my-0"></div>
|
|
||||||
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex justify-between">
|
|
||||||
{page.url.prev ? <a href={page.url.prev} class="btn btn-ghost my-10 mx-5" > <svg class="h-6 w-6 fill-current md:h-8 md:w-8" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"></path></svg> Recent posts</a> : <div></div>}
|
|
||||||
{page.url.next ? <a href={page.url.next} class="btn btn-ghost my-10 mx-5">Older Posts <svg class="h-6 w-6 fill-current md:h-8 md:w-8" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"></path></svg></a> : <div></div>}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</BaseLayout>
|
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
layout: "../../layouts/StoreItemLayout.astro"
|
|
||||||
title: "Demo Item 1"
|
|
||||||
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
||||||
details: true
|
|
||||||
custom_link_label: "Live Preview"
|
|
||||||
custom_link: "https://demourl.com/"
|
|
||||||
pubDate: "Sep 15 2022"
|
|
||||||
pricing: "$15"
|
|
||||||
badge: "Featured"
|
|
||||||
checkoutUrl: "https://checkouturl.com/"
|
|
||||||
heroImage: "/itemPreview.png"
|
|
||||||
---
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
|
||||||
|
|
||||||
Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.
|
|
|
@ -1,17 +0,0 @@
|
||||||
---
|
|
||||||
layout: "../../layouts/StoreItemLayout.astro"
|
|
||||||
title: "Demo Item 2"
|
|
||||||
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
|
|
||||||
details: false
|
|
||||||
custom_link_label: "Custom Btn"
|
|
||||||
custom_link: "https://customurl.com/"
|
|
||||||
pubDate: "Sep 11 2022"
|
|
||||||
pricing: "$10"
|
|
||||||
oldPricing: "$25.5"
|
|
||||||
checkoutUrl: "https://checkouturl.com/"
|
|
||||||
heroImage: "/itemPreview.png"
|
|
||||||
---
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.
|
|
||||||
|
|
||||||
Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.
|
|