diff options
Diffstat (limited to 'buildscripts/texbuilder')
| -rw-r--r-- | buildscripts/texbuilder/Page2Tex.php | 48 | ||||
| -rw-r--r-- | buildscripts/texbuilder/quickstart/build.php | 4 | 
2 files changed, 46 insertions, 6 deletions
diff --git a/buildscripts/texbuilder/Page2Tex.php b/buildscripts/texbuilder/Page2Tex.php index 5d9a2b81..2374647c 100644 --- a/buildscripts/texbuilder/Page2Tex.php +++ b/buildscripts/texbuilder/Page2Tex.php @@ -4,6 +4,9 @@ class Page2Tex  {
  	private $_current_page;
  	private static $header_count = 0;
 +	private static $p_count=0;
 +	private static $hil_count=0;
 +	private $page_count=0;
  	private $_base;
  	private $_dir;
 @@ -270,29 +273,66 @@ class Page2Tex  	}
 -	function set_header_id($content)
 +	function set_header_id($content, $j)
  	{
 +		$this->page_count=$j;
  		$content = preg_replace_callback('/<h1>/', array($this,"h1"), $content);
  		$content = preg_replace_callback('/<h2>/', array($this,"h2"), $content);
  		$content = preg_replace_callback('/<h3>/', array($this,"h3"), $content);
 +		$content = $this->set_block_content_id($content);
  		return $content;
  	}
  	function h1($matches)
  	{
 -		return "<h1 id=\"".(++self::$header_count)."\">";
 +		$page = $this->page_count*1000;
 +		return "<h1 id=\"".($page + (++self::$header_count))."\">";
  	}
  	function h2($matches)
  	{
 -		return "<h2 id=\"".(++self::$header_count)."\">";
 +		$page = $this->page_count*1000;
 +		return "<h2 id=\"".($page + (++self::$header_count))."\">";
  	}
  	function h3($matches)
  	{
 -		return "<h3 id=\"".(++self::$header_count)."\">";
 +		$page = $this->page_count*1000;
 +		return "<h3 id=\"".($page + (++self::$header_count))."\">";
 +	}
 +	
 +	function set_block_content_id($content)
 +	{
 +		$content = preg_replace_callback('/<p>/',  array($this, 'add_p'), $content);
 +		$content = preg_replace_callback('/<com:TTextHighlighter([^>]+)>/', array($this, 'hil'), $content);
 +		return $content;
 +	}
 +
 +	function hil($matches)
 +	{
 +		$id = ($this->page_count*10000) + (++self::$hil_count);
 +		if(preg_match('/id="code-\d+"/i', $matches[1]))
 +		{
 +			$code = preg_replace('/id="code-(\d+)"/', 'id="code_$1"', $matches[0]);
 +			//var_dump($code);
 +			return $code;
 +		}
 +		else if(preg_match('/id="[^"]+"/i', $matches[1]))
 +		{
 +			return $matches[0];
 +		}
 +		else
 +		{	
 +			$changes = str_replace('"source"', '"source block-content" id="code-'.$id.'"', $matches[0]);
 +			return $changes;
 +		}
  	}
 +	function add_p($matches)
 +	{
 +		 $page = $this->page_count*10000;
 +		 return "<p id=\"".($page + (++self::$p_count))."\" class=\"block-content\">";
 +	}
  }
  ?>
 diff --git a/buildscripts/texbuilder/quickstart/build.php b/buildscripts/texbuilder/quickstart/build.php index b5ee7841..2cee7fee 100644 --- a/buildscripts/texbuilder/quickstart/build.php +++ b/buildscripts/texbuilder/quickstart/build.php @@ -36,9 +36,9 @@ foreach($pages as $chapter => $sections)  		$current_path = $page;
  		$parser->setCurrentPage($current_path);
 -		//add id to <h1>, <h2>, <3>
 +		//add id to <h1>, <h2>, <h3> and <p>
  		$tmp_content = $parser->set_header_id(file_get_contents($page),$j++);
 -//		file_put_contents($page, $tmp_content);
 +		file_put_contents($page, $tmp_content);
  		$content .= $parser->get_section_label($section);
  		$file_content = file_get_contents($page);
  | 
