Metadata-Version: 2.4
Name: houdinimd-docs
Version: 0.1.0
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Summary: Houdini's own documentation, read out of the install on this machine.
Keywords: houdini,documentation,sidefx
Author: JTCHE
License-Expression: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://houdinimd.com

# houdinimd-docs

Houdini's own documentation, read out of the Houdini install on this machine.
It is the documentation engine of the [HoudiniMD](https://houdinimd.com)
desktop app, compiled from Rust into a Python module. The
[HoudiniMCP](https://github.com/JTCHE/houdini-mcp) bridge uses it.

No documentation ships in this package. Every page comes from the help files
of an installed Houdini, so the text matches that build exactly.

```python
import houdinimd_docs

docs = houdinimd_docs.Docs("/path/to/a/folder/for/the/index")
docs.installs()                          # the Houdini builds found, newest first
docs.page("nodes/sop/copytopoints")      # one page, as Markdown
docs.search("copy to points", limit=5)   # ranked full-text search
docs.page("hom/hou/Node", build="21.0.829")
```

Every call returns a JSON string. `page` raises `ValueError` when the build
has no such page.

The first search on a build indexes it into a SQLite file in the folder you
name, which takes a few seconds. The index stays there, so this happens once
per build. A page read never waits for it.

Without `build`, the reader uses the Houdini in `$HFS`, then the newest build
it finds. The build comes from the install's own `SYS_Version.h`, never from
its folder name.

