Changeset 593 for lang/io/ioblosxom

Show
Ignore:
Timestamp:
10/21/07 22:29:42 (7 years ago)
Author:
cho45
Message:

lang/io/ioblosxom/ioblosxom.io,
lang/io/ioblosxom/template.html:

PATH_INFO によるフィルタリングを実装

Location:
lang/io/ioblosxom
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/io/ioblosxom/ioblosxom.io

    r573 r593  
    22# vim:ft=io: 
    33 
    4 #f := CGI clone parse 
    5 #f print 
    6  
    74doFile("eio.io") 
    85 
     6Object p := method( 
     7        writeln(self) 
     8        self 
     9) 
     10 
    911IoBlosxom := Object clone do ( 
     12 
     13        dataDirectory := "data" 
     14        title         := "IoBlosxom" 
     15 
    1016        Entry := Object clone do ( 
    1117                file  := File clone 
     18                name  := "" 
    1219                title := "" 
    1320                body  := "" 
    14                 time  := "" 
     21                date  := "" 
    1522 
    1623                setFile := method(v, 
     
    2431                self flavour  := pathInfo last afterSeq(".") ifNilEval("html") 
    2532                self pathInfo last clipAfterStartOfSeq(".") 
     33                self home := System getenv("SCRIPT_NAME") ifNilEval("/") 
     34                self path := System getenv("SCRIPT_NAME") ifNilEval("/") split("/") removeLast 
    2635 
    2736                self title := "IoBlosxom" 
    28                 self entries := self filters(self getEntries(Directory with("data"))) 
     37                self entries := self filters(self getEntries(Directory with(dataDirectory))) 
    2938                self debugObj := list(pathInfo, flavour) 
    3039 
     
    3342 
    3443        filters := method(entries, 
    35                 entries sortInPlace(time) reverse 
     44                # self pathInfo = list("", "2007", "10") 
     45                y := self pathInfo at(1) ifNilEval("") asNumber 
     46                m := self pathInfo at(2) ifNilEval("") asNumber 
     47                d := self pathInfo at(3) ifNilEval("") asNumber 
     48                entries sortInPlace(date) reverse select (e, 
     49                        d isNan ifFalse( if (e date day   != d, continue) ) 
     50                        m isNan ifFalse( if (e date month != m, continue) ) 
     51                        if (y isNan, 
     52                                if (self pathInfo at(1) isNil, 
     53                                        true 
     54                                , 
     55                                        e name beginsWithSeq(self pathInfo join("/")) 
     56                                ) 
     57                        , 
     58                                if (e date year == y, true) 
     59                        ) 
     60                ) 
    3661        ) 
    3762 
     
    4974                        e title = l at(0) 
    5075                        e body  = l slice(1) 
    51                         e time  = f lastDataChangeDate 
     76                        e date  = f lastDataChangeDate 
     77                        e name  = f path asMutable removePrefix(dataDirectory) clipAfterStartOfSeq(".") 
    5278                        e 
    5379                )) 
     
    5783                ret 
    5884        ) 
    59 ) 
    60  
    61 Object p := method( 
    62         writeln(self) 
    63         self 
    6485) 
    6586 
  • lang/io/ioblosxom/template.html

    r573 r593  
    7171        <body> 
    7272                <div id="whole"> 
    73                         <h1 id="top"><a href="/"><%=title%></a></h1> 
     73                        <h1 id="top"><a href="<%=home%>/"><%=title%></a></h1> 
    7474 
    7575                        <p class="debug"><%=debugObj%></p> 
     
    7979                                        <% entries foreach(entry, %> 
    8080                                        <div class="entry"> 
    81                                                 <h2 class="entry-title"><%=entry title%></h2> 
     81                                                <h2 class="entry-title"> 
     82                                                        <a href="<%=home%><%=entry name%>" rel="bookmark"> 
     83                                                                <%=entry title%> 
     84                                                        </a> 
     85                                                </h2> 
    8286                                                <dl class="entry-information"> 
    8387                                                        <dt>DateTime</dt> 
    84                                                         <dd><%=entry time asString%></dd> 
     88                                                        <dd><%=entry date asString%></dd> 
     89                                                        <dt>Path</dt> 
     90                                                        <dd><%=entry name%></dd> 
    8591                                                </dl> 
    8692                                                <div class="content">