added paged out articles.

This commit is contained in:
Gabe Venberg 2025-02-23 21:03:00 +01:00
commit db61e97df5
17 changed files with 1187 additions and 0 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
# direnv
.direnv
*.pdf

24
flake.nix Normal file
View file

@ -0,0 +1,24 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {inherit system;};
in
with pkgs; {
devShells.default = mkShell {
buildInputs = [
typst
];
};
});
}

1
paged-out!/nixos-easy-host/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.pdf

View file

@ -0,0 +1,114 @@
#import "template.typ": article
#show: article.with(
title: [Running non Nixpkgs services on NixOS, the lazy way],
authors: "Gabe Venberg",
date: datetime(year: 2024, month: 12, day: 04),
fontsize: 12pt
)
#show heading.where(level: 2): it => text(size: 12pt, it.body + [:])
NixOS is really nice for self hosting.
Anything that has a NixOS module can be hosted in a few lines of nix code.
But what if the service we want to host doesn't come with a NixOS module written for us already in Nixpkgs?
This is where NixOS can be a little hard, as a guide on setting up a service in Debian or Arch will rarely work on NixOS.
Of course, the 'nix way' would be to write your own package and module for it, but that can be a daunting task.
Here are some 'escape hatches' to host some of the simpler services without having to write your own Nix package or module.
#set rect(
inset: 8pt,
fill: rgb("e4e5ea"),
width: 100%,
)
#grid(columns: (1fr, 2fr), gutter: 5mm,
[
== Nginx
If the application is a simple static website, containing just HTML and JS,
the `nginx` module on NixOS provides us with a way to manage virtual hosts complete with https.
Shown is how I host my Hugo generated blog.
],
rect[
```nix
{ config, ... }: {
services.nginx.virtualHosts."gabevenberg.com" = {
enableACME = true;
forceSSL = true;
root = "/var/www/gabevenberg.com";
};
security.acme = {
acceptTerms = true;
defaults.email = "myname@example.com";
};
networking.firewall.allowedTCPPorts = [443 80];
}
```
],
grid.cell(
colspan: 2,
[
The complete list of options for virtual hosts can be found here:\
#link("https://nixos.org/manual/nixos/stable/options#opt-services.nginx.virtualHosts")
],
),
[
== Docker
If the service publishes a Docker image, one can just run that on NixOS.
Here's how I host a game server using a premade docker container.
Things get a bit more complicated with docker-compose,
but one can use #link("https://github.com/aksiksi/compose2nix") to translate a docker-compose.yaml file into a nix file much like the one shown.
],
rect[
```nix
{ config, ... }: {
virtualisation.oci-containers = {
backend = "docker";
containers.factorio = {
image = "factoriotools/factorio:stable";
volumes = ["/storage/factorio:/factorio"];
hostname = "factorio";
ports = ["34197:34197/tcp"];
environment = {UPDATE_MODS_ON_START = "true";};
};
};
virtualisation.docker.enable = true;
}
```
],
grid.cell(
colspan: 2,
[
There are, of course, more options for the oci-containers module, found at:\
#link("https://nixos.org/manual/nixos/stable/options#opt-virtualisation.oci-containers.containers")
],
),
[
== Systemd
Finally, if the service is composed of a single static binary, NixOS makes it really easy to write Systemd services.
(I've used a package in Nixpkgs here,
but you could just as easily point the Systemd service to a binary you threw in `/opt/` or somewhere.)
],
rect[
```nix
{ config, ... }: {
systemd.services.miniserve = {
wantedBy = ["multi-user.target"];
after = ["network.target"];
description = "A directory miniserve instance";
environment = {MINISERVE_ENABLE_TAR_GZ="true";}
serviceConfig.ExecStart = "${pkgs.miniserve}/bin/miniserve -i 127.0.0.1 -- /storage/miniserve"
};
}
```
],
grid.cell(
colspan: 2,
[
And like the last 2 times, the complete list of options for Systemd service can be found here:\
#link("https://nixos.org/manual/nixos/stable/options.html#opt-systemd.services")
],
))

View file

@ -0,0 +1,36 @@
#let article(
title: none,
authors: (),
date: datetime.today(),
margin: (x: 1mm, y: 1mm),
fontsize: 12pt,
doc,
) = {
//setup page size. Margin can be small because Paged Out! includes its own margins.
set page(width: 182mm, height: 253mm, margin: margin)
//blue, web-style links.
show link: it => {
set text(blue)
underline(it)
}
//Lets us fit a bit more text on the page without looking too cramped.
set text(size: fontsize)
set par(leading: 4pt, justify: true)
//setup document metadata. (no clue if its useful to the Paged Out! pipeline, but just in case)
set document(
title: title,
author: authors,
date: date,
)
//setup top level headings. We leave styling the subheadings to the user.
show heading.where(level: 1): set text(size: 16pt)
//render a title if one is provided.
if title != none { [= #title] }
doc
}

1
paged-out!/stop-using-trrs/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.pdf

View file

@ -0,0 +1,73 @@
#import "template.typ": article
#show ref: it => {
[(#it)]
}
#show: article.with(
title: [Stop Using TRRS for Split-Keyboard Interconnects!],
authors: "Foo",
)
TRRS (Tip Ring Ring Sleeve, or, as you may know it, "headphone jack with microphone support") cables have long been the go to connector between split keyboard halves.
They are cheap, compact, and thanks to their popularity, come in a variety of aesthetic styles.
However, TRRS jacks were only designed for passive electrical components, and expose one large flaw when used actively.
When a TRRS cable is (dis)connected, the tip of the plug will slide past every single contact of the jack.
Likewise, the first contact of the jack will slide past every contact of the plug.
To illustrate this, let us consider a TRRS setup where 5v is applied to the tip.
In this example, assume this plug is on the passive side of the board, receiving power from the active side plugged into USB.
When fully plugged in @5v_plugged_in, everything is connected properly.
However, when pulled out, 5v immediately makes contact with the TX line @5v_partial_plug.
#grid(columns: 2, gutter: 20pt,
[#figure(
image("./trrs_fully_plugged_in_5v_tip.svg", fit: "contain"),
caption: "A 5v tip TRRS fully plugged in.",
) <5v_plugged_in>],
[#figure(
image("./trrs_partially_plugged_in_5v_tip.svg", fit: "contain"),
caption: "A 5v tip TRRS starting to be pulled out. Notice the short between 5v and Tx.",
) <5v_partial_plug>],
)
When the 5v Aurdino Pro Micro dominated as a keyboard MCU, a brief short between 5v and Tx/Rx may have been acceptable.
However, due to the emergence of RP2040 powered drop in replacements for the Pro Micro, such as the Elite-pi or KB2040,
3.3v logic levels are now commonplace among keyboards.
Thus, shorting the 5v power line with a logic pin is a surefire way to burn out at least a GPIO, if not your whole MCU.
Now, what if we put the 5v at the base, so that it is the first pin disconnected?
#grid(columns: 2, gutter: 20pt,
[#figure(
image("./trrs_fully_plugged_in_5v_sleeve.svg", fit: "contain"),
caption: "A GND tip TRRS fully plugged in.",
) <gnd_plugged_in>],
[#figure(
image("./trrs_partially_plugged_in_5v_sleeve.svg", fit: "contain"),
caption: "A GND tip TRRS starting to be pulled out. Notice the short between 5v and Rx.",
) <GND_partial_plug>],
)
In this case, we are looking at the active side of the board, connected to USB, and supplying power to the passive side.
Now, when unplugged the 5v contact of the jack will immediately make contact with the Rx line,
pulling it up to 5v and damaging the pin on the passive side of the board.
No matter what order we put the contacts in,
one end of the TRRS cable will be unsafe to unplug while powered.
No other electronics found in your home suffer permanent damage from simply being unplugged in the wrong order.
In a moment of carelessness or forgetfulness, damage to hardware could easily happen.
So what are the alternatives?
USB-C, while almost as small as TRRS, are more expensive component wise and and
having the same connector for board-to-board and PC-to-board connections may lead to user error.
There are also a wide variety of JST and Molex connectors, some of which rival TRRS in size,
but premade cables are not readily available,
and many connectors have a tendency to work themselves loose over time.
My personal favorite are 4P4C connectors, also known as RJ9, RJ10, or RJ22.
While bulky on the PCB, the connection is sturdy, cables are availible, and one can make ones own cables with a cheap crimping tool.
There are of course other connectors, and any with at least 4 conductors will work for a split keyboard.
Unfortunately, there does not seem to be a perfect connector, but there are many alternatives better than TRRS.
_This article is dedicated to the late pin D26 of Jonathan's Ferris Sweep. He is forever grateful that the Elite-pi has extra GPIOs._

View file

@ -0,0 +1,36 @@
#let article(
title: none,
authors: (),
date: datetime.today(),
margin: (x: 1mm, y: 1mm),
fontsize: 12pt,
doc,
) = {
//setup page size. Margin can be small because Paged Out! includes its own margins.
set page(width: 182mm, height: 253mm, margin: margin)
//blue, web-style links.
show link: it => {
set text(blue)
underline(it)
}
//Lets us fit a bit more text on the page without looking too cramped.
set text(size: fontsize)
set par(leading: 4pt, justify: true)
//setup document metadata. (no clue if its useful to the Paged Out! pipeline, but just in case)
set document(
title: title,
author: authors,
date: date,
)
//setup top level headings. We leave styling the subheadings to the user.
show heading.where(level: 1): set text(size: 16pt)
//render a title if one is provided.
if title != none { [= #title] }
doc
}

View file

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:export-filename="trrs_fully_plugged_in_5v_sleeve.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
sodipodi:docname="trrs.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="true"
inkscape:zoom="4.1941358"
inkscape:cx="243.31592"
inkscape:cy="136.26168"
inkscape:window-width="2560"
inkscape:window-height="1529"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer2">
<inkscape:grid
id="grid1"
units="mm"
originx="0"
originy="0"
spacingx="1"
spacingy="0.99999986"
empcolor="#0099e5"
empopacity="0.30196078"
color="#0099e5"
opacity="0.14901961"
empspacing="5"
enabled="true"
visible="true" />
</sodipodi:namedview>
<defs
id="defs1" />
<g
inkscape:label="Jack"
inkscape:groupmode="layer"
id="layer1">
<g
id="g8"
transform="translate(36.999998,4.0000007)">
<rect
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3"
id="rect5"
width="45.000004"
height="19.999996"
x="10"
y="19.999996" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469"
id="text1-6"><tspan
sodipodi:role="line"
id="tspan1-1"
style="stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215"
id="text2-0"><tspan
sodipodi:role="line"
id="tspan2-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784"
id="text3-3"><tspan
sodipodi:role="line"
id="tspan3-2"
style="stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891"
id="text4-0"><tspan
sodipodi:role="line"
id="tspan4-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891">Gnd</tspan></text>
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 20,19.999997 V 39.999994"
id="path6" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 30,19.999997 V 39.999994"
id="path7" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 40.000002,19.999997 V 39.999994"
id="path8" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Plug">
<g
id="g6"
style="stroke-width:0.3;stroke-dasharray:none"
transform="matrix(1.0512821,0,0,1.0512821,36.48718,2.7179467)">
<g
id="g5"
style="stroke-width:0.3;stroke-dasharray:none">
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="m 10,24.999996 h 28.536586 c 0,0 3.804879,1.902439 3.804879,1.902439 l 5.707315,-1.902439 1.902442,3.804878 v 1.902438 L 48.04878,34.51219 42.341465,32.609751 38.536586,34.51219 H 10 Z"
id="path1" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 19.512195,24.999996 V 34.51219"
id="path2" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 29.024391,24.999996 V 34.51219"
id="path3" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 38.536586,24.999996 V 34.51219"
id="path4" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585"
id="text2"><tspan
sodipodi:role="line"
id="tspan2"
style="stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047"
id="text3"><tspan
sodipodi:role="line"
id="tspan3"
style="stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205"
id="text4"><tspan
sodipodi:role="line"
id="tspan4"
style="stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981"
id="text5"><tspan
sodipodi:role="line"
id="tspan5"
style="stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981" /></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.307693mm"
height="20.299997mm"
viewBox="0 0 45.307693 20.299997"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-46.842306,-23.849998)">
<g
id="g8"
transform="translate(36.999998,4.0000007)">
<rect
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3"
id="rect5"
width="45.000004"
height="19.999996"
x="10"
y="19.999996" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469"
id="text1-6"><tspan
id="tspan1-1"
style="stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215"
id="text2-0"><tspan
id="tspan2-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784"
id="text3-3"><tspan
id="tspan3-2"
style="stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891"
id="text4-0"><tspan
id="tspan4-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891">Gnd</tspan></text>
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 20,19.999997 V 39.999994"
id="path6" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 30,19.999997 V 39.999994"
id="path7" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 40.000002,19.999997 V 39.999994"
id="path8" />
</g>
</g>
<g
id="layer2"
transform="translate(-46.842306,-23.849998)">
<g
id="g6"
style="stroke-width:0.3;stroke-dasharray:none"
transform="matrix(1.0512821,0,0,1.0512821,36.48718,2.7179467)">
<g
id="g5"
style="stroke-width:0.3;stroke-dasharray:none">
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="m 10,24.999996 h 28.536586 c 0,0 3.804879,1.902439 3.804879,1.902439 l 5.707315,-1.902439 1.902442,3.804878 v 1.902438 L 48.04878,34.51219 42.341465,32.609751 38.536586,34.51219 H 10 Z"
id="path1" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 19.512195,24.999996 V 34.51219"
id="path2" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 29.024391,24.999996 V 34.51219"
id="path3" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 38.536586,24.999996 V 34.51219"
id="path4" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678"
id="text1"><tspan
id="tspan1"
style="stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585"
id="text2"><tspan
id="tspan2"
style="stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047"
id="text3"><tspan
id="tspan3"
style="stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205"
id="text4"><tspan
id="tspan4"
style="stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981"
id="text5"><tspan
id="tspan5"
style="stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981" /></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="45.307693mm"
height="20.299997mm"
viewBox="0 0 45.307693 20.299997"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-46.842306,-23.849998)">
<g
id="g8"
transform="translate(36.999998,4.0000007)">
<rect
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3"
id="rect5"
width="45.000004"
height="19.999996"
x="10"
y="19.999996" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469"
id="text1-6"><tspan
id="tspan1-1"
style="stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215"
id="text2-0"><tspan
id="tspan2-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784"
id="text3-3"><tspan
id="tspan3-2"
style="stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891"
id="text4-0"><tspan
id="tspan4-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891">5v</tspan></text>
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 20,19.999997 V 39.999994"
id="path6" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 30,19.999997 V 39.999994"
id="path7" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 40.000002,19.999997 V 39.999994"
id="path8" />
</g>
</g>
<g
id="layer2"
transform="translate(-46.842306,-23.849998)">
<g
id="g6"
style="stroke-width:0.3;stroke-dasharray:none"
transform="matrix(1.0512821,0,0,1.0512821,36.48718,2.7179467)">
<g
id="g5"
style="stroke-width:0.3;stroke-dasharray:none">
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="m 10,24.999996 h 28.536586 c 0,0 3.804879,1.902439 3.804879,1.902439 l 5.707315,-1.902439 1.902442,3.804878 v 1.902438 L 48.04878,34.51219 42.341465,32.609751 38.536586,34.51219 H 10 Z"
id="path1" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 19.512195,24.999996 V 34.51219"
id="path2" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 29.024391,24.999996 V 34.51219"
id="path3" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 38.536586,24.999996 V 34.51219"
id="path4" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678"
id="text1"><tspan
id="tspan1"
style="stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585"
id="text2"><tspan
id="tspan2"
style="stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047"
id="text3"><tspan
id="tspan3"
style="stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205"
id="text4"><tspan
id="tspan4"
style="stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981"
id="text5"><tspan
id="tspan5"
style="stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981" /></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.307693mm"
height="20.299997mm"
viewBox="0 0 55.307693 20.299997"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-36.842309,-23.849998)">
<g
id="g8"
transform="translate(36.999998,4.0000007)">
<rect
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3"
id="rect5"
width="45.000004"
height="19.999996"
x="10"
y="19.999996" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469"
id="text1-6"><tspan
id="tspan1-1"
style="stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215"
id="text2-0"><tspan
id="tspan2-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784"
id="text3-3"><tspan
id="tspan3-2"
style="stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891"
id="text4-0"><tspan
id="tspan4-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891">Gnd</tspan></text>
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 20,19.999997 V 39.999994"
id="path6" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 30,19.999997 V 39.999994"
id="path7" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 40.000002,19.999997 V 39.999994"
id="path8" />
</g>
</g>
<g
id="layer2"
transform="translate(-36.842309,-23.849998)">
<g
id="g6"
style="stroke-width:0.3;stroke-dasharray:none"
transform="matrix(1.0512821,0,0,1.0512821,26.487178,2.7179471)">
<g
id="g5"
style="stroke-width:0.3;stroke-dasharray:none">
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="m 10,24.999996 h 28.536586 c 0,0 3.804879,1.902439 3.804879,1.902439 l 5.707315,-1.902439 1.902442,3.804878 v 1.902438 L 48.04878,34.51219 42.341465,32.609751 38.536586,34.51219 H 10 Z"
id="path1" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 19.512195,24.999996 V 34.51219"
id="path2" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 29.024391,24.999996 V 34.51219"
id="path3" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 38.536586,24.999996 V 34.51219"
id="path4" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678"
id="text1"><tspan
id="tspan1"
style="stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585"
id="text2"><tspan
id="tspan2"
style="stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047"
id="text3"><tspan
id="tspan3"
style="stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205"
id="text4"><tspan
id="tspan4"
style="stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981"
id="text5"><tspan
id="tspan5"
style="stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981" /></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="55.307693mm"
height="20.299997mm"
viewBox="0 0 55.307693 20.299997"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-36.842309,-23.849998)">
<g
id="g8"
transform="translate(36.999998,4.0000007)">
<rect
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3"
id="rect5"
width="45.000004"
height="19.999996"
x="10"
y="19.999996" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469"
id="text1-6"><tspan
id="tspan1-1"
style="stroke-width:0.315385;stroke-dasharray:none"
x="13.470504"
y="39.411469">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215"
id="text2-0"><tspan
id="tspan2-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="23.084501"
y="39.490215">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784"
id="text3-3"><tspan
id="tspan3-2"
style="stroke-width:0.315385;stroke-dasharray:none"
x="33.251343"
y="39.483784">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.21421px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891"
id="text4-0"><tspan
id="tspan4-6"
style="stroke-width:0.315385;stroke-dasharray:none"
x="41.831974"
y="39.552891">5v</tspan></text>
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 20,19.999997 V 39.999994"
id="path6" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 30,19.999997 V 39.999994"
id="path7" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 40.000002,19.999997 V 39.999994"
id="path8" />
</g>
</g>
<g
id="layer2"
transform="translate(-36.842309,-23.849998)">
<g
id="g6"
style="stroke-width:0.3;stroke-dasharray:none"
transform="matrix(1.0512821,0,0,1.0512821,26.487178,2.7179471)">
<g
id="g5"
style="stroke-width:0.3;stroke-dasharray:none">
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="m 10,24.999996 h 28.536586 c 0,0 3.804879,1.902439 3.804879,1.902439 l 5.707315,-1.902439 1.902442,3.804878 v 1.902438 L 48.04878,34.51219 42.341465,32.609751 38.536586,34.51219 H 10 Z"
id="path1" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 19.512195,24.999996 V 34.51219"
id="path2" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 29.024391,24.999996 V 34.51219"
id="path3" />
<path
style="fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
d="M 38.536586,24.999996 V 34.51219"
id="path4" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678"
id="text1"><tspan
id="tspan1"
style="stroke-width:0.3;stroke-dasharray:none"
x="13.616014"
y="30.651678">Gnd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585"
id="text2"><tspan
id="tspan2"
style="stroke-width:0.3;stroke-dasharray:none"
x="22.761036"
y="30.726585">Rx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047"
id="text3"><tspan
id="tspan3"
style="stroke-width:0.3;stroke-dasharray:none"
x="32.431934"
y="30.72047">Tx</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.05742px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205"
id="text4"><tspan
id="tspan4"
style="stroke-width:0.3;stroke-dasharray:none"
x="40.593998"
y="30.786205">5v</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82223px;font-family:'Libertinus Sans';-inkscape-font-specification:'Libertinus Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#3f40a8;fill-opacity:0;stroke:#000000;stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981"
id="text5"><tspan
id="tspan5"
style="stroke-width:0.3;stroke-dasharray:none"
x="23.552603"
y="9.9999981" /></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

1
paged-out!/typst-template/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.pdf

View file

@ -0,0 +1,7 @@
#import "template.typ": article
#show: article.with(
title: [Paged Out! article],
authors: "Foo",
)
#lorem(850)

View file

@ -0,0 +1,36 @@
#let article(
title: none,
authors: (),
date: datetime.today(),
margin: (x: 1mm, y: 1mm),
fontsize: 12pt,
doc,
) = {
//setup page size. Margin can be small because Paged Out! includes its own margins.
set page(width: 182mm, height: 253mm, margin: margin)
//blue, web-style links.
show link: it => {
set text(blue)
underline(it)
}
//Lets us fit a bit more text on the page without looking too cramped.
set text(size: fontsize)
set par(leading: 4pt, justify: true)
//setup document metadata. (no clue if its useful to the Paged Out! pipeline, but just in case)
set document(
title: title,
author: authors,
date: date,
)
//setup top level headings. We leave styling the subheadings to the user.
show heading.where(level: 1): set text(size: 16pt)
//render a title if one is provided.
if title != none { [= #title] }
doc
}