##// END OF EJS Templates
hgweb: make stripes in file annotate view with CSS
Alexander Plavin -
r19449:9f471af2 default
parent child Browse files
Show More
@@ -74,7 +74,9 b' files, or words in the commit message</d'
74 74 <th class="annotate">rev</th>
75 75 <th class="line">&nbsp;&nbsp;line source</th>
76 76 </tr>
77 <tbody class="stripes2">
77 78 {annotate%annotateline}
79 </tbody>
78 80 </table>
79 81 </div>
80 82 </div>
@@ -76,7 +76,7 b" fileline = '"
76 76 filelogentry = filelogentry.tmpl
77 77
78 78 annotateline = '
79 <tr class="parity{parity}">
79 <tr>
80 80 <td class="annotate">
81 81 <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"
82 82 title="{node|short}: {desc|escape|firstline}">{author|user}@{rev}</a>
@@ -273,231 +273,233 b' hgweb fileannotate, html'
273 273 <th class="annotate">rev</th>
274 274 <th class="line">&nbsp;&nbsp;line source</th>
275 275 </tr>
276 <tbody class="stripes2">
276 277
277 <tr class="parity0">
278 <tr>
278 279 <td class="annotate">
279 280 <a href="/annotate/853dcd4de2a6/primes.py#l1"
280 281 title="853dcd4de2a6: a">test@0</a>
281 282 </td>
282 283 <td class="source"><a href="#l1" id="l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td>
283 284 </tr>
284 <tr class="parity1">
285 <tr>
285 286 <td class="annotate">
286 287 <a href="/annotate/853dcd4de2a6/primes.py#l2"
287 288 title="853dcd4de2a6: a">test@0</a>
288 289 </td>
289 290 <td class="source"><a href="#l2" id="l2"> 2</a> </td>
290 291 </tr>
291 <tr class="parity0">
292 <tr>
292 293 <td class="annotate">
293 294 <a href="/annotate/853dcd4de2a6/primes.py#l3"
294 295 title="853dcd4de2a6: a">test@0</a>
295 296 </td>
296 297 <td class="source"><a href="#l3" id="l3"> 3</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
297 298 </tr>
298 <tr class="parity1">
299 <tr>
299 300 <td class="annotate">
300 301 <a href="/annotate/853dcd4de2a6/primes.py#l4"
301 302 title="853dcd4de2a6: a">test@0</a>
302 303 </td>
303 304 <td class="source"><a href="#l4" id="l4"> 4</a> </td>
304 305 </tr>
305 <tr class="parity0">
306 <tr>
306 307 <td class="annotate">
307 308 <a href="/annotate/853dcd4de2a6/primes.py#l5"
308 309 title="853dcd4de2a6: a">test@0</a>
309 310 </td>
310 311 <td class="source"><a href="#l5" id="l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
311 312 </tr>
312 <tr class="parity1">
313 <tr>
313 314 <td class="annotate">
314 315 <a href="/annotate/853dcd4de2a6/primes.py#l6"
315 316 title="853dcd4de2a6: a">test@0</a>
316 317 </td>
317 318 <td class="source"><a href="#l6" id="l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
318 319 </tr>
319 <tr class="parity0">
320 <tr>
320 321 <td class="annotate">
321 322 <a href="/annotate/853dcd4de2a6/primes.py#l7"
322 323 title="853dcd4de2a6: a">test@0</a>
323 324 </td>
324 325 <td class="source"><a href="#l7" id="l7"> 7</a> <span class="sd">&quot;&quot;&quot;</span></td>
325 326 </tr>
326 <tr class="parity1">
327 <tr>
327 328 <td class="annotate">
328 329 <a href="/annotate/853dcd4de2a6/primes.py#l8"
329 330 title="853dcd4de2a6: a">test@0</a>
330 331 </td>
331 332 <td class="source"><a href="#l8" id="l8"> 8</a> </td>
332 333 </tr>
333 <tr class="parity0">
334 <tr>
334 335 <td class="annotate">
335 336 <a href="/annotate/853dcd4de2a6/primes.py#l9"
336 337 title="853dcd4de2a6: a">test@0</a>
337 338 </td>
338 339 <td class="source"><a href="#l9" id="l9"> 9</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
339 340 </tr>
340 <tr class="parity1">
341 <tr>
341 342 <td class="annotate">
342 343 <a href="/annotate/853dcd4de2a6/primes.py#l10"
343 344 title="853dcd4de2a6: a">test@0</a>
344 345 </td>
345 346 <td class="source"><a href="#l10" id="l10"> 10</a> </td>
346 347 </tr>
347 <tr class="parity0">
348 <tr>
348 349 <td class="annotate">
349 350 <a href="/annotate/853dcd4de2a6/primes.py#l11"
350 351 title="853dcd4de2a6: a">test@0</a>
351 352 </td>
352 353 <td class="source"><a href="#l11" id="l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
353 354 </tr>
354 <tr class="parity1">
355 <tr>
355 356 <td class="annotate">
356 357 <a href="/annotate/853dcd4de2a6/primes.py#l12"
357 358 title="853dcd4de2a6: a">test@0</a>
358 359 </td>
359 360 <td class="source"><a href="#l12" id="l12"> 12</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
360 361 </tr>
361 <tr class="parity0">
362 <tr>
362 363 <td class="annotate">
363 364 <a href="/annotate/853dcd4de2a6/primes.py#l13"
364 365 title="853dcd4de2a6: a">test@0</a>
365 366 </td>
366 367 <td class="source"><a href="#l13" id="l13"> 13</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
367 368 </tr>
368 <tr class="parity1">
369 <tr>
369 370 <td class="annotate">
370 371 <a href="/annotate/853dcd4de2a6/primes.py#l14"
371 372 title="853dcd4de2a6: a">test@0</a>
372 373 </td>
373 374 <td class="source"><a href="#l14" id="l14"> 14</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
374 375 </tr>
375 <tr class="parity0">
376 <tr>
376 377 <td class="annotate">
377 378 <a href="/annotate/853dcd4de2a6/primes.py#l15"
378 379 title="853dcd4de2a6: a">test@0</a>
379 380 </td>
380 381 <td class="source"><a href="#l15" id="l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
381 382 </tr>
382 <tr class="parity1">
383 <tr>
383 384 <td class="annotate">
384 385 <a href="/annotate/853dcd4de2a6/primes.py#l16"
385 386 title="853dcd4de2a6: a">test@0</a>
386 387 </td>
387 388 <td class="source"><a href="#l16" id="l16"> 16</a> <span class="c"># infinite recursion.</span></td>
388 389 </tr>
389 <tr class="parity0">
390 <tr>
390 391 <td class="annotate">
391 392 <a href="/annotate/853dcd4de2a6/primes.py#l17"
392 393 title="853dcd4de2a6: a">test@0</a>
393 394 </td>
394 395 <td class="source"><a href="#l17" id="l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td>
395 396 </tr>
396 <tr class="parity1">
397 <tr>
397 398 <td class="annotate">
398 399 <a href="/annotate/853dcd4de2a6/primes.py#l18"
399 400 title="853dcd4de2a6: a">test@0</a>
400 401 </td>
401 402 <td class="source"><a href="#l18" id="l18"> 18</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mf">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
402 403 </tr>
403 <tr class="parity0">
404 <tr>
404 405 <td class="annotate">
405 406 <a href="/annotate/853dcd4de2a6/primes.py#l19"
406 407 title="853dcd4de2a6: a">test@0</a>
407 408 </td>
408 409 <td class="source"><a href="#l19" id="l19"> 19</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
409 410 </tr>
410 <tr class="parity1">
411 <tr>
411 412 <td class="annotate">
412 413 <a href="/annotate/853dcd4de2a6/primes.py#l20"
413 414 title="853dcd4de2a6: a">test@0</a>
414 415 </td>
415 416 <td class="source"><a href="#l20" id="l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td>
416 417 </tr>
417 <tr class="parity0">
418 <tr>
418 419 <td class="annotate">
419 420 <a href="/annotate/853dcd4de2a6/primes.py#l21"
420 421 title="853dcd4de2a6: a">test@0</a>
421 422 </td>
422 423 <td class="source"><a href="#l21" id="l21"> 21</a> </td>
423 424 </tr>
424 <tr class="parity1">
425 <tr>
425 426 <td class="annotate">
426 427 <a href="/annotate/853dcd4de2a6/primes.py#l22"
427 428 title="853dcd4de2a6: a">test@0</a>
428 429 </td>
429 430 <td class="source"><a href="#l22" id="l22"> 22</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mf">2</span> <span class="o">==</span> <span class="mf">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
430 431 </tr>
431 <tr class="parity0">
432 <tr>
432 433 <td class="annotate">
433 434 <a href="/annotate/853dcd4de2a6/primes.py#l23"
434 435 title="853dcd4de2a6: a">test@0</a>
435 436 </td>
436 437 <td class="source"><a href="#l23" id="l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mf">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mf">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
437 438 </tr>
438 <tr class="parity1">
439 <tr>
439 440 <td class="annotate">
440 441 <a href="/annotate/853dcd4de2a6/primes.py#l24"
441 442 title="853dcd4de2a6: a">test@0</a>
442 443 </td>
443 444 <td class="source"><a href="#l24" id="l24"> 24</a> </td>
444 445 </tr>
445 <tr class="parity0">
446 <tr>
446 447 <td class="annotate">
447 448 <a href="/annotate/853dcd4de2a6/primes.py#l25"
448 449 title="853dcd4de2a6: a">test@0</a>
449 450 </td>
450 451 <td class="source"><a href="#l25" id="l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
451 452 </tr>
452 <tr class="parity1">
453 <tr>
453 454 <td class="annotate">
454 455 <a href="/annotate/853dcd4de2a6/primes.py#l26"
455 456 title="853dcd4de2a6: a">test@0</a>
456 457 </td>
457 458 <td class="source"><a href="#l26" id="l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td>
458 459 </tr>
459 <tr class="parity0">
460 <tr>
460 461 <td class="annotate">
461 462 <a href="/annotate/853dcd4de2a6/primes.py#l27"
462 463 title="853dcd4de2a6: a">test@0</a>
463 464 </td>
464 465 <td class="source"><a href="#l27" id="l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td>
465 466 </tr>
466 <tr class="parity1">
467 <tr>
467 468 <td class="annotate">
468 469 <a href="/annotate/853dcd4de2a6/primes.py#l28"
469 470 title="853dcd4de2a6: a">test@0</a>
470 471 </td>
471 472 <td class="source"><a href="#l28" id="l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mf">1</span><span class="p">])</span></td>
472 473 </tr>
473 <tr class="parity0">
474 <tr>
474 475 <td class="annotate">
475 476 <a href="/annotate/853dcd4de2a6/primes.py#l29"
476 477 title="853dcd4de2a6: a">test@0</a>
477 478 </td>
478 479 <td class="source"><a href="#l29" id="l29"> 29</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
479 480 </tr>
480 <tr class="parity1">
481 <tr>
481 482 <td class="annotate">
482 483 <a href="/annotate/853dcd4de2a6/primes.py#l30"
483 484 title="853dcd4de2a6: a">test@0</a>
484 485 </td>
485 486 <td class="source"><a href="#l30" id="l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mf">10</span></td>
486 487 </tr>
487 <tr class="parity0">
488 <tr>
488 489 <td class="annotate">
489 490 <a href="/annotate/853dcd4de2a6/primes.py#l31"
490 491 title="853dcd4de2a6: a">test@0</a>
491 492 </td>
492 493 <td class="source"><a href="#l31" id="l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
493 494 </tr>
494 <tr class="parity1">
495 <tr>
495 496 <td class="annotate">
496 497 <a href="/annotate/853dcd4de2a6/primes.py#l32"
497 498 title="853dcd4de2a6: a">test@0</a>
498 499 </td>
499 500 <td class="source"><a href="#l32" id="l32"> 32</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
500 501 </tr>
502 </tbody>
501 503 </table>
502 504 </div>
503 505 </div>
General Comments 0
You need to be logged in to leave comments. Login now