npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

joindin-js

v0.5.0

Published

The official JavaScript library to embed Joind.in comments, talks, and more.

Downloads

3

Readme

JoindIn.js

JoindIn.js is the official JavaScript library to embed Joind.in comments, talks, and more.

Welcome

Joind.in welcomes all contributors regardless of your ability or experience. We especially welcome you if you are new to Open Source development and will provide a helping hand. To ensure that everyone understands what we expect from our community, our projects have a Contributor Code of Conduct and by participating in the development of joind.in you agree to abide by its terms.

Compatibility

JoindIn.js has been tested on the following browsers: Internet Explorer 9+, Chrome, Opera, Firefox, and Safari.

The library follows the UMD (Universal Module Definition) pattern to work seamlessly with module systems such as AMD and CommonJS, and the browser.

Demo

A live demo is available here.

Installation

You can install JoindIn.js by using npm:

npm install joindin-js

Alternatively, you can install it via Bower:

bower install joindin-js

The last options you have to download the library are to clone the repository and copy the files contained in the dist folder into your project and to manually download the files.

Usage

Once you have obtained the library, you have to create one or more DOM elements for every element you want to embed: talk, comment, or any other of the elements supported. The DOM elements you create must use the class joindin-embed and define two data-* attributes:

An example of element that meets these requirements is the following:

<div class="joindin-embed" data-id="10889" data-type="talk"></div>

With the element(s) in place, you have to include the CSS file provided. It should be placed in the head of your web page. If you used Bower, you can include it as shown below:

<head>
   <link rel="stylesheet" href="bower_components/joindin-js/dist/joindin.min.css" />

At this point, you have to include the JavaScript file.

If the library has been downloaded with Bower, you can include it as shown below:

   <script src="bower_components/joindin-js/dist/joindin.min.js"></script>
</body>

For those that obtained the library via npm, how you include it depends on the module system in use, if any.

Browserify

var JoindIn = require('joindin-js');
// Call JoindIn methods

RequireJS

require(['joindin-js'], function(JoindIn) {
	// Call JoindIn methods
});

No module system

   <script src="node_modules/joindin-js/dist/joindin.min.js"></script>
   <script>
      // Call JoindIn methods
   </script>
</body>

Methods

JoindIn.js provides the methods described in the following sections.

init()

The init() method parses the DOM to find all the elements of the type described in the Usage section and transform them into the relevant widget.

Elements supported

The library supports the following elements:

  • Speaker (data-type="speaker")
  • Talk (data-type="talk")
  • Comment (data-type="talk-comment")
  • Event (data-type="event")
  • Call for papers (data-type="cfps")

More elements will be integrated soon.

In the following sections you can learn how to embed the elements supported.

Embedding a speaker

To embed my profile, you have to add the following element to your page:

<div class="joindin-embed" data-id="25190" data-type="speaker"></div>

Embedding a talk

To embed my talk "Modern front-end with the eyes of a PHP developer", you have to add the following element to your page:

<div class="joindin-embed" data-id="10889" data-type="talk"></div>

If you want to embed the same talk using one of the themes available, for example Shark, you have to add the following element to your page:

<div class="joindin-embed" data-id="10889" data-type="talk" data-theme="shark"></div>

Embedding a comment of a talk

To embed a specific comment published on the same talk, you have to add the following element instead:

<div class="joindin-embed" data-id="44197" data-type="talk-comment"></div>

Note that in this case the ID refers to the comment, not the talk.

Embedding an event

To embed the jsDay 2015 event, you have to add the following element to your page:

<div class="joindin-embed" data-id="3094" data-type="event"></div>

Embedding the call for papers

To embed the currently open call for papers, you have to add the following element to your page:

<div class="joindin-embed" data-type="cfps"></div>

If you want to embed the same talk using one of the themes available, for example Picton, you have to add the following element to your page:

<div class="joindin-embed" data-id="10889" data-type="talk" data-theme="picton"></div>

How to retrieve the ID of the element to embed

Retrieving the ID of the element you want to embed is a bit tricky.

The ID of a speaker can be found in the URL of the website. For example, the URL of my profile is https://joind.in/user/view/25190, so the ID is 25190.

The ID of a talk can be found in the URL of the website. For example, the URL of my talk "Modern front-end with the eyes of a PHP developer" is https://joind.in/talk/view/10889, so the ID is 10889.

To retrieve the ID of a comment you have to look at the source code of the page. It's written as part of the class name set to the element wrapping each comment. For example, you can find a class name like comment-43964 where 43964 is the ID of the comment.

The ID of an event can be found in the URL of the website. For example, the URL of the jsDay 2015 is https://joind.in/event/view/3094, so the ID is 3094.

The call for papers widget doesn't require any ID.

Themes available

The library provides the following themes:

  • Grain (data-theme="grain")
  • Picton (data-theme="picton")
  • Shark (data-theme="shark")

To see them in action, take a look at the demo.

License

JoindIn.js is dual licensed under MIT and GPL-3.0

Author

Aurelio De Rosa (@AurelioDeRosa)