60 lines
3.8 KiB
Markdown
60 lines
3.8 KiB
Markdown
# Documentation
|
|
|
|
## Intro
|
|
|
|
This documents aims to document obscure things like the CSS2 URL format and other stuff for its usage in GFonts and related projects.
|
|
|
|
## Self-hosting
|
|
|
|
### Google Fonts Mirror
|
|
|
|
Creating a Google Fonts mirror is an easy task. You need the following:
|
|
1. A reliable server (e.g. a VPS).
|
|
2. [git](https://git-scm.com/).
|
|
3. A way to host the files ([Caddy](https://caddyserver.com/), [NGINX](https://www.nginx.com/), [Apache HTTP Server](https://httpd.apache.org/), etc.)
|
|
4. (Technically this is not a requirement, but you should use one anyway) A domain.
|
|
|
|
Then follow the following steps:
|
|
1. Run `git clone https://github.com/google/fonts --branch main --single-branch --depth 1 [folder]`
|
|
* `[folder]` should be replaced with the folder where you will save the mirror.
|
|
* This is just a [shallow clone](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---depthltdepthgt)
|
|
of the repo. You can just `git clone` the repo, but it's not recommended due to disk and bandwidth usage.
|
|
2. Serve the files somewhere.
|
|
* [Caddy](https://caddyserver.com/docs/quick-starts/static-files)
|
|
* [NGINX](https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/)
|
|
* [Apache](https://askubuntu.com/questions/556858/how-to-set-up-a-simple-file-server)
|
|
3. Check that the mirror works by accessing the `[root]/README.md`
|
|
* `[root]` should be replaced with your domain + the path where it's served (for example, [cdn.sofiaritz.com/fonts](https://cdn.sofiaritz.com/fonts)).
|
|
* If everything is working, a README.md file like [this one](https://github.com/google/fonts/blob/main/README.md) should be downloaded.
|
|
4. (Optional) Create a `index.html` file.
|
|
* You can create a `index.html` file with something you want to tell about the mirror at `[folder]`.
|
|
* For example, check [cdn.sofiaritz.com/fonts](https://cdn.sofiaritz.com/fonts).
|
|
* I use that page to teach the users about the dangers of services like Google Fonts, how I handle personal data
|
|
and my contact information.
|
|
|
|
### GFonts Interface
|
|
|
|
1. Run `git clone https://git.sofiaritz.com/GFonts/gfonts-interface`
|
|
2. Run `yarn build`.
|
|
3. Follow step 2 of [Self-hosting § Google Fonts Mirror](#google-fonts-mirror) with the `dist/` folder.
|
|
|
|
## CSS2 format
|
|
|
|
The [CSS2 format documentation](https://developers.google.com/fonts/docs/css2) is widely available, this helps implementors like us to create compatible APIs and libraries. [Archived](https://web.archive.org/web/20230518105635/https://developers.google.com/fonts/docs/css2)
|
|
|
|
## Projects
|
|
There are currently 2 working projects under the GFonts umbrella:
|
|
* [GFonts Interface](https://git.sofiaritz.com/GFonts/gfonts-interface). A simple way to generate CSS files from your Google Fonts URLs.
|
|
* [gfonts-js-library](https://git.sofiaritz.com/GFonts/gfonts-js-library). Everything related to metadata retrieval, CSS2 parsing, etc. for the interface is here.
|
|
|
|
### Future projects
|
|
* GFonts API. A CSS2-compatible API to improve the _learning curve_ of GFonts when coming from Google Fonts.
|
|
* [gfonts-rust-library](https://git.sofiaritz.com/GFonts/gfonts-rust-library). Everything related to metadata retrieval, CSS2 parsing, etc. for the CSS2 Rust API is here.
|
|
|
|
## Licensing
|
|
|
|
You are free to use this documentation under the [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/). When attributing this work, you should use the following:
|
|
|
|
> "[GFonts Documentation](https://git.sofiaritz.com/GFonts/documentation)" by [Sofía Aritz](https://sofiaritz.com) and [GFonts contributors](https://git.sofiaritz.com/GFonts/documentation/activity) is licensed under [CC BY 4.0 License](https://creativecommons.org/licenses/by/4.0/).
|
|
|
|
You do not need to attribute this work when you're doing things like implementing behaviour described here and things like that (though it's appreciated :p) |