| 
									
										
										
										
											2008-05-27 01:02:16 -04:00
										 |  |  | ! Copyright (C) 2008 Slava Pestov | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							|  |  |  | USING: lcs html.elements kernel qualified ;
 | 
					
						
							|  |  |  | FROM: accessors => item>> ;
 | 
					
						
							|  |  |  | FROM: io => write ;
 | 
					
						
							| 
									
										
										
										
											2008-09-06 20:13:59 -04:00
										 |  |  | FROM: sequences => each if-empty ;
 | 
					
						
							| 
									
										
										
										
											2008-05-27 01:02:16 -04:00
										 |  |  | FROM: xml.entities => escape-string ;
 | 
					
						
							|  |  |  | IN: lcs.diff2html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | GENERIC: diff-line ( obj -- )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : write-item ( item -- )
 | 
					
						
							| 
									
										
										
										
											2008-09-06 20:13:59 -04:00
										 |  |  |     item>> [ " " ] [ escape-string ] if-empty write ;
 | 
					
						
							| 
									
										
										
										
											2008-05-27 01:02:16 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | M: retain diff-line | 
					
						
							|  |  |  |     <tr> | 
					
						
							|  |  |  |         dup [ | 
					
						
							|  |  |  |             <td "retain" =class td> | 
					
						
							|  |  |  |                 write-item | 
					
						
							|  |  |  |             </td> | 
					
						
							|  |  |  |         ] bi@
 | 
					
						
							|  |  |  |     </tr> ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: insert diff-line | 
					
						
							|  |  |  |     <tr> | 
					
						
							|  |  |  |         <td> </td> | 
					
						
							|  |  |  |         <td "insert" =class td> | 
					
						
							|  |  |  |             write-item | 
					
						
							|  |  |  |         </td> | 
					
						
							|  |  |  |     </tr> ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | M: delete diff-line | 
					
						
							|  |  |  |     <tr> | 
					
						
							|  |  |  |         <td "delete" =class td> | 
					
						
							|  |  |  |             write-item | 
					
						
							|  |  |  |         </td> | 
					
						
							|  |  |  |         <td> </td> | 
					
						
							|  |  |  |     </tr> ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : htmlize-diff ( diff -- )
 | 
					
						
							| 
									
										
										
										
											2008-06-01 18:22:39 -04:00
										 |  |  |     <table "100%" =width "comparison" =class table> | 
					
						
							| 
									
										
										
										
											2008-05-27 01:02:16 -04:00
										 |  |  |         <tr> <th> "Old" write </th> <th> "New" write </th> </tr> | 
					
						
							|  |  |  |         [ diff-line ] each
 | 
					
						
							|  |  |  |     </table> ;
 |