Пример #1
0
def main():
    """Creates a Guide object"""
    start_logging()
    generator_settings = systemfunctions.read_settings(GENERATOR_SETTINGS)
    regex_list = systemfunctions.read_settings(REGEX_LIST)
    html_templates = read_html_templates(generator_settings)
    html_generator = WebsiteGenerator(html_templates)

    # Calculate versions to create
    versions = ['student']
    if cmd_args.teacher_output:
        versions.append('teacher')

    outputted_languages = []

    # Create all specified CSFG
    for language in cmd_args.languages:
        for version in versions:
            if cmd_args.include_pdf or cmd_args.pdf_only:
                pdf_guide = Guide(generator_settings=generator_settings, language_code=language, version=version, output_type=PDF, html_generator=html_generator, html_templates=html_templates, regex_list=regex_list)
            if not cmd_args.pdf_only:
                guide = Guide(generator_settings=generator_settings, language_code=language, version=version, html_generator=html_generator, html_templates=html_templates, regex_list=regex_list, teacher_version_present=cmd_args.teacher_output, pdf_version_present=cmd_args.include_pdf)
                if version == 'student':
                    outputted_languages.append((guide.language_code, guide.language))

    # Create landing page if website required
    if not cmd_args.pdf_only:
        create_landing_page(outputted_languages, html_generator, guide)

    finish_logging()
def main():
    """Creates a Guide object"""
    start_logging()
    guide_settings = systemfunctions.read_settings(GUIDE_SETTINGS)
    generator_settings = systemfunctions.read_settings(GENERATOR_SETTINGS)
    translations = systemfunctions.read_settings(TRANSLATIONS_LOCATION)
    regex_list = systemfunctions.read_settings(REGEX_LIST)
    html_templates = read_html_templates(generator_settings)
    html_generator = WebsiteGenerator(html_templates)

    # Create landing page
    create_landing_page(cmd_args.languages, html_generator, generator_settings, translations)

    # Calculate versions to create
    versions = ['student']
    if cmd_args.teacher_output:
        versions.append('teacher')

    # Create all specified CSFG
    for language in cmd_args.languages:
        for version in versions:
            guide = Guide(generator_settings=generator_settings, guide_settings=guide_settings, language_code=language, version=version, html_generator=html_generator, html_templates=html_templates, translations=translations, regex_list=regex_list, teacher_version_present=cmd_args.teacher_output)
            if cmd_args.include_pdf:
                pdf_guide = Guide(generator_settings=generator_settings, guide_settings=guide_settings, language_code=language, version=version, output_type=PDF, html_generator=html_generator, html_templates=html_templates, translations=translations, regex_list=regex_list)

    finish_logging()
Пример #3
0
def main():
    """Creates a Guide object"""
    start_logging()
    guide_settings = systemfunctions.read_settings(GUIDE_SETTINGS)
    generator_settings = systemfunctions.read_settings(GENERATOR_SETTINGS)
    translations = systemfunctions.read_settings(TRANSLATIONS_LOCATION)
    regex_list = systemfunctions.read_settings(REGEX_LIST)
    html_templates = read_html_templates(generator_settings)
    html_generator = WebsiteGenerator(html_templates)

    # Create landing page if website required
    if not cmd_args.pdf_only:
        create_landing_page(cmd_args.languages, html_generator,
                            generator_settings, translations)

    # Calculate versions to create
    versions = ['student']
    if cmd_args.teacher_output:
        versions.append('teacher')

    # Create all specified CSFG
    for language in cmd_args.languages:
        for version in versions:
            if cmd_args.include_pdf or cmd_args.pdf_only:
                pdf_guide = Guide(generator_settings=generator_settings,
                                  guide_settings=guide_settings,
                                  language_code=language,
                                  version=version,
                                  output_type=PDF,
                                  html_generator=html_generator,
                                  html_templates=html_templates,
                                  translations=translations,
                                  regex_list=regex_list)
            if not cmd_args.pdf_only:
                guide = Guide(generator_settings=generator_settings,
                              guide_settings=guide_settings,
                              language_code=language,
                              version=version,
                              html_generator=html_generator,
                              html_templates=html_templates,
                              translations=translations,
                              regex_list=regex_list,
                              teacher_version_present=cmd_args.teacher_output,
                              pdf_version_present=cmd_args.include_pdf)

    finish_logging()
Пример #4
0
    def __init__(self, generator_settings, language_code, version, html_generator, html_templates, regex_list, output_type=WEB,  teacher_version_present=False, pdf_version_present=False):

        # Alert user of creation process
        print('Creating CSFG - Language: {lang} - Version: {version} - Format: {output_type}'.format(lang=language_code, version=version, output_type=output_type))

        # Read settings
        self.generator_settings = generator_settings
        self.regex_list = regex_list
        self.permissions_location = PERMISSIONS_LOCATION
        self.files_with_permissions = set()
        self.html_generator = html_generator
        self.html_templates = html_templates

        self.language_code = language_code
        self.guide_settings = systemfunctions.read_settings(GUIDE_SETTINGS.format(language=self.language_code), 'yaml')
        self.language = self.guide_settings['language']
        self.translations = Translations(self.language_code, self.guide_settings['text_values'])
        self.version = version
        self.teacher_version_present = teacher_version_present
        self.pdf_version_present = pdf_version_present
        self.output_type = output_type
        self.setup_output_path()

        self.number_generator = NumberGenerator()
        self.glossary = Glossary(self)

        # Structure tree of guide
        self.structure = self.parse_structure()
        # Populates structure tree with markdown content
        self.traverse_files(self.structure, getattr(self, "read_content"))
        # Dictionary of sets for images, interactives, and other_files
        self.required_files = setup_required_files(self)

        if self.output_type == PDF:
            self.print_renderer = print_media.PrintRenderer(self.generator_settings)

        # Process sections
        self.traverse_files(self.structure, getattr(self, "process_section"))

        if self.output_type == WEB:
            self.setup_html_output()
            self.traverse_files(self.structure, getattr(self, "write_html_file"))
            self.copy_required_files()
        elif self.output_type == PDF:
            self.print_settings = {}
            self.pdf_html = ''
            self.setup_pdf_output()
            self.traverse_files(self.structure, getattr(self, "add_to_pdf_html"), True)
            self.generate_pdf()
Пример #5
0
    def __init__(self,
                 generator_settings,
                 language_code,
                 version,
                 html_generator,
                 html_templates,
                 regex_list,
                 output_type=WEB,
                 teacher_version_present=False,
                 pdf_version_present=False):

        # Alert user of creation process
        print(
            'Creating CSFG - Language: {lang} - Version: {version} - Format: {output_type}'
            .format(lang=language_code,
                    version=version,
                    output_type=output_type))

        # Read settings
        self.generator_settings = generator_settings
        self.regex_list = regex_list
        self.permissions_location = PERMISSIONS_LOCATION
        self.files_with_permissions = set()
        self.html_generator = html_generator
        self.html_templates = html_templates

        self.language_code = language_code
        self.guide_settings = systemfunctions.read_settings(
            GUIDE_SETTINGS.format(language=self.language_code), 'yaml')
        self.language = self.guide_settings['language']
        self.translations = Translations(self.language_code,
                                         self.guide_settings['text_values'])
        self.version = version
        self.teacher_version_present = teacher_version_present
        self.pdf_version_present = pdf_version_present
        self.output_type = output_type
        self.setup_output_path()

        self.number_generator = NumberGenerator()
        self.glossary = Glossary(self)

        # Structure tree of guide
        self.structure = self.parse_structure()
        # Populates structure tree with markdown content
        self.traverse_files(self.structure, getattr(self, "read_content"))
        # Dictionary of sets for images, interactives, and other_files
        self.required_files = setup_required_files(self)

        if self.output_type == PDF:
            self.print_renderer = print_media.PrintRenderer(
                self.generator_settings)

        # Process sections
        self.traverse_files(self.structure, getattr(self, "process_section"))

        if self.output_type == WEB:
            self.setup_html_output()
            self.traverse_files(self.structure,
                                getattr(self, "write_html_file"))
            self.copy_required_files()
        elif self.output_type == PDF:
            self.print_settings = {}
            self.pdf_html = ''
            self.setup_pdf_output()
            self.traverse_files(self.structure,
                                getattr(self, "add_to_pdf_html"), True)
            self.generate_pdf()