5.9.0 — Jan­u­ary 212023

  • Fea­ture: wp-​Typography is now com­pat­i­ble with PHP 8.1.
  • Fea­ture: Im­proved Ad­vanced Cus­tom Fields support: 
    • wp-​Typography is now com­pat­i­ble with Ad­vanced Cus­tom Fields 6.
    • The re­turn type array is now sup­port­ed for most fields.
  • Change: PHP min­i­mum ver­sion in­creased to 7.4.
  • Change: Prevent widows is now dis­abled by default.

5.8.1 — Jan­u­ary 252022

  • Bug­fix: White­screen in Requirements class due to er­ror in build process fixed.

5.8.0 — Jan­u­ary 252022

  • Fea­ture: wp-​Typography is now com­pat­i­ble with PHP 8.0.
  • Change: Word­Press min­i­mum ver­sion in­creased to 5.3.
  • Change: PHP min­i­mum ver­sion in­creased to 7.2.
  • Change: Sup­port for In­ter­net Ex­plor­er 11 has been dropped.
  • Change: A fab­u­lous new plu­g­in icon de­signed by Jo­han­na Amann.

5.7.2 — No­vem­ber 12020

  • Bug­fix: Dewid­ow­ing is ap­plied again (had silent­ly bro­ken since wp-​Typography 5.1.0).
  • Bug­fix: link_name and term_name will not have HTML in­ject­ed anymore.

5.7.1 — June 242020

  • Bug­fix: Fil­ters can be re­moved again with remove_filter().
  • Bug­fix: The block ed­i­tor does not crash any­more when try­ing to ed­it a cus­tom post type that does not sup­port custom-fields.

5.7.0 — May 222020

  • Fea­ture: Dis­able wp-​Typography for spe­cif­ic posts/​pages (via a side­bar tog­gle in the block ed­i­tor or the fil­ter hook typo_disable_processing_for_post).
  • Fea­ture: New block wp-typography/typography added to ap­ply ty­pog­ra­phy fix­es on nest­ed blocks (e.g. in widgets).
  • Change: Sig­nif­i­cant­ly up­dat­ed hy­phen­ation pat­terns for: 
    • Amhar­ic,
    • Chi­nese pinyin (Latin),
    • Ger­man,
    • Ger­man (Tra­di­tion­al),
    • Ger­man (Swiss Traditional),
    • Latin (Clas­si­cal),
    • Latin (Litur­gi­cal),
    • Span­ish.
  • Change: The min­i­mum ver­sion has been raised to Word­Press 4.9.
  • Change: The DOM ex­ten­sion is now ex­plic­it­ly re­quired for run­ning the plugin.
  • Bug­fix: Copy­ing from form fields works again when Remove hyphenation when copying to clipboard is enabled.

5.6.1 — De­cem­ber 242019

  • Bug­fix: Some er­ror mes­sages were not get­ting trans­lat­ed be­cause of a WP​.org in­fra­struc­ture change.
  • Bug­fix: No more white­screens when the un­der­ly­ing DOM pars­er fails.
  • Bug­fix: The path for script as­sets is now cor­rect­ly con­struct­ed when wp-​Typography is used as MU plugin.

5.6.0 — Ju­ly 212019

  • Fea­ture: Sup­port for new vari­ant of the in­ter­na­tion­al dash style with­out hair spaces for nu­mer­ic in­ter­vals (i.e. 9-17 be­comes 9–17 in­stead of 9 – 17).
  • Fea­ture: Smart area and vol­ume units (5m2 is trans­formed in­to 5 m²).
  • Fea­ture: The use of nar­row no-​break spaces and the true Uni­code hy­phen can now be en­abled via the GUI. Con­se­quent­ly, the fil­ter hook typo_narrow_no_break_space has been deprecated.
  • Change: The HTML ti­tle han­dling has been reengi­neered, and con­se­quent­ly, the title vari­ant of the typo_disable_filtering hook has been removed.
  • Change: CSS class in­jec­tion for am­per­sands, acronyms, and in­tial quotes is now dis­abled by default.
  • Change: The smart quotes pre­view in the set­tings page should now be eas­i­er to read.
  • Change: All ex­ter­nal PHP de­pen­den­cies have been moved to the name­space WP_Typography\Vendor to re­duce the chance of con­flicts with oth­er plugins.
  • Bug­fix: The reg­u­lar ex­pres­sion for clean­ing user-​supplied CSS no longer us­es in­valid syn­tax. This should fix any er­rors in PHP 7.3.

5.5.4 — March 112019

  • Bug­fix: Au­to­mat­ic lan­guage de­tec­tion now al­so works for lo­cales with­out a coun­try code (e.g. f‌i).
  • Bug­fix: No PHP no­tices are shown for miss­ing op­tions anymore.

5.5.3 — Jan­u­ary 272019

  • Bug­fix: Cus­tom styles con­tain­ing quote char­ac­ters are now out­put correctly.

5.5.2 — Jan­u­ary 292019

  • Bug­fix: To pre­vent com­mon false pos­i­tives for single-​letter Ro­man or­di­nals (es­pe­cial­ly in French and Dutch), Ro­man nu­mer­al match­ing now has to be ex­plic­it­ly en­abled in the set­tings. In ad­di­tion, on­ly I, V, and X are ac­cept­ed as single-​letter Ro­man numbers.

5.5.1 — Jan­u­ary 272019

  • Bug­fix: Parts of hy­phen­at­ed words should not be de­tect­ed as Ro­man nu­mer­als anymore.
  • Bug­fix: The Uni­code hy­phen char­ac­ter (-) is rec­og­nized as a valid word combiner.

5.5.0 — Jan­u­ary 272019

  • Fea­ture: French (1ère) and “Latin” (1o) or­di­nal num­bers are now sup­port­ed by the smart or­di­nals fea­ture (al­so with Ro­man nu­mer­als, e.g. XIXème).
  • Fea­ture: The list of smart quotes ex­cep­tions (words be­gin­ning with apos­tro­phes) can now be customized.
  • Fea­ture: HTML5 pars­er per­for­mance huge­ly im­proved (up to 11× faster).
  • Bug­fix: Out­put fil­ter­ing is now sus­pend­ed dur­ing WP-​CLI commands.
  • Bug­fix: Unit spac­ing is now prop­er­ly ap­plied to mon­e­tary sym­bols ($, €, etc.).
  • Bug­fix: Cer­tain HTML en­ti­ties (e.g. &) were ac­ci­den­tal­ly dropped in rare cases.
  • Bug­fix: Com­ply with the new Word­Press Cod­ing Stan­dards 2.0.

5.4.1 — Sep­tem­ber 152018

  • Bug­fix: Com­ply with new Word­Press Cod­ing Stan­dards 1.1.
  • Bug­fix: Work around Glot­Press is­sue pre­vent­ing lan­guage pack generation.

5.4.0 — Sep­tem­ber 92018

  • Fea­ture: New hooks for im­ple­ment­ing your own ty­pog­ra­phy fixes: 
    • typo_custom_characters_node_fix,
    • typo_custom_spacing_pre_node_fix,
    • typo_custom_spacing_post_node_fix,
    • typo_custom_html_insertion_node_fix,
    • typo_custom_mixed_words_token_fix,
    • typo_custom_compound_words_token_fix,
    • typo_custom_words_token_fix,
    • typo_custom_other_token_fix.
  • Fea­ture: A pri­va­cy state­ment has been added on Word­Press 4.9.6+.
  • Fea­ture: A nar­row no-​break space is now in­sert­ed be­tween ad­ja­cent pri­ma­ry and sec­ondary quotes.
  • Change: The Uni­code hy­phen char­ac­ter () is now used in­stead of the hyphen-​minus (-).
  • Change: Sig­nif­i­cant­ly up­dat­ed hy­phen­ation pat­terns for: 
    • Bul­gar­i­an,
    • Ger­man,
    • Ger­man (Tra­di­tion­al),
    • Ger­man (Swiss Traditional),
    • Latin (Litur­gi­cal), and
    • Thai.
  • Bug­fix: The com­ma is now rec­og­nized as a dec­i­mal sep­a­ra­tor (e.g. 1,5, in ad­di­tion to 1.5).
  • Bug­fix: Smart maths prop­er­ly han­dles 2‑digit years in dates.
  • Bug­fix: Smart di­a­crit­ics won’t try to “cor­rect” the spelling of Uber anymore.
  • Bug­fix: French punc­tu­a­tion is now cor­rect­ly ap­plied to quotes pre­ceed­ed or fol­lowed by round and square brackets.
  • Bug­fix: Smart quotes re­place­ment could re­sult in in­valid uni­code se­quences in rare cases.

5.3.5 — May 102018

  • Bug­fix: 50/50 (and x/x ex­cept 1/1) are not treat­ed as frac­tions anymore.
  • Bug­fix: The French spac­ing rules were not ap­plied to clos­ing guillemets fol­lowed by a comma.

5.3.4 — April 222018

  • Bug­fix: Up­date used li­braries to the lat­est versions.

5.3.3 — April 082018

  • Bug­fix: Cor­rect­ly match smart frac­tions even if the are fol­lowed by a com­ma (i.e. 1/4,).

5.3.2 — March 242018

  • Bug­fix: Pre­vent fu­ture con­flicts with oth­er plu­g­ins by up­dat­ing in­clud­ed libraries.

5.3.1 — March 152018

  • Bug­fix: Al­ways clear the cache af­ter up­dates to pre­vent fron­tend white­screens un­der cer­tain circumstances.

5.3.0 — March 132018

  • Fea­ture: True in­te­gra­tion with Ad­vanced Cus­tom Fields 5, mak­ing the fil­ters ad­justable for each field via the set­tings UI.
  • Fea­ture: The script to re­move soft hy­phens from clip­board se­lec­tions has been refac­tored to re­duce the num­ber of loaded resources.
  • Change: Some API meth­ods have been dep­re­cat­ed and will be re­moved in 6.0.0:
    • The sta­t­ic meth­ods WP_Typography::filter* should be re­placed by sta­t­ic calls to the ex­ist­ing process* method family.
    • In gen­er­al, all in­stance meth­ods of the new class WP_Typography\Implementation can now be called sta­t­i­cal­ly on the sin­gle­ton via the WP_Typography superclass.
  • Bug­fix: In rare cas­es, UTF8 char­ac­ters like Å caused all con­tent with­in the same tag to disappear.

5.2.4 — Feb­ru­ary 262018

  • Bug­fix: The par­tial was still pack­aged in the wrong place, caus­ing back­end white­screens in some cases.

5.2.3 — Feb­ru­ary 222018

  • Bug­fix: A par­tial was miss­ing from the com­pat­i­bil­i­ty check­ing code for old­er PHP versions.

5.2.2 — Feb­ru­ary 042018

  • Bug­fix: Su­per­scripts were not dis­played cor­rect­ly in the set­tings page.
  • Bug­fix: Stand­alone < and > char­ac­ters (i.e. not part of an HTML tag) could van­ish in some circumstances.
  • Bug­fix: Re-​activating the plu­g­in no longer over­writes the set­tings with their defaults.

5.2.1 — Jan­u­ary 112018

  • Bug­fix: Lan­guages were not sort­ed cor­rect­ly in the set­tings page.
  • Bug­fix: Cir­cu­lar ref­er­ences in cached ob­jects have been fixed.
  • Bug­fix: Workaround for Di­vi theme crash, avoid­ing get_body_class().

5.2.0 — Jan­u­ary 052018

  • Fea­ture: Word­Press body class­es (i.e. the re­sult of get_body_class()) are now passed to the text pro­cess­ing meth­ods. This means that you can ex­clude en­tire pages from wp-​Typography’s pro­cess­ing based on the body class­es gen­er­at­ed by WordPress.
  • Fea­ture: Sup­port for WooCom­merce page de­scrip­tions (via the fil­ter hook woocommerce_format_content).
  • Fea­ture: New hy­phen­ation languages 
    • As­samese,
    • Be­laru­sian,
    • Ben­gali,
    • Church Slavon­ic,
    • Es­peran­to,
    • Friu­lan,
    • Gu­jarati,
    • Kan­na­da,
    • Kur­man­ji,
    • Malay­alam,
    • Nor­we­gian (Bok­mål)
    • Nor­we­gian (Nynorsk)
    • Pied­mon­tese,
    • Ro­mansh,
    • Up­per Sorbian.
  • Change: Up­dat­ed to use ver­sion 6.1.0 of the com­pos­er pack­age mundschenk-at/php-typography.
  • Bug­fix: Num­bers are treat­ed like char­ac­ters for the pur­pose of wrap­ping emails.
  • Bug­fix: Bet­ter match­ing be­tween hy­phen­ation lan­guages and Word­Press locales.

5.1.3 — De­cem­ber 032017

  • Change: Up­dat­ed to use ver­sion 5.2.3 of the com­pos­er pack­age mundschenk-at/php-typography.
  • Bug­fix: Some­times, the French dou­ble quotes style gen­er­at­ed spu­ri­ous ».
  • Bug­fix: Locale-​based lan­guage files where not prop­er­ly matched (pri­mar­i­ly af­fect­ing en-US and en-GB, props @strasis).

5.1.2 — No­vem­ber 252017

  • Change: Up­dat­ed to use ver­sion 5.2.2 of the com­pos­er pack­age mundschenk-at/php-typography.
  • Bug­fix: Re­moved some am­bigu­ous di­a­crit­ics re­place­ments from the Ger­man lan­guage file.
  • Bug­fix: Pre­vent of ac­ci­den­tal load­ing of ob­so­lete com­pos­er ClassLoader im­ple­men­ta­tions from oth­er plugins.

5.1.1 — No­vem­ber 162017

  • Bug­fix: Short­codes in the new Word­Press 4.8 text wid­get work again.

5.1.0 — No­vem­ber 142017

  • Fea­ture: HTML5 pars­er per­for­mance im­proved by 20 percent.
  • Fea­ture: New hy­phen­ation lan­guage “Swiss-​German (Tra­di­tion­al)” added.
  • Fea­ture: New fil­ter hook typo_narrow_no_break_space to en­able the NARROW NO-BREAK SPACE.
  • Change: Refac­tored plu­g­in in­ter­nals. This means that 
    • caching should be more friend­ly to shared host­ing environments,
    • op­tions are stored as a sin­gle ar­ray now (i.e. few­er rows in the options ta­ble), and
    • fil­ters and ac­tions are on­ly added when ac­tu­al­ly needed.
  • Change: Up­dat­ed to use ver­sion 5.2.1 of the com­pos­er pack­age mundschenk-at/php-typography.
  • Bug­fix: Nar­row spaces are hon­ored dur­ing de-widowing.

5.0.4 — Sep­tem­ber 092017

  • Bug­fix: En­sure prop­er typ­ing for cached lan­guage plu­g­in lists.

5.0.3 — Sep­tem­ber 032017

  • Bug­fix: Low­er data­base write load by re­duc­ing op­tion up­dates (props @jerzyk).

5.0.2 — Sep­tem­ber 022017

  • Bug­fix: “Clear Cache” and “Re­store De­faults” ad­min no­tices are now shown again.
  • Bug­fix: Ob­ject caching er­rors don’t crash the site anymore.

5.0.1 — Au­gust 282017

  • Bug­fix: Fa­tal er­ror on PHP 5.6.x (caused by us­ing __METHOD__ as a vari­able func­tion) fixed (mundschenk-at/php-typography 5.0.2).

5.0.0 — Au­gust 272017

  • Fea­ture: Prop­er mul­ti­lin­gual sup­port (au­to­mat­ic lan­guage switch­ing). Test­ed with 
  • Fea­ture: Language-​specific de­fault settings.
  • Fea­ture: Sev­er­al new hooks added (in­clud­ing typo_settings to di­rect­ly fil­ter the settings).
  • Change: Up­dat­ed to use ver­sion 5.0.1 of the new stand­alone com­pos­er pack­age mundschenk-at/php-typography.
  • Change: Min­i­mum PHP ver­sion in­creased to 5.6.0.
  • Change: Up­dat­ed list of valid top-​level domains.
  • Bug­fix: French punc­tu­a­tion spac­ing af­ter links (and oth­er in­line tags) fixed.
  • Bug­fix: Lone am­per­sands are treat­ed as single-​character words.
  • Bug­fix: Hy­phen­at­ed words are prop­er­ly de-widowed.

4.2.2 — June 182017

  • Bug­fix: Prop­er­ly clear cache on upgrade.
  • Change: Var­i­ous in­ter­nal per­for­mance improvements.

4.2.1 — June 92017

  • Bug­fix: Pre­vent crash on PHP 5.x when build­ing the hy­phen­ation trie.

4.2.0 — June 82017

  • Fea­ture: Pre­vent line-​breaks in num­bered ab­bre­vi­a­tions (e.g. ISO 9001).
  • Fea­ture: Added new hook typo_php_typography_caching_enabled to dis­able ob­ject caching for very resource-​starved environments.
  • Change: Core API refac­tored and min­i­mum PHP ver­sion in­creased to 5.4.0.
  • Change: Up­dat­ed hy­phen­ation patterns: 
    • Ger­man
    • Ger­man (Tra­di­tion­al)
    • Latin
    • Latin (Litur­gi­cal)
  • Change: Up­dat­ed list of valid top-​level domains.

4.1.2 — May 262017

  • Bug­fix: Hy­phen­ation pat­terns at the end of word were ac­ci­den­tal­ly ignored.
  • Bug­fix: Di­a­crit­ics re­place­ment does not count soft hy­phens as word bound­aries anymore.

4.1.1 — March 192017

  • Bug­fix: Per­for­mance is­sue ac­ci­den­tal­ly in­tro­duced in 4.1.0 fixed.

4.1.0 — March 182017

  • Fea­ture: Hy­phen­ator in­stance has been made cacheable.
  • Fea­ture: Workaround for bro­ken Go­Dad­dy APC ob­ject cache.
  • Bug­fix: In­cor­rect re­place­ment of ini­tial hy­phens fixed.
  • Bug­fix: French spac­ing rules improved.
  • Bug­fix: Prop­er dash­es for Ger­man date intervals.
  • Bug­fixWP_Typography::get_user_settings and WP_Typography::process_title now work cor­rect­ly (props @roopemerikukka)

4.0.2 — Feb­ru­ary 172017

  • Bug­fix: Workaround for plu­g­ins that call wptexturize too ear­ly (was­n’t ac­tu­al­ly work­ing before).

4.0.1 — Jan­u­ary 72017

  • Bug­fix: Workaround for PHP 5.3 is­sue in dewidow callback.

4.0.0 — Jan­u­ary 62017

  • Fea­ture: API im­prove­ments for developers 
    • New Set­tings API added.
    • Eas­i­er ac­cess via new sta­t­ic meth­ods WP_Typography::filter*.
    • Up­dat­ed API doc­u­men­ta­tion.
  • Fea­ture: Re-​vamped set­tings page 
    • Us­es tabs for eas­i­er navigation.
    • Fol­lows Word­Press styleguide more closely.
    • In­cludes on­line help.
  • Fea­ture: New hy­phen­ation languages 
    • Hin­di,
    • Marathi,
    • Oc­c­i­tan,
    • Oriya,
    • Pan­jabi,
    • Tamil,
    • Tel­ugu.
  • Change: Us­es mini­fied JavaScript.
  • Change: Up­dat­ed list of valid top-​level domains.
  • Change: “Ig­nore er­rors in parsed HTML” is the de­fault again (as it was pre 3.5.2) and can be switched on and off via the set­tings page. Pars­ing er­rors can be fil­tered via the new hook typo_handle_parser_errors (typo_ignore_parser_errors still works as well, of course).

3.6.0 — De­cem­ber 262016

  • Fea­ture: Added hook typo_ignore_parser_errors to re-​enable “pars­er guess­ing” as it was be­fore ver­sion 3.5.2.
  • Fea­ture: Added new hook typo_disable_filtering to se­lec­tive­ly dis­able fil­ter groups.

3.5.3 — De­cem­ber 172016

  • Bug­fix: Re­move am­bigu­ous en­tries from Ger­man di­a­crit­ics re­place­ment file.

3.5.2 — De­cem­ber 142016

  • Change: Re­turn un­mod­i­fied HTML if a processed text frag­ment is not well-​formed. This im­proves com­pat­i­bil­i­ty with page builder plu­g­ins (and themes) that do weird things with the the_content filter.

3.5.1 — No­vem­ber 052016

  • Bug­fix: Quotes end­ing in num­bers were some­times in­ter­pret­ed as primes.

3.5.0 — Oc­to­ber 212016

  • Fea­ture: Added “Latin (Litur­gi­cal)” as a new hy­phen­ation language.
  • Fea­ture: Lim­it­ed sup­port for ACF Pro.
  • Change: Bet­ter com­pat­i­bil­i­ty with im­prop­er­ly writ­ten plu­g­ins (en­sur­ing that wptexturize is al­ways off).
  • Change: On­ly use the WP Ob­ject Cache for caching, not tran­sients, to re­duce data­base us­age and pre­vent clog­ging in some configurations.
  • Change: Up­dat­ed list of valid top-​level domains.
  • Change: Up­dat­ed HTML5 pars­er (html5-​php) to 2.2.2.
  • Bug­fix: Cus­tom hy­phen­ations with more than one hy­phen­ation point were not work­ing properly.
  • Bug­fix: The min_after hy­phen­ation set­ting was off by one.
  • Bug­fix: An IE11 bug on Win­dows 7 was pre­vi­ous­ly trig­gered when the Sa­fari workaround is enabled.
  • Bug­fix: Lan­guage names were not trans­lat­ed in the set­tings screen.
  • Bug­fix: Frac­tions did not play nice with prime symbols.

3.4.0 — Ju­ly 102016

  • Store hy­phen­ation pat­terns as JSON files in­stead of PHP to work around a Glot­Press bug that pre­vents time­ly lan­guage pack updates.
  • Out-​of-​the box sup­port for Ad­vanced Cus­tom Fields (specif­i­cal­ly for fields of the types text, textarea and wysiwyg).
  • Up­dat­ed list of valid top-​level domains.

3.3.1 — June 282016

  • The JavaScript files for Remove hyphenation when copying to clipboard were miss­ing from the build.
  • Fixed a ty­po in the set­tings page.

3.3.0 — June 272016

  • Up­dat­ed HTML pars­er (html5-​php) to 2.2.1.
  • Up­dat­ed list of valid top-​level domains.
  • Re­moved IE6 ref­er­ences and workarounds. He’s dead, Jim.
  • Pre­vent ref­er­ences to US non-​profit or­ga­ni­za­tions like 501(c)(3) be­ing re­placed with the copy­right sym­bol (props randybruder).
  • Added op­tion­al clean up of text copied to clip­board to pre­vent stray hy­phens from show­ing on paste.
  • Added CSS class­es for smart frac­tions (“nu­mer­a­tor”, “de­nom­i­na­tor”) and or­di­nal suf­fix­es (“or­di­nal”).
  • Fixed « and » spac­ing when French punc­tu­a­tion style is enabled.
  • Fixed <title> tag han­dling (no more &shy; and <span> tags, props mpcube).
  • Pre­lim­i­nary API doc­u­men­ta­tion has been added to the plu­g­in website.

3.2.7 — April 142016

  • Du­pli­cate ID” warn­ings should be gone now, re­gard­less of the in­stalled libXML version.

3.2.6 — April 052016

  • Fixed au­toload­ing is­sue on front­page. Sorry!

3.2.5 — April 052016

  • Prop­er­ly han­dle <title> in Word­Press 4.4 or high­er (props TimThemann).
  • Fixed miss­ing pa­ra­me­ter that pre­vent­ed the Hyphenate headings set­ting from work­ing correctly.

3.2.4 — April 042016

  • Fixed fil­ter­ing of <title> tag (do on­ly smart char­ac­ter replacement).

3.2.3 — March 282016

  • Made Sa­fari ren­der­ing bug workaround less ag­gres­sive by not en­abling dis­cre­tionary ligatures.

3.2.2 — March 222016

  • Fixed Sa­fari ren­der­ing bug workaround on Sa­fari 9.1 (Mac OS10.11.4).

3.2.1 — March 202016

  • Ac­ci­den­tal­ly, the fil­ter for the_content was dropped in the ver­sion 3.2.0.

3.2.0 — March 202016

  • Added sup­port for the French punc­tu­a­tion style (thin non-​breakable space be­fore ;:?!).
  • Added prop­er hy­phen­ation of hy­phen­at­ed com­pound words (e.g. editor-​in-​chief).
  • Added par­tial sup­port for styling hang­ing punctuation.
  • Added ad­justable lim­it for the num­ber of cached text fragments.
  • Changed be­hav­ior of caching set­ting: it needs to be ex­plicite­ly en­abled. Hav­ing it on by de­fault caused too many prob­lems on shared host­ing environments.
  • Start­ed adding fil­ters for pro­gram­mat­ic ad­just­ments to the ty­po­graph­ic enhancements.
  • Made main plu­g­in class a sin­gle­ton to en­sure eas­i­er ac­cess for theme developers.
  • Added the wp-​Typography fil­ter to ad­di­tion­al Word­Press hooks and com­plete­ly dis­abled wptexturize (if Smart Character Replacement is enabled).

3.1.3 — Jan­u­ary 132016

  • Pre­vent in­cor­rect re­place­ment of straight quotes with primes (e.g. "number 6" is not re­placed with “num­ber 6 but with “num­ber 6”).
  • Fixed a bug that pre­vent­ed head­er tags (<h1><h6>) that were set as “tags to ig­nore” from ac­tu­al­ly be­ing left alone by the plugin.

3.1.2 — Jan­u­ary 72016

  • Do not cre­ate (most) tran­sients if Disable Caching is set. This pre­vents unchecked data­base growth on large installations.

3.1.1 — Jan­u­ary 52016

  • Fixed fa­tal er­ror when run­ning on PHP 5.3 (use of $this in anony­mous function).

3.1.0 — Jan­u­ary 32016

  • Min­i­mum PHP ver­sion up­dat­ed to 5.3.4 (from 5.3.0) to en­sure con­sis­tent han­dling of UTF8 reg­u­lar expressions.
  • Added workaround for in­sane NextGEN Gallery fil­ter pri­or­i­ty (props Itsacon).
  • Added Clear Cache button.
  • Changed in­ter­nal op­tion names to con­form to Word­Press stan­dards (no camel case).
  • Per­for­mance im­prove­ments through lazy ini­tial­iza­tion and caching of the PHP_Typography ob­ject state.
  • Fixed di­a­crit­ics re­place­ment for UTF8 strings
  • Refac­tored plu­g­in code for eas­i­er maintenance.
  • Date-​like val­ues (e.g. “dur­ing the fis­cal year 2015/​2016”) are not con­vert­ed to smart frac­tions anymore.
  • Added abil­i­ty to switch be­tween dash styles: both tra­di­tion­al US (em dash with­out spac­ing) and in­ter­na­tion­al us­age (en dash with spaces) can be selected.
  • Var­i­ous white-​space fix­es re­lat­ed to dash styling.
  • Lan­guage names in the Settings pan­el are sort­ed cor­rect­ly for all locales.
  • Fixed a bug where block-​level tags where not de­tect­ed corrected.
  • Added workaround for du­pli­cate ID warn­ings gen­er­at­ed by some ver­sions of libXML.
  • Up­dat­ed all hy­phen­ation files and added the fol­low­ing new languages: 
    • Afrikaans,
    • Ar­men­ian,
    • Dutch,
    • Geor­gian,
    • Ger­man (Tra­di­tion­al),
    • Latin (Clas­si­cal),
    • Lat­vian,
    • Thai, and
    • Turk­men.

3.0.4 — De­cem­ber 122015

  • Pre­vent ac­ci­den­tal­ly in­valid XPath queries from be­ing fa­tal on the frontend.
  • Re­placed old FAQ links in the README.

3.0.3 — De­cem­ber 82015

  • Use Word­Press lan­guages packs for translations.
  • Fixed a bug in the XPath ex­pres­sion for ig­nor­ing tags by CSS ID.

3.0.2 — De­cem­ber 32015

  • A ty­po pre­vent­ed cus­tom quote styles from work­ing properly.

3.0.1 — De­cem­ber 32015

  • Pre­vent drop-​down box set­tings from be­ing ac­ci­den­tal­ly over­writ­ten (props Ste­fan Engenhorst).
  • Ear­li­er check for min­i­mum PHP ver­sion to pre­vent a pars­ing er­ror on PHP 5.2 (props Javi).

3.0.0 — De­cem­ber 22015

  • DOM-​based HTML pars­ing with HTML5-​PHP
  • Translation-​ready & Ger­man trans­la­tion added
  • Added Ger­man as a di­a­crit­ics lan­guage (main­ly for French words)
  • Var­i­ous op­ti­miza­tions (hy­phen­ation is still slow, though)
  • Fixed cus­tom hy­phen­ation patterns
  • Fixed some calls to dep­re­cat­ed functions
  • Adopt­ed se­man­tic ver­sion­ing for the project
  • Lan­guage names are trans­lat­ed properly.
  • Ad­di­tion­al unit tests
  • Workaround for Sa­fari font-​rendering bug when words con­tain &shy; (i.e. when hy­phen­ation is enabled)
  • Up­dat­ed pat­tern for valid top-​level do­mains from IANA list
  • Op­tion­al tran­sient caching to speed things up

The list of changes in 3.0.0 sub­sumes the changel­og for 3.0.0‑beta.1 and 3.0.0‑beta.2.

3.0.0‑beta.2 — No­vem­ber 182015

  • Works with PHP 5.3 again (v3.0.0‑beta.1 con­tained some 5.4‑only code).
  • Lan­guage names are trans­lat­ed properly.
  • Var­i­ous small API changes (sta­t­ic meth­ods changed to name­spaced functions)
  • Ad­di­tion­al unit tests

3.0.0‑beta.1 — No­vem­ber 92015

  • DOM-​based HTML pars­ing with HTML5-​PHP
  • Translation-​ready & Ger­man trans­la­tion added
  • Added Ger­man as a di­a­crit­ics lan­guage (main­ly for French words)
  • Var­i­ous op­ti­miza­tions (hy­phen­ation is still slow, though)
  • Fixed cus­tom hy­phen­ation patterns
  • Fixed some calls to dep­re­cat­ed functions
  • Adopt­ed se­man­tic ver­sion­ing for the project

2.0.4 — Jan­u­ary 42011

  • An er­rant “set­tings” link was be­ing in­ject­ed in­to the “Plu­g­ins” page. It has been removed.

2.0.3 — Jan­u­ary 32011

  • Re­moved “text-​rendering: op­ti­mizeLeg­i­bil­i­ty;” from the plug­in’s de­fault CSS rules as a bug in Chrome with this state­ment caus­es all soft-​hyphens to be dis­played through­out the text. This will on­ly cor­rect the set­tings in new down­loads. So, if you have an old­er ver­sion in­stalled, re­move the “* {text-​rendering: op­ti­mizeLeg­i­bil­i­ty;}” state­ment from the “Styling for CSS Hooks” textarea in this plug­in’s op­tions page (the very last field).

2.0.2 — Ju­ly 162010

  • Rolled back ap­pli­ca­tion of wp-​Typography’s ti­tle fil­ter to bloginfo(‘name’) and bloginfo(‘description’) to re­solve con­flicts in­tro­duced with RSS feeds

2.0.1 — Ju­ly 142010

  • Ap­plied wp-​Typography’s ti­tle fil­ter to bloginfo(‘name’) and bloginfo(‘description’)
  • Pre­vent­ed pro­cess­ing of wp_​title() and wp_​post_​title() so that HTML tags do not ap­pear in page title

2.0 — Ju­ly 72010

  • Sim­pli­fied acronym iden­ti­fi­ca­tion to not in­clude some ob­scure up­per­case char­ac­ters. This will re­duce sup­port for some non-​English lan­guages, but it re­solves an is­sue of cat­a­stroph­ic fail­ure (where the en­tire page fails to load) with cer­tain serv­er configurations.
  • Se­cu­ri­ty Fix: Pre­vent­ed com­ments with ex­cep­tion­al­ly long strings from caus­ing fa­tal PHP error.
  • Added *{text-rendering: optimizeLegibility;} to de­fault CSS rules to en­able kern­ing and lig­a­tures in sup­port­ed browsers. Note this will not ap­pear for up­grades, on­ly new installs
  • Up­grad­ed to PHP Ty­pog­ra­phy 2.0

1.22 — March 42010

  • Fixed bug that caused oc­ca­sion­al hy­phen­ation er­rors for non-​English languages.
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.22

1.21.1 — Jan­u­ary 222010

  • Deep­ened font stacks on ad­min page – some spe­cial char­ac­ters were not dis­play­ing on cer­tain sys­tem configurations

1.21 — De­cem­ber 312009

1.20 — De­cem­ber 202009

  • Ver­i­fied com­pat­i­ble with Word­Press 2.9
  • Re­solved unini­tial­ized variable
  • Added HTML5 el­e­ments to pars­ing al­go­rithm for greater con­tex­tu­al awareness
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.20

1.19 — De­cem­ber 12009

  • Fixed bug where dewid­ow func­tion­al­i­ty would add bro­ken no-​break spaces to the end of texts, and smart_​exponents would drop some of the re­sult­ing text.
  • De­clared en­cod­ing in all in­stances of mb_​substr to avoid conflicts
  • Cor­rect­ed a few in­stances of un­de­clared variables.
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.19

1.18 — No­vem­ber 102009

1.17 — No­vem­ber 92009

1.16 — No­vem­ber 42009

  • Added au­to­mat­ed di­a­crit­ic re­place­ments (i.e. “crème brûlée” be­comes “crème brûlée”).
  • Im­proved smart quotes and smart dash­es with sen­si­tiv­i­ty to ad­ja­cent di­a­crit­ic characters.
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.16

1.15 — Oc­to­ber 212009

  • Re­placed quo­ta­tion lan­guage styles with in­di­vid­ual se­lec­tion of pri­ma­ry and sec­ondary quo­ta­tion styles. NOTE: this change re­quires re­s­e­lec­tion of quo­ta­tion styles for any­one us­ing non-​English preferences.
  • Test­ed for Word­Press ver­sion 2.8.5 compatibility.
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.15

1.14 — Sep­tem­ber 82009

  • Im­proved space col­lapse functionality.
  • Cor­rect­ed bug in smart quote and sin­gle char­ac­ter word han­dling where the “0” char­ac­ter may be im­prop­er­ly duplicated
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.14

1.13.1 — Au­gust 312009

  • Clar­i­fied re­quire­ment for PHP mbstring ex­ten­sion, and re­fined a test up­on in­stal­la­tion of the plu­g­in to catch in­ca­pable serv­er environments.
  • Cor­rect­ed de­fault hy­phen­ation lan­guage pat­tern to English (United States).

1.13 — Au­gust 312009

  • Added op­tion to col­lapse ad­ja­cent space char­ac­ters to a sin­gle character
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.13

1.12 — Au­gust 172009

  • Cor­rect­ed multi­byte char­ac­ter han­dling er­ror that could cause some text to not dis­play properly
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.12

1.11 — Au­gust 142009

  • Added lan­guage spe­cif­ic quote han­dling (for sin­gle quotes, not just dou­ble) for Eng­lish, Ger­man and French quo­ta­tion styles
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.11

1.10.1 — Au­gust 142009

  • Left a set­ting in test mode. That is corrected.

1.10 — Au­gust 142009

  • Fixed ty­po in de­fault CSS styles
  • Added lan­guage spe­cif­ic quote han­dling for Eng­lish, Ger­man and French quo­ta­tion styles
  • Cor­rect­ed multi­byte char­ac­ter han­dling er­ror that could cause some text to not dis­play properly
  • Ex­pand­ed the multi­byte char­ac­ter set rec­og­nized as valid word char­ac­ters for im­proved hyphenation
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.10

1.9 — Au­gust 122009

  • Added op­tion to force sin­gle char­ac­ter words to wrap to new line (un­less they are widows).
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.9

1.8.1 — Au­gust 72009

  • Added op­tion­al au­to­mat­ic in­clu­sion of styling of CSS hooks
  • Fixed “Re­store De­faults” con­flict with oth­er plugins

1.8 — Au­gust 42009

  • Cor­rect­ed math and dash han­dling of dates
  • Styling of up­per­case words now plays nice­ly with soft-hyphens
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.8

1.7.2 — Ju­ly 292009

  • Now Word­Press MU compatible
  • Up­dat­ed Op­tions Page to new register_setting() and settings_fields() API

1.7.1 — Ju­ly 292009

  • Up­dat­ed thin space han­dling to be off by de­fault, and up­dat­ed the de­scrip­tion in the ad­min pan­el to warn of rare mis­han­dling in Sa­fari and Chrome.

1.7 — Ju­ly 292009

  • Re­for­mat­ted lan­guage files for in­creased sta­bil­i­ty and to by­pass a false pos­i­tive from Avi­ra’s free an­tivirus software
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.7

1.6 — Ju­ly 282009

  • Ef­fi­cien­cy Op­ti­miza­tions ( ap­prox­i­mate­ly 25% speed increase )
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.6

1.5 — Ju­ly 272009

  • Added the abil­i­ty to ex­clude hy­phen­ation of cap­i­tal­ized (ti­tle case) words to help pro­tect prop­er nouns
  • Added Hun­gar­i­an hy­phen­ation patterns
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.5

1.4 — Ju­ly 232009

1.3 — Ju­ly 232009

  • Re­moved two us­es of create_​function() for im­proved performance
  • Cor­rect­ed many unini­tial­ized variables
  • Cor­rect­ed two vari­ables that were called out of scope
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.3

1.2 — Ju­ly 232009

  • added new 100 char­ac­ter op­tion for max wid­ow length protected
  • added new 100 char­ac­ter op­tion for max pull length for wid­ow protection
  • moved the pro­cess­ing of wid­ow han­dling af­ter hy­phen­ation so that max-​pull would not be com­pared to the length of the ad­ja­cent word, but rather the length of the ad­ja­cent word seg­ment (i.e. that af­ter a soft hyphen)
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.2

1.1 — Ju­ly 222009

  • took ad­van­tage of new fea­ture in PHP Ty­pog­ra­phy 1.1 where we could just set user set­tings with­out first set­ting ph­p­Ty­pog­ra­phy de­faults for a slight per­for­mance improvement.
  • De­cod­ed spe­cial HTML char­ac­ters (for feeds on­ly) to avoid in­valid char­ac­ter in­jec­tion (ac­cord­ing to XM­L’s specs)
  • Up­grad­ed to PHP Ty­pog­ra­phy 1.1

1.0.4 — Ju­ly 202009

  • Added test for curl to avoid bug where ad­min pan­el would not load

1.0.3 — Ju­ly 172009

  • Re­vert­ed use of the hy­phen char­ac­ter to the ba­sic minus-​hyphen in words like “mother-​in-​law” be­cause of poor sup­port in IE6
  • Zero-​width-​space re­moval for IE6 was bro­ken. This is corrected.
  • Clar­i­fied some la­bels in the ad­min interface
  • Sim­pli­fied the ad­min in­ter­face URL

1.0.2 — Ju­ly 162009

  • Fixed smart math han­dling so it can be turned off.
  • Cor­rect­ed smart math han­dling to not con­vert slash­es in URLs to di­vi­sion signs
  • Cor­rect­ed is­sue where some serv­er set­tings were throw­ing a warn­ing in the ad­min pan­el for use of file_get_contents()

1.0.1 — Ju­ly 152009

  • Cor­rect­ed la­bel in ad­min in­ter­face that in­di­cat­ed pret­ty frac­tions were part of ba­sic math handling.

1.0 — Ju­ly 152009

  • Changed de­fault set­tings from all op­tions be­ing en­abled to a min­i­mal set be­ing enabled.
  • Added test to ph­p­Ty­pog­ra­phy meth­ods process() and process_feed() to skip pro­cess­ing if $isTitle pa­ra­me­ter is TRUE and h1 or h2 is an ex­clud­ed HTML tag

1.0 be­ta 9 — Ju­ly 142009

  • Added catch-​all quote han­dling, now any quotes that es­cape pre­vi­ous fil­ters will be as­sumed to be clos­ing quotes
  • A sec­tion of re­source links were added to the wp-​Typography ad­min set­tings page.

1.0 be­ta 8 — Ju­ly 132009

  • Changed thin space in­jec­tion be­hav­ior so that for text such as “…often-always?-judging…”, the sec­ond dash will be wrapped in thin spaces
  • Cor­rect­ed er­ror where frac­tions were not be­ing styled be­cause of a zero-​space in­ser­tion with the wrap hard hy­phens functionality
  • Added de­fault class to ex­clude: noTypo
  • Changed or­der of ad­min page op­tions, mov­ing hy­phen­ation op­tions to­ward the top

1.0 be­ta 7 — Ju­ly 102009

  • Added “/​” as a valid word char­ac­ter so we could cap­ture “this/​that” as a word for pro­cess­ing (sim­i­lar to “mother-​in-​law”)
  • Cor­rect­ed er­ror where char­ac­ters from the Latin 1 Sup­ple­ment Block were not rec­og­nized as word characters
  • Cor­rect­ed smart quote han­dling for strings of numbers
  • Added smart guillemet con­ver­sion: &lt;&lt; and &gt;&gt; to &laquo; and &raquo;
  • Added smart Sin­gle Low 9 Quote con­ver­sion as part of smart quotes: com­ma fol­lowed by non-​space be­comes Sin­gle Low 9 Quote
  • Added Sin­gle Low 9 Quote, Dou­ble Low 9 Quote and » to style_​initial_​character functionality
  • Added a new ph­p­Ty­pog­ra­phy method smart_​math that as­signs prop­er char­ac­ters to mi­nus, mul­ti­pli­ca­tion and di­vi­sion characters
  • De­pre­ci­at­ed the ph­p­Ty­pog­ra­phy method smart_​multiplication in fa­vor of smart_math
  • Cleaned up some smart quote functionality
  • Added abil­i­ty to wrap af­ter “/​” if set_​wrap_​hard_​hyphen is TRUE (like “this/​that”)
  • Ti­tles were not be­ing prop­er­ly processed, this has been corrected

1.0 be­ta 6 — Ju­ly 92009

  • Crit­i­cal bug fix: RSS feeds were be­ing dis­abled by pre­vi­ous ver­sions. This has been corrected.

1.0 be­ta 5 — Ju­ly 82009

  • Cor­rect­ed er­ror where re­quir­ing Em/​En dash thin spac­ing “word-” would be­come “word –” in­stead of “word – ”
  • Cor­rect­ed de­fault settings
  • Al­pha­bet­i­cal­ly sort­ed lan­guages re­turned with get_​languages() method
  • Added a “Re­store De­faults” op­tion to the ad­min page

1.0 be­ta 4 — Ju­ly 72009

  • Added de­fault en­cod­ing val­ue to smart_​quote han­dling to avoid PHP warn­ing messages
  • Dis­abled pro­cess­ing of cat­e­go­ry ti­tles us­ing wp_list_categories()

1.0 be­ta 3 — Ju­ly 62009

  • Cor­rect­ed curl­ing quotes at the end of block lev­el elements
  • Dis­abled pro­cess­ing of page ti­tles (some browsers did not prop­er­ly han­dle soft hy­phens) re­verts to wp-​texturize for titles.

1.0 be­ta 2 — Ju­ly 62009

  • Cor­rect­ed multi­byte char­ac­ter con­flict in smart-​quote han­dling that caused in­fre­quent drop­ping of text
  • Thin space in­jec­tion in­clud­ed for en-dashes

1.0 be­ta 1 — Ju­ly 32009

  • Ini­tial release