def index_path(self, name, lang, is_feed=False): """Link to a numbered index. Example: link://index/3 => /index-3.html """ extension = None if is_feed: extension = ".atom" index_file = os.path.splitext(self.site.config['INDEX_FILE'])[0] + extension else: index_file = self.site.config['INDEX_FILE'] if lang in self.number_of_pages: number_of_pages = self.number_of_pages[lang] else: number_of_pages = self._compute_number_of_pages(self._get_filtered_posts(lang, self.site.config['SHOW_UNTRANSLATED_POSTS']), self.site.config['INDEX_DISPLAY_POST_COUNT']) self.number_of_pages[lang] = number_of_pages return utils.adjust_name_for_index_path_list([_f for _f in [self.site.config['TRANSLATIONS'][lang], self.site.config['INDEX_PATH'], index_file] if _f], name, utils.get_displayed_page_number(name, number_of_pages, self.site), lang, self.site, extension=extension)
def index_path(self, name, lang, is_feed=False): """Link to a numbered index. Example: link://index/3 => /index-3.html """ extension = None if is_feed: extension = ".atom" index_file = os.path.splitext( self.site.config['INDEX_FILE'])[0] + extension else: index_file = self.site.config['INDEX_FILE'] if lang in self.number_of_pages: number_of_pages = self.number_of_pages[lang] else: number_of_pages = self._compute_number_of_pages( self._get_filtered_posts( lang, self.site.config['SHOW_UNTRANSLATED_POSTS']), self.site.config['INDEX_DISPLAY_POST_COUNT']) self.number_of_pages[lang] = number_of_pages return utils.adjust_name_for_index_path_list( [ _f for _f in [ self.site.config['TRANSLATIONS'][lang], self.site.config['INDEX_PATH'], index_file ] if _f ], name, utils.get_displayed_page_number(name, number_of_pages, self.site), lang, self.site, extension=extension)
def index_section_path(self, name, lang, is_feed=False): """Link to the index for a section. Example: link://section_index/cars => /cars/index.html """ extension = None if is_feed: extension = ".atom" index_file = os.path.splitext(self.site.config['INDEX_FILE'])[0] + extension else: index_file = self.site.config['INDEX_FILE'] if name in self.number_of_pages_section[lang]: number_of_pages = self.number_of_pages_section[lang][name] else: posts = [post for post in self._get_filtered_posts(lang, self.site.config['SHOW_UNTRANSLATED_POSTS']) if post.section_slug(lang) == name] number_of_pages = self._compute_number_of_pages(posts, self.site.config['INDEX_DISPLAY_POST_COUNT']) self.number_of_pages_section[lang][name] = number_of_pages return utils.adjust_name_for_index_path_list([_f for _f in [self.site.config['TRANSLATIONS'][lang], name, index_file] if _f], None, utils.get_displayed_page_number(None, number_of_pages, self.site), lang, self.site, extension=extension)
def index_section_path(self, name, lang, is_feed=False, is_rss=False): """Link to the index for a section. Example: link://section_index/cars => /cars/index.html """ extension = None if is_feed: extension = ".atom" index_file = os.path.splitext(self.site.config['INDEX_FILE'])[0] + extension elif is_rss: index_file = 'rss.xml' else: index_file = self.site.config['INDEX_FILE'] if name in self.number_of_pages_section[lang]: number_of_pages = self.number_of_pages_section[lang][name] else: posts = [post for post in self._get_filtered_posts(lang, self.site.config['SHOW_UNTRANSLATED_POSTS']) if post.section_slug(lang) == name] number_of_pages = self._compute_number_of_pages(posts, self.site.config['INDEX_DISPLAY_POST_COUNT']) self.number_of_pages_section[lang][name] = number_of_pages return utils.adjust_name_for_index_path_list([_f for _f in [self.site.config['TRANSLATIONS'][lang], name, index_file] if _f], None, utils.get_displayed_page_number(None, number_of_pages, self.site), lang, self.site, extension=extension)
def index_path(self, name, lang): return utils.adjust_name_for_index_path_list( [ _f for _f in [ self.site.config['TRANSLATIONS'][lang], self.site. config['INDEX_PATH'], self.site.config['INDEX_FILE'] ] if _f ], name, utils.get_displayed_page_number(name, self.number_of_pages[lang], self.site), lang, self.site)
def _postprocess_path(self, path, lang, append_index='auto', dest_type='page', page_info=None, alternative_path=False): """Postprocess a generated path. Takes the path `path` for language `lang`, and postprocesses it. It appends `site.config['INDEX_FILE']` depending on `append_index` (which can have the values `'always'`, `'never'` and `'auto'`) and `site.config['PRETTY_URLS']`. It also modifies/adds the extension of the last path element resp. `site.config['INDEX_FILE']` depending on `dest_type`, which can be `'feed'`, `'rss'` or `'page'`. If `dest_type` is `'page'`, `page_info` can be `None` or a tuple of two integers: the page number and the number of pages. This will be used to append the correct page number by calling `utils.adjust_name_for_index_path_list` and `utils.get_displayed_page_number`. If `alternative_path` is set to `True`, `utils.adjust_name_for_index_path_list` is called with `force_addition=True`, resulting in an alternative path for the first page of an index or Atom feed by including the page number into the path. """ # Forcing extension for Atom feeds and RSS feeds force_extension = None if dest_type == 'feed': force_extension = self.site.config['ATOM_EXTENSION'] elif dest_type == 'rss': force_extension = self.site.config['RSS_EXTENSION'] # Determine how to extend path path = [_f for _f in path if _f] if force_extension is not None: if len(path) == 0 and dest_type == 'rss': path = [self.site.config['RSS_FILENAME_BASE'](lang)] elif len(path) == 0 and dest_type == 'feed': path = [self.site.config['ATOM_FILENAME_BASE'](lang)] elif len(path) == 0 or append_index == 'always': path = path + [os.path.splitext(self.site.config['INDEX_FILE'])[0]] elif len(path) > 0 and append_index == 'never': path[-1] = os.path.splitext(path[-1])[0] path[-1] += force_extension elif (self.site.config['PRETTY_URLS'] and append_index != 'never') or len(path) == 0 or append_index == 'always': path = path + [self.site.config['INDEX_FILE']] elif append_index != 'never': path[-1] += '.html' # Create path result = [_f for _f in [self.site.config['TRANSLATIONS'][lang]] + path if _f] if page_info is not None and dest_type in ('page', 'feed'): result = utils.adjust_name_for_index_path_list(result, page_info[0], utils.get_displayed_page_number(page_info[0], page_info[1], self.site), lang, self.site, force_addition=alternative_path, extension=force_extension) return result
def index_path(self, name, lang, is_feed=False): extension = None if is_feed: extension = ".atom" index_file = os.path.splitext(self.site.config['INDEX_FILE'])[0] + extension else: index_file = self.site.config['INDEX_FILE'] return utils.adjust_name_for_index_path_list([_f for _f in [self.site.config['TRANSLATIONS'][lang], self.site.config['INDEX_PATH'], index_file] if _f], name, utils.get_displayed_page_number(name, self.number_of_pages[lang], self.site), lang, self.site, extension=extension)
def index_section_path(self, name, lang, is_feed=False): """Link to the index for a section. Example: link://section_index/cars => /cars/index.html """ extension = None if is_feed: extension = ".atom" index_file = os.path.splitext(self.site.config['INDEX_FILE'])[0] + extension else: index_file = self.site.config['INDEX_FILE'] return utils.adjust_name_for_index_path_list([_f for _f in [self.site.config['TRANSLATIONS'][lang], name, index_file] if _f], None, utils.get_displayed_page_number(None, self.number_of_pages_section[lang][name], self.site), lang, self.site, extension=extension)