mirror of
https://github.com/rust-lang/mdBook
synced 2024-12-13 14:22:35 +00:00
Add "Suggest an edit" link next to "Git repository"
Includes new configuration option `git-repository-edit-baseurl` for supporting non-GitHub repository layouts.
This commit is contained in:
parent
94f7578576
commit
b3670ece0e
4 changed files with 27 additions and 0 deletions
|
@ -201,6 +201,12 @@ The following configuration options are available:
|
|||
an icon link will be output in the menu bar of the book.
|
||||
- **git-repository-icon:** The FontAwesome icon class to use for the git
|
||||
repository link. Defaults to `fa-github`.
|
||||
- **git-repository-edit-baseurl:** The base url for suggesting an edit
|
||||
to individual pages/chapters of the book. If **git-repository-url** is defined,
|
||||
defaults to **git-repository-url**/blob/master which works for e.g. GitHub.
|
||||
The page source path is appended to this url, e.g. `/src/SUMMARY.md`. So when
|
||||
this or **git-repository-url** is configured an icon link will be output in
|
||||
the menu bar of the book.
|
||||
- **redirect:** A subtable used for generating redirects when a page is moved.
|
||||
The table contains key-value pairs where the key is where the redirect file
|
||||
needs to be created, as an absolute path from the build directory, (e.g.
|
||||
|
|
|
@ -522,6 +522,11 @@ pub struct HtmlConfig {
|
|||
///
|
||||
/// [custom domain]: https://docs.github.com/en/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site
|
||||
pub cname: Option<String>,
|
||||
/// Git repository file edit baseurl, below which e.g. src/SUMMARY.md can
|
||||
/// be viewed/edited
|
||||
/// Defaults to git_repository_url + `/blob/master` if `None` and
|
||||
/// git_repository_url is not `None` - works for e.g. GitHub master branch
|
||||
pub git_repository_edit_baseurl: Option<String>,
|
||||
/// This is used as a bit of a workaround for the `mdbook serve` command.
|
||||
/// Basically, because you set the websocket port from the command line, the
|
||||
/// `mdbook serve` command needs a way to let the HTML renderer know where
|
||||
|
|
|
@ -680,6 +680,16 @@ fn make_data(
|
|||
|
||||
if let Some(ref git_repository_url) = html_config.git_repository_url {
|
||||
data.insert("git_repository_url".to_owned(), json!(git_repository_url));
|
||||
let defaultEditBaseUrl = git_repository_url.to_owned() + "/blob/master";
|
||||
let git_repository_edit_baseurl = match html_config.git_repository_edit_baseurl {
|
||||
Some(ref git_repository_edit_baseurl) => git_repository_edit_baseurl,
|
||||
None => &defaultEditBaseUrl,
|
||||
};
|
||||
data.insert("git_repository_edit_baseurl".to_owned(), json!(git_repository_edit_baseurl));
|
||||
} else {
|
||||
if let Some(ref git_repository_edit_baseurl) = html_config.git_repository_edit_baseurl {
|
||||
data.insert("git_repository_edit_baseurl".to_owned(), json!(git_repository_edit_baseurl));
|
||||
}
|
||||
}
|
||||
|
||||
let git_repository_icon = match html_config.git_repository_icon {
|
||||
|
|
|
@ -148,6 +148,12 @@
|
|||
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if git_repository_edit_baseurl}}
|
||||
<a href="{{git_repository_edit_baseurl}}/src/{{path}}" title="Suggest an edit" aria-label="Suggest an edit">
|
||||
<i id="git-edit-button" class="fa fa-edit"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue