Added git-repository-icon option

Updated documentation and added tests.
This commit is contained in:
Jason Liquorish 2018-10-15 19:48:54 +01:00
parent 599e47f1f1
commit 5bfdf9fcc8
4 changed files with 21 additions and 5 deletions

View File

@ -149,6 +149,10 @@ The following configuration options are available:
- **playpen:** A subtable for configuring various playpen settings.
- **search:** A subtable for configuring the in-browser search functionality.
mdBook must be compiled with the `search` feature enabled (on by default).
- **git_repository_url:** A url to the git repository for the book. If provided
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`.
Available configuration options for the `[output.html.playpen]` table:

View File

@ -440,8 +440,11 @@ pub struct HtmlConfig {
pub no_section_label: bool,
/// Search settings. If `None`, the default will be used.
pub search: Option<Search>,
/// Git repository url. If 'None', the git button will not be shown.
/// Git repository url. If `None`, the git button will not be shown.
pub git_repository_url: Option<String>,
/// FontAwesome icon class to use for the Git repository link.
/// Defaults to `fa-github` if `None`.
pub git_repository_icon: Option<String>,
}
impl HtmlConfig {
@ -573,6 +576,8 @@ mod tests {
curly-quotes = true
google-analytics = "123456"
additional-css = ["./foo/bar/baz.css"]
git-repository-url = "https://foo.com/"
git-repository-icon = "fa-code-fork"
[output.html.playpen]
editable = true
@ -610,6 +615,8 @@ mod tests {
additional_css: vec![PathBuf::from("./foo/bar/baz.css")],
theme: Some(PathBuf::from("./themedir")),
playpen: playpen_should_be,
git_repository_url: Some(String::from("https://foo.com/")),
git_repository_icon: Some(String::from("fa-code-fork")),
..Default::default()
};

View File

@ -455,8 +455,13 @@ 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));
data.insert("git_repository_url".to_owned(), json!(git_repository_url));
}
let git_repository_icon = match html_config.git_repository_icon {
Some(ref git_repository_icon) => git_repository_icon,
None => "fa-github",
};
data.insert("git_repository_icon".to_owned(), json!(git_repository_icon));
let mut chapters = vec![];

View File

@ -113,9 +113,9 @@
<a href="{{ path_to_root }}print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
{{#if git-repository-url}}
<a href="{{git-repository-url}}" title="Git repository" aria-label="Git repository">
<i id="github-button" class="fa fa-git"></i>
{{#if git_repository_url}}
<a href="{{git_repository_url}}" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa {{git_repository_icon}}"></i>
</a>
{{/if}}
</div>