Fontstats Plugin

Today I finished a little WordPress plugin I’ve been working on.

It’s a two part plugin, one php script collects data from any Norwegian designer on DaFont by visiting each site, and by the power of Regex-Grayskull it inserts it into a database on my website.

The WordPress plugin then selects the last sampled date and displays it in a HTML-table on any post or page where I insert the registered shortcode.

Here’s the result:

No.DownloadsDesignerDate SampledCountry
1103892827Måns Grebäck2018-06-20Sweden
222314418Pizzadude - Jakob Fischer2018-06-20Denmark
34459626Johan Waldenström2018-06-20Sweden
43374749Mr.fisk Fonts - Mike Larsson2018-06-20Sweden
53207765Fontourist - Hans Gerhard Meier2018-06-20Norway
63177631Carl Krull2018-06-20Denmark
72686023Listemageren - Klaus Johansen2018-06-20Denmark
82497831Johan Aakerlund2018-06-20Denmark
92364271CheapProFonts - Roger S. Nelsson2018-06-20Norway
111245929Flight of the Dragon - Hasan Guven2018-06-20Norway
121033442Christian Munk2018-06-20Denmark
13710330Your Own Font - Ellinor Rapp2018-06-20Sweden
14547420Vinterstille TypeFaceLab - Klaus Nielsen2018-06-20Denmark
15521459Adam Ericsson2018-06-20Sweden
17472594Viktor Hammarberg2018-06-20Sweden
18427638Moonbase Press - Svein Kåre Gunnarson2018-06-20Norway
19404483Espen Morten Kvalheim2018-06-20Norway
20348068Staffan Vilcans2018-06-20Sweden
21316580Martin Holm2018-06-20Norway
22312435Jonas Borneland Hansen2018-06-20Denmark
23301200Thor Christopher Arisland2018-06-20Norway
24232271Norwegian Ink / Design for Dough - Frode Nordbø2018-06-20Norway
25204023Anton - Anton Lundström2018-06-20Sweden
26203324David Engelby2018-06-20Denmark
27196948dawnland - Daniel Viberg2018-06-20Sweden
28173191211178 Creative Agency - Morten Talleivsen2018-06-20Norway
29131218Martin Sørensen2018-06-20Denmark
3189285Joaquim Marquès Nielsen2018-06-20Denmark
3288643Andreas Larsen2018-06-20Denmark
3387377Nils Kähler2018-06-20Denmark
3482373Pär Lundkvist2018-06-20Sweden
3580095Anton Bohlin2018-06-20Sweden
3675391Digital Flame Studios - sindre små2018-06-20Norway
3862211huskmelk - Rashid Akrim2018-06-20Norway
3960289Kyrre Honohan2018-06-20Norway
4054631Pia Hed Aspell2018-06-20Sweden
4152733Nadia Rosenfeldt2018-06-20Denmark
4251084Linn Mustanoja2018-06-20Sweden
4348458Lars Håhus2018-06-20Sweden
4443374ronjam - Ronja Melcker2018-06-20Sweden
4540511Atle Mo2018-06-20Norway
4635728Erik Jeddere-Fisher2018-06-20Norway
4831792benjamin rauber2018-06-20Sweden
4930214Arman Ay2018-06-20Sweden
5026798Mark Lund2018-06-20Norway
5225732Andrew Nordquist2018-06-20Sweden
5325604Botond Bokor2018-06-20Sweden
5425538Dan Thorup2018-06-20Denmark
5524350Aske Ching2018-06-20Denmark
5720533Bull - Sandra Madsen2018-06-20Denmark
5820114David Lindecrantz2018-06-20Sweden
5920091Henrik Johansson2018-06-20Sweden
6019733Kristian Dalen2018-06-20Norway
6119730Erik Holm2018-06-20Norway
6219452Carl Enlund2018-06-20Sweden
6316900Mandy Pandy2018-06-20Sweden
6414417Christian Koch2018-06-20Denmark
6512824Alexander Rossebø2018-06-20Norway
6612474Johan Brodd2018-06-20Sweden
6711047Viktor Örneland2018-06-20Sweden
689422Mathias Alvebring2018-06-20Sweden
717486Mathias Rue2018-06-20Denmark
726803Manuela Hardy2018-06-20Norway
746443Sara Lindberg2018-06-20Sweden
756359Gröt Havregrynsson2018-06-20Sweden
766245Mattis Folkestad2018-06-20Norway
776152Studio Indigo - Helena Öhman2018-06-20Sweden
785361Oliver Waldemar2018-06-20Sweden
794855Simon Jakobsson2018-06-20Sweden
804163KingDGaming - Elias Eriksson2018-06-20Sweden

Regex 101

Today I received an email from the store I used to work at asking me to make a printer friendly version of an online table of information.

As I learned more about regular expressions from the “INF3331” course I took this fall, solving this problem proved to be way easier than any previous attempts at the likes of it.

At times I’ve thought that regexes are harder to read and debug than ordinary programming languages, but with a good editor like Atom or the regex101 page, it all became a lot less stressful.

As far as editors go, I have to admit that I still use emacs when I’m not using an IDE or GUI-editor.

Note to self about regular expressions.

(.*?) to capture zero or more characters in a non-greedy manner

(?:.*?) for the same grouping without backreferences.

$1 or $[group-number] for backreferences in JavaScript and Atom

\1 or \[group-number] for backreferences in Python, PHP.

Perl and PHP also uses \g1 or \g[group-number] for backreferences.

The following characters need to be escaped in regex: