/[ascend]/trunk/tools/mediawiki/gcache2wiki/striphf.py
ViewVC logotype

Diff of /trunk/tools/mediawiki/gcache2wiki/striphf.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2187 by jpye, Mon May 10 11:45:11 2010 UTC revision 2188 by jpye, Tue May 11 03:09:25 2010 UTC
# Line 100  def wikify_paragraphs(soup): Line 100  def wikify_paragraphs(soup):
100          if p.renderContents() is None:          if p.renderContents() is None:
101              p.replaceWith(NavigableString("\n"))              p.replaceWith(NavigableString("\n"))
102          else:          else:
103              p.replaceWith(NavigableString("\n" + p.renderContents() + "\n"))              p.replaceWith(NavigableString("\n" + p.renderContents()))
104    
105  def strip_printfooter(soup):  def strip_printfooter(soup):
106      soup.find('div',{'class':'printfooter'}).extract()      soup.find('div',{'class':'printfooter'}).extract()
# Line 129  def wikify_images(soup): Line 129  def wikify_images(soup):
129      for a in soup.findAll("a",{'class':'image'}):      for a in soup.findAll("a",{'class':'image'}):
130          if a.img:          if a.img:
131              if a.img['alt'][0:6] == "Image:":              if a.img['alt'][0:6] == "Image:":
132                  print "IMG",a.img['alt'][6:]                  print "IMG1",a.img['alt'][6:]
133                    a1 = NavigableString("[[Image:" + a.img['alt'][6:] + "]]")
134                    print "-->",a1
135                    a.replaceWith(a1)
136              elif a['href'][0:6] == "/File:":              elif a['href'][0:6] == "/File:":
137                  print "IMG",a['href'][6:]                  print "IMG",a['href'][6:]
138                  a1 = NavigableString("[[Image:" + a['href'][6:] + "]]")                  a1 = NavigableString("[[Image:" + a['href'][6:] + "]]")
139                  a.replaceWith(a1)                  a.replaceWith(a1)
140                    print "-->",a1
141              else:              else:
142                  print "CAN'T PROCESS IMAGE LINK",a                  print "CAN'T PROCESS IMAGE LINK",a
143    
# Line 146  def wikify_links(soup): Line 150  def wikify_links(soup):
150    
151      r = re.compile("^http://")      r = re.compile("^http://")
152      r2 = re.compile("/[A-Z][a-z_0-9-]*")      r2 = re.compile("/[A-Z][a-z_0-9-]*")
153        r3 = re.compile(r"^http://ascendcode.cheme.cmu.edu/viewvc.cgi/code/(.*)$");
154        r3trunk = re.compile(r"trunk/(.*)\?view=markup$")
155        r3branch = re.compile(r"branches/([^)]+)/(.*)\?view=markup$")
156        r3dir = re.compile(r"trunk/(.*)")
157      for a in soup.findAll('a',{'href':True}):      for a in soup.findAll('a',{'href':True}):
158          #print "LINK:",a.parent          #print "LINK:",a.parent
159          if r.match(a['href']):          m3 = r3.match(a['href'])
160              t = NavigableString("[" + a['href'] + " " + a.renderContents() + "]")          if m3:
161                t1 = m3.group(1)
162                m3 = r3trunk.match(t1)
163                if m3:
164                    t = NavigableString("{{src|%s}}" % m3.group(1))
165                    a.replaceWith(t)
166                else:
167                    m3 = r3branch.match(t1)
168                    if m3:
169                        t = NavigableString("{{srcbranch|%s|%s}}" % [m3.group(1),m3.group(2)])
170                        a.replaceWith(t)
171                    else:
172                        m3 = r3dir.match(t1)
173                        if m3:
174                            t = NavigableString("{{srcdir|%s}}" % m3.group(1))
175                            a.replaceWith(t)
176                        else:
177                            t = NavigableString("[" + a['href'] + " " + a.renderContents() + "]")
178                            a.replaceWith(t)
179                print " --> ",t
180            elif r.match(a['href']):
181                if a['href'] == a.renderContents():
182                    t = NavigableString("[" + a['href'] + "]")
183                else:
184                    t = NavigableString("[" + a['href'] + " " + a.renderContents() + "]")
185              a.replaceWith(t)              a.replaceWith(t)
186              print " --> ",t              print " --> ",t
187    
# Line 171  def wikify_italics(soup): Line 203  def wikify_italics(soup):
203      for i in soup.findAll("i"):      for i in soup.findAll("i"):
204          i.replaceWith("''" + i.renderContents() + "''")          i.replaceWith("''" + i.renderContents() + "''")
205    
206    def wikify_lists(soup):
207        items = []
208        # FIXME handle nested lists!
209        for ul in soup.findAll("ul"):
210            for li in ul.findAll("li"):
211                print "LIST ITEM:",li.renderContents().strip()
212                items += [NavigableString("\n* %s" % li.renderContents().strip())]
213            l2 = Tag(soup,"div")
214            for i in range(len(items)):
215                l2.insert(i,items[i])
216            ul.replaceWith(NavigableString(l2.renderContents()))
217            print "NEW LIST:",l2.renderContents()
218    
219    def wikify_tables(soup):
220        for ta in soup.findAll("table"):
221            s = '\n{| class="wikitable"\n'
222            for tr in ta.findAll("tr"):
223                s += "|-\n"
224                for t in tr.findAll(["td",'th']):
225                    if t.name == "td":
226                        s += "| " + t.renderContents()
227                    else:
228                        s += "! " + t.renderContents()
229            s += "|}"
230            ta.replaceWith(NavigableString(s))
231    
232  replace_templates(s1)  replace_templates(s1)
233  strip_contents(s1)  strip_contents(s1)
234  strip_script(s1)  strip_script(s1)
# Line 186  s1 = BeautifulSoup(str(s1)) Line 244  s1 = BeautifulSoup(str(s1))
244  wikify_italics(s1)  wikify_italics(s1)
245  s1 = BeautifulSoup(str(s1))  s1 = BeautifulSoup(str(s1))
246  wikify_images(s1)  wikify_images(s1)
247    
248  wikify_links(s1)  wikify_links(s1)
249  #sys.exit(1)  
250    wikify_lists(s1)
251    wikify_tables(s1)
252    
253  print str(s1)  print str(s1)
254    sys.exit(1)
255    
256    

Legend:
Removed from v.2187  
changed lines
  Added in v.2188

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22