1y is a short URL manager built with Eleventy (a.k.a. 11ty), the great JavaScript/Node based Static Site Generator.
This is not a URL "shortener", as it doesn't process anything. Short and long versions of URLs are managed manually, so that short URLs can be "beautiful".
1y generates redirection rules from your set of data, each URL being stored in a Markdown file:
- the
fileSlug
of the Markdown file (the filename without the extension in 11ty language) is the short URL. For example, the Markdown filenho.md
you'll find in this template repository is used to create the https://<your-short-domain>/nho short URL. - the long URL is stored in the file's Front Matter, for example here the
nho.md
file only contains these 3 lines:--- url: https://nicolas-hoizey.com/ ---
So for this example, when you go to https://<your-short-domain>/nho, it redirects you to https://nicolas-hoizey.com/.
Redirection rules are generated in 4 formats to ease usage on different environments:
- Apache HTTP server with Alias module in a
.htaccess
file - Apache HTTP server with Rewrite module (less efficient) in the same
.htaccess
file - Netlify hosting with redirects in a
_redirects
file - HTML pages with both HTML redirect (
<meta>
tag) and JavaScript Redirect. This is only meant as a last resort, only there if previous formats don't work. Your HTTP server needs to be able to respond to https://<your-short-domain>/nho with this actual ressource: https://<your-short-domain>/nho/index.html
You don't have to deal with any settings to chose which one to use, all 4 formats are generated at once.
This repository is intended to be used as a template for creating your own repository.
Clicking the button above will:
- create a new repository in your own GitHub account with 1y code
- and deploy a copy of this new repository to your Netlify account (you can create an account during this process if you don't have one).
Each time you push changes to your Github repository (or add files directly with Github's Web interface), Netlify will build the new redirection files.
- Click the Use this template green button in Github interface to create your own 1y repository in your Github account
- Clone or download the new repository to your local computer
- (optional) If you don't have
npm
yet, install npm - Install 1y dependencies with
npm install
- Add new short URLs as Markdown files in the
urls/
folder - Generate the redirection files with this command:
npm run build
Generated files to deploy are in the _site
folder.
You are welcome and encouraged to make changes to this website by submitting pull requests!
Copyright (c) 2020-present, Nicolas Hoizey