Coder Social home page Coder Social logo

lencerf / vscode-beancount Goto Github PK

View Code? Open in Web Editor NEW
166.0 9.0 34.0 522 KB

VSCode extension for Beancount

Home Page: https://marketplace.visualstudio.com/items?itemName=Lencerf.beancount

License: MIT License

TypeScript 89.18% Python 7.30% JavaScript 3.52%

vscode-beancount's Introduction

VSCode-Beancount

VSCode extension for the text-based double-entry accounting tool Beancount

version downloads installs rating license

Features

  1. Syntax highlight (syntax file from draug3n/sublime-beancount)
  2. Decimal point alignment
  3. Auto-completion of account names, payees, and narrations
  4. Auto balance checking after saving files
  5. Hovers with account balances.
  6. Code snippets (@vlamacko)
  7. Region folding - use indentation (#5), or special comments (#11). For org-mode style folding see vscode-org-fold
  8. (Experimental) Use Pinyin initial letters to input existing Chinese narrations and payees quickly. 使用拼音首字母快速输入现有的中文受款人和描述 。See details.

Extension Settings

This extension contributes the following settings:

  • beancount.separatorColumn: specify the column of the decimal separator.
  • beancount.instantAlignment: Set it to true to align the amount (like 1.00 BTC) once a decimal point is inserted.
  • beancount.completePayeeNarration: Controls whether the auto completion list should include payee and narration fields.
  • beancount.mainBeanFile: If you are splitting beancount files into multiple files, set this value to either the full path or the relative path to your main bean file so that this extension can get all account information. If it is left blank, the extension will consider the file in the current window as the main file.
  • beancount.runFavaOnActivate: If it is set to true, fava will run once this extension is activated.
  • beancount.favaPath: Specify the path of Fava if Fava is not installed in the main Python installation.
  • beancount.python3Path: Specify the path of Python if beancount is not installed in the main Python installation.
  • beancount.fixedCJKWidth: Set to true to treat CJK aka East Asian characters as two letters width on alignment.
  • beancount.inputMethods: List the input methods for auto-completion of payees and narrations with CJK characters. Currently only pinyin is supported. See details.

Recommended practices

  1. Make sure you installed Python3 and beancount. Set beancount.python3Path to the correct path.
  2. Split your ledger into several .bean files according to time and put all your open/close in a main file.
  3. Include all other files in the main file by the include command in the main bean file.
  4. Open BeanFolder with VSCode and set beancount.mainBeanFile to the full path of main.bean in the current Workspace Settings.

For example, the file structure of your directory looks like this

BeanFolder
├── .vscode
│   └── settings.json
├── main.bean
├── before2017.bean
├── 2017-01.bean
└── 2017-02.bean

If you open .vscode/settings.json, you should see something like this:

{
  "beancount.mainBeanFile": "main.bean"
}

Now once BeanFolder is opened as a workspace in VSCode, this extension will be able to invoke beancount to check errors and calculate balances.

Known Issues

see GitHub issue page

Release Notes

0.11.0

  • Allow syntax highlight in markdown @hotshotxwl
  • Support opening files from 'include' directive by adding DocumentLinkProvider @mengqi92
  • Add org-mode-fold to README.md @dumbPy
  • oneliner version syntx with file suffix .beancount.oneline or .bean.oneline. @Akuukis

0.10.0

0.9.1

  • "Input Method" Support on Account Name @zinc0x1E
  • Do not create fava terminal as default, fix #77

vscode-beancount's People

Contributors

akuukis avatar chylli-deriv avatar dcyoung05 avatar dependabot[bot] avatar dumbpy avatar hotshotxwl avatar huruka avatar isometimescode avatar jumoel avatar lencerf avatar lockjs avatar mariosangiorgio avatar mengqi92 avatar mjec avatar nicolasp avatar pluwen avatar robotkid avatar seiarotg avatar sevenkplus avatar thomasdenh avatar vizanto avatar vlamacko avatar whusnoopy avatar yukixz avatar zacharylawrence avatar zinc0x1e 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

vscode-beancount's Issues

Add git tags/releases for 0.8.2, 0.9.0

I'm trying to incorporate this plugin into a prebuilt app (via yarn) and can't reference the latest version by git tag or github releases. Can you add tags/releases? I couldn't find an obvious way to do this via pull-request, but the following should do it:

git tag -a v0.8.2 7f4649d7e9a79152691beab752dfd030ad15f270 -m "add version tag"
git tag -a v0.9.0 625437c6c57ba8913f1c216a2b04b2fe3a6d95cb -m "add version tag"
git push --tags

Thanks!

Support pipenv and virtualenv

If beancount is installed with pipenv or in a virtualenv (or anyway not in the main Python installation), simply using python3 won't work.

Maybe provide a preference to specify the Python path.

金额自动对齐时,无法将中文字符识别为2个字符

您好!您的插件非常棒,感谢您的分享!

我在使用中发现,账户信息是纯英文时,对齐的很完美,但是中英文混合的账户,无法对齐。

我使用的是严格的等宽字体,2个英文字母(不区分大小写)宽度 = 1个中文宽度。
经过我的测试,证实formatter插件没有将1个中文的宽度和1个英文字母的宽度进行区分,两者的宽度被视为是一样的。

以下这两行字符数是一样多,格式化后是这样:

1个中文的宽度,实际占用了2个英文字母的空间。第一行一共有8个中文,我们在第二行补上8个英文字母后,金额就对齐了:

参考字体

参考代码:
Expenses:食品烟酒:烟酒:酒类 500.00 CNY
Expenses:abcd:ab:ab 600.00 CNY
abcdababExpenses:abcd:ab:ab 600.00 CNY

我的个人代码能力很差,希望您能在有空的时候,解决一下这个问题。
万分感谢!

Plugin fails to load

Activating extension 'Lencerf.beancount' failed: ENOENT: no such file or directory, uv_chdir

I receive a few instances of the above message in the developer console whenever opening a .bean file.
I have no idea if this is user error or a problem with the plugin.
Here is the accompanying stacktrace.

    at process.chdir (c:\Program Files\Microsoft VS Code\resources\app\node_modules.asar\graceful-fs\polyfills.js:21:9)
    at process.chdir (C:\Users\Name\.vscode\extensions\ms-vsliveshare.vsliveshare-0.3.1071\node_modules\graceful-fs\polyfills.js:21:9)
    at process.chdir (C:\Users\Name\.vscode\extensions\ms-vsliveshare.vsliveshare-0.3.1071\node_modules\read-last-lines\node_modules\graceful-fs\polyfills.js:21:9)
    at Extension.refreshData (C:\Users\Name\.vscode\extensions\lencerf.beancount-0.3.0\out\extension.js:47:23)
    at activate (C:\Users\Name\.vscode\extensions\lencerf.beancount-0.3.0\out\extension.js:22:15)
    at Function.t._callActivateOptional (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:759:329)
    at Function.t._callActivate (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:759:6)
    at c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:758:173
    at <anonymous>```

account autocomplete doesn't triggered in snippet?

when i insert a custom snippet, with the cursor jump to Tabstops, typing character doesn't trigger auto-completion
1

but except type 2.
2

after complete the snippet, in the previous position, typing character can trigger auto-completion.
3

Can I use relative path on beancount.python3path

As I worked on a macOS and a WSL, the full beancount.python3path are /Users/yewen/.virtualenvs/bc/bin/python and /home/yewen/.virtualenvs/bc/bin/python, I want to set the path to ~/.virtualenvs/bc/bin/python then I can sync project settings between macOS and WSL

But it doesn't works on WSL, the output on absolutely path and relative path are

try finding a valid bean file...user specified a main bean file with a relative path...
running /home/yewen/.virtualenvs/bc/bin/python /home/yewen/.vscode-server/extensions/lencerf.beancount-0.7.0/pythonFiles/beancheck.py,/home/yewen/workspace/personal-beancount/main.bean,--payeeNarration to refresh data...
try finding a valid bean file...user specified a main bean file with a relative path...
Data refreshed.
try finding a valid bean file...user specified a main bean file with a relative path...
running ~/.virtualenvs/bc/bin/python /home/yewen/.vscode-server/extensions/lencerf.beancount-0.7.0/pythonFiles/beancheck.py,/home/yewen/workspace/personal-beancount/main.bean,--payeeNarration to refresh data...
error: Error: spawn ~/.virtualenvs/bc/bin/python ENOENT

and the beancount.favaPath works on relative path, the output are

try finding a valid bean file...user specified a main bean file with a relative path...
executed [~/.virtualenvs/bc/bin/fava -H 127.0.0.1 "/home/yewen/workspace/personal-beancount/main.bean"]

Add support to the auto-completion of CJK characters

Although the official documents say:

Each component of the account names begin with a capital letter or a number and are followed letters, numbers or dash (-) characters. All other characters are disallowed.

But I tested that bean-count CAN support account names followed with CJK characters.

Snipaste_2020-01-14_23-07-14

So could you please support the auto-completion of CJK characters?

=====================

虽然官方文档表示:Bean-count的账户名只能以大写字母或数字作为开头,中间为字母数字或分隔号,但是经过我的测试发现,只要账户名开头满足要求,后面可以填入中文字符,beancount也能正确处理。

Snipaste_2020-01-14_23-07-14

所以能让这个vscode-beancount的插件支持CJK字符的自动补全吗?

Commentted Line Still Appear in Auto-complete

I commented off a line that open a credit card but the auto-complete option still gives out this credit card. I think it would be better to ignore the commented lines since those are the things that people don't want to have in there code at least for now.

Closed accounts showing up in autocompletion

Step to reproduce:

  1. Open a new bean file in VSCode
  2. Type in the following code:
2022-01-29 open Assets:Test1 USD

2022-01-30 close Assets:Test1
  1. Try to add a new transaction with this closed account as a payee

The closed account shows up in the autocompletion candidate. (Screenshot below)

image

Why this should not happen

Closed accounts are supposed to have no new transactions. So their showing up is useless. As number of closed accounts grows, the autocompletion list could be filled with closed account, which makes it difficult to find the accounts we want.

Environment

  • Windows 11 21H2
  • VSCode 1.63.2
  • VSCode-Beancount v0.8.0
  • beancount 2.3.4

VSCode-Beancount Settings:
Beancount: Complete Payee Narration: true/false (no matter what this setting is, the problem is there)
(Other settings should be unrelated)

Multi-file-ledger: vscode does not reflect "parent" files

Setting:
A main ledger file A ("parent") that includes files files B and C (both "children") containing account openings and transactions.

When editing a child, syntax errors are highlighted whenever "bean-check PathToChild" throws an error. Auto-completion does not work for accounts mentioned only in other children or the parent.

Could this be improved such that vscode is aware of the parent file A and all its children, B and C, when highlighting syntax errors and auto completing edits? Even if all files were in the same folder?

Account completion does not work with (some) unicode characters

Tried with south Slavic latin characters (ć, č, š, etc.) and also with (Serbian) cyrillic. It seems that the completion treats these characters as separators (parts before and after show up for completion). I guess the relevant regex isn't complete (from what I see in #19, didn't dig deeper)?

warning flag is marked at wrong line/position

Probably a recent change, when I have a transaction using !, the yellow underlines now show up not on the line of the problem but from the start of the file to one line before the actual ! line.
ERRORs are fine (red underlying). only WARNING has this problem.

VSCode mainbeanfile: no effect

I'd love to use the autocomplete feature based on my full ledger, but i can't get it working. Any suggestions?

[SOLVED: see solution at the bottom of this opening post]

System: WSL Ubuntu 18.04 & VSCode, beancount extension

steps to reproduce:

  1. in terminal, cd to main bean folder
  2. enter "code ."
  3. in the vscode window, look for the setting "beancount.mainBeanFile" and override default to "~/pathToLedgerFolder/LedgerFiles/main.bean" Question: should this be in user or workspace preferences? I put it in both to be sure.
  4. make file child.bean and add the line "include child.bean" to main.bean. save main.bean.
  5. open child.bean, enter the following incomplete transaction and observe no autocomplete suggestions:
    image

intended behavior:
show suggestions from main.bean and all included files (image from within main.bean:
image

I also made the settings.json with

{
    "beancount.mainBeanFile": "~/pathToLedger/LedgerFolder/Ledgerfiles/main.bean"
}

according to the scheme below. I wonder how it relates to the user/workspace settings of vscode

BeanFolder
├── ledgerFiles
│ ├── .vscode
│ │ └── settings.json
│ └── main.bean

SOLUTION

The cause of the problem was

  1. me specifying an absolute path of the main.bean file where a relative path is required.
  2. me using "~/" instead of "home/" for specifying the python path.

so i could fix the problem by changing

{
    "beancount.mainBeanFile": "~/pathToLedger/BeanFolder/Ledgerfiles/main.bean",
    "beancount.python3Path": "~/path/miniconda3/envs/Bean/bin/python3"
}

to

{
    "beancount.mainBeanFile": "main.bean",
    "beancount.python3Path": "home/path/miniconda3/envs/Bean/bin/python3"
}

just to be clear, these lines need to be

BeanFolder
├── ledgerFiles
│   ├── .vscode
│   │   └── settings.json  <- in this file
│   └── main.bean

you can find the correct relative path by right clicking the main.bean in the explorer pane:
image

the correct python path you can find by entering which python3 and copy-pasting the answer

[edit]
with these 2 paths in my Workspace Setting I managed to activate auto completion without the restriction of having the main bean folder as vscode working space folder.

Account autocompletion fails due to commodity price error.

Update: see #38 (comment).

Fold structure and workspace settings are
{ "beancount.mainBeanFile": "main.bean", "beancount.python3Path": "/Users/dufan/anaconda3/bin/python3" }

In mean.bean I have included all other beancount files. In account.beancount there are all open commands. But no account auto complete when editing other files, like test.beancount.

Open VSX Listing: Signing the Publisher Agreement

Thank you for being part of the Open VSX community by adding your extensions to the Open VSX Registry. Please note that the service was recently transferred to the Eclipse Foundation and urgent action on your part is needed so we can continue to list your extensions. To ensure uninterrupted service, please sign the Eclipse Publisher Agreement on or before January 8, 2021. If not signed by that date, your extensions will be delisted and will no longer appear on the site nor be available via the API. If you sign at a later date, your extensions will then be re-activated. The signing process is explained in the Wiki (steps 1 and 2).

Please also note that all extensions MUST have a license in order to be listed.

More details are in these recent blog posts:
https://blogs.eclipse.org/post/brian-king/open-vsx-registry-under-new-management
https://blogs.eclipse.org/post/brian-king/new-era-open-vsx-registry

Today, there’s growing momentum around open source tools and technologies that support Visual Studio (VS) Code extensions. Leading global organizations are adopting these tools and technologies. This momentum has spurred demand for a marketplace without restrictions and limitations. Thanks for joining us on this journey as we continue to build the Open VSX community. We look forward to continued innovation from you in 2021!

Using major account name options is not supported, they are marked as errors

I use capital letters for my 5 major account types, to make them more obvious. Beancount supports with the following options:

option "name_assets" "ASSETS"
option "name_liabilities" "LIABILITIES"
option "name_equity" "EQUITY"
option "name_income" "INCOME"
option "name_expenses" "EXPENSES"

The formatter does not use these and marks all of my major account types as an error in RED.

Support multiple main bean files

Problem

How hard would it be to support multiple, unrelated ledgers each with multiple files? I have a use case where I write my personal and household ledgers in separately, but using the "beancount.mainBeanFile" I can select only one of them, while the other is simply ignored.

Proposal

Expand config to support multiple main bean files

{
    "beancount.mainBeanFile": [
        "personal/main.bean",
        "household/main.bean"
    ]
}

Provide account completion

See here for Sublime fix: norseghost/sublime-beancount#5

Basically, in Sublime Text the hack was to modify the word separators setting to exclude the colon. This would effectively treat an account name like an entire word and thus allow fuzzy searching across account names.

VS Code seems to have a similar setting: editor.wordSeparators

However, modifying this setting to exclude the colon in my user settings seems to have no effect on word completion. I'm completely unfamiliar with VS Code extensions, is it possible this extension would overwrite that behavior? Is this something that can be implemented within the extension?

Switching between text editors do not reset context

I have two unrelated beancount files in the same workspace. When I switch between the two editors, I expect the autocomplete to respect the current file, but instead what happens is that the autocomplete shows for the previously opened file until I click save.

I made and tested a fix by myself that seems to work (in extension.ts):

  context.subscriptions.push(
      vscode.window.onDidChangeActiveTextEditor(
          (e) => extension.refreshData(context)
      )
  );

Please let me know if I am on the right path, then I can just submit a PR. Thank you.

How to do Bean check and Bean balances?

How does the extension do this as mentioned in the read me?
Now once BeanFolder is opened as a workspace in VSCode, this extension will be able to invoke beancount to check errors and calculate balances.

no error squiggles and hover with new vscode

With the new vscode version I don't get the error squiggles and hovering anymore
I am on Linux, vscode version is the following.

$ code --version
1.54.3
2b9aebd5354a3629c3aba0a5f5df49f43d6689f8
x64

Code folding doesn't work on files over a certain size / complexity

This is more an FYI, as this is an issue with VS Code rather than vscode-beancount.

There's a limit of 5000 regions supported per file in VS Code. For my beancount journal, I hit that limit around ~25k lines.

microsoft/vscode#72994

The solution is to follow the "Recommended practices" and "1. Split your ledger into several .bean files", which I'll try to adopt now. I've got through 3 years without having to do it. 🙂

Use folding markers to provide outline

Using ;#region My Region works great to bring some order to longer files. It would be awesome if these markers could also be used for the outline in vscode, so jumping to the beginning of those regions would be even easier.

Thanks for your work, excellent extension!

Fava terminal created regardless of runFavaOnActivate

Fava terminal is created in the constructor of FavaManager:

  constructor(extension: Extension) {
    this._terminal = vscode.window.createTerminal('Fava');
    this._terminalClosed = false;
    this.extension = extension;
  }

IIUC, this will create a Fava terminal even runFavaOnActivate is set to false. Maybe we can set the terminal to close by default?

Invalid reference to unknown

账户设置需要在单个 分拆开的 .bean 文件中再次引入,才不会提示错误,这个需要怎么解决呢?有什么好的办法吗

image

image

账户设置需要在单个 分拆开的 .bean 文件中再次引入,才不会提示错误,这个需要怎么解决呢?有什么好的办法吗

image

image

The beancount plugin runs on unrelated files: how to disable this?

The extension is running the beancount syntax checking on other files
(that is, besides files with the beancount extension).

How can I configure it, say, to only run on files with beancount extension,
or to not run on particular files?

For instance, it is running on plain text files such as README and on script files.
Then most lines are falsely highlighted as beancount syntax errors.
It is not running on Python files. So, it runs on some file types and not others.

I tried Change Language Mode, but may be missing some simple vscode setting.

It's convenient to use vscode to edit all of the files in the directory.
I'm getting started with beancount, setting up a directory as suggested in the
Importing External Data: document.

Open to contribution of symbol provider, calculator, and bean-doctor?

Hi! Thanks for the great work -- I recently switched from more than a decade of vim to VSCode, and your plugin has been part of what's been so enjoyable.

I migrated some of my vim scripts to a VSCode plugin, and it's been working well for me, but I was curious if you'd be interested in me trying to contribute those here. Specifically:

  • A symbol provider (for the explorer outline)
  • An inline calculator command
  • A bean-doctor context command

A quick screencast along with the full docs and code are here: https://github.com/aaronj1335/vscode-aaronsbeancountutils. If you'd be interested, I could work on adding all of those to this plugin.

Auto-completion is cluttered with transaction descriptions

Hi, love the plugin.

However, over time auto-completion become super cluttered with stuff from transaction descriptions (and a lot of them I get automatically from parsing my bank OFX).

Would it be possible to exclude everything that is in "quotes" from suggestion list? Maybe just make it an option if you guys find it useful as it is right now. For my use case tho, I only would've liked to auto-complete accounts, commodities and tags.

Adding an outline or SymbolProvider

I have a version of an outline using headers and the nested header. This is what it looks like on the bean-example data, with warnings and errors displaying on the side:
screenshot

This is similar to the outline noted in #64, and I had attempted another one for #25, but I don't use ;#region folding as much as I use nested * and ** for the headers.

I'm happy to submit a PR either way, depending on what other users need.

plugin doesn't work

When I open the output of beancount,
image

Try to run the same command via terminal,

image

Auto-completion of tags

I wonder if we can make a simple change to have auto-complete pick up tags on transactions. ie #trip-to-hawaii

How to do this?

image

This is not allowed in beancount , like "1970-1-1 open Expenses:Test:sp:yl(Expenses:Test:食品:饮料)" . How to do this?

[bug] Region Folding Via Indentation Only Works With Extra Newlines

Hello! First of all just want to say thanks for this plugin, it's been extremely helpful.

I'm currently building out a beancount file, and I'm interested in organizing my sections via indentation using org mode style headers. I've noticed some strange behavior in vs code related to the interplay between syntax highlighting and indentation. I've included two images here which showcase the issue.

This first image shows the issue with syntax highlighting when there is there is a newline + a tab separating the two option directives:
Screen Shot 2021-10-01 at 11 44 26 AM

The second image shows that syntax highlighting works correctly when you add in one (or more) newlines between the option directives:
Screen Shot 2021-10-01 at 11 44 36 AM

Has anyone else experienced the same issue? Or could this possibly be due to some local misconfiguration on my part?

Auto-completion does not work

Hello, I have a accounts.bean, but when I edit 2019.bean, auto-completion does not work.
I don't know where is wrong.
Using VSCode on Windows 10.

The autocomplete of CJK characters feature can't work

beancount extention version: 0.5.2
vscode version: 1.42.1

I changed the setting of beancount: input method, but the auto-completion still not pops
such as I used "三餐" as narration
after I input ", it will auto-completed by vscode to "", then I input sc

nothing pops up
image

image

Is my setting wrong?

triggerCharacter " 在某些时候会失效

假设有某条 Txn 如下:

2021-03-07 * "Payee|收款人" "Narration|描述"
Assets:Current:Account:Wechat -135.00 CNY
Expenses:Diet:MealsNutrition

那么如果想要修改 "Payee|收款人" 这一部分,选中后按 " 键是不会触发自动补全建议的
如果没有后面的 "Narration|描述",则可以正常触发

猜测是 VSCode 的核心机制问题
是否考虑引入单引号 ' 作为备用触发字符?或者把 " 替换?

Cannot identify accounts when use 'include'

  • When splitting the main .bean file into several parts and use include to connect them, the extension cannot identify the account correctly so that Wavy Line would appear.

  • For example, in the main.bean we have:

1970-01-01 open Assets:Wechat
include './2019-09.bean'
  • In the ./2019-09.bean:
2019-09-01 balance Assets:Wechat  +10.0 CNY
  • The extension cannot identify this 'Assets:Wechat'.

account autocompletion

Does it require ':' to trigger account completion now? After I upgrade my beancount and fava, I found that it requires ':' for vscode to trigger account completion. Is there any way to directly trigger account completion without ':'?

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.