Grails и Google PlusOne - PullRequest
       3

Grails и Google PlusOne

2 голосов
/ 24 августа 2011

Код Google PlusOne выглядит следующим образом: <g:plusone size="medium"></g:plusone>

К сожалению, в мире Grails "g:" зарезервировано.

Я считаю, что вы можете изменить библиотеку Grails, но я 'ищу более легкий путь.Как я могу просто попросить Грааля НЕ анализировать эту строку?

Ответы [ 4 ]

3 голосов
/ 28 августа 2011

Я отвечу на свой вопрос и дам кредит Квентину, который прокомментировал вопрос, но не написал ответ (если вы отправите ответ, я выберу вас в качестве правильного ответа).

Тамтакое HTML версия:

<div class="g-plusone" data-size="medium"></div>
1 голос
/ 31 декабря 2011

Или вы можете вывести его в файл gsp следующим образом:

${'<g:plusone annotation="inline" href="http://www.anythinggoeshere_xyz.com"></g:plusone>'}
0 голосов
/ 21 января 2012

основываясь на решении taglib Джеймса Уильямса , я смог отобразить кнопку +1 с помощью этого taglib, который я назвал GooglePlusOneTagLib.grooovy в папке taglib:

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 />
0 голосов
/ 24 августа 2011

Ну, единственное решение, которое у вас есть, это изменить используемую вами taglib.

Если вы используете taglib, единственное, что вам нужно сделать, это добавить статический атрибут с именем namespace с именем, которое вы используете.хочу, как в следующем примере:

static namespace = google1
...