Coder Social home page Coder Social logo

huyston / willnotebook Goto Github PK

View Code? Open in Web Editor NEW
22.0 4.0 4.0 70.1 MB

New way to do academic writing.

License: GNU General Public License v2.0

Python 38.30% CSS 0.02% JavaScript 60.12% HTML 0.49% TeX 1.07%
academic writing paper equation editor programming productivity python latex html notebook sympy pdflatex jupyter

willnotebook's Introduction

WillNotebook

Join the chat at https://gitter.im/WillNotebook/Lobby

Donate

WillNotebook is inspired by jupyter (notebook) project, but aims the specifics of academic writing. The idea is to merge the advantages and functionalities of Word, Latex and Python together into one powerful and hackable software.

What can I do with WillNotebook?

  • Add titles, subtitles, etc
  • Add normal, bold, italic and both bold and italic text
  • Add python code and execute it within the document
  • Call python variables into the text
  • Add equations with latex and sympy
  • Add figures
  • Reference equations, sections and figures with automatic numbering
  • Automatic citation handling using .bib (using latex)
  • Automatic References creation (using latex)
  • Create tables
  • Create bullet point lists
  • Plots using matplotlib

Export formats

The default format is ".will" and it is the recommended format for holding all the information that WillNotebook needs. However you can export to other formats like:

  • .tex (clean LaTeX file)
  • .docx (Equations are not included yet)
  • .pdf (from pdflatex)
  • .pdf (from WillNotebook browser printing)

How is it different from Jupyter Notebook?

It is focused on academic writting. And so it provides an automatic section numbering, equation numbering, referencing system, figure with captions and sources and it is more clean and readable (like a report or a paper with hidden code).

How to use it?

Dependencies

WillNotebook needs Python3 to run, so if you don't have it installed download it here. If you are under Linux, it's very likely that you already have it installed. If not, use your package manager to install it.

To run the server you will need to have installed the following packages:

  • Cherrypy (To run the server)
  • Dill (to save the code state)
  • [Optional] LaTeX (to produce the pdflatex)
  • [Optional] Python-docx (to produce .docx documents)
  • [Optional] Sympy (To do math calculations)

You can install Python packages using pip:

# pip install cherrypy dill python-docx sympy

To install LaTeX, install TexLive (Linux) or MiKTeX(Windows). Note: Windows compatibility is not tested and probably PDF creation with pdflatex won't work. Export to .tex should work on all platforms even without LaTeX installed.

Ubuntu

# apt-get install texlive

ArchLinux

# pacman -S texlive-most

Start the server

Download all the files and run the server "main.py". After this, visit "127.0.0.1:8080" on your browser and have fun :) You should read the example for instructions on how to create your first document, by opening the "example.will" file in the blue bar.

The future

I made this to write my PhD thesis, so I shall improve it to be easy, hackable, and with many features that improve writting efficiency.

Hackable?

Yes! WillNotebook runs in a browser and all the code is easily hackable. It's written in Python (even the browser code thanks to Brython!). So, if you need to change how the .tex exporter handles the figures, you can change the code yourself very easily. I'll try to make a good documentation of how it works so anyone can play with it.

And more! It's also html! You can play with the Notebook html within the document, but it's on your own :)

WARNING VERY EARLY ALPHA

This is still in development, but fell free to play with it, request features and help me code it ;)

I think it's all for now.

Have fun :)

willnotebook's People

Contributors

gitter-badger avatar huyston avatar

Stargazers

 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

willnotebook's Issues

[feature] Implement insertion and deletion of bibtex references in the notebook menu

Create a menu where the user can insert a bibtex reference to the document. It should check for existing bibtex entries to avoid duplicates.
For deletion the user must specify the key reference of the bibtex entry to delete. Automatic deletion may be problematic because if the user deletes a cell with the only bibtex entry in the document the bibtex entry will be lost and reinsertion will be necessary.
For instance the user should explicitly specify entries for insertion and deletion.

[feature] Menu for research terms in academic google

It is useful to be able to search for a specific topic directly from the notebook. Search terms will be forwarded to a scientific search engine, such as Academic Google. A new tab should be created with the results from the search engine.

References break when using mathjax ref and notebook's ref

If one uses the \ref{} command to reference a section or image AND the document has any reference to a equation, then the referencing breaks. Some references vanishes (mathjax ones).
Reference breaks when something touches the mathjax links.

separate images and bib database for each document

Each document must have its own images folder with its own bib references database. There may exist a global database and a local database with priority. If the reference label is not found in the local database, the global database can be checked for the reference. The reference, if found in the global, passes to the local database.

[Feature] Slider to control the figure size

There should be a way to customize the figure size in an easy way. An slider should do ok. This will generate a value of 0-1, 1 meaning the whole textwidth. The relation with the textwidth will make it easier to export to other formats like tex and docx. Relates to issue #5

[Feature] Implement citation and references

One important feature for academic writing is to cite and create the references automatically. This should be implemented using the LaTeX referencing system which works well and have support for many publisher styles.

Citations gets put in wrong place

When one calls the \cite{} command, if there is another one in the same cell, both get put near each other instead of where the \cite{} commands are.

Use separate commands for referencing different objects

When referencing an image, there should be a specific command to do it, like \fig{}. This feature can fix the bug related in issue #15 and provide a manner or automatically handle referencing standards.

For example, one can simply type \fig{test} to reference an image in the IEEE style, and should produce Fig. 1, and not manually type Fig. \ref{test} to do it. It's also more readable.

Use a single parser for export formats

Instead of writting a parser for each export format, just use one and call the format specific methods to create the document. This will me it easier to extend the format options.

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.