Git Product home page Git Product logo

calvang / calvang-github-pages-home Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 68.09 MB

Source code for the main site of my Github pages. Includes modules for an integrated website terminal and a Markdown powered personal blog.

Home Page: https://calvang.github.io/

License: GNU General Public License v3.0

HTML 10.98% CSS 7.98% TypeScript 72.82% Shell 0.29% Python 6.70% JavaScript 1.22%
github-pages terminal-emulator markdown-blog react typescript

calvang-github-pages-home's Introduction

calvang.github.io

Website GitHub GitHub package.json version GitHub last commit

Github pages personal website for Calvin Huang.

Description

The client-side web app built using React and Typescript. Page information and data are indexed in src/resources/data. The dynamic implementation uses REST API calls to a basic Flask backend that retrieves project and home page data. The Github Pages version of this site does not have dynamic server-side processing, so it simply loads the data on rendering rather than fetching it from the API.

Features

Integrated Terminal

Draggable+resizable terminal for navigation and finding information. For this feature, I attempted to emulate the desktop Linux terminal experience with a floating terminal that allows nagivation of the website and contains a few easter eggs!

View this feature at: https://github.com/calvang/calvang-github-pages-home/tree/master/src/components/DraggableTerminal

Markdown Blog

Blog generated from parsing Markdown files with the markdown-to-jsx library and rendering the JSX output dynamically. Formatting is adapted to fit the theme of the website. Additional support for Facebook likes and comments are included.

View this feature at: https://github.com/calvang/calvang-github-pages-home/tree/master/src/views/Blog

Progressiveness

This web app is optimized for near-native performance on both desktop and mobile devices. To achieve this, the site utilizes next-gen image formats and a service worker to maximize online and offline performance. In accordance with Google guidelines, these are the Google Lighthouse scores:

Automatic and Parallax Scrolling

The background images on this website feature parallax scrolling, meaning images are fixed while the page scrolls. This applies a modern look that is complemented by the automatic scrolling. While home page in particular does have a dotted nav bar for convenience, an automatic scrolling functionality has been implemented from the ground up to automate navigation between page sections. However, this is disabled on mobile devices because of their decreased readability and the increased page dimensions.

Serverless Frontend and Hash Routing

Instead of utilizing browser-routing, React routes are accessed and rendered through Hash Routing, which is necessary due to the static limitations of Gtihub Pages. As a result, the application runs on the client machine aside from the backend API.

calvang-github-pages-home's People

Contributors

calvang avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar

calvang-github-pages-home's Issues

Any page other than Home throws Type Error

When loading the home page first, navigating to any other page without reloading cases a Type Error.

Potential Causes

  • Auto-scrolling loop continues running even after navigating away from the page
  • Since the render function is not running, throws type error when trying to access component elements

Extra slash in path

To reproduce:
cd /Blog/<one of the posts>
cd ..
The blog path will be /#//Blog

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.