Giter VIP home page Giter VIP logo

socrates's Introduction

Socrates

Socrates is a realtime Markdown editor and previewer. Check out the demo!

Although it updates in real time, its not a perfect etherpad. It behaves best when edited by a single person at a time, but can then be shared with anyone you want.

Socrates is designed to work without a server. It can be hosted on Github, S3, DreamHost, etc.

Running your Own

Sign up for your own Firebase, and change to your account's url in socrates.js. Also, change the paths in index.html to reference your local files.

To run the local server for development:

node server.js

License (MIT)

WWWWWW||WWWWWW
 W W W||W W W
      ||
    ( OO )__________
     /  |           \
    /o o|    MIT     \
    \___/||_||__||_|| *
         || ||  || ||
        _||_|| _||_||
       (__|__|(__|__|

Copyright (C) 2012 Ilya Volodarsky and Ian Storm Taylor

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

socrates's People

Contributors

ianstormtaylor avatar jangxyz avatar rajadain avatar traeblain 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

socrates's Issues

Printable View

I think there needs to be a printable view enabled.

It can be either done with CSS or having a button that converts the document into a printable view (ie. hides the left pane)

some kind of backup

We just lost a document due to a human error I believe. A 3-5 edits revision history would be maybe something useful. Or a snapshot from the last time somebody access the document.

Not sure about logic, but would have to be simple.

indicate empty documents

After a while documents list fills with empty drafts ( e.g. from opening socrates.io )

Due to the loading times, sometimes i don't know if a document is still loading, or already loaded and simply empty.

Would be great to indicate that a document is empty in the documents list - e.g. ( empty ) or red color or similar; so we could safely remove them without waiting for the loading period on each of them

Uploading to S3

I am trying to put it up on s3. I am getting an error in app-model.js

   Document : function (body) {
    window.analytics.track('Create New Document');

    Uncaught TypeError: Cannot call method 'track' of undefined

    return this.fetchDocument(this.generateDocumentId(), body);
},

So it wont me create new posts.

You can check it at: http://cabrillo.s3-website-us-east-1.amazonaws.com/

Subscripts break math

Well this is annoying. It seems that including braces {} to group an expression in a subscript breaks math as demonstrated on Chrome 32 below.

socrates bug

Rendering issue in Firefox 19 when replacing default document

Hi,

It seems that if you try to replace the default markdown document in app-model.js (l. 198-223):

onboarding = [
    '# Socrates now supports LaTeX Math!\n',
    'If you haven\'t used it before, Socrates is a real-time [markdown](http://daringfireball.net/projects/markdown/) editor in your browser. And **today we added support for beautiful math**, using [MathJax](http://mathjax.com/)!\n',

    'Let\'s derive the quadratic formula. Starting with:',
    '$$ ax^2 + bx + c = 0 $$\n',

    'We\'ll move around the constant terms and coefficients:',
    '$$ ax^2 + bx = -c $$',
    '$$ x^2 + \\frac{b}{a} x = -\\frac{c}{a} $$\n',

    'Then we add a new mystery constant so that things will simplify later:',
    '$$ x^2 + \\frac{b}{a} x + \\frac{b^2}{4a^2} = -\\frac{c}{a}  + \\frac{b^2}{4a^2} $$\n',

    'Then it\'s a simple matter of boiling this down to the final solution:',
    '$$ x^2 + \\frac{b}{a} x + \\frac{b^2}{4a^2} = \\frac{b^2 - 4ac}{4a^2} $$',
    '$$ \\left( x + \\frac{b}{2a} \\right)^2 = \\frac{b^2 - 4ac}{4a^2} $$',
    '$$ x + \\frac{b}{2a} = \\pm \\sqrt{ \\frac{b^2 - 4ac}{4a^2} } $$',
    '$$ x = - \\frac{b \\pm \\sqrt{ b^2 - 4ac } }{2a} $$\n',

    '$$ \\Box $$\n',

    'Keeping all of the LaTeX math syntax in your head is no easy feat, but you\'ll find the [Art of Problem Solving Wiki](http://www.artofproblemsolving.com/Wiki/index.php/LaTeX:Symbols) is an invaluable reference.\n',

    'Happy mathing!'
].join('\n');

by something such as:

onboarding = [
    '# Placeholder Title',
].join('\n');

There is a rendering issue in Firefox 19.0 (Windows 7). It works fine in Chrome, though.

firefox-19 0-rendering

It also seems that the rendering issue doesn't appear when some Latex is provided, such as:

onboarding = [
    '# Placeholder Title',
    '$$ ax^2 + bx + c = 0 $$\n',
].join('\n');

firefox-19 0-rendering-2

Add tooltips to UI buttons

UI buttons does not have any short description on them, you must push to see what they do. It is good practice for UX to see some delayed description when hover on UI buttons even if the icon looks descriptive. Simple HTML title attribute should be enough.

Comments/Notes feature like on medium

A comments feature where people can comment on a paragraph like on medium.com. This is quite the extensive request, but would be kick-ass.

To keep it simple it would be without authentication, just with a color that the user can define the note should display surrounded with. Notes only visible on hover-over.

loading indicator

Sometimes it is really hard to see if the document is empty or loading slowly due to latency. So you have to wait 5-10 seconds or more before touching it.

A loading indicator would be really helpful

Include a Code Theme by Default

It seems that Socrates already puts code blocks through Rainbow's syntax highlighting, but all the work Rainbow does isn't visible without a theme.

If there is an issue with the currently available themes not matching the minimalist styling of Socrates, Highlight.js is a great alternative to Rainbow.

Large slowdown when adding or removing toplevel title

With a document of the form

my title

.... // note, 2 paragraphs and one code block for instance

Editing the '#' on and off will cause ~3 seconds blocking (cpu at 100%, Core 2 Duo laptop). Not on the first deletion though. I assumed it was a remote modification of the list of articles, but couldn't see network requests in Chromium devtools.

[Enhancement] Blog editor

Hi
I have used socrates for my class notes, but I face the following pains:

  • Too much rendering makes it look bad. Can't we render LaTeX only when someone is editing them, and not while non LaTeX part is being edited
  • LaTeX text size is too small

Also, I want to change the socrates code to allow me to publish article to my repo, where I store my class-notes. I would like if somehow I could start a server someplace, and the push from there to my repo. I am completely new to web development, so I really need some help in figuring out how to do this.

  • Only a thought: Ability to add charts, say using Google api??

Fixed buttons position

When composing a long document, we need to scroll all the way to the top to be able to click the read or write buttons.
User experience could be improved by having them fixed at the top.

<button class="write-only-button ss-write"></button> and <button class="read-only-button ss-view"></button> buttons should be set position: fixed.

This is not need for the add and menu buttons, as the user would seldom use them.

start editing?

I can't figure out how to edit, yet the introduction I read said I simply edited text "on the left"
(I can't find this page again - the link takes me someplace else now, to a poem by Beverly Dingus)

unique read-only link

Something really nice would be a unique read-only link that people could send out. That link would only show live-changes but not allow editing.

Person visiting that link cannot edit the original. This would be great for sending out quick proposals, or to keep notes of a running meeting where only selected persons can contribute ( they edit the original link )

archive to email or dropbox

socrates is really nice for writing ideas out and drafting documents or copy or w/e. i probably have 2-5 pads i'm actually working on at any given time. i don't just want to delete the rest of the pads though, so it would be cool if i could hit "archive" to send them to my email or a folder in my dropbox.

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.