{"id":32171400,"url":"https://github.com/urbint/ex_dash","last_synced_at":"2025-12-11T23:39:32.403Z","repository":{"id":62429077,"uuid":"83985219","full_name":"urbint/ex_dash","owner":"urbint","description":"Build a Dash Docset with your internal Elixir app","archived":false,"fork":false,"pushed_at":"2019-10-07T17:25:27.000Z","size":41,"stargazers_count":38,"open_issues_count":2,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-11-07T22:11:18.046Z","etag":null,"topics":["dash-docset","elixir","mix-tasks","umbrella"],"latest_commit_sha":null,"homepage":"https://medium.com/@russmatney/exdash-internal-elixir-docs-integrated-with-dash-434245fc8023","language":"Elixir","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/urbint.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-05T16:33:03.000Z","updated_at":"2025-02-02T13:33:24.000Z","dependencies_parsed_at":"2022-11-01T20:02:54.968Z","dependency_job_id":null,"html_url":"https://github.com/urbint/ex_dash","commit_stats":null,"previous_names":["russmatney/ex_dash"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/urbint/ex_dash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbint%2Fex_dash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbint%2Fex_dash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbint%2Fex_dash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbint%2Fex_dash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urbint","download_url":"https://codeload.github.com/urbint/ex_dash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbint%2Fex_dash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27672215,"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","status":"online","status_checked_at":"2025-12-11T02:00:11.302Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["dash-docset","elixir","mix-tasks","umbrella"],"created_at":"2025-10-21T17:50:17.917Z","updated_at":"2025-12-11T23:39:32.396Z","avatar_url":"https://github.com/urbint.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExDash\n\nExDash seamlessly integrates the docs in your local elixir projects with your Dash docs.\n\nExDash provides a mix task that rebuilds a Dash Docset for your local Elixir project.\n\nYou can read more about the intended doc-searching workflow [in this blog post](https://medium.com/@russmatney/exdash-internal-elixir-docs-integrated-with-dash-434245fc8023).\n\n\n### Quick Start\n\n1. Add `{:ex_dash, \"~\u003e 0.1\", only: :dev},` to your mix.exs deps\n1. Run `mix docs.dash`\n1. Viola! Your docs are now searchable in [Dash](https://kapeli.com/dash)\n\n\n## The Dream\n\nThe [Alfred](https://www.alfredapp.com/) + [Dash](https://kapeli.com/dash) integration\nfor fast Elixir doc searching has become an integral part of our workflow at [Urbint](https://github.com/urbint).\n\nOnce our app reached a certain size,\nwe wanted to be able to search our internal documentation as easily as the public Hex docs.\n\nBeing able to dogfood our own @moduledocs and function @docs helps us keep code quality higher.\n\nExDash is intended to make that easier.\n\n## Installation\n\nThe package can be installed\nby adding `ex_dash` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:ex_dash, \"~\u003e 0.1.0\"},\n  ]\nend\n```\n\n### Dependencies\n\nDash Docsets include a SQLite table, and as such,\nthis task expects `sqlite3` to be available.\n\n```\nbrew install sqlite3\n```\n\n## Usage\n\nExDash currently provides a mix task that rebuilds the docset for your local app.\n\n```\nmix docs.dash\n```\n\nIf the docset is being built for the first time,\nthis command will finish by opening the docset via Dash.\nIf the docset already exists locally,\nthis command will assume that you are updating your local docs.\n\nOptions:\n\n- `--open`: force the generated docset to open in dash\n- `--name`: Overwrite the project name when naming the docset.\n  The name defaults to the project name, or for umbrella apps,\n  the name of the directory.\n- `--abbr`: Overwrite the abbreviation for searching the docs.\n  Defaults to the first two characters of the project name.\n  Note that changing the abbreviation of the app requires\n  deleting the docset entirely from Dash (via the preferneces pane)\n  and likely running `mix docs.dash --open` to force the docset to re-index.\n\n# Hacking ExDocs into Dash Docs\n\nThe goal for this project is to provide documentation for your local app\nto the same resource as the rest of your Docs.\nWe want the docs to be indistinguishable from Elixir's source and Hex's docsets.\n\nAs such, this task builds the full docs using ExDoc,\nthen scrapes and find/replaces those pages into a similar (hopefully identical) style to those downloaded from Hex.\n\nDash docsets require:\n\n  - a SQLite database for search\n  - Dash \"anchors\" on the doc pages to populate the Table of Contents per page\n\nSee `ExDash.Docset` and `ExDash.Injector` for more.\n\nIf there are other Dash features you'd like supported,\nplease open a PR or an Issue!\n\n# Much thanks to the Elixir Community\n\nThis project at the start borrowed heavily from work done [by @JonGretar on ExDocDash](https://github.com/JonGretar/ExDocDash). Much thanks to Jon's code as well as [ExDoc](https://github.com/elixir-lang/ex_doc), as they both made this problem much easier to solve. A break from Jon's project was made in favor of matching the style of documents built by ExDoc. Rather than writing and styling our own templates, this just builds the ExDoc docs and hacks them into a Docset.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furbint%2Fex_dash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furbint%2Fex_dash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furbint%2Fex_dash/lists"}