Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
1fd471e9
Unverified
Commit
1fd471e9
authored
Jul 07, 2025
by
Michael Yao
Committed by
GitHub
Jul 07, 2025
Browse files
Add docstrings to url_schemes.py to improve readability (#20545)
Signed-off-by:
windsonsea
<
haifeng.yao@daocloud.io
>
parent
2c5ebec0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
69 additions
and
1 deletion
+69
-1
docs/mkdocs/hooks/url_schemes.py
docs/mkdocs/hooks/url_schemes.py
+69
-1
No files found.
docs/mkdocs/hooks/url_schemes.py
View file @
1fd471e9
# SPDX-License-Identifier: Apache-2.0
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
"""
This is basically a port of MyST parser’s external URL resolution mechanism
(https://myst-parser.readthedocs.io/en/latest/syntax/cross-referencing.html#customising-external-url-resolution)
to work with MkDocs.
It allows Markdown authors to use GitHub shorthand links like:
- [Text](gh-issue:123)
- <gh-pr:456>
- [File](gh-file:path/to/file.py#L10)
These are automatically rewritten into fully qualified GitHub URLs pointing to
issues, pull requests, files, directories, or projects in the
`vllm-project/vllm` repository.
The goal is to simplify cross-referencing common GitHub resources
in project docs.
"""
import
regex
as
re
import
regex
as
re
from
mkdocs.config.defaults
import
MkDocsConfig
from
mkdocs.config.defaults
import
MkDocsConfig
from
mkdocs.structure.files
import
Files
from
mkdocs.structure.files
import
Files
...
@@ -7,11 +26,42 @@ from mkdocs.structure.pages import Page
...
@@ -7,11 +26,42 @@ from mkdocs.structure.pages import Page
def
on_page_markdown
(
markdown
:
str
,
*
,
page
:
Page
,
config
:
MkDocsConfig
,
def
on_page_markdown
(
markdown
:
str
,
*
,
page
:
Page
,
config
:
MkDocsConfig
,
files
:
Files
):
files
:
Files
)
->
str
:
"""
Custom MkDocs plugin hook to rewrite special GitHub reference links
in Markdown.
This function scans the given Markdown content for specially formatted
GitHub shorthand links, such as:
- `[Link text](gh-issue:123)`
- `<gh-pr:456>`
And rewrites them into fully-qualified GitHub URLs with GitHub icons:
- `[:octicons-mark-github-16: Link text](https://github.com/vllm-project/vllm/issues/123)`
- `[:octicons-mark-github-16: Pull Request #456](https://github.com/vllm-project/vllm/pull/456)`
Supported shorthand types:
- `gh-issue`
- `gh-pr`
- `gh-project`
- `gh-dir`
- `gh-file`
Args:
markdown (str): The raw Markdown content of the page.
page (Page): The MkDocs page object being processed.
config (MkDocsConfig): The MkDocs site configuration.
files (Files): The collection of files in the MkDocs build.
Returns:
str: The updated Markdown content with GitHub shorthand links replaced.
"""
gh_icon
=
":octicons-mark-github-16:"
gh_icon
=
":octicons-mark-github-16:"
gh_url
=
"https://github.com"
gh_url
=
"https://github.com"
repo_url
=
f
"
{
gh_url
}
/vllm-project/vllm"
repo_url
=
f
"
{
gh_url
}
/vllm-project/vllm"
org_url
=
f
"
{
gh_url
}
/orgs/vllm-project"
org_url
=
f
"
{
gh_url
}
/orgs/vllm-project"
# Mapping of shorthand types to their corresponding GitHub base URLs
urls
=
{
urls
=
{
"issue"
:
f
"
{
repo_url
}
/issues"
,
"issue"
:
f
"
{
repo_url
}
/issues"
,
"pr"
:
f
"
{
repo_url
}
/pull"
,
"pr"
:
f
"
{
repo_url
}
/pull"
,
...
@@ -19,6 +69,8 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
...
@@ -19,6 +69,8 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
"dir"
:
f
"
{
repo_url
}
/tree/main"
,
"dir"
:
f
"
{
repo_url
}
/tree/main"
,
"file"
:
f
"
{
repo_url
}
/blob/main"
,
"file"
:
f
"
{
repo_url
}
/blob/main"
,
}
}
# Default title prefixes for auto links
titles
=
{
titles
=
{
"issue"
:
"Issue #"
,
"issue"
:
"Issue #"
,
"pr"
:
"Pull Request #"
,
"pr"
:
"Pull Request #"
,
...
@@ -27,11 +79,19 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
...
@@ -27,11 +79,19 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
"file"
:
""
,
"file"
:
""
,
}
}
# Regular expression to match GitHub shorthand links
scheme
=
r
"gh-(?P<type>.+?):(?P<path>.+?)(#(?P<fragment>.+?))?"
scheme
=
r
"gh-(?P<type>.+?):(?P<path>.+?)(#(?P<fragment>.+?))?"
inline_link
=
re
.
compile
(
r
"\[(?P<title>[^\[]+?)\]\("
+
scheme
+
r
"\)"
)
inline_link
=
re
.
compile
(
r
"\[(?P<title>[^\[]+?)\]\("
+
scheme
+
r
"\)"
)
auto_link
=
re
.
compile
(
f
"<
{
scheme
}
>"
)
auto_link
=
re
.
compile
(
f
"<
{
scheme
}
>"
)
def
replace_inline_link
(
match
:
re
.
Match
)
->
str
:
def
replace_inline_link
(
match
:
re
.
Match
)
->
str
:
"""
Replaces a matched inline-style GitHub shorthand link
with a full Markdown link.
Example:
[My issue](gh-issue:123) → [:octicons-mark-github-16: My issue](https://github.com/vllm-project/vllm/issues/123)
"""
url
=
f
'
{
urls
[
match
.
group
(
"type"
)]
}
/
{
match
.
group
(
"path"
)
}
'
url
=
f
'
{
urls
[
match
.
group
(
"type"
)]
}
/
{
match
.
group
(
"path"
)
}
'
if
fragment
:
=
match
.
group
(
"fragment"
):
if
fragment
:
=
match
.
group
(
"fragment"
):
url
+=
f
"#
{
fragment
}
"
url
+=
f
"#
{
fragment
}
"
...
@@ -39,6 +99,13 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
...
@@ -39,6 +99,13 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
return
f
'[
{
gh_icon
}
{
match
.
group
(
"title"
)
}
](
{
url
}
)'
return
f
'[
{
gh_icon
}
{
match
.
group
(
"title"
)
}
](
{
url
}
)'
def
replace_auto_link
(
match
:
re
.
Match
)
->
str
:
def
replace_auto_link
(
match
:
re
.
Match
)
->
str
:
"""
Replaces a matched autolink-style GitHub shorthand
with a full Markdown link.
Example:
<gh-pr:456> → [:octicons-mark-github-16: Pull Request #456](https://github.com/vllm-project/vllm/pull/456)
"""
type
=
match
.
group
(
"type"
)
type
=
match
.
group
(
"type"
)
path
=
match
.
group
(
"path"
)
path
=
match
.
group
(
"path"
)
title
=
f
"
{
titles
[
type
]
}{
path
}
"
title
=
f
"
{
titles
[
type
]
}{
path
}
"
...
@@ -48,6 +115,7 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
...
@@ -48,6 +115,7 @@ def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig,
return
f
"[
{
gh_icon
}
{
title
}
](
{
url
}
)"
return
f
"[
{
gh_icon
}
{
title
}
](
{
url
}
)"
# Replace both inline and autolinks
markdown
=
inline_link
.
sub
(
replace_inline_link
,
markdown
)
markdown
=
inline_link
.
sub
(
replace_inline_link
,
markdown
)
markdown
=
auto_link
.
sub
(
replace_auto_link
,
markdown
)
markdown
=
auto_link
.
sub
(
replace_auto_link
,
markdown
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment