RINK(7)
โจ rink(7) โ Rink Manual: Query language documentation โจ
๐ธ NAME ๐ธ
rink โ the query language documentation, bestie. This is the Rink Manual page where we explain the whole vibe of the query language, no cap.
๐ฆ SYNPOSIS ๐ฆ
Rinkโs query language follows a somewhat natural language style for its syntax. Many expressions like 3.5 meters to feet will work without any modification. This manual is meant for those who want to get a deeper understanding of the query language. Itโs giving โcalculator but make it linguistics.โ ๐
๐ DESCRIPTION ๐
In order to understand Rink, an understanding of units themselves is required. Fundamentally, a unit is a way of assigning a concrete value to a specific quantity such as length, volume, energy, power, current, etc. Each quantity can be reduced into other quantities (for example, area is length ร length), except for 7 base units.
The 7 base units (as well as the physical quantities they represent):
meter(length)second(time)kilogram(mass)ampere(current)kelvin(temperature)mol(amount of substance)candela(human-subjective luminous intensity)
In addition, Rink defines a few non-SI base units:
euro(money)bit(information)radian(angle)steradian(solid angle)wholenote(musical note length)IU(biological activity)
Each of these quantities is treated as irreducible. The 7 base units are the foundations of SI, and customary systems as well. (Customary systems are defined in terms of SI.)
Every unit is composed of two parts: A numerical value, and its dimensionality. The dimensionality is how a unit relates itself to the base units. Each base unit is raised to a certain power to construct the dimensionality. For example, the dimensionality of the quantity of acceleration is length^1 ร time^-2 and then the rest of the base units are to the 0th power, which is to say that they do not matter. Two units are considered conformable if they have matching dimensionalities, and they can then be used in conversions.
Because each unit has a numerical part, it is possible to do normal math on them*.
- Adding two units produces a new unit with matching dimensionality.
- Multiplying two units produces a new unit with its dimensionality as each base unit multiplied together, e.g. velocity (
length time^-1) * hertz (time^-1) = acceleration (length time^-2). - Dividing two units is like multiplication, but taking away from the base units. A unit divided by itself is dimensionless, it has no quantity. Normal numbers are dimensionless.
Because of this, units are essentially a special type of number. As such, Rink is essentially a calculator which takes dimensionality into account. Literally the main character of unit-aware math. ๐
โ๏ธ Weight vs Mass โ๏ธ
It is important to remember the differences between mass and weight when working with mass and force units. Here are some tips:
- Mass doesnโt change depending on the amount of gravity, and directly influences momentum.
- Weight is the amount of downward force on an object due to gravity.
- Mass is measured in kilograms or pounds.
- Weight is measured in newtons, kilogram force (
kgf), or pound force (lbf). - When someone says something weighs some amount of kg or lb, theyโre saying it has a weight of that number of kgf or lbf. This includes things like weight on the moon. (Donโt correct anyone using this common figure of speech.)
- A scale displays an estimate of mass by measuring the force applied to it divided by its calibrated measurement of the acceleration of gravity. Its mass estimate would be incorrect on other planets unless it was recalibrated. You can also think of the displayed value as being weight in kgf or lbf.
- You can compute weight by multiplying mass by gravity. Both kgf and lbf have earth gravity as part of their definition, so when you multiply kg or lb by gravity you get the same numerical values back, but with kgf or lbf units.
๐ข Numbers ๐ข
> 10.1e2
1010 (dimensionless)
> 10
10 (dimensionless)
> 0x10
16 (dimensionless)
> 0o10
8 (dimensionless)
> 0b10
2 (dimensionless)
> 9999999999999
approx. 9.99999e12 (dimensionless)
> 1.001
1.001 (dimensionless)
> 1e100
1.0e100 (dimensionless)
Decimal numbers can be written with an integer component, an after-decimal-point component, and an exponent. Numbers can optionally have either U+2009 THIN SPACE or an underscore (_) for digit place separators.
The decimal point is always written with a dot (.), not a comma or other marker. If the decimal point is provided, it must be followed by more digits. (1. is not allowed.)
The exponent starts with an e, followed by an integer with an optional sign. The exponent is shorthand for writing out * 10^exp. There can be no spaces within the number other than allowed digit separators. (10 e10 is not allowed.)
Hexadecimal, octal, and binary integers can be written using 0x, 0o, and 0b prefixes, respectively. These literals do not currently support decimal points or exponents.
Numbers can be written with a fraction, and can be written in scientific notation. 1e24 is short for 1 * 10^24.
โ Arithmetic โ
> 3 4 m 5 s
60 m s
> 3 * 4 m 5 s
60 m s
Multiplication can be either by juxtaposition (that is, without any symbol) or using an explicit * operator.
> 10 km / 5 m
2000 (dimensionless)
> 1|2 m
0.5 m (length)
There are two division operators, for separate purposes. / has lower precedence than multiplication, and is used mainly for separating two halves of an entire expression. | has higher precedence than multiplication, and is used mainly for fractions of integers.
> 1 * 2 + 1 * 2
4 (dimensionless)
> 12 meters + 5 feet
13.524 m (length)
Addition and subtraction have lower precedence than multiplication and division.
> 12 ft^2
435483/390625, approx. 1.114836 m^2 (area)
Powers have higher precedence than multiplication. Both ^ and ** can be used.
> 11 mod 3
2 (dimensionless)
> meter mod foot
85.6 millimeter (length)
The mod operator can be used to find the remainder of division. It has the same precedence as *. Requires both inputs to have the same dimensionality.
> 1 << 24
16777216 (dimensionless)
> 16 >> 2
4 (dimensionless)
Equivalent to multiplying or dividing by a power of two. The right side must be dimensionless.
> 0b1010 and 0b1100 to base 2
1000 (dimensionless)
> 0b1010 or 0b1100 to base 2
1110 (dimensionless)
> 0b1010 xor 0b1100 to base 2
110 (dimensionless)
Bitwise operators are supported. The inputs must be dimensionless, and also must be integers.
๐ก๏ธ Temperature ๐ก๏ธ
> 12 ยฐC
285.15 K (temperature)
Temperature scales are operators with higher precedence than addition, and lower than multiplication. See the Temperature conversion section for more detailed syntax.
โ๏ธ Inline Definitions โ๏ธ
> 2000 kcal -> potato = 164 kcal
500/41, approx. 12.19512 potato (energy)
An equals expression is one which simultaneously defines a new unit with the right-hand side, names it using the left-hand side, and then produces it as its result. This is useful for customizing the output of the right-hand side of a conversion or converting into things that donโt currently have units such as the amount of calories in a potato. Potato units are so real. ๐ฅ
๐ Custom base units ๐
> 12 'core' hour / 3 'core' -> minutes
240 minutes (time)
A unit name which is wrapped in quotation marks will not be checked for whether it exists when it is evaluated. This means you can wrap anything in quotes to in effect produce a new base unit for the purposes of a single calculation. This can be useful for doing calculations in terms of things which are otherwise dimensionless.
โช Previous results โช
> 100 ohm + 50 ohm
150 ohm (resistance)
> ANS * 10 mA
1.5 volt (electrical_potential)
The result of the previous query can be accessed with _, ans or ANS, which can be convenient for breaking up calculations into multiple steps. Note that when rink returns an error, the previous result is kept. Also, currently only the results of mathematical expressions are stored, the results for conversions arenโt. So keep that in mind, bestie.
๐งฌ Prefixes ๐งฌ
Units can be prefixed with SI prefixes as well as a number of non-SI prefixes, such as: quarter, double, kibi, mebi, โ
.
Rink will accept plural unit names as well.
๐ Conversions ๐
> meter -> feet
3.280839 foot (length)
> 12 ยฐC -> ยฐF
53.6 ยฐF (temperature)
Conversions are done with the โ, to, in operators.
The left hand side of the conversion is an arbitrary expression, and the right hand side is one of:
- An arbitrary expression
- A temperature scale (
celsius,fahrenheit, and several historical scales) - A unit list (e.g.
hour;min;sec) - A timezone (e.g.
"US/Pacific")
๐ Unit lists ๐
> 2^17 seconds -> hour;min;sec
36 hour, 24 minute, 32 s (time)
> 2 km -> mi;ft
1 mile, 1281.679 foot (length)
> liter -> cup;tbsp;tsp
4 uscup, 3 ustablespoon, 1.884136 usteaspoon (volume)
A unit list is a comma- or semicolon-delimited list of units with the same dimensionality, which can be used for breaking down numbers into more familiar quantities. This is the โbreak it into human-friendly chunksโ button. โจ
๐ก๏ธ Temperature conversion ๐ก๏ธ
> 12 ยฐC
285.15 K (temperature)
> 12 degC
285.15 K (temperature)
> 12 celsius
285.15 K (temperature)
Temperature scales in Rink are handled a little specially, because only Kelvin and Rankine (the absolute zero version of Fahrenheit) start at absolute zero. As such, they are operators, not units. These operators have looser binding precedence than multiplication, but tighter than addition.
Available temperature scales:
degC,ยฐC,celsius,โโ Celsius, the standard scale in most countries.degF,ยฐF,fahrenheit,โโ Fahrenheit, the scale used in households across the United States.degRรฉ,ยฐRรฉ,degRe,ยฐRe,rรฉaumur,reaumurโ Rรฉaumur, A historical scale once used throughout Europe.degRรธ,ยฐRรธ,degRo,ยฐRo,rรธmer,romerโ Romer, Another historical scale.degN,ยฐN,degnewtonโ Newton, A historical scale created by Isaac Newton.degDe,ยฐDe,delisleโ Delisle, A historical scale which, alongside the original Celsius scale, is reversed from the scales we are used to today. Its zero point is boiling water, and the freezing point of water is 150ยฐDe.
Okay so, crucial note first: these temperature scale measurements are absolute measurements, not differences. If you wanna say something like โa difference of 1ยฐC,โ then you must use the absolute scale for the scale youโre using. These are:
- For Celsius, itโs
kelvin K - For Fahrenheit, itโs
Rankine degR - For Rรฉaumur, itโs
reaumur_absolute(absolute as in the zero point is absolute zero) - For Rรธmer, itโs
romer_absolute - For Newton, itโs
newton_absolute - For Delisle, itโs
delisle_absolute
Numeric base conversion ๐
Bestie, watch this:
> 1000 -> hex
3e8 (dimensionless)
> 10000 -> base 36
7ps (dimensionless)
> pi meter -> hex meter
approx. 3.243f6a meter (length)
Base modifiers are specified with base followed by a number, followed by the rest of your conversion. Allowed bases are currently 2 through 36. There are some special base names which are also recognized:
hex,hexadecimal,base16โ Base 16.oct,octal,base8โ Base 8.bin,binary,base2โ Base 2.
Number representation modifiers โจ
> 2^128 -> digits
340282366920938463463374607431768211456 (dimensionless)
> 1/3937 -> digits
0.[000254000508001016002032004064008128016256032512065024130048260096520193040386080772161544323088646177292354584709169418338836677673355346710693421386842773685547371094742189484378968757937515875031750063500127, period 210]... (dimensionless)
> googol -> digits
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (dimensionless)
> mass of electron -> eng
approx. 910.9383e-33 kilogram (mass)
> 3 foot -> frac
1143/1250 meter (length)
Digits modifiers are specified with digits optionally followed by a number, before the base modifier and before the rest of the conversion. Any number of digits are allowed, but large amounts may not succeed.
The function of this modifier is that it forces the entire integer part to be printed (i.e., scientific notation will not be used), and then it prints an additional n digits, using the default if not specified.
Transcendental numbers currently cannot be precisely represented, so asking for many digits of pi or e will produce unsatisfying results. ๐ญ
Rink makes an attempt to find recurring decimals. If you ask it to print enough digits, it will find them. Slay.
Trigonometric and logarithmic functions are currently implemented using a machine-float fallback, because their results cannot be precisely represented as finite rationals. Because of this, asking for many digits of such numbers will also produce unsatisfying results. ๐
frac, fraction, ratio are all equivalent. They will print the rational fraction that Rink internally represents the number using.
sci, scientific will force the use of scientific notation, even for small numbers.
eng, engineering are similar to the default format, where it uses scientific notation only for large numbers. However, when it does use scientific notation, it rounds down to every third power.
Units for ๐
> units for power
Units for kg m^2 / s^3 (power): VA, airwatt, boilerhorsepower, brhorsepower,
donkeypower, electrichorsepower, horsepower, lusec, mbh, metrichorsepower,
poncelet, sccm, sccs, scfh, scfm, slph, slpm, solarluminosity,
tonrefrigeration, waterhorsepower, watt
The units for, units of, and units commands will find more units which match the dimensionality of the one specified. Iconic behavior, honestly.
Factorization ๐ง
> factorize velocity
Factorizations: velocity; frequency length; area viscosity;
acceleration time; length^2 viscosity
> factorize power
Factorizations: power; force velocity; radiant_intensity solid_angle;
area radiosity; length spectral_flux_wavelength; radiation_dose spectral_exposure_frequency;
spectral_irradiance_wavelength volume; temperature thermal_conductance;
energy frequency; current^2 resistance; ...
Unit factorization is what Rink names the process of finding quantities which can be multiplied together to produce the original quantity. This can be useful for discovering new ways to construct a unit. Itโs giving โmath but make it detective work.โ ๐ต๏ธโโ๏ธ
Search ๐
> search milk
Search results: milk (substance), mil (length), mile (length), mill (dimensionless), mi (length)
Allows you to search for units based on their names, returning up to 5 results and showing the associated physical quantity of the unit.
Date and time ๐ธ
> #jan 01, 1970#
1970-01-01 00:00:00 +00:00 (46 years ago)
> now - #jan 01, 1970# -> gigaseconds
1.472083 gigaseconds (time)
> #2016-08-24# + 500 weeks
2026-03-25 00:00:00 +00:00 (in 9 years)
In addition to handling units, Rink is also capable of doing some calculations with dates and times.
Converting to a timezone:
> now
2022-08-08 21:19:56.990897100 -07:00 (now)
> now -> "Europe/London"
2022-08-09 05:20:03.656075600 BST (now)
Converting to a fixed offset:
> now -> +01:00
2022-08-09 05:20:30.080703900 +01:00 (now)
Inputting a time with an offset:
> #apr 1, 2016 12:00:00 +01:00#
2016-04-01 12:00:00 +01:00 (6 years ago)
Calendar-aware relative dates:
> #today#
2025-08-16 00:00:00 [US/Pacific] (23 hours ago)
> #today+1mon#
2025-09-16 00:00:00 [US/Pacific] (in 30 days)
Substances ๐ซถ
> milk
milk: density = 242 gram -> approx. 236588.2 millimeter^3
> gallon milk
milk: volume = approx. 3785411.7 millimeter^3; mass = 3.872 kilogram
> egg
egg: USA large egg. mass_shelled = 50 gram; mass_white = 30 gram;
mass_yolk = 18.6 gram; volume = approx. 46824.75 millimeter^3;
volume_white = approx. 29573.52 millimeter^3;
volume_yolk = approx. 17251.22 millimeter^3
> egg_shelled of kg egg
20 (dimensionless)
> gallon gasoline -> btu
gasoline: volume = approx. 3785411.7 millimeter^3; energy_HHV = 125000 btu; energy_LHV = 115000 btu
Substances are how Rink organizes the physical properties of materials, objects, both countable and uncountable. Each substance has a name, an associated amount (defaulting to dimensionless 1), and a set of associated properties.
Each property maps a named input into a named output and vice versa, and has a name itself. Countable objects often have properties with an input being dimensionless, so that you do not need to specify an amount to extract the property.
The properties of a substance are accessed with the of operator (<_property_> of <_substance_>), which reads a multiplication expression following it, so you may have to wrap it in parentheses.
Substances can be used in conversions, and can be added and multiplied to transform them. Multiplication will change the amount of the substance you have, so that you can write kg egg to specify one kilogram of eggs. Addition will combine certain properties (currently only molar_mass) to create a new substance entirely. Conversions of substances allow you to get multiple results simultaneously, for example if there are multiple different measurements of some property of the substance available.
If the result of a calculation results in a substance, Rink will show all of the properties applicable for the given amount.
๐ REFERENCE ๐
Okay bestie, the actual full list of units lives in definitions.units (peep rink-defs(5)), but hereโs a cute little greatest-hits list of the most helpful ones. The whole idea is that most units should be easy to guess the names of โ iykyk โจ
โจ SI derived โจ
- Newton โ
N(force) ๐ช - Pascal โ
Pa(pressure) ๐ฌ๏ธ - Joule โ
J(energy) ๐ฅ - Watt โ
W(power) โก - Coulomb โ
C(charge) ๐ - Volt โ
V(electrical potential) โก - Ohm โ (electrical resistance) ๐งฑ
- Siemens โ
S(electrical conductance) ๐ - Farad โ
F(capacitance) ๐ซง - Weber โ
Wb(magnetic flux) ๐งฒ - Henry โ
H(inductance) ๐ - Tesla โ
T(magnetic flux density) ๐งฒโจ - Hertz โ
Hz(frequency) ๐ต - Lumen โ
lm(luminous flux) ๐ก - Lux โ
lx(illuminance) ๐ - Gray โ
Gy(radiation dose) โข๏ธ - Katal โ
kat(catalytic activity) ๐งช
๐งช Substances ๐งช
๐งฑ Compounds and materials ๐งฑ
- Water โ
water๐ง - Ammonia โ
ammonia๐งผ - Freon โ
freonโ๏ธ - Tissue โ
tissue๐ซถ - Diamond โ
diamond๐ - Graphite โ
graphiteโ๏ธ - Water ice โ
ice๐ง - Asphalt โ
asphalt๐ฃ๏ธ - Brick โ
brick๐งฑ - Concrete โ
cocnrete(yes, spelled exactly like that in the source) ๐๏ธ - Silica glass โ
glass_silica๐ช - Flint glass โ
glass_flint๐ชโจ - Pyrex glass โ
glass_pyrex๐งช - Gypsum โ
gypsum๐ชจ - Marble โ
marble๐๏ธ - Sand โ
sand๐๏ธ - Soil โ
soil๐ฑ - Air โ
air๐ฌ๏ธ
โ๏ธ Particles โ๏ธ
- Electron โ
electronโก - Proton โ
protonโ - Neutron โ
neutronโช - Deuterium nucleus โ
deuteron๐ฌ - Muon โ
muon๐ - Helium nucleus โ
helion๐ - Tau โ
tauparticleโจ - Alpha โ
alphaparticle๐ ฐ๏ธ - Tritium nucleus โ
triton๐ฌโจ
๐ Celestial bodies ๐
- Sun โ
sunโ๏ธ - Mercury โ
mercury_planet๐ช - Venus โ
venus๐ - Earth โ
earth๐ - Earthโs moon โ
moon๐ - Mars โ
mars๐ด - Jupiter โ
jupiter๐ช - Saturn โ
saturn๐ช๐ซ - Uranus โ
uranus๐ฉต - Neptune โ
neptune๐ต - Pluto โ
pluto๐ซถ
โฝ Fuels โฝ
- Crude oil โ
oil๐ข๏ธ - Coal โ
coal๐ชจ - Natural gas โ
naturalgas๐ฅ - Charcoal โ
charcoalโซ - Wood โ
wood๐ชต - Ethanol โ
ethanol๐ฝ - Diesel โ
diesel๐ - Gasoline โ
gasolineโฝ - Heating oil โ
heating_oil๐ฅ - Fuel oil โ
fueloil๐ข๏ธ - Propane โ
propane๐ฅ - Butane โ
butane๐ฅโจ
๐ Foods ๐
- Butter โ
butter๐ง - Clarified butter โ
butter_clarified๐งโจ - Cocoa butter โ
cocoa_butter๐ซ - Vegetable shortening โ
shortening๐ฅ - Vegetable oil โ
vegetable_oil๐ซ - Olive oil โ
olive_oil๐ซโจ - Flour โ
cakeflour,flour,breadflour๐พ - Corn starch โ
cornstarch๐ฝ - Cocoa โ
dutchcocoa,cocoa๐ซ - Heavy cream โ
heavycream๐ฅ - Milk โ
milk๐ฅ - Sour cream โ
sourcream๐ฅ - Molasses โ
molasses๐ฏ - Corn syrup โ
corrnsyrup(again, source spelling, no cap) ๐ฝ - Honey โ
honey๐ฏ๐ - Sugar โ
sugar๐ฌ - Powdered sugar โ
powdered_sugar๐ฌโจ - Brown sugar โ
brownsugar_light,brownsugar_dark๐ฌ - Baking powder โ
baking_powder๐ฅ - Salt โ
salt,koshersalt๐ง - Egg โ
egg๐ฅ
๐งช Elements 1 through 118, by name (e.g. helium) ๐งช
Yup, elements 1 through 118 are all in there by name, like helium โจ๐งช
๐ Constants ๐
- Pi โ
pi๐ฅง - Speed of light โ
c๐ - Planck Constant โ
planck_constant๐ฌ - Gravitational Constant โ
G๐ - Avogadroโs number โ
avogadro๐ข - Gas Constant โ
gasconstant๐ฌ๏ธ - Boltzmann Constant โ
boltzmann๐ฅ - Earth Gravity โ
gravity,force๐ - Earth Atmosphere Density โ
atm๐ฌ๏ธ
๐ธ Currencies ๐ธ
These are only available if live currency fetching is enabled. (See rink(5).)
- EU Euro โ
EUR,โฌ๐ช๐บ - US dollar โ
USD,$,dollar๐บ๐ธ - Japan yen โ
JPY,ยฅ,yen๐ฏ๐ต - Bulgaria lev โ
BGN๐ง๐ฌ - Czech koruna โ
CZK๐จ๐ฟ - Denmark kroner โ
DKK๐ฉ๐ฐ - UK pound โ
GBP,ยฃ๐ฌ๐ง - Hungary forint โ
HUF๐ญ๐บ - Poland zลoty โ
PLN๐ต๐ฑ - Romania lei โ
RON๐ท๐ด - Sweden krona โ
SEK๐ธ๐ช - Switzerland franc โ
CHF๐จ๐ญ - Norway krone โ
NOK๐ณ๐ด - Croatia kuna โ
HRK๐ญ๐ท - Russia ruble โ
RUB,โฝ๐ท๐บ - Turkey lira โ
TRY,โบ๐น๐ท - Australia dollar โ
AUD,A$๐ฆ๐บ - Brazil real โ
BRL,R$๐ง๐ท - Canada dollar โ
CAD,C$๐จ๐ฆ - PRC yuan โ
CNY๐จ๐ณ - Hong Kong dollar โ
HKD,H$๐ญ๐ฐ - Indonesia rupiah โ
IDR๐ฎ๐ฉ - Israel shekel โ
ILS,โช๐ฎ๐ฑ - India rupee โ
INR,โน๐ฎ๐ณ - South Korea won โ
โฉ๐ฐ๐ท - Mexico peso โ
MXN,mex$๐ฒ๐ฝ - Malaysia ringgit โ
MYR๐ฒ๐พ - New Zealand dollar โ
NZD,NZ$๐ณ๐ฟ - Phillipines piso โ
PHP,โฑ๐ต๐ญ - Singapore dollar โ
SGD,S$๐ธ๐ฌ - Thailand baht โ
THB,เธฟ๐น๐ญ - South Africa rand โ
ZAR๐ฟ๐ฆ
๐งฎ Functions ๐งฎ
Currently, all of these result in machine float fallback, because their results are real numbers that cannot be precisely represented as rationals.
sqrt(x)โ square root,โxโจexp(x)โ the exponential function,e^x๐ฅln(x)โ the natural logarithm,log_e(x)๐ฑlog(x,y)โ logarithm in basey,log_y(x)๐ขlog2(x)โ logarithm in base 2,log_2(x)โ๏ธlog10(x)โ logarithm in base 10,log_10(x)๐hypot(x,y)โ the length of the hypotenuse of a right-angle triangle given adjacent edges of lengthxandy๐sin(x)โ the sine function ๐cos(x)โ the cosine function ๐tan(x)โ the tangent function ๐asin(x)โ inverse sine, or arcsine โฉ๏ธacos(x)โ inverse cosine, or arccosine โฉ๏ธatan(x)โ inverse tangent, or arctangent โฉ๏ธatan2(x, y)โ four-quadrant arctangent, which can be used to reverse sine+cosine back into an angle ๐งญsinh(x)โ hyperbolic sine ๐cosh(x)โ hyperbolic cosine ๐tanh(x)โ hyperbolic tangent ๐asinh(x)โ inverse hyperbolic sine function โฉ๏ธacosh(x)โ inverse hyperbolic cosine function โฉ๏ธatanh(x)โ inverse hyperbolic tangent function โฉ๏ธfac(x)โ factorial,x!. Will coerce any input number to an integer ๐ข
๐ SEE ALSO ๐
rink(1), rink(5), rink-defs(5), rink-dates(5) ๐ซถ
Served fresh by the Rink Manual, dated 2026-08-30, page RINK(7) ๐โจ
๐ฆ where this page comes from
- arch rolling: rink 0.9.0-1 ยท GPL-3.0-or-later AND MPL-2.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms