Git Product home page Git Product logo

ablog's People

Contributors

butla avatar dhutty avatar ericholscher avatar lordnapi avatar lsaffre avatar maarten-vermeyen avatar mehmetg avatar mementum avatar minchinweb avatar ninmesara avatar quobit avatar tychoish avatar uralbash avatar usaturn 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

ablog's Issues

More than one post per file

I sometimes write several posts at once. It would like to have them in one file. For example::

Page title
==========

First title
-----------

.. post:: 21.07.2014 12.00
   :tags: friends

Blabla

Second title
-----------

.. post:: 21.07.2014 12.00
   :tags: friends

Blablabla

This currently is not supported. It leads to a warning::

WARNING: multiple post directives found, first one is considered

postlist formatting

Enable formatting of items in post lists. Post list should accept options for date and item formatting

.. postlist: 5
   :date: %b %d
   :format: {date} - {title} by {author} in {category}
  • :format: should recognize date, title, author, category, language, and tags keys.
  • :date: should default to post_date_format_short

Remove duplicate post title from feeds

Post title is shown twice in feeds, once as title of the post and then as part of post content (when feeds contain full text post). Remove the title from the copy of document or section.

ablog deploy improvements

Ablog deploy gives an error when used for the first time: "at least specify master while pushing"

I am guessing you have to use "git push origin master" instead of "git push".

I resolved it by cd username.github.io && git push origin master

Bad link created in posts

In development, the following bad link is always created.

For example:

http://127.0.0.1:8000/posts/opam-package-checklist/True 

Any clue as to why this is happening?

EDIT:

In the source this is the following link:

  <link href="True" rel="stylesheet">

PicklingError: Can't pickle class `docutils.parsers.rst.directives.html.meta` attribute lookup failed

Issue: sphinx-doc/sphinx/issues/2625

I'm using ablog and trying to add some meta tags for each post using the following:

.. meta::
   :keywords: custom meta


.. post:: Feb 8, 2016
  :tags: Tag1, Tag2
  :category: Blog

  Blog content


Hello from document
================================

some text in here

When I use the meta directive, I'm throw the following (rather vague) error:

$ make html
sphinx-build -b html -d build/doctrees   source build/html
Running Sphinx v1.4.2
Initializing Spelling Checker
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: 0 added, 1 changed, 0 removed
reading sources... [100%] document                                                                                                                                                                                                   
looking for now-outdated files... none found
pickling environment... 

Exception occurred:
  File "/usr/local/lib/python2.7/site-packages/sphinx/environment.py", line 136, in topickle
    pickle.dump(self, picklefile, pickle.HIGHEST_PROTOCOL)
PicklingError: Can't pickle <class 'docutils.parsers.rst.directives.html.meta'>: attribute lookup docutils.parsers.rst.directives.html.meta failed
The full traceback has been saved in /var/folders/jy/sqr_5svd1dz6f9d6zzw_bwvh0000gn/T/sphinx-err-w6Uk50.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [html] Error 1

Please read the issue on sphinx for more details: sphinx-doc/sphinx/issues/2625

Any ideas on an easy fix? I can't even find the problem.

I tested this on a brand new project with sphinx-quickstart and ablog, it's definatley an issue in ablog, but I couldn't track down what.

It seems like sphinx is trying to serialize all the meta data to write to disk, but it's failing to do so with ablog (specifically the post directive), somehow we have to make the meta data stored within the sphinx environment picklable (serializable).

I'm not really a python developer (well.. I think I can call myself a noob now), but I'm struggling to traceback the issue.

I thought it could be related to this line, but again, not sure.

https://github.com/abakan/ablog/blob/devel/ablog/post.py#L223

`postlist` should render a template so it can be overridden by the user

Hey, I'm using this for my blog, it's awesome, I even managed to write a plugin which inserts a "bar" under the first header of each section with the date, tags and author.

I wanted to further style the postlist directive, I noticed everything is generated via nodes, could we perhaps replace the node generation with rendering a jinja template?

Like all other templates, this one should be able to be overridden by the user, we'd use this for the homepage most probably, so it would be nice to be able to style it as the user wishes.

https://github.com/abakan/ablog/blob/devel/ablog/post.py#L370

This is a snippet of my plugin, inside of creating new nodes, just render a template.

Could this be done?

with open(fName, 'rb') as f:
    try:
        # Render our template with our context
        template = Template(f.read())
        context = {
            'post': post,
            'ablog': blogObject,
            'post_date_format': blogObject.__getattr__('post_date_format')
        }

        # Add our pathto extension for jinja rendering
        htmlBuilder = StandaloneHTMLBuilder(app)
        def pathto(otheruri, resource=False, baseuri=htmlBuilder.get_target_uri(post.docname)):
            if resource and '://' in otheruri:
                return otheruri
            elif not resource:
                otheruri = htmlBuilder.get_target_uri(otheruri)
                return relative_uri(baseuri, otheruri) or '#'
            else:
                return '/' + posixpath.join(app.virtual_staticdir, otheruri)

        context['pathto'] = pathto
        context['hasdoc'] = lambda name: name in app.env.all_docs
        context['toctree'] = lambda **kw: app._get_local_toctree(post.docname, **kw)

        new_content = template.render(context)

        # Causes error, research what this is used for
        # html = publish_string(source=new_content, writer_name='html')
        markup = jinja2.Markup(new_content)

        attributes = {'format': 'html'}
        node = nodes.raw('', markup, **attributes)

        # exit, we have our template and node
        return node
    except Exception as e:
        msgList = (Fore.RED, sys.exc_info()[0], e.message, post_bar_html_template, Style.RESET_ALL)
        app.warn("%sUnexpected error: %s, %s in %s %s" % msgList)
        return

Thanks! Awesome project! - I love sphinx! I learned a lot from this extension. Thanks! 👍

Target uri in Atom feed: '.html' is missing for 'coolpost.rst'

Hi Ahmet, you're doing a fantastic job with 'ablog'. Keep on!

I'm having a problem with urls in atom feeds: It works if I have a post ./blog/coolpost/index.rst but it doesn't if I have ./blog/coolpost.rst
The problem is that in the feed the url is ./blog/coolpost and the '.html' is missing. I guess what's missing is a call to self.get_target_uri(otheruri) in the Sphinx builders/html.py as the pathto() function is doing it.

What do you think?

Full-text RSS

Have an option to include the full post text in the RSS feed.

'ascii' codec can't encode characters... when build

I'm trying to build cyrilic article like this:

.. post:: Apr 15, 2014
   :tags: earth, love, peace
   :category: python
   :language: ru

Привет Мир!
===========

...

But getting error:

  File "/home/user/.virtualenvs/blog/local/lib/python2.7/site-packages/sphinx/application.py", line 408, in emit         
    results.append(callback(self, *args))                                                                                    
  File "/home/user/.virtualenvs/blog/local/lib/python2.7/site-packages/ablog/post.py", line 411, in process_postlist     
    emp.append(nodes.Text(str(item)))                                                                                        
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-11: ordinal not in range(128)                        

Problems with Sphinx 1.5

I started getting this error suddenly, the difference seems to be going from sphinx 1.4.9 to 1.5. Seems the blog path has not been created in the output path (docsbuild). The open call fails because it tries to open blog/atom.xml but the blog path does not exist. Maybe some implicit assumption in ablog is violated in 1.5.

Traceback (most recent call last):
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/cmdline.py", line 296, in main
    app.build(opts.force_all, filenames)
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/application.py", line 327, in build
    self.builder.build_all()
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 211, in build_all
    self.build(None, summary='all source files', method='all')
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 325, in build
    self.finish()
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/builders/html.py", line 469, in finish
    self.finish_tasks.add_task(self.gen_additional_pages)
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/util/parallel.py", line 40, in add_task
    res = task_func()
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/sphinx/builders/html.py", line 494, in gen_additional_pages
    for pagename, context, template in pagelist:
  File "/home/travis/build/VUnit/vunit/.tox/py27-docs/lib/python2.7/site-packages/ablog/post.py", line 660, in generate_atom_feeds
    with open(feed_path, 'w') as out:
IOError: [Errno 2] No such file or directory: u'/home/travis/build/VUnit/vunit/.tox/py27-docs/tmp/docsbuild/blog/atom.xml'

HTML usage in postlist format

I just want to align postlist dates at right side and can't since they is not wrapped to any tags. Also HTML in postlist.format is escaped. So maybe it's possible to allow html in format or just wrap each thing like {date} to span with class?

Disqus comments not working

By default disqus had a problem connecting to their server.

I saw that if I remove "disqus_title", " disqus_URL" and "disqus_identifier" from templates/page.html, it worked fine.
Please look into it

Ablog and ReadTheDoc server

Ablog works correctly when compiled under Windows using the ReadTheDoc theme.

However, when compiling the same RST files with Ablog on ReadTheDoc server, we get this error message:

Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-1/envs/latest/local/lib/python2.7/site-packages/sphinx/cmdline.py", line 254, in main
    app.build(force_all, filenames)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-1/envs/latest/local/lib/python2.7/site-packages/sphinx/application.py", line 212, in build
    self.builder.build_update()
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-1/envs/latest/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 214, in build_update
    'out of date' % len(to_build))
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-1/envs/latest/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 256, in build
    self.env.topickle(path.join(self.doctreedir, ENV_PICKLE_FILENAME))
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-1/envs/latest/local/lib/python2.7/site-packages/sphinx/environment.py", line 146, in topickle
    pickle.dump(self, picklefile, pickle.HIGHEST_PROTOCOL)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

Exception occurred:
  File "/home/docs/checkouts/readthedocs.org/user_builds/sphinx-1/envs/latest/local/lib/python2.7/site-packages/sphinx/environment.py", line 146, in topickle
    pickle.dump(self, picklefile, pickle.HIGHEST_PROTOCOL)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

The full traceback has been saved in /tmp/sphinx-err-VjNexP.log

We are using a requirements.txt file that includes ablog and alabaster and werkzeug.

What are we doing wrong?

failed to pip install ablog

I got such error when I was trying to install ablog

% pip install ablog
Downloading/unpacking ablog
  Running setup.py egg_info for package ablog
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/tmp/build/ablog/setup.py", line 62, in <module>
    'ablog{} = ablog.commands:ablog_main'.format(sys.version_info[0]),
    ValueError: zero length field name in format
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 14, in <module>

  File "/tmp/build/ablog/setup.py", line 62, in <module>

    'ablog{} = ablog.commands:ablog_main'.format(sys.version_info[0]),

ValueError: zero length field name in format

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/ytj/.pip/pip.log

I guess this is because ablog doesn't support python2.6 (all dependencies and they support python 2.6+ and 3.3+, so I think this is ablog's issue). It would be better if we could specific the supported python version in README.

Uncaught exception in `ablog -deploy`

If github_pages is not set in conf.py an AttributeError is raised:

$ ablog deploy
Traceback (most recent call last):
  File "/usr/local/bin/ablog", line 9, in <module>
    load_entry_point('ablog==0.8.0', 'console_scripts', 'ablog')()
  File "/usr/local/lib/python2.7/dist-packages/ablog/commands.py", line 401, in ablog_main
    namespace.func(**namespace.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/ablog/commands.py", line 318, in ablog_deploy
    github_pages = (github_pages or getattr(conf, 'github_pages') or None)
AttributeError: 'module' object has no attribute 'github_pages'

Breaks on JSON builds

Having an issue with updating our blog because ablog is breaking when built with the Sphinx JSON backend. You can see this here:

https://readthedocs.org/projects/readthedocs-blog/builds/3323603/

It appears that the logic here is quite naive: https://github.com/abakan/ablog/blob/master/ablog/post.py#L340 -- I wish there was a better way to say that a Sphinx backend builder generates HTML. This should really be an attribute on the builder, instead of a hueristic on the builder name. Perhaps we should add this to Sphinx.

ablog serve - Address already in use

Try running $ ablog serve followed by C-c and $ ablog serve again. You will usually get:

Traceback (most recent call last):
  File "/usr/bin/ablog", line 9, in <module>
    load_entry_point('ablog==0.8.3', 'console_scripts', 'ablog')()
  File "/usr/lib/python3.5/site-packages/ablog-0.8.3-py3.5.egg/ablog/commands.py", line 408, in ablog_main
    namespace.func(**namespace.__dict__)
  File "/usr/lib/python3.5/site-packages/ablog-0.8.3-py3.5.egg/ablog/commands.py", line 203, in ablog_serve
    httpd = socketserver.TCPServer(("", port), Handler)
  File "/usr/lib/python3.5/socketserver.py", line 443, in __init__
    self.server_bind()
  File "/usr/lib/python3.5/socketserver.py", line 457, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

Quite annoying for development...

Pagination

Is it possible to paginate the post listing pages (blog main, categories, tags)? I currently have over 300 posts, so it makes for very long pages!

Postlist, excerpts and post command enhancements

Add option to disable bullet style listing of PostList (sometimes I just want to show my certain posts but without a list!)

Excerpts should end with ellipses.

"ablog post hello-world" should by default make a new file hello-world with a .rst extension, and with the title of the new post as Hello World, that is, the file name. Right now it is just New Post. (Why? Because it is a better experience)

Just suggestions. Wonderful tool already, and I like python. If you don't have time for implementing this, I can try doing it if you like.

Post langulage

Add :language: option to post directive, that works similar to :author: and :location: options, that is:

  • a post can be in multiple languages simultaneously,
  • there is a default blog language
  • and there is a mapping between language codes to language display names, e.g. {'de': 'Deutsch'}.

This may be satisfactory, but having a standard mapping from language codes to language names and then letting the user to overwrite these display names could be useful. What would be the best way to get this?

@marble what do you think?

pages for tagcloud, categories, and archives

First let me say thanks for the great blog engine! I was using Nikola, but I found it awkward switching between using Nikola for blog content Sphinx for documentation. So I believe ablog will be a great tool for me.

Now my question: how can I get pages that have the same content as the html_sidebars tagcloud.html, categories.html, and archives.html? I know that each one has their corresponding generated page, but what I would like is a page that has the same summary content as is placed in the sidebar. I believe that doing so would be a simple exercise with sphinx customization and templating, but, unfortunately, that is beyond my skill level right now. (This is another reason why I like ablog, skills I learn for the blogging engine will equally apply for my core sphinx usage.)

Thanks,
Phil

Tag cloud relative size

When all tags have the same relative size, they are displayed using the smallest size option ('-1'). When difference between sizes is smaller than the cloud size, a smaller range should be used. If only 1 size, CSS style -3 should be selected.

update:: directive date handling anomaly

When adding ..update:: directive in a post using the date format as per defined in conf.py, e.g.,

.. update:: Dec 04, 2015
    Added snapshots performance benchmark and analysis :ref:`sec-behaviour-of-vsan-vm-snapshots`.

ablog produced the following errors (note that this only occurs if I add ..update:: directive. The same date format works without issue under ..post:: directive),

    Running Sphinx v1.3.3
    Initializing Basicstrap theme directives
    loading pickled environment... not yet created
    building [mo]: targets for 0 po files that are out of date
    building [dirhtml]: targets for 14 source files that are out of date
    updating environment: 14 added, 0 changed, 0 removed
    reading sources... [100%] vmware-snapshot-overview
    Exception occurred:
      File "/home/lxcuser/sphinx-doc/lib/python3.4/site-packages/ablog/post.py", line 187, in _get_update_dates
        (update_node['date'], docname, post_date_format))
    ValueError: invalid post update date (Dec 04, 2015
    Added snapshots performance benchmark and analysis :ref:`sec-behaviour-of-vsan-vm-snapshots`.) in vmware-snapshot-overview. Expected format: %b %d, %Y
    The full traceback has been saved in /tmp/sphinx-err-hsqqb2_s.log, if you want to report the issue to the developers.
    Please also report this if it was a user error, so that a better error message can be provided next time.
    A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!

Attached is the actual error log produced by Sphinx
error.txt

Optimization: Limit Size of Large Export Files

This is a repost from a comment on the blog that is probably better captured here.

I have ~1600 posts, and noop rebuilds of my site with take about a minute, and I'd like to cut this way down.

My current theory (which is related to a feature request of sorts) is that generating the blog.html and feeds that must include the full content of the site are neither useful except as an export and taking a long time to aggregate generate in every build.

Is there (or could there be) a way to tweak the number of posts that appear in these archives/listings?

linux install error

When installing ablog on a test linux server, one of my team mates is getting this error message.

Exception occurred:
File "/home/nutriben/virtualenvs/sphinx/lib/python3.3/site-packages/ablog/blog.py", line 228, in recent
num += 1
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int'

"nutriben" is the physical name of the site.
The test linx server is:

  • Ubuntu 14.04 with LAMP server.
  • Python 3.3 under virtualenvironment.

Are we doing something wrong, or is there a work around for this?

/gg

Per-tag/author RSS

It would be awesome if there was a specific RSS feed for a specific tag and author. This is nice for including in Planets and other places that only want a subset of content (eg. only Python related posts)

Love the project, it's really well designed!

Feature request: add excerpts to post lists

I'd really like to embed the list of blog posts with excerpts into a rst page. It would be great if the post list directive let you specify an excerpt style so that you get more than just a list.

Ablog install on Windows

Am trying to install Ablog under WIndows, but get the following error message.

#   ablog (unknown version) from C:\bin\python\lib\site-packages\ablog\__init__.py
#   alabaster (0.7.3) from C:\bin\python\lib\site-packages\alabaster\__init__.py
Traceback (most recent call last):
  File "C:\bin\python\lib\site-packages\sphinx\cmdline.py", line 245, in main
    app.build(opts.force_all, filenames)
  File "C:\bin\python\lib\site-packages\sphinx\application.py", line 264, in build
    self.builder.build_update()
  File "C:\bin\python\lib\site-packages\sphinx\builders\__init__.py", line 245, in build_update
    'out of date' % len(to_build))
  File "C:\bin\python\lib\site-packages\sphinx\builders\__init__.py", line 319, in build
    self.finish()
  File "C:\bin\python\lib\site-packages\sphinx\builders\html.py", line 456, in finish
    self.finish_tasks.add_task(self.gen_additional_pages)
  File "C:\bin\python\lib\site-packages\sphinx\util\parallel.py", line 39, in add_task
    res = task_func()
  File "C:\bin\python\lib\site-packages\sphinx\builders\html.py", line 482, in gen_additional_pages
    self.handle_page(pagename, context, template)
  File "C:\bin\python\lib\site-packages\sphinx\builders\html.py", line 786, in handle_page
    output = self.templates.render(templatename, ctx)
  File "C:\bin\python\lib\site-packages\sphinx\jinja2glue.py", line 138, in render
    return self.environment.get_template(template).render(context)
  File "C:\bin\python\lib\site-packages\jinja2-2.7.3-py3.4.egg\jinja2\environment.py", line 791, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "C:\bin\python\lib\site-packages\jinja2-2.7.3-py3.4.egg\jinja2\environment.py", line 765, in _load_template
    template = self.loader.load(self, name, globals)
  File "C:\bin\python\lib\site-packages\jinja2-2.7.3-py3.4.egg\jinja2\loaders.py", line 113, in load
    source, filename, uptodate = self.get_source(environment, name)
  File "C:\bin\python\lib\site-packages\sphinx\jinja2glue.py", line 159, in get_source
    raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: catalog.html

My template path looks like this:

templates_path = [
'_templates',
'templates_path.append(ablog.get_html_templates_path())'
]

What should I do to correctly install ablog?
Thanks for your assistance.
/gg

Post links ignores '.html' link suffix

Context:

ablog (0.2.1)
alabaster (0.6.0)
docutils (0.12)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pip (1.5.6)
Pygments (1.6)
setuptools (5.7)
Sphinx (1.2.3)
Werkzeug (0.9.6)
wsgiref (0.1.2)

Create default sphinx-doc, with 2 pages, make html: links contain *.hml extension;
Add ablog setup in conf.py (w/ or w/o alabaster), make html: links contain no extension, e.g. link to firstpost.hml shows as firstpost.

Explicitly set html_file_suffix to ".html" - same (no extension);
Explicitly also set html_link_suffix - still no extension in links.

Link file is created with *.html extension.

which title when there is only one post

We have the rule that "the title of a post is the title of the section where the post directive occured, except if there is only one post in a document". This exception is probably necessary to be backward compatible with existing posts. But it disturbs me in new blogs. Can we make this exception optional? That is, a new configuration option which I suggest to name "always_post_with_section_header" which defaults to False.

Why I want this: I usually create one file per day, with the date as main header. In the morning I don't know how many blog entries I will write.
Example of a day with only one entry:
http://luc.saffre-rumma.net/_sources/blog/2014/0223.txt
And now every reference to this page uses the document title, for example:
http://luc.saffre-rumma.net/ab/tag/lino/
which -in my case- is not what i wanted.

Replace tag pages?

Is it possible to define a separate rst file to overwrite the ABlog generated tag page? There was hints in #31 that this might be in the works, but I didn't see what happened in that regard.

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.