-
-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
0b18dd6
commit a2c95bd
Showing
9 changed files
with
212 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Page d'accueil (french version) | ||
|
||
!!! tip | ||
Titre implicite dérivé du type d'avertissement, peut être remplacé en définissant `admonition_translations` | ||
|
||
!!!tip | ||
Pareil sans espaces | ||
|
||
!!! warning | ||
Titre implicite dérivé du type d'avertissement, peut être remplacé en définissant `admonition_translations` | ||
|
||
!!! warning "Heey" | ||
Titre explicite, n'est pas traduit par `admonition_translations` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Home page | ||
|
||
!!! tip | ||
Implicit title derived from admonition type, can be overriden by setting `admonition_translations` | ||
|
||
!!!tip | ||
Same without space | ||
|
||
!!! warning | ||
Implicit title derived from admonition type, can be overriden by setting `admonition_translations` | ||
|
||
!!! warning "Heey" | ||
Explicit title, isn't translated by `admonition_translations` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
import re | ||
import logging | ||
from pathlib import Path | ||
|
||
from mkdocs.commands.build import build | ||
from mkdocs.config.base import load_config | ||
|
||
ADMONITIONS_CONFIG_WARNING = "mkdocs_static_i18n: admonition_translations used, but admonitions won't be rendered properly without 'admonition' in mkdocs.yml's markdown_extensions." | ||
|
||
class LogHandlerList(logging.Handler): | ||
def __init__(self): | ||
super().__init__() | ||
self.messages = [] | ||
|
||
def handle(self, record): | ||
rv = self.filter(record) | ||
if rv: | ||
# Use levelno for keys so they can be sorted later | ||
self.messages.append(record.getMessage()) | ||
return rv | ||
|
||
def test_invalid_config(): | ||
mkdocs_config = load_config( | ||
"tests/mkdocs.yml", | ||
theme={"name": "material"}, | ||
docs_dir="admonitions/", | ||
plugins={ | ||
"i18n": { | ||
"languages": [ | ||
{ | ||
"locale": "en", | ||
"name": "english", | ||
"default": True, | ||
}, | ||
{ | ||
"locale": "fr", | ||
"name": "français", | ||
"build": True, | ||
"admonition_translations": { | ||
"tip": "Conseil", | ||
"warning": "Avertissement", | ||
} | ||
}, | ||
], | ||
}, | ||
}, | ||
) | ||
|
||
warning_list = LogHandlerList() | ||
warning_list.setLevel(logging.WARNING) | ||
logging.getLogger('mkdocs').addHandler(warning_list) | ||
|
||
build(mkdocs_config) | ||
|
||
assert(ADMONITIONS_CONFIG_WARNING in warning_list.messages) | ||
|
||
|
||
def test_plugin_no_use_directory_urls_default_language_only(): | ||
mkdocs_config = load_config( | ||
"tests/mkdocs.yml", | ||
theme={"name": "material"}, | ||
docs_dir="admonitions/", | ||
plugins={ | ||
"i18n": { | ||
"languages": [ | ||
{ | ||
"locale": "en", | ||
"name": "english", | ||
"default": True, | ||
}, | ||
{ | ||
"locale": "fr", | ||
"name": "français", | ||
"build": True, | ||
"admonition_translations": { | ||
"tip": "Conseil", | ||
"warning": "Avertissement", | ||
} | ||
}, | ||
], | ||
}, | ||
}, | ||
markdown_extensions=["admonition"], | ||
) | ||
|
||
warning_list = LogHandlerList() | ||
warning_list.setLevel(logging.WARNING) | ||
logging.getLogger('mkdocs').addHandler(warning_list) | ||
|
||
build(mkdocs_config) | ||
|
||
# assert(all(item == ADMONITIONS_CONFIG_WARNING) for item in warning_list.messages) | ||
assert(ADMONITIONS_CONFIG_WARNING not in warning_list.messages) | ||
|
||
site_dir = mkdocs_config["site_dir"] | ||
|
||
with open(site_dir+'/index.html') as f: | ||
admonition_titles = re.findall(r"<p class=[\"']admonition-title[\"']>([^<]*)", f.read()) | ||
assert(admonition_titles == ['Tip', 'Tip', 'Warning', 'Heey']) | ||
|
||
with open(site_dir+'/fr/index.html') as f: | ||
admonition_titles = re.findall(r"<p class=[\"']admonition-title[\"']>([^<]*)", f.read()) | ||
assert(admonition_titles == ['Conseil', 'Conseil', 'Avertissement', 'Heey']) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters