dotnet / docfx

Static site generator for .NET API documentation.
https://dotnet.github.io/docfx/
MIT License
4.06k stars 865 forks source link

Offline documentation #4578

Closed tommikiviniemi-srs closed 5 years ago

tommikiviniemi-srs commented 5 years ago

The generated documentation needs to be hosted online, which makes it impossible to provide a versioned zip with your projects. Problem arises from CORS.

Maybe the generated output could be modified to allow for offline documentation?

Thanks!

superyyrrzz commented 5 years ago

try -t statictoc, or maybe output PDF?

tommikiviniemi-srs commented 5 years ago

Hi and thanks for the info.

Let's say I'd like to do two passes of generation, one with statistoc and one without. We have our own template so it must be honoured too.

If I put the statictoc theme in the docfx.json file it works (the toc is static, and our theme is there also). However I'd need TWO docfx.json files (one with statictoc and one without), so I'd rather use the command line parameter to opt in to statictoc whenever I need it. However, that command line parameter seems to completely replace the theme so our css styling is no longer there.

Is there any way to additively load a theme via the command line?

Thanks.

superyyrrzz commented 5 years ago

Commandline parameters will overwrite the same one in docfx.json. If I understand correctly, you have 2 scenarios:

  1. Most of times, you need a normal site: use docfx docfx.json with a normal custom template in config.
  2. Sometimes, you need a static site for offline documentaion: use docfx docfx.json -t statictoc,custom_template to fully overwrite the template in config.
tommikiviniemi-srs commented 5 years ago

Thank you, regarding 2), that's perfect and exactly what I needed!

One piece of feedback would be that the DocFx system is incredibly powerful and configurable, but it's very challenging to find the information on how to configure it. The main pages that document the command line parameters and json parameters don't contain all of the commands, and they are often instead referenced in GitHub tickets and such (take the comma separation between templates for example - I couldn't find information about the exact syntax for it anywhere).

Thanks again!

tommikiviniemi-srs commented 5 years ago

Btw the statictoc template does not add the .active class (or any other annotation) to the currently selected tab, while the regular one does. So I don't know if it's possible to style the selected tab with the statictoc theme.

Is this by design or an issue?

superyyrrzz commented 5 years ago

If you are using IE, it should be existing bug #2910 If you are using Chrome, this could be a bug in the statictoc template.

tommikiviniemi-srs commented 5 years ago

Hi,

It happens both with Chrome and Safari (haven't tested with IE but it seems to be a template problem so am assuming it happens there as well).

So the bug is that with the statictoc template, the tabs (as coming from toc) are such as <a href="../api/index.html" title="Api Documentation">Api Documentation</a> even for the currently active tab. So the active tab is missing class class="active", which is correctly assigned with the standard template. This makes it impossible to highlight the selected tab with the statictoc template.

Should I create a bug report somehow or is this enough?

Thanks!

superyyrrzz commented 5 years ago

@tommikiviniemi-srs You can report a bug and close this issue, as this bug is a bit away from general "offline documentation" topic.

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in a week if no further activity occurs.

stale[bot] commented 5 years ago

Closing this issue after a prolonged period of inactivity. If you still think this issue is relevant, please feel free to ping a maintainer or leave a comment.

g-amador commented 1 year ago

This issue is still relevant