Dagger
Search

d2

This tool uses Dagger to render D2 diagrams within containerized environments.
You can render a single D2 file or an entire directory of D2 files, specify the output
format (svg, png, pdf, pptx, gif), and pass extra arguments to the D2 command.

Example Usages:

dagger call --file=your-file.d2 render export --path=./out
dagger call --format='pdf' --file='your-file.d2' render export --path=./out
dagger call --format='gif' --file='your-file.d2' with-arg --arg='--animate-interval=100' render export --path=./out

For more details, refer to the README.md.

Installation

dagger install github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1

Entrypoint

Return Type
D2 !
Arguments
NameTypeDefault ValueDescription
formatEnum "svg"No description provided
dirDirectory -No description provided
fileFile -No description provided
Example
dagger -m github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1 call \
func (m *myModule) example() *D2  {
	return dag.
			D2()
}
@function
def example() -> dag.D2:
	return (
		dag.d2()
	)
@func()
example(): D2 {
	return dag
		.d2()
}

Types

D2 🔗

args() 🔗

+private, extra arguments for d2 command

Return Type
[String ! ] !
Example
dagger -m github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1 call \
 args
func (m *myModule) example(ctx context.Context) []string  {
	return dag.
			D2().
			Args(ctx)
}
@function
async def example() -> List[str]:
	return await (
		dag.d2()
		.args()
	)
@func()
async example(): Promise<string[]> {
	return dag
		.d2()
		.args()
}

withArg() 🔗

Return Type
D2 !
Arguments
NameTypeDefault ValueDescription
argString !-No description provided
Example
dagger -m github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1 call \
 with-arg --arg string
func (m *myModule) example(arg string) *D2  {
	return dag.
			D2().
			WithArg(arg)
}
@function
def example(arg: str) -> dag.D2:
	return (
		dag.d2()
		.with_arg(arg)
	)
@func()
example(arg: string): D2 {
	return dag
		.d2()
		.withArg(arg)
}

withFrmat() 🔗

Return Type
D2 !
Arguments
NameTypeDefault ValueDescription
formatEnum !-No description provided
Example
dagger -m github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1 call \
 with-frmat
func (m *myModule) example(format ) *D2  {
	return dag.
			D2().
			WithFrmat(format)
}
@function
def example(format: ) -> dag.D2:
	return (
		dag.d2()
		.with_frmat(format)
	)
@func()
example(format: ): D2 {
	return dag
		.d2()
		.withFrmat(format)
}

serve() 🔗

This doesn’t work, because the file is uploaded in the session and changes from the host machine are not sent +private

Return Type
Service !
Arguments
NameTypeDefault ValueDescription
fileFile !-No description provided
portInteger 9000No description provided
hostString "0.0.0.0"No description provided
Example
dagger -m github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1 call \
 serve --file file:path
func (m *myModule) example(file *File) *Service  {
	return dag.
			D2().
			Serve(file)
}
@function
def example(file: dagger.File) -> dagger.Service:
	return (
		dag.d2()
		.serve(file)
	)
@func()
example(file: File): Service {
	return dag
		.d2()
		.serve(file)
}

render() 🔗

renders the D2 file or directory to the given format format.

Return Type
Directory !
Example
dagger -m github.com/pjmagee/daggerverse/d2@686b0f41e55f3e32b2e43546f1adac33ac271eb1 call \
 render
func (m *myModule) example() *Directory  {
	return dag.
			D2().
			Render()
}
@function
def example() -> dagger.Directory:
	return (
		dag.d2()
		.render()
	)
@func()
example(): Directory {
	return dag
		.d2()
		.render()
}