37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Build QMK documentation locally
 | 
						|
"""
 | 
						|
import shutil
 | 
						|
from qmk.docs import prepare_docs_build_area, run_docs_command, BUILD_DOCS_PATH
 | 
						|
 | 
						|
from milc import cli
 | 
						|
 | 
						|
 | 
						|
@cli.argument('-s', '--serve', arg_only=True, action='store_true', help="Serves the generated docs once built.")
 | 
						|
@cli.subcommand('Build QMK documentation.', hidden=False if cli.config.user.developer else True)
 | 
						|
def generate_docs(cli):
 | 
						|
    """Invoke the docs generation process
 | 
						|
 | 
						|
    TODO(unclaimed):
 | 
						|
        * [ ] Add a real build step... something static docs
 | 
						|
    """
 | 
						|
 | 
						|
    if not shutil.which('doxygen'):
 | 
						|
        cli.log.error('doxygen is not installed. Please install it and try again.')
 | 
						|
        return
 | 
						|
 | 
						|
    if not shutil.which('yarn'):
 | 
						|
        cli.log.error('yarn is not installed. Please install it and try again.')
 | 
						|
        return
 | 
						|
 | 
						|
    if not prepare_docs_build_area(is_production=True):
 | 
						|
        return False
 | 
						|
 | 
						|
    cli.log.info('Building vitepress docs')
 | 
						|
    run_docs_command('run', 'docs:build')
 | 
						|
    cli.log.info('Successfully generated docs to %s.', BUILD_DOCS_PATH)
 | 
						|
 | 
						|
    if cli.args.serve:
 | 
						|
        if not cli.config.general.verbose:
 | 
						|
            cli.log.info('Serving docs at http://localhost:4173/ (Ctrl+C to stop)')
 | 
						|
        run_docs_command('run', 'docs:preview')
 |