Coder Social home page Coder Social logo

reveal.js-menu's Introduction

reveal.js-menu

A slideout menu plugin for Reveal.js to quickly jump to any slide by title. Also optionally change the theme and set the default transition. Check out the live demo

Installation

Bower

Download and install the package in your project:

bower install reveal.js-menu

Add the plugin to your presentation, as below.

<script src="bower_components/reveal.js-menu/menu.js"></script>
<script>
  Reveal.initialize({
    plugins: [ RevealMenu ]
  });
</script>

npm

Download and install the package in your project:

npm install --save reveal.js-menu

Add the plugin to your presentation, as below.

<script src="node_modules/reveal.js-menu/menu.js"></script>
<script>
  Reveal.initialize({
    plugins: [ RevealMenu ]
  });
</script>

Manual

Copy this repository into the plugins folder of your reveal.js presentation, ie plugins/menu.

Add the plugin to the dependencies in your presentation, as below.

<script src="plugin/menu/menu.js"></script>
<script>
  Reveal.initialize({
    plugins: [ RevealMenu ]
  });
</script>

Configuration

You can configure the menu for your presentation by providing a menu option in the reveal.js initialization options. Note that all config values are optional and will default as specified below.

Reveal.initialize({
  // ...

  menu: {
    // Specifies which side of the presentation the menu will
    // be shown. Use 'left' or 'right'.
    side: 'left',

    // Specifies the width of the menu.
    // Can be one of the following:
    // 'normal', 'wide', 'third', 'half', 'full', or
    // any valid css length value
    width: 'normal',

    // Add slide numbers to the titles in the slide list.
    // Use 'true' or format string (same as reveal.js slide numbers)
    numbers: false,

    // Specifies which slide elements will be used for generating
    // the slide titles in the menu. The default selects the first
    // heading element found in the slide, but you can specify any
    // valid css selector and the text from the first matching
    // element will be used.
    // Note: that a section data-menu-title attribute or an element
    // with a menu-title class will take precedence over this option
    titleSelector: 'h1, h2, h3, h4, h5, h6',

    // If slides do not have a matching title, attempt to use the
    // start of the text content as the title instead
    useTextContentForMissingTitles: false,

    // Hide slides from the menu that do not have a title.
    // Set to 'true' to only list slides with titles.
    hideMissingTitles: false,

    // Adds markers to the slide titles to indicate the
    // progress through the presentation. Set to 'false'
    // to hide the markers.
    markers: true,

    // Specify custom panels to be included in the menu, by
    // providing an array of objects with 'title', 'icon'
    // properties, and either a 'src' or 'content' property.
    custom: false,

    // Specifies the themes that will be available in the themes
    // menu panel. Set to 'true' to show the themes menu panel
    // with the default themes list. Alternatively, provide an
    // array to specify the themes to make available in the
    // themes menu panel, for example...
    //
    // [
    //     { name: 'Black', theme: 'dist/theme/black.css' },
    //     { name: 'White', theme: 'dist/theme/white.css' },
    //     { name: 'League', theme: 'dist/theme/league.css' },
    //     {
    //       name: 'Dark',
    //       theme: 'lib/reveal.js/dist/theme/black.css',
    //       highlightTheme: 'lib/reveal.js/plugin/highlight/monokai.css'
    //     },
    //     {
    //       name: 'Code: Zenburn',
    //       highlightTheme: 'lib/reveal.js/plugin/highlight/zenburn.css'
    //     }
    // ]
    //
    // Note: specifying highlightTheme without a theme will
    // change the code highlight theme while leaving the
    // presentation theme unchanged.
    themes: false,

    // Specifies the path to the default theme files. If your
    // presentation uses a different path to the standard reveal
    // layout then you need to provide this option, but only
    // when 'themes' is set to 'true'. If you provide your own
    // list of themes or 'themes' is set to 'false' the
    // 'themesPath' option is ignored.
    themesPath: 'dist/theme/',

    // Specifies if the transitions menu panel will be shown.
    // Set to 'true' to show the transitions menu panel with
    // the default transitions list. Alternatively, provide an
    // array to specify the transitions to make available in
    // the transitions panel, for example...
    // ['None', 'Fade', 'Slide']
    transitions: false,

    // Adds a menu button to the slides to open the menu panel.
    // Set to 'false' to hide the button.
    openButton: true,

    // If 'true' allows the slide number in the presentation to
    // open the menu panel. The reveal.js slideNumber option must
    // be displayed for this to take effect
    openSlideNumber: false,

    // If true allows the user to open and navigate the menu using
    // the keyboard. Standard keyboard interaction with reveal
    // will be disabled while the menu is open.
    keyboard: true,

    // Normally the menu will close on user actions such as
    // selecting a menu item, or clicking the presentation area.
    // If 'true', the sticky option will leave the menu open
    // until it is explicitly closed, that is, using the close
    // button or pressing the ESC or m key (when the keyboard
    // interaction option is enabled).
    sticky: false,

    // If 'true' standard menu items will be automatically opened
    // when navigating using the keyboard. Note: this only takes
    // effect when both the 'keyboard' and 'sticky' options are enabled.
    autoOpen: true,

    // If 'true' the menu will not be created until it is explicitly
    // requested by calling RevealMenu.init(). Note this will delay
    // the creation of all menu panels, including custom panels, and
    // the menu button.
    delayInit: false,

    // If 'true' the menu will be shown when the menu is initialised.
    openOnInit: false,

    // By default the menu will load it's own font-awesome library
    // icons. If your presentation needs to load a different
    // font-awesome library the 'loadIcons' option can be set to false
    // and the menu will not attempt to load the font-awesome library.
    loadIcons: true
  }
});

Themes Stylesheet

If you are using the themes panel you need to ensure the theme stylesheet in the presentation uses the id="theme" attribute. For example...

<link rel="stylesheet" href="css/theme/black.css" id="theme" />

If your themes configuration includes code highlight themes you need to ensure the highlights theme stylesheet in the presentation uses the id="highlight-theme" attribute. For example...

<link
  rel="stylesheet"
  href="plugin/highlight/zenburn.css"
  id="highlight-theme"
/>

Slide Titles

The slide titles used in the menu can be supplied explicitly or are taken directly from the presentation, using the following rules...

1. The section's data-menu-title attribute.

If the slide's section element contains a data-menu-title attribute this will be used for the slide title in the menu. For example...

<section data-menu-title="Custom Menu Title">
  <h1>Title</h1>
  <p>...</p>
</section>
2. Any element with the class menu-title.

If the slide's section contains an element with the class menu-title then the element's text will be used for the title. The first such element found will be used if there are more than one. Note the element need not be displayed to be used. For example...

<section>
  <h1>Title</h1>
  <span class="menu-title" style="display: none">Custom Menu Title</span>
  <p>...</p>
</section>
3. The first heading found or a custom element selector

The titleSelector option can be used to customise the elements that will be used to generate the slide titles in the menu. The default option selects the first heading element found in the slide. For example...

<section>
  <h3>This will be the slide title in the menu</h3>
  <h1>Title</h1>
  <p>...</p>
</section>

Any valid CSS selector should work but note the selector will only be applied to elements contained within the slide section. You could use the 'h1' selector to only use level 1 headings or 'p' to use the first paragraph element. For example, titleSelector: 'p.lead' would be used like this...

<section>
  <h1>Title</h1>
  <p class="lead">This will be the slide title in the menu</p>
  <p>...</p>
</section>

Using titleSelector: '' will ignore all elements and no title will be provided, unless the slide section contains a data-menu-title attribute or an element with the menu-title class.

4. No title is provided

If no title can be found using the above methods, a default title incorporating the slide number will be used. For example, the following would result in a slide title in the format of 'Slide 12'...

<section>
  <p>...</p>
</section>

If the hideMissingTitles option is set to true, however, the slide will not be listed in the menu.

Custom Menu Panels

Additional custom panels can be added the menu using the custom option.

Reveal.initialize({
  // ...

  menu: {
    // ...

    custom: [
      {
        title: 'Links',
        icon: '<i class="fa fa-external-link">',
        src: 'links.html'
      },
      {
        title: 'About',
        icon: '<i class="fa fa-info">',
        content: '<p>This slidedeck is created with reveal.js</p>'
      }
    ]
  }
});

title and icon are used for the toolbar buttons at the top of the menu. There are two approaches you can use to provide content for the panels...

  • You can provide a URL in src to load html from another file.
  • Alternatively, you can provide html in content and this will be added to the custom panel.
Custom slide menu items

You can provide menu items in your custom panels using the following format. This allows you to define your own navigation links for your presentation.

<h1>Links</h1>
<ul class="slide-menu-items">
  <li class="slide-menu-item"><a href="#/transitions">Transitions</a></li>
  <li class="slide-menu-item"><a href="#/13">Code highlighting</a></li>
</ul>

You are not limited to linking to presentation slides. You can provide any link you wish.

<h1>External Links</h1>
<ul class="slide-menu-items">
  <li class="slide-menu-item">
    <a href="https://github.com/denehyg/reveal.js-menu">Reveal.js-menu</a>
  </li>
  <li class="slide-menu-item">
    <a href="https://github.com/hakimel/reveal.js">Reveal.js</a>
  </li>
</ul>

Using menu items enables keyboard navigation of your links as with the other panels. However, you don't have to use menu items for your links. You can simply provide standard links and unordered lists in your html. Notice you can provide your custom menu items mixed with other html if you wish.

Ready Event

A 'menu-ready' event is fired when reveal.js-menu has loaded all non-async dependencies and is ready to start navigating.

Reveal.addEventListener('menu-ready', function (event) {
  // your code
});

API

The RevealMenu object exposes a JavaScript API for controlling the menu:

Function Description
toggle(event) Toggles the open state of the menu, ie open if it is closed, and close if it is open
openMenu(event) Opens the menu
closeMenu(event, force) Closes the menu. To force the menu to close (ie when sticky option is true) call closeMenu(null, true)
openPanel(event, ref) Opens the menu to a specific panel, passing the name of the panel or the panel element itself
isOpen() Returns true if the menu is open
initialiseMenu() Initialises the menu if it has not already been initialised. Used in conjunction with the delayInit option
isMenuInitialised() Returns true if the menu has been initialised

Compatibility

reveal.js-menu v2.0 is built for reveal.js v4. It will not work with reveal.js v3. If you require a menu for reveal.js v3 you will need to install reveal.js-menu v1.2.0.

v2.0 also introduces API changes that are not backwards compatible. init() has been renamed to initMenu() to deconflict with the reveal.js v4 plugin API. isInit() has also been changed to isMenuInitialised().

License

MIT licensed

Copyright (C) 2020 Greg Denehy

reveal.js-menu's People

Contributors

adamwalling avatar denehyg avatar gcalmettes avatar rajgoel avatar thejefe avatar thomasweinert avatar toub 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

reveal.js-menu's Issues

update options doc

Two things I have noticed:

The "themes" configuration option is true by default (not false, as indicated in the docs).

Also, there is a "transitions" configuration option that functions just like "themes", but is not documented.

Use of cdn for dependencies or compile them to a single file

I am trying to create a webpage with little bit of navigation using the revealjs and reveal-menu. Im also using bootstrap and font-awesome with it. The thing is I kinda have my font-awesome already installed in the index.html via cdn.

It would be nice if I could use that cdn or some thing that allows me load them only once. Instead of loading one for index.html and one in the menu.js

One idea that I have is to compile all the dependencies in one file and give that out.

Menu sometimes does not contain all slides

I just noticed that sometimes the menu does not contain all slides (sometimes everything is perfect, though). This issue could be related to loading of external markdown. Probably the menu is created before the markdown slides are loaded and processed.

H1 titles

Is it possible to include only level one (H1) titles?

Sync speaker notes menu to main presentation

The menu can be used from within the speaker notes, which is useful for changing slides without the audience seeing behind the curtain. But changing themes or transitions only affects the speaker notes presentation, leaving the main presentation unchanged.

It would be preferable for the main presentation and the speaker notes presentation to share events so that both presentations can be kept in sync...

  • Theme changes
  • Transition changes
  • (Optionally) the menu itself, ie open, close, keyboard navigation

External links in the menu from external source open 2 tabs

When you use an external file of links, each link opens the link twice.

You have target="_blank", so tried taking this out, which opens the target in the current tab - thought it might get rid of the extra tabs opening - but no.

Basically two tabs are opening instead of one new tab...

Allow live update of slides menu

It would be great if it would be possible to re-initialize the slide menu, if slides are added dynamically. Would it be possible to add a respective API (or is this already possible and I haven't figured out how to do so)?

Custom Menu external html not loading

Hi,

Inserting
custom: [ {title: 'Links', icon: '<i class="fa fa-external-link">', src: 'links.html' } ],

Using Chrome, the browser reports a XMLHttpRequest failure, although my external html file is at the right place (root level, same as index.html). To be sure that it doesn't come from my links.html file, I replaced it by the one in the example page.

Thanks !

Is it possible to not load "font-awesome"

Hi Greg

Thanks for this great plugin !

When using it, the debug console show me a 404 request to "my_site/reveal.js-menu/font-awesome-4.3.0/css/font-awesome.min.css" and, indeed, I've not take that subdirectory because I already load font-awesome elsewhere in my application.

My question : is it possible to have an option to specify "No, don't try to load the font" ?

The line https://github.com/denehyg/reveal.js-menu/blob/master/menu.js#L16 seems to force the loading.

Thanks !

Custom menu styling

Hi Greg,

thanks for the super fast merge of #5. It appears that your changes in styling of cutom panels created some issue when trying to create a menu with similar look-and-feel as the original menu.

This custom menu content

<ul class="slide-menu-items">
<li class="slide-menu-item"><a href="00 - Introduction.html" target="_blank" style="text-decoration:none">Introduction</a></li>
<li class="slide-menu-item"><a href="01 - Notation.html" target="_blank" style="text-decoration:none">Notation</a></li>
<li class="slide-menu-item"><a href="02 - Sets.html" target="_blank" style="text-decoration:none">Sets</a></li>
</ul>

looks like this

screenshot from 2015-09-05 11 36 26

As you can see, the background highlighting is shifted to the right. It looked ok before 8227b0c. Any idea how to best fix this?

Cheers
Asvin

Remove dependency on ender using $

Ender is using the $ namespace and doesn't work nicely when jquery is also used in the presentation (see #28). It would probably be best to remove this dependency to avoid conflicts with other libraries.

External links in iOS App mode

We are using the reveal.js presentation with the reveal.js-menu as an HTML5 mobile app presentation in the chromeless safari App Mode. So far it is working great!

external link

Per the tutorial, I have "link.html" file with the two list item links for Resources in the above screenshot example. The calculator link should open a a new webpage we have in within the same "app mode" view window. By default iOS opens any links as a new tab in mobile safari vs. staying in App Mode. It doesn't matter if you remove the target="_blank", iOS will still open mobile safari in a new tab. I found one fix which is to write the link tag like the following using an in-line javascript call to change location.

<li class="slide-menu-item"><a href="javascript:this.location = '/calculator/'">Economic Calculator (beta)</a></li>

This does work on the iPad view and loads the page within App Mode View. However, we do have some folks using this in a regular browser and this call doesn't work. Wondering if anyone knows of a way to modify the Custom Menu Panels XMLHttpRequest code (line 442 of menu.js) to open the URL via a javascript location call vs. how it does it now.

A side note: Chrome inspector shows that the xhr.open( 'GET', element.src, false ); has been depricated not sure how crucial that is, but thought I'd mention it.

line 466 of menu.js
xmlhttps-note

I realize this might not be considered a bug for typical browser use, but I thought it could help others who end up using Reveal.js as an HTML5 app presentation and want to link to other pages and maintain the app mode view. Thanks.

Zoom and speaker notes window

Hello,

When two windows are opened (presentation and speaker notes), zoom function on any element works only on one window. I'm wondering if it a bug.

Regards,
Cédric.

menu does not show up in Safari, only in Chrome.

Thanks for the great work. I've encountered an issue that I can access the menu on your live demo using Safari, but when it comes to my testing index.html, I can only access the menu through Chrome. I didn't change any options, just added the dependencies following README.

Maybe the javascript or html5 engines behind Safari and Chrome are different? If that was the case, how could I see menu on the github hosted demo site, but not the local site using Safari? Thanks for your attention.

I tried installing menu both through npm and manually copying.

Menu is broken if called with ?print-pdf

I tried to install the menu so I could switch to a white theme from a black theme. I followed the instructions on the main reveal.js site which states that the presentation has to run in server mode and the print-pdf should be included in the query string.

Doing so breaks the menu plugin....

`m` does not work from speaker notes window

If I press m in the speaker notes window, it should slide in the menu from the left, either in the speaker notes window, or in the main presentation window. Probably it's better to do it in the speaker window, since the keyboard is already focused there so you can continue to navigate the menu from the same window.

Slidecahnged events don't trigger when using plugin

I am using small jquery function to make a simple countup animation in my presentation but when I use menu plugin it suddenly stops to work and trigger only on the slide refresh but not when I change the slide. I tried to reslove the issue but without any luck.

code:

	<script>
			 Reveal.addEventListener( 'slidechanged', function( event ) {
			 if(event.indexh == 5){
			 $('.count').each(function () {
					 $(this).prop('Counter',0).animate({
							 Counter: $(this).text()
					 }, {
							 duration: 3000,
							 easing: 'swing',
							 step: function () {
									 $(this).text(Math.ceil(this.Counter))
							 }
					 });
			 });
			}
			});
			</script>

TypeError: Reveal.getConfig is not a function (menu.js)

Hi there,

I was trying to add your fantastic plugin to the latest Reveal.js version 4.0.0 by downloading the latest files from your github and initializing them in my presentation to the best of my abilities. Unfortunately, it doesn't seem to work, console output is "TypeError: Reveal.getConfig is not a function" regarding your menu.js file.

Can you help me out here?

Thanks a lot in advance,
Thomas

Release for npm

I would be great if reveal.js-menu also could be installed with npm. 👍

menu fails to load when added to slides.com generated slides

I'm just logging this for now -

Adding reveal.js-menu to slides generated by slides.com doesn't work / menu doesn't load.

To get it to work, I needed to:

  • modify the Reveal.initialize dependencies to include async:
    • { src: 'lib/reveal-plugins/menu/menu.js', async: true },
  • remove references in menu.js to head.browser.ie - which were causing errors which prevented loading;

The last item needs a bit more looking, as this did not seem to be an issue when adding menus to presentations generated by reveal-md, or fab setup.revealjs.

Need a more detailed meaning in css config.

I want to change the small menu in other location (more bottom than the default), So which css changes the location of the menu item (the icon when in show slides, not the side menu when click it )

Error load dinamically slide

I have a function that load slides dinamically, like that

Reveal.addEventListener( 'slidechanged', function( event ) {

    //var idPrevSlide =  event.previousSlide.id;
    //var prevSlide = $("#"+idPrevSlide);
    //prevSlide.html("");

    var idSlide = event.currentSlide.id;
    var slide = $("#"+idSlide);
    var settings = slide.data("settings");

    var data = jQuery.parseJSON(settings);

    if(data.tipo == 'texto'){
        slide.load("slides/texto/"+idSlide+".html");
    }

} ); 

But when I add menu.js to reveal, load don't works.
Also I had to change my function, because 'slide.data("settings")' return an string not an object (so I change to jQuery.parseJSON(settings)), but it only happens when I add menu.js.

'TypeError: ref is undefined' on version 1.1.1

I get the following error message in my console on FF using version v1.1.1 of reveal.js-menu with a fresh copy of reveal-js version 3.6.0 when i click 'Themes' in the menu

TypeError: ref is undefined[Learn More]
menu.js:366:6
openPanel
http://localhost:8000/node_modules/reveal.js-menu/menu.js:366:6

Error occurs on the last line of this block

function openPanel(event, ref) {
				openMenu(event);
				var panel = ref;
				if (typeof ref !== "string") {
					panel = ref.currentTarget.getAttribute('data-panel');
.........

Is there a simple way to keep the menu from sliding back to the left

I picked up you platform and really am enjoying it. One thing I am having trouble with though is the menu as it keeps wanting to slide back to the left. Surely I could rediesign the all the li with different class names, but its such a good design. What I have used the left panel for is a form element editor, and every time I click in one of the forms, the menu disappears. Is there a simple way to prevent that?

Vertical slides broken

When having vertical slides the numbering is broken:

 <section >
                <section><h2>Vertical Slide 1</h2>Vertical Slide 1</section>
                <section><h2>Vertical Slide 2</h2>Vertical Slide 2</section>
            </section>

image

But it should be:

image

Menu works on Android phone with Web browser, but not as phonegap app

Following the instructions, I built a presentation using Reveal. I then added the menu. It works on my lap top. I deployed it at github.io and it works there. When I put that same respository thru build.phonegap.com, the resulting app has the navigation from reveal, but no hamberger menu.

Any suggestions where to look to debug this?

IE issues

There seems to be an issue with IE. Menu.js sometimes loads correctly but frequently does not. When this occurs all named links appear as one big link. Clicking makes reveal try to load all slides on top of one another.

Open links to external urls from the standard sections

Is there a way to make a menu item just a link to an external url?

By that I mean embed in the main menu structure a menu item that when clicked just opens the url (new tab preferably)?

Sounds easy but with the section structure I could not find a simple way to do this and do not want to load a list of links into another menu.

hideMissingTitles not hiding nested sections

I'm looking to give sections their title with data-menu-title="" in order to display them in the menu. This works fine but even though I've set hideMissingTitles to true the nested sections still grab the first header within the subsection and display it. Is their anyway I can hide these subsections from the menu.

configuration to choose the position of menu button

by default the menu button is in left bottom corner
but when using reveal.js with autoslide there are two buttons one over the other

is it possible to add a configuration parameter to choose the location of the menu button ?

Page Up/Down should navigate menu

When the menu is long (some presentations can have > 50 or even 100 slides) then it would be useful if after pressing m, Page Up/Down would navigate the menu one page at a time. Bonus points if u and d navigate by half a page, just like with less(1) ;-)

Scrolling on safari

The menu will not scroll on Safari for Mac. If the window is resized, it will scroll as expected.

The issue can be viewed on the reveal.js-menu demo. This is what also happens in my install.

I've tried to fix with css, but so far haven't found anything to work.

Safari 11.0.1, macOS 10.13.1
Safari 11.0.2, macOS 10.13.2

'm' keyboard shortcut does not work when jump.js installed

As heading really.

When you have jump.js installed (allows you to enter a slide number and hit return to go to that slide) and the menu all still is good, but the 'm' keyboard shortcut does not work.

Could be an issue with jump.js or the menu I suppose, but worth a look to see an easy fix...

slides numbers do not show

When using the github version of reveal, the slide numbers do not show.

What version of reveal are you using with your demo ?

Support for Font Awesome 5 SVG with JS framework

Font Awesome 5 introduced a new SVG with Javascript framework. When this framework is used, the <i> tags are replaced with <svg> tags to render the icons.

The current css styles provided for this plugins are not applied when the SVG with JS framework is used since they are targeted to <i> tags only.
I opened a PR to extend the CSS styles to SVG.

Imgur

Scrolling on Android phones

I've noticed a problem with menu scrolling on Android. The menu opens as expected and visible links work, but trying to scroll actually scrolls the slides in the background (i.e. the menu remains static). This is a problem on both Chrome and Firefox. Menu works fine on iOS on Chrome and Safari.

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.