Changeset 16cc943


Ignore:
Timestamp:
13/04/2012 11:16:40 (2 years ago)
Author:
Eric van der Vlist <vdv@dyomedea.com>
Branches:
master
Children:
750ccaa
Parents:
11027c0
git-author:
Eric van der Vlist <vdv@dyomedea.com> (13/04/2012 11:16:40)
git-committer:
Eric van der Vlist <vdv@dyomedea.com> (13/04/2012 11:16:40)
Message:

Refactoring before supporting CSS

Location:
archiver/pipelines/actions
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • archiver/pipelines/actions/archive-resource.xpl

    r11027c0 r16cc943  
    2525  <!-- Store the archive in the database --> 
    2626  <p:processor name="oxf:pipeline"> 
    27     <p:input name="config" href="/data-access.xpl 
    28 "/> 
     27    <p:input name="config" href="/data-access.xpl"/> 
    2928    <p:input name="data" transform="oxf:xslt" href="#data"> 
    3029      <config xsl:version="2.0"> 
     
    5049 
    5150    <!-- HTML document : need to update the links... --> 
    52     <p:when test="/archive/response/document/@content-type='text/html'"> 
    53  
    54       <!-- Store the document --> 
    55       <p:processor name="oxf:file-serializer"> 
    56         <p:input name="config"> 
    57           <config> 
    58             <scope>session</scope> 
    59           </config> 
    60         </p:input> 
    61         <p:input name="data" href="#archive#xpointer(/archive/response/document)"/> 
    62         <p:output name="data" id="url-written"/> 
    63       </p:processor> 
    64  
    65       <!-- And read it as HTML --> 
     51    <p:when test="/archive/response/document/@content-type=('text/html')"> 
     52 
     53      <!-- Call the corresponding pipeline to extract the links and rewrite them --> 
    6654      <p:processor name="oxf:url-generator"> 
    67         <p:input name="config" transform="oxf:xslt" href="#url-written"> 
     55        <p:input name="config" transform="oxf:xslt" href="#archive"> 
    6856          <config xsl:version="2.0"> 
    6957            <url> 
    70               <xsl:value-of select="/*"/> 
     58              <xsl:text>oxf:/actions/mediatypes/</xsl:text> 
     59              <xsl:value-of select="substring-after(/archive/response/document/@content-type, '/')"/> 
     60              <xsl:text>.xpl</xsl:text> 
    7161            </url> 
    72             <mode>html</mode> 
    73           </config> 
    74         </p:input> 
    75         <p:output name="data" id="html" debug="html"/> 
    76       </p:processor> 
    77  
    78       <!-- Get a list of links to update --> 
    79       <!-- TODO: support links in inline CSS --> 
    80       <p:processor name="oxf:unsafe-xslt"> 
    81         <p:input name="data" href="#html"/> 
    82         <p:input name="request" href="#archive#xpointer(/archive/request)"/> 
    83         <p:input name="config"> 
    84           <xsl:stylesheet version="2.0"> 
    85             <xsl:variable name="base" select="doc('input:request')/request/location"/> 
    86             <xsl:template match="/"> 
    87               <links> 
    88                 <xsl:variable name="links" as="node()*"> 
    89                   <xsl:apply-templates/> 
    90                 </xsl:variable> 
    91                 <xsl:for-each-group select="$links" group-by="@href"> 
    92                   <xsl:variable name="abs-href" select="resolve-uri(@href, $base)"/> 
    93                   <xsl:variable name="tokens" select="tokenize($abs-href, '/')"/> 
    94                   <xsl:variable name="last-token" select="$tokens[last()]"/> 
    95                   <xsl:variable name="tokens2" select="tokenize($last-token, '\.')"/> 
    96                   <xsl:variable name="extension" select="$tokens2[last()]"/> 
    97                   <link abs-href="{$abs-href}" new-href="{saxon:string-to-hexBinary(substring($abs-href, 1, string-length($abs-href) - string-length($extension) - 1), 'utf-8')}.{$extension}" 
    98                     filename="{saxon:string-to-hexBinary($abs-href, 'utf-8')}.xml"> 
    99                     <xsl:copy-of select="@*"/> 
    100                   </link> 
    101                 </xsl:for-each-group> 
    102               </links> 
    103             </xsl:template> 
    104             <xsl:template match="text()"/> 
    105             <xsl:template match="link[@rel='stylesheet']"> 
    106               <link> 
    107                 <xsl:copy-of select="@*"/> 
    108               </link> 
    109             </xsl:template> 
    110             <xsl:template match="img"> 
    111               <link href="{@src}" type="image/*"/> 
    112             </xsl:template> 
    113             <xsl:template match="script[@src]"> 
    114               <link href="{@src}" type="{@type}"/> 
    115             </xsl:template> 
    116           </xsl:stylesheet> 
    117         </p:input> 
    118         <p:output name="data" id="links" debug="links"/> 
    119       </p:processor> 
    120  
    121       <!-- Update the links --> 
    122       <p:processor name="oxf:unsafe-xslt"> 
    123         <p:input name="data" href="#html"/> 
    124         <p:input name="request" href="#archive#xpointer(/archive/request)"/> 
    125         <p:input name="links" href="#links"/> 
    126         <p:input name="config"> 
    127           <xsl:stylesheet version="2.0"> 
    128             <xsl:variable name="links" select="doc('input:links')/links"/> 
    129             <xsl:variable name="base" select="doc('input:request')/request/location"/> 
    130             <xsl:key name="link" match="link" use="@href"/> 
    131             <xsl:template match="@*|node()"> 
    132               <xsl:copy> 
    133                 <xsl:apply-templates select="@*|node()"/> 
    134               </xsl:copy> 
    135             </xsl:template> 
    136             <xsl:template match="link[@rel='stylesheet']/@href|img/@src|script/@src"> 
    137               <xsl:attribute name="{name(.)}"> 
    138                 <xsl:value-of select="$links/key('link', current())/@new-href"/> 
    139               </xsl:attribute> 
    140             </xsl:template> 
    141             <xsl:template match="link[@rel!='stylesheet']/@href|a/@href"> 
    142               <xsl:attribute name="{name(.)}"> 
    143                 <xsl:value-of select="resolve-uri(., $base)"/> 
    144               </xsl:attribute> 
    145             </xsl:template> 
    146           </xsl:stylesheet> 
    147         </p:input> 
    148         <p:output name="data" id="rewritten" debug="rewritten"/> 
    149       </p:processor> 
     62          </config> 
     63        </p:input> 
     64        <p:output name="data" id="pipeline"/> 
     65      </p:processor> 
     66 
     67      <p:processor name="oxf:pipeline"> 
     68        <p:input name="config" href="#pipeline"/> 
     69        <p:input name="archive" href="#archive"/> 
     70        <p:output name="rewritten" id="rewritten"/> 
     71        <p:output name="links" id="links"/> 
     72      </p:processor> 
     73 
    15074 
    15175      <!-- Store the rewritten document in the database --> 
    15276      <p:processor name="oxf:pipeline"> 
    153         <p:input name="config" href="/data-access.xpl 
    154 "/> 
     77        <p:input name="config" href="/data-access.xpl"/> 
    15578        <p:input name="data" transform="oxf:xslt" href="#data"> 
    15679          <config xsl:version="2.0"> 
     
    17598      <!-- Update the archive index --> 
    17699      <p:processor name="oxf:pipeline"> 
    177         <p:input name="config" href="/data-access.xpl 
    178 "/> 
     100        <p:input name="config" href="/data-access.xpl"/> 
    179101        <p:input name="data" transform="oxf:xslt" href="#data"> 
    180102          <config xsl:version="2.0"> 
     
    214136      <!-- Update the queue --> 
    215137      <p:processor name="oxf:pipeline"> 
    216         <p:input name="config" href="/data-access.xpl 
    217 "/> 
     138        <p:input name="config" href="/data-access.xpl"/> 
    218139        <p:input name="data" transform="oxf:xslt" href="aggregate('root', #data, #links)"> 
    219140          <config xsl:version="2.0"> 
     
    267188      <!-- Update the archive index --> 
    268189      <p:processor name="oxf:pipeline"> 
    269         <p:input name="config" href="/data-access.xpl 
    270 "/> 
     190        <p:input name="config" href="/data-access.xpl"/> 
    271191        <p:input name="data" transform="oxf:xslt" href="#data"> 
    272192          <config xsl:version="2.0"> 
     
    302222      <!-- Update the queue --> 
    303223      <p:processor name="oxf:pipeline"> 
    304         <p:input name="config" href="/data-access.xpl 
    305 "/> 
     224        <p:input name="config" href="/data-access.xpl"/> 
    306225        <p:input name="data" transform="oxf:xslt" href="#data"> 
    307226          <config xsl:version="2.0"> 
  • archiver/pipelines/actions/archive-set.xpl

    r11027c0 r16cc943  
    4141 
    4242    <p:processor name="oxf:pipeline"> 
    43         <p:input name="config" href="/data-access.xpl 
    44 "/> 
     43        <p:input name="config" href="/data-access.xpl"/> 
    4544        <p:input name="data" href="#data-access-data"/> 
    4645        <p:input name="param"> 
     
    6766 
    6867    <p:processor name="oxf:pipeline"> 
    69         <p:input name="config" href="/data-access.xpl 
    70 "/> 
     68        <p:input name="config" href="/data-access.xpl"/> 
    7169        <p:input name="data" transform="oxf:xslt" href="#data-access-data"> 
    7270            <config xsl:version="2.0"> 
Note: See TracChangeset for help on using the changeset viewer.