Giter Site home page Giter Site logo

mikahanninen / grav-plugin-facebook Goto Github PK

View Code? Open in Web Editor NEW
16.0 6.0 12.0 2.31 MB

Facebook plugin for Grav CMS https://github.com/getgrav/grav

License: MIT License

CSS 38.02% PHP 10.72% HTML 1.36% JavaScript 49.90%
grav facebook-plugin feed grav-plugin facebook-post facebook-album

grav-plugin-facebook's Introduction

Grav Facebook Plugin

Facebook is a simple [Grav][grav] Plugin that includes your Facebook page content to your Grav website. Plugin can be used to get any public Facebook page content.

Posts example

Events example

Album example

Installation

Installing the Facebook plugin can be done in one of two ways. Using GPM (Grav Package Manager) installation method enables you to quickly and easily install the plugin with a simple terminal command, while the manual method enables you to do so via a zip file.

GPM Installation (Preferred)

The simplest way to install this plugin is via the Grav Package Manager (GPM) through your system's Terminal (also called the command line). From the root of your Grav install type:

bin/gpm install facebook

This will install the Instagram plugin into your /user/plugins directory within Grav. Its files can be found under /your/site/grav/user/plugins/facebook.

Manual Installation

To install this plugin, just download the zip version of this repository and unzip it under /your/site/grav/user/plugins. Then, rename the folder to facebook. You can find these files either on GitHub or via GetGrav.org.

You should now have all the plugin files under

/your/site/grav/user/plugins/facebook

Configuration

You need to provide few configurations in order for the feed show up. In your Grav Administration panel, go to Plugins > Facebook to view the plugin configuration page.

Enter the Facebook page_id which feed you want to show, and your Facebook API application_id and application_secret.

For more information how to get application set up, see the Facebook Developers documentation.

Customization

To customize how the your feed looks like, you might want to customize the generated markup. To do that, copy the template file facebook.html.twig to your templates/partials folder of your theme. For example:

/your/site/grav/user/themes/custom-theme/templates/partials/facebook.html.twig

It will now override the default markup of the feed. You can tweak it however you like.

Config Defaults

If you need to override some plugin default values, the best practise is to copy the facebook.yaml file into your users/config/plugins/ folder (create it if it doesn't exist), and then modify there. This will override the default settings.

Facebook page_id can be found with service like Find your Facebook ID.

Getting Facebook Posts

You simply need to include a function your template file such as:

{{ facebook_posts() }}

This will be converted into your Facebook posts as follows:

<div id='facebook-posts'>
{{ sectionTitle }}
  <div class='facebook-post'>
    <a href='{{ post.link }}' title='Facebook post'>
    <i class="fa fa-envelope post-icon" aria-hidden='true'></i><h4 class='media-heading'>{{ post.time }}</h4>
    <p>{{ post.message }}</p>
    {{ post.image }}
    </a>
  </div>
  ...
</div>

Filtering by tags

You can filter Facebook posts by tags function parameter or with config parameter Tag filter.

{{ facebook_posts('#MySpecialTag') }}

Getting Facebook Events

You simply need to include a function your template file such as:

{{ facebook_events() }}

This will be converted into your Facebook events as follows:

<div id='facebook-events'>
{{ sectionTitle }}
<table>
  <tr class='facebook-event'>
    <td class='start-date'>
      <span class='month'>{{ event.start_time.monthName }}</span>
      <span class='day'>{{ event.start_time.day }}</span>
    </td>
    <td class='details'>
      <span class='name'>{{ event.name }}</span><span class='location'>{{ event.place }}</span>
      <span class='period'>{{ event.period }}</span>
    </td>
  </tr>
  ...
</table>
</div>

Getting Facebook Album

You simply need to include a function your template file such as:

{{ facebook_album() }}

In the above 'album.name' is set at plugin configuration. Or you can give album name as function parameter like this:

{{ facebook_album('My Greatest Album') }}

This will be converted into your Facebook album as follows:

<div id='facebook-gallery'>
<h5>Album: {{ album.name }}</h5>
<div id='facebook-gallery-photos'>
    <img src="{{ photo.source }}" width=300 height=200/>
    ...
</div>
</div>

The Unitegallery jQuery plugin

Unite gallery can be used to display album photos and its theme can be set from the plugin configuration.

grav-plugin-facebook's People

Contributors

hughbris avatar loopion avatar mikahanninen avatar th0rgall avatar vasilyrud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

grav-plugin-facebook's Issues

Error on displaying Events

Hello,
just integrated this Plugin in a Website, displaying Posts works fine, but when i try to display Events i got a Server Error. Here is the Log:

[2017-07-06 17:13:00] grav.CRITICAL: An exception has been thrown during the rendering of a template ("Object of class stdClass could not be converted to string") in "@Page:/webspace/03/22650/website.de/user/pages/test" at line 1. - Trace: #0 /webspace/03/22650/website.de/vendor/twig/twig/lib/Twig/Template.php(403): Twig_Template->displayWithErrorHandling(Array, Array) #1 /webspace/03/22650/website.de/vendor/twig/twig/lib/Twig/Template.php(411): Twig_Template->display(Array) #2 /webspace/03/22650/website.de/vendor/twig/twig/lib/Twig/Environment.php(362): Twig_Template->render(Array) #3 /webspace/03/22650/website.de/system/src/Grav/Common/Twig/Twig.php(246): Twig_Environment->render('@Page:/webspace...', Array) #4 /webspace/03/22650/website.de/system/src/Grav/Common/Page/Page.php(747): Grav\Common\Twig\Twig->processPage(Object(Grav\Common\Page\Page), '{{ facebook_eve...') #5 /webspace/03/22650/website.de/system/src/Grav/Common/Page/Page.php(631): Grav\Common\Page\Page->processTwig() #6 /webspace/03/22650/website.de/system/src/Grav/Common/Twig/Twig.php(324): Grav\Common\Page\Page->content() #7 /webspace/03/22650/website.de/system/src/Grav/Common/Service/OutputServiceProvider.php(19): Grav\Common\Twig\Twig->processSite('html') #8 /webspace/03/22650/website.de/vendor/pimple/pimple/src/Pimple/Container.php(113): Grav\Common\Service\OutputServiceProvider->Grav\Common\Service\{closure}(Object(Grav\Common\Grav)) #9 /webspace/03/22650/website.de/system/src/Grav/Common/Processors/RenderProcessor.php(18): Pimple\Container->offsetGet('output') #10 /webspace/03/22650/website.de/system/src/Grav/Common/Grav.php(126): Grav\Common\Processors\RenderProcessor->process() #11 /webspace/03/22650/website.de/system/src/Grav/Common/Grav.php(368): Grav\Common\Grav->Grav\Common\{closure}() #12 [internal function]: Grav\Common\Grav::Grav\Common\{closure}('render', 'Render', Object(Closure)) #13 /webspace/03/22650/website.de/system/src/Grav/Common/Grav.php(344): call_user_func_array(Object(Closure), Array) #14 /webspace/03/22650/website.de/system/src/Grav/Common/Grav.php(127): Grav\Common\Grav->__call('measureTime', Array) #15 /webspace/03/22650/website.de/index.php(52): Grav\Common\Grav->process() #16 {main} [] []

Error exception after uploading website

Hi, i have an exception error in my website because of the facebook plugin, the site worked well on local so idk what to do.
Error :
Twig_Error_Runtime
An exception has been thrown during the rendering of a template ("Error while trying to download (code: ): https://graph.facebook.com/365629806913420/events?fields=cover,start_time,end_time,name,description,place&access_token=116665442264946|3b4dfcc2640764204467232871911fb8 ") in "@page:/users/user323728/sites/cercledor.fr/user/pages/01.accueil/04._evenements" at line 4.

Seriously ? Time in string format ?

Hello,

I love your plugin, it is really usefull :)
But, please, someone do something about the time data in post object... because the time is a string and not a date.....

Thanks ;)

Recurring events - Show only next date

Hello,

I wanted to display events from the following ID : 1908894146009057.
They have a recurring event ("Marché bio et Local" every Monday for example), and I wanted to display only the date of the next Monday, instead of something like 1 November - 30 July. (https://www.facebook.com/events/1737087803254270)

I attach here my solution with my new functions "isRecurringEvent" and "getNextEventDate". Can you have a look and maybe update your plugin with it?

Thanks
facebook.php.zip

Request: GRAV CMS Facebook Event Importer

Hallo,

Sorry for disturbing you...

I've installed your Facebook-Plugin for grav-cms and I love it !!!

Now I have a special request and I don't know if you can or would like to help me:

I need to import Facebook-Events to my Grav-Website... And I have no idea how to write a grav-plugin!

But I suppose, based on your facebook-plugin for the feeds, it might be quite easy to change your plugin to work with facebook-events too

Would it be possible to help me (and probably a lot of other grav-users) to create such a plugin for facebook events?

Probably you just would have to adjust the API url, the vars and some of the values...

But I have no idea how to do this !!!

I found an interesting link about importing facebook events to a website but it requires php-include that is not possible on grav:

https://www.codeofaninja.com/2011/07/display-facebook-events-to-your-website.html

Please let me know if you are willing to help,

Thanks a lot,

Oliver

Posts are only parsed and returned if they contain a message property

When being parsed, posts returned by the API must have a message property. Is there a good reason for this?

I have noticed when I bypass this condition using

if (empty(trim($tags_string)) || (property_exists($val, 'message') && $this->tagsExist($tags_string, $val->message))) {

that I end up with different kinds of posts (video, photo) that require a lot of tweaking to make them render the way users would expect on FB. Is this the reason? (complexity)

Anyway, I have a local fork of the plugin where the config count parameter is passed in the API call, all posts types are parsed, and extra fields are retrieved to make sense of it all at the front end! I will make a pull request when I finish it properly, but please let me know if this PR is a waste of time.

Day and month names in other languages than english

Hello,

I'm trying to use the plugin in my multi language website (french and english). The issue in this case with the current version is that day names and month names are only in english.

Here is my solution to retrieve other languages:
First, select "Override Locale" : Yes in Grav System Configuration.
Then replace these lines in Facebook.php:

$start_date_array['monthName'] = date('F', mktime(0, 0, 0, $start_date_array['month'], 10)); $start_date_array['dayName'] = date('l', mktime(0, 0, 0, $start_date_array['month'], $start_date_array['day'], $start_date_array['year'])); $end_date_array['monthName'] = date('F', mktime(0, 0, 0, $end_date_array['month'], 10));

By the following:

$start_date_array['monthName'] = strftime ('%B', mktime(0, 0, 0, $start_date_array['month'], 10)); $start_date_array['dayName'] = strftime ('%A', mktime(0, 0, 0, $start_date_array['month'], $start_date_array['day'], $start_date_array['year'])); $end_date_array['monthName'] = strftime ('%B', mktime(0, 0, 0, $end_date_array['month'], 10));

With this solution, when I switch language in my website, the day and month names also change correctly.

UniteGallery theme selection

Hi, the theme selection drop down in the admin panel does not show all the available themes eg 'tiles' even though the files for it seem to be available in the assets folder. If I manually update the config file to specify 'tiles' theme it does not work though. Not sure where too from here to debug the issue

Update throws error messages

Thanks a lot for your update and the implementation of the facebook-events...

But unfortunately after updating I got error messages in both possibilities:

{{ facebook_posts() }} gives this error:
"0 - An exception has been thrown during the rendering of a template ("krsort() expects parameter 1 to be array, null given") in "modular/news.html.twig" at line 10."
{{ facebook_events() }} gives this error:
"0 - An exception has been thrown during the rendering of a template ("Undefined property: stdClass::$end_time") in "modular/news.html.twig" at line 10."

For the moment I disabled the plugin...
But if you want access to my site or more details about it just tell me...
Hope we'll find a quick solution...

Thanks for all your help

FB new guidelines - app review necessary

Hi,

since a few months fb has new guidelines, so that apps need to be reviewed and approved…
So this seems to be necessary for this plugin, too? or is there any way to avoid this?

If not, what are the necessary steps to get it running?

Cheers, Stephan

About storing events as child pages?

Hello and thanks for developing this plugin.

I would really prefer to store the events as pages to be more flexible on how to integrate them into the page. I'm willing to contribute or fork, but I would love to hear your opinion first on how to best achieve this.

Maybe it would be nice if the fetch can be done using the plugin cli, then it could be automated using cron jobs if available?

Would be happy about any feedback.
Best Christian

Error with Events - Illegal string offset 'name'

Hello,

I'm trying to use the Events on my site and have the following error:

An exception has been thrown during the rendering of a template ("Illegal string offset 'name'").
Line 275 of Facebook.php
$r[$start_at]['place']['name'] = $val->place->name;

Here is the Facebook page id for which I'm trying to get the events: 329002043817618

If I comment the lines 275 and 277, then the events are displayed on my page.
Do you know what can be the problem?

eventserror

Thanks for the plugin and for your help.

CRITICAL: An exception has been thrown during the rendering of a template ("Error while trying to download (code: 400)

Trying to add facebook plugin in the sidebar throws

grav.CRITICAL: An exception has been thrown during the rendering of a template ("Error while trying to download (code: 400)

adding the error log below..how to fix?

[2019-03-22 15:03:52] grav.CRITICAL: An exception has been thrown during the rendering of a template ("Error while trying to download (code: 400): https://graph.facebook.com/1071517943003802/?fields=feed{permalink_url,created_time,link,attachments,message}&access_token=| ") in "@Page:C:/inetpub/wwwroot/blogs.exaiimsdoctors.com/user/pages/sidebar" at line 4. - Trace: #0 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(399): Twig_Template->displayWithErrorHandling(Array, Array) #1 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(407): Twig_Template->display(Array) #2 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Environment.php(363): Twig_Template->render(Array) #3 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Twig\Twig.php(280): Twig_Environment->render('@Page:C:/inetpu...', Array) #4 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Page\Page.php(789): Grav\Common\Twig\Twig->processPage(Object(Grav\Common\Page\Page), '<h4>Our Tweets<...') #5 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Page\Page.php(672): Grav\Common\Page\Page->processTwig() #6 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(673): Grav\Common\Page\Page->content() #7 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\6d\6d839da84731b50f0a585ccf0dcee4bf403563ee71378693c1331fd5644b799f.php(28): Twig_Template->getAttribute(Object(Grav\Common\Page\Page), 'content', Array) #8 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(428): __TwigTemplate_4c971526b6535dfd4d54a24da9889bf78351ceb755a22db67f55623e5ae242f3->doDisplay(Array, Array) #9 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(399): Twig_Template->displayWithErrorHandling(Array, Array) #10 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\22\22174f29bf11f4ae8e44376e941ac7ab03a88f0088a6b61001e77b8ba5ad483c.php(450): Twig_Template->display(Array) #11 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(215): __TwigTemplate_69d804f063d4faf754bac85f5272f7bd9cc2717c0f0386f7b5b0fe3534f839df_755067330->block_sidebar(Array, Array) #12 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\cc\ccb37d0810ca6b1bf81bb6e8936a3e2fdb513dee12edf096c060ee812311f97d.php(61): Twig_Template->displayBlock('sidebar', Array, Array) #13 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(428): __TwigTemplate_bb1fe3a2394ae7d69a6fd2ccb19cf39258d17950ed280e207b6d5b1a4de9dae3->doDisplay(Array, Array) #14 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(399): Twig_Template->displayWithErrorHandling(Array, Array) #15 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\22\22174f29bf11f4ae8e44376e941ac7ab03a88f0088a6b61001e77b8ba5ad483c.php(298): Twig_Template->display(Array, Array) #16 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(428): __TwigTemplate_69d804f063d4faf754bac85f5272f7bd9cc2717c0f0386f7b5b0fe3534f839df_755067330->doDisplay(Array, Array) #17 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(399): Twig_Template->displayWithErrorHandling(Array, Array) #18 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\22\22174f29bf11f4ae8e44376e941ac7ab03a88f0088a6b61001e77b8ba5ad483c.php(120): Twig_Template->display(Array) #19 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(215): __TwigTemplate_69d804f063d4faf754bac85f5272f7bd9cc2717c0f0386f7b5b0fe3534f839df->block_body(Array, Array) #20 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\57\57e0a755e295a1a444bdf3a6723636b9499dff5c4e95d315319288397f4db2f0.php(84): Twig_Template->displayBlock('body', Array, Array) #21 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(428): __TwigTemplate_ea76a5140239521276a9b9913a7e64a44386fdbf271f368a775b7666ca59d8b5->doDisplay(Array, Array) #22 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(399): Twig_Template->displayWithErrorHandling(Array, Array) #23 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\cache\twig\22\22174f29bf11f4ae8e44376e941ac7ab03a88f0088a6b61001e77b8ba5ad483c.php(59): Twig_Template->display(Array, Array) #24 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(428): __TwigTemplate_69d804f063d4faf754bac85f5272f7bd9cc2717c0f0386f7b5b0fe3534f839df->doDisplay(Array, Array) #25 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(399): Twig_Template->displayWithErrorHandling(Array, Array) #26 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Template.php(407): Twig_Template->display(Array) #27 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\twig\twig\lib\Twig\Environment.php(363): Twig_Template->render(Array) #28 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Twig\Twig.php(380): Twig_Environment->render('blog.html.twig', Array) #29 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Service\OutputServiceProvider.php(27): Grav\Common\Twig\Twig->processSite('html') #30 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\vendor\pimple\pimple\src\Pimple\Container.php(118): Grav\Common\Service\OutputServiceProvider->Grav\Common\Service\{closure}(Object(Grav\Common\Grav)) #31 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Processors\RenderProcessor.php(19): Pimple\Container->offsetGet('output') #32 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Grav.php(131): Grav\Common\Processors\RenderProcessor->process() #33 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Grav.php(370): Grav\Common\Grav->Grav\Common\{closure}() #34 [internal function]: Grav\Common\Grav::Grav\Common\{closure}('render', 'Render', Object(Closure)) #35 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Grav.php(346): call_user_func_array(Object(Closure), Array) #36 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\system\src\Grav\Common\Grav.php(132): Grav\Common\Grav->__call('measureTime', Array) #37 C:\inetpub\wwwroot\blogs.exaiimsdoctors.com\index.php(54): Grav\Common\Grav->process() #38 {main} [] []

Enhancement request: Gallery?

thanks for your work on this plugin already. It would be wonderful addition to this plugin if it also supported the facebook photo galleries.

jquery 11 breaks some Grav core

This broke contenttabs, which requires jquery ui-tab; not sure why, but core Grav installs jquery 1.2, so perhaps some conflict there.

About Event code : {{ facebook_events() }}

I don't know where i have to put this code !
I mean i tried to put it directly in a Grav modular page but it shows raw code on the website.
I really need help (im using gantry with the helium theme) and i have the admin panel !

Gallery just imports 25 pictures

Whatever gallery I choose from my Facebook page, the plugin only parses 25 pictures...
Any solution/explanation?
Thanks
Oliver

No images on shared posts

Hi there,

When a post is a shared post, there's no image to show.

Shared posts have this response, notice the subattachments:

    "feed": {
        "data": [{
            "permalink_url": "https://www.facebook.com/...",
            "created_time": "...",
            "link": "https://www.facebook.com/...",
            "message": "...",
            "id": "...",
            "attachments": {
                "data": [{
                    "subattachments": {
                        "data": [{
                            "media": {
                                "image": {
                                    "height": 720,
                                    "src": "https://scontent.xx.fbcdn.net/...",
                                    "width": 719
                                }
                            },
                            "target": {
                                "id": "10155111642401006",
                                "url": "https://www.facebook.com/..."
                            },
                            "type": "photo",
                            "url": "https://www.facebook.com/..."
                        }, {
                            "media": {
                                "image": {
                                    "height": 720,
                                    "src": "https://scontent.xx.fbcdn.net/...",
                                    "width": 350
                                }
                            },
                            "target": {
                                "id": "10155111642396006",
                                "url": "https://www.facebook.com/..."
                            },
                            "type": "photo",
                            "url": "https://www.facebook.com/..."
                        }]
                    },
                    "target": {
                        "id": "...",
                        "url": "..."
                    },
                    "title": "...",
                    "type": "album",
                    "url": "..."
                }]
            }
        }
    ]
}```

Facebook not returning events for pages using Pages API

https://stackoverflow.com/questions/49825680/how-can-i-get-the-events-for-a-facebook-page/49825869#49825869

As commented in the former issue Facebook doesn't support returning events for pages using Pages API anymore. The fork from Thorgall doesn't seem to work neither. Still the events are not parsing. (Or I tried it wrongly... but I followed all Thorgall's steps).

Do any chance you could update the event section somehow?

Thanks again for your great plugin.

Request:

Hi Mika, great plugin! Thank you!

Would it be possible to filter by hashtag?

Does not bring Fb data from facebook page

I've configured my facebook plugin and embedded my fb app id and secret. but the plugin does not pulling up the data from that page. Instead I am getting this text on my page
{{ facebook_posts() }}

Please guide me if I am doing anyting wrong.

Best

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.