[ReviewFix] Replace edit baseurl with template and make visibility independent of git_repository_url.
This commit is contained in:
parent
dcc642e66d
commit
bbf54d7459
|
@ -201,12 +201,15 @@ The following configuration options are available:
|
||||||
an icon link will be output in the menu bar of the book.
|
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
|
- **git-repository-icon:** The FontAwesome icon class to use for the git
|
||||||
repository link. Defaults to `fa-github`.
|
repository link. Defaults to `fa-github`.
|
||||||
- **git-repository-edit-baseurl:** The base url for suggesting an edit
|
- **git-repository-edit-url-template:** Git repository file edit url
|
||||||
to individual pages/chapters of the book. If **git-repository-url** is defined,
|
template, when provided shows an "Suggest an edit" button for
|
||||||
defaults to **git-repository-url**/blob/master which works for e.g. GitHub.
|
directly jumping to editing the currently viewed page in the git
|
||||||
The page source path is appended to this url, e.g. `/src/SUMMARY.md`. So when
|
repository. For e.g. GitHub projects set this to
|
||||||
this or **git-repository-url** is configured an icon link will be output in
|
`https://github.com/<owner>/<repo>/edit/master/{path}` or for
|
||||||
the menu bar of the book.
|
Bitbucket projects set it to
|
||||||
|
`https://bitbucket.org/<owner>/<repo>/src/master/{path}?mode=edit`
|
||||||
|
where {path} will be replaced with the full path of the file in the
|
||||||
|
repository.
|
||||||
- **redirect:** A subtable used for generating redirects when a page is moved.
|
- **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
|
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.
|
needs to be created, as an absolute path from the build directory, (e.g.
|
||||||
|
|
|
@ -522,11 +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
|
/// [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>,
|
pub cname: Option<String>,
|
||||||
/// Git repository file edit baseurl, below which e.g. src/SUMMARY.md can
|
/// Git repository file edit url template, when set shows an
|
||||||
/// be viewed/edited
|
/// "Suggest an edit" button for directly jumping to editing the
|
||||||
/// Defaults to git_repository_url + `/blob/master` if `None` and
|
/// currently viewed page in the git repository. Contains {path}
|
||||||
/// git_repository_url is not `None` - works for e.g. GitHub master branch
|
/// that is replaced with chapter source file path
|
||||||
pub git_repository_edit_baseurl: Option<String>,
|
pub git_repository_edit_url_template: Option<String>,
|
||||||
/// This is used as a bit of a workaround for the `mdbook serve` command.
|
/// 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
|
/// 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
|
/// `mdbook serve` command needs a way to let the HTML renderer know where
|
||||||
|
|
|
@ -37,6 +37,15 @@ impl HtmlHandlebars {
|
||||||
_ => return Ok(()),
|
_ => return Ok(()),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if let Some(ref git_repository_edit_url_template) =
|
||||||
|
ctx.html_config.git_repository_edit_url_template
|
||||||
|
{
|
||||||
|
let full_path = "src/".to_owned() + path.to_str().unwrap();
|
||||||
|
let edit_url = git_repository_edit_url_template.replace("{path}", &full_path);
|
||||||
|
ctx.data
|
||||||
|
.insert("git_repository_edit_url".to_owned(), json!(edit_url));
|
||||||
|
}
|
||||||
|
|
||||||
let content = ch.content.clone();
|
let content = ch.content.clone();
|
||||||
let content = utils::render_markdown(&content, ctx.html_config.curly_quotes);
|
let content = utils::render_markdown(&content, ctx.html_config.curly_quotes);
|
||||||
|
|
||||||
|
@ -680,22 +689,6 @@ fn make_data(
|
||||||
|
|
||||||
if let Some(ref git_repository_url) = html_config.git_repository_url {
|
if let Some(ref git_repository_url) = html_config.git_repository_url {
|
||||||
data.insert("git_repository_url".to_owned(), json!(git_repository_url));
|
data.insert("git_repository_url".to_owned(), json!(git_repository_url));
|
||||||
let default_edit_baseurl = 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 => &default_edit_baseurl,
|
|
||||||
};
|
|
||||||
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 {
|
let git_repository_icon = match html_config.git_repository_icon {
|
||||||
|
|
|
@ -148,8 +148,8 @@
|
||||||
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
|
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if git_repository_edit_baseurl}}
|
{{#if git_repository_edit_url}}
|
||||||
<a href="{{git_repository_edit_baseurl}}/src/{{path}}" title="Suggest an edit" aria-label="Suggest an edit">
|
<a href="{{git_repository_edit_url}}" title="Suggest an edit" aria-label="Suggest an edit">
|
||||||
<i id="git-edit-button" class="fa fa-edit"></i>
|
<i id="git-edit-button" class="fa fa-edit"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
Loading…
Reference in New Issue