Changeset 205:3f36299ff25c in livinglogic.python.www

Show
Ignore:
Timestamp:
07/31/03 23:56:26 (16 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Update for XIST 2.2 with all new downloads.

Location:
site
Files:
2 added
5 removed
12 modified

Legend:

Unmodified
Added
Removed
  • site/Doc.cssxsc

    r204 r205  
    11<css> 
    22    <rule> 
    3         <sel>pre.programlisting</sel> 
     3        <sel>pre.prog</sel> 
    44        <margin-left>20pt</margin-left> 
    55        <margin-right>20pt</margin-right> 
    6         <margin-top>4pt</margin-top> 
    7         <margin-bottom>4pt</margin-bottom> 
    8         <font-size>75%</font-size> 
     6        <margin-top>1pt</margin-top> 
     7        <margin-bottom>8pt</margin-bottom> 
     8        <font-size>70%</font-size> 
    99        <line-height>12pt</line-height> 
    1010        <border>1px solid #eee</border> 
     
    4545        <sel>div.method, div.function, div.property, div.class</sel> 
    4646        <margin-left>20pt</margin-left> 
     47    </rule> 
     48    <rule> 
     49        <sel>div.class</sel> 
     50        <border-right>40pt solid #eee</border-right> 
     51        <margin-right>-46pt</margin-right> 
     52        <padding-right>6pt</padding-right> 
     53    </rule> 
     54    <rule> 
     55        <sel>div.class div.class</sel> 
     56        <margin-right>0</margin-right> 
     57        <border-right>0</border-right> 
     58        <padding-right>0</padding-right> 
    4759    </rule> 
    4860    <rule> 
  • site/Main.cssxsc

    r204 r205  
    228228        <sel>dd</sel> 
    229229        <margin-left>20pt</margin-left> 
     230        <margin-top>1pt</margin-top> 
     231        <margin-bottom>8pt</margin-bottom> 
    230232    </rule> 
    231233    <rule> 
  • site/Python_xmlns.py

    r203 r205  
    44from ll import url 
    55from ll.xist import xsc, parsers 
    6 from ll.xist.ns import html, htmlspecials, specials, abbr, meta, doc, code, xml 
    7  
    8 class Page: 
     6from ll.xist.ns import html, htmlspecials, specials, abbr, meta, doc, code, xml, text 
     7 
     8class Page(object): 
    99    """ 
    1010    A webpage in the sitemap tree. 
     
    177177                return parent 
    178178            parent = testparent 
     179 
    179180    def __repr__(self): 
    180181        return '<%s object path="%s" at 0x%x>' % (self.__class__.__name__, self.getPathString(), id(self)) 
     182 
     183    def getLinks(self): 
     184        return [] 
    181185 
    182186class StaticPage(Page): 
     
    260264        return len(self.__children) 
    261265 
     266    def getLinks(self): 
     267        links = super(StaticPage, self).getLinks() 
     268 
     269        url = self.getURL() 
     270        pos = url.rfind(".") 
     271        if pos>=0: 
     272            fourl = url[:pos+1] + "fo" 
     273            pdfurl = url[:pos+1] + "pdf" 
     274        else: 
     275            fourl = url + ".fo" 
     276            pdfurl = url + ".pdf" 
     277 
     278        return links + [ 
     279            html.link(href=fourl, rel="alternate", type="text/xml", title="An XSL-FO version of this page"), 
     280            html.link(href=pdfurl, rel="alternate", type="application/pdf", title="A PDF version of this page"), 
     281        ] 
     282 
    262283class XISTPage(StaticPage): 
    263     def __init__(self, name, *children, **attrs): 
    264         StaticPage.__init__(self, name, *children, **attrs) 
     284    def getLinks(self): 
     285        links = super(XISTPage, self).getLinks() 
     286 
     287        url = self.getURL() 
     288        pos = url.rfind(".") 
     289        if pos>=0: 
     290            txturl = url[:pos+1] + "txt" 
     291            xmlurl = url[:pos+1] + "htmlxsc" 
     292        else: 
     293            txturl = url + ".txt" 
     294            xmlurl = url + ".htmlxsc" 
     295 
     296        return [ 
     297            html.link(href=txturl, rel="alternate", type="text/plain", title="A plain text version of this page"), 
     298            html.link(href=xmlurl, rel="alternate", type="text/xml", title=("The ", abbr.xist(), " source of this page")) 
     299        ] + links 
     300 
     301class PythonSourcePage(XISTPage): 
     302    def getLinks(self): 
     303        links = super(PythonSourcePage, self).getLinks() 
    265304        url = self.getURL() 
    266305        if url.endswith(".html"): 
    267             url = url[:-5] + "_page.txt" 
    268         else: 
    269             url = url + "_page.txt" 
    270         self.__source = StaticPage("Page source", 
    271             crumb="Page source", 
    272             title=(self.getTitle(), " page source"), 
    273             linkinfo=("The ", abbr.xist(), " source of this page"), 
    274             url=url 
    275         ) 
    276         self.__source.setParent(self) 
    277  
    278     def getChildByIndex(self, index): 
    279         if index<0: 
    280             index = len(self)+index 
    281         if index==StaticPage.__len__(self): 
    282             return self.__source 
    283         else: 
    284             return StaticPage.getChildByIndex(self, index) 
    285  
    286     def getChildByName(self, index): 
    287         if index=="pagesource": 
    288             return self.__source 
    289         else: 
    290             return StaticPage.getChildByName(self, index) 
    291  
    292     def getChildren(self): 
    293         return StaticPage.getChildren(self) + [self.__source] 
    294  
    295     def __len__(self): 
    296         return StaticPage.__len__(self) + 1 
    297    
    298 class PythonSourcePage(XISTPage): 
    299     def __init__(self, name, *children, **attrs): 
    300         XISTPage.__init__(self, name, *children, **attrs) 
    301         url = self.getURL() 
    302         if url.endswith(".html"): 
    303             url = url[:-5] + "_module.txt" 
    304         else: 
    305             url = url + "_module.txt" 
    306         self.__source = StaticPage("Module source", 
    307             crumb="Module source", 
    308             title=(self.getTitle(), " module source"), 
    309             linkinfo="The Python source of this module", 
    310             url=url 
    311         ) 
    312         self.__source.setParent(self) 
    313  
    314     def getChildByIndex(self, index): 
    315         if index<0: 
    316             index = len(self)+index 
    317         if index==XISTPage.__len__(self): 
    318             return self.__source 
    319         else: 
    320             return XISTPage.getChildByIndex(self, index) 
    321  
    322     def getChildByName(self, index): 
    323         if index=="modulesource": 
    324             return self.__source 
    325         else: 
    326             return XISTPage.getChildByName(self, index) 
    327  
    328     def getChildren(self): 
    329         return XISTPage.getChildren(self) + [self.__source] 
    330  
    331     def __len__(self): 
    332         return XISTPage.__len__(self) + 1 
     306            url = url[:-5] + "_module.py" 
     307        else: 
     308            url = url + "_module.py" 
     309        return links + [html.link(href=url, rel="alternate", type="text/x-python", title="The Python module described in this page")] 
    333310 
    334311pages = XISTPage("Python", 
     
    502479            linkinfo="Module with classes for publishing trees", 
    503480            url="root:xist/publishers/index.html" 
     481        ), 
     482        PythonSourcePage("errors", 
     483            crumb="errors", 
     484            title=(abbr.xist(), ".errors"), 
     485            linkinfo="Module containing exception classes", 
     486            url="root:xist/errors/index.html" 
    504487        ), 
    505488        XISTPage("Download", 
     
    642625            localkeywords=["history", "changes", "version"] 
    643626        ), 
     627        XISTPage("Installation", 
     628            crumb="Installation", 
     629            title="ANSIStyle installation", 
     630            linkinfo="Requirements and installation", 
     631            url="root:ansistyle/Installation.html", 
     632            localkeywords=["installation", "distutils"] 
     633        ), 
    644634        crumb="ANSIStyle", 
    645635        linkinfo="ANSI colors for output streams and strings", 
    646636        url="root:ansistyle/index.html", 
    647637        inheritablekeywords=["packages", "ANSIStyle", abbr.ansi(), "escape", "color", "console"] 
    648     ), 
    649     PythonSourcePage("FileUtils", 
    650         XISTPage("Download", 
    651             crumb="Download", 
    652             title="FileUtils download", 
    653             linkinfo="All versions for download", 
    654             url="root:fileutils/Download.html", 
    655             localkeywords=["packages", "download", "file", "archive"] 
    656         ), 
    657         XISTPage("History", 
    658             crumb="History", 
    659             title="FileUtils history", 
    660             linkinfo="The development history", 
    661             url="root:fileutils/History.html", 
    662             localkeywords=["packages", "history", "changes", "version"] 
    663         ), 
    664         XISTPage("Installation", 
    665             crumb="Installation", 
    666             title="FileUtils installation", 
    667             linkinfo="Requirements and installation", 
    668             url="root:fileutils/Installation.html", 
    669             localkeywords=["installation", "distutils"] 
    670         ), 
    671         crumb="FileUtils", 
    672         title="FileUtils", 
    673         linkinfo="File i/o related utilities", 
    674         url="root:fileutils/index.html", 
    675         localkeywords=["packages", "file", "i/o"] 
    676638    ), 
    677639    PythonSourcePage("SQL", 
     
    705667        crumb=(abbr.cvs(), " access"), 
    706668        title=(abbr.cvs(), " access"), 
    707         linkinfo=("Access to the ", abbr.cvs(), " repository via anonymous ", abbr.cvs(), " and ViewCVS"), 
     669        linkinfo=("Access to the ", abbr.cvs(), " repository via ViewCVS"), 
     670        #linkinfo=("Access to the ", abbr.cvs(), " repository via anonymous ", abbr.cvs(), " and ViewCVS"), 
    708671        url="root:cvs.html", 
    709672        localkeywords=[abbr.cvs(), "development", "repository"] 
     
    821784 
    822785    def convert(self, converter): 
     786        target = converter.target 
    823787        context = converter[self.__class__] 
    824788        context.path = unicode(self["path"].convert(converter)) 
    825789        context.page = pages[context.path] 
    826790        # if the page does not have a "content" element, the whole page's content is considered as the page content 
    827         e_content = self.find(type=content) 
     791        e_content = self.content.find(xsc.FindType(content)) 
    828792        if not len(e_content): 
    829793            e_content = self.content 
    830         # the page has a "content" element, so we have to check the elements "trail" and "links" as well 
    831         c = htmlspecials.plaintable( 
    832             html.tr( 
    833                 html.td(htmlspecials.pixel(height=50)), # links 
    834                 html.td( # content 
    835                     html.a( 
    836                         htmlspecials.autoimg( 
    837                             src="root:images/LivingLogicKlein.gif", 
    838                             border=0, 
    839                             alt="" 
     794        if issubclass(target, text): 
     795            e = target.html( 
     796                target.head( 
     797                    meta.contenttype(), 
     798                    target.title(self["title"]), 
     799                ), 
     800                target.body( 
     801                    e_content 
     802                ) 
     803            ) 
     804        elif issubclass(target, doc): 
     805            return e_content.convert(converter) 
     806        elif not issubclass(target, html): 
     807            raise ValueError("unknown conversion target %r" % target) 
     808        else: 
     809            c = htmlspecials.plaintable( 
     810                html.tr( 
     811                    html.td(htmlspecials.pixel(height=50)), # links 
     812                    html.td( # content 
     813                        html.a( 
     814                            htmlspecials.autoimg( 
     815                                src="root:images/LivingLogicKlein.gif", 
     816                                border=0, 
     817                                alt="" 
     818                            ), 
     819                            href="http://www.livinglogic.de/", 
     820                            hreflang="de", 
     821                            title="The company homepage (in german)" 
    840822                        ), 
    841                         href="http://www.livinglogic.de/", 
    842                         hreflang="de", 
    843                         title="The company homepage (in german)" 
     823                        align="left", 
     824                        valign="middle", 
     825                        height=50 
    844826                    ), 
    845                     align="left", 
    846                     valign="middle", 
    847                     height=50 
     827                    class_="header" # this covers the background image 
    848828                ), 
    849                 class_="header" # this covers the background image 
    850             ), 
    851             html.tr( 
    852                 html.td(colspan=2, class_="linie") 
    853             ), 
    854             html.tr( 
    855                 html.td(htmlspecials.pixel()), 
    856                 html.td(html.div(self._crumbs(context), class_="crumbs")), 
    857                 valign="top" 
    858             ), 
    859             html.tr( 
    860                 html.td(self.__links(context)), 
    861                 html.td(html.div(e_content, class_="content")), 
    862                 valign="top" 
    863             ), 
    864             width="100%" 
    865         ) 
    866  
    867         keywords = context.page.getKeywords() 
    868         if len(keywords): 
    869             keywords = meta.keywords(xsc.Frag(*keywords).withsep(", ")) 
    870         else: 
    871             keywords = xsc.Null 
    872         description = context.page.getDescription() 
    873         if description is not None: 
    874             description = meta.description(description) 
    875         else: 
    876             description = xsc.Null 
    877         if self.attrs.has("refresh"): 
    878             refresh = html.meta(http_equiv="refresh", content=self["refresh"]) 
    879         else: 
    880             refresh = xsc.Null 
    881  
    882         firstsibling = context.page.getFirstSibling() 
    883         if firstsibling is not None: 
    884             if firstsibling != context.page: 
    885                 firstsibling = html.link(rel="first", title="First page in set", href=firstsibling.getURL()) 
     829                html.tr( 
     830                    html.td(colspan=2, class_="linie") 
     831                ), 
     832                html.tr( 
     833                    html.td(htmlspecials.pixel()), 
     834                    html.td(html.div(self._crumbs(context), class_="crumbs")), 
     835                    valign="top" 
     836                ), 
     837                html.tr( 
     838                    html.td(self.__links(context)), 
     839                    html.td(html.div(e_content, class_="content")), 
     840                    valign="top" 
     841                ), 
     842                width="100%" 
     843            ) 
     844 
     845            keywords = context.page.getKeywords() 
     846            if len(keywords): 
     847                keywords = meta.keywords(xsc.Frag(*keywords).withsep(", ")) 
    886848            else: 
    887                 firstsibling = None 
    888  
    889         prevsibling = context.page.getPrevSibling() 
    890         if prevsibling is not None: 
    891             if prevsibling != context.page: 
    892                 prevsibling = html.link(rel="prev", title="Previous page", href=prevsibling.getURL()) 
     849                keywords = xsc.Null 
     850            description = context.page.getDescription() 
     851            if description is not None: 
     852                description = meta.description(description) 
    893853            else: 
    894                 prevsibling = None 
    895  
    896         nextsibling = context.page.getNextSibling() 
    897         if nextsibling is not None: 
    898             if nextsibling != context.page: 
    899                 nextsibling = html.link(rel="next", title="Next page", href=nextsibling.getURL()) 
     854                description = xsc.Null 
     855            if "refresh" in self.attrs: 
     856                refresh = html.meta(http_equiv="refresh", content=self["refresh"]) 
    900857            else: 
    901                 nextsibling = None 
    902  
    903         lastsibling = context.page.getLastSibling() 
    904         if lastsibling is not None: 
    905             if lastsibling != context.page: 
    906                 lastsibling = html.link(rel="last", title="Last page in set", href=lastsibling.getURL()) 
    907             else: 
    908                 lastsibling = None 
    909  
    910         parent = context.page.getParent() 
    911         if parent is not None: 
    912             parent = html.link(rel="up", href=parent.getURL()) 
    913  
    914         top = context.page.getRoot() 
    915         if top is not None: 
    916             if top != context.page: 
    917                 top = html.link(rel="top", href=top.getURL()) 
    918             else: 
    919                 top = None 
    920  
    921         e = html.html( 
    922             html.head( 
    923                 meta.contenttype(), 
    924                 html.title(self["title"]), 
    925                 meta.stylesheet(href="root:Main.css", media="screen, projection, tv"), 
    926                 meta.stylesheet(href="root:Doc.css", media="screen, projection, tv"), 
    927                 meta.stylesheet(href="root:MainPrint.css", media="print"), 
    928                 meta.stylesheet(href="root:DocPrint.css", media="print"), 
    929                 html.script(type="text/javascript", src="root:Main.js"), 
    930                 meta.author(name=u"Walter Dörwald", email="walter.doerwald@livinglogic.de"), 
    931                 html.link(rel="icon", href="root:images/favicon.gif", type="image/gif"), 
    932                 top, 
    933                 parent, 
    934                 firstsibling, 
    935                 prevsibling, 
    936                 nextsibling, 
    937                 lastsibling, 
    938                 keywords, 
    939                 description, 
    940                 refresh 
    941             ), 
    942             html.body( 
    943                 html.div(htmlspecials.autoimg(src=("root:images/Backdrops/Nautilus-", self["class_"], ".jpg"), alt=""), class_="backdrop"), 
    944                 html.div(c, class_="page"), 
    945                 onload="wireAllRollovers()", 
    946                 class_=self["class_"] 
    947             ), 
    948             {(xml, "lang"): "en"}, 
    949             lang="en", 
    950         ) 
    951         e = xsc.Frag( 
    952             xml.XML10(), 
    953             "\n", 
    954             html.DocTypeXHTML10transitional(), 
    955             "\n", 
    956             e 
    957         ) 
     858                refresh = xsc.Null 
     859 
     860            firstsibling = context.page.getFirstSibling() 
     861            if firstsibling is not None: 
     862                if firstsibling != context.page: 
     863                    firstsibling = html.link(rel="first", title="First page in set", href=firstsibling.getURL()) 
     864                else: 
     865                    firstsibling = None 
     866 
     867            prevsibling = context.page.getPrevSibling() 
     868            if prevsibling is not None: 
     869                if prevsibling != context.page: 
     870                    prevsibling = html.link(rel="prev", title="Previous page", href=prevsibling.getURL()) 
     871                else: 
     872                    prevsibling = None 
     873 
     874            nextsibling = context.page.getNextSibling() 
     875            if nextsibling is not None: 
     876                if nextsibling != context.page: 
     877                    nextsibling = html.link(rel="next", title="Next page", href=nextsibling.getURL()) 
     878                else: 
     879                    nextsibling = None 
     880 
     881            lastsibling = context.page.getLastSibling() 
     882            if lastsibling is not None: 
     883                if lastsibling != context.page: 
     884                    lastsibling = html.link(rel="last", title="Last page in set", href=lastsibling.getURL()) 
     885                else: 
     886                    lastsibling = None 
     887 
     888            parent = context.page.getParent() 
     889            if parent is not None: 
     890                parent = html.link(rel="up", href=parent.getURL()) 
     891 
     892            top = context.page.getRoot() 
     893            if top is not None: 
     894                if top != context.page: 
     895                    top = html.link(rel="top", href=top.getURL()) 
     896                else: 
     897                    top = None 
     898 
     899            e = target.html( 
     900                target.head( 
     901                    meta.contenttype(), 
     902                    target.title(self["title"]), 
     903                    meta.stylesheet(href="root:Main.css", media="screen, projection, tv"), 
     904                    meta.stylesheet(href="root:Doc.css", media="screen, projection, tv"), 
     905                    meta.stylesheet(href="root:MainPrint.css", media="print"), 
     906                    meta.stylesheet(href="root:DocPrint.css", media="print"), 
     907                    meta.author(name=u"Walter Dörwald", email="walter.doerwald@livinglogic.de"), 
     908                    html.link(rel="icon", href="root:images/favicon.gif", type="image/gif"), 
     909                    top, 
     910                    parent, 
     911                    firstsibling, 
     912                    prevsibling, 
     913                    nextsibling, 
     914                    lastsibling, 
     915                    context.page.getLinks(), 
     916                    keywords, 
     917                    description, 
     918                    refresh 
     919                ), 
     920                target.body( 
     921                    target.div(htmlspecials.autoimg(src=("root:images/Backdrops/Nautilus-", self["class_"], ".jpg"), alt=""), class_="backdrop"), 
     922                    target.div(c, class_="page"), 
     923                    class_=self["class_"] 
     924                ), 
     925                {(xml, "lang"): "en"}, 
     926                lang="en", 
     927            ) 
     928            e = xsc.Frag( 
     929                xml.XML10(), 
     930                "\n", 
     931                target.DocTypeXHTML10transitional(), 
     932                "\n", 
     933                e 
     934            ) 
    958935        return e.convert(converter) 
    959936 
     
    969946 
    970947    def convert(self, converter): 
    971         if self.attrs.has("ref"): 
     948        if "ref" in self.attrs: 
    972949            page = pages[unicode(self["ref"].convert(converter))] 
    973950        else: 
     
    980957 
    981958    def convert(self, converter): 
    982         e = html.div( 
    983             htmlspecials.plaintable( 
    984                 self.content, 
    985                 class_="downloads" 
    986             ), 
    987             align="center" 
    988         ) 
     959        target = converter.target 
     960        if issubclass(target, doc): 
     961            e = self.content 
     962        else: 
     963            e = html.div( 
     964                htmlspecials.plaintable( 
     965                    self.content, 
     966                    class_="downloads" 
     967                ), 
     968                align="center" 
     969            ) 
    989970        return e.convert(converter) 
    990971 
     
    996977 
    997978    def convert(self, converter): 
    998         e = xsc.Frag( 
    999             html.tr( 
    1000                 html.th(self["version"], class_="version"), 
    1001                 html.th("Type", class_="type"), 
    1002                 html.th("Size", class_="size") 
    1003             ), 
    1004             self.content 
    1005         ) 
    1006         if self.attrs.has("date"): 
    1007             e[0][0].append(" ", html.span("(released ", self["date"], ")", class_="note")) 
     979        target = converter.target 
     980        if issubclass(target, doc): 
     981            e = target.section( 
     982                target.title("Version ", self["version"], " (released ", self["date"], ")"), 
     983                target.ulist(self.content) 
     984            ) 
     985        else: 
     986            e = xsc.Frag( 
     987                html.tr( 
     988                    html.th(self["version"], class_="version"), 
     989                    html.th("Type", class_="type"), 
     990                    html.th("Size", class_="size") 
     991                ), 
     992                self.content 
     993            ) 
     994            if "date" in self.attrs: 
     995                e[0][0].append(" ", html.span("(released ", self["date"], ")", class_="note")) 
    1008996        return e.convert(converter) 
    1009997 
     
    10151003 
    10161004    def convert(self, converter): 
     1005        target = converter.target 
    10171006        name = url.URL(unicode(self["href"].convert(converter))).file 
    1018         if self.attrs.has("type"): 
     1007        if "type" in self.attrs: 
    10191008            type = self["type"] 
    10201009        elif name.endswith(".tar.gz") or name.endswith(".tar.bz2") or name.endswith(".zip"): 
     
    10281017        else: 
    10291018            type = html.nbsp() 
    1030         e = html.tr( 
    1031             html.td(html.a(unicode(name), href=("http://ftp.livinglogic.de/", self["href"]), title=("Download http://ftp.livinglogic.de/", self["href"])), class_="file"), 
    1032             html.td(type, class_="type"), 
    1033             html.td(specials.filesize(href=("http://ftp.livinglogic.de/", self["href"])), class_="size"), 
    1034             class_="download" 
    1035         ) 
     1019 
     1020        if issubclass(target, doc): 
     1021            e = target.item( 
     1022                target.link(unicode(name), href=("http://ftp.livinglogic.de/", self["href"])), 
     1023                " (", 
     1024                type, 
     1025                ", ", 
     1026                specials.filesize(href=("http://ftp.livinglogic.de/", self["href"])), 
     1027                " bytes)" 
     1028            ) 
     1029        else: 
     1030            e = html.tr( 
     1031                html.td(html.a(unicode(name), href=("http://ftp.livinglogic.de/", self["href"]), title=("Download http://ftp.livinglogic.de/", self["href"])), class_="file"), 
     1032                html.td(type, class_="type"), 
     1033                html.td(specials.filesize(href=("http://ftp.livinglogic.de/", self["href"])), class_="size"), 
     1034                class_="download" 
     1035            ) 
    10361036        return e.convert(converter) 
    10371037 
     
    10431043xmlns.makemod(vars()) 
    10441044 
    1045  
  • site/ansistyle/Download.htmlxsc

    r199 r205  
    44<doc:section><doc:title>ANSIStyle download</doc:title> 
    55You can either go directly to the 
    6 <a href="http://ftp.livinglogic.de/ansistyle/">&http; download directory</a> 
    7 or the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/ansistyle/">&ftp; download directory</a> 
     6<link href="http://ftp.livinglogic.de/ansistyle/">&http; download directory</link> 
     7or the <link href="ftp://ftp.livinglogic.de/pub/livinglogic/ansistyle/">&ftp; download directory</link> 
    88or choose one of the following archives: 
    99<alldownloads> 
     10<downloads version="0.4" date="07/31/2002"> 
     11<download href="ansistyle/ll-ansistyle-0.4.win32-py2.3.exe" /> 
     12<download href="ansistyle/ll-ansistyle-0.4-1.i386.rpm" /> 
     13<download href="ansistyle/ll-ansistyle-0.4-1.src.rpm" /> 
     14<download href="ansistyle/ll-ansistyle-0.4.zip" /> 
     15<download href="ansistyle/ll-ansistyle-0.4.tar.bz2" /> 
     16<download href="ansistyle/ll-ansistyle-0.4.tar.gz" /> 
     17</downloads> 
    1018<downloads version="0.3.1" date="11/14/2002"> 
    1119<download href="ansistyle/ANSIStyle-0.3.1.win32-py2.2.exe" /> 
  • site/cvs.htmlxsc

    r144 r205  
    22<py:page path="CVS" class="CVS" title="CVS access · Python software · LivingLogic AG"> 
    33<py:content> 
    4 <doc:section><doc:title>&cvs; access</doc:title> 
     4<section><title>&cvs; access</title> 
    55<par>The &cvs; repository for all projects is mirrored daily and can be browsed 
    6 via <a href="http://www.livinglogic.de/viewcvs/">ViewCVS</a>.</par> 
     6via <link href="http://www.livinglogic.de/viewcvs/">ViewCVS</link>.</par> 
     7<x> 
    78<par>The repository can be checked out through anonymous (pserver) &cvs;. 
    89You have to login once with the following command (typed on one line with no spaces between <lit>:</lit> and <lit>/</lit>):</par> 
    9 <doc:programlisting> 
     10<prog> 
    1011cvs -d:pserver:anonymous@www.livinglogic.de: 
    1112    /home/viewcvs/cvsroot login 
    12 </doc:programlisting> 
    13 <doc:par>When prompted for a password for <lit>anonymous</lit>, simply press the Enter key.</doc:par> 
     13</prog> 
     14<par>When prompted for a password for <lit>anonymous</lit>, simply press the Enter key.</par> 
    1415 
    15 <doc:par>Now you can check out the module you want, e.g. to check out <a href="root:xist/index.html">&xist;</a> 
    16 do the following (again typed on one line with no spaces between <lit>:</lit> and <lit>/</lit>):</doc:par> 
    17 <doc:programlisting> 
     16<par>Now you can check out the module you want, e.g. to check out &xist; do the following 
     17(again typed on one line with no spaces between <lit>:</lit> and <lit>/</lit>):</par> 
     18<prog> 
    1819cvs -z3 -d:pserver:anonymous@www.livinglogic.de: 
    1920    /home/viewcvs/cvsroot co LivingLogic/xist 
    20 </doc:programlisting> 
     21</prog> 
    2122 
    22 <doc:par>Updates from within the module's directory do not need the <lit>-d</lit> parameter.</doc:par> 
    23 </doc:section> 
     23<par>Updates from within the module's directory do not need the <lit>-d</lit> parameter.</par> 
     24</x> 
     25 
     26</section> 
    2427</py:content> 
    2528</py:page> 
  • site/index.htmlxsc

    r194 r205  
    22<py:page path="" class="Python" title="Python software · LivingLogic AG"> 
    33<py:content> 
    4 <doc:section><doc:title>Python packages and modules</doc:title> 
     4<section><title>Python packages and modules</title> 
    55<par>This pages host several Python packages and modules developed 
    66by LivingLogic during the years.</par> 
    7 <doc:ulist> 
    8 <item><em><a href="xist/index.html">&xist;</a></em> is an <em>&xml;</em>-based <em>&html; generator</em> 
     7<ulist> 
     8<item><em><link href="xist/index.html">&xist;</link></em> is an <em>&xml;</em>-based <em>&html; generator</em> 
    99that's easy to extend with new elements. (These pages are generated with &xist;)</item> 
    10 <item><em><a href="make/index.html">Make</a></em> is an object oriented make replacement.</item> 
    11 <item><em><a href="sisyphus/index.html">Sisyphus</a></em> is a module that simplifies 
     10<item><em><link href="make/index.html">Make</link></em> is an object oriented make replacement.</item> 
     11<item><em><link href="sisyphus/index.html">Sisyphus</link></em> is a module that simplifies 
    1212running Python stuff in <em>cron jobs</em>.</item> 
    13 <item><em><a href="ansistyle/index.html">ANSIStyle</a></em> is a module that adds 
     13<item><em><link href="ansistyle/index.html">ANSIStyle</link></em> is a module that adds 
    1414<em>ANSI color</em> capability to an output stream.</item> 
    15 <item><em><a href="url/index.html">URL</a></em>, a module that implements an RFC2396 
     15<item><em><link href="url/index.html">URL</link></em>, a module that implements an RFC2396 
    1616compatible &url; class.</item> 
    17 <item><em><a href="fileutils/index.html">FileUtils</a></em>, a module that contains various 
     17<item><em><link href="fileutils/index.html">FileUtils</link></em>, a module that contains various 
    1818file i/o related functions and classes.</item> 
    19 <item><em><a href="sql/index.html">SQL</a></em>, a module that contains elements 
     19<item><em><link href="sql/index.html">SQL</link></em>, a module that contains elements 
    2020that simplify generating <em>&sql;</em> insert, update and delete statements.</item> 
    21 </doc:ulist> 
    22 </doc:section> 
     21</ulist> 
     22</section> 
    2323</py:content> 
    2424</py:page> 
  • site/m.py

    r203 r205  
    33from ll.xist import xsc 
    44 
    5 import sys, os, os.path, ExceptHook 
     5import sys, os, os.path, errno, ExceptHook 
    66 
    77sys.excepthook = ExceptHook.ExceptHookMono() 
    88 
    99from ll import make, url 
     10from ll.xist.ns import text, doc, fo, specials 
    1011 
    1112p = make.Project() 
     
    9899cssns = makeNamespace(url.Filename("css_xmlns.py")) 
    99100 
     101class XISTTextAction(make.XISTAction): 
     102    def publish(self, target, node): 
     103        """ 
     104        <par>publish the <arg>node</arg> as the content of the 
     105        target <arg>target</arg>.</par> 
     106        """ 
     107        text = node.asText() 
     108        outfile = target.id.openwrite() 
     109        try: 
     110            outfile.write(text) 
     111        except: 
     112            target.failed() 
     113            raise 
     114        outfile.close() 
     115        return len(text) 
     116 
     117class XISTFOAction(make.XISTAction): 
     118    def convert(self, node, maketarget=None): 
     119        node = doc.fodoc(node) 
     120        return make.XISTAction.convert(self, node, maketarget=maketarget) 
     121 
     122    def publisher(self, target, stream): 
     123        from ll.xist import publishers 
     124 
     125        prefixes = xsc.Prefixes() 
     126        prefixes.addElementPrefixMapping("fo", fo) 
     127        prefixes.addElementPrefixMapping("doc", doc) 
     128        prefixes.addElementPrefixMapping("specials", specials) 
     129 
     130        return publishers.FilePublisher(stream, base=target.base, root=self.targetroot, encoding=self.encoding, xhtml=self.xhtml, elementmode=2, prefixes=prefixes) 
     131 
     132class XISTPDFAction(make.Action): 
     133    def execute(self, target): 
     134        sources = target.sources(make.MainDep) 
     135        assert len(sources)==1, "XISTPDFAction must have one main source for target %r, has %r" % (target, sources) 
     136        fofilename = sources[0].id.local() 
     137        pdffilename = target.id.local() 
     138        pdfdirname = os.path.dirname(pdffilename) 
     139        try: 
     140            os.mkdir(pdfdirname) 
     141        except OSError, exc: 
     142            if exc.errno != errno.EEXIST: 
     143                raise 
     144        os.system("/usr/local/src/fop-0.20.4/fop.sh -q -c /usr/local/src/fop-0.20.4/conf/userconfig.xml -fo %s -pdf %s" % (fofilename, pdffilename)) 
     145        #os.remove(fofilename) 
     146 
    100147root = url.root() 
     148 
    101149xistaction = make.XISTAction(encoding="utf-8", xhtml=1, lang="en", targetroot=here/builddir) 
     150xistactiontext = XISTTextAction(encoding="iso-8859-1", xhtml=1, lang="en", targetroot=here/builddir, target=text) 
     151xistactionfo = XISTFOAction(encoding="iso-8859-1", xhtml=1, lang="en", targetroot=here/builddir, target=fo) 
     152xistactionpdf = XISTPDFAction() 
    102153modeaction = make.ModeAction(0644) 
    103 for id in files: 
    104     ext = id.ext 
    105     if ext and ext.endswith("xsc"): 
    106         newid = id.withExt(ext[:-3]) 
    107         f = make.XISTTarget(p, here/srcdir/id, base=root/newid) 
    108         f2 = make.HTMLTarget(p, here/builddir/newid, xistaction, base=root/newid) 
    109         f3 = make.HTMLTarget(p, here/installdir/newid, actions=(copyaction, modeaction), base=root/newid) 
    110         f2.dependOn(make.MainDep, f) 
    111         if ext=="cssxsc": 
    112             f2.dependOn(cssns) 
    113         else: 
    114             f2.dependOn(pyns) 
    115         f2.dependOn(*auxFiles) 
    116         f3.dependOn(make.MainDep, f2) 
    117         build.dependOn(f2) 
    118         install.dependOn(f3) 
    119  
    120         pagesrcid = id.withFile(id.file[:-len(ext)-1] + "_page.txt") 
    121         f2 = make.XISTTarget(p, here/builddir/pagesrcid, copyaction) 
    122         f3 = make.XISTTarget(p, here/installdir/pagesrcid, actions=(copyaction, modeaction)) 
    123         f2.dependOn(make.MainDep, f) 
    124         f3.dependOn(make.MainDep, f2) 
    125         build.dependOn(f2) 
    126         install.dependOn(f3) 
    127154 
    128155mod_xist = make.PythonTarget(p, here/pythonrootdir/"xist/__init__.py") 
     
    147174mod_xist_ns_css = make.PythonTarget(p, here/pythonrootdir/"xist/ns/css.py") 
    148175mod_xist_ns_cssspecials = make.PythonTarget(p, here/pythonrootdir/"xist/ns/cssspecials.py") 
     176mod_xist_ns_text = make.PythonTarget(p, here/pythonrootdir/"xist/ns/text.py") 
    149177mod_xist_sources = make.PythonTarget(p, here/pythonrootdir/"xist/sources.py") 
    150178mod_xist_parsers = make.PythonTarget(p, here/pythonrootdir/"xist/parsers.py") 
     
    152180mod_xist_presenters = make.PythonTarget(p, here/pythonrootdir/"xist/presenters.py") 
    153181mod_xist_publishers = make.PythonTarget(p, here/pythonrootdir/"xist/publishers.py") 
     182mod_xist_errors = make.PythonTarget(p, here/pythonrootdir/"xist/errors.py") 
    154183mod_url = make.PythonTarget(p, here/pythonrootdir/"url.py") 
    155184mod_make = make.PythonTarget(p, here/pythonrootdir/"make.py") 
    156185mod_sisyphus = make.PythonTarget(p, here/pythonrootdir/"sisyphus.py") 
    157186mod_ansistyle = make.PythonTarget(p, here/pythonrootdir/"ansistyle.py") 
    158 mod_fileutils = make.PythonTarget(p, here/pythonrootdir/"fileutils.py") 
    159187mod_sql = make.PythonTarget(p, here/pythonrootdir/"sql.py") 
    160188 
     189for id in files: 
     190    ext = id.ext 
     191    if ext and ext.endswith("xsc"): 
     192        newid = id.withExt(ext[:-3]) 
     193        f = make.XISTTarget(p, here/srcdir/id, base=root/newid) 
     194        f2 = make.HTMLTarget(p, here/builddir/newid, xistaction, base=root/newid) 
     195        f3 = make.HTMLTarget(p, here/installdir/newid, actions=(copyaction, modeaction), base=root/newid) 
     196        f2.dependOn(make.MainDep, f) 
     197        if ext=="cssxsc": 
     198            f2.dependOn(cssns) 
     199        else: 
     200            f2.dependOn(pyns) 
     201        f2.dependOn(*auxFiles) 
     202        f3.dependOn(make.MainDep, f2) 
     203        build.dependOn(f2) 
     204        install.dependOn(f3) 
     205 
     206        # Build alternate versions of the page 
     207        if ext != "cssxsc": 
     208            # Source version of the page 
     209            pagesrcid = id 
     210            f2 = make.XISTTarget(p, here/builddir/pagesrcid, copyaction) 
     211            f3 = make.XISTTarget(p, here/installdir/pagesrcid, actions=(copyaction, modeaction)) 
     212            f2.dependOn(make.MainDep, f) 
     213            f3.dependOn(make.MainDep, f2) 
     214            build.dependOn(f2) 
     215            install.dependOn(f3) 
     216 
     217            # Plain text version of the page 
     218            txtid = id.withExt("txt") 
     219            t2 = make.PythonTarget(p, here/builddir/txtid, xistactiontext) 
     220            t2.dependOn(make.MainDep, f) 
     221            t2.dependOn(pyns, mod_xist_ns_text) 
     222 
     223            build.dependOn(t2) 
     224            t3 = make.PythonTarget(p, here/installdir/txtid, actions=(copyaction, modeaction)) 
     225            t3.dependOn(make.MainDep, t2) 
     226            install.dependOn(t3) 
     227 
     228            # XSL-FO version of the page 
     229            foid = id.withExt("fo") 
     230            fot2 = make.XISTTarget(p, here/builddir/foid, xistactionfo) 
     231            fot2.dependOn(make.MainDep, f) 
     232            fot2.dependOn(pyns, mod_xist_ns_doc) 
     233 
     234            build.dependOn(fot2) 
     235            fot3 = make.XISTTarget(p, here/installdir/foid, actions=(copyaction, modeaction)) 
     236            fot3.dependOn(make.MainDep, fot2) 
     237            install.dependOn(fot3) 
     238 
     239            # PDF version of the page 
     240            pdfid = id.withExt("pdf") 
     241            t2 = make.PDFTarget(p, here/builddir/pdfid, xistactionpdf) 
     242            t2.dependOn(make.MainDep, fot2) 
     243 
     244            build.dependOn(t2) 
     245            t3 = make.PDFTarget(p, here/installdir/pdfid, actions=(copyaction, modeaction)) 
     246            t3.dependOn(make.MainDep, t2) 
     247            install.dependOn(t3) 
     248 
    161249# Additional dependencies (News & Install) 
    162 p[here/builddir/"ansistyle/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/ansistyle/NEWS.xml")) 
    163 p[here/builddir/"fileutils/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/fileutils/NEWS.xml")) 
    164 p[here/builddir/"fileutils/Installation.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/fileutils/INSTALL.xml")) 
    165 p[here/builddir/"sisyphus/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/sisyphus/NEWS.xml")) 
    166 p[here/builddir/"sql/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/sql/NEWS.xml")) 
    167 p[here/builddir/"sql/Installation.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/sql/INSTALL.xml")) 
    168 p[here/builddir/"xist/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/xist/NEWS.xml")) 
    169 p[here/builddir/"xist/Installation.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/xist/INSTALL.xml")) 
    170 p[here/builddir/"xist/Howto.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/xist/HOWTO.xml")) 
    171 p[here/builddir/"xist/Migration.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/xist/MIGRATION.xml")) 
    172 p[here/builddir/"url/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/url/NEWS.xml")) 
    173 p[here/builddir/"url/Installation.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/url/INSTALL.xml")) 
    174 p[here/builddir/"url/Howto.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/url/HOWTO.xml")) 
    175 p[here/builddir/"make/History.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/make/NEWS.xml")) 
    176 p[here/builddir/"make/Installation.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/make/INSTALL.xml")) 
    177 p[here/builddir/"make/Migration.html"].dependOn(make.XMLTarget(p, here/repositorydir/"LivingLogic/Python/make/MIGRATION.xml")) 
     250params = [ 
     251    ("ansistyle/History", "LivingLogic/Python/ansistyle/NEWS.xml"), 
     252    ("sisyphus/History", "LivingLogic/Python/sisyphus/NEWS.xml"), 
     253    ("sql/History", "LivingLogic/Python/sql/NEWS.xml"), 
     254    ("sql/Installation", "LivingLogic/Python/sql/INSTALL.xml"), 
     255    ("xist/History", "LivingLogic/xist/NEWS.xml"), 
     256    ("xist/Installation", "LivingLogic/xist/INSTALL.xml"), 
     257    ("xist/Howto", "LivingLogic/xist/HOWTO.xml"), 
     258    ("xist/Migration", "LivingLogic/xist/MIGRATION.xml"), 
     259    ("url/History", "LivingLogic/Python/url/NEWS.xml"), 
     260    ("url/Installation", "LivingLogic/Python/url/INSTALL.xml"), 
     261    ("url/Howto", "LivingLogic/Python/url/HOWTO.xml"), 
     262    ("make/History", "LivingLogic/Python/make/NEWS.xml"), 
     263    ("make/Installation", "LivingLogic/Python/make/INSTALL.xml"), 
     264    ("make/Migration", "LivingLogic/Python/make/MIGRATION.xml"), 
     265] 
     266 
     267for (target, source) in params: 
     268    source = make.XMLTarget(p, here/repositorydir/source) 
     269    for ext in ("html", "fo"): 
     270        p[here/builddir/(target+"." + ext)].dependOn(source) 
    178271 
    179272# Docstring and module source dependencies 
    180 params = ( 
     273params = [ 
    181274    ("xist/", (mod_xist, mod_xist_ns_doc)), 
    182275    ("xist/xsc/", (mod_xist_xsc, mod_xist_ns_doc)), 
     
    205298    ("xist/presenters/", (mod_xist_presenters, mod_xist_ns_doc)), 
    206299    ("xist/publishers/",  (mod_xist_publishers, mod_xist_ns_doc)), 
     300    ("xist/errors/",  (mod_xist_errors, mod_xist_ns_doc)), 
    207301    ("url/", (mod_url, mod_xist_ns_doc)), 
    208302    ("make/", (mod_make, mod_xist_ns_doc)), 
    209303    ("sisyphus/", (mod_sisyphus, mod_xist_ns_doc)), 
    210304    ("ansistyle/", (mod_ansistyle, mod_xist_ns_doc)), 
    211     ("fileutils/", (mod_fileutils, mod_xist_ns_doc)), 
    212305    ("sql/", (mod_sql, mod_xist_ns_doc)), 
    213 ) 
     306] 
    214307 
    215308for (base, mods) in params: 
    216     f = p[here/builddir/(base + "index.html")] 
    217     f.dependOn(*mods) 
    218  
    219     f2 = make.PythonTarget(p, here/builddir/(base + "index_module.txt"), copyaction) 
     309    for ext in ("html", "fo"): 
     310        f = p[here/builddir/(base + "index." + ext)] 
     311        f.dependOn(*mods) 
     312 
     313    f2 = make.PythonTarget(p, here/builddir/(base + "index_module.py"), copyaction) 
    220314    f2.dependOn(make.MainDep, mods[0]) 
    221315    build.dependOn(f2) 
    222     f3 = make.PythonTarget(p, here/installdir/(base + "index_module.txt"), actions=(copyaction, modeaction)) 
     316    f3 = make.PythonTarget(p, here/installdir/(base + "index_module.py"), actions=(copyaction, modeaction)) 
    223317    f3.dependOn(make.MainDep, f2) 
    224318    install.dependOn(f3) 
  • site/make/Download.htmlxsc

    r203 r205  
    44<doc:section><doc:title>Make download</doc:title> 
    55You can either go directly to the 
    6 <a href="http://ftp.livinglogic.de/make/">&http; download directory</a> 
    7 or the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/make/">&ftp; download directory</a> 
     6<link href="http://ftp.livinglogic.de/make/">&http; download directory</link> 
     7or the <link href="ftp://ftp.livinglogic.de/pub/livinglogic/make/">&ftp; download directory</link> 
    88or choose one of the following archives: 
    99<alldownloads> 
     10<downloads version="0.11" date="07/31/2003"> 
     11<download href="make/ll-make-0.11.win32.exe" /> 
     12<download href="make/ll-make-0.11-1.noarch.rpm" /> 
     13<download href="make/ll-make-0.11-1.src.rpm" /> 
     14<download href="make/ll-make-0.11.zip" /> 
     15<download href="make/ll-make-0.11.tar.bz2" /> 
     16<download href="make/ll-make-0.11.tar.gz" /> 
     17</downloads> 
     18<downloads version="0.10" date="07/02/2003"> 
     19<download href="make/Make-0.10.win32.exe" /> 
     20<download href="make/Make-0.10-1.noarch.rpm" /> 
     21<download href="make/Make-0.10-1.src.rpm" /> 
     22<download href="make/Make-0.10.zip" /> 
     23<download href="make/Make-0.10.tar.bz2" /> 
     24<download href="make/Make-0.10.tar.gz" /> 
     25</downloads> 
     26<downloads version="0.9.5" date="05/02/2003"> 
     27<download href="make/Make-0.9.5.win32.exe" /> 
     28<download href="make/Make-0.9.5-1.noarch.rpm" /> 
     29<download href="make/Make-0.9.5-1.src.rpm" /> 
     30<download href="make/Make-0.9.5.zip" /> 
     31<download href="make/Make-0.9.5.tar.bz2" /> 
     32<download href="make/Make-0.9.5.tar.gz" /> 
     33</downloads> 
     34<downloads version="0.9.4" date="04/24/2003"> 
     35<download href="make/Make-0.9.4.win32.exe" /> 
     36<download href="make/Make-0.9.4-1.noarch.rpm" /> 
     37<download href="make/Make-0.9.4-1.src.rpm" /> 
     38<download href="make/Make-0.9.4.zip" /> 
     39<download href="make/Make-0.9.4.tar.bz2" /> 
     40<download href="make/Make-0.9.4.tar.gz" /> 
     41</downloads> 
     42<downloads version="0.9.3" date="04/23/2003"> 
     43<download href="make/Make-0.9.3.win32.exe" /> 
     44<download href="make/Make-0.9.3-1.noarch.rpm" /> 
     45<download href="make/Make-0.9.3-1.src.rpm" /> 
     46<download href="make/Make-0.9.3.zip" /> 
     47<download href="make/Make-0.9.3.tar.bz2" /> 
     48<download href="make/Make-0.9.3.tar.gz" /> 
     49</downloads> 
     50<downloads version="0.9.2" date="04/15/2003"> 
     51<download href="make/Make-0.9.2.win32.exe" /> 
     52<download href="make/Make-0.9.2-1.noarch.rpm" /> 
     53<download href="make/Make-0.9.2-1.src.rpm" /> 
     54<download href="make/Make-0.9.2.zip" /> 
     55<download href="make/Make-0.9.2.tar.bz2" /> 
     56<download href="make/Make-0.9.2.tar.gz" /> 
     57</downloads> 
    1058<downloads version="0.9.1" date="03/11/2003"> 
    1159<download href="make/Make-0.9.1.win32.exe" /> 
  • site/sisyphus/Download.htmlxsc

    r203 r205  
    44<doc:section><doc:title>Sisyphus download</doc:title> 
    55You can either go directly to the 
    6 <a href="http://ftp.livinglogic.de/sisyphus/">&http; download directory</a> 
    7 or the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/sisyphus/">&ftp; download directory</a> 
     6<link href="http://ftp.livinglogic.de/sisyphus/">&http; download directory</link> 
     7or the <link href="ftp://ftp.livinglogic.de/pub/livinglogic/sisyphus/">&ftp; download directory</link> 
    88or choose one of the following archives: 
    99<alldownloads> 
     10<downloads version="0.8" date="07/31/2003"> 
     11<download href="sisyphus/ll-sisyphus-0.8.win32.exe" /> 
     12<download href="sisyphus/ll-sisyphus-0.8-1.noarch.rpm" /> 
     13<download href="sisyphus/ll-sisyphus-0.8-1.src.rpm" /> 
     14<download href="sisyphus/ll-sisyphus-0.8.zip" /> 
     15<download href="sisyphus/ll-sisyphus-0.8.tar.bz2" /> 
     16<download href="sisyphus/ll-sisyphus-0.8.tar.gz" /> 
     17</downloads> 
    1018<downloads version="0.7" date="03/11/2003"> 
    1119<download href="sisyphus/Sisyphus-0.7.win32.exe" /> 
  • site/sql/Download.htmlxsc

    r203 r205  
    44<doc:section><doc:title>SQL download</doc:title> 
    55You can either go directly to the 
    6 <a href="http://ftp.livinglogic.de/sql/">&http; download directory</a> 
    7 or the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/sql/">&ftp; download directory</a> 
     6<link href="http://ftp.livinglogic.de/sql/">&http; download directory</link> 
     7or the <link href="ftp://ftp.livinglogic.de/pub/livinglogic/sql/">&ftp; download directory</link> 
    88or choose one of the following archives: 
    99<alldownloads> 
     10<downloads version="0.6" date="07/31/2003"> 
     11<download href="sql/ll-sql-0.6.win32.exe" /> 
     12<download href="sql/ll-sql-0.6-1.noarch.rpm" /> 
     13<download href="sql/ll-sql-0.6-1.src.rpm" /> 
     14<download href="sql/ll-sql-0.6.zip" /> 
     15<download href="sql/ll-sql-0.6.tar.bz2" /> 
     16<download href="sql/ll-sql-0.6.tar.gz" /> 
     17</downloads> 
    1018<downloads version="0.5" date="03/11/2003"> 
    1119<download href="sql/sql-0.5.win32.exe" /> 
  • site/url/Download.htmlxsc

    r203 r205  
    44<doc:section><doc:title>&url; download</doc:title> 
    55You can either go directly to the 
    6 <a href="http://ftp.livinglogic.de/url/">&http; download directory</a> 
    7 or the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/url/">&ftp; download directory</a> 
     6<link href="http://ftp.livinglogic.de/url/">&http; download directory</link> 
     7or the <link href="ftp://ftp.livinglogic.de/pub/livinglogic/url/">&ftp; download directory</link> 
    88or choose one of the following archives: 
    99<alldownloads> 
     10<downloads version="0.10" date="07/31/2003"> 
     11<download href="url/ll-url-0.10.win32-py2.3.exe" /> 
     12<download href="url/ll-url-0.10-1.i386.rpm" /> 
     13<download href="url/ll-url-0.10-1.src.rpm" /> 
     14<download href="url/ll-url-0.10.zip" /> 
     15<download href="url/ll-url-0.10.tar.bz2" /> 
     16<download href="url/ll-url-0.10.tar.gz" /> 
     17</downloads> 
     18<downloads version="0.9.1" date="07/17/2003"> 
     19<download href="url/url-0.9.1.win32-py2.2.exe" /> 
     20<download href="url/url-0.9.1-1.i386.rpm" /> 
     21<download href="url/url-0.9.1-1.src.rpm" /> 
     22<download href="url/url-0.9.1.zip" /> 
     23<download href="url/url-0.9.1.tar.bz2" /> 
     24<download href="url/url-0.9.1.tar.gz" /> 
     25</downloads> 
     26<downloads version="0.9" date="07/09/2003"> 
     27<download href="url/url-0.9.win32-py2.2.exe" /> 
     28<download href="url/url-0.9-1.i386.rpm" /> 
     29<download href="url/url-0.9-1.src.rpm" /> 
     30<download href="url/url-0.9.zip" /> 
     31<download href="url/url-0.9.tar.bz2" /> 
     32<download href="url/url-0.9.tar.gz" /> 
     33</downloads> 
     34<downloads version="0.8" date="06/04/2003"> 
     35<download href="url/url-0.8.win32-py2.2.exe" /> 
     36<download href="url/url-0.8-1.i386.rpm" /> 
     37<download href="url/url-0.8-1.src.rpm" /> 
     38<download href="url/url-0.8.zip" /> 
     39<download href="url/url-0.8.tar.bz2" /> 
     40<download href="url/url-0.8.tar.gz" /> 
     41</downloads> 
     42<downloads version="0.7.1" date="05/01/2003"> 
     43<download href="url/url-0.7.1.win32-py2.2.exe" /> 
     44<download href="url/url-0.7.1-1.i386.rpm" /> 
     45<download href="url/url-0.7.1-1.src.rpm" /> 
     46<download href="url/url-0.7.1.zip" /> 
     47<download href="url/url-0.7.1.tar.bz2" /> 
     48<download href="url/url-0.7.1.tar.gz" /> 
     49</downloads> 
     50<downloads version="0.7" date="04/23/2003"> 
     51<download href="url/url-0.7.win32-py2.2.exe" /> 
     52<download href="url/url-0.7-1.i386.rpm" /> 
     53<download href="url/url-0.7-1.src.rpm" /> 
     54<download href="url/url-0.7.zip" /> 
     55<download href="url/url-0.7.tar.bz2" /> 
     56<download href="url/url-0.7.tar.gz" /> 
     57</downloads> 
    1058<downloads version="0.6.2" date="03/07/2003"> 
    1159<download href="url/url-0.6.2.win32-py2.2.exe" /> 
  • site/xist/Download.htmlxsc

    r203 r205  
    44<doc:section><doc:title>&xist; download</doc:title> 
    55<doc:par>You can either go directly to the 
    6 <a href="http://ftp.livinglogic.de/xist/">&http; download directory</a> 
    7 or the <a href="ftp://ftp.livinglogic.de/pub/livinglogic/xist/">&ftp; download directory</a> 
     6<link href="http://ftp.livinglogic.de/xist/">&http; download directory</link> 
     7or the <link href="ftp://ftp.livinglogic.de/pub/livinglogic/xist/">&ftp; download directory</link> 
    88or choose one of the following archives:</doc:par> 
    99<alldownloads> 
     10<downloads version="2.1.4" date="06/13/2003"> 
     11<download href="xist/XIST-2.1.4.win32-py2.2.exe" /> 
     12<download href="xist/XIST-2.1.4-1.i386.rpm" /> 
     13<download href="xist/XIST-2.1.4-1.src.rpm" /> 
     14<download href="xist/XIST-2.1.4.zip" /> 
     15<download href="xist/XIST-2.1.4.tar.bz2" /> 
     16<download href="xist/XIST-2.1.4.tar.gz" /> 
     17</downloads> 
     18<downloads version="2.1.3" date="05/07/2003"> 
     19<download href="xist/XIST-2.1.3.win32-py2.2.exe" /> 
     20<download href="xist/XIST-2.1.3-1.i386.rpm" /> 
     21<download href="xist/XIST-2.1.3-1.src.rpm" /> 
     22<download href="xist/XIST-2.1.3.zip" /> 
     23<download href="xist/XIST-2.1.3.tar.bz2" /> 
     24<download href="xist/XIST-2.1.3.tar.gz" /> 
     25</downloads> 
    1026<downloads version="2.1.2" date="02/27/2003"> 
    1127<download href="xist/XIST-2.1.2.win32-py2.2.exe" /> 
     
    104120<download href="xist/XIST-2.0.tar.gz" /> 
    105121</downloads> 
    106 <downloads version="1.5.8" date="02/27/2002"> 
     122<downloads version="1.6" date="07/02/2003"> 
     123<download href="xist/XIST-1.6.win32-py2.2.exe" /> 
     124<download href="xist/XIST-1.6-1.i386.rpm" /> 
     125<download href="xist/XIST-1.6-1.src.rpm" /> 
     126<download href="xist/XIST-1.6.zip" /> 
     127<download href="xist/XIST-1.6.tar.bz2" /> 
     128<download href="xist/XIST-1.6.tar.gz" /> 
     129</downloads> 
     130<downloads version="1.5.13" date="07/01/2003"> 
     131<download href="xist/XIST-1.5.13.win32-py2.2.exe" /> 
     132<download href="xist/XIST-1.5.13-1.i386.rpm" /> 
     133<download href="xist/XIST-1.5.13-1.src.rpm" /> 
     134<download href="xist/XIST-1.5.13.zip" /> 
     135<download href="xist/XIST-1.5.13.tar.bz2" /> 
     136<download href="xist/XIST-1.5.13.tar.gz" /> 
     137</downloads> 
     138<downloads version="1.5.12" date="06/17/2003"> 
     139<download href="xist/XIST-1.5.12.win32-py2.2.exe" /> 
     140<download href="xist/XIST-1.5.12-1.i386.rpm" /> 
     141<download href="xist/XIST-1.5.12-1.src.rpm" /> 
     142<download href="xist/XIST-1.5.12.zip" /> 
     143<download href="xist/XIST-1.5.12.tar.bz2" /> 
     144<download href="xist/XIST-1.5.12.tar.gz" /> 
     145</downloads> 
     146<downloads version="1.5.11" date="06/13/2003"> 
     147<download href="xist/XIST-1.5.11.win32-py2.2.exe" /> 
     148<download href="xist/XIST-1.5.11-1.i386.rpm" /> 
     149<download href="xist/XIST-1.5.11-1.src.rpm" /> 
     150<download href="xist/XIST-1.5.11.zip" /> 
     151<download href="xist/XIST-1.5.11.tar.bz2" /> 
     152<download href="xist/XIST-1.5.11.tar.gz" /> 
     153</downloads> 
     154<downloads version="1.5.10" date="06/13/2003"> 
     155<download href="xist/XIST-1.5.10.win32-py2.2.exe" /> 
     156<download href="xist/XIST-1.5.10-1.i386.rpm" /> 
     157<download href="xist/XIST-1.5.10-1.src.rpm" /> 
     158<download href="xist/XIST-1.5.10.zip" /> 
     159<download href="xist/XIST-1.5.10.tar.bz2" /> 
     160<download href="xist/XIST-1.5.10.tar.gz" /> 
     161</downloads> 
     162<downloads version="1.5.9" date="04/30/2003"> 
     163<download href="xist/XIST-1.5.9.win32-py2.2.exe" /> 
     164<download href="xist/XIST-1.5.9-1.i386.rpm" /> 
     165<download href="xist/XIST-1.5.9-1.src.rpm" /> 
     166<download href="xist/XIST-1.5.9.zip" /> 
     167<download href="xist/XIST-1.5.9.tar.bz2" /> 
     168<download href="xist/XIST-1.5.9.tar.gz" /> 
     169</downloads> 
     170<downloads version="1.5.8" date="02/27/2003"> 
    107171<download href="xist/XIST-1.5.8.win32-py2.2.exe" /> 
    108172<download href="xist/XIST-1.5.8-1.i386.rpm" />