Angle Brackets Syntax
import { Aside } from ‘@astrojs/starlight/components’;
What It Does
Section titled “What It Does”Den’s __findFile resolves angle-bracket expressions to aspect paths:
| Expression | Resolves to |
|---|---|
<den.lib> | den.lib |
<den.default> | den.default |
<igloo> | den.aspects.igloo |
<foo/bar> | den.aspects.foo.provides.bar |
<foo/bar/baz> | den.aspects.foo.provides.bar.provides.baz |
<ns/tools> | den.ful.ns.tools |
Enable Per-Module
Section titled “Enable Per-Module”Bring __findFile into scope from module arguments:
{ den, __findFile, ... }: { _module.args.__findFile = den.lib.__findFile; den.aspects.igloo.includes = [ <den/define-user> ];}Enable Globally
Section titled “Enable Globally”Create a module that sets it for all modules:
{ den, ... }: { _module.args.__findFile = den.lib.__findFile;}Then use it anywhere:
{ __findFile, ... }: { den.default.includes = [ <den/define-user> ]; den.aspects.igloo.includes = [ <foo/bar/baz> ];}Enable via Let-Binding
Section titled “Enable via Let-Binding”For a single lexical scope:
{ den, ... }:let inherit (den.lib) __findFile;in { den.aspects.igloo.includes = [ <den/define-user> ];}Namespace Access
Section titled “Namespace Access”With a namespace ns enabled:
{ __findFile, ns, ... }: { ns.moo.silly = true; # access: expr = <ns/moo>; # resolves to den.ful.ns.moo}Deep Nested Provides
Section titled “Deep Nested Provides”Slashes translate to .provides. in the aspect tree:
den.aspects.foo.provides.bar.provides.baz.nixos.programs.fish.enable = true;den.aspects.igloo.includes = [ <foo/bar/baz> ];# igloo gets fish enabled