no
citrusui / me Goto Github PK
View Code? Open in Web Editor NEWThe open source code that powers citrusui.me.
Home Page: https://citrusui.me
License: MIT License
The open source code that powers citrusui.me.
Home Page: https://citrusui.me
License: MIT License
Leaving placeholders for broken links is nice, but not particularly useful. For example, I'd like to add proper links to old versions of my website (/about, /repo) dating back to as early as 2015. I don't plan on adding this old content to the repository directly, as it will make git pushes and pulls much slower. Instead, I will add the old content via a submodule or two, which will only be fetched when explicitly requested.
Most of this work could be implemented in #4. However, special directories like /repo and /packages will have to be served directly, rather than a separate subdomain. I do not like adding redirects unless they are absolutely necessary.
Firebase is awesome, don't get me wrong -- but it'd be even more awesome if I could deploy to S3 any time I push a commit to this repo. I'm thinking commit messages containing [push]
will be routed through S3.
Still new to AWS, but it shouldn't be that hard! Just need to get off my lazy butt
I'd like to implement a script of some sort that generates extremely small web pages -- they should only contain HTML. Also, each page should have a meta viewport so they scale nicely on mobile devices.
So: no CSS, no JavaScript, and no images either. It won't look pretty, but it will load insanely fast (hopefully), and not obstruct the body content with the loading of scripts of CSS animations.
Inspired by https://danluu.com/web-bloat/.
Porting the blog
directory back to a submodule has a few advantages and disadvantages:
core repo
refers to https://github.com/citrusui/me, and blog
refers to https://github.com/citrusui/blog.git clone
'score repo
and blog
have different goals: The former incorporates most of the functionality, and the latter provides detailed information in Markdown. Opening a pull request or issue would hopefully be directed to the core repo
or the blog
repo.blog
would no longer be cluttering up the core repo
, and vice-versa._includes
and _layouts
. Should blog
have duplicates of these folders in its own repo, or be strictly Markdown files? Would it make sense to be able to jekyll serve
the standalone blog
repo?blog
, and one with blog
to make sure all goes well.So far, lazyload seems to be working well in reducing page load times. However, using lazyload also means experiencing frequent page reflows. As a result, reading long paragraphs of text on these pages becomes a pain for the user.
Two considerations:
generate smaller “thumbnail” versions of images (will consume more develop time and increase page load time)
add a basic placeholder image, ideally a transparent (white) background with a camera or picture glyph in the middle
Idea number 2 seems the most ideal. However, the placeholder will need to exactly match the dimensions of the original image once it has finished loading. Perhaps the placeholder could be placed inline, as a PNG with alpha transparency. Or, it could be placed inline as a base-64 encoded SVG. Either way, the issue remains: how do I ensure the placeholder matches the original image dimensions? Specifying the dimensions manually is tedious and unrealistic. It is crucial that the loading of page content does not cause the page to “jump up” or scroll up unexpectedly -- especially when the page is reloaded. Could this be resolved through extra styling of <img>
or <div>
?
I’ve been making a lot of random pictures and digital designs for the past few months, and I figure it’s time to show them off.
Priorities are:
Later on, I might implement categories to distinguish specific content. As an example, RAW photos could get their own category (or tag, if that ends up being semantically correct)
As I'm no longer using Jekyll on GitHub Pages, I'm free to use any plugins that I desire. AMP may be severely lacking in features, but it does load insanely fast.
This may depend on citrusui/poole#2. I need to do some more in-depth research about Hugo plugins.
Node is far more complicated than a regular Jekyll/Hugo setup. There's no good reason why I need to download hundreds of megabytes of code just to build and publish my site.
Unfortunately, it seems that firebase-tools
is only compatible with Node. This means I need to either find a hack to use Firebase without Node, or drop Firebase completely and use a service like Netlify.
I'd like to add full support for IPFS/IPNS on my subdomain https://ipfs.citrusui.me.
However, IPFS is still in alpha, (especially IPNS) and is not yet suitable for production. I'd like to implement a simple static site on the aforementioned subdomain that hosts links to hashes on https://ipfs.io.
My initial thought is running a build script that appends hashes to a JSON file, perhaps called contents.json
. Then it will take the output from the JSON, maybe using jq, and produce a single page (index.html) or a set of folders with pages, like 2017/01/23/index.html
and so on.
And, of course, there should be an about page. I'd prefer it to be separate from the index as its own file.
[Codename: Sunstreak]
This is an attempt to completely ditch Ruby and Jekyll in favor of Node.js.
Installing Ruby, Jekyll, and other gems will no longer become neccesary. macOS ships with an outdated Ruby, and so does Ubuntu. rvm fixes these problems, but does not fix the fragmentation/differences between Node and Ruby libraries/tools. My reasoning is discussed further below.
Jekyll is not as fast as I'd like it to be. Sure, it's not slow, but it isn't instant either. I've mentioned Hugo on citrusui/poole#2, which seems to be much faster (especially for directories with 1000s of pages.) Hugo is written in Go, but does not need to be compiled for use; you can use any of the binaries on the GitHub Releases or the unofficial hugo-cli module on npm.
Express.js is something I've been looking at. A minor pet peeve of mine is the constant addition of trailing slashes at the end of my URLs. Luckily, Express (by default) treats both URLs (slash and no slash) as the same page.
I have to figure out the backend and hosting stuff. My initial thought was to use https://now.sh, but it unfortunately costs to use custom domains. Firebase Hosting only handles static files, and Nodejitsu is now part of GoDaddy (sigh.) Heroku seems to be a fair compromise, although the free dynos hours may be the death of me (unless I move twbs-listr to a different host, in which case everything should be OK.)
Initially, I may need to manually push changes to my website from my local machine. It'd be rad to push the changes after the website passes CI tests; I believe Heroku is capable of doing this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.