Code Monkey home page Code Monkey logo

vkbo / novelwriter Goto Github PK

View Code? Open in Web Editor NEW
1.9K 28.0 99.0 30.9 MB

novelWriter is an open source plain text editor designed for writing novels. It supports a minimal markdown-like syntax for formatting text. It is written with Python 3 (3.9+) and Qt 5 (5.15) for cross-platform support.

Home Page: https://novelwriter.io

License: GNU General Public License v3.0

Python 97.95% HTML 1.57% Inno Setup 0.12% Makefile 0.01% Shell 0.35%
text-editor qt5 novels python linux macos windows meta-data novelwriter synopsis writing-novels editor

novelwriter's Introduction

novelWriter

Linux Windows MacOS Flake8 CodeCov

novelWriter is a plain text editor designed for writing novels assembled from many smaller text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax for comments, synopsis, and cross-referencing. It's designed to be a simple text editor that allows for easy organisation of text and notes, using human readable text files as storage for robustness.

The project storage is suitable for version control software, and also well suited for file synchronisation tools. All text is saved as plain text files with a meta data header. The core project structure is stored in a single project XML file. Other meta data is primarily saved as JSON files.

For more details, and how to install and use novelWriter, please see the main website and documentation.

Project Links

Implementation

novelWriter is written with Python 3 (3.9+) using Qt5 and PyQt5 (5.15 only), and is released on Linux, Windows and macOS. It can in principle run on any Operating System that also supports Qt, PyQt and Python.

Project Contributions

Please don't make feature pull requests without first having discussed them with the maintainer. You can make a feature request in the issue tracker, or if the idea isn't fully formed, start a discussion on the discussion page. Please also don't make pull requests to reformat or rewrite existing code unless there is a very good reason for doing so.

Fixes and patches are welcome. Contributions related to packaging and installing novelWriter will also be appreciated, but please make an issue or a discussion topic first. Before contributing any code, please also read the full Contributing Guide.

Project credits are available in CREDITS.md.

Note: As of April 2024 only pre-releases are made from the main branch. Full releases are made from the release branch. So if you're submitting a fix to a current release, including changes to documentation, they must be made to the release branch.

Translations

New translations are always welcome. This project uses Crowdin to maintain translations, and you can contribute translations at the Crowdin project page. If you have any questions, feel free to post them to the Translations of novelWriter issue thread.

For more details, and how to use Qt Linguist for translations, see the i18n instructions.

Licence

This is Open Source software, and novelWriter is licenced under GPLv3. See the GNU General Public License website for more details, or consult the License document. Bundled assets and their licences are listed in the Credits document.

novelwriter's People

Contributors

ainali avatar bkmeneguello avatar countjocular avatar gedakc avatar heymyian avatar jyhelle avatar longqzh avatar mgrhm avatar mvdkleijn avatar nisemono-neko avatar nullbasis avatar number042 avatar reproog avatar ryex avatar stranger-danger-zamu avatar teymour-aldridge avatar tmarplatt avatar vkbo 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  avatar  avatar  avatar  avatar

novelwriter's Issues

Project Lockfile

There should be a lock file in the project folder when the project is open, to prevent multiple instances editing the same project and overwriting changes. This is an issue when the project is synced.

~/Desktop is not recognized on macOS

novelWriter works just fine on macOS Catalina. But when exporting to LaTeX I attempted to place the .tex file on the Desktop by specifying:

~/Desktop/Dick_and_Jane.tex

But I get an error popup:

Failed to open file.
[Errno 2] No such file or directory: '~/Desktop/Dick_and_Jane.tex'

The workaround is trivial of course. Specify the full path Users/johnb/Desktop/Dick_and_Jane.tex for good results.

I had originally prepared Dick_and_Jane on my Linux box where I specified /home/johnb/Desktop/Dick_and_Jane but that did not work on macOS. I had hoped to use the ~ symbol to make it cross-platform. Certainly in the shell macOS understands the tilde character since macOS is a Unix system.

Hopefully there is a cross-platform way in Python3 to express the home directory as ~ but if not it's just a minor inconvenience.

Unicode characters are not handled properly in LaTeX exports

I've placed the characters π (π) and → (→) in a novelWriter document. When I export to LaTeX and attempt PDF conversion using TeXshop two errors present themselves:

./Dick_and_Jane.tex:66: Package inputenc Error: Unicode character � (U+2192)
(inputenc)                not set up for use with LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.66 Jack and Jill �
                       the hill to fetch a pail of water.
? 

./Dick_and_Jane.tex:68: Package inputenc Error: Unicode character � (U+03C0)
(inputenc)                not set up for use with LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                   
                                                  
l.68 Puff likes to eat �
                          just like humans.

The two unicode characters don't appear in the PDF output after we press Return twice to bypass the error messages.

I had thought the matter resolved with the addition of the latexcodec but I think I've jumped the gun and tested this prematurely.

Side-by-Side Plot Tags

It should be possible to align various plot points with plot tags. Setting a plot tag above a specific paragraph in two plot files, should align them when one is clicked and the other is open in the side panel.

It should be possible to add plot alignment points to any file, including character notes and scene files. The overview side panel should list the files that have the same tag, but are not open.

novelWriter won't snap to 50% of screen when dragged to left or right hand screen edge

I'm running GNOME on Linux. Most application windows, when dragged to the left edge of the screen will snap to occupy exactly half of the left hand side of the screen. Drag a window to the right hand edge of the screen and it snaps to fill the right half of the screen. I make heavy use of this feature.

novelWriter refuses to honor this.

It will go fullscreen when dragged to the top of the display.

Update. This is an artifact caused by issue 120. When the Label field is very wide novelWriter can't fit the editor and document panes into the width equal to half a screen. When the Label is reasonably short novelWriter snaps both ways just fine.

Fix Issue 120 and you fix this issue as well.

Clarify best practices for LaTeX export

Consider documenting the following suggestions for users exporting to LaTeX:

  1. Set the Fixed Width to zero so LaTeX has maximum control over typesetting
  2. Don't include any YAML in the Markdown source because it's passed directly to the output.
    3 Avoid using special LaTeX characters, specifically the Ampersand & character because the LaTeX won't compile to PDF, throwing a syntax error.

Add a Search and Replace Feature

Would a search and replace feature be added to novelWriter? I found myself having to switch to an external text editor to do edits.

Unclear usage of @command: value construct

Section 5.1 of the documentation notes that:

@command: value A command followed by a value or a comma separated list of values.

We've tried substituting Linux command line tools but nothing happens, the entire line is ignored. In short I have no idea what this feature is supposed to do. What hidden power lies in wait to be discovered?

Could you add a few examples in the documentation on how this feature is used?

Follow tags, references

Add the ability to follow references to tags by either right click > go to, or pressing Ctrl+Enter or Ctrl+Return while having the cursor on the tag word.

This feature should open the relevant note file in the view pane.

For multi-section files, this can tie into auto-generated anchor tags needed for issue #66.

Dark Theme on Windows and Mac

The dark theme doesn't render properly on Windows and Mac. Specifically, the tree view headers don't change colour. At least on Windows, the borders around various GUI elements don't either, and the tab backgrounds also stay light coloured.

The theme feature uses the QPalette settings of Qt5, and work perfectly fine on Debian, but may be missing some key settings that fail on other systems.

Optional POV Columns

The tree view should have the option to display the POV character in the tree view column. Or at least show it in the details panel.

Hard line breaks

Markdown supports hard line breaks, but novelWriter doesn't currently parse these. Currently, line breaks are not added at all when rendering (aside from making the export source readable). Instead, as markdown specifies, paragraphs are separated by one or more empty line.

In markdown, hard line breaks are achieved by adding two or more spaces at the end of a line. An idea would be to add this as well, but highlight them with the syntax highlighter so it is visible. A keyboard shortcut would also be useful, one that would add two spaces and a return, possibly with the Shift+Enter and Shift+Return key combination.

Realtime Preview

Split from issue #102

At the same time it would be wonderful if the right hand pane contains the realtime rendered version of the Markdown text in the scenes without the need to press Ctrlr.

Misleading Language Label on Status Bar

As noted by @Number042, the language label on the status bar can be misleading.

It currently shows the language in the settings file (read on startup) but if, for some reason, the spell checker packages available change, the default one is loaded. He uses German, but the default only has English. In his case it therefore loaded the English dictionary instead of the German, but still showed German on the status bar.

The simple fix is to ensure that it is the spell check class that updates the status bar, and it should reflect the actually loaded dictionary, not the selected dictionary and just assume it it could be loaded.

Save Cursor Position

Add saving of the last cursor position in documents. Add to the NWItem class as self.cursorPos.

Width of Tree pane is set by length of Label field

Some of my document titles are 50 characters long. They're long because they include a synopsis. When I double click on a document name with a wide title the tree pane abruptly widens. The editor and document panes are compressed into the remaining space.

It's quite a jarring and unexpected behavior.

Consider allowing the Label field below the tree view to wrap or to display ellipses in place of characters for which no room remains to display. See the attached screenshot:

Screenshot from 2019-11-03 12-24-26

Bad first line of LaTeX export

novelWriter export to LaTeX includes this as the first line:

\documentclass[12pt]{report}\n\usepackage[utf8]{inputenc}\n\begin{document}\n\newpage

This is a newline error. Correct:

\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\begin{document}
\newpage

View Shortcut Action

When the editor has focus, Ctrl+R sould view the open document. When the tree has focus, Ctrl+R should view the selected document.

Tags defined in documents in the Trash folder are appended to the exported document.

I have a document named Red Ball in the Objects folder and another document also named Red Ball in the Trash folder. The Trash folder is located last in the folder tree. The Red Ball note text is appended to the end of the exported document. It should not be.

It seems that the Trash folder contents are not ignored on export. Indeed there is no explicit option to choose the Trash folder in the export dialog.

Pandoc export to ~/Desktop fails on macOS Catalina

This is a slightly different problem from issue 92. In this case when the user selects a Pandoc export and the destination is

~/Desktop/Dick_and_Jane.tmp

then novelWriter complains in the console and with a popup message:

ERROR     Failed to convert file using pypandoc + Pandoc.
ERROR     source_file is not a valid path

Note that the file ~/Desktop/Dick_and_Jane.tmp is created on the Desktop and contains the expected HTML code. Indeed the user is prompted for permission to overwrite it on subsequent export to Pandoc attempts for the same project.

Unclear warning about escaped unicode in LaTeX export

When exporting to LaTeX the following warning is unclear for two reasons:

Failed to escape unicode characters while writing LaTeX file. 
The genrated .tex file may not build properly. 
Make sure the python package 'latexcodec' is installed and working.
  1. genratedgenerated is a simple typographical error.
  2. According to Synaptic, there is no such package as latexcodec. The package is called python3-latexcodec as mentioned in novelWriter's README file.

Dragging dividers is sluggish when a 65,000-word document is open

In version 0.4.2 of novelWriter:

  1. Double-click a scene containing a 65,000-word document (it was imported from an old NaNoWriMo draft manuscript) and
  2. Type CtrlR. Now both the editor in pane 2 and the preview in pane 3 are visible.
  3. Now drag on either divider to resize the panes. It's a sluggish experience. novelWriter takes about a second to reflow the text, and this is on a fast Linux machine.

In the editor preferences I have unchecked Max text width and Justify text, checked Show tabs and spaces, checked Show line endings. Spell check is off. The theme is set to default dark

Search replace doesn't always move forward

When the search/replace is used, the cursor should move to the point immediately after the replace/selection point before searching for the next occurrence.

For instance, when trying to replace all ## with ### in a text, i had to press F3 to move to the next one as it was selecting again the text I just replaced.

novelWriter lacks an import capability

Enhancement Request

novelWriter has a very nice set of tools to allow the novelist to organize and analyze their manuscript. That capability is only available as material is manually added to novelWriter. Once the novel is exported to Markdown, Text or HTML5 for editing using a grammar checker or a human editor, there is no way back. That's limiting.

How wonderful it would be if novelWriter could import a Markdown file and assign chapter folders and scenes automatically guided by the H1 and H2 headers in the file.

IMHO only Markdown needs to be importable. The novelist can readily convert an ODT or a DOCX or even an HTML file into Markdown using Pandoc.

Add support for editing and rendering multiple documents at once

So Scrivener has this feature and I think it's wonderful. You select several scene documents in the document tree, the contents appear in the proper order in the editor pane, each separated with a tasteful horizontal line, and you can edit what you see.

This would be very helpful when you have several scenes in different chapters that all occur at the same place. And you want to make sure that your descriptions are consistent.

At the same time it would be wonderful if the right hand pane contains the realtime rendered version of the Markdown text in the scenes without the need to press Ctrlr.

Distribution

Distribution ToDos:

  • Add novelWriter to PyPI
  • Possibly also generate packages with PyOxidizer or something similar.

Failing to write a file may still truncate it in corner cases

When playing around with settings in the file writing, I discovered that if the writing fails due to internal errors on the python side and not IO, the file may be truncated. This shouldn't really happen with normal use, but when it happens due to coding errors, the save function should revert the file to the previous state from the .bak. file.

Quote Auto-Replace Broken

Pressing Ctrl+D works, but typing double/single quotes no longer triggers highlighting, so probably broken auto-replace.

macOS keyboard shortcut documentation note

With one exception noted below, of the documented keyboard shortcuts that use the Ctrl key, Macintosh users should replace Ctrl with Command.

Exception: Commandh does not open the search and display bar because it is intercepted by the system to hide the foremost app, so pressing these two keys hides novelWriter.

Spell Checking

PyEnchant as the only spell checker is limiting, especially since pyenchant is discontinued.

Possible additions:

Will add more ...

Hang on LaTeX export when Fixed Width = 0

When exporting a document to LaTeX and the Fixed Width option is set to zero,
then novelWriter will wait at about the 12% point forever.
Click cancel to recover gracefully.
The error message in the console is:

Traceback (most recent call last):
  File "/home/johnb/Applications/novelWriter/nw/gui/export.py", line 165, in _doExport
    outFile.addText(tHandle)
  File "/home/johnb/Applications/novelWriter/nw/convert/file/text.py", line 140, in addText
    self.theConv.doConvert()
  File "/home/johnb/Applications/novelWriter/nw/convert/text/tolatex.py", line 118, in doConvert
    self.theResult += "%s\n" % tWrap.fill(" ".join(thisPar))
UnboundLocalError: local variable 'tWrap' referenced before assignment

The workaround is to set the Fixed Width to something nonzero. 999 works pretty well as a workaround. However we believe the zero setting matters because we don't want to force line breaks early. LaTeX typesetting does a better job.

Unable to launch

Received the following error:

>>> ~/apps/novelWriter $ ./novelWriter.py 
qt5ct: using qt5ct plugin

(python3:19846): dbind-WARNING **: 13:26:22.325: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Traceback (most recent call last):
  File "./novelWriter.py", line 45, in <module>
    nw.main(inArgs)
  File "$PATH/apps/novelWriter/nw/__init__.py", line 197, in main
    nwGUI = GuiMain()
  File "$PATH/apps/novelWriter/nw/gui/winmain.py", line 66, in __init__
    self.docEditor  = GuiDocEditor(self, self.theProject)
  File "$PATH/apps/novelWriter/nw/gui/doceditor.py", line 94, in __init__
    self.initEditor()
  File "$PATH/apps/novelWriter/nw/gui/doceditor.py", line 147, in initEditor
    theOpt.setTabStopDistance(self.mainConf.tabWidth)
AttributeError: 'QTextOption' object has no attribute 'setTabStopDistance'

Clarify Import and Split Workflow

It took me a few minutes to understand how to use the new split file feature. Consider documenting the workflow. I found the following procedure worked well.

To import a large Markdown document into novelWriter

This procedure begins with an empty project and a large Markdown document with H1 title headings and H2 chapter headings. It ends with a novel folder of title folders each containing their scene documents.

  1. Create a new project
  2. Click on Novel in the tree pane
  3. Create a new document (Menu → Document → New Document)
  4. Select it in the tree pane.
  5. Import a large document (Menu → Document → Import from File)
  6. Select the imported document in the tree pane
  7. Menu → Document → Split Document to Folder
  8. The Split Document dialog appears
  9. Choose Split on Title Level
  10. Click Split.
  11. A folder with the same name as the document is created containing each title.
  12. Click on each title and split each one at the chapter level
  13. Optionally continue splitting to the scene level if appropriate
  14. Clean up the tree pane by deleting old unsplit documents.
  15. Get to work reorganizing and editing your novel

Notes

  • You may inadvertently do a split and create a folder of documents. You cannot delete a folder unless you empty it first. Fortunately the CtrlDel keyboard shortcut is a very quick way to remove a folder's documents one at a time because there is no confirmation prompt
  • A document deleted from the tree pane winds up in the Trash folder. You cannot move a folder to the Trash. When you delete a document from the trash then it is truly deleted. But novelWriter first prompts you for confirmation.
  • You cannot select multiple documents at a time to split them en masse. There is no keyboard shortcut to trigger the Split Document dialog.
  • The Split Document dialog does not remember its previous setting so be mindful of which heading level you split your document at.

Add meta data cache files

The meta data saved in the main XML file should also be cached to a per-file cache on save. This may help in restoring orphaned files.

Markdown export

When exporting to Markdown format, not everything works fine: line breaks and lists are not saved in the correct Markdown format. You can check this with a Markdown editor like Retext or any other.

Xubuntu 19.10, pypandoc is installed.

Distraction Free Editing

Add a distraction free mode that hides at least the tree view and view pane. Preferably also the status bar, and menu bar. The latter may be tricky on desktop managers that moves the menu bar. (Needs to be investigated.)

A few of these should be optional, and the width of the document should too, as it should be decoupled from the regular editor text width. An option to include a minimal set of meta info in the bottom corner should be possible, like word count and possibly the two save LEDs.

Automatic full screen mode on distraction free should also be optional.

Connect to key F8, and override F11 if necessary.

Don't dismiss "Referenced from" pane when a reference is clicked.

Scenario: I bring a scene into the editor pane. The scene references

@object: Red_Ball

Next I press Ctrlr to bring the preview into the document pane on the right which now includes a reformatted view of the tags.

So I click on Red_Ball in the document pane. A pane titled Referenced From appears below the document pane. In my case there are two headings that contain the Red_Ball tag. So far so good. I want to check each of these documents.

So I click one of the headings. Right away the document with that heading appears in the document pane. "Nice" I say. "Let's check the other heading." But the Referenced From pane has vanished. "Oh no," I say. "I'll have to click on the Red_Ball tag again to bring it back."

That's friction. Consider reducing it by leaving the Referenced From pane open and let the user close it by clicking on a little X.

Behaviour of Special Folders

The special trash and orphaned folders should be read only. Currently, files can be added, even folders. And files can be edited as well. This makes no sense.

Sync view pane with edit pane

If the view pane is showing the same document as the edit pane, it should be possible to sync the scrolling, or at least the cursor position. This can be achieved by inserting an anchor tag before each block in the html.

If this is done, it is probably useful to also have the option to show comments and meta tags in the preview.

Extend Timeline Feature for History

Hi,
NovelWriter already brings the nice feature of a timeline, which is currently used to track events of the actual plot and connects those to characters and locations.
An idea I has was to extend that feature.
Let me try to explain what I had in mind. Working on a novel which is based on a plot that has quite some actual history with it. This history links to characters and locations in the actual (current) plot.
IMHO it would be very useful if this history can be sort of browsed interactively while writing on the actual plot.
Maybe the timeline feature can be extended step by step to achieve such a feature in the end. Starting with introducing an Event class that can be linked to characters and locations?

Happy to hear opinions on that.

Quick Start and Access to Sample

Just a request from another user among my colleagues:

  • Add a Quick Start guide to the documentation. How to set up a project and start writing.
  • Add an easy way to load the sample without having to browse to the location of the source code. This is related to one of the suggestions in issue #123.

Could possibly add a pop-up when opening the app with both a very brief quick start and an overview of recent projects and an option to load the sample.

Add support for a synopsis field

One of the very neat features of Scrivener for macOS is that every scene can be represented on a corkboard as an index card and a brief synopsis about that scene displays on that index card. The author can arrange these index cards based on the synopsis rather than the scene title. This is good because the synopsis is a better representation of the scene than the scene name.

Nonono I'm not going to suggest novelWriter be getting a corkboard.

At present novelWriter lets the author rearrange scenes and chapters in the outline. It would be really helpful if, instead of displaying the scene title, that an option be provided to display instead a synopsis field. The synopsis is not considered part of the novel text. Indeed the synopsis is typically written first and the scene is fleshed out afterwards.

Incomplete information installing via PyPI

So I installed novelWriter in a fairly new Linux guest using Virtualbox follows:

python3 -m pip install novelwriter --user

and that succeeded. However a naive user will need some guidance and first launch of novelWriter might be the time to offer the following information:

  • Where to find a sample project. Consider shipping it along with the code and including a hint to its location in the File menu
  • Mention why sudo apt install pandoc is important
  • Recommend which spelling package to use. On first launch, novelWriter reports WARNING No spell check tool available. Consider recommending how to install one.

Translations of novelWriter

As of January 2022, translations are managed through the crowdin project page.

If you want the repository credit for large translation efforts, you can make a direct pull request. Otherwise, please don't make pull requests for translations. If you have produced a translation file locally, you can upload it yourself directly on the Crowdin page, and your translations will be added automatically.

If you want to contribute a new translation, or have any other relevant questions, please make a post in this issue thread.

Going forward, the process will be as follows:

  • For each pre-release of novelWriter, the Main GUI translation file will be updated and uploaded to the Crowdin tool.
  • At the full release, the translation files, in whatever state they may be, will be downloaded and added to the release.
  • If necessary, files will also be updated for patch releases.

Last updated on 2022-02-12

Allow opening project from command line

It should be possible to open a novelWriter project from command line since the application anyway parses command line options. This would allow for "open with" selections directly on the project file from the file browser.

Unexpected dialog when canceling a document import

In version 0.4.2, when you:

  1. Click a document in the tree view,
  2. Do a Menu - Document - Import from file... and then
  3. Click Cancel,

an unexpected dialog appears:

Could not read file. The file cannot be a binary file. [Errno 2] No such file or directory: ''

The dialog is harmless and may be dismissed.

Display Language on StatusBar

The selected spell check language should be visible on the status bar, like is standard in many other applications.

It should also be possible to override the language for a project, as some users may have a different project language than the default setting.

Running novelWriter on the Pinebook64

The good news is that novelWriter runs nicely on the Pinebook64, a 64-bit ARM-based laptop running a 64-bit ARM version of Ubuntu 16.04.6 LTS.

But its Python3 environment isn't the same as other Linux distros. The following steps install the necessary dependencies. Some required us to use apt install while others installed fine using python3 -m pip. Follows are the details. Consider incorporating some of this information in the novelWriter installation instructions.

sudo apt install python3-pip
sudo apt install pandoc
python3 -m pip install setuptools --user
python3 -m pip install pypandoc --user
python3 -m pip install latexcodec --user
sudo apt install python3-pyqt5 python3-pyqt5-qtsvg python3-appdirs \
                 python3-lxml python3-enchant

With the dependencies in place it's a simple matter to download and unzip the novelWriter ZIP file from its repository and run it out of the resulting directory.

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.