Giter VIP home page Giter VIP logo

classeur's Introduction

Classeur frontend

Build Status NPM version js-standard-style

Frontend application as used in Classeur.

This app was made possible thanks to these great libraries:

The cledit library is also an important part of the project.

Get started

Install

npm install

Start

npm start

Classeur works with a back-end in order to provide connected features such as synchronization, sharing and collaboration. Please refer to the enterprise documentation for a full installation of Classeur.

Contributing

We gladly accept new features if they are useful for others and don't degrade the user experience.

Code format

Code format is checked via the command npm run lint-all ensuring JS, HTML and SCSS files are formatted according to the following rules:

Style Guide

Naming convention

Classeur uses hyphenated BEM as a naming convention for CSS classes.

License

Apache

classeur's People

Contributors

benweet avatar dereckson 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

classeur's Issues

Create snapshot

It should be possible to create a snapshot (or a tag) of:

  • a file
  • a folder and all its files

Snapshots/tags should be owned by a ghost user and accessible publicly with read only permission.

Exporting a table to PDF doesn't work

Example:

> |category| contributing score to the similarity score|
> |:--:|--------------------:|
> |A v.s. A| $\exp(0) = 1.00$|
> |A v.s. A-| $\exp(-0.6) = 0.55$|

Find bar loses event listener

Summon find bar with CTRL/CMD + F, click in the input field. Unfocus. Try to close it. If it works, do it again, it probably won't. At one point, the X button just stops doing anything. A refresh is required to get it fixed, then. The find bar itself works, but can't be closed easily.

Request: Free Premium for students?

Shot in the dark here, but GitHub does it, so I thought I'd ask. I'm a student at Cornell University and I'd love to use this app because collaborative projects are the one thing that forces me away from markdown. With this slick user interface--and critically, real time collaboration--I think I could talk my friends into switching over from Google Drive. But there is absolutely no chance they'll pay $5 a month for it.

This would be not only a charitable act, but also a good business move. You will sacrifice almost no revenue because very few students would ever subscribe to such a service. And it's great publicity in the demographic that will become your target audience in 1 to 4 years: tech-savvy professionals. If this app actually takes all the best from Google Drive and StackEdit, I would certainly request that future employers buy business licenses.

crosses fingers

Classeur testing

Hello, i just saw the Classeur beta app and looks promising.

I was playing with it for a while and i didn't found a "box" to insert custom extensions like stackedit does.

My main goal is to insert an existing extension i've created that convert this:

<pre><code> 
// some code here
</code></pre>

to this:

<pre class="prettyprint">
// some code here
</pre>

That HMTL output is how my blog shows code snippets correctly.

There is a way of doing that? If no, do you have plans to add custom extension to classeur like stackedit does?

My other question is. Do you plan to assign shortcuts to buttons? That along with an snippet creation mechanism would be great.

"Recent files" and "My files" are shared across all classeurs

I have created a bunch of classeurs to keep scopes of files separate - I keep various work-related documents in one classeur, generic memos created on the go in the other one and so on. However the "recent files" and filtering tabs do not limit the displayed results and include all files from all classeurs. I guess it's not a desired behaviour (and if it is, I'd argue it's confusing and unnecessary), because without the need for distinct file sets, one would just use folders.

I can fix it, but first I'd like to know whether that's intentional.

Error when exporting to PDF

A document containing the following Markdown character sequence.

P�2

causes the export to PDF to fail with the following message:

! Package inputenc Error: Keyboard character used is undefined (inputenc) in inputenc

Like there's an invisible character between 'P' and '~'!

Editing image alt-text and URLs

When using less than full-width images, this tends to happen, and makes editing the text / url awkward.
screenshot 2015-11-06 15 18 32

Is there a way the MD syntax for including the image always goes beneath the preview, and never beside it like in the image above?

Export whole folder

It would be nice to have the ability to export a folder into:

  • a dynamic HTML page with an index.
  • a concatenated file to generate a big PDF/Word/EPUB...

Permanently deleting a file from the trash menu is not immediately reflected in the UI

After trying to prune some file from the trash, I had to check whether it had really been deleted, as the change was not reflected in the interface.

That's just a minor glitch (a page refresh will suffice to see that a file has been deleted), but manifests itself more visibly in the OSX app (as in order to trigger an interface refresh there, one has to restart the app).

Classeur for Academic Writing?

Dear all,

I'm interested what Classeur's stand is with respect to academic writing.

Is Classeur intended to become a solid academic writing environment with good support for elements such as tables, figures, captions, references, title pages, rmarkdown (interactive figures and code) etc?

I'm asking out of interest because I'm not aware of any good Markdown Academic Writing environment.

Looking forward to your opinions!

~ Robert

Alignment right in a table doesn't work

Example:

>|category| contributing score to the similarity score|
> |:--:|--------------------:|
> |A v.s. A| $\exp(0) = 1.00$|
> |A v.s. A-| $\exp(-0.6) = 0.55$|

Allow suggested edits

My colleagues and I do a lot of writing and editing, sharing and commenting, etc., in Markdown, and this looks like a great tool for the kind of work we do. It looks like the only major feature we rely on that Classeur is missing right now is the ability to suggest changes (as in Google Docs) or track changes (as in Word). When I share a doc with my colleagues, I don't want to give them full overwrite access—I want to be able to accept or reject their changes one by one. Is this on the roadmap for Classeur?

Allow more metadata options when Publishing to Blog

Hi, i have worked extensively with StackEdit and tested Classeur Beta yesterday.

At MyCyberAcademy, editors handle several author articles and publish them when are ready. Problem is that when we publish from stackedit or classeur, the editor that published it appears as the post author.

So it would be awesome that an author, or publishedBy metadata is available when i will publish to wordpress so i can set the post author directly.

The general idea of this feature request is that i don't want to go to the Wordpress platform, or my admin dashboard in the website to "finish" the post creation. Currently i can add these properties to a document in classeur:

  • title
  • status
  • date
  • categories
  • tags

So the missing pieces from the puzzle are:

  • byAuthor (these should be a blog's author, specified by a username)
  • excerpt (post excerpt)
  • featuredImage (set the post featured image)

Without these, bloggers will always depend on the website's awful editor to finish and publish the posts.

By the way, it would be great to specify using a popover the posible values that status can accept. I figured out some of them by trial and error:

  • status: [publish, draf]

In case you want to schedule a post, it can be achieved with a combination of status=publish and a date set to the future. That's how i do it in stackedit:


---
title : some title
published: true
date : 2016-01-01

---

Desktop application

A desktop application should be available for:

  • Windows
  • Mac OS X
  • Linux

It should support editing local files.

High GPU usage on Chromium + Debian + Old Hardware

Chromium Task Manager shows high GPU usage when displaying Classeur browser tab.
Problem seen in edit and reader mode, but not in 'menu' mode.
Stackedit.io runs fine on the same system.

Chromium Version 45.0.2454.85 Built on 8.1, running on Debian 8.2 (64-bit)
old hardware:

  • GL_VENDOR X.Org R300 Project
  • GL_RENDERER Gallium 0.4 on ATI RV515
  • GL_VERSION 2.1 Mesa 10.3.2

Add file system sync

It would be very useful to synchronize with the file system. In this way it could be used to synchronize with the other developers (git push / pull) and maintain versioning history.

Tags

Some documents qualify for several folders, when folders are used as "tags", in a way. For example, when I write for Diffbot, I put them in the Diffbot folder. When I write for SitePoint, I put them in the SitePoint folder. But then there are stages - Under Review, In Progress, etc. I could have separate folders for SitePoint - Under Review, SitePoint - In Progress, but that brings with it a whole lot of tab noise when you have many projects. Besides, sometimes something I write for Diffbot will get published on SitePoint, and then it would match both folders - which one do I put it in?

As a fix, I would recommend adding tags into the mix, so we can label documents with categories or milestones. I currently do this with prefixes.
screenshot 2015-11-07 09 16 45

Either that, or adding subfolders into main folders - so we can have an "Under Review" subfolder in SitePoint. That still wouldn't allow me to add a post under both SitePoint and Diffbot, but would help.

Missing REST APIs endpoints

The REST API needs the following endpoints:

  • List user's files and folders
  • Create new file
  • Create new folder
  • Update file content
  • Update files and folders metadata

Allow Imgur account association

Currently images uploaded through to Imgur via Classeur are not associated with any account and not able to be managed by the uploading user. It should be possible to associate a user's Imgur account with a Classeur account, which would enable management (deletion, hiding) of uploaded images through the Imgur website.

Community template repository

Dear all,

Classeur is a really cool writing environment. Wow :)

One thing I thought of that would be really cool is a community template repository.

Imagine an open repository where everyone can add templates for Markdown invoices, contracts, etc.

These could then be made accessible in Classeur.

What do you think?

~ Robert

"More Info About Extensions" link does nothing

Nothing happens when I click this link, in the desktop/nwjs version or the web version.

If extension documentation is a work in progress, it might be a good idea to have some indication of that when users click on the link (a "todo coming soon" bubble or similar, maybe?). Otherwise it just seems like it might be broken, rather than unfinished.

Severe performance issues on bigger, rich files

Here's a post that's demonstrating severe lag, the more "south" you are when editing. Lag is slight, close to none, at the top of the post, but editing at the bottom kills it - especially in preview mode. It's also much milder when the doc is freshly opened, but the longer it's up and the more small edits are made here and there, the worse the performance will get.

Sync Github/Jekyll content

Hi Classeur,

I'd like to use Classeur as a front end to a Jekyll blog hosted on Github

You can publish/upload from classeur - but it would be great if (like tinypress) it could sync all your posts - not just the ones created with classeur

Cheers

Justin

Reader Mode is missing scrolling controls

In Reader Mode there is no scroll bar or keyboard controls for scrolling (pgdn, arrow keys).

on Chromium Version 45.0.2454.85 Built on 8.1, running on Debian 8.2 (64-bit)

yaml front matter

Hi I am having trouble getting the The toYaml helper
to work. When I look at the post on github I see
Error: SyntaxError: Unexpected token {

I paste the
---
{{#toYaml file.content.properties}}{{/toYaml}}
---
into the Settings>HANDLEBARS HELPERS

Is this the correct place to paste the handlebar snippet?

Regards

Conflicts

Random conflicts keep occurring, bringing back previous versions for no apparent reason.

For example, I'm working on a post then I procrastinate and fly off to other tabs for 30 minutes or so, and when I come back, almost every time, the post will be packed with conflicts from a while back. Not only conflicts with itself (like a paragraph I changed in the post) but also conflicts with the original welcome post - entire segments conflicting the "Welcome to classeur" message with paragraphs in my post.

Is there anything I can do to mitigate this and make sure it considers the currently opened document latest at all times? I only have it open in one tab, it's not open elsewhere.

Random cloning of selected text when using hotkeys

When I select a bit of text and punch CMD / Control + L to turn it into a link, sometimes the selected text gets clones on either side of the selection. This happens at random.

Example: In the sentence "This is a link", selecting "is a" and pressing CMD + L would, on some occasions, create "This is ais ais alink". Regardless of whether the link is added or the link adding is canceled, this happens - in the former case, the link is inserted between the clones.

Dark Theme for Classeur

Would be really nice if there was a dark-theme for the editor. In the present state - writing in full-screen zen-mode is a real eye-killer with the entire screen being white.

Find bar gains focus only after animation

Due to the find bar's input field gaining focus only after the (imo way too slow) animation completes, the first taps for a fast typist are usually typos entered directly into the text where the cursor still was before the animation completed, upon hitting CTRL/CMD + F.

Suggested solution: make input field on find bar immediately focused when the "show find bar" function is called by any means.

Side bar selection state not saved

First of all amazing app!

So I've been using this all day today and I really like the Table of content feature in the sidebar. However when I switch between notes the sidebar resets to the markdown help section. It would be great if the TOC section could be persistent.

Would love to help with the app but I have 0 experience w/Angular!

Going Premium - How to?

I decided to take the plunge so I paid for Premium yesterday, but still I don't seem to be able to export markdown files to PDF etc. And the app is still nagging me about going Premium. How can I use the Premium features?

Classeur doesn't show up in browser

After following the instructions in the readme, I get the following error loading the page in chrome:

Uncaught Error: [$injector:modulerr] Failed to instantiate module classeur.app due to:
Error: [$injector:modulerr] Failed to instantiate module classeur.core.analytics due to:
TypeError: Cannot read property 'googleAnalyticsTrackingId' of undefined
at http://localhost:11583/app-min.js:74578:33
at Object.invoke (http://localhost:11583/app-min.js:4478:17)
at runInvokeQueue (http://localhost:11583/app-min.js:4384:35)
at http://localhost:11583/app-min.js:4393:11
at forEach (http://localhost:11583/app-min.js:336:20)
at loadModules (http://localhost:11583/app-min.js:4374:5)
at http://localhost:11583/app-min.js:4391:40
at forEach (http://localhost:11583/app-min.js:336:20)
at loadModules (http://localhost:11583/app-min.js:4374:5)
at createInjector (http://localhost:11583/app-min.js:4299:11)
http://errors.angularjs.org/1.4.7/$injector/modulerr?p0=classeur.core.analy…0createInjector%20(http%3A%2F%2Flocalhost%3A11583%2Fapp-min.js%3A4299%3A11)
at http://localhost:11583/app-min.js:68:12
at http://localhost:11583/app-min.js:4413:15
at forEach (http://localhost:11583/app-min.js:336:20)
at loadModules (http://localhost:11583/app-min.js:4374:5)
at http://localhost:11583/app-min.js:4391:40
at forEach (http://localhost:11583/app-min.js:336:20)
at loadModules (http://localhost:11583/app-min.js:4374:5)
at createInjector (http://localhost:11583/app-min.js:4299:11)
at doBootstrap (http://localhost:11583/app-min.js:1657:20)
at bootstrap (http://localhost:11583/app-min.js:1678:12)
http://errors.angularjs.org/1.4.7/$injector/modulerr?p0=classeur.app&p1=Err…0at%20bootstrap%20(http%3A%2F%2Flocalhost%3A11583%2Fapp-min.js%3A1678%3A12)

And I can see nothing but a gray screen. What can I do to solve this?

Better support for clipboard and drag-and-drop images

It would be great if images pasted from the clipboard directly into the editor could be uploaded to imgur.

Currently:

  1. Take screenshot or snippet of screen, image content is now on system clipboard.
  2. Save image to file or paste image into upload dialog on imgur website.
  3. Open/navigate to classeur file and Ctrl-g to open graphics dialog.
  4. Paste URL and Add or drag and drop/select file for upload.

Ideally:

  1. Take screenshot or snipped of screen, image content is now on system clipboard.
  2. Open/navigate to classeur file and Ctrl-v to paste image. Image content is uploaded to imgur and image appears as it would after step 4 in current flow.

A related enhancement: being able to drag an image directly from another browser window or application to either the editor (in which case it would behave as above) or the imgur upload section of the image insertion dialog box (where it would behave like a file selection).

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.