Title: Highlight Source Pro
Author: kno
Published: <strong>2008 年 4 月 7 日</strong>
Last modified: 2008 年 4 月 10 日

---

搜尋外掛

這個外掛**並未在最新的 3 個 WordPress 主要版本上進行測試**。開發者可能不再對這個
外掛進行維護或提供技術支援，並可能會與更新版本的 WordPress 產生使用上的相容性問題。

![](https://s.w.org/plugins/geopattern-icon/highlight-source-pro.svg)

# Highlight Source Pro

 由 [kno](https://profiles.wordpress.org/kno/) 開發

[下載](https://downloads.wordpress.org/plugin/highlight-source-pro.1.3.zip)

 * [詳細資料](https://tw.wordpress.org/plugins/highlight-source-pro/#description)
 * [使用者評論](https://tw.wordpress.org/plugins/highlight-source-pro/#reviews)
 *  [安裝方式](https://tw.wordpress.org/plugins/highlight-source-pro/#installation)
 * [開發資訊](https://tw.wordpress.org/plugins/highlight-source-pro/#developers)

 [技術支援](https://wordpress.org/support/plugin/highlight-source-pro/)

## 外掛說明

Powerful, flexible, XHTML-compliant, server-side code highlighting, credits for 
everything
 but ‘making it a plugin’ go to [Jay Pipes](http://jpipes.com/index.php?/archives/216-Syntax-Highlighting-and-Allowing-HTML-in-Comments.html)
and [GeSHi](http://geshi.org/).

#### Features

 * Highlight sources of any language
 * automatically, server-side (no javascripts)
 * XHTML-Compliant, `<div>`, `<ul>`, `<span>` with class-attributes and a css-file
   are used for styling
 * optionally add a heading for every code-block
 * optionally specify line-number offset (BREAKS XHTML COMPLIANCE)
 * optionally don’t display line-numbers
 * set per-codeblock if the code is html_entity_encoded or not
 * only parses `<pre>`-tags with the `lang=`-attribute, thus does not interfere 
   with any regular preformatted contents you might have
 * degrades beautifully through `<pre>`-tags (if you keep the sources clean, that
   is)
 * all settings through logical, valid arguments for the main container
 * comes with generic cross-browser CSS (tested: IE5.5+, FF, Safari, Opera)

#### Version History

 * 1.3: Thanks to a tipp now the link-path to the stylesheets is correct, sorry 
   for the inconvenience
 * 1.2: Leading whitespace isn’t stripped anymore (indents as well as newlines),
   when there’s no title the title-div is not being generated anymore
 * 1.1: Solved the issue with single-quotes being changed to typographical quotes

#### Known Issues

While the plugin is basically XHTML 1.0 Strict compliant there’s just no way of 
getting the offset-based line-numbering to display without inadequate (ab)use of
javascript and css hacks, so be warned that _IF you use the line-number offset, 
your documents will **NOT** validate_ because of the forbidden `start=`-attribute
for the `<ol>`!

### Documentation

More on the [Highlight Source Pro Page](http://blog.kno.at/tools/highlight-source-pro/)

## 螢幕擷圖

[⌊All-In-One Preview⌉⌊All-In-One Preview⌉[

All-In-One Preview

## 安裝方式

The plugin is simple to install:

 1. Upload the `highlight_source_pro` folder to your `/wp-content/plugins` directory
 2. Enable via Admin-Interface

#### How to Use

Set your code-blocks as `<pre>`-tags. If the language is supported by GeSHi (see
file list in the `/geshi-directory`) use the filename (without extension) as language-
attribute. If your code is encoded (html-entities; e.g. `<` is displayed as `&lt;`–
most likely the case if you write in the visual editor) add the `enc__`-prefix. 
For example for a php-codeblock you would start as follows:

    ```
    <pre lang="php">
    ```

You can control various things: * Start of Line-Offset, e.g. for #17: `<pre class
="17">` * define entity-encoded blocks, e.g. for php: `<pre lang="enc__php">` * 
Define a title for your code-block that appears inside the block, but above the 
code lines. Everything in the same line as the opening `<pre>` tag will be considered
the title, including HTML works fine:

    ```
            <pre lang="php"><strong>This is</strong> an <em>example</em> with a <h3>headline</h3>
    ```

* disable line numbers by not specifying an offset * combine all those things as
long as you stick to the right order:

## 常見問題集

  I use Self-Formatted Markup in older posts, what’s gonna happen?

As long as they aren’t wrapped in `<pre>`-tags _with a `lang=`-attribute_ nothing
is going to happen – your markup will stay untouched. Highlight Source Pro only 
hooks in for those `<pre>`-tags having a `lang=`-attribute.

  What about that class-abuse for line numbering???

The line-numbering is the one problem here, because – currently – it requires to
break with the XHTML-Standard. Because the `<ol>` is always and guaranteed inside
a `<div>` with the `.geshi`-class there is no need for the `class`-attribute on 
the list element. Also due to the fact that a CSS-classname is not allowed to start
with a number, this solution is valid XHTML for downgrading and _can never interfere
with existing CSS-rules_.

  I can use all HTML for the title-line?

Yep. The basic idea is, once again, backwards compatibility. If you consider your
code-blocks being important you’ll most likely want to add a heading instead of 
just a line, on the other hand you can simply use the title-feature to show which
file is being talked about. Since the title-string will be placed inside a `<div
>` you’ll be fine as long as there’s no line-break (and your markup is valid)

  What about that html_entity_decode thing and the enc__ – prefix??

There’s two ways of handling code-listing in your original post source. You can 
either use the HTML-input and hardcode PHP, C or whatever you think about, statements
in there, Highlight Source Pro will handle those listings without any problems (
in fact, it’s the safer version to use for Highlighting as all characters are present
in their original form).

On the other hand this will get problematic if – for any reason – you stop using
Highlight Source Pro, because WordPress (and every other serious software) will 
strip lots of those listings for security and compatibility reasons. If you want
to be sure that your listings don’t break when moving to another platform you should
consider using htmlentities() on your listings, or writing them with the Visual 
Editor in the first place, so when falling back everything will be displayed as 
you want.

In this case you’ll have to use the `enc__`-prefix to tell Highlight Source Pro 
to apply `html_entity_decode()` before the actual syntax-highlighting. While this
might be the more _default_ case it’s still the one requiring the alteration with
the prefix, for compatibility reasons. If encoded scripts would be marked with the
original language-signature and the source would later on be used in another GeSHi-
environment things would get very, very complicated and confusing.

## 使用者評論

這個外掛目前沒有任何使用者評論。

## 參與者及開發者

以下人員參與了開源軟體〈Highlight Source Pro〉的開發相關工作。

參與者

 *   [ kno ](https://profiles.wordpress.org/kno/)

[將〈Highlight Source Pro〉外掛本地化為台灣繁體中文版](https://translate.wordpress.org/projects/wp-plugins/highlight-source-pro)

### 對開發相關資訊感興趣？

任何人均可[瀏覽程式碼](https://plugins.trac.wordpress.org/browser/highlight-source-pro/)、
查看 [SVN 存放庫](https://plugins.svn.wordpress.org/highlight-source-pro/)，或透過
[RSS](https://plugins.trac.wordpress.org/log/highlight-source-pro/?limit=100&mode=stop_on_copy&format=rss)
訂閱[開發記錄](https://plugins.trac.wordpress.org/log/highlight-source-pro/)。

## 中繼資料

 *  版本 **1.3**
 *  最後更新 **18 年前**
 *  啟用安裝數 **30+**
 *  WordPress 版本需求 ** 2.3 或更新版本 **
 *  已測試相容的 WordPress 版本 **2.5**
 *  語言
 * [English (US)](https://wordpress.org/plugins/highlight-source-pro/)
 * 標籤:
 * [code](https://tw.wordpress.org/plugins/tags/code/)[Highlight](https://tw.wordpress.org/plugins/tags/highlight/)
   [markup](https://tw.wordpress.org/plugins/tags/markup/)[source](https://tw.wordpress.org/plugins/tags/source/)
   [syntax](https://tw.wordpress.org/plugins/tags/syntax/)
 *  [進階檢視](https://tw.wordpress.org/plugins/highlight-source-pro/advanced/)

## 評分

這個項目尚無任何評論記錄。

[Your review](https://wordpress.org/support/plugin/highlight-source-pro/reviews/#new-post)

[查看全部使用者評論](https://wordpress.org/support/plugin/highlight-source-pro/reviews/)

## 參與者

 *   [ kno ](https://profiles.wordpress.org/kno/)

## 技術支援

使用者可在技術支援論壇提出意見反應或使用問題。

 [檢視技術支援論壇](https://wordpress.org/support/plugin/highlight-source-pro/)

## 贊助

想要支援這個外掛的發展嗎？

 [ 贊助這個外掛 ](http://tinyurl.com/3mjxz2)