oliverdavies.uk/content/node.3373d8dc-7c1d-477f-8628-f3029228b9c4.yml

76 lines
3.7 KiB
YAML

uuid:
- value: 3373d8dc-7c1d-477f-8628-f3029228b9c4
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-05-11T08:59:58+00:00'
revision_uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
revision_log: { }
status:
- value: true
uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
title:
- value: 'Building fonts with Nix'
created:
- value: '2025-04-16T00:00:00+00:00'
changed:
- value: '2025-05-11T08:59:58+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2025/04/16/fonts
langcode: en
body:
- value: |
<p>I recently started <a href="/daily/2025/04/07/nix-rst2pdf">using Nix to build my PDF presentation slides</a> that <a href="/presentations/building-presenting-slide-decks-rst2pdf">I create with rst2pdf</a>.</p>
<p>I removed the custom build script that was generating the PDF files and moved that code into a Nix derivation.</p>
<p>Now I can run <code>nix build .#test-driven-drupal</code> and it will generate the slides for that talk.</p>
<p>As well as the files specific to each presentation, I also have a derivation for shared assets that apply to all talks - i.e. the stylesheets and fonts that are embedded within the PDF.</p>
<p>The font files were stored in the repository but I wanted to remove them and use the font files available in nixpkgs.</p>
<p>After some small changes, <a href="https://code.oliverdavies.uk/opdavies/talks/commit/e24d2df83f04e492151b1a1f4901490ce76ffd45">I was able to do it</a> and remove the font files from my repository.</p>
<p>The Inter font is available in nixpkgs, but it downloads an <code>InterVariable.ttf</code> font that rst2pdf didn't know how to change the font weight for, so I made my own derivation of the static Inter font based on the releases from GitHub.</p>
<p>I'm happy that I was able to achieve this, as my repository is leaner and I'm continuing to find new and interesting uses for Nix in my workflows.</p>
format: full_html
processed: |
<p>I recently started <a href="/daily/2025/04/07/nix-rst2pdf">using Nix to build my PDF presentation slides</a> that <a href="/presentations/building-presenting-slide-decks-rst2pdf">I create with rst2pdf</a>.</p>
<p>I removed the custom build script that was generating the PDF files and moved that code into a Nix derivation.</p>
<p>Now I can run <code>nix build .#test-driven-drupal</code> and it will generate the slides for that talk.</p>
<p>As well as the files specific to each presentation, I also have a derivation for shared assets that apply to all talks - i.e. the stylesheets and fonts that are embedded within the PDF.</p>
<p>The font files were stored in the repository but I wanted to remove them and use the font files available in nixpkgs.</p>
<p>After some small changes, <a href="https://code.oliverdavies.uk/opdavies/talks/commit/e24d2df83f04e492151b1a1f4901490ce76ffd45">I was able to do it</a> and remove the font files from my repository.</p>
<p>The Inter font is available in nixpkgs, but it downloads an <code>InterVariable.ttf</code> font that rst2pdf didn't know how to change the font weight for, so I made my own derivation of the static Inter font based on the releases from GitHub.</p>
<p>I'm happy that I was able to achieve this, as my repository is leaner and I'm continuing to find new and interesting uses for Nix in my workflows.</p>
summary: null
field_daily_email_cta: { }