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

SyHi

外掛說明

This plug-in is totally designed for developers.

You know, that sort of people who post code snippets in their blog regularly and hardly use the Visual Editor,
because they write the HTML themselves. But they don’t like WordPress messing with their quotes and dashes,
so this plug-in makes sure no one touches one of their lovingly crafted lines of code.

It’s also very minimalistic – less than 10k, not counting the GeSHi syntax highlighting library which is also included.

In addition, it’s also lazy. It will try to avoid doing as much work as possible.
That is good, because it will not eat resources like other plug-ins out there.

Usage

Whenever you want to post some syntax highlighted code, surround it with <code lang="language"></code>. That’s it.

Example:

<code lang="php">
class HelloWorld()
{
    public function __construct()
    {
        echo "This is an unnecessarily long version of Hello World";
    }
}
</code>

The ‘lang’ attribute can be entirely omitted. You will get whitespace, quotes and dashes preservation… but no highlighting.

Uninstall

Just deactivate the plug-in, and remove its folder from the wp-content/plugins directory.

Thanks

Big thanks to the creators of the GeSHi library. Without it, the output of this plug-in would be very boring.
Here’s its homepage: http://qbnz.com/highlighter/

The following plug-ins were invaluable sources of inspiration and how-to-do-it-right:

  • Preserve Code Formatting, by Scott Reilly (http://coffee2code.com)
  • Code Snippet, by Roman Roan. Now maintained by Wyatt Neal (http://blog.hackerforhire.org/code-snippet/)

You could say this plug-in is the sum of the essence of both plug-ins.

螢幕擷圖

  • Sample of code highlighted with SyHi. See how the other text is unaffected by the quote-preserving feature, and hence is fully texturized (dashes, curly quotes, you name it!)
  • Sample of code with and without highlighting, using the default kubrick theme. Notice how the first snippet is totally ruined, because it doesn’t use the code tag. The second one is beatifully colored and all problematic characters are preserved. Notice also that the snippet gets a scrollbar if the lines are too wide for the column width.

安裝方式

  • Upload the full syhi folder to the /wp-content/plugins/ directory
  • Activate the plugin through the ‘Plugins’ menu in WordPress
  • That’s it!

Warning: php5 and WP2.8.5 or higher are required. The plug-in has not been tested with any other configuration.

常見問題集

Which languages are supported?

This plug-in can beautify snippets in pretty much every programming language you can think of, thanks to the huge language support provided by GeSHi (the highlighting library).

These are the available languages: 4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, c_mac, cmake, cobol, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, eiffel, email, erlang, f1, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, kixtart, klonec, klonecpp, latex, lb, lisp, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle8, oracle11, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, plsql, postgresql, povray, powerbuilder, powershell, progress, prolog, properties, providex, purebasic, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, z80, zxbasic.

When entering the lang attribute in the code blocks, make sure the value you enter is exactly one of the languages in the list, or the highlighting will resort to a simple preformatted text.

If you still require syntax highlighting for a language which is not in this list, you’ll have to develop your own language file. What about submitting it to GeSHi when you’re done? 🙂

Is there any configuration panel or settings for the plug-in?

Not right now, but it’s on the to-do list. However, don’t expect to be able to modify tons of settings. This is all about minimalism!

Can I use the Visual Editor to enter code?

My tests prove otherwise. You’ll need to use the HTML view. At least by now.

Features that other plug-ins have but are entirely unsupported/missing for the time being
  • Ability to use tags instead of ““ tags (would solve problems with the Visual Editor and the code tags)
  • Ability to show line numbers
  • Ability to have nested <code> blocks
Planned features

Add options for…

  • configuring if you want to use my css sheet, your css sheet, both, or no one at all
  • configuring if you want to use GeSHi, or are happy with just plain preformatted text
  • configuring if you want to allow commenters to post syntax highlighted code snippets

使用者評論

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

參與者及開發者

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

參與者

將〈SyHi〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

0.0.4

  • Updated GeSHi to latest version (1.0.8.9). Adds support for new syntaxes: 4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, algol68, autoconf, autohotkey, awk, chaiscript, clojure, cuesheet, e, ecmascript, f1, fsharp, gambas, gdb, genie, go, gwbasic, hicest, icon, j, jquery, lb, logtalk, magiksf, mapbasic, mmix, modula2, newlisp, objeck, oxygene, oz, perl6, pf, pike, postgresql, powerbuilder, pcre, purebasic, q, rpmspec, rsplus, systemverilog, unicon, vala, xbasic, zxbasic

0.0.3

  • Fix an issue where sometimes code blocks got replaced with placeholders, never to have the beautified code back into place
  • Added every language file provided by GeSHi. No more adding language files manually to the plug-in.
  • Rewording of readme.txt in places to improve legibility. Also added a list with all available language files so that people know what the plug-in can really do before installing it.
  • Fixed some formatting issues in the readme.txt — now it should display fine in the WordPress.org plugin page (hopefully!)

0.0.2

  • Added the mandatory readme.txt that I forgot in the first release, plus a couple of screenshots.

0.0.1

  • First public release