| OLD | NEW | 
|    1 # This file is part of the Adblock Plus web scripts, |    1 # This file is part of the Adblock Plus web scripts, | 
|    2 # Copyright (C) 2006-present eyeo GmbH |    2 # Copyright (C) 2006-present eyeo GmbH | 
|    3 # |    3 # | 
|    4 # Adblock Plus is free software: you can redistribute it and/or modify |    4 # Adblock Plus is free software: you can redistribute it and/or modify | 
|    5 # it under the terms of the GNU General Public License version 3 as |    5 # it under the terms of the GNU General Public License version 3 as | 
|    6 # published by the Free Software Foundation. |    6 # published by the Free Software Foundation. | 
|    7 # |    7 # | 
|    8 # Adblock Plus is distributed in the hope that it will be useful, |    8 # Adblock Plus is distributed in the hope that it will be useful, | 
|    9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |    9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|   10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |   10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  302         def make_relative(base_url, target): |  302         def make_relative(base_url, target): | 
|  303             if not target.startswith('/'): |  303             if not target.startswith('/'): | 
|  304                 # Links to an external resource |  304                 # Links to an external resource | 
|  305                 return target |  305                 return target | 
|  306             return relpath(target, base_url.rsplit('/', 1)[0]) |  306             return relpath(target, base_url.rsplit('/', 1)[0]) | 
|  307  |  307  | 
|  308         def process_link(match): |  308         def process_link(match): | 
|  309             pre, attr, url, post = match.groups() |  309             pre, attr, url, post = match.groups() | 
|  310             url = jinja2.Markup(url).unescape() |  310             url = jinja2.Markup(url).unescape() | 
|  311  |  311  | 
|  312             locale, new_url = ( |  312             locale, new_url = self._params['source'].resolve_link( | 
|  313                 self._params['source'] |  313                 url, self._params['locale'], self._params['page'], | 
|  314                 .resolve_link(url, self._params['locale'])) |  314             ) | 
|  315  |  315  | 
|  316             if new_url is not None: |  316             if new_url is not None: | 
|  317                 url = new_url |  317                 url = new_url | 
|  318                 if attr == 'href': |  318                 if attr == 'href': | 
|  319                     post += ' hreflang="{}"'\ |  319                     post += ' hreflang="{}"'\ | 
|  320                         .format(jinja2.Markup.escape(locale)) |  320                         .format(jinja2.Markup.escape(locale)) | 
|  321  |  321  | 
|  322             if self._params['relative']: |  322             if self._params['relative']: | 
|  323                 current_page = '/{}/{}'.format(self._params['locale'], |  323                 current_page = '/{}/{}'.format(self._params['locale'], | 
|  324                                                self._params['page']) |  324                                                self._params['page']) | 
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  509  |  509  | 
|  510     def get_page_content(self, page, locale=None): |  510     def get_page_content(self, page, locale=None): | 
|  511         if locale is None: |  511         if locale is None: | 
|  512             locale = self._params['locale'] |  512             locale = self._params['locale'] | 
|  513         return utils.get_page_params(self._params['source'], locale, page) |  513         return utils.get_page_params(self._params['source'], locale, page) | 
|  514  |  514  | 
|  515     def linkify(self, page, locale=None, **attrs): |  515     def linkify(self, page, locale=None, **attrs): | 
|  516         if locale is None: |  516         if locale is None: | 
|  517             locale = self._params['locale'] |  517             locale = self._params['locale'] | 
|  518  |  518  | 
|  519         locale, url = self._params['source'].resolve_link(page, locale) |  519         locale, url = self._params['source'].resolve_link(page, locale, | 
 |  520                                                           self._params['page']) | 
|  520         return jinja2.Markup('<a{}>'.format(''.join( |  521         return jinja2.Markup('<a{}>'.format(''.join( | 
|  521             ' {}="{}"'.format(name, jinja2.escape(value)) for name, value in [ |  522             ' {}="{}"'.format(name, jinja2.escape(value)) for name, value in [ | 
|  522                 ('href', url), |  523                 ('href', url), | 
|  523                 ('hreflang', locale), |  524                 ('hreflang', locale), | 
|  524             ] + attrs.items() |  525             ] + attrs.items() | 
|  525         ))) |  526         ))) | 
|  526  |  527  | 
|  527     def get_pages_metadata(self, filters=None): |  528     def get_pages_metadata(self, filters=None): | 
|  528         if filters is not None and not isinstance(filters, dict): |  529         if filters is not None and not isinstance(filters, dict): | 
|  529             raise TypeError('Filters are not a dictionary') |  530             raise TypeError('Filters are not a dictionary') | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
|  556  |  557  | 
|  557     def get_canonical_url(self, page): |  558     def get_canonical_url(self, page): | 
|  558         """Return canonical URL for the page (without locale code)""" |  559         """Return canonical URL for the page (without locale code)""" | 
|  559         try: |  560         try: | 
|  560             base_url = self._params['site_url'] |  561             base_url = self._params['site_url'] | 
|  561         except KeyError: |  562         except KeyError: | 
|  562             raise Exception('You must configure `siteurl` to use' |  563             raise Exception('You must configure `siteurl` to use' | 
|  563                             '`get_canonical_url()`') |  564                             '`get_canonical_url()`') | 
|  564  |  565  | 
|  565         locale, page_url = self._params['source'].resolve_link( |  566         locale, page_url = self._params['source'].resolve_link( | 
|  566             page, self._params['locale'], |  567             page, self._params['locale'], self._params['page'], | 
|  567         ) |  568         ) | 
|  568         # Remove the locale component that `resolve_link` adds at the |  569         # Remove the locale component that `resolve_link` adds at the | 
|  569         # beginning. |  570         # beginning. | 
|  570         page_url = page_url[len(locale) + 1:] |  571         page_url = page_url[len(locale) + 1:] | 
|  571         return urlparse.urljoin(base_url, page_url) |  572         return urlparse.urljoin(base_url, page_url) | 
|  572  |  573  | 
|  573     def toclist(self, content): |  574     def toclist(self, content): | 
|  574         toc_re = r'<h(\d)\s[^<>]*\bid="([^<>"]+)"[^<>]*>(.*?)</h\1>' |  575         toc_re = r'<h(\d)\s[^<>]*\bid="([^<>"]+)"[^<>]*>(.*?)</h\1>' | 
|  575         flat = [] |  576         flat = [] | 
|  576         for match in re.finditer(toc_re, content, re.S): |  577         for match in re.finditer(toc_re, content, re.S): | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|  590             stack.append(item) |  591             stack.append(item) | 
|  591         return structured |  592         return structured | 
|  592  |  593  | 
|  593     def page_has_locale(self, page, locale): |  594     def page_has_locale(self, page, locale): | 
|  594         return self._params['source'].has_locale(locale, page) |  595         return self._params['source'].has_locale(locale, page) | 
|  595  |  596  | 
|  596     def get_page_url(self, page, locale=None, redirect=False): |  597     def get_page_url(self, page, locale=None, redirect=False): | 
|  597         if not locale: |  598         if not locale: | 
|  598             locale = self._params['locale'] |  599             locale = self._params['locale'] | 
|  599         if self.page_has_locale(page, locale) or redirect: |  600         if self.page_has_locale(page, locale) or redirect: | 
|  600             return self._params['source'].resolve_link(page, locale)[1] |  601             return self._params['source'].resolve_link(page, locale, | 
 |  602                                                        self._params['page'])[1] | 
|  601         raise Exception('{} does not exist in {}'.format(page, locale)) |  603         raise Exception('{} does not exist in {}'.format(page, locale)) | 
|  602  |  604  | 
|  603  |  605  | 
|  604 converters = { |  606 converters = { | 
|  605     'html': RawConverter, |  607     'html': RawConverter, | 
|  606     'md': MarkdownConverter, |  608     'md': MarkdownConverter, | 
|  607     'tmpl': TemplateConverter, |  609     'tmpl': TemplateConverter, | 
|  608 } |  610 } | 
| OLD | NEW |