def handle(self, **options): self.verbosity = options['verbosity'] self.dry_run = options['dry_run'] self.wrap_fragments = options['wrap_fragments'] self.output_dir = options['output_dir'] templates = get_pattern_templates() factory = RequestFactory() request = factory.get('/') if self.verbosity >= 2: if self.dry_run: self.stderr.write( f'Target directory: {self.output_dir}. Dry run, not writing files to disk' ) else: self.stderr.write(f'Target directory: {self.output_dir}') if self.wrap_fragments: self.stderr.write( 'Writing fragment patterns wrapped in base template') # Resolve the output dir according to the directory the command is run from. parent_dir = Path.cwd().joinpath(self.output_dir) if not self.dry_run: parent_dir.mkdir(exist_ok=True) self.render_group(request, parent_dir, templates)
def get(self, request, pattern_template_name=None): # Get all pattern templates templates = get_pattern_templates() if pattern_template_name is None: # Just display the first pattern if a specific one isn't requested pattern_template_name = self.get_first_template(templates) if not is_pattern(pattern_template_name): raise Http404 template = get_template(pattern_template_name) pattern_config = get_pattern_config(pattern_template_name) context = self.get_context_data() context['pattern_templates'] = templates context['pattern_template_name'] = pattern_template_name context['pattern_source'] = escape(template.template.source) context['pattern_config'] = escape( get_pattern_config_str(pattern_template_name)) context['pattern_name'] = pattern_config.get('name', pattern_template_name) context['pattern_markdown'] = get_pattern_markdown( pattern_template_name) return self.render_to_response(context)