Add dockerfile
This commit is contained in:
parent
7ea5604d56
commit
583ba7321b
3 changed files with 53 additions and 6 deletions
24
Dockerfile
Normal file
24
Dockerfile
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
FROM python:3.11-slim
|
||||||
|
|
||||||
|
# Install system dependencies including FontForge
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y fontforge \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy the project files
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install Python dependencies
|
||||||
|
RUN pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Create volume mount point for output
|
||||||
|
VOLUME /app/fonts
|
||||||
|
|
||||||
|
# Default build arguments
|
||||||
|
ENV BUILD_ARGS=""
|
||||||
|
|
||||||
|
# Run the build script with optional arguments
|
||||||
|
ENTRYPOINT ["sh", "-c", "python build.py $BUILD_ARGS"]
|
34
README.md
34
README.md
|
@ -51,18 +51,40 @@ You can checkout old version [here](https://github.com/subframe7536/maple-font/t
|
||||||
|
|
||||||
### Font Hint
|
### Font Hint
|
||||||
|
|
||||||
- *`hinted font`* is used for low resolution screen to have better render effect. From my experience, if your screen resolution is lower or equal than 1080P, it is recommended to use "hinted font".
|
- *`Hinted font`* is used for low resolution screen to have better render effect. From my experience, if your screen resolution is lower or equal than 1080P, it is recommended to use "hinted font".
|
||||||
- In this case, you can choose `MapleMono-TTF-AutoHint` / `MapleMono-NF` / `MapleMono-NF-CN`, etc.
|
- In this case, you can choose `MapleMono-TTF-AutoHint` / `MapleMono-NF` / `MapleMono-NF-CN`, etc.
|
||||||
- *`unhinted font`* is used for high resolution screen (e.g. for Mac), when using "hinted font", it will blur your text or make it looks weird.
|
- *`Unhinted font`* is used for high resolution screen (e.g. for Mac), when using "hinted font", it will blur your text or make it looks weird.
|
||||||
- In this case, you can choose `MapleMono-OTF` / `MapleMono-TTF` / `MapleMono-NF-unhinted` / `MapleMono-NF-CN-unhinted`, etc.
|
- In this case, you can choose `MapleMono-OTF` / `MapleMono-TTF` / `MapleMono-NF-unhinted` / `MapleMono-NF-CN-unhinted`, etc.
|
||||||
|
|
||||||
## Custom Build
|
## Custom Build
|
||||||
|
|
||||||
|
### Github Actions
|
||||||
|
|
||||||
|
You can use [Github Actions](https://github.com/subframe7536/maple-font/actions) to build the font.
|
||||||
|
|
||||||
|
1. Fork the repo
|
||||||
|
2. (Optional) Change the content in `config.json`
|
||||||
|
3. Go to Actions tab
|
||||||
|
4. Click on `Custom Build` menu item on the left
|
||||||
|
5. Click on `Run workflow` button with options setup
|
||||||
|
6. Wait for the build to finish
|
||||||
|
7. Download the font archives from Releases
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/subframe7536/maple-font --depth 1 -b variable
|
||||||
|
docker build -t maple-font .
|
||||||
|
docker run -v "$(pwd)/fonts:/app/fonts" -e BUILD_ARGS="--normal" maple-font
|
||||||
|
```
|
||||||
|
|
||||||
|
### Local
|
||||||
|
|
||||||
Clone the repo and run on your local machine. Make sure you have `python3` and `pip` installed
|
Clone the repo and run on your local machine. Make sure you have `python3` and `pip` installed
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone https://github.com/subframe7536/maple-font --depth 1 -b variable
|
git clone https://github.com/subframe7536/maple-font --depth 1 -b variable
|
||||||
pip install foundrytools-cli
|
pip install -r requirements.txt
|
||||||
python build.py
|
python build.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -70,7 +92,7 @@ python build.py
|
||||||
|
|
||||||
If you have trouble installing the dependencies, just create a new Github codespace on `variable` branch and run the commands there
|
If you have trouble installing the dependencies, just create a new Github codespace on `variable` branch and run the commands there
|
||||||
|
|
||||||
### Customize
|
### Options
|
||||||
|
|
||||||
You can change build config in `config.json`
|
You can change build config in `config.json`
|
||||||
- For custom `font-patcher` args, `font-forge` (and maybe `python3-fontforge` as well) is needed
|
- For custom `font-patcher` args, `font-forge` (and maybe `python3-fontforge` as well) is needed
|
||||||
|
@ -79,7 +101,7 @@ You can change build config in `config.json`
|
||||||
|
|
||||||
Add `--normal` flag in `build.py` for common config, make the font just like `JetBrains Mono` (with slashed zero).
|
Add `--normal` flag in `build.py` for common config, make the font just like `JetBrains Mono` (with slashed zero).
|
||||||
|
|
||||||
#### Font Feature Freeze Options
|
#### Font Feature Freeze
|
||||||
|
|
||||||
- `enable`: Move ligature rules to `calt`, which will enable the features without setting up `cvXX` / `ssXX` / `zero` in font features config, just as default ligatures
|
- `enable`: Move ligature rules to `calt`, which will enable the features without setting up `cvXX` / `ssXX` / `zero` in font features config, just as default ligatures
|
||||||
- `disable`: Remove the features in `cvXX` / `ssXX` / `zero`, which will no longer effect, even if you enable it manually
|
- `disable`: Remove the features in `cvXX` / `ssXX` / `zero`, which will no longer effect, even if you enable it manually
|
||||||
|
@ -95,7 +117,7 @@ If you want to build CN base fonts from variable (about 35 MB), setup `"cn.use_s
|
||||||
|
|
||||||
The build script will auto download neccessory assets from GitHub. If you have trouble downloading, please setup `github_mirror` in `config.json` or `$GITHUB` to your environment variable. (Target URL will be `https://{github_mirror}/<user>/<repo>/releases/download/{tag}/{file}`)
|
The build script will auto download neccessory assets from GitHub. If you have trouble downloading, please setup `github_mirror` in `config.json` or `$GITHUB` to your environment variable. (Target URL will be `https://{github_mirror}/<user>/<repo>/releases/download/{tag}/{file}`)
|
||||||
|
|
||||||
### Build Script Options
|
### Build Script Usage
|
||||||
|
|
||||||
```
|
```
|
||||||
usage: build.py [-h] [-v] [-d] [--debug] [-n] [--feat FEAT] [--hinted] [--no-hinted]
|
usage: build.py [-h] [-v] [-d] [--debug] [-n] [--feat FEAT] [--hinted] [--no-hinted]
|
||||||
|
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
foundrytools-cli==1.1.22
|
Loading…
Reference in a new issue