# Export raw docs

**URL:** <https://forum.crystal-lang.org/t/export-raw-docs/473>\
**Category:** Crystal Contrib\
**Created:** [February 25, 2019, 2:16pm UTC](https://forum.crystal-lang.org/t/export-raw-docs/473 "2019-02-25T14:16:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![vladfaust](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/vladfaust/32/48_2.png) [@vladfaust](https://forum.crystal-lang.org/u/vladfaust)\
**Post date:** [February 25, 2019, 2:16pm UTC](https://forum.crystal-lang.org/t/export-raw-docs/473/1 "2019-02-25T14:16:19Z")

</div>

Currently `crystal docs` generates an `index.json` file, which has markdown already converted to HTTP entities. It makes the docs depend on Crystal’s built-in markdown parser, which is not perfect. I wonder if it is possible to emit raw docs instead (just like in the code)?

I also noted that docs emit links (`source_link`) tied to github, and it’s kinda magic for me. Does it read from `.git` directory? Shouldn’t it be more abstract?

In general, I’d like to see `docs` command to only gather the information of types and methods across the program and emit it in raw but structured format, which can be interpreted differently afterwards.

My use-case is building an alternative VueJS-powered API front-end.

---

<div class="post-metadata">

**Author:** ![straight-shoota](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/straight-shoota/32/36_2.png) [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Post date:** [February 25, 2019, 6:40pm UTC](https://forum.crystal-lang.org/t/export-raw-docs/473/2 "2019-02-25T18:40:02Z")

</div>

> [@vladfaust](#):
>
> In general, I’d like to see `docs` command to only gather the information of types and methods across the program and emit it in raw but structured format, which can be interpreted differently afterwards.

Yes, I think that’s where we should be heading.

---

<div class="post-metadata">

**Author:** ![bcardiff](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/bcardiff/32/3_2.png) [@bcardiff](https://forum.crystal-lang.org/u/bcardiff)\
**Post date:** [March 10, 2019, 10:50pm UTC](https://forum.crystal-lang.org/t/export-raw-docs/473/3 "2019-03-10T22:50:27Z")

</div>

I thought the json export format did that… Output the markdown docs instead of the html.

---

<div class="post-metadata">

**Author:** ![kojix2](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/kojix2/32/1583_2.png) [@kojix2](https://forum.crystal-lang.org/u/kojix2)\
**Post date:** [April 19, 2025, 11:41pm UTC](https://forum.crystal-lang.org/t/export-raw-docs/473/4 "2025-04-19T23:41:45Z")

</div>

I feel that in the age of AI coding, this type of functionality is becoming very important; JSON may be sufficient, but it may be easier for humans to manage if it can be made into Markdown.
