{"id":15998154,"url":"https://github.com/plouc/textree","last_synced_at":"2025-06-22T19:06:45.421Z","repository":{"id":57485992,"uuid":"140440967","full_name":"plouc/textree","owner":"plouc","description":":deciduous_tree: Pretty print nested trees in go","archived":false,"fork":false,"pushed_at":"2018-07-11T05:25:47.000Z","size":24,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-22T19:06:06.902Z","etag":null,"topics":["formatting","go","golang","prettyprinter","tree-structure","treeview"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plouc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-10T14:02:48.000Z","updated_at":"2025-02-22T05:55:53.000Z","dependencies_parsed_at":"2022-09-18T18:16:14.691Z","dependency_job_id":null,"html_url":"https://github.com/plouc/textree","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/plouc/textree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plouc%2Ftextree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plouc%2Ftextree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plouc%2Ftextree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plouc%2Ftextree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plouc","download_url":"https://codeload.github.com/plouc/textree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plouc%2Ftextree/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261348668,"owners_count":23145311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["formatting","go","golang","prettyprinter","tree-structure","treeview"],"created_at":"2024-10-08T08:07:37.481Z","updated_at":"2025-06-22T19:06:40.410Z","avatar_url":"https://github.com/plouc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# textree\n\n[![Build Status](https://travis-ci.org/plouc/textree.png?branch=master)](https://travis-ci.org/plouc/textree)\n[![GoDoc](https://godoc.org/github.com/plouc/textree?status.svg)](https://godoc.org/github.com/plouc/textree)\n[![GitHub license](https://img.shields.io/github/license/plouc/textree.svg)](https://github.com/plouc/textree/blob/master/LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/plouc/textree)](https://goreportcard.com/report/github.com/plouc/textree)\n[![GitHub issues](https://img.shields.io/github/issues/plouc/textree.svg)](https://github.com/plouc/textree/issues)\n\n**textree** is a go package to easily pretty print nested trees in plain text.\n\n## Install\n\n```\ngo get github.com/plouc/textree\n```\n\n## Usage\n\n```go\nimport (\n\t\"os\"\n\t\"github.com/plouc/textree\"\n)\n```\n\nConstruct a tree:\n\n```go\nroot := textree.NewNode(\"1\")\n\nchildA := textree.NewNode(\"1.1\")\nroot.Append(childA)\nchildA.Append(textree.NewNode(\"1.1.1\"))\nchildA.Append(textree.NewNode(\"1.1.2\"))\n\nchildB := textree.NewNode(\"1.2\")\nroot.Append(childB)\nchildB.Append(textree.NewNode(\"1.2.1\"))\n```\n\nThen render the tree using the root element:\n\n```go\no := textree.NewRenderOptions()\nroot.Render(os.Stdout, o)\n```\n\n### Listing a directory\n\nYou can get something similar to the [`tree`](http://mama.indstate.edu/users/ice/tree/) command.\n\n````go\ntree, err := textTree.TreeFromDir(\"./\")\nif err != nil {\n    fmt.Printf(\"%v\\n\", err)\n    return\n}\n\t\ntree.Render(os.Stdout, textree.NewRenderOptions())\n````\n\nFor complete usage of **textree**, see the full [package docs](https://godoc.org/github.com/plouc/textree).\n\n## Examples\n\nSome examples are available in the `examples/` directory.\n\n```\ngo run examples/main.go\n```\n\n```\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n  Basic example\n    using default options\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n ┌ ROOT\n │\n └──┬ 1\n    │\n    ├──┬ 1.1\n    │  │\n    │  ├─── 1.1.1\n    │  └─── 1.1.2\n    │\n    ├──┬ 1.2\n    │  │\n    │  └─── 1.2.1\n    │\n    ├──┬ 1.3\n    │  │\n    │  ├─── 1.3.1\n    │  ├──┬ 1.3.2\n    │  │  │\n    │  │  ├─── 1.3.2.1\n    │  │  └─── 1.3.2.2\n    │  │\n    │  └─── 1.3.3\n    │\n    ├─── 1.4\n    └─── 1.5\n\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n  Dotted example\n    using RenderOptions.Dotted()\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n ┌ ROOT\n :\n ···· 1\n    :\n    :··· 1.1\n    :  :\n    :  :··· 1.1.1\n    :  ···· 1.1.2\n    :\n    :··· 1.2\n    :  :\n    :  ···· 1.2.1\n    :\n    :··· 1.3\n    :  :\n    :  :··· 1.3.1\n    :  :··· 1.3.2\n    :  :  :\n    :  :  :··· 1.3.2.1\n    :  :  ···· 1.3.2.2\n    :  :\n    :  ···· 1.3.3\n    :\n    :··· 1.4\n    ···· 1.5\n\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n  Rounded example\n    using RenderOptions.Rounded()\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n ┌ ROOT\n │\n ╰──╮ 1\n    │\n    ├──╮ 1.1\n    │  │\n    │  ├─── 1.1.1\n    │  ╰─── 1.1.2\n    │\n    ├──╮ 1.2\n    │  │\n    │  ╰─── 1.2.1\n    │\n    ├──╮ 1.3\n    │  │\n    │  ├─── 1.3.1\n    │  ├──╮ 1.3.2\n    │  │  │\n    │  │  ├─── 1.3.2.1\n    │  │  ╰─── 1.3.2.2\n    │  │\n    │  ╰─── 1.3.3\n    │\n    ├─── 1.4\n    ╰─── 1.5\n\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n  Compact example\n    using RenderOptions.Compact()\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n ┌ ROOT\n └─┬ 1\n   ├─┬ 1.1\n   │ ├── 1.1.1\n   │ └── 1.1.2\n   ├─┬ 1.2\n   │ └── 1.2.1\n   ├─┬ 1.3\n   │ ├── 1.3.1\n   │ ├─┬ 1.3.2\n   │ │ ├── 1.3.2.1\n   │ │ └── 1.3.2.2\n   │ └── 1.3.3\n   ├── 1.4\n   └── 1.5\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n  Directory listing example\n    using TreeFromDir()\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n ┌ ./snapshots\n │\n ├─── basic.snap\n ├─── dotted.snap\n └─── rounded.snap\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplouc%2Ftextree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplouc%2Ftextree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplouc%2Ftextree/lists"}