Documentation is here
batchrobofontextension's Introduction
batchrobofontextension's People
batchrobofontextension's Issues
Batch not generating SVGs neither WOFF
Hallo Frederik,
I’m getting this error while trying to generate webfonts:
Build WOFF (TTF)
''''''''''''''''
path:
Failed:
Traceback (most recent call last):
File "/Users/SO/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/init.py", line 536, in run
File "/Users/SO/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/init.py", line 418, in _convertPath
File "/Users/SO/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/init.py", line 154, in convertToWoff
File "/Users/SO/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/woffBuilder.py", line 162, in WOFFBuilder
File "/Users/SO/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/woffBuilder.py", line 33, in init
AttributeError: Format
I’m using FBs Robofont, and a few weeks back I used it without problem. Do you think this could be affecting?
Thanks!
Custom axis names cause problems with generation
This may be related to #20(?) but unregistered axis names seem to break the generation process for variable fonts. Even changing the capitalization of the axis name from "weight" to "Weight" results in the final fonts not being successfully generated. You can see the "tmp_" fonts quickly popping in and out of the directory, and the report in "Batch Generated Variable Fonts Report.txt" seems OK, but I don't think the final fonts are saved successfully unless you stick to registered axis names.
HTML preview as option
It'd be nice if the HTML preview files were optional when generating.
folder support gone in new version
New version doesn't allow you to drop a folder onto the list to generate. This was a feature before that I REALLY liked using. Sometimes I need to generate many folders of UFOs at a time, so if I can drop 10 folder onto Batch it's much easier than opening one folder, drop UFOs, open next folder, drop UFOs … Please add this feature back! Thank you.
openTypeGaspRangeRecords reference, deserialize lib reference
Trying to generate variable fonts using Batch for the first time, and I've hit a couple errors depending on the designspace file (these are designspace files that have worked running directly from fontTools varLib).
First seems like it is a UFO2 vs 3 issue, calling a future info attribute. I am running this in Version 1.7.1b (built 1609082244).
******************************
Traceback (most recent call last):
File "/Users/david/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 123, in runTask_
File "/Users/david/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/__init__.py", line 59, in run
File "/Users/david/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 282, in generateVariationFont
File "/Users/david/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 267, in process
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/mutatorMath/ufo/document.py", line 407, in process
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/mutatorMath/ufo/document.py", line 562, in readInstances
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/mutatorMath/ufo/document.py", line 638, in _readSingleInstanceElement
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/mutatorMath/ufo/document.py", line 700, in readInfoElement
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/mutatorMath/ufo/instance.py", line 212, in addInfo
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/mutatorMath/ufo/instance.py", line 228, in _copyFontInfo
AttributeError: 'Info' object has no attribute 'openTypeGaspRangeRecords'
******************************
Oddly enough I tried to run this in my copy of RoboFont Version 2.0b (built 1609082301), but I can't find Batch in the menu, even after exiting safe mode.
The second error has to do with the lib:
Traceback (most recent call last):
File "/Users/david/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 415, in _generateVariationFont
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/fontCompiler/compiler.py", line 125, in generateFont
File "/Applications/FontApps/RoboFont.app/Contents/Resources/lib/python2.7/fontCompiler/compiler.py", line 162, in prepareCompile
AttributeError: 'Lib' object has no attribute 'deserialize'
The designspace file does contain a <lib copy="1" />
tag in one of the sources, and there's nothing besides the usual "com.typemytype....." inside that lib.
Thanks so much for implementing this, and let me know if you want me to send designspace files or if I can offer anything else!
One bad UFO kills the whole batch
Currently if Batch hits one non-generating UFO, ie non 1000UPM for OTF or quadratic curves when for OTF, the whole process stops. This is the traceback I get:
RuntimeError: maximum recursion depth exceeded
I would expect that Batch would skip a problematic UFO (and report it) rather than forcing the whole batch generate to stop. Thanks!
Exporting webfonts fails
The file exports fine with the normal generate command. The traceback is as follows:
******************************
Traceback (most recent call last):
File "/var/folders/8y/vjr0hwzx58q4ntt120h4n4z00000gn/T/tmpNUkmwc/batchRoboFontExtension-master/Batch.roboFontExt/lib/tools.py", line 72, in runTask_
File "/var/folders/8y/vjr0hwzx58q4ntt120h4n4z00000gn/T/tmpNUkmwc/batchRoboFontExtension-master/Batch.roboFontExt/lib/webFormats/__init__.py", line 331, in run
File "/var/folders/8y/vjr0hwzx58q4ntt120h4n4z00000gn/T/tmpNUkmwc/batchRoboFontExtension-master/Batch.roboFontExt/lib/webFormats/__init__.py", line 231, in _convertPath
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/compositor/__init__.py", line 39, in __init__
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/__init__.py", line 156, in __init__
TTLibError: Not a TrueType or OpenType font (not enough data)
******************************
Exception AttributeError: "'Font' object has no attribute 'source'" in <bound method Font.__del__ of <compositor.Font object at 0x15a3b5310>> ignored
woff support from ufo3 font.info fields
Problem with naming temp .ttf files
Masters without proper familyName and styleName (don't judge, it happens) result in temp .ttf files with the same name. That results in a single ttf on disk.
Option to apply italic offset
It'd be great if there was an option when generating from Batch to apply the italic offsets specified in each UFO.
Variable Fonts
I get this traceback:```
Traceback (most recent call last):
File "/Users/cjdunn/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 123, in runTask_
File "/Users/cjdunn/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/init.py", line 59, in run
File "/Users/cjdunn/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 279, in generateVariationFont
AttributeError: 'BathDesignSpaceDocumentReader' object has no attribute 'warpDict'
could this be a typo: BathDesignSpaceDocumentReader ?
ImportError: No module named ufo
I'm getting a traceback when using the latest Batch 1.9.3 with the latest RF 1.8.3 Beta build 1702022141. Batch doesn't show up in the File menu. I had to go back to Batch 1.7.
Here's the traceback in the output window when I start RF:
Deprecated: use 'buildAdditionContextualMenuItems'.
Traceback (most recent call last):
File "main.py", line 5, in <module>
File "...path/to/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/toolBox.py", line 19, in <module>
File "...path/to/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/__init__.py", line 5, in <module>
ImportError: No module named ufo
show some hints of failing design spaces with DesignspaceProblems
Batch is not generating SVG
Batch isn’t generating SVG fonts on my end. Webfont report doesn’t indicate any error though. Current workaround is converting OTFs:
from mojo.compile import otf2svg
paths = [insert fonts here]
for path in paths:
otf2svg(path, path.replace("otf", "svg"))
The report output is something like this:
Web Fonts:
Test_Test_v1-Regular.ufo
---------------------------
source: /path/Test_Test_v1-Regular.ufo
Build SVG
'''''''''
path: /path/Test_Test_v1-Regular.svg
TTFAutohint options:
********************
addTTFAutoHintInfo = False
dwClearType = False
fallbackScript = False
gdiClearType = True
grayScale = False
hintRangeMaximum = 50
hintRangeMinimum = 8
hintingLimit = 200
noHintingLimit = False
noXHeightIncreaseLimit = False
overRideFontLicense = False
preHinting = False
symbolFont = False
xHeightIncreaseLimit = 14
Save Woff2 OTF/TTF selection not working
It seems that Woff2 gets its OTF/TTF setting from Woff radio buttons, and not from it's own buttons right below.
designspace files and normal generate
seems to fail...
[variableFontsGenerator] Why does makeMasterKerningCompatible extrapolate?
While making Variable Fonts with Batch, I noticed some of the kerning going crazy.
In a design space, I had two masters very close together with different kerning values, and a master at the end of the space with a kerning value of "0", which by default is removed from the kerning plist.
EXPECTATION
===========
A B C
----o--o-------------o
-10 -15 (0)
What is expected is that the instances between B
and C
would have kerning values between -15 and 0. What was happening was that I was finding a huge negative number kern for C
, something like -29583.
BATCH
=====
A B C
----o--o-------------o
-10 -15 -29583
It turns out Batch is causing this. In the makeMasterKerningCompatible
method, it tries to even out the kerning lists for all the masters by making an extrapolation, based on a design space defined by existing kerning values. It ignores the "0" implied by the absence of a kern pair in the C
master, and instead generates a value based off of the two existing masters.
I was wondering, why does Batch do this? This is wrong in my view. Instead, I think Batch should just assume that if a kerning pair is "missing" in a master, the pair should be inserted as "0". If the designer wanted there to be any other kern, he or she would have made it themselves.
Option to export VF in woff2 format
Removed Overlap button not working
I just noticed that files generated from Batch don't get overlap removed when only the "Remove Overlap" button is checked. The only way I can get it to remove overlap is with both "Remove Overlap" AND "Decompose" buttons checked. I think this was working correctly before, so I'm not sure at what point something might have changed.
I've been able to reproduce with multiple different UFOs using the latest Beta version of RF [1605141504] and also with the previous public release [1.6]. Also doesn't seem to matter if the "Remove Overlap" preference is set to in the font info or not, and it's the same for both OTF and TTF.
This isn't a problem for the "Web Fonts" OTF or TTF option in Batch – overlaps get removed correctly for both of these options. If I use File > Generate and check the "Remove Overlap" button then everything works, and same if I use a script to generate. The problem only happens in Batch. Thanks!
Slider UI deprecation warning
lib/UI/stepper.pyc:181: DeprecationWarning: 'SliderEditIntStepper': use 'SliderEditStepper'
Feature suggestion: preprocessing and postprocessing scripts
I ❤ Batch and I wouldn't want to use anything else. However there are a few things that I like to do that are specific to my workflow, such as dealing with double encodings that the FDK strips from the UFO, etc. Right now I have to run them as a separate step, but would love to incorporate it into my generating process.
Would you consider allowing users to add an optional preprocessing and postprocessing script to Batch? I think it would be as easy as letting the user select these scripts in the UI, and then providing a way for the scripts to access the source UFO and the generated font (and the designspace, if applicable).
(I considered making my own version of Batch, but then I have to keep it up to date and distribute it to anyone else generating my fonts. Adding a custom preprocessing/postprocessing preferences seems like a cleaner solution.)
Feel free to close this issue if you’re not interested, and thanks for hearing me out!
Generating TTF / webfont error
I get this error from Batch when I try to generate TTF / webfonts in Batch. Using RF 1902152254 / Batch 1.9.8
Exception ignored in: <bound method Font.__del__ of <webFormats.woffBuilder.Font object at 0x113655c88>>
Traceback (most recent call last):
File "/Applications/RoboFont3.app/Contents/Resources/lib/python3.6/compositor/font.py", line 32, in __del__
self.source.close()
AttributeError: 'Font' object has no attribute 'source'
improve generating report
confusing makeotfexe [WARNING] unhinted
, but hinting happens afterwards... not during generating
placing new off curves for var fonts
make it optional where to place this points:
- 1/3 on the segment
- 1/3 as tangent points
- on top of the incurves
remove eot and svgFont webfont support
no need to support these
Underline values when generating ttf woff and woff2 from off
It seems that when generating ttf flavoured woff an woff2 from an otf source the postscriptUnderlineThickness
and postscriptUnderlinePosition
attributes are set to zero (Apparently, Firefox uses these values to define its link text-decoration default 🤔).
Generating a good old desktop ttf from an ufo is working, postscriptUnderlineThickness
and postscriptUnderlinePosition
are set correctly in the resulting font.
Publicly available extension requires beta version of RoboFont
The latest version of the extension as offered through Mechanic 2 requires RoboFont 3.2, which is beta software. While I’m not particularly afraid of beta software, I think the Batch extension has been with us for many versions of RF – unless the latest bug fixes truly require the latest beta of RF, I think that it should be available to us using release versions.
Whether Mechanic 2 should show version requirements in the layout is an issue that I maybe should open in the appropriate repository as well…
Web Fonts: generates OTF without the box being checked
If I generate WOFF + WOFF2 files without checking the boxe "Save OTF" I end up with OTF files anyway (with the _web Suffix).
I'm using the current version of Batch along with the latest RF beta (1.7b (built 1601082309)) with 10.9.5.
naming consistency of generated fonts
With a font file named: BIG-Bang-Regular-A001.ufo
When generating Web Fonts, you get:
– BIG-Bang-Regular-A001_web.woff
When generating "Desktop" Fonts, you get:
– BIGBang-Regular.woff
I'd suggest to keep the original filename (for designers using it for versioning) and syntax.
replace lazy import of AppKit
on Monterey lazy import somehow fails
from AppKit import *
ModuleNotFoundError: No module named 'AppKit._AppKit.ContactsPersistence'; 'AppKit._AppKit' is not a package
save report
goes wrong somewhere at the end
batchTools.py line 86
AssertionError: PUSHW value out of range
When trying to export web font files, I run into a strange issue that then breaks the current ‘run’: the error doesn’t return, but every following export fails with the message TTLibError: Not a TrueType or OpenType font (not enough data)
; the PUSHW
error returns after I restart RoboFont.
For what it’s worth, I can’t get the extension to export TTFs regardless of these errors. Perhaps warrants its own issue, but I can’t find a traceback anywhere, and no report file. The normal Generate function works fine – TTFs roll out, and ttf2woff
and ttf2eot
convert without a hitch.
Build WOFF (TTF)
''''''''''''''''
path: […]/Dover_Serif_Display-Italic.woff
Source is a UFO file. Generate TTF.
Failed:
Traceback (most recent call last):
File "/Users/rob/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/__init__.py", line 553, in run
File "/Users/rob/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/__init__.py", line 433, in _convertPath
File "/Users/rob/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/__init__.py", line 326, in _getTempTTF
File "/Users/rob/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/webFormats/__init__.py", line 132, in generateTTF
File "lib/fontObjects/robofabWrapper.pyc", line 3901, in generate
File "lib/fontObjects/doodleFont.pyc", line 882, in generate
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontCompiler/compiler.py", line 127, in generateFont
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontCompiler/baseCompiler.py", line 309, in compile
File "ufo2fdk/makeotfParts.pyc", line 66, in compile
File "ufo2fdk/makeotfParts.pyc", line 81, in setupFile_outlineSource
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontCompiler/ttfCompiler.py", line 261, in compile
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/__init__.py", line 216, in save
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/__init__.py", line 648, in _writeTable
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/__init__.py", line 659, in getTableData
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/tables/_f_p_g_m.py", line 14, in compile
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/tables/ttProgram.py", line 222, in getBytecode
File "/Applications/RoboFont.app/Contents/Resources/lib/python2.7/fontTools/ttLib/tables/ttProgram.py", line 396, in _assemble
AssertionError: PUSHW value out of range 262144
TTFAutoHint options don’t seem to be honored
All of my WebFonts Reports end with this:
TTFAutohint options:
********************
addTTFAutoHintInfo = False
dwClearType = False
fallbackScript = False
gdiClearType = True
grayScale = False
hintRangeMaximum = 50
hintRangeMinimum = 8
hintingLimit = 200
noHintingLimit = False
noXHeightIncreaseLimit = False
overRideFontLicense = False
preHinting = False
symbolFont = False
xHeightIncreaseLimit = 14
Despite my settings looking like this:
Does this mean the TTFAutohint preferences aren't being honored?
Generating no fonts
Frederik, pardon me if this isn't a real issue.
I've noticed it's possible to click "Generate" without any fonts loaded.
You get a report and of course, no fonts.
Option to generate variable fonts in TTF or CFF format
Batch closes open fonts, unlike previous version
When I click "Add Open Fonts" and then "Generate" my open fonts are closed by Batch. In the previous version which worked with RF 1.8 (commit 6750671 and before) this didn't happen.
For me this is a bug and not a feature, because many times I want to generate and keep the fonts open. There could be an option to "Close fonts after generating" if this is desired, but I don't think it's good as a default because it's unexpected. Thanks for your consideration!
woff2 checkbox for variable font output
Error when generating too many fonts
Error when generating too many fonts. After about 125 UFOs there's a memory leak and the fonts don't generate anymore. Once I restart RF they can generate again.
Variation Font axis tag
The tag for an axis in the designspacedocument is not used in the generated font. Instead it will use the name of the axis and than the first four characters.
[feature request] add "Generate Failed" message
–Would be nice if Batch gave a "Generate Failed" message the way RF > File> Generate does when there's a problem. I know this is listed with the full traceback in the …Report.txt, but I think it would be helpful to have some indication in the UI. Ideally this would wait until the end and briefly list which files failed. For example:
Generate Failed:
FontName-Bold.ufo
FontName-Italic.ufo
FontName-Regular.ufoSee report for an error log.
–Also, would be helpful in the …Report.txt if you gave a short summary at the top of the text listing just the fonts that failed, with "see below for full error log".
–Batch always creates a "Web Fonts Report.txt" file in the destination even when the files fail, but when I generate using the "Batch Generate" section I get the error listed in the RF output window when fonts don't generate, and only get the "Batch Generate Report.txt" when the fonts succeed. I would expect these to behave the same way, whether they fail or not, and the same for "Web Fonts" and "Batch Generate".
–Perhaps there could be a "Generate Report" option to output a …Report.txt file (default = On) and if this option is unchecked then the output will only print to RF Output window? Would be nice to have this option because in early stages when I'm troubleshooting I DO want the report. And once I know things are good and just making tiny changes I usually DO NOT want the report because I always have to throw this file away before sending font data to client.
Thanks for your consideration!
Variable font export jumbles glyphs in RF4
ImportError: No module named reverseContourPen
Hi Frederik, I'm getting an error when I try to install Batch - it says I'm missing reverseContourPen. I've tried reinstalling FontTools / FontMake and cu2qu. Just wondered if you had any advice how to resolve this error.
Thanks in advance.
Traceback (most recent call last):
File "main.py", line 10, in <module>
File "/Users/jeremymickel/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/toolBox.py", line 19, in <module>
File "/Users/jeremymickel/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/__init__.py", line 15, in <module>
File "build/bdist.macosx-10.13-intel/egg/cu2qu/ufo.py", line 33, in <module>
File "build/bdist.macosx-10.13-intel/egg/cu2qu/pens.py", line 4, in <module>
ImportError: No module named reverseContourPen
variation fonts improvements
- master on the default of all axis seems to be required by fontTools, spec: change the default of each axis so it fits the given default/default master
- masters not at the extremes of an axis: add
Can Extrapolate to fit axis extremes
checkbox - masters outside the extremes of an axis: either clip by generating new master on the min/max of axis or extend the axis min/max, add some sort of "master are stronger then axes" checkbox
- report and ignore non compatible glyphs, groups, kerning, info (you are in the middle of a design process)
- design space with no masters
- design space with multiple master on the same location
- design space with mis aligned masters
- list all extra added kerning pairs
Unable to add files via the "Open" button
I noticed that when you hit the "Open" button at the top of the window, all the kinds of files one might want to add (UFOs, designSpace files) are unselectable. You can add them fine via drag-and-drop, but for some reason not via the button.
[idea] support TTC
fontTools has support for this
https://github.com/fonttools/fonttools/blob/master/Lib/fontTools/ttLib/ttCollection.py
One Generate button to rule them all!
I love the Export in Sub Folders
option, but it only works within each panel. What if one could select all the types of fonts one wants to generate (web, desktop, variable, what-have-you), hit Generate
, and watch as something like the following folder tree builds and fills in front of one’s eyes?
Desktop > OTF ( > [files] ), TTF ( > [files] )
Web > WOFF2 ( > [files] ), TTF ( > [files] )
Variable > WOFF2 ( > [files] ), TTF ( > [files] )
Desktop and Web could easily use the same input from the Fonts
section, but a lingering question is whether Variable Fonts
would need its own unique concurrent section for designspace files.
Export in Sub Folders behaves differently between webfonts and desktop
When setting Export in Sub Folders
is checked, the Batch Generate panel generates fonts in subfolders that are named after the file format.
The Web Fonts panel generates fonts in cascading subfolders: FamilyName > StyleName > [one or a few fonts].
I think the first organizational scheme is the way to go for both.
Generating CFF-flavored webfonts
Currently all fonts are converted to TTF when generating webfonts. This makes sense for some things like EOT, but it'd be nice to have the option of choosing TTF- or CFF-flavored fonts for each format.
Axis maps break variable font generation
When attempting to generate a variable font from a designSpace file that has axis maps, like so:
<axis tag="wght" name="Weight" minimum="300" maximum="700" default="400">
<labelname xml:lang="en">Weight</labelname>
<map input="300" output="340" />
<map input="500" output="485" />
<map input="600" output="575" />
</axis>
… the process fails without providing the usual Batch Generated Variable Fonts Report.txt
or any readout in the Output window. In the log, I get the following traceback:
>> Traceback (most recent call last):
>> File "/Users/Nick/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/batchTools.py", line 115, in runTask_
>> File "/Users/Nick/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/__init__.py", line 84, in run
>> File "/Users/Nick/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/__init__.py", line 286, in generateVariationFont
>> File "/Users/Nick/Library/Application Support/RoboFont/plugins/Batch.roboFontExt/lib/variableFontGenerator/__init__.py", line 380, in makeMasterGlyphsCompatible
>> AttributeError: 'NoneType' object has no attribute 'name'
The same designSpace file with the axis maps removed generates a working variable font as expected.
I'm using Batch 1.9.8, run from RoboFont 3.3b (build 1905221146).
Here are some files to test the issue: Test.zip
Add WOFF2 as output for VariableFonts
When generating variable fonts, it might be useful to save them as WOFF2 straightaway. Could be a checkbox.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.