3 releases
0.2.5 | Apr 10, 2024 |
---|---|
0.2.4 |
|
0.2.3 | Jan 16, 2024 |
0.2.2 |
|
0.2.1 | Oct 6, 2023 |
#994 in Web programming
84KB
2K
SLoC
dedoc
Search and view DevDocs from your terminal. Offline. Without browser. Without Python, Javascript or other inconveniences. Even without desktop environment.
App directory is ~/.dedoc
. Docsets go into ~/.dedoc/docsets
. You can also
define $DEDOC_HOME
environment variable to a directory of your choice.
Pages are displayed as markdown documents, and can be piped to less
,
glow
if you're fancy, or any other
pager or markdown reader.
If you have Rust, the preferred way to install dedoc
is by running:
$ cargo install dedoc
Alternatively, precompiled x86_64
binaries for Windows and Linux are
available in releases.
Usage
Remember that running anything with --help
prints a more detailed usage:
$ dedoc [subcommand] --help
To start using dedoc
and fetch all latest available docsets, first run:
$ dedoc fetch
Fetching `https://devdocs.io/docs.json`...
Writing `/home/user/.dedoc/docs.json`...
Fetching has successfully finished.
You can use -f
flag to overwrite the fetched document if you encounter any
issues.
To see available docsets, run:
$ dedoc ls
angular, ansible, apache_http_server, astro, async, ...
Which will list all docsets available to download from file which you
previously fetched. If you need version-specific docs, like vue~3
/~2
, use
-a
flag, which will list everything.
Using -l
flag will show only local docsets, and -n
will print each docset
on a separate line.
Download the documentation:
$ dedoc download rust
Downloading `rust`...
Received 46313067 bytes, file 1 of 2...
Received 3319078 bytes, file 2 of 2...
Extracting to `/home/user/.dedoc/docsets/rust`...
Unpacked 1899 files...
Install has successfully finished.
This will make the documentation available locally as a bunch of HTML pages.
You can use -f
flag here too to forcefully overwrite the documentation.
To search, for instance, for BufReader
from rust
, run:
$ dedoc search rust bufreader
Searching for `bufreader`...
Exact matches in `rust`:
1 std/io/struct.bufreader
2 #method.borrow
3 #method.borrow_mut
4 #method.buffer
5 #method.by_ref
...
You will get search results which are pages that match your query.
Results that start with #
denote fragments. Opening them will result in the
output of only that specific fragment. Likewise, opening a page will show the
entire page. If you want to forcefully print the entire page instead of only a
fragment, use -f
flag.
For a more detailed search, use the -p
flag. It makes search behave similarly
to the grep
command, and will look within all files, find all matches, and
display them with some context around the found section.
Use -i
to perform case-insensitive search, and -w
to search for the whole
sentence.
Finally, to see the page, you can run open
with the path with optional
fragment:
$ dedoc open rust "std/io/struct.bufreader#method.borrow"
...
fn borrow(&self) -> &T
Immutably borrows from an owned value. Read more
source
...
Using -h
with open
makes dedoc
interpret supplied arguments as a path to
HTML file and behave like a HTML to markdown transpiler. To make output wider or
narrower, you can use -c
flag with the number of columns.
Instead of typing out the whole path, you can conveniently append -o
flag the
your previous search
command, which will open n-th matched page or fragment:
$ dedoc search rust bufreader -o 2
This will be as fast as open
, due to search caching. -c
flag here works the
same way as in open
.
You would probably like to use ss
instead of search
, pipe output to a pager
or markdown reader, like less
and forcefully enable colors for it with -c
,
turning the final command into:
$ dedoc -c ss rust bufreader -o 2 | less -r
Happy coding!
Dependencies
~8–18MB
~261K SLoC