You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sh...@apache.org on 2020/06/23 00:18:41 UTC

[lucenenet] 04/09: Gets the "Core" subsite working (finally), now to see if we can get more functional with the header menu

This is an automated email from the ASF dual-hosted git repository.

shazwazza pushed a commit to branch docs-poc
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 90d9b0d8ddf2903cf1e4e02de43937dae9878f74
Author: Shannon <sd...@gmail.com>
AuthorDate: Wed Jun 17 13:22:01 2020 +1000

    Gets the "Core" subsite working (finally), now to see if we can get more functional with the header menu
---
 src/Lucene.Net/overview.md                         | 258 +++++++++++----------
 .../partials/breadcrumb.tmpl.partial               |  16 ++
 .../apidocs/LuceneTemplateAssets/styles/main.css   |  10 +
 websites/apidocs/docfx.core.json                   |  12 +-
 websites/apidocs/docfx.global.json                 |  14 ++
 websites/apidocs/docfx.global.subsite.json         |   3 +
 websites/apidocs/docfx.site.json                   |   3 +
 websites/apidocs/docs.ps1                          |  29 ++-
 websites/apidocs/toc.yml                           |   2 +-
 websites/apidocs/toc/core/toc.yml                  |   6 +-
 websites/apidocs/toc/subsite/toc.yml               |   6 -
 websites/apidocs/toc/toc.yml                       |   2 +
 12 files changed, 216 insertions(+), 145 deletions(-)

diff --git a/src/Lucene.Net/overview.md b/src/Lucene.Net/overview.md
index 169769f..0d50298 100644
--- a/src/Lucene.Net/overview.md
+++ b/src/Lucene.Net/overview.md
@@ -1,125 +1,135 @@
----
-uid: Lucene.Net
-title: Lucene.Net
-summary: *content
----
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-Apache Lucene is a high-performance, full-featured text search engine library. Here's a simple example how to use Lucene for indexing and searching (using JUnit to check if the results are what we expect):
-
-<!-- =   Java2Html Converter 5.0 [2006-03-04] by Markus Gebhard  markus@jave.de   = -->
-
-        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
+---
+uid: Lucene.Net
+title: Lucene.Net
+summary: *content
+---
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+Apache Lucene is a high-performance, full-featured text search engine library. Here's a simple example how to use Lucene for indexing and searching (using JUnit to check if the results are what we expect):
+
+<!-- =   Java2Html Converter 5.0 [2006-03-04] by Markus Gebhard  markus@jave.de   = -->
+
+        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT);
     
-    // Store the index in memory:
-        Directory directory = new RAMDirectory();
-        // To store an index on disk, use this instead:
-        //Directory directory = FSDirectory.open("/tmp/testindex");
-        IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
-        IndexWriter iwriter = new IndexWriter(directory, config);
-        Document doc = new Document();
-        String text = "This is the text to be indexed.";
-        doc.add(new Field("fieldname", text, TextField.TYPE_STORED));
-        iwriter.addDocument(doc);
-        iwriter.close();
-
-        // Now search the index:
-        DirectoryReader ireader = DirectoryReader.open(directory);
-        IndexSearcher isearcher = new IndexSearcher(ireader);
-        // Parse a simple query that searches for "text":
-        QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "fieldname", analyzer);
-        Query query = parser.parse("text");
-        ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
-        assertEquals(1, hits.length);
-        // Iterate through the results:
-        for (int i = 0; i < hits.length;="" i++)="" {="" document="" hitdoc="isearcher.doc(hits[i].doc);" assertequals("this="" is="" the="" text="" to="" be="" indexed.",="" hitdoc.get("fieldname"));="" }="" ireader.close();="">
-
-The Lucene API is divided into several packages:
-
-*   __<xref:Lucene.Net.Analysis>__
-defines an abstract [Analyzer](xref:Lucene.Net.Analysis.Analyzer)
-API for converting text from a {@link java.io.Reader}
-into a [TokenStream](xref:Lucene.Net.Analysis.TokenStream),
-an enumeration of token [Attribute](xref:Lucene.Net.Util.Attribute)s. 
-A TokenStream can be composed by applying [TokenFilter](xref:Lucene.Net.Analysis.TokenFilter)s
-to the output of a [Tokenizer](xref:Lucene.Net.Analysis.Tokenizer). 
-Tokenizers and TokenFilters are strung together and applied with an [Analyzer](xref:Lucene.Net.Analysis.Analyzer). 
-[analyzers-common](../analyzers-common/overview-summary.html) provides a number of Analyzer implementations, including 
-[StopAnalyzer](../analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html)
-and the grammar-based [StandardAnalyzer](../analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html).
-
-*   __<xref:Lucene.Net.Codecs>__
-provides an abstraction over the encoding and decoding of the inverted index structure,
-as well as different implementations that can be chosen depending upon application needs.
-
-*   __<xref:Lucene.Net.Documents>__
-provides a simple [Document](xref:Lucene.Net.Documents.Document)
-class.  A Document is simply a set of named [Field](xref:Lucene.Net.Documents.Field)s,
-whose values may be strings or instances of {@link java.io.Reader}.
-
-*   __<xref:Lucene.Net.Index>__
-provides two primary classes: [IndexWriter](xref:Lucene.Net.Index.IndexWriter),
-which creates and adds documents to indices; and <xref:Lucene.Net.Index.IndexReader>,
-which accesses the data in the index.
-
-*   __<xref:Lucene.Net.Search>__
-provides data structures to represent queries (ie [TermQuery](xref:Lucene.Net.Search.TermQuery)
-for individual words, [PhraseQuery](xref:Lucene.Net.Search.PhraseQuery) 
-for phrases, and [BooleanQuery](xref:Lucene.Net.Search.BooleanQuery) 
-for boolean combinations of queries) and the [IndexSearcher](xref:Lucene.Net.Search.IndexSearcher)
-which turns queries into [TopDocs](xref:Lucene.Net.Search.TopDocs).
-A number of [QueryParser](../queryparser/overview-summary.html)s are provided for producing
-query structures from strings or xml.
-
-*   __<xref:Lucene.Net.Store>__
-defines an abstract class for storing persistent data, the [Directory](xref:Lucene.Net.Store.Directory),
-which is a collection of named files written by an [IndexOutput](xref:Lucene.Net.Store.IndexOutput)
-and read by an [IndexInput](xref:Lucene.Net.Store.IndexInput). 
-Multiple implementations are provided, including [FSDirectory](xref:Lucene.Net.Store.FSDirectory),
-which uses a file system directory to store files, and [RAMDirectory](xref:Lucene.Net.Store.RAMDirectory)
-which implements files as memory-resident data structures.
-
-*   __<xref:Lucene.Net.Util>__
-contains a few handy data structures and util classes, ie [OpenBitSet](xref:Lucene.Net.Util.OpenBitSet)
-and [PriorityQueue](xref:Lucene.Net.Util.PriorityQueue).
-
-To use Lucene, an application should:
-
-1.  Create [Document](xref:Lucene.Net.Documents.Document)s by
-adding
-[Field](xref:Lucene.Net.Documents.Field)s;
-
-2.  Create an [IndexWriter](xref:Lucene.Net.Index.IndexWriter)
-and add documents to it with [AddDocument](xref:Lucene.Net.Index.IndexWriter#methods);
-
-3.  Call [QueryParser.parse()](../queryparser/org/apache/lucene/queryparser/classic/QueryParserBase.html#parse(java.lang.String))
-to build a query from a string; and
-
-4.  Create an [IndexSearcher](xref:Lucene.Net.Search.IndexSearcher)
-and pass the query to its [Search](xref:Lucene.Net.Search.IndexSearcher#methods)
-method.
-
-Some simple examples of code which does this are:
-
-*    [IndexFiles.java](../demo/src-html/org/apache/lucene/demo/IndexFiles.html) creates an
-index for all the files contained in a directory.
-
-*    [SearchFiles.java](../demo/src-html/org/apache/lucene/demo/SearchFiles.html) prompts for
-queries and searches an index.
-
+    // Store the index in memory:
+        Directory directory = new RAMDirectory();
+        // To store an index on disk, use this instead:
+        //Directory directory = FSDirectory.open("/tmp/testindex");
+        IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
+        IndexWriter iwriter = new IndexWriter(directory, config);
+        Document doc = new Document();
+        String text = "This is the text to be indexed.";
+        doc.add(new Field("fieldname", text, TextField.TYPE_STORED));
+        iwriter.addDocument(doc);
+        iwriter.close();
+
+        // Now search the index:
+        DirectoryReader ireader = DirectoryReader.open(directory);
+        IndexSearcher isearcher = new IndexSearcher(ireader);
+        // Parse a simple query that searches for "text":
+        QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "fieldname", analyzer);
+        Query query = parser.parse("text");
+        ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
+        assertEquals(1, hits.length);
+        // Iterate through the results:
+        for (int i = 0; i < hits.length;="" i++)="" {="" document="" hitdoc="isearcher.doc(hits[i].doc);" assertequals("this="" is="" the="" text="" to="" be="" indexed.",="" hitdoc.get("fieldname"));="" }="" ireader.close();="">
+
+The Lucene API is divided into several packages:
+
+*   __<xref:Lucene.Net.Analysis>__
+defines an abstract [Analyzer](xref:Lucene.Net.Analysis.Analyzer)
+API for converting text from a {@link java.io.Reader}
+into a [TokenStream](xref:Lucene.Net.Analysis.TokenStream),
+an enumeration of token [Attribute](xref:Lucene.Net.Util.Attribute)s. 
+A TokenStream can be composed by applying [TokenFilter](xref:Lucene.Net.Analysis.TokenFilter)s
+to the output of a [Tokenizer](xref:Lucene.Net.Analysis.Tokenizer). 
+Tokenizers and TokenFilters are strung together and applied with an [Analyzer](xref:Lucene.Net.Analysis.Analyzer). 
+[analyzers-common](../analyzers-common/overview-summary.html) provides a number of Analyzer implementations, including 
+[StopAnalyzer](../analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html)
+and the grammar-based [StandardAnalyzer](../analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html).
+
+
+*   __<xref:Lucene.Net.Codecs>__
+provides an abstraction over the encoding and decoding of the inverted index structure,
+as well as different implementations that can be chosen depending upon application needs.
+
+
+*   __<xref:Lucene.Net.Documents>__
+provides a simple [Document](xref:Lucene.Net.Documents.Document)
+class.  A Document is simply a set of named [Field](xref:Lucene.Net.Documents.Field)s,
+whose values may be strings or instances of {@link java.io.Reader}.
+
+
+*   __<xref:Lucene.Net.Index>__
+provides two primary classes: [IndexWriter](xref:Lucene.Net.Index.IndexWriter),
+which creates and adds documents to indices; and <xref:Lucene.Net.Index.IndexReader>,
+which accesses the data in the index.
+
+
+*   __<xref:Lucene.Net.Search>__
+provides data structures to represent queries (ie [TermQuery](xref:Lucene.Net.Search.TermQuery)
+for individual words, [PhraseQuery](xref:Lucene.Net.Search.PhraseQuery) 
+for phrases, and [BooleanQuery](xref:Lucene.Net.Search.BooleanQuery) 
+for boolean combinations of queries) and the [IndexSearcher](xref:Lucene.Net.Search.IndexSearcher)
+which turns queries into [TopDocs](xref:Lucene.Net.Search.TopDocs).
+A number of [QueryParser](../queryparser/overview-summary.html)s are provided for producing
+query structures from strings or xml.
+
+
+*   __<xref:Lucene.Net.Store>__
+defines an abstract class for storing persistent data, the [Directory](xref:Lucene.Net.Store.Directory),
+which is a collection of named files written by an [IndexOutput](xref:Lucene.Net.Store.IndexOutput)
+and read by an [IndexInput](xref:Lucene.Net.Store.IndexInput). 
+Multiple implementations are provided, including [FSDirectory](xref:Lucene.Net.Store.FSDirectory),
+which uses a file system directory to store files, and [RAMDirectory](xref:Lucene.Net.Store.RAMDirectory)
+which implements files as memory-resident data structures.
+
+
+*   __<xref:Lucene.Net.Util>__
+contains a few handy data structures and util classes, ie [OpenBitSet](xref:Lucene.Net.Util.OpenBitSet)
+and [PriorityQueue](xref:Lucene.Net.Util.PriorityQueue).
+
+To use Lucene, an application should:
+
+1.  Create [Document](xref:Lucene.Net.Documents.Document)s by
+adding
+[Field](xref:Lucene.Net.Documents.Field)s;
+
+
+2.  Create an [IndexWriter](xref:Lucene.Net.Index.IndexWriter)
+and add documents to it with [AddDocument](xref:Lucene.Net.Index.IndexWriter#methods);
+
+
+3.  Call [QueryParser.parse()](../queryparser/org/apache/lucene/queryparser/classic/QueryParserBase.html#parse(java.lang.String))
+to build a query from a string; and
+
+
+4.  Create an [IndexSearcher](xref:Lucene.Net.Search.IndexSearcher)
+and pass the query to its [Search](xref:Lucene.Net.Search.IndexSearcher#methods)
+method.
+
+Some simple examples of code which does this are:
+
+*    [IndexFiles.java](../demo/src-html/org/apache/lucene/demo/IndexFiles.html) creates an
+index for all the files contained in a directory.
+
+
+*    [SearchFiles.java](../demo/src-html/org/apache/lucene/demo/SearchFiles.html) prompts for
+queries and searches an index.
+
diff --git a/websites/apidocs/LuceneTemplate/partials/breadcrumb.tmpl.partial b/websites/apidocs/LuceneTemplate/partials/breadcrumb.tmpl.partial
new file mode 100644
index 0000000..8320e92
--- /dev/null
+++ b/websites/apidocs/LuceneTemplate/partials/breadcrumb.tmpl.partial
@@ -0,0 +1,16 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+<div class="subnav navbar navbar-default">
+  <div class="container hide-when-search">
+    <ul class="level0 breadcrumb">
+        <li>
+            <a href="/">API</a>
+             <span id="breadcrumb">
+                <ul class="breadcrumb">
+                  <li>{{_tocTitle}}</li>
+                </ul>
+            </span>   
+        </li>
+    </ul>
+  </div>
+</div>
diff --git a/websites/apidocs/LuceneTemplateAssets/styles/main.css b/websites/apidocs/LuceneTemplateAssets/styles/main.css
index 93ed9b5..056bc0e 100644
--- a/websites/apidocs/LuceneTemplateAssets/styles/main.css
+++ b/websites/apidocs/LuceneTemplateAssets/styles/main.css
@@ -91,3 +91,13 @@ body .toc {
 .sidefilter {
     background-color: rgb(247, 247, 247);
 }
+
+.level1.breadcrumb {
+    display: inline;
+}
+
+.level0.breadcrumb .level1.breadcrumb > li:before {
+    content: "\00a0/";
+    padding: 0 5px;
+    color: #ccc;
+}
\ No newline at end of file
diff --git a/websites/apidocs/docfx.core.json b/websites/apidocs/docfx.core.json
index f4a6356..01f42a3 100644
--- a/websites/apidocs/docfx.core.json
+++ b/websites/apidocs/docfx.core.json
@@ -33,17 +33,13 @@
           "**.md"
         ],
         "src": "obj/docfx/api/core"
-      },
-      {
-        "files": [
-          "toc/core/toc.yml"
-        ]
-      },
+      },   
       {
         "files": [
-          "toc.yml"
+          "toc.yml",
+          "core/toc.yml"
         ],
-        "src": "toc/subsite"
+        "src": "toc"
       }
     ],    
     "overwrite": [     
diff --git a/websites/apidocs/docfx.global.json b/websites/apidocs/docfx.global.json
new file mode 100644
index 0000000..de7bcda
--- /dev/null
+++ b/websites/apidocs/docfx.global.json
@@ -0,0 +1,14 @@
+{
+  "_appTitle": "Apache Lucene.NET 4.8.0-beta00008 Documentation",
+  "_disableContribution": false,
+  "_appFaviconPath": "logo/favicon.ico",
+  "_enableSearch": true,
+  "_appLogoPath": "logo/lucene-net-color.png",
+  "_appFooter": "Copyright © 2020 Licensed to the Apache Software Foundation (ASF)",
+  "_gitContribute": {
+    "repo": "https://github.com/apache/lucenenet",
+    "branch": "docs/4.8.0-beta00008",
+    "apiSpecFolder": "websites/apidocs/apiSpec"
+  },
+  "_gitSource": "https://github.com/apache/lucenenet.git"
+}
diff --git a/websites/apidocs/docfx.global.subsite.json b/websites/apidocs/docfx.global.subsite.json
new file mode 100644
index 0000000..e169f9e
--- /dev/null
+++ b/websites/apidocs/docfx.global.subsite.json
@@ -0,0 +1,3 @@
+{
+  "_rel": "/"  
+}
diff --git a/websites/apidocs/docfx.site.json b/websites/apidocs/docfx.site.json
index 631f909..347402f 100644
--- a/websites/apidocs/docfx.site.json
+++ b/websites/apidocs/docfx.site.json
@@ -19,6 +19,9 @@
         "src": "../../branding"
       }
     ],
+    "xref": [
+      "_site/api/core/xrefmap.yml"
+    ],
     "dest": "_site",
     "globalMetadataFiles": ["docfx.global.json"],
     "template": [
diff --git a/websites/apidocs/docs.ps1 b/websites/apidocs/docs.ps1
index a5c613e..886661b 100644
--- a/websites/apidocs/docs.ps1
+++ b/websites/apidocs/docs.ps1
@@ -30,7 +30,10 @@ param (
     # LogLevel can be: Diagnostic, Verbose, Info, Warning, Error
     [Parameter(Mandatory = $false)]
     [string]
-    $LogLevel = 'Warning'
+    $LogLevel = 'Warning',
+    [Parameter(Mandatory = $false)]
+    [string]
+    $BaseUrl = 'http://localhost:8080'
 )
 
 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
@@ -107,6 +110,11 @@ $PluginsFolder = (Join-Path -Path $ApiDocsFolder "lucenetemplate\plugins")
 New-Item $PluginsFolder -type directory -force
 & $msbuild $pluginSln /target:LuceneDocsPlugins "/p:OutDir=$PluginsFolder"
 
+# Set the DocFx MSBuild path manually, for some reason it borks if using the default
+# [Environment]::SetEnvironmentVariable("MSBUILD_EXE_PATH", $msbuild)
+# [Environment]::SetEnvironmentVariable("MSBUILD_EXE_PATH", "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe")
+# [Environment]::SetEnvironmentVariable("VisualStudioVersion", "15.0")
+
 # update the docjx.global.json file based
 $DocFxGlobalJson = Join-Path -Path $ApiDocsFolder "docfx.global.json"
 $DocFxJsonContent = Get-Content $DocFxGlobalJson | ConvertFrom-Json
@@ -116,8 +124,8 @@ $DocFxJsonContent._gitContribute.branch = "docs/$LuceneNetVersion"
 $DocFxJsonContent | ConvertTo-Json -depth 100 | Set-Content $DocFxGlobalJson
 
 $DocFxJsonMeta = @(
-    "docfx.core.json",
-    "docfx.test-framework.json"
+    "docfx.core.json"
+    #"docfx.test-framework.json"
 )
 $DocFxJsonSite = Join-Path -Path $ApiDocsFolder "docfx.site.json"
 
@@ -155,6 +163,21 @@ if ($?) {
         else {
             & $DocFxExe build $projFile --log "$DocFxLog" --loglevel $LogLevel --debug
         }
+
+        # Add the baseUrl to the output xrefmap, see https://github.com/dotnet/docfx/issues/2346#issuecomment-356054027
+        $projFileJson = Get-Content $projFile | ConvertFrom-Json
+        $projBuildDest = $projFileJson.build.dest
+        $buildOutputFolder = Join-Path -Path ((Get-Item $projFile).DirectoryName) $projBuildDest
+        $xrefFile = Join-Path $buildOutputFolder "xrefmap.yml"
+        $xrefMap = Get-Content $xrefFile -Raw
+        $xrefMap = $xrefMap.Replace("### YamlMime:XRefMap", "").Trim()
+        $projBaseUrl = $BaseUrl + $projBuildDest.Substring(5, $projBuildDest.Length - 5) # trim the _site part of the string
+        $xrefMap = "### YamlMime:XRefMap" + [Environment]::NewLine + "baseUrl: " + $projBaseUrl + "/" + [Environment]::NewLine + $xrefMap
+        Set-Content -Path $xrefFile -Value $xrefMap
+
+        # TODO: Figure out why this doesn't work as expected, the absolute path isn't quite right.
+        # // baseUrl: https://xxxx.azurewebsites.net/, https://github.com/dotnet/docfx/issues/2346#issuecomment-356054027
+        # TODO: We want to make the breadcrumb like microsofts so that the first segment of it is the home page.
     }
 }
 
diff --git a/websites/apidocs/toc.yml b/websites/apidocs/toc.yml
index b111255..d8c4edd 100644
--- a/websites/apidocs/toc.yml
+++ b/websites/apidocs/toc.yml
@@ -1,5 +1,5 @@
 - name: Lucene.Net API
-  href: /
+  topicHref: /
 - name: Lucene.Net CLI
   href: ../../src/dotnet/tools/lucene-cli/docs/
   topicHref: ../../src/dotnet/tools/lucene-cli/docs/index.md
diff --git a/websites/apidocs/toc/core/toc.yml b/websites/apidocs/toc/core/toc.yml
index 305d3be..c62eed1 100644
--- a/websites/apidocs/toc/core/toc.yml
+++ b/websites/apidocs/toc/core/toc.yml
@@ -1,3 +1,3 @@
-- name: Lucene.Net
-  href: ../../obj/docfx/api/core/toc.yml
-  topicUid: Lucene.Net
\ No newline at end of file
+- name: Core
+  topicUid: Lucene.Net
+  href: ../../obj/docfx/api/core/toc.yml
\ No newline at end of file
diff --git a/websites/apidocs/toc/subsite/toc.yml b/websites/apidocs/toc/subsite/toc.yml
deleted file mode 100644
index 033099d..0000000
--- a/websites/apidocs/toc/subsite/toc.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-- name: Lucene.Net API
-  href: /
-- name: Lucene.Net CLI
-  href: /cli/index.html
-- name: Lucene.Net Website
-  href: https://lucenenet.apache.org/
\ No newline at end of file
diff --git a/websites/apidocs/toc/toc.yml b/websites/apidocs/toc/toc.yml
new file mode 100644
index 0000000..cc7c562
--- /dev/null
+++ b/websites/apidocs/toc/toc.yml
@@ -0,0 +1,2 @@
+- name: Lucene.Net API
+  topicHref: /
\ No newline at end of file