mirror of
https://github.com/daylinmorgan/yartsu.git
synced 2024-12-22 12:30:43 -06:00
feat: switch default font to support nerd fonts
This commit is contained in:
parent
bbef8038f8
commit
abdbc1da2e
4 changed files with 55 additions and 3 deletions
|
@ -111,7 +111,7 @@ See [here](https://github.com/daylinmorgan/yartsu/blob/main/docs/themes.md) a pr
|
||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
- [ ] add unit tests
|
- [ ] add unit tests
|
||||||
- [ ] add support for nerd-fonts
|
- [x] add support for nerd-fonts
|
||||||
- [ ] add optional shadow
|
- [ ] add optional shadow
|
||||||
- [ ] add more themes
|
- [ ] add more themes
|
||||||
|
|
||||||
|
|
46
yartsu/_export_format.py
Normal file
46
yartsu/_export_format.py
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
CONSOLE_SVG_FORMAT = """\
|
||||||
|
<svg class="rich-terminal" viewBox="0 0 {width} {height}" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<!-- Generated with Rich https://www.textualize.io -->
|
||||||
|
<style>
|
||||||
|
@font-face {{
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Regular"),
|
||||||
|
url("https://cdn.jsdelivr.net/gh/ryanoasis/nerd-fonts@2.1.0/patched-fonts/FiraCode/Regular/complete/Fira%20Code%20Regular%20Nerd%20Font%20Complete.ttf") format("truetype");
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
}}
|
||||||
|
@font-face {{
|
||||||
|
font-family: "Fira Code";
|
||||||
|
src: local("FiraCode-Bold"),
|
||||||
|
url("https://cdn.jsdelivr.net/gh/ryanoasis/nerd-fonts@2.1.0/patched-fonts/FiraCode/Regular/complete/Fira%20Code%20Bold%20Nerd%20Font%20Complete.ttf") format("truetype");
|
||||||
|
font-style: bold;
|
||||||
|
font-weight: 700;
|
||||||
|
}}
|
||||||
|
.{unique_id}-matrix {{
|
||||||
|
font-family: Fira Code, monospace;
|
||||||
|
font-size: {char_height}px;
|
||||||
|
line-height: {line_height}px;
|
||||||
|
font-variant-east-asian: full-width;
|
||||||
|
}}
|
||||||
|
.{unique_id}-title {{
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: arial;
|
||||||
|
}}
|
||||||
|
{styles}
|
||||||
|
</style>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="{unique_id}-clip-terminal">
|
||||||
|
<rect x="0" y="0" width="{terminal_width}" height="{terminal_height}" />
|
||||||
|
</clipPath>
|
||||||
|
{lines}
|
||||||
|
</defs>
|
||||||
|
{chrome}
|
||||||
|
<g transform="translate({terminal_x}, {terminal_y})" clip-path="url(#{unique_id}-clip-terminal)">
|
||||||
|
{backgrounds}
|
||||||
|
<g class="{unique_id}-matrix">
|
||||||
|
{matrix}
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
"""
|
|
@ -7,6 +7,7 @@ from pathlib import Path
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.text import Text
|
from rich.text import Text
|
||||||
|
|
||||||
|
from ._export_format import CONSOLE_SVG_FORMAT
|
||||||
from ._run_cmd import run_cmd
|
from ._run_cmd import run_cmd
|
||||||
from ._version import __version__
|
from ._version import __version__
|
||||||
from .argparse import ArgumentParser
|
from .argparse import ArgumentParser
|
||||||
|
@ -117,6 +118,11 @@ def main() -> None:
|
||||||
|
|
||||||
console.print(parsed_input)
|
console.print(parsed_input)
|
||||||
|
|
||||||
console.save_svg(args.output, title=title, theme=THEMES[args.theme])
|
console.save_svg(
|
||||||
|
args.output,
|
||||||
|
title=title,
|
||||||
|
theme=THEMES[args.theme],
|
||||||
|
code_format=CONSOLE_SVG_FORMAT,
|
||||||
|
)
|
||||||
|
|
||||||
term.print(f"\nSaved to {args.output}.")
|
term.print(f"\nSaved to {args.output}.")
|
||||||
|
|
Loading…
Reference in a new issue