Github user Shazwazza commented on the issue:

    https://github.com/apache/lucenenet/pull/206
  
    Hi all,
    
    Here's some feedback on many of the above questions/comments:
    
    I've pushed some updates to this PR which:
    
    * Fixed up a couple of cref's
    * Updated to use latest docfx v2.17.x release (be sure to delete the /tools 
folder) to get the latest version when running the ps1 script. Unfortunatey 
upgrading to the very latest docfx 2.19.2 causes build errors. I also checked 
that 2.18.x also causes these build errors. I'm putting together a bug report 
for this now. I has to do with some YAML parsing errors and things like "quoted 
scalar" and "orphaned high surrogate" which sound fun ;) 
    * Adds some comments to the ps1 script about where other docs live and 
potentially somehow scraping/automating fetching these docs
    * Update the home page of the docs to mimic 
https://lucene.apache.org/core/4_8_0/, I've just copied the HTML, then removed 
the html/body tags and replaced the header tags with Markdown header tags so 
they are parsed correctly by DocFx to create the side menu. The links 
throughout this document will need to be updated since they still point to the 
lucene.apache.org links. I've done this to show that HTML markup works happily 
side by side and inline with Markdown with DocFx which will probably make it 
easier to scrape docs.
    * Adds a landing page in the API Docs section which is a copy of this page: 
https://github.com/apache/lucene-solr/blob/branch_4x/lucene/core/src/java/overview.html
 (links would need to be fixed), this file is committed to /api/index.md
    * Adds example docs and table of contents: /api/search/highlight which 
includes the docs taken from the package.html files (i.e. 
https://github.com/apache/lucene-solr/blob/releases/lucene-solr/4.8.0/lucene/highlighter/src/java/org/apache/lucene/search/highlight/package.html)
 
    * Updated the header menu to point to custom documentation articles and 
also the API docs
    
    I cannot figure out why docfx is complaining about System cref's such as 
`Invalid cref value "T:IDictionary{string, string}"`, i think it has to do with 
a missing config `externalReference` which is now obsoleted so hoping that the 
newer docfx version fixes this once i get it building.
    
    If you wish to test this setup without waiting for the entire metadata for 
all classes to be created, you can update the /docfx.json file 
metadata/src/files section from `"**.csproj"`  to `"**/Lucene.Net.csproj"`  
(which will just generate the API docs for that particular project), or just 
clear that out entirely if you just want to build the non-api docs for testing. 
    
    Currently DocFx does not support the namespace style docuementation that 
Sandcastle used to support, there's an open issue for that here: 
https://github.com/dotnet/docfx/issues/952 So for namespace style documentation 
such as 
https://github.com/apache/lucene-solr/blob/releases/lucene-solr/4.8.0/lucene/highlighter/src/java/org/apache/lucene/search/highlight/package.html
 we would currently have to host these as documentation articles. Currently 
I've put documentation articles in the /docs folder but it's possible to have 
any number of different articles folders if required.
    
    As for changing how the namespaces are shown on the left hand side and 
ordering by more important ones, this could be achieved by modifying the 
generated /api/toc.yml file after it is built. This file is autogenerated by 
docfx when it's building the API docs. As far as I can tell one way to do this 
would be with a custom Post Processor: 
https://dotnet.github.io/docfx/tutorial/howto_add_a_customized_post_processor.html
 but OOTB I don't think this is possible with standard configuration.
    
    I'm not really sure what we can do about the .NET Standard vs .NET 
Framework, there is some mention of this in this issue: 
https://github.com/dotnet/docfx/issues/1518 which apparently is fixed in this 
PR https://github.com/dotnet/docfx/pull/1549 . I will just need to figure out 
exactly what all this means and what the options are. 
    
    For token replacement, i think this could also be achieved with a Post 
Processor in one way or another 
https://dotnet.github.io/docfx/tutorial/howto_add_a_customized_post_processor.html,
 though i did see this feature in later release notes: 
https://github.com/dotnet/docfx/issues/1737 
    
    There's quite a lot of docs on docfx here 
http://dotnet.github.io/docfx/tutorial/docfx_getting_started.html 
    
    Hope this answers a few of your questions. I'll keep researching into the 
new docfx versions, what support it has and why we can't use it currently.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to