GooglePlusOneコードは次のようになります。<g:plusone size="medium"></g:plusone>
残念ながら、Grailsの世界では、「g:」は予約されています。
Grailsライブラリを変更できると思いますが、もっと簡単な方法を探しています。この文字列を解析しないようにGrailsに単純に依頼するにはどうすればよいですか?
GooglePlusOneコードは次のようになります。<g:plusone size="medium"></g:plusone>
残念ながら、Grailsの世界では、「g:」は予約されています。
Grailsライブラリを変更できると思いますが、もっと簡単な方法を探しています。この文字列を解析しないようにGrailsに単純に依頼するにはどうすればよいですか?
私は自分の質問に答え、質問にコメントしたが答えを書かなかったクエンティンにクレジットを与えます(あなたが答えを投稿した場合、私はあなたを正解として選択します)。
HTMLバージョンがあります:
<div class="g-plusone" data-size="medium"></div>
または、gspファイルに次のように出力することもできます。
${'<g:plusone annotation="inline" href="http://www.anythinggoeshere_xyz.com"></g:plusone>'}
さて、あなたが持っている唯一の解決策はあなたが使用しているtaglibを変更することです。
taglibを使用している場合は、次の例のように、名前空間という名前の静的属性を必要な名前で追加するだけです。
static namespace = google1
James Williamsによるtaglibソリューションに基づいて、このtaglibを使用して+1ボタンをレンダリングすることができました。これは、taglibフォルダーでGooglePlusOneTagLib.grooovyという名前を付けました。
class GooglePlusOneTagLib {
def plusone = { attrs, body ->
out << "<g:plusone "+(attrs.size ? "size=${attrs.size}" : "") +"></g:plusone>"
}
def plusoneScript = { attrs, body ->
out << '''<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>'''
}
}
次に、これらのタグをgspで使用します
<g:plusone size="medium"></g:plusone>
<g:plusoneScript />