PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 8.6.1
Jetpack – WP Security, Backup, Speed, & Growth v8.6.1
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / modules / latex.php
jetpack / modules Last commit date
calypsoify 6 years ago carousel 6 years ago comment-likes 7 years ago comments 6 years ago contact-form 6 years ago custom-css 6 years ago custom-post-types 6 years ago geo-location 6 years ago google-analytics 6 years ago infinite-scroll 6 years ago lazy-images 6 years ago likes 6 years ago markdown 6 years ago masterbar 6 years ago memberships 6 years ago photon 6 years ago photon-cdn 6 years ago plugin-search 7 years ago post-by-email 6 years ago protect 6 years ago publicize 6 years ago pwa 6 years ago related-posts 6 years ago scan 6 years ago search 6 years ago seo-tools 6 years ago sharedaddy 6 years ago shortcodes 6 years ago simple-payments 6 years ago site-icon 6 years ago sitemaps 6 years ago sso 6 years ago subscriptions 6 years ago theme-tools 6 years ago tiled-gallery 6 years ago verification-tools 6 years ago videopress 6 years ago widget-visibility 6 years ago widgets 6 years ago woocommerce-analytics 6 years ago wordads 6 years ago wpcom-block-editor 6 years ago wpcom-tos 6 years ago .eslintrc.js 6 years ago after-the-deadline.php 7 years ago carousel.php 7 years ago comment-likes.php 6 years ago comments.php 6 years ago contact-form.php 7 years ago copy-post.php 6 years ago custom-content-types.php 6 years ago custom-css.php 7 years ago enhanced-distribution.php 9 years ago geo-location.php 7 years ago google-analytics.php 8 years ago gravatar-hovercards.php 6 years ago infinite-scroll.php 6 years ago json-api.php 9 years ago latex.php 6 years ago lazy-images.php 6 years ago likes.php 6 years ago markdown.php 9 years ago masterbar.php 7 years ago minileven.php 6 years ago mobile-push.php 10 years ago module-extras.php 6 years ago module-headings.php 6 years ago module-info.php 6 years ago monitor.php 6 years ago notes.php 6 years ago photon-cdn.php 6 years ago photon.php 6 years ago plugin-search.php 6 years ago post-by-email.php 6 years ago protect.php 6 years ago publicize.php 6 years ago pwa.php 6 years ago related-posts.php 7 years ago search.php 6 years ago seo-tools.php 7 years ago sharedaddy.php 6 years ago shortcodes.php 6 years ago shortlinks.php 7 years ago sitemaps.php 7 years ago sso.php 6 years ago stats.php 6 years ago subscriptions.php 6 years ago theme-tools.php 6 years ago tiled-gallery.php 7 years ago vaultpress.php 7 years ago verification-tools.php 7 years ago videopress.php 7 years ago widget-visibility.php 7 years ago widgets.php 7 years ago woocommerce-analytics.php 6 years ago wordads.php 7 years ago wpgroho.js 6 years ago
latex.php
123 lines
1 <?php
2 /**
3 * Module Name: Beautiful Math
4 * Module Description: Use the LaTeX markup language to write mathematical equations and formulas
5 * Sort Order: 12
6 * First Introduced: 1.1
7 * Requires Connection: No
8 * Auto Activate: No
9 * Module Tags: Writing
10 * Feature: Writing
11 * Additional Search Queries: latex, math, equation, equations, formula, code
12 */
13
14 /**
15 * LaTeX support.
16 *
17 * Backward compatibility requires support for both "[latex][/latex]", and
18 * "$latex $" shortcodes.
19 *
20 * $latex e^{\i \pi} + 1 = 0$ -> [latex]e^{\i \pi} + 1 = 0[/latex]
21 * $latex [a, b]$ -> [latex][a, b][/latex]
22 */
23
24 function latex_markup( $content ) {
25 $textarr = wp_html_split( $content );
26
27 $regex = '%
28 \$latex(?:=\s*|\s+)
29 ((?:
30 [^$]+ # Not a dollar
31 |
32 (?<=(?<!\\\\)\\\\)\$ # Dollar preceded by exactly one slash
33 )+)
34 (?<!\\\\)\$ # Dollar preceded by zero slashes
35 %ix';
36
37 foreach ( $textarr as &$element ) {
38 if ( '' == $element || '<' === $element[0] ) {
39 continue;
40 }
41
42 if ( false === stripos( $element, '$latex' ) ) {
43 continue;
44 }
45
46 $element = preg_replace_callback( $regex, 'latex_src', $element );
47 }
48
49 return implode( '', $textarr );
50 }
51
52 function latex_src( $matches ) {
53 $latex = $matches[1];
54
55 $bg = latex_get_default_color( 'bg' );
56 $fg = latex_get_default_color( 'text', '000' );
57 $s = 0;
58
59
60 $latex = latex_entity_decode( $latex );
61 if ( preg_match( '/.+(&fg=[0-9a-f]{6}).*/i', $latex, $fg_matches ) ) {
62 $fg = substr( $fg_matches[1], 4 );
63 $latex = str_replace( $fg_matches[1], '', $latex );
64 }
65 if ( preg_match( '/.+(&bg=[0-9a-f]{6}).*/i', $latex, $bg_matches ) ) {
66 $bg = substr( $bg_matches[1], 4 );
67 $latex = str_replace( $bg_matches[1], '', $latex );
68 }
69 if ( preg_match( '/.+(&s=[0-9-]{1,2}).*/i', $latex, $s_matches ) ) {
70 $s = (int) substr( $s_matches[1], 3 );
71 $latex = str_replace( $s_matches[1], '', $latex );
72 }
73
74 return latex_render( $latex, $fg, $bg, $s );
75 }
76
77 function latex_get_default_color( $color, $default_color = 'ffffff' ) {
78 global $themecolors;
79 return isset($themecolors[$color]) ? $themecolors[$color] : $default_color;
80 }
81
82 function latex_entity_decode( $latex ) {
83 return str_replace( array( '&lt;', '&gt;', '&quot;', '&#039;', '&#038;', '&amp;', "\n", "\r" ), array( '<', '>', '"', "'", '&', '&', ' ', ' ' ), $latex );
84 }
85
86 function latex_render( $latex, $fg, $bg, $s = 0 ) {
87 $url = "//s0.wp.com/latex.php?latex=" . urlencode( $latex ) . "&bg=" . $bg . "&fg=" . $fg . "&s=" . $s;
88 $url = esc_url( $url );
89 $alt = str_replace( '\\', '&#92;', esc_attr( $latex ) );
90
91 return '<img src="' . $url . '" alt="' . $alt . '" title="' . $alt . '" class="latex" />';
92 }
93
94 /**
95 * The shortcode way. The attributes are the same as the old ones - 'fg' and 'bg', instead of foreground
96 * and background, and 's' is for the font size.
97 *
98 * Example: [latex s=4 bg=00f fg=ff0]\LaTeX[/latex]
99 */
100 function latex_shortcode( $atts, $content = '' ) {
101 extract( shortcode_atts( array(
102 's' => 0,
103 'bg' => latex_get_default_color( 'bg' ),
104 'fg' => latex_get_default_color( 'text', '000' )
105 ), $atts, 'latex' ) );
106
107 return latex_render( latex_entity_decode( $content ), $fg, $bg, $s );
108 }
109
110 /**
111 * LaTeX needs to be untexturized
112 */
113 function latex_no_texturize( $shortcodes ) {
114 $shortcodes[] = 'latex';
115 return $shortcodes;
116 }
117
118 add_filter( 'no_texturize_shortcodes', 'latex_no_texturize' );
119
120 add_filter( 'the_content', 'latex_markup', 9 ); // before wptexturize
121 add_filter( 'comment_text', 'latex_markup', 9 ); // before wptexturize
122 add_shortcode( 'latex', 'latex_shortcode' );
123