0

最近、チャット セクションで、ブックマークを使用すると LaTeX をレンダリングできることを知りました。

http://meta.math.stackexchange.com/a/3297

stackexchange サイトはすべてコードをレンダリングしますlike this。`` の間にあるものはすべてコードとしてレンダリングされます。

この機能は非常に便利で便利だと思います。stackexchange サイトでこれを行う JavaScript を取得し、ここにある mathjax ブックマークのようにブックマークとして配置する方法を誰かが知っているかどうか疑問に思っていました。

http://www.math.ucla.edu/~robjohn/math/mathjax.html

そうすれば、Facebook や他のサイトでバッククォート エスケープを使用して何かを記述した場合、renderCode というブックマークをクリックするだけで、JavaScript はこのサイトで行っているのと同じことを実行します。

これが以前に尋ねられたかどうか、および/またはこれを達成する方法を知っている人はいますか? ありがとう

4

1 に答える 1

2

ここから始めましょう:

var replacer = function(s, match) {return "<code>" + match + "</code>";};

"some `delimited` code `sections` here". replace(/`([^`]*)`/g, replacer);
    // ==> "some <code>delimited</code> code <code>sections</code> here"

"< code >" と "< /code >" の代わりに好きなマークアップを使用して、好きな効果を作成できます。

次のような関数を使用することもできます。

processTextNodes = function(element, fn) {
    var children = element.childNodes;
    for (var i = 0; i < children.length; i++) {
        var node = children[i];
        var type = node.nodeType;
        if (type == 1) processTextNodes(node, fn);
        if (type == 3) fn.call(this, node);
    }
}

このような:

processTextNodes(someElement, function(node) {
    node.value = node.value.replace(/`([^`]*)`/g, replacer);
});

これを要素内のすべてのテキスト ノードに適用するため。

これをブックマークに変えて、適切な要素を見つける方法を見つけなければなりません。出力を好きなように表示するには、マークアップと CSS が必要です。しかし、これは良いスタートかもしれません。

于 2012-07-15T02:08:45.883 に答える