Skip to content

Instantly share code, notes, and snippets.

@watahani
Last active August 16, 2018 03:24
Show Gist options
  • Save watahani/5f22bcd94c332c002d567fda525546c9 to your computer and use it in GitHub Desktop.
Save watahani/5f22bcd94c332c002d567fda525546c9 to your computer and use it in GitHub Desktop.
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