This is an automated email from the ASF dual-hosted git repository. nightowl888 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit 11c10bd2338fe33b3ae2ae31d3838f4f077c2e3c Author: Shad Storhaug <[email protected]> AuthorDate: Thu Feb 24 13:46:08 2022 +0700 Docs: Updated View Source link to use current version tag rather than master branch --- .../LuceneTemplate/ManagedReference.extension.js | 6 +- .../apidocs/Templates/LuceneTemplate/common.js | 245 +++++++++++++++++++++ websites/apidocs/docfx.global.json | 9 +- websites/apidocs/docfx.global.subsite.json | 5 +- websites/apidocs/docs.ps1 | 1 + websites/apidocs/toc.yml | 6 +- websites/apidocs/toc/toc.yml | 6 +- 7 files changed, 263 insertions(+), 15 deletions(-) diff --git a/websites/apidocs/Templates/LuceneTemplate/ManagedReference.extension.js b/websites/apidocs/Templates/LuceneTemplate/ManagedReference.extension.js index 03bb818..af52187 100644 --- a/websites/apidocs/Templates/LuceneTemplate/ManagedReference.extension.js +++ b/websites/apidocs/Templates/LuceneTemplate/ManagedReference.extension.js @@ -1,4 +1,4 @@ -/* +/* * 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 @@ -29,6 +29,10 @@ exports.preTransform = function (model) { if (model && model._gitSource && model.source && model.source.remote && model.source.remote.repo) { model.source.remote.repo = model._gitSource; } + + if (model && model._gitContribute && model._gitContribute.tag && model.source && model.source.remote) { + model.source.remote.tag = model._gitContribute.tag; + } return model; } diff --git a/websites/apidocs/Templates/LuceneTemplate/common.js b/websites/apidocs/Templates/LuceneTemplate/common.js new file mode 100644 index 0000000..d56c74f --- /dev/null +++ b/websites/apidocs/Templates/LuceneTemplate/common.js @@ -0,0 +1,245 @@ +/* + * 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. + */ + +// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information. +exports.path = {}; +exports.path.getFileNameWithoutExtension = getFileNameWithoutExtension; +exports.path.getDirectoryName = getDirectoryName; + +exports.getHtmlId = getHtmlId; + +exports.getViewSourceHref = getViewSourceHref; +exports.getImproveTheDocHref = getImproveTheDocHref; +exports.processSeeAlso = processSeeAlso; + +exports.isAbsolutePath = isAbsolutePath; +exports.isRelativePath = isRelativePath; + +function getFileNameWithoutExtension(path) { + if (!path || path[path.length - 1] === '/' || path[path.length - 1] === '\\') return ''; + var fileName = path.split('\\').pop().split('/').pop(); + return fileName.slice(0, fileName.lastIndexOf('.')); +} + +function getDirectoryName(path) { + if (!path) return ''; + var index = path.lastIndexOf('/'); + return path.slice(0, index + 1); +} + +function getHtmlId(input) { + if (!input) return ''; + return input.replace(/\W/g, '_'); +} + +// Note: the parameter `gitContribute` won't be used in this function +function getViewSourceHref(item, gitContribute, gitUrlPattern) { + if (!item || !item.source || !item.source.remote) return ''; + return getRemoteUrl(item.source.remote, item.source.startLine - '0' + 1, null, gitUrlPattern); +} + +function getImproveTheDocHref(item, gitContribute, gitUrlPattern) { + if (!item) return ''; + if (!item.documentation || !item.documentation.remote) { + // LUCENENET TODO: Set up Improve This Doc to edit the .cs file (the xml doc comments) rather than creating a new .md file + //if (item || item.source || item.source.remote) { + // return getRemoteUrl(item.source.remote, item.source.startLine - '0' + 1, gitContribute, gitUrlPattern); + //} else { + return getNewFileUrl(item, gitContribute, gitUrlPattern); + //} + } else { + return getRemoteUrl(item.documentation.remote, item.documentation.startLine + 1, gitContribute, gitUrlPattern); + } +} + +function processSeeAlso(item) { + if (item.seealso) { + for (var key in item.seealso) { + addIsCref(item.seealso[key]); + } + } + item.seealso = item.seealso || null; +} + +function isAbsolutePath(path) { + return /^(\w+:)?\/\//g.test(path); +} + +function isRelativePath(path) { + if (!path) return false; + return !exports.isAbsolutePath(path); +} + +var gitUrlPatternItems = { + 'github': { + // HTTPS form: https://github.com/{org}/{repo}.git + // SSH form: [email protected]:{org}/{repo}.git + // generate URL: https://github.com/{org}/{repo}/blob/{branch}/{path} + 'testRegex': /^(https?:\/\/)?(\S+\@)?(\S+\.)?github\.com(\/|:).*/i, + 'generateUrl': function (gitInfo) { + var url = normalizeGitUrlToHttps(gitInfo.repo); + url = getRepoWithoutGitExtension(url); + url += '/blob' + '/' + gitInfo.branch + '/' + gitInfo.path; + if (gitInfo.startLine && gitInfo.startLine > 0) { + url += '/#L' + gitInfo.startLine; + } + return url; + }, + 'generateNewFileUrl': function (gitInfo, uid) { + var url = normalizeGitUrlToHttps(gitInfo.repo); + url = getRepoWithoutGitExtension(url); + url += '/new'; + url += '/' + gitInfo.branch; + url += '/' + getOverrideFolder(gitInfo.apiSpecFolder); + url += '/new?filename=' + getHtmlId(uid) + '.md'; + url += '&value=' + encodeURIComponent(getOverrideTemplate(uid)); + return url; + } + }, + 'vso': { + // HTTPS form: https://{user}.visualstudio.com/{org}/_git/{repo} + // SSH form: ssh://{user}@{user}.visualstudio.com:22/{org}/_git/{repo} + // generated URL under branch: https://{user}.visualstudio.com/{org}/_git/{repo}?path={path}&version=GB{branch} + // generated URL under detached HEAD: https://{user}.visualstudio.com/{org}/_git/{repo}?path={path}&version=GC{commit} + 'testRegex': /^(https?:\/\/)?(ssh:\/\/\S+\@)?(\S+\.)?visualstudio\.com(\/|:).*/i, + 'generateUrl': function (gitInfo) { + var url = normalizeGitUrlToHttps(gitInfo.repo); + var branchPrefix = /[0-9a-fA-F]{40}/.test(gitInfo.branch) ? 'GC' : 'GB'; + url += '?path=' + gitInfo.path + '&version=' + branchPrefix + gitInfo.branch; + if (gitInfo.startLine && gitInfo.startLine > 0) { + url += '&line=' + gitInfo.startLine; + } + return url; + }, + 'generateNewFileUrl': function (gitInfo, uid) { + return ''; + } + } +} + +function getRepoWithoutGitExtension(repo) { + if (repo.substr(-4) === '.git') { + repo = repo.substr(0, repo.length - 4); + } + return repo; +} + +function normalizeGitUrlToHttps(repo) { + var pos = repo.indexOf('@'); + if (pos == -1) return repo; + return 'https://' + repo.substr(pos + 1).replace(/:[0-9]+/g, '').replace(/:/g, '/'); +} + +function getNewFileUrl(item, gitContribute, gitUrlPattern) { + // do not support VSO for now + if (!item.source) { + return ''; + } + + var gitInfo = getGitInfo(gitContribute, item.source.remote); + if (!gitInfo.repo || !gitInfo.branch || !gitInfo.path) { + return ''; + } + + var patternName = getPatternName(gitInfo.repo, gitUrlPattern); + if (!patternName) return patternName; + return gitUrlPatternItems[patternName].generateNewFileUrl(gitInfo, item.uid); +} + +function getRemoteUrl(remote, startLine, gitContribute, gitUrlPattern) { + var gitInfo = getGitInfo(gitContribute, remote); + if (!gitInfo.repo || !gitInfo.branch || !gitInfo.path) { + return ''; + } + + var patternName = getPatternName(gitInfo.repo, gitUrlPattern); + if (!patternName) return ''; + + gitInfo.startLine = startLine; + // LUCENENET specific - change view source link to show latest tag, not the docs branch + if (!gitContribute && gitInfo.tag) { + gitInfo.branch = gitInfo.tag; + } + return gitUrlPatternItems[patternName].generateUrl(gitInfo); +} + +function getGitInfo(gitContribute, gitRemote) { + // apiSpecFolder defines the folder contains overwrite files for MRef, the default value is apiSpec + var defaultApiSpecFolder = 'apiSpec'; + + var result = {}; + if (gitContribute && gitContribute.apiSpecFolder) { + result.apiSpecFolder = gitContribute.apiSpecFolder; + } else { + result.apiSpecFolder = defaultApiSpecFolder; + } + mergeKey(gitContribute, gitRemote, result, 'repo'); + mergeKey(gitContribute, gitRemote, result, 'branch'); + mergeKey(gitContribute, gitRemote, result, 'path'); + mergeKey(gitContribute, gitRemote, result, 'tag'); // LUCENENET specific + + return result; + + function mergeKey(source, sourceFallback, dest, key) { + if (source && source.hasOwnProperty(key)) { + dest[key] = source[key]; + } else if (sourceFallback && sourceFallback.hasOwnProperty(key)) { + dest[key] = sourceFallback[key]; + } + } +} + +function getPatternName(repo, gitUrlPattern) { + if (gitUrlPattern && gitUrlPattern.toLowerCase() in gitUrlPatternItems) { + return gitUrlPattern.toLowerCase(); + } else { + for (var p in gitUrlPatternItems) { + if (gitUrlPatternItems[p].testRegex.test(repo)) { + return p; + } + } + } + return ''; +} + +function getOverrideFolder(path) { + if (!path) return ""; + path = path.replace('\\', '/'); + if (path.charAt(path.length - 1) == '/') path = path.substring(0, path.length - 1); + return path; +} + +function getOverrideTemplate(uid) { + if (!uid) return ""; + var content = ""; + content += "---\n"; + content += "uid: " + uid + "\n"; + content += "summary: '*You can override summary for the API here using *MARKDOWN* syntax'\n"; + content += "---\n"; + content += "\n"; + content += "*Please type below more information about this API:*\n"; + content += "\n"; + return content; +} + +function addIsCref(seealso) { + if (!seealso.linkType || seealso.linkType.toLowerCase() == "cref") { + seealso.isCref = true; + } +} diff --git a/websites/apidocs/docfx.global.json b/websites/apidocs/docfx.global.json index 8e0f4fc..b46149e 100644 --- a/websites/apidocs/docfx.global.json +++ b/websites/apidocs/docfx.global.json @@ -1,14 +1,15 @@ { - "_appTitle": "Apache Lucene.NET 4.8.0-beta00015 Documentation", + "_appTitle": "Apache Lucene.NET 4.8.0-beta00016 Documentation", "_disableContribution": false, "_appFaviconPath": "logo/favicon.ico", "_enableSearch": true, "_appLogoPath": "logo/lucene-net-color.png", - "_appFooter": "Copyright \u0026copy; 2021 The Apache Software Foundation, Licensed under the \u003ca href=\u0027http://www.apache.org/licenses/LICENSE-2.0\u0027 target=\u0027_blank\u0027\u003eApache License, Version 2.0\u003c/a\u003e\u003cbr/\u003e \u003csmall\u003eApache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. \u003cbr/\u003eAll other marks mentioned may be trademarks or regist [...] + "_appFooter": "Copyright \u0026copy; 2022 The Apache Software Foundation, Licensed under the \u003ca href=\u0027http://www.apache.org/licenses/LICENSE-2.0\u0027 target=\u0027_blank\u0027\u003eApache License, Version 2.0\u003c/a\u003e\u003cbr/\u003e \u003csmall\u003eApache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. \u003cbr/\u003eAll other marks mentioned may be trademarks or regist [...] "_gitContribute": { "repo": "https://github.com/apache/lucenenet", - "branch": "docs/4.8.0-beta00015", - "apiSpecFolder": "websites/apidocs/apiSpec" + "branch": "docs/4.8.0-beta00016", + "apiSpecFolder": "websites/apidocs/apiSpec", + "tag": "Lucene.Net_4_8_0_beta00016" }, "_gitSource": "https://github.com/apache/lucenenet.git" } diff --git a/websites/apidocs/docfx.global.subsite.json b/websites/apidocs/docfx.global.subsite.json index b5a4166..6cf6b98 100644 --- a/websites/apidocs/docfx.global.subsite.json +++ b/websites/apidocs/docfx.global.subsite.json @@ -1,5 +1,4 @@ -{ +{ "_rel": "https://lucenenet.apache.org/docs/4.8.0-beta00009/", - "_api": "https://lucenenet.apache.org/docs/4.8.0-beta00015/" + "_api": "https://lucenenet.apache.org/docs/4.8.0-beta00016/" } - diff --git a/websites/apidocs/docs.ps1 b/websites/apidocs/docs.ps1 index 09044fa..38728b5 100644 --- a/websites/apidocs/docs.ps1 +++ b/websites/apidocs/docs.ps1 @@ -125,6 +125,7 @@ $DocFxJsonContent = Get-Content $DocFxGlobalJson | ConvertFrom-Json $DocFxJsonContent._appFooter = "Copyright © $((Get-Date).Year) The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br/> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br/>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>" $DocFxJsonContent._appTitle = "Apache Lucene.NET $LuceneNetVersion Documentation" $DocFxJsonContent._gitContribute.branch = "docs/$LuceneNetVersion" +$DocFxJsonContent._gitContribute.tag = "$VCSLabel" $DocFxJsonContent | ConvertTo-Json -depth 100 | Set-Content $DocFxGlobalJson # NOTE: The order of these depends on if one of the projects requries the xref map of another, normally all require the core xref map diff --git a/websites/apidocs/toc.yml b/websites/apidocs/toc.yml index 72dbfa1..446bef5 100644 --- a/websites/apidocs/toc.yml +++ b/websites/apidocs/toc.yml @@ -1,9 +1,7 @@ -- name: Lucene.Net API - topicHref: https://lucenenet.apache.org/docs/4.8.0-beta00015/ +- name: Lucene.Net API + topicHref: https://lucenenet.apache.org/docs/4.8.0-beta00016/ - name: Lucene.Net CLI href: ../../src/dotnet/tools/lucene-cli/docs/ topicHref: ../../src/dotnet/tools/lucene-cli/docs/index.md - name: Lucene.Net Website href: https://lucenenet.apache.org/ - - diff --git a/websites/apidocs/toc/toc.yml b/websites/apidocs/toc/toc.yml index eab677c..f4c7b8d 100644 --- a/websites/apidocs/toc/toc.yml +++ b/websites/apidocs/toc/toc.yml @@ -1,6 +1,6 @@ -- name: Lucene.Net API - topicHref: https://lucenenet.apache.org/docs/4.8.0-beta00015 +- name: Lucene.Net API + topicHref: https://lucenenet.apache.org/docs/4.8.0-beta00016 - name: Lucene.Net CLI - topicHref: https://lucenenet.apache.org/docs/4.8.0-beta00015/cli/index.html + topicHref: https://lucenenet.apache.org/docs/4.8.0-beta00016/cli/index.html - name: Lucene.Net Website topicHref: https://lucenenet.apache.org/
