Exemplo n.º 1
0
    def mk_site_filters(self, params):
        '''
        Create global mobile-site filters

        Builds a list of filters that will be passed on to every
        moplate during rendering, to be applied to the extracted
        content of every mobile page.

        Note that these are applyed *after* any moplate-level filters,
        which are themselves applied after any component-level
        filters.

        This list can be altered or added to by subclasses.

        @param params : Site-level template parameters
        @type  params : dict
        
        @return       : Filters
        @rtype        : list of callable
        
        '''
        from mobilize.images import to_imgserve
        site_filters = []
        if self.imgsubs:
            site_filters.append(lambda elem: filters.imgsub(elem, self.imgsubs))
        if 'fullsite' in params and 'request_path' in params:
            desktop_url = 'http://%(fullsite)s%(request_path)s' % params
            site_filters.extend((
                lambda elem: filters.absimgsrc(elem, desktop_url),
                to_imgserve,
                lambda elem: filters.abslinkfilesrc(elem, desktop_url),
                ))
        return site_filters
Exemplo n.º 2
0
    def test_abslinkfilesrc(self):
        from mobilize.filters import abslinkfilesrc
        html_in = '''<div>
    <p><a href="marketstudy.xls">Market Study</a></p>
    <p><a href="/whitepapers/fill-in-blank.doc">Make your own white paper!</a></p>
    <p><a href="/whitepapers/widgets.pdf">Widget White Paper</a></p>
    <p><a href="">HTML Pathology 101</a></p>
</div>'''
        html_out ='''<div>
    <p><a href="http://example.com/about/marketstudy.xls">Market Study</a></p>
    <p><a href="/whitepapers/fill-in-blank.doc">Make your own white paper!</a></p>
    <p><a href="http://example.com/whitepapers/widgets.pdf">Widget White Paper</a></p>
    <p><a href="">HTML Pathology 101</a></p>
</div>'''
        desktop_url = 'http://example.com/about/papers.html'
        extensions=['.xls', '.pdf']

        elem = html.fromstring(html_in)
        abslinkfilesrc(elem, desktop_url, extensions)
        result = html.tostring(elem)
        self.assertSequenceEqual(normxml(html_out), normxml(result))