Last active
August 16, 2018 03:24
-
-
Save watahani/5f22bcd94c332c002d567fda525546c9 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
import os | |
from mkdocs.config.base import load_config | |
""" | |
mkdocs.yml から存在しないページを作成するヘルパー関数です。 | |
usages: | |
> python make_pages.py | |
or | |
> python make_pages.py config_file.yml | |
""" | |
def make_pages(config_file=None): | |
config = load_config(config_file) | |
if 'nav' in config: | |
pages = config['nav'] | |
elif 'pages' in config: | |
pages = config['pages'] | |
else: | |
raise Error('pages not found') | |
docs_dir = config['docs_dir'] | |
_make_page(pages, docs_dir) | |
def _make_page(page_obj, base_dir): | |
if type(page_obj) == dict: | |
for page in page_obj.values(): | |
_make_page(page, base_dir) | |
elif type(page_obj) == list: | |
for page in page_obj: | |
_make_page(page, base_dir) | |
elif type(page_obj) == str: | |
page_file = os.path.join(base_dir, page_obj) | |
if not os.path.exists(page_file): | |
os.makedirs(os.path.dirname(page_file), exist_ok=True) | |
with open(page_file, 'w'): | |
print("create new file {0}".format(page_obj)) | |
if __name__ == '__main__': | |
import sys | |
if 1 < len(sys.argv): | |
config_file = sys.argv[1] | |
else: | |
config_file = None | |
make_pages(config_file) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment