This is a copy of gobyexample adapted for Dash.
Dash is a macOS documentation viewer with offline capabilities. As you can see, it's pretty easy to extend and add custom HTML based documentation into the app.
- Clone this repository with submodules:
git clone --recursive https://github.com/pvtmert/gobyexample.docset
- If you missed
--recursive
by mistake, you can do; git submodule update --init --recursive
-
Create/initialize indexes using
make -C Contents clean index
-
Add this to the Dash;
- Open Dash,
- Open Preferences (
CMD+,
), - In the DocSets tab,
- Click little
+
button on lower-left corner, - Select
Add local Docset
, - Point to this repository.
Firstly, when cloned, thanks to the magic of Info.plist
and .docset
extension, Dash will be handling it if installed properly.
I did not want to clutter up the repository by including SQLite3 indexes. Also, they might change in the future in the upstream repository.
The upstream repository added as a submodule, to update it, you can execute
make -C Contents update
.
- Use
make -C Contents clean
to remove index. - Use
make -C Contents index
to create index.
Note: index re-creation is needed after updating the submodule.
The upstream repository already includes prebuild HTML files inside the public
directory in its root.
There is a file called
examples.txt
,
which contains page titles in each line.
Even though this is not a stable and reliable way to extract, their convention
is just removing punctuation, adding dashes (-
) instead of spaces to the
lowercased title.
So,
Exec'ing Processes
becomesexecing-processes
.
The index
rule of makefile
creates necessary tables and
constraints. Then loops over the
examples.txt
to generate
proper SQL with basic shell utilities.
As in any software, bugs are highly probable and scared of light. If you find them, please open an issue with a list of steps to reproduce.
If you also fix them, pull-requests are very-much welcome!
Do whatever you want. I neither own Dash or gobyexample. Keep in mind that Dash is neither free-software nor open-source. It has a trial period and nags you with your time after that period ends. However, you can use it as long as you want.
You should consult respective repositories and their owners regarding permissions.