Jump to content

Super Smartypants


Pierre-Luc
 Share

Recommended Posts

Super Smartypants is a ProcessWire textformatter module which adds support for languages. It also allows you to set the different Smartypants Typographer parser attributes to customize which rules apply and fixes some bugs.

Super Smartypants requires the language module.

Usage

 
After installation, add /site/modules/TextformatterSuperSmartypants/smartypants.php to your language translations.
 
To enable Super Smartypants for a language, set the Smartypants attributes field to 1 (or see below for details), otherwise to disable leave the field empty.
 
Change default strings according to your masterful typographic knowledge.

Documentation and downloadhttps://github.com/plauclair/SuperSmartypants

  • Like 11
Link to comment
Share on other sites

Very cool and right in time! - I was just about to hacking the original code to make it work in German.

Your solution, using language translation files, is VERY SMART. - Works well so far (tested with PW dev, German/English).

Thank you very much for this contribution!

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

@Pierre-Luc

thanks for this module!

i'll try to remove spacing before a colon, but i can't get it to work.

In my test textarea i have the following text:

Lorem ipsum : dolor sit amet.

I want to remove the space before the colon, but i don't know how. When i enter a minus sign (-) in the input "Space before a colon (default:  )" i get the following output:

Lorem ipsum-: dolor sit amet.

The space is gone, but instead i got the minus.

What do i have to insert there to only remove the space. I read the documentation a dozen times, but i can't get it right.

Thanks!

Link to comment
Share on other sites

You need to set the parser attributes explicitely for this. Entering a minus in the "Space before a colon" field just replaces the space character before the colon with a new character (you would usually use it to change the space type, for forcing a non-breaking or a thin space for example, but it can take any character), this is why you're getting a - in your text. The documentation on GitHub tells how to do this, let me know if part of it is unclear.

Link to comment
Share on other sites

You need to set the parser attributes explicitely for this.

I think, this is the part, that is unclear to me …

I entered "1" in the first field. 

What would be the setup to remove spaces before a colon? I think it would be clearer, if i had an example for this.

It's probably easy as pie, but i can't get it to work …   :huh:

thanks!

Link to comment
Share on other sites

I see, the 1 you insert is a preset, but it doesn't have the "remove spaces before colons" turned on by default. You need to replace the 1 preset with all the individual parser attributes you want, so it might look something like : 

qDe:-;-

  • Like 1
Link to comment
Share on other sites

Super Smartypants is a ProcessWire textformatter module which adds support for languages. It also allows you to set the different Smartypants Typographer parser attributes to customize which rules apply and fixes some bugs.

Hi Pierre-Luc,

it was a good idea to enhance Ryans module from 2011 with language translations. Thank you for this.

There is a more current smartypants.php file available from the smartypants developer, who fixed some minor bugs. The direct link is:

https://littoral.michelf.ca/code/php-smartypants/php-smartypants-typographer-1.0.1.zip

Maybe you would like to consider this?

Link to comment
Share on other sites

Hi Pierre-Luc,

it was a good idea to enhance Ryans module from 2011 with language translations. Thank you for this.

There is a more current smartypants.php file available from the smartypants developer, who fixed some minor bugs. The direct link is:

https://littoral.michelf.ca/code/php-smartypants/php-smartypants-typographer-1.0.1.zip

Maybe you would like to consider this?

I'll look at merging the changes from 1.0.1., but they seem very minor (unless the revision notes don't tell the whole thing).

  • Fixed handling of HTML comments to match latest HTML specs instead of doing it the old SGML way.

  • Lowered WordPress filtering priority to avoid clashing with the [caption] tag filter. Thanks to Mehdi Kabab for the fix.

Link to comment
Share on other sites

  • 1 year later...

Is the support for very old php versions still needed?

With PHP7 in strict mode, I now receive 2 notices:

Methods with the same name as their class will not be constructors in a future version of PHP

Changing 3 lines of code to using __construct instead fixed the notices for me, I think.

 

Link to comment
Share on other sites

On 2016-07-20 at 5:16 PM, bernhard said:

sorry if this is a dumb question, but what does this module do? i don't understand it from the docs here and on github...

It replaces some typographic marks with better ones depending on context. 

  • Like 1
Link to comment
Share on other sites

On 2016-07-19 at 3:27 PM, ceberlin said:

Is the support for very old php versions still needed?

With PHP7 in strict mode, I now receive 2 notices:

Methods with the same name as their class will not be constructors in a future version of PHP

Changing 3 lines of code to using __construct instead fixed the notices for me, I think.

 

What do you mean by very old? Many of the later 5.x releases are now EOL or simply unsupported anymore. I haven't done much housekeeping on the plugin for a while, the original smartypants code needs a good code review..

Link to comment
Share on other sites

3 hours ago, Pierre-Luc said:

What do you mean by very old? Many of the later 5.x releases are now EOL or simply unsupported anymore. I haven't done much housekeeping on the plugin for a while, the original smartypants code needs a good code review..

Well, the module works flawlessly so far (and REALLY helps to produce nice looking content!!!!).

With the small code change to "__construct" it is also working here with PHP7 without throwing notices any more.

Link to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...