2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								package   hugolib 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import   ( 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 "html/template" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "path" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "strings" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "testing" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "time" 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var   EMPTY_PAGE   =   "" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-09-18 10:17:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const   ( 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE                        =   "---\ntitle: Simple\n---\nSimple Page\n" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 INVALID_FRONT_MATTER_MISSING       =   "This is a test" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 RENDER_NO_FRONT_MATTER             =   "<!doctype><html><head></head><body>This is a test</body></html>" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 INVALID_FRONT_MATTER_SHORT_DELIM   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-- 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title :   Short   delim   start 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Short   Delim 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 INVALID_FRONT_MATTER_SHORT_DELIM_ENDING   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title :   Short   delim   ending 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Short   Delim 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 INVALID_FRONT_MATTER_LEADING_WS   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 08:57:14 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  -- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title :   Leading   WS 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Leading 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_JSON   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"title" :   "spf13-vim 3.0 release and new website" , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"description" :   "spf13-vim is a cross platform distribution of vim plugins and resources for Vim." , 
  
						 
					
						
							
								
									
										
										
										
											2014-09-09 15:58:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"tags" :   [   ".vimrc" ,   "plugins" ,   "spf13-vim" ,   "VIm"   ] , 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"date" :   "2012-04-06" , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"categories" :   [ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     "Development" , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     "VIM" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								] , 
  
						 
					
						
							
								
									
										
										
										
											2014-10-02 17:25:52 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"slug" :   "-spf13-vim-3-0-release-and-new-website-" 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-01 22:45:24 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Content   of   the   file   goes   Here 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_JSON_LOOSE   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-10-01 22:45:24 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"title" :   "spf13-vim 3.0 release and new website" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"description" :   "spf13-vim is a cross platform distribution of vim plugins and resources for Vim." 
  
						 
					
						
							
								
									
										
										
										
											2014-09-09 15:58:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"tags" :   [   ".vimrc" ,   "plugins" ,   "spf13-vim" ,   "VIm"   ] 
  
						 
					
						
							
								
									
										
										
										
											2013-10-01 22:45:24 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"date" :   "2012-04-06" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"categories" :   [ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     "Development" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     "VIM" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								] , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"slug" :   "spf13-vim-3-0-release-and-new-website" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 08:57:14 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Content   of   the   file   goes   Here 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_RFC3339_DATE    =   "---\ntitle: RFC3339 Date\ndate: \"2013-05-17T16:59:30Z\"\n---\nrfc3339 content" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 SIMPLE_PAGE_JSON_MULTIPLE   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "title" :   "foobar" , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "customData" :   {   "foo" :   "bar"   } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 "date" :   "2012-08-06" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Some   text 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_JSON_COMPACT   =   ` 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ "title" : "foobar" , "customData" : { "foo" : "bar" } , "date" : "2012-08-06" } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Text 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_NOLAYOUT   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   simple_no_layout 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								No   Layout   called   out ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_LAYOUT_FOOBAR   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   simple   layout   foobar 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								layout :   foobar 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Layout   foobar ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_TYPE_FOOBAR   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								type :   foobar 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type   foobar ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_TYPE_LAYOUT   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								type :   barfoo 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								layout :   buzfoo 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type   and   layout   set ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_WITH_SUMMARY_DELIMITER   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   Simple 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
									
										
										
										
											2013-09-18 09:15:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Summary   Next   Line 
  
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< ! -- more -- > 
  
						 
					
						
							
								
									
										
										
										
											2013-10-04 12:28:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Some   more   text 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_WITH_SHORTCODE_IN_SUMMARY   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-10-04 12:28:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   Simple 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Summary   Next   Line .   { { %   img   src = "/not/real"   % } } . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								More   text   here . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Some   more   text 
  
						 
					
						
							
								
									
										
										
										
											2014-05-29 20:42:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 SIMPLE_PAGE_WITH_EMBEDDED_SCRIPT   =   ` -- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title :   Simple 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< script   type = ' text / javascript ' > alert ( ' the   script   tags   are   still   there ,   right ? ' ) ; < / script > 
  
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_WITH_SUMMARY_DELIMITER_SAME_LINE   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   Simple 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
									
										
										
										
											2013-09-18 09:15:46 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Summary   Same   Line < ! -- more -- > 
  
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Some   more   text 
  
						 
					
						
							
								
									
										
										
										
											2013-10-15 09:15:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 SIMPLE_PAGE_WITH_LONG_CONTENT   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2013-10-15 09:15:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   Simple 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
									
										
										
										
											2014-01-28 23:09:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Lorem   ipsum   dolor   sit   amet ,   consectetur   adipisicing   elit ,   sed   do   eiusmod   tempor 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								incididunt   ut   labore   et   dolore   magna   aliqua .   Ut   enim   ad   minim   veniam ,   quis 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								nostrud   exercitation   ullamco   laboris   nisi   ut   aliquip   ex   ea   commodo   consequat . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Duis   aute   irure   dolor   in   reprehenderit   in   voluptate   velit   esse   cillum   dolore   eu 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fugiat   nulla   pariatur .   Excepteur   sint   occaecat   cupidatat   non   proident ,   sunt   in 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								culpa   qui   officia   deserunt   mollit   anim   id   est   laborum .   Lorem   ipsum   dolor   sit 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								amet ,   consectetur   adipisicing   elit ,   sed   do   eiusmod   tempor   incididunt   ut   labore 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								et   dolore   magna   aliqua .   Ut   enim   ad   minim   veniam ,   quis   nostrud   exercitation 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ullamco   laboris   nisi   ut   aliquip   ex   ea   commodo   consequat .   Duis   aute   irure   dolor 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								in   reprehenderit   in   voluptate   velit   esse   cillum   dolore   eu   fugiat   nulla 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pariatur .   Excepteur   sint   occaecat   cupidatat   non   proident ,   sunt   in   culpa   qui 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								officia   deserunt   mollit   anim   id   est   laborum .   Lorem   ipsum   dolor   sit   amet , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								consectetur   adipisicing   elit ,   sed   do   eiusmod   tempor   incididunt   ut   labore   et 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dolore   magna   aliqua .   Ut   enim   ad   minim   veniam ,   quis   nostrud   exercitation   ullamco 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								laboris   nisi   ut   aliquip   ex   ea   commodo   consequat .   Duis   aute   irure   dolor   in 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reprehenderit   in   voluptate   velit   esse   cillum   dolore   eu   fugiat   nulla   pariatur . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Excepteur   sint   occaecat   cupidatat   non   proident ,   sunt   in   culpa   qui   officia 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								deserunt   mollit   anim   id   est   laborum .   Lorem   ipsum   dolor   sit   amet ,   consectetur 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								adipisicing   elit ,   sed   do   eiusmod   tempor   incididunt   ut   labore   et   dolore   magna 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								aliqua .   Ut   enim   ad   minim   veniam ,   quis   nostrud   exercitation   ullamco   laboris   nisi 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ut   aliquip   ex   ea   commodo   consequat .   Duis   aute   irure   dolor   in   reprehenderit   in 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								voluptate   velit   esse   cillum   dolore   eu   fugiat   nulla   pariatur .   Excepteur   sint 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								occaecat   cupidatat   non   proident ,   sunt   in   culpa   qui   officia   deserunt   mollit   anim 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								id   est   laborum .   Lorem   ipsum   dolor   sit   amet ,   consectetur   adipisicing   elit ,   sed 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								do   eiusmod   tempor   incididunt   ut   labore   et   dolore   magna   aliqua .   Ut   enim   ad   minim 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								veniam ,   quis   nostrud   exercitation   ullamco   laboris   nisi   ut   aliquip   ex   ea   commodo 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								consequat .   Duis   aute   irure   dolor   in   reprehenderit   in   voluptate   velit   esse 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cillum   dolore   eu   fugiat   nulla   pariatur .   Excepteur   sint   occaecat   cupidatat   non 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								proident ,   sunt   in   culpa   qui   officia   deserunt   mollit   anim   id   est   laborum .   Lorem 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ipsum   dolor   sit   amet ,   consectetur   adipisicing   elit ,   sed   do   eiusmod   tempor 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								incididunt   ut   labore   et   dolore   magna   aliqua .   Ut   enim   ad   minim   veniam ,   quis 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								nostrud   exercitation   ullamco   laboris   nisi   ut   aliquip   ex   ea   commodo   consequat . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Duis   aute   irure   dolor   in   reprehenderit   in   voluptate   velit   esse   cillum   dolore   eu 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fugiat   nulla   pariatur .   Excepteur   sint   occaecat   cupidatat   non   proident ,   sunt   in 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								culpa   qui   officia   deserunt   mollit   anim   id   est   laborum .   Lorem   ipsum   dolor   sit 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								amet ,   consectetur   adipisicing   elit ,   sed   do   eiusmod   tempor   incididunt   ut   labore 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								et   dolore   magna   aliqua .   Ut   enim   ad   minim   veniam ,   quis   nostrud   exercitation 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ullamco   laboris   nisi   ut   aliquip   ex   ea   commodo   consequat .   Duis   aute   irure   dolor 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								in   reprehenderit   in   voluptate   velit   esse   cillum   dolore   eu   fugiat   nulla 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pariatur .   Excepteur   sint   occaecat   cupidatat   non   proident ,   sunt   in   culpa   qui 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								officia   deserunt   mollit   anim   id   est   laborum . ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 PAGE_WITH_TOC   =   ` -- - 
  
						 
					
						
							
								
									
										
										
										
											2014-01-28 23:09:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title :   TOC 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-- - 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								For   some   moments   the   old   man   did   not   reply .   He   stood   with   bowed   head ,   buried   in   deep   thought .   But   at   last   he   spoke . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# #   AA 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I   have   no   idea ,   of   course ,   how   long   it   took   me   to   reach   the   limit   of   the   plain , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								but   at   last   I   entered   the   foothills ,   following   a   pretty   little   canyon   upward 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								toward   the   mountains .   Beside   me   frolicked   a   laughing   brooklet ,   hurrying   upon 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								its   noisy   way   down   to   the   silent   sea .   In   its   quieter   pools   I   discovered   many 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								small   fish ,   of   four - or   five - pound   weight   I   should   imagine .   In   appearance , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								except   as   to   size   and   color ,   they   were   not   unlike   the   whale   of   our   own   seas .   As 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I   watched   them   playing   about   I   discovered ,   not   only   that   they   suckled   their 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								young ,   but   that   at   intervals   they   rose   to   the   surface   to   breathe   as   well   as   to 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								feed   upon   certain   grasses   and   a   strange ,   scarlet   lichen   which   grew   upon   the 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								rocks   just   above   the   water   line . 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# # #   AAA 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								I   remember   I   felt   an   extraordinary   persuasion   that   I   was   being   played   with , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								that   presently ,   when   I   was   upon   the   very   verge   of   safety ,   this   mysterious 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								death -- as   swift   as   the   passage   of   light -- would   leap   after   me   from   the   pit   about 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the   cylinder   and   strike   me   down .   # #   BB 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# # #   BBB 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"You're a great Granser,"   he   cried   delightedly ,   "always making believe them little marks mean something." 
  
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								` 
  
						 
					
						
							
								
									
										
										
										
											2013-09-18 10:17:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								) 
  
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-24 14:31:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var   PAGE_WITH_VARIOUS_FRONTMATTER_TYPES   =   ` ++ + 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a_string   =   "bar" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								an_integer   =   1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a_float   =   1.3 
  
						 
					
						
							
								
									
										
										
										
											2014-01-28 23:24:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								a_bool   =   false 
  
						 
					
						
							
								
									
										
										
										
											2013-10-24 14:31:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								a_date   =   1979 - 05 - 27 T07 : 32 : 00 Z 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								++ + 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Front   Matter   with   various   frontmatter   types ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func   checkError ( t   * testing . T ,   err   error ,   expected   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   err   ==   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "err is nil.  Expected: %s" ,   expected ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err . Error ( )   !=   expected   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Errorf ( "err.Error() returned: '%s'.  Expected: '%s'" ,   err . Error ( ) ,   expected ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func   TestDegenerateEmptyPageZeroLengthName ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 _ ,   err   :=   NewPage ( "" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   err   ==   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "A zero length page name must return an error" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkError ( t ,   err ,   "Zero length page name" ) 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func   TestDegenerateEmptyPage ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 _ ,   err   :=   NewPageFrom ( strings . NewReader ( EMPTY_PAGE ) ,   "test" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Empty files should not trigger an error. Should be able to touch a file while watching without erroring out." ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func   checkPageTitle ( t   * testing . T ,   page   * Page ,   title   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Title   !=   title   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page title is: %s.  Expected %s" ,   page . Title ,   title ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func   checkPageContent ( t   * testing . T ,   page   * Page ,   content   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Content   !=   template . HTML ( content )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page content is: %q\nExpected: %q" ,   page . Content ,   content ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2014-01-28 23:09:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func   checkPageTOC ( t   * testing . T ,   page   * Page ,   toc   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . TableOfContents   !=   template . HTML ( toc )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page TableOfContents is: %q.\nExpected %q" ,   page . TableOfContents ,   toc ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   checkPageSummary ( t   * testing . T ,   page   * Page ,   summary   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Summary   !=   template . HTML ( summary )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page summary is: %q.\nExpected %q" ,   page . Summary ,   summary ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func   checkPageType ( t   * testing . T ,   page   * Page ,   pageType   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Type ( )   !=   pageType   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page type is: %s.  Expected: %s" ,   page . Type ( ) ,   pageType ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   checkPageLayout ( t   * testing . T ,   page   * Page ,   layout   ... string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   ! listEqual ( page . Layout ( ) ,   layout )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page layout is: %s.  Expected: %s" ,   page . Layout ( ) ,   layout ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-09-03 14:51:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   checkPageDate ( t   * testing . T ,   page   * Page ,   time   time . Time )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Date   !=   time   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Page date is: %s.  Expected: %s" ,   page . Date ,   time ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-09-03 14:51:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-10 12:04:51 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   checkTruncation ( t   * testing . T ,   page   * Page ,   shouldBe   bool ,   msg   string )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Summary   ==   ""   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatal ( "page has no summary, can not check truncation" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   page . Truncated   !=   shouldBe   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 if   shouldBe   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 t . Fatalf ( "page wasn't truncated: %s" ,   msg ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 }   else   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 t . Fatalf ( "page was truncated: %s" ,   msg ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-11-10 12:04:51 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func   TestCreateNewPage ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageTitle ( t ,   p ,   "Simple" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageContent ( t ,   p ,   "<p>Simple Page</p>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageSummary ( t ,   p ,   "Simple Page" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageType ( t ,   p ,   "page" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-06-03 17:06:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkPageLayout ( t ,   p ,   "page/single.html" ,   "_default/single.html" ,   "theme/page/single.html" ,   "theme/_default/single.html" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkTruncation ( t ,   p ,   false ,   "simple short page" ) 
  
						 
					
						
							
								
									
										
										
										
											2013-08-21 10:37:14 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func   TestPageWithDelimiter ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE_WITH_SUMMARY_DELIMITER ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageTitle ( t ,   p ,   "Simple" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageContent ( t ,   p ,   "<p>Summary Next Line</p>\n\n<p>Some more text</p>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageSummary ( t ,   p ,   "<p>Summary Next Line</p>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageType ( t ,   p ,   "page" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-06-03 17:06:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkPageLayout ( t ,   p ,   "page/single.html" ,   "_default/single.html" ,   "theme/page/single.html" ,   "theme/_default/single.html" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkTruncation ( t ,   p ,   true ,   "page with summary delimiter" ) 
  
						 
					
						
							
								
									
										
										
										
											2013-10-04 12:28:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-04 12:28:28 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestPageWithShortCodeInSummary ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE_WITH_SHORTCODE_IN_SUMMARY ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageTitle ( t ,   p ,   "Simple" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageContent ( t ,   p ,   "<p>Summary Next Line. {{% img src=“/not/real” %}}.\nMore text here.</p>\n\n<p>Some more text</p>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageSummary ( t ,   p ,   "Summary Next Line. . More text here. Some more text" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageType ( t ,   p ,   "page" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-06-03 17:06:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkPageLayout ( t ,   p ,   "page/single.html" ,   "_default/single.html" ,   "theme/page/single.html" ,   "theme/_default/single.html" ) 
  
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-05-29 20:42:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestPageWithEmbeddedScriptTag ( t   * testing . T )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE_WITH_EMBEDDED_SCRIPT ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageContent ( t ,   p ,   "<script type='text/javascript'>alert('the script tags are still there, right?');</script>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-28 23:09:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestTableOfContents ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "tocpage.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( PAGE_WITH_TOC ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2014-01-30 17:50:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkPageContent ( t ,   p ,   "\n\n<p>For some moments the old man did not reply. He stood with bowed head, buried in deep thought. But at last he spoke.</p>\n\n<h2 id=\"toc_0\">AA</h2>\n\n<p>I have no idea, of course, how long it took me to reach the limit of the plain,\nbut at last I entered the foothills, following a pretty little canyon upward\ntoward the mountains. Beside me frolicked a laughing brooklet, hurrying upon\nits noisy way down to the silent sea. In its quieter pools I discovered many\nsmall fish, of four-or five-pound weight I should imagine. In appearance,\nexcept as to size and color, they were not unlike the whale of our own seas. As\nI watched them playing about I discovered, not only that they suckled their\nyoung, but that at intervals they rose to the surface to breathe as well as to\nfeed upon certain grasses and a strange, scarlet lichen which grew upon the\nrocks just above the water line.</p>\n\n<h3 id=\"toc_1\">AAA</h3>\n\n<p>I remember I felt an extraordinary persuasion that I was being played with,\nthat presently, when I was upon the very verge of safety, this mysterious\ndeath–as swift as the passage of light–would leap after me from the pit about\nthe cylinder and strike me down. ## BB</p>\n\n<h3 id=\"toc_2\">BBB</h3>\n\n<p>“You’re a great Granser,” he cried delightedly, “always making believe them little marks mean something.”</p>\n" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkPageTOC ( t ,   p ,   "<nav id=\"TableOfContents\">\n<ul>\n<li>\n<ul>\n<li><a href=\"#toc_0\">AA</a>\n<ul>\n<li><a href=\"#toc_1\">AAA</a></li>\n<li><a href=\"#toc_2\">BBB</a></li>\n</ul></li>\n</ul></li>\n</ul>\n</nav>" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-28 23:09:24 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-31 21:07:22 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestPageWithMoreTag ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE_WITH_SUMMARY_DELIMITER_SAME_LINE ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageTitle ( t ,   p ,   "Simple" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageContent ( t ,   p ,   "<p>Summary Same Line</p>\n\n<p>Some more text</p>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageSummary ( t ,   p ,   "<p>Summary Same Line</p>\n" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageType ( t ,   p ,   "page" ) 
  
						 
					
						
							
								
									
										
										
										
											2014-06-03 17:06:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 checkPageLayout ( t ,   p ,   "page/single.html" ,   "_default/single.html" ,   "theme/page/single.html" ,   "theme/_default/single.html" ) 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-09-03 14:51:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestPageWithDate ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE_RFC3339_DATE ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 d ,   err   :=   time . Parse ( time . RFC3339 ,   "2013-05-17T16:59:30Z" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to prase page." ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkPageDate ( t ,   p ,   d ) 
  
						 
					
						
							
								
									
										
										
										
											2013-09-03 14:51:06 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-15 09:15:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestWordCount ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "simple.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( SIMPLE_PAGE_WITH_LONG_CONTENT ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p . Convert ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 p . analyzePage ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to create a page with frontmatter and body content: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   p . WordCount   !=   483   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "incorrect word count. expected %v, got %v" ,   483 ,   p . WordCount ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   p . FuzzyWordCount   !=   500   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "incorrect word count. expected %v, got %v" ,   500 ,   p . WordCount ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   p . ReadingTime   !=   3   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "incorrect min read. expected %v, got %v" ,   3 ,   p . ReadingTime ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 checkTruncation ( t ,   p ,   true ,   "long page" ) 
  
						 
					
						
							
								
									
										
										
										
											2013-10-15 09:15:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestCreatePage ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 var   tests   =   [ ] struct   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 r   string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_JSON } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_JSON_LOOSE } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_JSON_MULTIPLE } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 //{strings.NewReader(SIMPLE_PAGE_JSON_COMPACT)}, 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 for   _ ,   test   :=   range   tests   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 p ,   _   :=   NewPage ( "page" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 if   err   :=   p . ReadFrom ( strings . NewReader ( test . r ) ) ;   err   !=   nil   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											 t . Errorf ( "Unable to parse page: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-06 23:04:49 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func   TestDegenerateInvalidFrontMatterShortDelim ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 var   tests   =   [ ] struct   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 r     string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 err   string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { INVALID_FRONT_MATTER_SHORT_DELIM_ENDING ,   "Unable to read frontmatter at filepos 45: EOF" } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 for   _ ,   test   :=   range   tests   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 p ,   _   :=   NewPage ( "invalid/front/matter/short/delim" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 err   :=   p . ReadFrom ( strings . NewReader ( test . r ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 checkError ( t ,   err ,   test . err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-09-18 10:17:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestShouldRenderContent ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 var   tests   =   [ ] struct   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 text     string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 render   bool 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { INVALID_FRONT_MATTER_MISSING ,   true } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 // TODO how to deal with malformed frontmatter.  In this case it'll be rendered as markdown. 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { INVALID_FRONT_MATTER_SHORT_DELIM ,   true } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { RENDER_NO_FRONT_MATTER ,   false } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 for   _ ,   test   :=   range   tests   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 p ,   _   :=   NewPage ( "render/front/matter" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 err   :=   p . ReadFrom ( strings . NewReader ( test . text ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 p   =   pageMust ( p ,   err ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 if   p . IsRenderable ( )   !=   test . render   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 t . Errorf ( "expected p.IsRenderable() == %t, got %t" ,   test . render ,   p . IsRenderable ( ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-09-18 10:17:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-24 14:31:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestDifferentFrontMatterVarTypes ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 page ,   _   :=   NewPage ( "test/file1.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 _   =   page . ReadFrom ( strings . NewReader ( PAGE_WITH_VARIOUS_FRONTMATTER_TYPES ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 dateval ,   _   :=   time . Parse ( time . RFC3339 ,   "1979-05-27T07:32:00Z" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   page . GetParam ( "a_string" )   !=   "bar"   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Errorf ( "frontmatter not handling strings correctly should be %s, got: %s" ,   "bar" ,   page . GetParam ( "a_string" ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   page . GetParam ( "an_integer" )   !=   1   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Errorf ( "frontmatter not handling ints correctly should be %s, got: %s" ,   "1" ,   page . GetParam ( "an_integer" ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   page . GetParam ( "a_float" )   !=   1.3   { 
  
						 
					
						
							
								
									
										
										
										
											2014-02-28 22:31:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 t . Errorf ( "frontmatter not handling floats correctly should be %f, got: %s" ,   1.3 ,   page . GetParam ( "a_float" ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   page . GetParam ( "a_bool" )   !=   false   { 
  
						 
					
						
							
								
									
										
										
										
											2014-02-28 22:31:21 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 t . Errorf ( "frontmatter not handling bools correctly should be %t, got: %s" ,   false ,   page . GetParam ( "a_bool" ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 if   page . GetParam ( "a_date" )   !=   dateval   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Errorf ( "frontmatter not handling dates correctly should be %s, got: %s" ,   dateval ,   page . GetParam ( "a_date" ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-10-24 14:31:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func   TestDegenerateInvalidFrontMatterLeadingWhitespace ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 p ,   _   :=   NewPage ( "invalid/front/matter/leading/ws" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 err   :=   p . ReadFrom ( strings . NewReader ( INVALID_FRONT_MATTER_LEADING_WS ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Fatalf ( "Unable to parse front matter given leading whitespace: %s" ,   err ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-05 07:53:58 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-30 17:14:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestSectionEvaluation ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 page ,   _   :=   NewPage ( "blue/file1.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 page . ReadFrom ( strings . NewReader ( SIMPLE_PAGE ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   page . Section   !=   "blue"   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 t . Errorf ( "Section should be %s, got: %s" ,   "blue" ,   page . Section ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-30 17:14:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   L ( s   ... string )   [ ] string   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 return   s 
  
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestLayoutOverride ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 var   ( 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 path_content_two_dir   =   path . Join ( "content" ,   "dub" ,   "sub" ,   "file1.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 path_content_one_dir   =   path . Join ( "content" ,   "gub" ,   "file1.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 path_content_no_dir    =   path . Join ( "content" ,   "file1" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 path_one_directory     =   path . Join ( "fub" ,   "file1.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 path_no_directory      =   path . Join ( "file1.md" ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 tests   :=   [ ] struct   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 content          string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 path             string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 expectedLayout   [ ] string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } { 
  
						 
					
						
							
								
									
										
										
										
											2014-06-03 17:06:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_NOLAYOUT ,   path_content_two_dir ,   L ( "dub/sub/single.html" ,   "dub/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_NOLAYOUT ,   path_content_one_dir ,   L ( "gub/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_NOLAYOUT ,   path_content_no_dir ,   L ( "page/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_NOLAYOUT ,   path_one_directory ,   L ( "fub/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_NOLAYOUT ,   path_no_directory ,   L ( "page/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_LAYOUT_FOOBAR ,   path_content_two_dir ,   L ( "dub/sub/foobar.html" ,   "dub/foobar.html" ,   "_default/foobar.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_LAYOUT_FOOBAR ,   path_content_one_dir ,   L ( "gub/foobar.html" ,   "_default/foobar.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_LAYOUT_FOOBAR ,   path_one_directory ,   L ( "fub/foobar.html" ,   "_default/foobar.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_LAYOUT_FOOBAR ,   path_no_directory ,   L ( "page/foobar.html" ,   "_default/foobar.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_FOOBAR ,   path_content_two_dir ,   L ( "foobar/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_FOOBAR ,   path_content_one_dir ,   L ( "foobar/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_FOOBAR ,   path_content_no_dir ,   L ( "foobar/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_FOOBAR ,   path_one_directory ,   L ( "foobar/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_FOOBAR ,   path_no_directory ,   L ( "foobar/single.html" ,   "_default/single.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_LAYOUT ,   path_content_two_dir ,   L ( "barfoo/buzfoo.html" ,   "_default/buzfoo.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_LAYOUT ,   path_content_one_dir ,   L ( "barfoo/buzfoo.html" ,   "_default/buzfoo.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_LAYOUT ,   path_content_no_dir ,   L ( "barfoo/buzfoo.html" ,   "_default/buzfoo.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_LAYOUT ,   path_one_directory ,   L ( "barfoo/buzfoo.html" ,   "_default/buzfoo.html" ) } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { SIMPLE_PAGE_TYPE_LAYOUT ,   path_no_directory ,   L ( "barfoo/buzfoo.html" ,   "_default/buzfoo.html" ) } , 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 for   _ ,   test   :=   range   tests   { 
  
						 
					
						
							
								
									
										
										
										
											2014-05-01 14:11:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 p ,   _   :=   NewPage ( test . path ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 err   :=   p . ReadFrom ( strings . NewReader ( test . content ) ) 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 if   err   !=   nil   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 t . Fatalf ( "Unable to parse content:\n%s\n" ,   test . content ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
									
										
										
										
											2014-06-03 17:06:32 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 for   _ ,   y   :=   range   test . expectedLayout   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 test . expectedLayout   =   append ( test . expectedLayout ,   "theme/" + y ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 if   ! listEqual ( p . Layout ( ) ,   test . expectedLayout )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 t . Errorf ( "Layout mismatch. Expected: %s, got: %s" ,   test . expectedLayout ,   p . Layout ( ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:22:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-09-09 15:58:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   TestSliceToLower ( t   * testing . T )   { 
  
						 
					
						
							
								
									
										
										
										
											2014-10-02 17:25:52 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 tests   :=   [ ] struct   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 value      [ ] string 
  
						 
					
						
							
								
									
										
										
										
											2014-09-09 15:58:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 expected   [ ] string 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } { 
  
						 
					
						
							
								
									
										
										
										
											2014-10-02 17:25:52 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 { [ ] string { "a" ,   "b" ,   "c" } ,   [ ] string { "a" ,   "b" ,   "c" } } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { [ ] string { "a" ,   "B" ,   "c" } ,   [ ] string { "a" ,   "b" ,   "c" } } , 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 { [ ] string { "A" ,   "B" ,   "C" } ,   [ ] string { "a" ,   "b" ,   "c" } } , 
  
						 
					
						
							
								
									
										
										
										
											2014-09-09 15:58:02 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 for   _ ,   test   :=   range   tests   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 res   :=   sliceToLower ( test . value ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 for   i ,   val   :=   range   res   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 if   val   !=   test . expected [ i ]   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												 t . Errorf ( "Case mismatch. Expected %s, got %s" ,   test . expected [ i ] ,   res [ i ] ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func   listEqual ( left ,   right   [ ] string )   bool   { 
  
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 if   len ( left )   !=   len ( right )   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 return   false 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 for   i   :=   range   left   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 if   left [ i ]   !=   right [ i ]   { 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											 return   false 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 } 
  
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-01-29 14:50:31 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 return   true 
  
						 
					
						
							
								
									
										
										
										
											2013-10-07 07:57:45 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}