/var/www/hkosl.com/aga/wp-content/plugins/jetpack/modules/latex.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/**
 * Module Name: Beautiful Math
 * Module Description: Use the LaTeX markup language to write mathematical equations and formulas
 * Sort Order: 12
 * First Introduced: 1.1
 * Requires Connection: No
 * Auto Activate: No
 * Module Tags: Writing
 * Feature: Writing
 * Additional Search Queries: latex, math, equation, equations, formula, code
 */

/**
 * LaTeX support.
 *
 * Backward compatibility requires support for both "[latex][/latex]", and
 * "$latex $" shortcodes.
 *
 * $latex e^{\i \pi} + 1 = 0$  ->  [latex]e^{\i \pi} + 1 = 0[/latex]
 * $latex [a, b]$              ->  [latex][a, b][/latex]
 */

function latex_markup$content ) {
    
$textarr wp_html_split$content );
    
    
$regex '%
        \$latex(?:=\s*|\s+)
        ((?:
            [^$]+ # Not a dollar
        |
            (?<=(?<!\\\\)\\\\)\$ # Dollar preceded by exactly one slash
        )+)
        (?<!\\\\)\$ # Dollar preceded by zero slashes
    %ix'
;
    
    foreach ( 
$textarr as &$element ) {
        if ( 
'' == $element || '<' === $element[0] ) {
            continue;
        }

        if ( 
false === stripos$element'$latex' ) ) {
            continue;
        }

        
$element preg_replace_callback$regex'latex_src'$element );
    }

    return 
implode''$textarr );
}

function 
latex_src$matches ) {
    
$latex $matches[1];

    
$bg latex_get_default_color'bg' );
    
$fg latex_get_default_color'text''000' );
    
$s 0;


    
$latex latex_entity_decode$latex );
    if ( 
preg_match'/.+(&fg=[0-9a-f]{6}).*/i'$latex$fg_matches ) ) {
        
$fg substr$fg_matches[1], );
        
$latex str_replace$fg_matches[1], ''$latex );
    }
    if ( 
preg_match'/.+(&bg=[0-9a-f]{6}).*/i'$latex$bg_matches ) ) {
        
$bg substr$bg_matches[1], );
        
$latex str_replace$bg_matches[1], ''$latex );
    }
    if ( 
preg_match'/.+(&s=[0-9-]{1,2}).*/i'$latex$s_matches ) ) {
        
$s = (int) substr$s_matches[1], );
        
$latex str_replace$s_matches[1], ''$latex );
    }

    return 
latex_render$latex$fg$bg$s );
}

function 
latex_get_default_color$color$default_color 'ffffff' ) {
    global 
$themecolors;
    return isset(
$themecolors[$color]) ? $themecolors[$color] : $default_color;
}

function 
latex_entity_decode$latex ) {
    return 
str_replace( array( '&lt;''&gt;''&quot;''&#039;''&#038;''&amp;'"\n""\r" ), array( '<''>''"'"'"'&''&'' '' ' ), $latex );
}

function 
latex_render$latex$fg$bg$s ) {
    
$url "//s0.wp.com/latex.php?latex=" urlencode$latex ) . "&bg=" $bg "&fg=" $fg "&s=" $s;
    
$url esc_url$url );
    
$alt str_replace'\\''&#92;'esc_attr$latex ) );

    return 
'<img src="' $url '" alt="' $alt '" title="' $alt '" class="latex" />';
}

/**
 * The shortcode way. The attributes are the same as the old ones - 'fg' and 'bg', instead of foreground
 * and background, and 's' is for the font size.
 *
 * Example: [latex s=4 bg=00f fg=ff0]\LaTeX[/latex]
 */
function latex_shortcode$atts$content '' ) {
    
extractshortcode_atts( array(
        
's' => 0,
        
'bg' => latex_get_default_color'bg' ),
        
'fg' => latex_get_default_color'text''000' )
    ), 
$atts'latex' ) );

    return 
latex_renderlatex_entity_decode$content ), $fg$bg$s );
}

/**
 * LaTeX needs to be untexturized
 */
function latex_no_texturize$shortcodes ) {
    
$shortcodes[] = 'latex';
    return 
$shortcodes;
}

add_filter'no_texturize_shortcodes''latex_no_texturize' );

add_filter'the_content''latex_markup'); // before wptexturize
add_filter'comment_text''latex_markup'); // before wptexturize
add_shortcode'latex''latex_shortcode' );