Code Monkey home page Code Monkey logo

vscode-html-languageservice's Introduction

vscode-html-languageservice

HTML language service extracted from VSCode to be reused, e.g in the Monaco editor.

npm Package NPM Downloads Build Status License: MIT

Why?

The vscode-html-languageservice contains the language smarts behind the HTML editing experience of Visual Studio Code and the Monaco editor.

  • doComplete / doComplete2 (async) provide completion proposals for a given location.

  • setCompletionParticipants allows participant to provide suggestions for specific tokens.

  • doHover provides hover information at a given location.

  • format formats the code at the given range.

  • findDocumentLinks finds all links in the document.

  • findDocumentSymbols finds all the symbols in the document.

  • getFoldingRanges return folding ranges for the given document.

  • getSelectionRanges return the selection ranges for the given document. ...

For the complete API see htmlLanguageService.ts and htmlLanguageTypes.ts

Installation

npm install --save vscode-html-languageservice

Development

  • clone this repo, run `npm i``
  • npm test to compile and run tests

How can I run and debug the service?

  • open the folder in VSCode.
  • set breakpoints, e.g. in htmlCompletion.ts
  • run the Unit tests from the run viewlet and wait until a breakpoint is hit: image

How can I run and debug the service inside an instance of VSCode?

  • run VSCode out of sources setup as described here: https://github.com/Microsoft/vscode/wiki/How-to-Contribute
  • link the folder of the vscode-html-languageservice repo to vscode/extensions/html-language-features/server to run VSCode with the latest changes from that folder:
    • cd vscode-html-languageservice, npm link
    • cd vscode/extensions/html-language-features/server, npm link vscode-html-languageservice
  • run VSCode out of source (vscode/scripts/code.sh|bat) and open a .html file
  • in VSCode window that is open on the vscode-html-languageservice sources, run command Debug: Attach to Node process and pick the code-oss process with the html-language-features path image
  • set breakpoints, e.g. in htmlCompletion.ts
  • in the instance run from sources, invoke code completion in the .html file

License

(MIT License)

Copyright 2016-2023, Microsoft

src/languageFacts/data/webCustomData.ts (shipped as lib/esm/languageFacts/data/webCustomData.ts and lib/umd/languageFacts/data/webCustomData.ts) are built upon content from Mozilla Developer Network and distributed under CC BY-SA 2.5.

vscode-html-languageservice's People

Contributors

aeschli avatar ahkol avatar alexdima avatar aliasliao avatar bitwiseman avatar coliff avatar dependabot[bot] avatar domdomegg avatar dummdidumm avatar garconvacher avatar gustavnikolaj avatar hahn-kev avatar hardikshah197 avatar ixquitilissaid avatar jeanp413 avatar johnsoncodehk avatar jzyrobert avatar lszomoru avatar miladbarazandeh avatar msftgits avatar octref avatar ramya-rao-a avatar rzhao271 avatar sapphi-red avatar sibiraj-s avatar simon-knu avatar ssigwart avatar steve1998 avatar tony-xia avatar vzvu3k6k 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

vscode-html-languageservice's Issues

meta name intellisense

If I type <meta name=" it'd be great if it offered autocomplete options:
"application-name", "author", "description", "format-detection", "generator", "keywords", "publisher", "referrer", "robots", "theme-color", "viewport"

vscode-html-languageservice not calculating range for textEdit?

I'm using vscode-html-languageservice in my own plugin, but I found the range given from textEdit would always be an empty range, like ๏ผš

{
  "label": "on-touch",
  "kind": 12,
  "textEdit": {
    "range": {
      "start": {
        "line": 191,
        "character": 15
      },
      "end": {
        "line": 191,
        "character": 15
      }
    },
    "newText": "on-touch=\"$1\""
  },
  "insertTextFormat": 2
}

It doesn't contains the word that should be remove, which result in

bug

Dynamic custom data based code in a workspace

Looking at https://github.com/Microsoft/vscode-html-languageservice/blob/master/docs/customData.md

I may be misreading/misunderstanding, but it looks like the ways to provide custom data are all static?

A couple of use cases:

  • A user's code has dependencies that declare custom elements. Suppose that these dependencies ship with html custom data json files (e.g. in well known locations within the node_modules directory). Would the user need to manually set the html.experimental.customData array to point to the paths to these files?

  • A user's own code may declare custom elements. If an extension performs real time static analysis on that code, can it contribute information about those custom elements to the html languageservice?

Support for optional closing tags (e.g. paragraphs and list items) in Breadcrumbs, Outline and formatters

For HTML document

<!doctype html>
<head><title>Test</title>
<body><p>a<p>b<p>c

Placing cursor at the end of the "c" paragraph makes Breadcrumbs display

head > body > p > p > p

It is incorrect by HTML5 spec: https://www.w3.org/TR/html5/syntax.html#optional-tags

Correct outcome should be (not considering implied HTML):

body > p

VSC Version: 1.35.0 showing above snippet and Breadcrumbs


I assume it must have been discussed in the past but couldn't find any trace of prior issue.
Yes, not using optional closing tags is generally considered bad coding practice (not considering "google output compression"), and I assume that fixing this would not be a trivial task (considering complexity of specs), but current state when VSCode Outline lies about resulting HTML structure is not fortunate.

(I'm no sure about support for implied elements and their corresponding tags, but I assume it might be confusing to see e.g tbody nodes in table lacking explicit opening tbody tag. Perhaps different issue.)

More verbose descriptive article
<html>
<!--
	This tag does not have to be present in the source code: <html> tag (without attributes) is implied
-->
	<head><!-- Ditto <head>. -->
		<title>Optional closing tags test for VS Code</title>
		<!-- <title> is the only mandatory tag in HTML document -->
	<body>
	<!--
		Neither <body> is mandatory.
		Presence of <body> here automatically finished <head>.
		In fact occurrence of any element that is not allowed in HEAD would do the same.
	-->
		<p>HTML syntax tree in current Visual Studio Code is not correct.
		<h2>Trivia:</h2>
		<p>There are several block level elements with optional closing tags in HTML:
		<dl>
			<dt><code>P</code>
			<dd>paragraph cannot contain block-level elements so any of them finishes it, 
			<dt><code>HTML</code>, <code>HEAD</code>, <code>BODY</code> <code>TBODY</code> <code>COLGROUP</code>
			<dd>those are even <i>implied</i>, so even their starting tags are optional; presence of elements that belongs there creates them
			<dt><code>LI</code>, <code>DT</code>, <code>DD</code>
			<dd>finished by parent <code>/UL</code>, <code>/OL</code>, <code>/DL</code> or following <code>LI</code>, <code>DT</code>, <code>DD</code>
		</dl>
		<p>If you place cursor in the end of the source of definition list above, you'll observe 
            <code>html > head > body > p > p > dl > dt > dd > dt > dd > dt > dd</code> being displayed in breadcrumbs, what implies that given definition is nested in of preceding definitions what in two nested paragraphs which are children of body <i>in</i> head.
        <p>It is completely different of how HTML5 conforming agent interprets it. Correct path should be <code>html > body > dl > dd</code>
        <p>This affects Breacrubs and logicaly Outline and to some degree Format document action. (IIRC formatting is currently done in other library than language service, but mentioning it for completeness).
<!-- end of file finishes all opened tags -->

Insert warning on deprecated / obsolete HTML Elements

As a feature that could be implemented after #22, It would be neat to either display a warning / error on html elements which are deprecated (blink, marquee, etc.).

In MDN's browser-compat-data repo, html elements have a deprecated property on them (For instance, here on the blink tag, so if the language server switches to use MDN's data, this could be a fairly quick feature to implement.

Support for .html.eex and .html.leex files

Please add support (at least) for closing and renaming files while editing Elixir Phoenix (Live) templates, files with extensions like .html.eex and .html.leex
These files have script parts inside, therefore I can't just say they are in HTML format - I will loose all auto completion related to elixir then.

HTML Code-Folding breaks with invalid javascript code

Issue Type: Bug

Code folding does not work on some files where there is javascript code with certain syntax errors. Whenever an affected file is changed, the message "A request has failed. See the output for more information." appears in the bottom right-hand corner.

Steps to Reproduce:

  1. Create a HTML file with the following contents:
<script type="text/javascript">
  try {
    var x = [
      {% try %}{% except %} // <-- breaks code folding support
    ]
  } catch (e) {
  }
</script>

Stack Trace:

TypeError: Cannot read property 'getStart' of undefined
    at Object.createTextSpanFromNode (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:97445:49)
    at spanBetweenTokens (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:106650:72)
    at spanForNode (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:106636:51)
    at getOutliningSpanForNode (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:106584:40)
    at visitNonImportNode (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:106456:28)
    at visitNode (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:16622:24)
    at Object.forEachChild (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:16919:21)
    at NodeObject.forEachChild (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:121404:23)
    at visitNonImportNode (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:106469:23)
    at addNodeOutliningSpans (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/typescript.js:106431:21)
[Error - 10:31:03 AM] Error while computing folding regions for file:///Users/rich/Desktop/crash.html: Cannot read property 'getStart' of undefined

VS Code version: Code 1.37.1 (f06011ac164ae4dc8e753a3fe7f9549844d15e35, 2019-08-15T16:16:34.800Z)
OS version: Darwin x64 18.5.0

System Info
Item Value
CPUs Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz (4 x 2500)
GPU Status 2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
native_gpu_memory_buffers: enabled
oop_rasterization: disabled_off
protected_video_decode: unavailable_off
rasterization: enabled
skia_deferred_display_list: disabled_off
skia_renderer: disabled_off
surface_synchronization: enabled_on
video_decode: enabled
viz_display_compositor: disabled_off
webgl: enabled
webgl2: enabled
Load (avg) 2, 2, 3
Memory (System) 16.00GB (3.95GB free)
Process Argv --disable-extensions
Screen Reader no
VM 57%
Extensions disabled

Could not find a declaration file for module './languageFacts'.

Repo

  • Using 2.1.11 from npm
  • Try import some goods:
import {
    getLanguageService as getHtmlLanguageService,
    LanguageService as HtmlLanguageService,
} from 'vscode-html-languageservice';

Bug

See the compile error:

C:\GitHub\Razor.VSCode\src\Microsoft.AspNetCore.Razor.VSCode\node_modules\vscode-html-languageservice\lib\umd\htmlLanguageService.d.ts(5,34): error TS7016: Build:Could not find a declaration file for module './languageFacts'. 'C:/GitHub/Razor.VSCode/src/Microsoft.AspNetCore.Razor.VSCode/node_modules/vscode-html-languageservice/lib/umd/languageFacts/index.js' implicitly has an 'any' type. [C:\GitHub\Razor.VSCode\src\Microsoft.AspNetCore.Razor.VSCode\Microsoft.AspNetCore.Razor.VSCode.csproj]

I confirmed that a directory called languageFacts exists on disk but that it only contains js files.

Seems similar to microsoft/vscode-css-languageservice#148

specify the type of attribute to be a path

what if an attribute can be a path, like img src="./path" i want to be able to get access to the autocompletions based on the discovered files. couldn't find how it's done with img src actually.

"tags": {
    "name": "test",
    "description": "testing.",
    "attributes": [{
      "name": "src",
      "description": "the source img",
      "type": "file" // i want this 
    }]
  }
<test src="../img/"

Use it outside VSCode

Hi,
We want to use this LS for our in house editor together with the CSS and JSON language servers. Now where is instruction how to do that. We want to use it over Sockets not STDIO.

Sorry if it is already documented somewhere. I could not find it!

Suggestion: Extensibility API for custom language modes within an HTML-like document

I've been working on and off for a few years on a VS Code extension for Ecmarkup, an HTML dialect used for writing programming language specifications (specifically, ECMAScript/JavaScript and TypeScript). I had initially tried to leverage the html-language-service directly for this, but it fell short of my needs. In the end I started to build a more flexible service for handling mixed-language documents so that I could have an improved "find-all-references" and "go-to-definition" experience.

When the ability to supply custom tag data to the HTML language service became available, I was hoping to investigate leveraging that, but unfortunately it still falls short of my needs. What I'd like to be able to do is extend the vscode-html-languageservice to include three additional language modes, based on specific tags/attributes in the document:

  1. Ecmarkup uses a <pre class="metadata"> tag to include YAML front-matter in the document that is stripped during processing.
  2. Ecmarkup uses a markdown-like syntax for defining algorithm steps in an <emu-alg> tag using Ecmarkdown. Ecmarkdown content can also be parsed in the content of any HTML element.
  3. Ecmarkup uses a specialized syntax for defining syntactic grammar in an <emu-grammar> tag using Grammarkdown.

My goals are:

  • Support YAML, Ecmarkdown, and Grammarkdown as separate language modes inside of an Ecmarkup HTML document.
  • Leverage the existing language services features for Grammarkdown (currently published as grammarkdown-vscode) to parse <emu-grammar> content. This includes existing capabilities for "find-all-references", "go-to-definition", and others for Grammarkdown content.
  • Use all of the collective information to support "find-all-references" and "go-to-definition" across the entire document. For example, a grammar production such as MemberExpression might be defined in an <emu-grammar> clause, and later referenced elsewhere within the specification using Ecmarkdown syntax:
    <emu-clause id="...">
      <h1>Syntax</h1>
      <emu-grammar>
        MemberExpression : 
          LeftHandSideExpression
          MemberExpression `.` IdentifierName
          MemberExpression `[` Expression `]`
      </emu-grammar>
      <p>
        A |MemberExpression| is ...
      </p>
    </emu-clause>

Currently all of this requires a custom language server that emulates the mixed-language parsing features already present in vscode-html-languageservice, with the added complexity that Grammarkdown is a whitespace-sensitive dialect (and the current vscode-html-languageservice behavior or just replacing non-mode-specific text content with whitespace can cause problems with Grammarkdown's language features.

As a result, my asks are:

  • Allow for the ability for another extension to wrap the vscode-html-languageservice
  • Modify vscode-html-languageservcie to provide extensibility points to hook additional custom parsers and add additional language modes.

Related: microsoft/vscode-custom-data#16, microsoft/vscode-custom-data#17

If attribute is named "data", an additional attribute called "data-" is added. Bug?

This is odd, if I have an attribute called "data", two items are added to the list of choices: "data" and "data-". This is the only attribute which I've encountered any issues (our schema has > 1000 attribute names).

image

You can replicate using:
{
"version": 1,
"tags": [{
"name": "my-button",
"description": "My button",
"attributes": [{
"name": "data",
"description": "My button type",
"values": [
{ "name": "alert-one" },
{ "name": "alert-two" }
]
}]
}]}

Then activate the above as you will, and type:

<my-button |

You will see list of choices including:
data
data-

This seems like a bug to me.

HTML tag autocompletion isn't case sensitive

When using VS Code's auto complete in a .html file, it will offer to close a tag like the following example:

<myTag> ... </mytag>

This can cause run time errors when using frameworks like Angular 2.

don't open attributes for boolean

if i have a boolean attribute and type where d will be suggested, and i press enter, the attribute is opened like but I don't want ="" because it's a boolean attribute (values = [true, false]). can you disable that

Some missing event attributes (onX)

It seems some global event attributes are missing. These I noticed:

  • onmouseenter
  • onmouseleave
  • all onpointerX events (although this might be as-designed since Safari doesn't seem to support them)

Running language server from command line.

I have installed/compiled this project successfully. But now I wonder how I can run the language server from command line?

I have tried using node lib/umd/htmlLanguageService.js, but it exits without giving any message.

Any chance you could provide some instructions on this? Thanks!

d.ts. files for lib/umd/languageFacts aren't included in npm package

vs

Seeing this error as a client on 3.0.3 (latest prod):

> svelte-language-server
$ tsc

node_modules/vscode-html-languageservice/lib/umd/languageFacts/data/html5.d.ts:1:34 - error TS7016: Could not find a declaration file for module '../dataProvider'. '/Users/ortatherox/dev/svelte/language-tools/node_modules/vscode-html-languageservice/lib/umd/languageFacts/dataProvider.js' implicitly has an 'any' type.

1 import { HTMLDataProvider } from '../dataProvider';
                                   ~~~~~~~~~~~~~~~~~

Found 1 error.

But the same issue existing on 4.0.0 also: https://unpkg.com/browse/[email protected]/lib/umd/languageFacts/

Could not run `npm install` on Windows

When trying to run npm-install on a windows machine, I get the following error:

> tsc -p ./src && cp ./src/beautify/*.js ./lib/beautify

'cp' is not recognized as an internal or external command,
operable program or batch file.

npm ERR! Windows_NT 10.0.14986

I had to modify package.json to the block of code below, which is also not a cross platform solution:

    "compile": "tsc -p .\\src && copy .\\src\\beautify\\*.js .\\lib\\beautify",
    "watch": "copy .\\src\\beautify\\*.js .\\lib\\beautify && tsc -w -p .\\src",

Document supported settings

I can't find a reference to the list of settings that work with this language server (and not vscode specific).

Update beautify-html.d.ts wrap_attributes documentation

The preserve and preserve-aligned values for the wrap_attributes property are missing from the comment/description block above it.

Currently:

   /**
     * wrap each attribute except first ('force')
     * wrap each attribute except first and align ('force-aligned')
     * wrap each attribute ('force-expand-multiline')
     * multiple attributes are allowed per line, attributes that wrap will align vertically ('aligned-multiple')
     * wrap only when line length is reached ('auto')
     *
     * default auto
     */
    wrap_attributes?: 'auto' | 'force' | 'force-expand-multiline' | 'force-aligned' | 'aligned-multiple' | 'preserve' | 'preserve-aligned';

I know it's kind of nitpicky but I stumbled upon it on accident.

HTML formater puts new line after open brace and open tag.

  • VSCode Version: 1.24.1, 1.25.0-insider
  • OS Version: Windows 10 pro

Steps to Reproduce:

  1. Create .html file. Add next line:
This (<span>is</span>) text.
  1. Run Format Document or press CTRL+Shift+F.

Expected Result:
Line remains unchanged:

This (<span>is</span>) text.

Actual Result:
Formater puts new line after open brace and open tag:

This (
<span>is</span>) text.

Does this issue occur when all extensions are disabled?: Yes

Highlight error

I discovered an error with the syntax highlighting of HTML code.
If we have a custom tag that starts with script followed by a dash ex <script-module>. The text after the script part will be highlighted in red and the rest of the file will not be correctly highlighted.

See this screenshot

image

<split-pane-container>
  <script-module></script-module>
</split-pane-container>

Steps to Reproduce:

  1. Type in a tag that starts with script followed by a dash eg <script-module></script-module>
  2. The file isn't correctly highlighted

Add data manager

Even though it doesn't seem that there is officially support for this, I am using this package and Microsoft/vscode-css-languageservice for their well organized and structured data. The CSS package makes it a bit easier by having a data manger, so it would be nice if this package had that as well.

Default Values

Wondering about support for default values? Say I type in

<foo |
I see attribute baz.
Now if I select off list I see:
<foo baz=""
If I ctrl-space, I get list of say:
baz-val-1
baz-val-2

If I could mark "baz-val-1" as the default, I would want
<foo |
and selecting "baz" from the list of attributes, now I would get this
<foo baz="baz-val-1"
ie, instead of just "", I would get "defaultvalue" selected..

Also, if I just type:
< foo baz=
then the drop would change from
baz-val-1
baz-val-2
to
baz-val-1 - default
baz-val-2

If no default flag was indicated in the json, then the original behaviour would continue.

Compile error when using strict in TypeScript

Repo

  1. For some TS code that consumes this library:
import { getLanguageService, LanguageService } from 'vscode-html-languageservice';
{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "strict": true
    }
}
  1. Run tsc -p tsconfig.json

Bug

node_modules/vscode-html-languageservice/lib/htmlLanguageService.d.ts(19,5): error TS2411: Property 'hideAutoCompleteProposals' of type 'boolean | undefined' is not assignable to string index type 'boolean'.

markdown descriptions

If a URL is used in a description, it's clickable in the hover text:
image

However, it's not clickable when shown in dropdown of options when typing:
image

Also, it would be nice to have a way to hide the URL and show a rich text hot link, aka a markdown or HTML anchor instead of just relying on the full URL.

customData.md improvements

Testing microsoft/vscode#79843

In https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md

Version denotes the schema version you are using. The latest schema version is V1.

Looks like it's 1.1 (I think it should really be 2.0 as the latest change was breaking)

You might want to use the json.schemas setting to check your data against the schema and get auto-completion:

Why not adding $schema directly to the JSON file?

"url": "https://raw.githubusercontent.com/Microsoft/vscode-html-languageservice/master/docs/customData.schema.json" }

The schema URI should also contain an version. We should keep the previous major versions.

html5.ts contains that built-in dataset that conforms to the spec.

That's a typescript file, not JSON, so not very helpful.

As the document is located in vscode-html-languageservice, it should not describe VSCode features, but rather concentrate on the data format and content.
vscode-html-languageservice is a library to be used by anyone.
=> description of settings should go into the docs

With setting html.customData

"html.customData" doesn't work yet

Provide an option to allow HTML formatter insert newlines after specified tags

There is an option in VS Code that it current supports inserting newlines:

  "html.format.extraLiners": "head, body, /html",

However, that option is only for inserting newlines before the specified tags. It currently doesn't support inserting newlines after specified tags when formatting HTML documents.

Is it okay to add an option to specify tags to insert newlines after?

When opening MDN link, signal to MDN it's from VS Code

From #12 (comment)

The only concern I have is that as a user, I'd want a clean URL that's easily sharable, like:

https://developer.mozilla.org/en-US/docs/Web/CSS/animation

instead of:

https://developer.mozilla.org/en-US/docs/Web/CSS/animation?from=vscode

I'm wondering if we could achieve this through other means. For example setting a user-agent (is this achievable?) when we open external links. Or we could ask MDN to have a client side redirect that cleans up the params.

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.