Git Product home page Git Product logo

jquery-rss's Introduction

jquery.rss Build Status

This plugin can be used to read a RSS feed and transform it into a custom piece of HTML.

Alternatives

A vanilla JavaScript version of this library can be found here: Vanilla RSS. This plugin uses Feedr, a backend server that parses and converts RSS feeds into its JSON representation. The server was built as a drop-in replacement for Google's former Feed API.

Support

Since version 3.4.0 of jquery.rss, users have the chance to support funding future developments and covering the costs for the hosting of jquery.rss' respective server side companion app feedr.

Every once in a while supporters will get affiliate links instead of one of the feed's entries.

If you are not interested in supporting the authors of the plugin, then you can easily opt-out of it by setting the respective support option. See below for further details.

Thanks in advance!

Installation

Through npm:

$ npm install jquery
$ npm install jquery-rss

const $ = require('jquery');
require('jquery-rss'); // This will add the plugin to the jQuery namespace

Through cdnjs:

<script src="http://code.jquery.com/jquery-1.11.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-rss/3.3.0/jquery.rss.min.js"></script>

Setup

<!DOCTYPE html>
<html>
  <head>
    <title>jquery.rss example</title>
    <script src="lib/jquery-1.6.4.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
    <script src="dist/jquery.rss.min.js"></script>
    <script>
      jQuery(function($) {
        $("#rss-feeds").rss("http://feeds.feedburner.com/premiumpixels");
      });
    </script>
  </head>
  <body>
    <div id="rss-feeds"></div>
  </body>
</html>

Demo link for above code: http://embed.plnkr.co/WQRoCYLld162uplnz1rc/preview

Note: Moment.js is optional. If you include it, jquery.rss will use it to format dates. If you do not want to include Moment.js, you may opt for providing your own date formatting function, or for not formatting dates at all.

Options

$("#rss-feeds").rss(
  // You can either provide a single feed URL or a list of URLs (via an array)
  "http://feeds.feedburner.com/premiumpixels",
  {
    // how many entries do you want?
    // default: 4
    // valid values: any integer
    limit: 10,

    // want to offset results being displayed?
    // default: false
    // valid values: any integer
    offsetStart: false, // offset start point
    offsetEnd: false, // offset end point

    // will request the API via https
    // default: false
    // valid values: false, true
    ssl: true,

    // which server should be requested for feed parsing
    // the server implementation is here: https://github.com/sdepold/feedr
    // default: feedrapp.info
    // valid values: any string
    host: "my-own-feedr-instance.com",

    // option to seldomly render ads
    // ads help covering the costs for the feedrapp server hosting and future improvements
    // default: true
    // valid values: false, true
    support: false,

    // outer template for the html transformation
    // default: "<ul>{entries}</ul>"
    // valid values: any string
    layoutTemplate: "<div class='feed-container'>{entries}</div>",

    // inner template for each entry
    // default: '<li><a href="{url}">[{author}@{date}] {title}</a><br/>{shortBodyPlain}</li>'
    // valid values: any string
    entryTemplate: "<p>{title}</p>",

    // additional token definition for in-template-usage
    // default: {}
    // valid values: any object/hash
    tokens: {
      foo: "bar",
      bar: function(entry, tokens) {
        return entry.title;
      }
    },

    // formats the date with moment.js (optional)
    // default: 'dddd MMM Do'
    // valid values: see http://momentjs.com/docs/#/displaying/
    dateFormat: "MMMM Do, YYYY",

    // localizes the date with moment.js (optional)
    // default: 'en'
    dateLocale: "de",

    // Defines the format which is used for the feed.
    // Default: null (utf8)
    // valid values: https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings
    encoding: "ISO-8859-1",

    // Defined the order of the feed's entries.
    // Default: undefined (keeps the order of the original feed)
    // valid values: All entry properties; title, link, content, contentSnippet, publishedDate, categories, author, thumbnail
    // Order can be reversed by prefixing a dash (-)
    order: "-publishedDate",

    // formats the date in whatever manner you choose. (optional)
    // this function should return your formatted date.
    // this is useful if you want to format dates without moment.js.
    // if you don't use moment.js and don't define a dateFormatFunction, the dates will
    // not be formatted; they will appear exactly as the RSS feed gives them to you.
    dateFormatFunction: function(date) {},

    // a callback, which gets triggered when an error occurs
    // default: function() { throw new Error("jQuery RSS: url don't link to RSS-Feed") }
    error: function() {},

    // a callback, which gets triggered when everything was loaded successfully
    // this is an alternative to the next parameter (callback function)
    // default: function(){}
    success: function() {},

    // a callback, which gets triggered once data was received but before the rendering.
    // this can be useful when you need to remove a spinner or something similar
    onData: function() {}
  },

  // callback function
  // called after feeds are successfully loaded and after animations are done
  function callback() {}
);

Note about the host option

Since version 3.0.0 the plugin is no longer using the Google Feed API but a drop-in replacement called feedr. That server is currently running on Heroku and might have some downtimes, interruptions or unexpected issues. While I will try to keep those problems as rare as possible, it can totally happen from time to time. I might move the service to some other provide or even improve the infrastructure.

If you don't want to rely on the provided server and instead run your own version, you can just download feedr, install the dependencies and run it. As written above, you can specify the host which is used to parse the feeds with the host option.

Templating

As seen in the options, you can specify a template in order to transform the json objects into HTML. In order to that, you can either define the outer template (which describes the html around the entries) or the entry template (which describes the html of an entry).

The basic format of those templates are:

<!-- layoutTemplate: -->
"<outer-html>{entries}</outer-html>"

<!-- entryTemplate: -->
"<any-html>{token1}{token2}</any-html>"

So, let's say you have specified a limit of 2, using the upper pseudo html. This will result in the following:

<outer-html>
  <any-html>{token1}{token2}</any-html>
  <any-html>{token1}{token2}</any-html>
</outer-html>

There are some predefined tokens:

  • url: the url to the post
  • author: the author of the post
  • date: the publishing date
  • title: the title of the post
  • body: the complete content of the post
  • shortBody: the shortened content of the post
  • bodyPlain: the complete content of the post without html
  • shortBodyPlain: the shortened content of the post without html
  • teaserImage: the first image in the post's body
  • teaserImageUrl: the url of the first image in the post's body
  • index: the index of the current entry
  • totalEntries: the total count of the entries
  • feed: contains high level information of the feed (e.g. title of the website)

You can also define custom tokens using the tokens option:

$("#foo").rss(url, {
  entryTemplate: "{dynamic}, {static}, {re-use}",
  tokens: {
    dynamic: function(entry, tokens) {
      return "dynamic-stuff: " + entry.title;
    },
    "re-use": function(entry, tokens) {
      return encodeURIComponent(tokens.teaserImageUrl);
    },
    static: "static"
  }
});

Please make sure to NOT define infinite loops. The following example is really BAD:

$('#foo').rss(url, {
  entryTemplate: "{loop}",
  tokens: {
    whoops: function(entry, tokens) { return tokens.loop() }
    loop: function(entry, tokens) { return tokens.whoops() }
  }
})

Here is a real-world example:

$("#foo").rss(url, {
  layoutTemplate: "<table><tr><th>Title</th></tr>{entries}</table>",
  entryTemplate: "<tr><td>{title}</td></tr>"
});

Filtering

The plugin also allows you to filter specific entries in order to only print them:

$("#foo").rss(url, {
  limit: 100,
  filterLimit: 10,
  filter: function(entry, tokens) {
    return tokens.title.indexOf("my filter") > -1;
  }
});

This will request 100 entries via the Feed API and renders the first 10 matching entries.

Testing

The test suite is using BusterJS. In order to successfully run the tests you will need phantomjs. If that is installed you only have to run npm test.

Authors/Contributors

jquery-rss's People

Contributors

abhijeetbhanjadeo avatar brockpetrie avatar chaossteffen avatar cm0s avatar dependabot[bot] avatar eliten00b avatar firecentaur avatar greenkeeperio-bot avatar ivavictoria avatar jhfrench avatar leto avatar rdallaire avatar sdemjanenko avatar sdepold avatar ytyukhnin avatar

Stargazers

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

Watchers

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

jquery-rss's Issues

Token usage for layoutTemplate

When defining a token the {token} keyword is not being replaced in the layoutTemplate. Example would be that I want to get the title or description of the feed and apply this in the overall template, not the entry template.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

[enhancement] Add missing bower.json.

Hey, maintainer(s) of sdepold/jquery-rss!

We at VersionEye are working hard to keep up the quality of the bower's registry.

We just finished our initial analysis of the quality of the Bower.io registry:

7530 - registered packages, 224 of them doesnt exists anymore;

We analysed 7306 existing packages and 1070 of them don't have bower.json on the master branch ( that's where a Bower client pulls a data ).

Sadly, your library sdepold/jquery-rss is one of them.

Can you spare 15 minutes to help us to make Bower better?

Just add a new file bower.json and change attributes.

{
  "name": "sdepold/jquery-rss",
  "version": "1.0.0",
  "main": "path/to/main.css",
  "description": "please add it",
  "license": "Eclipse",
  "ignore": [
    ".jshintrc",
    "**/*.txt"
  ],
  "dependencies": {
    "<dependency_name>": "<semantic_version>",
    "<dependency_name>": "<Local_folder>",
    "<dependency_name>": "<package>"
  },
  "devDependencies": {
    "<test-framework-name>": "<version>"
  }
}

Read more about bower.json on the official spefication and nodejs semver library has great examples of proper versioning.

NB! Please validate your bower.json with jsonlint before commiting your updates.

Thank you!

Timo,
twitter: @versioneye
email: [email protected]
VersionEye - no more legacy software!

Display inline

How do I display the unordered list with an inline style?

custom tokens

I want to parse the feed of a zotero library (e.g. https://api.zotero.org/groups/9097/items/top?start=0&limit=55) with only these elements:

"title"(predefinded) + "publisher/author"(custom_token_1)+"place"(custom_token_2)+"year"(custom_token_3)

Note: author and year are not the fields "author" and "date" of the rss-feed but part of the body content itself. Is it possible to parse these elements and display them as custom tokens?

Make moment dependency optional

As-is, jquery-rss cannot run without the moment date library introduced with #43.

Can the moment dependency be made optional? Not everyone uses Bower to manage dependencies; the date formatting is not desirable for all use-cases.

See also #23

How to add images and custom tag content?

Please see this feed: http://www.espnscrum.com/rss/rugby/rss/headlines_fantasy.rss how do we add the images and custom tags? I just get undefined when I try to load them.


$("#rss-top").rss("http://www.espnscrum.com/rss/rugby/rss/headlines_fantasy.rss", {
        limit: 3,
        tokens: {
          articlelink: function(entry, tokens) { return entry.link },
          articleimage: function(entry, tokens) { 
            if(typeof entry.image == 'undefined' || entry.image == '') {
                return 'scrum_placeholder.jpg';
            }
            return entry.image 
          },
          mainheadline: function(entry, tokens) { return entry.headline },
          articlesubhead: function(entry, tokens) { return entry.linkname }
        },
        layoutTemplate: '<ul class="news-items">{entries}</ul>',
        entryTemplate:  '<li>' +
                            '<a href="{articlelink}">' +
                                '<img src="{articleimage}" alt="{mainheadline}" width="99" height="56">' +
                                '<h3>{body}</h3>' +
                            '</a>' +
                            '<p class="description">{articlesubhead}</p>' +
                        '</li>'
    });

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Trying to get media items from RSS feed

Hi,

I've tried so many ways to get the enclosure tag from an RSS feed (which is part of the XML node) and defining it as a new token. It's just not working! I'm using the json_xml feed type, and I can see it returning at the top of the result as part of the 'xmlString' node in the responseData. But I cannot target it for some reason.

Looking at various examples around the web, I'm trying to target entry.xmlNode:

media: (function (entry) {
var node = entry.xmlNode;
var enclosure = $(node).find('enclosure')[0].attr('url');
return enclosure;
})(entry)

But this is resulting in an 'undefined' message in the console. It seemingly can't find entry.xmlNode. Have you tried to target the enclosure before? Posting here in the hope that you might be able to point me in the right direction...

Thanks


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Moment.js: Deprecation Warning

Moment.js is printing a warning to the console:

"Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to moment/moment#1407 for more info."

This is being caused by line 218 of jquery.rss.js:

date: moment(entry.publishedDate).format(this.options.dateFormat),

This usage of the moment() constructor is going to be deprecated soon. It is suggested that instead of dumping any date string into the constructor, one should instead use String + Format. For example:

date: moment(entry.publishedDate, "MM-DD-YYYY").format(this.options.dateFormat),

Or, as is mentioned in moment/moment#1407, if one really needs to dump in random dates without specifying the format, another alternative is to let Date handle it:

date: moment(new Date(entry.publishedDate)).format(this.options.dateFormat),

For our use case -- an RSS feed reader -- I don't know if we can successfully use String + Format. RSS feeds are supposed to have a standardized date format, as shown in the RSS 2.0 specification:

All date-times in RSS conform to the Date and Time Specification of RFC 822, with the exception that the year may be expressed with two characters or four characters (four preferred).
Example: Sat, 07 Sep 2002 0:00:01 GMT

..but, my impression is that feeds in the wild don't predictably follow this standard, so anticipating what format the dates will use in any given feed is probably out of the question.

Should we go with letting Date parse the initial publishedDate string and hope for the best?
My guess is that we should, because Date is what Moment currently falls back to when the pubDate isn't ISO-8601 compliant. Using Date like this is a risky practice and doesn't always work, so they're removing this feature to wipe their hands clean of it. But, that doesn't stop us from using it.

Styling for feed html

The css styling doesn't get applied to the html in the body of an entry from the feed. How can I make this happen?

Having BOTH the Success callback and the Final callback

Hello there, loving your script.

I really wanted to have both the Success callback and the Final callback since I needed to do different stuff with it.

For example I wanted to check the average color of an image on Success and change the background of its parent div to that color.

Then after everything is animated I want to resize the picture according to the size of the div and finally fadeIn the picture.

As of now it seems I can have only one or the other and would love to have both callbacks working.

Is there any way I can change the code to make that without breaking everything else?


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Entry as jQuery object

Is there anyway to do some thing like

var entry = $('<div id="test">content</div>').on('tap', function () {
                     //do stuff
});

 $("#rss-feeds").rss("http://somefeed.com", {
        limit: 30,
        effect: 'slideFastSynced',
        layoutTemplate: '<div class=feeds_container>{entries}</div>',
        entryTemplate: entry
}, function () {
    //callback
});

I have a lot of functions that are called from my entry html and I rather not do it all from "onclicks = blah()". I have tried using a jQuery object and it did not work before. If I am doing something wrong let me know aha.

How can i get the website name?

Hi sdepold, your project is awesome!
Now I want to get the website name from a feed URL, but there is no such token. How should i do?

Make rss() chainable

Please make rss() chainable.

From jQuery's plugin writing guide: "One of jQuery's features is chaining, when you link five or six actions onto one selector. This is accomplished by having all jQuery object methods return the original jQuery object again"

Options

Hello,

Thank you very much for the plugin. But i have one question..
Is het possible to set the options once for several feeds?

Thanks in advance.

Gr,

Michel

Something like..

(".content").rss(url, {
limit: 5,
layoutTemplate: '< class="dl-horizontal">{entries}'</>,
entryTemplate: '<>{title}</>'
}).show();

class="content">$(".content").rss("http://rss/rss1");
class="content">$(".content").rss("http://rss/rss2");
class="content">$(".content").rss("http://rss/rss3");

Templating Example

Pardon my ignorance but I can't seem to get templating to work at all, even reading through your instructions carefully. Is there a working example you can point me to?

URL no longer links to RSS-feed

I noticed the RSS feed I have set up on a website I'm working on for my firm no longer displays RSS content. I was doing jQuery updates on the site so I reverted it to an older version (+1 week old when feed was still showing up) to see if I was causing a conflict but the issue remained. I tried setting up the feed in a different environment but keep getting the "jQuery RSS: url doesn't link to RSS-Feed" error message. I've also tried using different feeds from different sites but run into the same issue.

Do you know what could have changed in the last 48 hours that would cause this? I've got it set up in a test environment here. The .rss() function gets called in script.js and I put a few print statements inside jquery.rss.js to try and debug the issue but I'm not having much luck.

Any help would be greatly appreciated!

date returned values

hi man
the date value returned from my word press

Sun, 09 Sep 2012 04:39:19 -0700

i asked if i can display just [Sun, 09 Sep 2012 ]
i don't need the full date

can u help me 👍

bower

Please register package on bower

Can't use dateFormatFunction option when moment.js is present

So I wanted to use moment.js' Time from now method to get a '5 minutes ago' version of the date of an rss item. However this can't (as far as I can tell) be done with a format string and requires you to do something like this:

moment(date).fromNow();

in the dateFormatFunction option. JQuery-rss doesn't call this function if moment.js is present though, so you can't do any manipulation of the date with moment.js outside of setting a format string in dateFormat.

see here:

    // If moment.js is available, use it to format the date.
    if (typeof moment !== 'undefined') {
      this.formattedDate = moment(new Date(entry.publishedDate)).format(this.options.dateFormat);
    } else {
      // Otherwise, if a custom formatting function is provided, use that.
      if (this.options.dateFormatFunction) {
        this.formattedDate = this.options.dateFormatFunction(entry.publishedDate);
      } else {
        // If all else fails, just use the date as-is.
        this.formattedDate = entry.publishedDate;
      }
    }

Feedr: Unterminated string literal

So, I'm trying to upgrade to v3.0.1, and it seems to work everywhere but one place. In one instance, where we're using jquery-rss to fetch posts from a Wordpress blog, the script crashes with the following console message: "SyntaxError: unterminated string literal".

This is the request causing the error: http://www.feedrapp.info/?callback=jQuery110203348644026184171_1440446349851&q=http%3A%2F%2Fpennlibnews.wordpress.com%2Fcategory%2Fpenn-libraries%2Ffeed%2F&num=3&_=1440446349852
https://github.com/sdepold/jquery-rss/releases/tag/v3.0.1
(I have no idea if this link will expire; sorry if it does.)

Any idea why this is happening? I can't tell where the unterminated string is, or why it might be there.

compatibility to ie8

@sdepold Howdy! I stumbled upon a jQueryRSS bug in IE8: tia-group.com —blog feed in sidebar refuses to load. Error @ ln75. Ideas?

.

.

Multiple feeds

Hi - thanks for this little plugin, very handy. I needed a version that would aggregate multiple feeds & sort by date, so I added a function that would handle this. Would you be interested in merging this with the main project?

forEach not supported in IE7, IE8

In line 62 you are using the function "forEach" (entries.forEach), which was introduced in JavaScript 1.6 and is not supported in Internet Explorer 7 or 8.

I can get around this by adding the following code:

if (!Array.prototype.forEach) {
Array.prototype.forEach = function (fn, scope) {
for (var i = 0, len = this.length; i < len; ++i) {
fn.call(scope || this, this[i], i, this);
}
}
}

But it would be nice if this wasn't used so compatibility was ensured in these older browsers. Great library by the way.

Get category

Hi everyone, How I can get "<category>" from this rss? I try many thing but I don't know Javascript very well. Thanks in advance.

`

<title>Site.com</title> http://www.Site.com/ Site.com description en Motosport <title> </title> http://www.Site.com/news.php?news=560838
Motosport short text ]]> Sat, 08 Aug 2015 05:08:00 +0300 66534de1a1e883169c32ae436b73b832 `

Add formatting options to dates

It would be nice if the date could be formatted as an option, possibly using something like moment.js. Or are you wanting this plugin to not rely on any other plugins besides jquery? I have the code pretty much setup/ I can submit a PR

Truncate {title} objects by chatacter number

Good morning,

Is there any support for wanting to truncate the {titles} retrieved by the RSS feed?

For example, "This is a Test Post", becomes "This is a Test..."

Thank you.

Output json vs. json_xml, cache reloading

I've found that the entries array had zero items when the output parameter is set to json_xml instead of json for url's from omnilert.net. (Example: http://rss.omnilert.net/21dedb69608886de9f2b32cffa85d4e5). Should this be an option in a future version?

I also needed to add a cache fuzzing parameter to the URL to get the cached data updated sooner than 30 minutes. We (Maine Legislature) use Omnilert to allow management to insert important announcements on our home page (http://legislature.maine.gov) and waiting 30 minutes or more to change the message won't work for them. Code added is simple, at the beginning of the RSS.prototype.load method:

var d = new Date();
var cachefuzz = parseInt( d.getMinutes() / 2); // added to url to force load of new data every 2 min

And the apiUrl value a couple lines down is changed as follows:

  , apiUrl      = apiHost + "?v=1.0&output=json&callback=?&q=" + encodeURIComponent(this.url + "?" + cachefuzz)

Using alt Attribute and Featuerd image

This is examples. If you use image, it have to add alt Attribute.

http://a11yproject.com/posts/alt-text/

for example:

// options 
imageAlt: "featured",  // or something for alt text

// RSS.prototype.getTokenMap
RSS.prototype.getTokenMap = function(entry) {
  Array.prototype.isArray = true;
  var _self = this

  ...

      featuredImageAlt: (function(entry) {
        try {
          for (var i in entry.content.match(/(<img.*?>)/gi)) {
            if( entry.content.match(/(<img.*?>)/gi)[i].indexOf(_self.options.imageAlt) > 0 ) {
              return entry.content.match(/(<img.*?>)/gi)[i].match(/alt="(.*?)"/)[1]
            }
          }
        }
        catch(e) { return "" }
      })(entry)

and you can get featured Image Url token with imageAlt options.

for exampel:

      featuredImageUrl: (function(entry) { 
        try {
          for (var i in  entry.content.match(/(<img.*?>)/gi)) {
            if( entry.content.match(/(<img.*?>)/gi)[i].indexOf(_self.options.imageAlt) > 0 ) {
              return entry.content.match(/(<img.*?>)/gi)[i].match(/src="(.*?)"/)[1]
            }
          }
        }
        catch(e) { return entry.content.match(/(<img.*?>)/gi)[0].match(/src="(.*?)"/)[1] }
      })(entry)

call:

$(".js-feed").rss(frss, { 
  imageAlt: "featured",
  entryTemplate: '...<img src="{featuredImageUrl}" alt="{featuredImageAlt}" />'
});

And you can add replace according to thumbnail file name such as:

entry.content.match(/(<img.*?>)/gi)[i].match(/src="(.*?)"/)[1].replace( /*something*/ )

thanks.

Issue getting a price from RSS feed

--item--
--isc:price--
----
--/isc:price--
--/item--

My feed has this tag for the price, and I need to show it as a token. When I try the following:

tokens: {
price: function(entry, tokens) { return entry.isc:price }
}

I get the following error: Uncaught SyntaxError: Unexpected token :

Am I doing something wrong?


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

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.