Ejemplo n.º 1
0
    def __init__(self,
                 generator_settings,
                 guide_settings,
                 language_code,
                 version,
                 html_generator,
                 html_templates,
                 translations,
                 regex_list,
                 output_type=WEB,
                 teacher_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.guide_settings = guide_settings
        self.generator_settings = generator_settings
        self.regex_list = regex_list
        self.translations = translations
        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.language = self.parse_language()
        self.version = version
        self.teacher_version_present = teacher_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)

        # 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.pdf_html = ''
            self.traverse_files(self.structure,
                                getattr(self, "add_to_pdf_html"))
            self.generate_pdf()  #TODO: implement generate_pdf()
 def __init__(self, title, markdown_text, file_path, guide, structure_node):
     self.guide = guide
     self.structure_node = structure_node
     self.title = title
     self.markdown_text = markdown_text
     self.file_path = file_path
     self.page_header_numbered = False
     self.html_content = []
     self.regex_functions = self.create_regex_functions()
     self.permalinks = set()
     # Dictionary of sets for images, interactives, and other_files
     self.required_files = setup_required_files(guide)
     self.mathjax_required = False
     self.section_header_created = False
Ejemplo n.º 3
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()
Ejemplo n.º 4
0
 def __init__(self, file_node, markdown_text):
     self.file_node = file_node
     self.markdown_text = markdown_text
     self.original_text = markdown_text.split('\n')
     self.guide = self.file_node.guide
     self.heading = None  # Set to first heading during markdown parsing
     self.current_heading = None  # Pointer to current heading node
     self.title = None
     self.html_content = []
     self.regex_functions = self.create_regex_functions()
     self.permalinks = set()
     # Dictionary of sets for images, interactives, and other_files
     self.required_files = setup_required_files(file_node.guide)
     self.page_scripts = []
     self.mathjax_required = False
     self.sectioned = False
     self.html_path_to_guide_root = self.file_node.depth * '../'
Ejemplo n.º 5
0
 def __init__(self, file_node, markdown_text):
     self.file_node = file_node
     self.markdown_text = markdown_text
     self.original_text = markdown_text.split('\n')
     self.guide = self.file_node.guide
     self.heading = None # Set to first heading during markdown parsing
     self.current_heading = None # Pointer to current heading node
     self.title = None
     self.html_content = []
     self.regex_functions = self.create_regex_functions()
     self.permalinks = set()
     # Dictionary of sets for images, interactives, and other_files
     self.required_files = setup_required_files(file_node.guide)
     self.page_scripts = []
     self.mathjax_required = False
     self.sectioned = False
     self.html_path_to_guide_root = self.file_node.depth * '../'
Ejemplo n.º 6
0
    def __init__(self):
        # Read settings
        self.guide_settings = self.read_settings(GUIDE_SETTINGS)
        self.generator_settings = self.read_settings(GENERATOR_SETTINGS)
        self.regex_list = self.read_settings(REGEX_LIST)

        self.language = self.parse_language()
        self.version = self.parse_version()

        # Structure tree of guide
        self.structure = self.parse_structure()
        # Populates structure tree
        self.read_content()
        # Dictionary of sets for images, interactives, and other_files
        self.required_files = setup_required_files(self)
        self.html_templates = self.read_html_templates()

        if self.html_templates:
            self.process_sections()
            self.write_html_files()