1
Fork 0
mirror of https://github.com/Steffo99/steffoweb.git synced 2024-11-21 23:54:30 +00:00

🔧 Start the website rewrite using Bluelib React 3

This commit is contained in:
Steffo 2021-08-28 21:18:43 +02:00
parent 642b58ad78
commit 9a73f8e5b6
Signed by: steffo
GPG key ID: 6965406171929D01
78 changed files with 11735 additions and 13734 deletions

2
.gitattributes vendored
View file

@ -1,2 +0,0 @@
build/* linguist-vendored
docs/* linguist-vendored

27
.gitignore vendored
View file

@ -1,4 +1,23 @@
node_modules
/*.log
.idea/
.sentryclirc
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

8
.idea/.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

7
.idea/discord.xml Normal file
View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="ASK" />
<option name="description" value="" />
</component>
</project>

View file

@ -0,0 +1,74 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="InconsistentLineSeparators" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="JupyterPackageInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="LessResolvedByNameOnly" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LessUnresolvedMixin" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="LessUnresolvedVariable" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="LongLine" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PoetryPackageVersion" enabled="true" level="SERVER PROBLEM" enabled_by_default="true" />
<inspection_tool class="ProblematicWhitespace" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyAbstractClassInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyAttributeOutsideInitInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyAugmentAssignmentInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyBroadExceptionInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyDictDuplicateKeysInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyDocstringTypesInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyDunderSlotsInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyFinalInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyFromFutureImportInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyGlobalUndefinedInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyInconsistentIndentationInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyInterpreterInspection" enabled="true" level="SERVER PROBLEM" enabled_by_default="true" />
<inspection_tool class="PyMandatoryEncodingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyMethodMayBeStaticInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PyMissingTypeHintsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyNestedDecoratorsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyNoneFunctionAssignmentInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="false" level="ERROR" enabled_by_default="false">
<option name="ignoredPackages">
<value>
<list size="0" />
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N806" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyRelativeImportInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyReturnFromInitInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PySetFunctionToLiteralInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyStringFormatInspection" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="PyTrailingSemicolonInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyUnnecessaryBackslashInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="pydantic.main.BaseModel.__root__" />
<option value="telethon.client.telegramclient.TelegramClient.__await__" />
<option value="royalnet.engineer.pda.implementations.base.PDAImplementation.register_partial" />
<option value="royalnet.engineer.pda.implementations.base.PDAImplementation.register_partialcommand" />
<option value="royalnet.engineer.pda.implementations.base.PDAImplementation.register_conversation" />
</list>
</option>
</inspection_tool>
<inspection_tool class="RegExpAnonymousGroup" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpEscapedMetaCharacter" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpOctalEscape" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpRedundantEscape" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpRedundantNestedCharacterClass" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpRepeatedSpace" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="RegExpUnexpectedAnchor" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="ShellCheck" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>

9
.idea/misc.xml Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ClojureProjectResolveSettings">
<currentScheme>IDE</currentScheme>
</component>
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/steffoweb.iml" filepath="$PROJECT_DIR$/.idea/steffoweb.iml" />
</modules>
</component>
</project>

View file

@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Start development server" type="js.build_tools.npm">
<configuration default="false" name="run" type="js.build_tools.npm" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>

9
.idea/steffoweb.iml Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View file

@ -1,12 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Build, publish and submit everything" type="js.build_tools.npm">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="all" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
</component>

View file

@ -1,28 +1,21 @@
# ![Steffoweb](src/assets/opengraph.png)
# ![Steffoweb](public/opengraph.png)
My personal website in [Preact](https://preactjs.com/).
![maintenance: actively-developed](https://img.shields.io/badge/maintenance-actively--developed-brightgreen)
My personal website in [React](https://reactjs.org/).
## Developing
### Running a local copy
If you want to run a local copy of the website, ensure [the latest `nodejs`](https://nodejs.org/it/) and `npm` are installed on your machine then run:
If for whatever reason you want to run a local copy of the website, ensure [the latest `nodejs`](https://nodejs.org/it/) and `yarn` are installed on your
machine, then run:
```bash
git clone https://github.com/Steffo99/uni.steffo.eu.git
cd "uni.steffo.eu"
npm install --dev
npm run start
git clone https://github.com/Steffo99/steffoweb.git
cd "steffoweb"
yarn
yarn run start
```
### Updating the website
To update the published website, bump up the version number in the package.json and run in the previously cloned folder:
```bash
npm run all
```
[GitHub Pages](https://pages.github.com/) will do the rest.
The website will automatically update based on the `master` branch.

View file

@ -1 +0,0 @@
steffo.eu

View file

View file

@ -1 +0,0 @@
steffo.eu

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1,15 +0,0 @@
{
"name": "Steffo's website",
"short_name": "Steffoweb",
"start_url": "/",
"display": "browser",
"orientation": "portrait",
"background_color": "#0d193b",
"theme_color": "#1c2b4f",
"icons": [
{
"src": "/favicon.ico",
"type": "image/x-icon"
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
/*! For license information please see bundle.ead42.esm.js.LICENSE.txt */

View file

@ -1 +0,0 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"bundle.ead42.esm.js","sourceRoot":""}

File diff suppressed because one or more lines are too long

View file

@ -1,16 +0,0 @@
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/*! showdown v 1.9.1 - 02-11-2019 */

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1 +0,0 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>steffoweb</title><meta name="viewport" content="width=device-width,initial-scale=1"><meta property="og:image" content="/assets/opengraph.png"><link href="/src/assets/favicon.ico" rel="icon" type="image/x-icon"><link href="/src/assets/favicon.ico" rel="shortcut icon" type="image/x-icon"><style>body{background-color:#0d193b}</style><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><link href="/bundle.d9419.css" rel="preload" as="style"><noscript><link rel="stylesheet" href="/bundle.d9419.css"></noscript><script>function $loadcss(u,m,l){(l=document.createElement('link')).rel='stylesheet';l.href=u;document.head.appendChild(l)}$loadcss("/bundle.d9419.css")</script></head><body><script type="__PREACT_CLI_DATA__">{"preRenderData":{"url":"/"}}</script><script nomodule="">!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script><script crossorigin="anonymous" src="/bundle.ead42.esm.js" type="module"></script><script nomodule="" src="/polyfills.f79b3.js"></script><script nomodule="" defer="defer" src="/bundle.fbd11.js"></script></body></html>

View file

@ -1,15 +0,0 @@
{
"name": "Steffo's website",
"short_name": "Steffoweb",
"start_url": "/",
"display": "browser",
"orientation": "portrait",
"background_color": "#0d193b",
"theme_color": "#1c2b4f",
"icons": [
{
"src": "/favicon.ico",
"type": "image/x-icon"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"polyfills.24554.esm.js","sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
{"url":"/"}

View file

@ -1 +0,0 @@
{"/":{"bundle.d9419.css":{"type":"style","weight":1},"bundle.ead42.esm.js":{"type":"script","weight":1}},"/Home":{"bundle.d9419.css":{"type":"style","weight":1},"bundle.ead42.esm.js":{"type":"script","weight":1},"route-Home.chunk.57d0a.esm.js":{"type":"script","weight":0.9},"route-Home.chunk.fec23.css":{"type":"style","weight":0.9}}}

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"5aVd":function(l){l.exports={menulist:"menulist__2Cmnq"}},T2GU:function(l,e,t){"use strict";(function(l){var n=t("5aVd"),i=t.n(n);e.a=function(e){return l("ul",{class:i.a.menulist},e.children)}}).call(this,t("hosL").h)},bJge:function(l,e,t){"use strict";t.r(e),function(l){t("mVAi");var n=t("mbOI"),i=t("YNhk"),a=t("T2GU"),u=t("GAEk"),o=t("WOcO");e.default=function(){return l("div",null,l(n.f,null,l(n.e,{title:"About me"},l("p",null,"I am ",l("b",null,"Stefano Pigozzi"),", a Computer Science student at ",l(i.a,{href:"http://unimore.it/"},"Unimore"),"!"),l("p",null,"In my free time, I enjoy ",l("b",null,"programming"),", ",l("b",null,"playing videogames")," and eating ",l("b",null,"gelato"),"!"))),l(n.f,null,l(n.e,{title:"My projects"},l(a.a,null,l("li",null,l(i.a,{href:"https://github.com/Steffo99/greed"},"greed"),l("small",null,", a customizable, multilanguage Telegram shop bot with Payments support")),l("li",null,l(i.a,{href:"https://github.com/Steffo99/royalnet"},"royalnet"),l("small",null,", a multipurpose bot and web framework for internet communities")),l("li",null,l(i.a,{href:"https://github.com/Steffo99/lihzahrd"},"lihzahrd")," ",l("small",null,"and")," ",l(i.a,{href:"https://github.com/Steffo99/flyingsnake"},"flyingsnake"),l("small",null,", Terraria utilities for Python")),l("li",null,l(i.a,{href:"https://github.com/Steffo99/bluelib"},"bluelib"),l("small",null,", the library my websites are based on")),l("li",null,l("small",null,"and many more on ",l(i.a,{href:"https://github.com/Steffo99"},"my GitHub profile"),"!")))),l(n.e,{title:"My accounts"},l(a.a,null,l("li",null,l(i.a,{rel:"me",href:"https://github.com/Steffo99"},"Steffo99")),l("li",null,l(i.a,{rel:"me",href:"mailto:ste.pigozzi@gmail.com"},"ste.pigozzi@gmail.com")),l("li",null,l(i.a,{rel:"me",href:"https://t.me/Steffo"},"@Steffo")),l("li",null,l(i.a,{rel:"me",href:"https://discordapp.com/channels/@me/77703771181817856/"},"Steffo#4036")),l("li",null,l(i.a,{rel:"me",href:"https://steamcommunity.com/id/steffo1999/"},"Steffo"))))),l(n.f,null,l(n.e,{title:"My websites"},l(a.a,null,l("li",null,l(i.a,{href:"https://uni.steffo.eu"},"Appuntiweb"),l("small",null,", where I publish my university notes")),l("li",null,l(i.a,{href:"https://ryg.steffo.eu"},"RYGweb"),l("small",null,", the website of a community I manage")))),l(n.e,{title:"My achievements"},l(a.a,null,l("li",null,l(n.a,{href:"https://ldjam.com/events/ludum-dare/46/keep-everything-alive-1"},l(u.a,{icon:o.b})," 9th place"),l("small",null," in the ",l("i",null,"Theme")," category at the")," ",l(i.a,{href:"https://en.wikipedia.org/wiki/Ludum_Dare"},"Ludum Dare 46")," ",l("small",null,"game jam")),l("li",null,l("span",{style:"color: lightgray"},l(u.a,{icon:o.o})," Silver medal"),l("small",null," at "),l(i.a,{href:"https://it.wikipedia.org/wiki/Olimpiadi_europee_delle_scienze"},"EUSO 2016"))))))}}.call(this,t("hosL").h)},mVAi:function(l){l.exports={container:"container__1UG8d",content:"content__bcm18"}}}]);
//# sourceMappingURL=route-Home.chunk.57d0a.esm.js.map

View file

@ -1 +0,0 @@
{"version":3,"sources":[],"names":[],"mappings":"","file":"route-Home.chunk.57d0a.esm.js","sourceRoot":""}

View file

@ -1,2 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"5aVd":function(l){l.exports={menulist:"menulist__2Cmnq"}},T2GU:function(l,e,t){"use strict";(function(l){var n=t("5aVd"),i=t.n(n);e.a=function(e){return l("ul",{class:i.a.menulist},e.children)}}).call(this,t("hosL").h)},bJge:function(l,e,t){"use strict";t.r(e),function(l){t("mVAi");var n=t("mbOI"),i=t("YNhk"),a=t("T2GU"),u=t("GAEk"),o=t("WOcO");e.default=function(){return l("div",null,l(n.f,null,l(n.e,{title:"About me"},l("p",null,"I am ",l("b",null,"Stefano Pigozzi"),", a Computer Science student at ",l(i.a,{href:"http://unimore.it/"},"Unimore"),"!"),l("p",null,"In my free time, I enjoy ",l("b",null,"programming"),", ",l("b",null,"playing videogames")," and eating ",l("b",null,"gelato"),"!"))),l(n.f,null,l(n.e,{title:"My projects"},l(a.a,null,l("li",null,l(i.a,{href:"https://github.com/Steffo99/greed"},"greed"),l("small",null,", a customizable, multilanguage Telegram shop bot with Payments support")),l("li",null,l(i.a,{href:"https://github.com/Steffo99/royalnet"},"royalnet"),l("small",null,", a multipurpose bot and web framework for internet communities")),l("li",null,l(i.a,{href:"https://github.com/Steffo99/lihzahrd"},"lihzahrd")," ",l("small",null,"and")," ",l(i.a,{href:"https://github.com/Steffo99/flyingsnake"},"flyingsnake"),l("small",null,", Terraria utilities for Python")),l("li",null,l(i.a,{href:"https://github.com/Steffo99/bluelib"},"bluelib"),l("small",null,", the library my websites are based on")),l("li",null,l("small",null,"and many more on ",l(i.a,{href:"https://github.com/Steffo99"},"my GitHub profile"),"!")))),l(n.e,{title:"My accounts"},l(a.a,null,l("li",null,l(i.a,{rel:"me",href:"https://github.com/Steffo99"},"Steffo99")),l("li",null,l(i.a,{rel:"me",href:"mailto:ste.pigozzi@gmail.com"},"ste.pigozzi@gmail.com")),l("li",null,l(i.a,{rel:"me",href:"https://t.me/Steffo"},"@Steffo")),l("li",null,l(i.a,{rel:"me",href:"https://discordapp.com/channels/@me/77703771181817856/"},"Steffo#4036")),l("li",null,l(i.a,{rel:"me",href:"https://steamcommunity.com/id/steffo1999/"},"Steffo"))))),l(n.f,null,l(n.e,{title:"My websites"},l(a.a,null,l("li",null,l(i.a,{href:"https://uni.steffo.eu"},"Appuntiweb"),l("small",null,", where I publish my university notes")),l("li",null,l(i.a,{href:"https://ryg.steffo.eu"},"RYGweb"),l("small",null,", the website of a community I manage")))),l(n.e,{title:"My achievements"},l(a.a,null,l("li",null,l(n.a,{href:"https://ldjam.com/events/ludum-dare/46/keep-everything-alive-1"},l(u.a,{icon:o.b})," 9th place"),l("small",null," in the ",l("i",null,"Theme")," category at the")," ",l(i.a,{href:"https://en.wikipedia.org/wiki/Ludum_Dare"},"Ludum Dare 46")," ",l("small",null,"game jam")),l("li",null,l("span",{style:"color: lightgray"},l(u.a,{icon:o.o})," Silver medal"),l("small",null," at "),l(i.a,{href:"https://it.wikipedia.org/wiki/Olimpiadi_europee_delle_scienze"},"EUSO 2016"))))))}}.call(this,t("hosL").h)},mVAi:function(l){l.exports={container:"container__1UG8d",content:"content__bcm18"}}}]);
//# sourceMappingURL=route-Home.chunk.57d0a.js.map

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
.container__1UG8d{display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:center;justify-content:center}.content__bcm18{margin-top:auto;margin-bottom:auto}.menulist__2Cmnq{font-size:large}.menulist__2Cmnq small{font-size:small}

View file

@ -1,21 +0,0 @@
self.addEventListener('fetch', function(event) {
var isPostRequest = event.request.method === 'POST';
event.respondWith(
fetch(event.request).catch(function(err) {
if (err instanceof TypeError) {
if (isPostRequest) {
// eslint-disable-next-line
console.log(
'⚛Preact CLI development tip: A POST request just failed. This might fail for your users as well due to a network error. It may be worth exploring the backgroundSync API.'
);
} else {
// eslint-disable-next-line
console.log(
'⚛Preact CLI development tip: A GET request just failed. This might fail for your users as well due to a network error. It may be worth adding runtimeCaching to your Service Worker.'
);
}
}
return err;
})
);
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

13096
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,56 +1,43 @@
{
"name": "steffoweb",
"version": "1.0.0",
"license": "AGPL-3.0-or-later",
"private": false,
"repository": "https://github.com/Steffo99/steffoweb",
"files": [
"src/**/*"
],
"source": "src/index.js",
"directories": {
"lib": "src"
},
"scripts": {
"start": "preact watch --template src/template.html",
"build": "echo \"Building the package...\" && preact build --template src/template.html --no-prerender --dest docs && git add docs",
"github": "echo \"Publishing to GitHub...\" && git add . && cross-env-shell git commit -m \"$npm_package_version\" && git push && cross-env-shell hub release create -m \"$npm_package_version\" \"$npm_package_version\"",
"sentry": "echo \"Sending data to Sentry...\" && cross-env-shell sentry-cli releases set-commits \"$npm_package_version\" --auto && cross-env-shell sentry-cli releases deploys \"$npm_package_version\" new --env production -n \"gh-pages\"",
"all": "npm run -s build && npm run -s github && npm publish && npm run -s sentry"
},
"devDependencies": {
"@sentry/webpack-plugin": "^1.11.1",
"cross-env": "^7.0.2",
"preact-cli": "^3.0.0-rc.14"
},
"name": "@steffo/steffoweb",
"version": "3.0.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.29",
"@fortawesome/free-brands-svg-icons": "^5.13.1",
"@fortawesome/free-regular-svg-icons": "^5.13.1",
"@fortawesome/free-solid-svg-icons": "^5.13.1",
"@fortawesome/react-fontawesome": "^0.1.11",
"@sentry/browser": "^5.19.0",
"@sentry/integrations": "^5.19.0",
"bluelib": "0.15.2",
"chart.js": "^2.9.3",
"css-loader": "^3.6.0",
"file-loader": "^5.1.0",
"history": "^4.10.1",
"less": "^3.11.3",
"less-loader": "^5.0.0",
"path-browserify": "^1.0.1",
"preact": "^10.4.5",
"preact-render-to-string": "^5.1.9",
"preact-router": "^3.2.1",
"process": "^0.11.10",
"react-chartjs-2": "^2.9.0",
"react-markdown": "^4.3.1",
"react-simplemde-editor": "^4.1.0",
"style-loader": "^1.1.4"
"@steffo/bluelib-react": "^3.0.4",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
"typescript": "^4.1.2",
"web-vitals": "^1.0.1"
},
"devDependencies": {
"@types/jest": "^26.0.15",
"@types/node": "^12.0.0",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

View file

@ -1,74 +0,0 @@
import SentryCliPlugin from "@sentry/webpack-plugin";
const DefinePlugin = require("webpack/lib/DefinePlugin");
const ProvidePlugin = require("webpack/lib/ProvidePlugin");
export default function (config, env, helpers) {
// noinspection JSUnresolvedVariable
config.resolve.alias["react"] = "preact/compat";
// noinspection JSUnresolvedVariable
config.resolve.alias["react-dom"] = "preact/compat";
// noinspection JSUnresolvedVariable
config.resolve.alias["path"] = "path-browserify";
config.module.rules.push(
{
test: /\.nojekyll$/,
loader: 'file-loader',
options: {
name: '.nojekyll'
}
}
);
config.module.rules.push(
{
test: /CNAME$/,
loader: 'file-loader',
options: {
name: 'CNAME'
}
}
);
config.module.rules.push(
{
test: /favicon\.ico$/,
loader: 'file-loader',
options: {
name: 'favicon.ico'
}
}
);
config.plugins[16].patterns.shift();
config.plugins[16].patterns.shift();
config.plugins[16].patterns.push({
from: "assets",
to: ""
});
config.plugins.push(
new DefinePlugin({"process.env.RELEASE": `"${process.env.npm_package_version}"`})
);
config.plugins.push(
new ProvidePlugin({"process": "process/browser"})
);
if (env.production) {
config.plugins.push(
new SentryCliPlugin({
include: './docs',
ignoreFile: ".gitignore",
configFile: '.sentryclirc',
release: process.env.npm_package_version,
})
)
}
// https://github.com/preactjs/preact-cli/issues/710
let critters = helpers.getPluginsByName(config, 'Critters')[0];
if (critters) {
critters.plugin.options.preload = 'js' // or some other option
}
};

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

43
public/index.html Normal file
View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

BIN
public/logo192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
public/logo512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

25
public/manifest.json Normal file
View file

@ -0,0 +1,25 @@
{
"short_name": "Steffoweb",
"name": "Steffo's website",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "browser",
"theme_color": "#0d193b",
"background_color": "#0d193b"
}

View file

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 214 KiB

View file

@ -1 +0,0 @@
[{"timestamp":1598981154329,"files":[{"filename":"sw-esm.js","previous":8482,"size":8482,"diff":0},{"filename":"sw.js","previous":8478,"size":8478,"diff":0},{"filename":"bundle.d9419.css","previous":2416,"size":2416,"diff":0},{"filename":"bundle.*****.esm.js","previous":385175,"size":385120,"diff":-55},{"filename":"polyfills.*****.esm.js","previous":2090,"size":2090,"diff":0},{"filename":"route-Home.chunk.fec23.css","previous":172,"size":172,"diff":0},{"filename":"route-Home.chunk.*****.esm.js","previous":1244,"size":1244,"diff":0},{"filename":"bundle.82d0f.js","previous":385723,"size":0,"diff":-385723},{"filename":"polyfills.51c23.js","previous":2090,"size":0,"diff":-2090},{"filename":"route-Home.chunk.57d0a.js","previous":1241,"size":1241,"diff":0},{"filename":"bundle.fbd11.js","previous":0,"size":385639,"diff":385639},{"filename":"polyfills.f79b3.js","previous":0,"size":2091,"diff":2091}]},{"timestamp":1598833793392,"files":[{"filename":"sw-esm.js","previous":741,"size":8482,"diff":7741},{"filename":"sw.js","previous":738,"size":8478,"diff":7740},{"filename":"bundle.fd797.css","previous":1854,"size":0,"diff":-1854},{"filename":"route-Home.chunk.654b0.esm.js","previous":332,"size":0,"diff":-332},{"filename":"route-Home.chunk.654b0.js","previous":330,"size":0,"diff":-330},{"filename":"bundle.28643.esm.js","previous":365850,"size":0,"diff":-365850},{"filename":"polyfills.260b8.esm.js","previous":2090,"size":0,"diff":-2090},{"filename":"bundle.eed59.js","previous":365997,"size":0,"diff":-365997},{"filename":"polyfills.ce45e.js","previous":2090,"size":0,"diff":-2090},{"filename":"bundle.d9419.css","previous":0,"size":2416,"diff":2416},{"filename":"bundle.*****.esm.js","previous":0,"size":385175,"diff":385175},{"filename":"polyfills.*****.esm.js","previous":0,"size":2090,"diff":2090},{"filename":"route-Home.chunk.fec23.css","previous":0,"size":172,"diff":172},{"filename":"route-Home.chunk.*****.esm.js","previous":0,"size":1244,"diff":1244},{"filename":"bundle.82d0f.js","previous":0,"size":385723,"diff":385723},{"filename":"polyfills.51c23.js","previous":0,"size":2090,"diff":2090},{"filename":"route-Home.chunk.57d0a.js","previous":0,"size":1241,"diff":1241}]},{"timestamp":1593537360450,"files":[{"filename":"sw-esm.js","previous":741,"size":741,"diff":0},{"filename":"sw.js","previous":738,"size":738,"diff":0},{"filename":"bundle.fd797.css","previous":1854,"size":1854,"diff":0},{"filename":"bundle.9206d.esm.js","previous":365849,"size":0,"diff":-365849},{"filename":"polyfills.e99f0.esm.js","previous":2090,"size":0,"diff":-2090},{"filename":"route-Home.chunk.654b0.esm.js","previous":332,"size":332,"diff":0},{"filename":"bundle.23994.js","previous":365998,"size":0,"diff":-365998},{"filename":"polyfills.5a9ad.js","previous":2091,"size":0,"diff":-2091},{"filename":"route-Home.chunk.654b0.js","previous":330,"size":330,"diff":0},{"filename":"bundle.28643.esm.js","previous":0,"size":365850,"diff":365850},{"filename":"polyfills.260b8.esm.js","previous":0,"size":2090,"diff":2090},{"filename":"bundle.eed59.js","previous":0,"size":365997,"diff":365997},{"filename":"polyfills.ce45e.js","previous":0,"size":2090,"diff":2090}]},{"timestamp":1593537127919,"files":[{"filename":"sw-esm.js","previous":0,"size":741,"diff":741},{"filename":"sw.js","previous":0,"size":738,"diff":738},{"filename":"bundle.fd797.css","previous":0,"size":1854,"diff":1854},{"filename":"bundle.9206d.esm.js","previous":0,"size":365849,"diff":365849},{"filename":"polyfills.e99f0.esm.js","previous":0,"size":2090,"diff":2090},{"filename":"route-Home.chunk.654b0.esm.js","previous":0,"size":332,"diff":332},{"filename":"bundle.23994.js","previous":0,"size":365998,"diff":365998},{"filename":"polyfills.5a9ad.js","previous":0,"size":2091,"diff":2091},{"filename":"route-Home.chunk.654b0.js","previous":0,"size":330,"diff":330}]}]

52
src/App.tsx Normal file
View file

@ -0,0 +1,52 @@
import React from 'react';
import {Bluelib, LayoutThreeCol, Heading, Chapter, Box, BringAttention as B, Anchor, ListUnordered as UL} from "@steffo/bluelib-react";
function App() {
return (
<Bluelib theme={"royalblue"}>
<LayoutThreeCol>
<LayoutThreeCol.Center>
<Heading level={1}>
<B>Steffo</B>'s website
</Heading>
<Chapter>
<Box>
<Heading level={3}>
About me
</Heading>
<p>
I'm <B>Stefano Pigozzi</B>, a Computer Science student at <Anchor href={"https://www.unimore.it"}>Unimore</Anchor>!
</p>
<p>
I develop and maintain many <B>open source</B> software projects, such as websites, chat bots, libraries, videogames and mods.
</p>
</Box>
</Chapter>
<Chapter>
<Box>
<Heading level={3}>
Some of my projects
</Heading>
<UL>
<UL.Item>
<Anchor href={"https://github.com/Steffo99/greed"}>Greed</Anchor>, a customizable, multilanguage Telegram shop bot with Payments support
</UL.Item>
<UL.Item>
<Anchor href={"https://github.com/Steffo99/bluelib"}>Bluelib</Anchor> and <Anchor href={"https://github.com/Steffo99/bluelib-react"}>Bluelib React</Anchor>, the libraries this website is based on
</UL.Item>
<UL.Item>
<Anchor href={"https://github.com/Steffo99/lihzahrd"}>Lihzahrd</Anchor>, a Python library to parse Terraria worlds, and <Anchor href={"https://github.com/Steffo99/flyingsnake"}>Flyingsnake</Anchor>, a map renderer based on it
</UL.Item>
<UL.Item>
<Anchor href={"https://github.com/RYGhub/bobbot"}>Bob</Anchor>, a Discord bot that allows server members to create temporary voice channels
</UL.Item>
</UL>
</Box>
</Chapter>
</LayoutThreeCol.Center>
</LayoutThreeCol>
</Bluelib>
);
}
export default App;

View file

View file

@ -1 +0,0 @@
steffo.eu

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1,15 +0,0 @@
{
"name": "Steffo's website",
"short_name": "Steffoweb",
"start_url": "/",
"display": "browser",
"orientation": "portrait",
"background_color": "#0d193b",
"theme_color": "#1c2b4f",
"icons": [
{
"src": "/favicon.ico",
"type": "image/x-icon"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

View file

@ -1,10 +0,0 @@
import style from "./ErrorAbbr.less"
import {faExclamationCircle} from '@fortawesome/free-solid-svg-icons';
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
export default function (props) {
return (
<abbr class={style.errorabbr} title={props.error.toString()}><FontAwesomeIcon
icon={faExclamationCircle}/> {props.children}</abbr>
);
}

View file

@ -1,5 +0,0 @@
@import "../styles/constants.less";
.errorabbr {
color: @red;
}

View file

@ -1,15 +0,0 @@
import style from './Footer.less';
import {concatClass} from 'bluelib';
import Link from "./Link";
export default function(props) {
return (
<div class={concatClass(style.footer, props.class)}>
© {new Date().getFullYear()} - Stefano Pigozzi -&nbsp;
<Link href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</Link>
&nbsp;-&nbsp;
<Link href="https://github.com/Steffo99/uni.steffo.eu">steffo.eu {process.env.RELEASE}</Link>
</div>
);
}

View file

@ -1,8 +0,0 @@
@import "../styles/constants.less";
.footer {
margin-top: 8px;
color: @accent;
text-align: center;
font-size: x-small;
}

View file

@ -1,97 +0,0 @@
import ErrorAbbr from './ErrorAbbr';
import {
faDiscord,
faGithub, faGoogleDrive,
faRedditAlien,
faSteam,
faTelegram,
faTwitch,
faTwitter,
faWikipediaW,
faYoutube
} from '@fortawesome/free-brands-svg-icons';
import {
faDownload,
faEnvelope,
faExternalLinkAlt,
faLockOpen,
faMagnet,
faMugHot,
faQuestion
} from '@fortawesome/free-solid-svg-icons';
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
import {BaseLink} from 'bluelib';
const icons = Object.freeze({
"github.com": faGithub,
"en.wikipedia.org": faWikipediaW,
"it.wikipedia.org": faWikipediaW,
"old.reddit.com": faRedditAlien,
"new.reddit.com": faRedditAlien,
"www.reddit.com": faRedditAlien,
"reddit.com": faRedditAlien,
"twitch.tv": faTwitch,
"twitter.com": faTwitter,
"www.youtube.com": faYoutube,
"youtube.com": faYoutube,
"youtu.be": faYoutube,
"t.me": faTelegram,
"steampowered.com": faSteam,
"steamcommunity.com": faSteam,
"discord.gg": faDiscord,
"discordapp.com": faDiscord,
"discord.com": faDiscord,
"ko-fi.com": faMugHot,
"drive.google.com": faGoogleDrive,
"ryg.s3.fr-par.scw.cloud": faDownload,
});
export default function (props) {
// Parse URL
let url;
try {
url = new URL(props.href, window.location.href)
} catch (e) {
return (
<ErrorAbbr error={e}>{props.children}</ErrorAbbr>
);
}
// Icon
let iconEl = null;
if (props.icon !== false) {
let iconObj;
if (url.host === window.location.host) {
iconObj = null;
} else if (url.protocol === "http:") {
iconObj = faLockOpen;
} else if (url.protocol === "mailto:") {
iconObj = faEnvelope;
} else if (url.protocol === "https:") {
iconObj = icons[url.host];
if (iconObj === undefined) {
iconObj = faExternalLinkAlt;
}
} else if (url.protocol === "magnet:") {
iconObj = faMagnet;
} else {
iconObj = faQuestion;
}
iconEl = <span><FontAwesomeIcon icon={iconObj}/>&nbsp;</span>;
}
return <BaseLink {...props}>{iconEl}{props.children}</BaseLink>;
}

View file

@ -1,9 +0,0 @@
import style from "./MenuList.less";
export default function(props) {
return (
<ul class={style.menulist}>
{props.children}
</ul>
)
}

View file

@ -1,7 +0,0 @@
.menulist {
font-size: large;
small {
font-size: small;
}
}

10
src/index.css Normal file
View file

@ -0,0 +1,10 @@
body {
margin: 0;
min-height: 100vh;
background-color: #0d193b;
color: #a0ccff;
}
body > * {
min-height: 100vh;
}

View file

@ -1,63 +0,0 @@
// Import debugging tools
import {useState} from "preact/hooks";
let Sentry = null;
if(process.env.NODE_ENV === "development") {
console.debug("Initializing Preact Debugger...")
require("preact/debug");
}
else if(process.env.NODE_ENV === "production") {
console.debug("Initializing Sentry...")
Sentry = require("@sentry/browser");
let SentryIntegrations = require("@sentry/integrations")
// noinspection JSUnresolvedVariable
Sentry.init({
// TODO: Sentry DSN goes here
dsn: "https://05965b0d953049f493ddca387c1e4c90@o40131.ingest.sentry.io/5300173",
release: process.env.RELEASE,
environment: "production",
beforeSend(event, hint) {
if (event.exception) {
Sentry.showReportDialog({ eventId: event.event_id });
}
return event;
}
});
}
import Home from "./routes/Home";
// noinspection ES6UnusedImports
import "bluelib/dist/index.css";
import {BasicContainer, CurrentPage, Bluelib, BaseLink} from 'bluelib';
import Footer from "./components/Footer";
import Router from "preact-router";
import {createHashHistory} from "history";
// noinspection JSUnusedGlobalSymbols
export default function (props) {
let [currentPage, setCurrentPage] = useState(window.location.hash.substr(1));
const onPageChange = (event) => {
setCurrentPage(event.url);
};
return (
<CurrentPage.Provider value={currentPage}>
<Bluelib>
<h1>
<BaseLink href={"/"}>Steffo</BaseLink>'s website
</h1>
<BasicContainer>
<Router history={createHashHistory()} onChange={onPageChange}>
<Home path={"/"}/>
</Router>
</BasicContainer>
<Footer/>
</Bluelib>
</CurrentPage.Provider>
);
}

17
src/index.tsx Normal file
View file

@ -0,0 +1,17 @@
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById('root')
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

15
src/reportWebVitals.ts Normal file
View file

@ -0,0 +1,15 @@
import { ReportHandler } from 'web-vitals';
const reportWebVitals = (onPerfEntry?: ReportHandler) => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;

View file

@ -1,57 +0,0 @@
import style from "./Home.less";
import {BaseLink, Panel, Section} from "bluelib";
import Link from "../components/Link";
import MenuList from "../components/MenuList";
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
import {faAward, faMedal} from "@fortawesome/free-solid-svg-icons";
export default function (props) {
return (
<div>
<Section>
<Panel title={"About me"}>
<p>
I am <b>Stefano Pigozzi</b>, a Computer Science student at <Link href={"http://unimore.it/"}>Unimore</Link>!
</p>
<p>
In my free time, I enjoy <b>programming</b>, <b>playing videogames</b> and eating <b>gelato</b>!
</p>
</Panel>
</Section>
<Section>
<Panel title={"My projects"}>
<MenuList>
<li><Link href={"https://github.com/Steffo99/greed"}>greed</Link><small>, a customizable, multilanguage Telegram shop bot with Payments support</small></li>
<li><Link href={"https://github.com/Steffo99/royalnet"}>royalnet</Link><small>, a multipurpose bot and web framework for internet communities</small></li>
<li><Link href={"https://github.com/Steffo99/lihzahrd"}>lihzahrd</Link> <small>and</small> <Link href={"https://github.com/Steffo99/flyingsnake"}>flyingsnake</Link><small>, Terraria utilities for Python</small></li>
<li><Link href={"https://github.com/Steffo99/bluelib"}>bluelib</Link><small>, the library my websites are based on</small></li>
<li><small>and many more on <Link href={"https://github.com/Steffo99"}>my GitHub profile</Link>!</small></li>
</MenuList>
</Panel>
<Panel title={"My accounts"}>
<MenuList>
<li><Link rel={"me"} href={"https://github.com/Steffo99"}>Steffo99</Link></li>
<li><Link rel={"me"} href={"mailto:ste.pigozzi@gmail.com"}>ste.pigozzi@gmail.com</Link></li>
<li><Link rel={"me"} href={"https://t.me/Steffo"}>@Steffo</Link></li>
<li><Link rel={"me"} href={"https://discordapp.com/channels/@me/77703771181817856/"}>Steffo#4036</Link></li>
<li><Link rel={"me"} href={"https://steamcommunity.com/id/steffo1999/"}>Steffo</Link></li>
</MenuList>
</Panel>
</Section>
<Section>
<Panel title={"My websites"}>
<MenuList>
<li><Link href={"https://uni.steffo.eu"}>Appuntiweb</Link><small>, where I publish my university notes</small></li>
<li><Link href={"https://ryg.steffo.eu"}>RYGweb</Link><small>, the website of a community I manage</small></li>
</MenuList>
</Panel>
<Panel title={"My achievements"}>
<MenuList>
<li><BaseLink href={"https://ldjam.com/events/ludum-dare/46/keep-everything-alive-1"}><FontAwesomeIcon icon={faAward}/> 9th place</BaseLink><small> in the <i>Theme</i> category at the</small> <Link href={"https://en.wikipedia.org/wiki/Ludum_Dare"}>Ludum Dare 46</Link> <small>game jam</small></li>
<li><span style={"color: lightgray"}><FontAwesomeIcon icon={faMedal}/> Silver medal</span><small> at </small><Link href={"https://it.wikipedia.org/wiki/Olimpiadi_europee_delle_scienze"}>EUSO 2016</Link></li>
</MenuList>
</Panel>
</Section>
</div>
);
}

View file

@ -1,11 +0,0 @@
.container {
display: flex;
align-content: center;
justify-content: center;
}
.content {
margin-top: auto;
margin-bottom: auto;
}

View file

@ -1,57 +0,0 @@
@bg: #0d193b;
@bg-light: #142245;
@bg-lighter: #1c2b4f;
@bg-lightest: #233358;
@fg: #a0ccff;
@accent: #ffffff;
@link: #00caca;
@linkhover: #00ffff;
@linkactive: #a0ffff;
@plus: fade(@fg, 5%);
@plusplus: fade(@fg, 10%);
@plusplusplus: fade(@fg, 15%);
@plusplusplusplus: fade(@fg, 20%);
@red: #ff7d7d;
@orange: #ffbb7d;
@yellow: #ffff7d;
@lime: #7dff7d;
@cyan: #7dffff;
@blue: #7d7dff;
@magenta: #ff7dff;
@disabledfg: #808080;
@disabledbg: #1f1f1f;
@example: #d3a1ff;
.red {
color: @red;
}
.orange {
color: @orange;
}
.yellow {
color: @yellow;
}
.lime {
color: @lime;
}
.cyan {
color: @cyan;
}
.blue {
color: @blue;
}
.magenta {
color: @magenta;
}

View file

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><% preact.title %></title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta property="og:image" content="/assets/opengraph.png" />
<link href="/src/assets/favicon.ico" rel="icon" type="image/x-icon"/>
<link href="/src/assets/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
<style>
body {
background-color: #0d193b;
}
</style>
<% preact.headEnd %>
</head>
<body>
<% preact.bodyEnd %>
</body>
</html>

26
tsconfig.json Normal file
View file

@ -0,0 +1,26 @@
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": [
"src"
]
}

11354
yarn.lock Normal file

File diff suppressed because it is too large Load diff