[pmwiki-devel] Embed script immediately after body

Petko Yotov 5ko at 5ko.fr
Sun Sep 5 22:46:01 PDT 2021


On 05/09/2021 22:26, Simon wrote:
> Thanks very much, my wording was very loose.
> 
> The instructions say" Include the JavaScript SDK on your page once, 
> ideally
> right after the opening body tag."

This can be added in the skin template file, right after the opening 
body tag.

Alternatively, you may want to create a markup rule and place that in 
your GroupHeader page. It will not be right after the opening <body> tag 
but close, and will be more configurable from within the wiki.

Their SDK script has the attributes "async" and "defer", that means it 
is run in very low priority, and not at any precise point in time.

I see that you can embed the posts in a simpler iframe, see attached 
screenshot. It may be easier to maintain this way, and no need for the 
full SDK.

Something like this may work:

   Markup('fbpost', 'directives', '/\\(:fbpost (.*?):\\)/', 'FmtFBPost');
   function FmtFBPost($m) {
     $fmt = '<iframe 
src="https://www.facebook.com/plugins/post.php?href='
     . '{$url}&width=500&show_text=true&height=273&appId"
     width="500" height="273" style="border:none;overflow:hidden"
     scrolling="no" frameborder="0" allowfullscreen="true"
     allow="clipboard-write; encrypted-media; picture-in-picture; 
web-share">'
     .'</iframe>';

     $url = trim($m[1]));
     $html = str_replace('{$url}', rawurlencode($url), $fmt);
     return Keep($html);
   }

Then in a wiki page, you use:

    (:fbpost https://[full url of the post]:)

 From their example, I only escaped the special character & to & and 
removed the "autoplay" permission. You can probably start from here.

Petko

> On Mon, 6 Sept 2021 at 05:04, Petko Yotov <5ko at 5ko.fr> wrote:
> 
>> On 05/09/2021 11:10, Simon wrote:
>> > Does PmWiki have the ability to specify scripts to be added to a page
>> > directly after the body tag?
>> 
>> $HTMLFooterFmt is intended for this:
>> 
>>    $HTMLFooterFmt['my-recipe'] =
>>      '<script src="$FarmPubDirUrl/my-recipe.js"></script>';
>> 
>> Or possibly, if you want to allow customization:
>> 
>>    SDVA($HTMLFooterFmt, array('my-recipe' => '<script ...>'));
>> 
>> 
>> BTW, this is not added "after" the </body> tag but just before it. 
>> After
>> it would be invalid HTML.
>> 
>> Petko
>> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fb-SocialPlugins-iframe.png
Type: image/png
Size: 58592 bytes
Desc: not available
URL: <http://www.pmichaud.com/pipermail/pmwiki-devel/attachments/20210906/df1326d3/attachment-0001.png>


More information about the pmwiki-devel mailing list