Code Monkey home page Code Monkey logo

desktop's Introduction

Stencila

Programmable, reproducible, interactive documents

๐Ÿ‘‹ Intro โ€ข ๐Ÿšด Roadmap โ€ข ๐Ÿ“œ Docs โ€ข ๐Ÿ“ฅ Install โ€ข ๐Ÿ› ๏ธ Develop

๐Ÿ™ Acknowledgements โ€ข ๐Ÿ’– Supporters โ€ข ๐Ÿ™Œ Contributors



๐Ÿ‘‹ Introduction

Stencila is a platform for creating and publishing, dynamic, data-driven content. Our aim is to lower the barriers for creating truly programmable documents, and to make it easier to publish them as beautiful, interactive, and semantically rich, articles and applications. Our roots are in scientific communication, but our tools are useful beyond.

This is v2 of Stencila, a rewrite in Rust focussed on the synergies between three recent and impactful innovations and trends:

We are embarking on a rewrite because CRDTs will now be the foundational synchronization and storage layer for Stencila documents. This requires fundamental changes to most other parts of the platform. Furthermore, a rewrite allow us to bake in, rather than bolt on, new modes of interaction between authors and LLM assistants and add mechanisms to mitigate the risks associated with using LLMs (e.g. by recording the actor, human or LLM, that made the change to a document). Much of the code in the v1 branch will be reused (after some tidy-ups and refactoring), so v2 is not a complete rewrite.

๐Ÿšด Roadmap

Our general strategy is to iterate horizontally across the feature set, rather than fully developing features sequentially. This will better enable early user testing of workflows and reduce the risk of finding ourselves painted into an architectural corner. So expect initial iterations to have limited functionality and be buggy.

We'll be making alpha and beta releases of v2 early and often across all products (e.g. CLI, desktop, SDKs). We're aiming for a 2.0.0 release by the end of Q3 2024.

๐ŸŸข Stable โ€ข ๐Ÿ”ถ Beta โ€ข โš ๏ธ Alpha โ€ข ๐Ÿšง Under development โ€ข ๐Ÿงช Experimental โ€ข ๐Ÿงญ Planned โ€ข โ” Maybe

Schema

The Stencila Schema is the data model for Stencila documents (definition here, generated reference documentation here). Most of the schema is well defined but some document node types are still marked as under development. A summary by category:

Category Description Status
Works Types of creative works (e.g. Article, Figure, Review) ๐ŸŸข Stable (mostly based on schema.org)
Prose Types used in prose (e.g. Paragraph, List, Heading) ๐ŸŸข Stable (mostly based on HTML, JATS, Pandoc etc)
Code Types for executable (e.g. CodeChunk) and non-executable code (e.g. CodeBlock) ๐Ÿ”ถ Beta (may change)
Math Types for math symbols and equations (e.g. MathBlock) ๐Ÿ”ถ Beta (may change)
Data Fundamental data types (e.g. Number) and validators (e.g. NumberValidator) ๐Ÿ”ถ Beta (may change)
Flow Types for control flow within a document (e.g. If, For, Call) ๐Ÿ”ถ Beta (may change)
Style Types for styling parts of a documents (Span and Division) ๐Ÿ”ถ Beta (may change)
Edits Types related to editing a documents (e.g. InstructionBlock, DeleteInline) ๐Ÿ”ถ Beta (may change)

Storage and synchronization

In v2, documents can be stored as binary Automerge CRDT files, branched and merged, and with the ability to import and export the document in various formats. Collaboration, including real-time, is made possible by exchanging fine-grained changes to the CRDT over the network. In addition, we want to enable interoperability with a Git-based workflow.

Functionality Description Status
Documents read/write-able Able to write a Stencila document to an Automerge binary file and read it back in โš ๏ธ Alpha
Documents import/export-able Able to import or export document as alternative formats, using tree diffing to generate CRDT changes โš ๏ธ Alpha
Documents fork/merge-able Able to create a fork of a document in another file and then later merge with the original ๐Ÿงญ Planned
Documents diff-able Able to view a diff, in any of the supported formats, between versions of a document and between a document and another file ๐Ÿงญ Planned
Git merge driver CLI can act as a custom Git merge driver ๐Ÿงญ Planned
Relay server Documents can be synchronized by exchanging changes via a relay server ๐Ÿงญ Planned
Rendezvous server Documents can be synchronized by exchanging changes peer-to-peer using TCP or UDP hole punching โ” Maybe

Formats

Interoperability with existing formats has always been a key feature of Stencila. We are bringing over codecs (a.k.a. converters) from the v1 branch and porting other functionality from encoda to Rust.

Format Encoding Decoding Coverage Notes
JSON ๐ŸŸข ๐ŸŸข
JSON5 ๐ŸŸข ๐ŸŸข
JSON-LD ๐ŸŸข ๐ŸŸข
CBOR ๐ŸŸข ๐ŸŸข
CBOR+Zstandard ๐ŸŸข ๐ŸŸข
YAML ๐ŸŸข ๐ŸŸข
Plain text ๐Ÿ”ถ -
HTML ๐Ÿšง ๐Ÿงญ
JATS ๐Ÿšง ๐Ÿšง Planned for completion. Port decoding and tests from encoda.
Markdown โš ๏ธ โš ๏ธ
R Markdown ๐Ÿงญ ๐Ÿงญ Relies on Markdown; v1
Myst Markdown ๐Ÿšง ๐Ÿšง In progress; PR
Jupyter Notebook ๐Ÿงญ ๐Ÿงญ Relies on Markdown; v1
Scripts ๐Ÿงญ ๐Ÿงญ Relies on Markdown; v1
Pandoc ๐Ÿงญ ๐Ÿงญ Planned. v1
LaTeX ๐Ÿงญ ๐Ÿงญ Relies on Pandoc; v1; discussion
Org ๐Ÿงญ ๐Ÿงญ Relies on Pandoc; PR
Microsoft Word ๐Ÿงญ ๐Ÿงญ Relies on Pandoc; v1
ODT ๐Ÿงญ ๐Ÿงญ Relies on Pandoc
Google Docs ๐Ÿงญ ๐Ÿงญ Planned v1
PDF ๐Ÿงญ ๐Ÿงญ Planned, relies on HTML; v1
Codec Plugin API ๐Ÿงญ ๐Ÿงญ An API allowing codecs to be developed as plugins in Python, Node.js, and other languages

Kernels

Kernels are what executes the code in Stencila CodeChunks and CodeExpressions, as well as in control flow document nodes such as ForBlock and IfBlock. In addition, there are kernels for rendering math (e.g. MathBlock) and styling (e.g. StyledInline) nodes.

Kernel Purpose Status
Bash Execute Bash code ๐Ÿ”ถ Beta
Zsh Execute Zsh code โ” Maybe; v1
Python Execute Python code ๐Ÿ”ถ Beta
R Execute R code โš ๏ธ Alpha
QuickJs Execute JavaScript in embedded sandbox ๐Ÿ”ถ Beta
Node.js Execute JavaScript in a Node.js env ๐Ÿ”ถ Beta
Deno Execute TypeScript code โ” Maybe; v1
SQLite Execute SQL code ๐Ÿงญ Planned; v1
Jupyter kernels Execute code in Jupyter kernels ๐Ÿšง In progress; PR
Rhai Execute a sand boxed, embedded language ๐Ÿ”ถ Beta
AsciiMath Render AsciiMath symbols and equations ๐Ÿ”ถ Beta
TeX Render TeX math symbols and equations ๐Ÿ”ถ Beta
Graphviz Render Graphviz DOT to SVG images โš ๏ธ Beta
Jinja Interpolate document variables into styling and other code โš ๏ธ Beta
Style Transpile Tailwind and CSS for styling ๐Ÿ”ถ Beta
HTTP Interact with RESTful APIs โ” Maybe; v1

[TIP] Run stencila kernels (or cargo run -p cli kernels in development) for an up to date list of kernels, including those available through plugins.

Tools

Tools are what we call the self-contained Stencila products you can download and use locally on your machine to interact with Stencila documents.

Environments Purpose Status
CLI Manage documents from the command line and read and edit them using a web browser โš ๏ธ Alpha
Desktop Manage, read and edit documents from a desktop app โš ๏ธ Alpha repo
VSCode extension Manage, read and edit documents from within VSCode โš ๏ธ Alpha

SDKs

Stencila's software development kits (SDKs) enable developers to create plugins to extend Stencila's core functionality or to build other tools on top of. At this stage we are planning to support Python, Node.js and R but more languages may be added if there is demand.

Language Description Status Coverage
Python Types and function bindings for using Stencila from Python โš ๏ธ Alpha PyPI
TypeScript JavaScript classes and TypeScript types for the Stencila Schema โš ๏ธ Alpha NPM
Node.js Types and function bindings for using Stencila from Node.js โš ๏ธ Alpha NPM

Testing and auditing

Making sure Stencila v2 is well tested, fast, secure, and accessible, is important. Here's what where doing towards that:

What Description Status
Property-based testing Establish property-based (a.k.a generative) testing for Stencila documents ๐ŸŸข Done
Round-trip testing Establish property-based tests of round-trip conversion to/from supported formats and reading/writing from/to Automerge CRDTs ๐ŸŸข Done here and here
Coverage reporting Report coverage by feature (e.g. by codec) to give developers better insight into the status of each ๐ŸŸข Done Codecov
Dependency audits Add dependency audits to continuous integration workflow. ๐ŸŸข Done
Accessibility testing Add accessibility testing to continuous integration workflow. ๐ŸŸข Done here
Performance monitoring Establish continuous benchmarking ๐ŸŸข Done here
Security audit External security audit sponsored by NLNet. ๐Ÿงญ Planned Q2 2023 (after most v2 functionality added and before public beta)
Accessibility audit External accessibility audit sponsored by NLNet. ๐Ÿงญ Planned Q3 2023 (before v2.0.0 release)

๐Ÿ“œ Documentation

At this stage, documentation for v2 is mainly reference material, much of it generated:

More reference docs as well as guides and tutorial will be added over the coming months. We will be bootstrapping the publishing of all docs (i.e. to use Stencila itself to publish HTML pages) and expect to have an initial published set in.

๐Ÿ“ฅ Install

Although v2 is in early stages of development, and functionality may be limited or buggy, we are releasing alpha versions of the Stencila CLI and SDKs. Doing so allows us to get early feedback and monitor what impact the addition of features has on build times and distribution sizes.

CLI

Windows

To install the latest release download stencila-<version>-x86_64-pc-windows-msvc.zip from the latest release and place it somewhere on your PATH.

MacOS

To install the latest release in /usr/local/bin,

curl --proto '=https' --tlsv1.2 -sSf https://stencila.dev/install.sh | sh

To install a specific version, append -s vX.X.X. Or, if you'd prefer to do it manually, download stencila-<version>-x86_64-apple-darwin.tar.xz from the one of the releases and then,

tar xvf stencila-*.tar.xz
cd stencila-*/
sudo mv -f stencila /usr/local/bin # or wherever you prefer
Linux

To install the latest release in ~/.local/bin/,

curl --proto '=https' --tlsv1.2 -sSf https://stencila.dev/install.sh | sh

To install a specific version, append -s vX.X.X. Or, if you'd prefer to do it manually, download stencila-<version>-x86_64-unknown-linux-gnu.tar.xz from the one of the releases and then,

tar xvf stencila-*.tar.xz
mv -f stencila ~/.local/bin/ # or wherever you prefer
Docker

The CLI is also available in a Docker image you can pull from the Github Container Registry,

docker pull stencila/stencila

and use locally like this for example,

docker run -it --rm -v "$PWD":/work -w /work --network host stencila/stencila --help

The same image is also published to the Github Container Registry if you'd prefer to use that,

docker pull ghcr.io/stencila/stencila

SDKs

Python

Use your favorite package manager to install Stencila's SDK for Python:

python -m pip install stencila

[!NOTE] If you encounter problems with the above command, you may need to upgrade Pip using pip install --upgrade pip.

poetry add stencila
Node

Use your favorite package manager to install @stencila/node:

npm install @stencila/node
yarn add @stencila/node
pnpm add @stencila/node
TypeScript

Use your favorite package manager to install @stencila/types:

npm install @stencila/types
yarn add @stencila/types
pnpm add @stencila/types

๐Ÿ› ๏ธ Develop

Code organization

This repository is organized into the following modules. Please see their respective READMEs, where available, for guides to contributing to each.

  • schema: YAML files which define the Stencila Schema, an implementation of, and extensions to, schema.org, for programmable documents.

  • json: A JSON Schema and JSON LD @context, generated from Stencila Schema, which can be used to validate Stencila documents and transform them to other vocabularies

  • rust: Several Rust crates implementing core functionality and a CLI for working with Stencila documents.

  • python: A Python package, with classes generated from Stencila Schema and bindings to Rust functions, so you can work with Stencila documents from within Python.

  • ts: A package of TypeScript types generated from Stencila Schema so you can create type-safe Stencila documents in the browser, Node.js, Deno etc.

  • node: A Node.js package, using the generated TypeScript types and bindings to Rust functions, so you can work with Stencila documents from within Node.js.

  • prompts: Prompts for used to instruct AI assistants in different contexts and for different purposes.

  • docs: Documentation, including reference documentation generated from schema and CLI tool.

  • examples: Examples of documents conforming to Stencila Schema, mostly for testing purposes.

  • scripts: Scripts used for making releases and during continuous integration.

Continuous integration and deployment

Several Github Action workflows are used for testing and releases. All products (i.e CLI, Docker image, SKDs) are released at the same time with the same version number. To create and release a new version:

bash scripts/bump-version.sh <VERSION>
git push && git push --tags
Workflow Purpose Status
test.yml Run linting, tests and other checks. Commit changes to any generated files.
pages.yml Publish docs, JSON-LD, JSON Schema, etc to https://stencila.dev hosted on GitHub Pages
version.yml Trigger the release.yml workflow when a version tag is created.
release.yml Create a release, including building and publishing CLI, Docker image and SDKs.
install.yml Test installation and usage of CLI, Docker image and SDKs across various operating systems and language versions.

๐Ÿ™ Acknowledgements

Stencila is built on the shoulders of many open source projects. Our sincere thanks to all the maintainers and contributors of those projects for their vision, enthusiasm and dedication. But most of all for all their hard work! The following open source projects in particular have an important role in the current version of Stencila. We sponsor these projects where, and to an extent, possible through GitHub Sponsors and Open Collective.

Link Summary
Automerge A Rust library of data structures for building collaborative applications.
Clap A Command Line Argument Parser for Rust.
NAPI-RS A framework for building pre-compiled Node.js addons in Rust.
PyO3 Rust bindings for Python, including tools for creating native Python extension modules.
Rust A multi-paradigm, high-level, general-purpose programming language which emphasizes performance, type safety, and concurrency.
Serde A framework for serializing and deserializing Rust data structures efficiently and generically.
Similar A Rust library of diffing algorithms including Patience and Huntโ€“McIlroy / Huntโ€“Szymanski LCS.
Tokio An asynchronous runtime for Rust which provides the building blocks needed for writing network applications without compromising speed.

๐Ÿ’– Supporters

We wouldnโ€™t be doing this without the support of these forward looking organizations.

๐Ÿ™Œ Contributors

Thank you to all our contributors (not just the ones that submitted code!). If you made a contribution but are not listed here please create an issue, or PR, like this.

Ackerley Tng Aleksandra Pawlik Alex Ketch Ben Shaw Colette Doughty Daniel Beilinson Daniel Ecer
Daniel Mietchen Daniel Nรผst Danielle Robinson Dave David Moulton Finlay Thompson Fรกbio H. K. Mendes
J Hunt Jacqueline James Webber Jure Triglav Lars Willighagen Mac Cowell Markus Elfring
Michael Aufreiter Morane Gruenpeter MorphicResonance Muad Abd El Hay Nokome Bentley Oliver Buchtala Raniere Silva
Remi Rampin Rich Lysakowski Robert Gieseke Seth Vincent Stefan Fritsch Suminda Sirinath Salpitikorala Dharmasena Tim McNamara
Titus Tony Hirst Uwe Brauer Vanessasaurus Vassilis Kehayas alexandr-sisiuc asisiuc
campbellyamane ern0 - Zalka Ernล‘ grayflow happydentist huang12zheng ignatiusm jmhuang
jon r kitten solsson taunsquared yasirs

desktop's People

Contributors

apawlik avatar beneboy avatar dependabot[bot] avatar integral avatar nokome avatar obuchtala avatar oliver7654 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

desktop's Issues

Smaller error dialog box when opening folder that is not DAR

At the moment when a user tries to open a folder that is not a DAR, the dialog window with an error message ERROR:/home/aleksandra/Stencila/desktop/build is not a valid document archive. is the same size as the Desktop window and actually it's rendered in the same place. This may be confusing for a user who may not realize that all that is needed is just to close the window with the error message and the Desktop is just underneath it.
If possible, the error message should be in a small(er) dialog box.

0.28 release fails building on Windows 10

Probably related to electron/electron#12061

npm install says it can't find Python on Windows 10 even though the executable is exactly where npm claims it cannot find it.
Resetting PYTHONPATH and PYTHON, restart etc. doesn't help.

Trying to solve it via https://github.com/nodejs/node-gyp#on-windows as suggested by @oliver---- (via @nokome ).

Update: node-gyp installed no problem. Now, new error:

MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe". To fix this, 1) install the .NET Framework 2.0 SDK, 2) install Microsoft Visual Studio 2005 or 3) add the location of the component to the system path if it is installed elsewhere.

Help tool-tips do not update position when layout changes

Function helper tool-tips appear when functions are typed into code cells.

tooltip_position_update_help_closed

When you click the "?" to open the help slide-out menu, everything in the editor is shifted left except the help tool-tip that was shown by mousing over the function.

tooltip_position_update_help_open

MacOS bug

I just installed Stencila Desktop. The moment I start typing, the program immediately starts to glitch. The Enter Title section never disappears, and there are multiple cursors present everywhere. The backspace button doesn't work properly. (See screen shot attachment below)
Screen Shot 2019-08-05 at 1 47 09 PM

Easy install of dependencies

Right now the various Stencila packages rely on third party binaries like Pandoc and Git (although libgit2 bindings are sometimes used as an alternative). This desktop app should provide non-coders an easy way to install those dependencies - at the minimum some easy to follow instructions, at the maximum an automated install.

For inspiration see

Can't open large Stencila Sheets

A converted example includes a large (>13MB, >5K records) sheet (converted from plain csv). Opening the dar in Desktop results in blank Desktop screen and no feedback. It's still possible to close the Desktop window but it should:

  • display a message "file too large" OR
  • (in case it actually can open a Sheet of that size) display a message "please wait"

References not saved/incompletely saved on MacOsX

References are saved erratically. Sometimes they are not saved at all (I have a manuscript being edited that I can send you for testing that replicates this).

With newly created empty files, references with only their title field filled out are saved but said title is missing when reopening the file. In one instance when reopening the file I got the following error:

    Importing JATS
    Parse XML
    Validate JATS
    <element-citation> is incomplete. Schema: (inline-supplementary-material|related-article|related-object|hr|string-date|bold|fixed-case|italic|monospace|overline|overline-start|overline-end|roman|sans-serif|sc|strike|underline|underline-start|underline-end|ruby|alternatives|inline-graphic|private-char|chem-struct|inline-formula|label|tex-math|mml:math|abbrev|milestone-end|milestone-start|named-content|styled-content|annotation|article-title|chapter-title|collab|collab-alternatives|comment|conf-acronym|conf-date|conf-loc|conf-name|conf-sponsor|data-title|date|date-in-citation|day|edition|email|elocation-id|etal|ext-link|fpage|gov|institution|institution-wrap|isbn|issn|issn-l|issue|issue-id|issue-part|issue-title|lpage|month|name|name-alternatives|object-id|page-range|part-title|patent|person-group|pub-id|publisher-loc|publisher-name|role|season|series|size|source|std|string-name|supplement|trans-source|trans-title|uri|version|volume|volume-id|volume-series|year|fn|target|xref|sub|sup|x)+
    <element-citation publication-type="data">
    </element-citation>
    Transform JATS -> TextureArticle
    Validate Dar Article
    Transform TextureArticle -> InternalArticle
    Validate Texture Article

Essentially saving behavior is erratic. Unless I'm doing something wrong I deem this issue as blocking/very high priority since it makes using stencila on real manuscript drafting impossibile!

Automatically add rows/columns when copy-pasting cells from different spreadsheet

A newly opened Stencila Sheet has 10 rows and 21 columns. When copy-pasting more than 10 rows / 21 columns from another spreadsheet application, the data gets truncated to these 10 rows / 21 columns. A user will expect the data to be all copied and Stencila Sheet to automatically add more rows columns.

Temporary solution could adding at least a warning ("Only 10 first rows / 21 columns will be copied").

Can't save on Windows build

In the dev console I can see this:

Error: ENOENT: no such file or directory, copyfile 'C:\Users\Oliver\AppData\Local\Programs\stencila-desktop\resources\app.asar\bundle\lib\stencila\examples\blank\sheet.xml' -> 'C:\Users\Oliver\tmp\bla\sheet.xml'

The folder app.asar is missing.

Installing on Linux

Can you please supply instructions for downloading and installing the latest desktop on Linux? Do I install the tar.gz and then the desktop? Or if it is just the desktop AppImage file, then what do I use to install it? My laptop is suggesting ParPy? Not sure what kind of package it is so I can't tell.

Make "Could not get context..." error not "blinking"?

When typing code in a cell that has a selected execution context currently unavailable the error message keeps "blinking" - that is, it is not visible when one is typing but it shows up when a user stops typing. Probably would be better for consistency to have it on all the time (it would also keep reminding the user which context they set they cell in).

Useful but not critical and possibly related to stencila/stencila#641
context_error_blink

Sign Windows builds

Windows builds should be signed. Without signing, users get an installation warning "The publisher could not be verfied".

Also, unsigned builds may be lead anti-virus programs to quarantine the app (e.g McAffee LiveSafe as reported here) VirusTotal does not detect any issues with the 0.27.4 Windows build so a lack of code signing is likely to be to blame.

This is equivalent to issue #18 which is for signing Mac builds. See https://www.electron.build/code-signing for instructions on setting up both.

Two (unsaved) documents share the same Python kernel

The variables from one unsaved document is accessible from another unsaved document. This creates problems when creating visualisations with matplotlib.

Current Behaviour

Variable created in document X is accessible in document Y. Both documents weren't save.

Expected Behaviour

Variable created in document X is only accessible in documentX.

How to reproduce

  1. Open Stencila.
  2. Create one reproducible picture with matplotlib
  3. Create a new document.
  4. Create another reproducible picture with matplotlib

screenshot from 2018-07-26 23-58-13

Code cells becoming inactive

This bug seems to be coming up when there is unhandled error:
A code cell became inactive ('dead'). You can see below that the green border is thin - normally it should be 'fat' on the side and there should be some kind of output.
The solution is to create a new cell and rewrite the code in it. Or even restart the context (R or Python).

image

Blank document still open after opening existing DAR

Possibly confusing for users but not critical.
If a user goes straight into opening an existing DAR from newly launched Stencila Desktop, a blank document is still open (which opens by default when launching Stencila). This may be confusing for users as most software does not have the blank file (document, spreadsheet etc) still available after a user opened an existing file.
(Hope I managed to explain what I meant)

Disable using duplicate names for sheets (and articles?)

At the moment Stencila allows for duplicate names for Sheets and Articles (i.e. there may be multiple sheets with the same name). This may lead to problems when referencing sheets (connecting with data). Also other spreadsheet applications don't allow for duplicates so we should be consistent.

Alternative location for document buffers

Currently, when you install the desktop app, some user guide Documents are installed on the system. Right now they are stored to the user's "Documents" folder e.g. ~/Documents on Linux. It may be better to put these (an other document buffers) in places specifically meant for app data e.g. AppData on Mac, ~/.local on Linux. And wherever they are put, they should get removed on uninstall see #13 .

Linux desktop appImage fails to run in Fedora 27, 64_bit

Hello, just trying to launch the appImage for the Linux Desktop app under Fedora 27 64bit. Unfortunately, after initially popping up a window to ask for setting up to work alongside the desktop, the app core dumped. Now if I try and run it again, it immediately coredumps...
The initial error was a Javascript error
Tried via sudo - same sequence as when launched as a normal user. Window popped up, I selected yes, it crashed.

Interestingly, I have 5 seperated .mount_stenci..... files in /tmp which I do not have permission to read as sudo! And a .mount_stenciJDVlVp directory. I can't delete any of them in this current desktop session. I will reboot and see if that unlocks anything.
Files gone from /tmp on reboot. But appImage launch still fails immediately. Output from ls -al /tmp/.mount_stencip7zyQw/
ls: /tmp/.mount_stencip7zyQw/: Transport endpoint is not connected

Code cell menu does not close when it loses focus

The code cell menu opened by clicking the 3 vertical dots does not close unless you click an item in the menu or somewhere in the code input area of the cell. I would expect the menu to close when the user clicks anywhere off the menu.

Furthermore, the menu stays open when clicking items in the menu.

this allows the user to "cycle" through the various languages...although I am not sure how useful such a behavior is or if this was intentional.

[Linux] desktop file is lacking a Categories= entry

The desktop file is lacking a Categories= entry in the *.desktop file.

According to the menu spec,

By including one of the Main Categories in an application's desktop entry file, the application will be ensured that it will show up in a section of the application menu dedicated to this category. If multiple Main Categories are included in a single desktop entry file, the entry may appear more than once in the menu.

Hence, please add at least one of the following in the Categories= key.

Main Category Description Notes
AudioVideo Application for presenting, creating, or processing multimedia (audio/video)
Audio An audio application Desktop entry must include AudioVideo as well
Video A video application Desktop entry must include AudioVideo as well
Development An application for development
Education Educational software
Game A game
Graphics Application for viewing, creating, or processing graphics
Network Network application such as a web browser
Office An office type application
Science Scientific software
Settings Settings applications Entries may appear in a separate menu or as part of a "Control Center"
System System application, "System Tools" such as say a log viewer or network monitor
Utility Small utility application, "Accessories"

In addition, you could specify one or more from the longer list of Additional Categories.

Please test the result with desktop-file-validate and make sure it passes.

electron-builder offers native support for this since v19.22.1.

Reference: AppImage/appimage.github.io#2

Open links using electron.shell.openExternal

Sweet to try out Stencila desktop!

For all the links in the document, you should make sure to use shell.openExternal for all external links. It's either that or ensuring the window being opened doesn't have node access. Check the console on the link to gitter in the welcome notebook -- you and, by extension gitter, have access to the user's computer remotely.

Within nteract we setup a listener on the will-navigate event: https://github.com/nteract/nteract/blob/6383c940f38017088ff3612c2ff3f2d072055983/src/main/launch.js#L46

Disable special characters in sheet / article names?

We should probably consider how allowing for special characters in sheet and article naming may impact referencing them.
Google Spreadsheets seems to allow special characters such as [ ] * /
However, Libre Office and Excel don't allow [ ] * ? : / \

How should we go about this one?

Error when trying to use `Save as` when using ` npm start`

As per the gif below - Desktop throws an error when trying to use Save as, after the document has been already saved in the same location. There is no way to enter a custom name for the file (change the name, as usually Save as works).
When trying to use Save as for the first time - there is no error but there is also no way to change the name.
The error doesn't come up when using bundled application.

save_as_bug

Save triggers Save as

When trying to save document from the menu or by Ctrl+S shortcut, Desktop opens Save as dialog window.

save_bug

Use asarUnpack to unpack files e.g. blank docs

Using asar was causing issues (e.g. #50) but now we are diabling it, electron-builder is warning us that "asar using is disabled โ€” it is strongly not recommended solution=enable asar and use asarUnpack to unpack files that must be externally available".

This hints at the problem perhaps, the embedded DAR server was unable to access the files when using asar. Using asarUnpack, whatever that is, may remedy that.

Cursor does not move after carriage return

When typing paragraph text in a new article, pressing the return key (n > 0 times) does not move the cursor until new text is typed

  • type text, press return n times > cursor does not move (it should)
  • type text, press "return n times", type text > text appears after return(s) (this is good and expected behavior)

Linux build fails opening existing DAR

Brand new build on Ubuntu 16.04 of Desktop 0.28

  1. Trying to open https://github.com/stencila/stencila/tree/develop/examples/kitchen-sink or https://github.com/stencila/stencila/tree/develop/examples/mini gives
    ERROR:Could not find <dar> element.

  2. Trying to open a dar created from a simple Markdown (eg. https://github.com/stencila/examples/tree/master/mtcars/mtcars.dar) using stencila convert gives:
    ERROR:Cannot read property 'hasPendingChanges' of undefined

  3. Trying to open https://github.com/stencila/examples/tree/master/intermine/tutorials.dar gives
    ERROR:Cannot read property 'rest' of undefined

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.