Giter Site home page Giter Site logo

amitmerchant1990 / electron-markdownify Goto Github PK

View Code? Open in Web Editor NEW
942.0 29.0 936.0 21.24 MB

:closed_book: A minimal Markdown editor desktop app

Home Page: https://markdownify.js.org

License: MIT License

CSS 5.57% HTML 1.74% JavaScript 92.69%
electron markdown desktop nodejs editor emoji livepreview markdownify jquery javascript

electron-markdownify's Introduction


Markdownify
Markdownify

A minimal Markdown Editor desktop app built on top of Electron.

Gitter

Key FeaturesHow To UseDownloadCreditsRelatedLicense

screenshot

Key Features

  • LivePreview - Make changes, See changes
    • Instantly see what your Markdown documents look like in HTML as you create them.
  • Sync Scrolling
    • While you type, LivePreview will automatically scroll to the current location you're editing.
  • GitHub Flavored Markdown
  • Syntax highlighting
  • KaTeX Support
  • Dark/Light mode
  • Toolbar for basic Markdown formatting
  • Supports multiple cursors
  • Save the Markdown preview as PDF
  • Emoji support in preview 🎉
  • App will keep alive in tray for quick usage
  • Full screen mode
    • Write distraction free.
  • Cross platform
    • Windows, macOS and Linux ready.

How To Use

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/amitmerchant1990/electron-markdownify

# Go into the repository
$ cd electron-markdownify

# Install dependencies
$ npm install

# Run the app
$ npm start

Note If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

Download

You can download the latest installable version of Markdownify for Windows, macOS and Linux.

Emailware

Markdownify is an emailware. Meaning, if you liked using this app or it has helped you in any way, I'd like you send me an email at [email protected] about anything you'd want to say about this software. I'd really appreciate it!

Credits

This software uses the following open source packages:

Related

markdownify-web - Web version of Markdownify

Support

Buy Me A Coffee

Or

You may also like...

  • Pomolectron - A pomodoro app
  • Correo - A menubar/taskbar Gmail App for Windows and macOS

License

MIT


amitmerchant.com  ·  GitHub @amitmerchant1990  ·  Twitter @amit_merchant

electron-markdownify's People

Contributors

amitmerchant1990 avatar atdrago avatar banyudu avatar patricknelson avatar puddingpy avatar rdimaio avatar tterb 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

electron-markdownify's Issues

Feature request: Preferences & closing window to terminate process.

For me this process unintuitively stays resident when you close the window. It's still in the system tray and the only way to exit is via File -> Quit or right click on systray icon and "Quit". While this is a convenient feature for some, it isn't for me (a 100% personal preference).

That being said, should this be addressed by making preferences editable? Also, maybe the ability to persist ALL editable settings as well as those which are not visible in a Settings drop-down menu?

  • Re-open last file
    • Default: No (currently this is yes)
  • Quit on close
    • Default: No (currently this is yes)
  • Retain last configuration for:
    • HTML vs. Preview
    • Light vs. Dark
    • Sync Scrolling

This also suggests refactoring some of the configuration directives (for the last three options) so that they're consolidated to ensure that they're controlled centrally and easily stored together.

This should make the app easier and more intuitive to use while also ensuring it maintains it's "lightweight" philosophy. For me, it should be predictable. I was initially baffled and thought it was a bug when it kept opening my last file over and over again even though I was terminating/restarting the app but then I realized it was being persisted in storage.

Cannot open dev tools

Also @amitmerchant1990 in my attempts to get in here to look at #19 and fix it, I can no longer trigger dev tools optionally without uncommenting the mainWindow.webContents.openDevTools(); in main.js 🤔 I'm not super familiar with Electron so I'm not sure why the changes made since my last edits would prevent this from happening.

Sorry for all the issues but I figured I should open this one separately.

Change font to GitHub font

It's exactly what I'm looking for, easy, minimalistic and with a preview-pane.

Would it be possible to adapt the font&style such that it reflects exactly how it will look like on GitHub?

Code syntax highlighting (feature request)

Partially logging for my own reference (since I could implement this) but also in case anyone else gets to it before I do. Would love to have Github flavored syntax highlighting for code blocks

For example, this raw markdown block:

```js
setTimeout(function() {
    alert('hello!');
}, 1000);
```

Currently looks like this when rendered:

setTimeout(function() {
    alert('hello!');
}, 1000);

Goal would be to have language specific highlighting when a language identifier is included:

setTimeout(function() {
    alert('hello!');
}, 1000);

Based on some superficial research, implementation would need to somehow utilize the highlight callback in marked (here) and incorporation of highlight.js.

Weird sync scroll issue

Sorry :( New feature, new bug. Looks like I didn't set it up to maintain state properly, since if you load the app fresh, uncheck scrolling, scroll ONLY in the right pane (left pane not effected) then check "sync scrolling" again, it will start to bug out.

It took a few attempts to reproduce, but still got it to happen.

2017-01-24_12-29-52

preview incorrect

Document: _hello\_world_

Html is <p><em>hello_world</em></p>, but preview is _hello_world_

Problems with Mac version

Hi! I downloaded the latest release for Darwin and ran into the following issues when I opened it:

  • No icon

    screen shot 2016-06-02 at 4 05 59 pm

  • Error with the title "Markdownify cannot be opened because of a problem."

    "Problem Details and System Configuration" has the following output:

    Process:               Markdownify [13121]
    Path:                  /Users/USER/Downloads/*/Markdownify.app/Contents/MacOS/Markdownify
    Identifier:            com.electron.markdownify
    Version:               ???
    Code Type:             X86-64 (Native)
    Parent Process:        ??? [1]
    Responsible:           Markdownify [13121]
    User ID:               501
    
    Date/Time:             2016-06-02 16:08:00.935 -0700
    OS Version:            Mac OS X 10.11.4 (15E65)
    Report Version:        11
    Anonymous UUID:        D7A93E36-3690-4359-83C0-DF9DDA15586E
    
    Sleep/Wake UUID:       DF3ABACF-7AAC-4155-BE89-081781A62803
    
    Time Awake Since Boot: 37000 seconds
    Time Since Wake:       30000 seconds
    
    System Integrity Protection: enabled
    
    Crashed Thread:        0
    
    Exception Type:        EXC_BREAKPOINT (SIGTRAP)
    Exception Codes:       0x0000000000000002, 0x0000000000000000
    Exception Note:        EXC_CORPSE_NOTIFY
    
    Application Specific Information:
    dyld: launch, loading dependent libraries
    
    Dyld Error Message:
    Library not loaded: @rpath/libnode.dylib
    Referenced from: /Users/adamdrago/Downloads/Markdownify-darwin-x64/Markdownify.app/Contents/Frameworks/Electron Framework.framework/Electron Framework
    Reason: image not found
    
    Binary Images:
    0x7fff663f4000 -     0x7fff6642b0d7  dyld (360.21) <D9B236BC-4AC1-325F-B3EF-3F06DBDA7119> /usr/lib/dyld
    0x7fff877d3000 -     0x7fff877d4ffb  libSystem.B.dylib (1226.10.1) <CD307E99-FC5C-3575-BCCE-0C861AA63124> /usr/lib/libSystem.B.dylib
    0x7fff91d21000 -     0x7fff91eefff3  com.apple.QuartzCore (1.11 - 410.14) <0283748A-8318-36AC-8B30-8A951FEB305A> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
    0x7fff96688000 -     0x7fff96688fff  com.apple.Carbon (154 - 157) <8F6ED602-5943-3E29-A793-BC331E2C183D> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
    0x7fff97626000 -     0x7fff97679ff7  libc++.1.dylib (120.1) <8FC3D139-8055-3498-9AC5-6467CB7F4D14> /usr/lib/libc++.1.dylib
    
    Model: MacBookPro11,5, BootROM MBP114.0172.B09, 4 processors, Intel Core i7, 2.8 GHz, 16 GB, SMC 2.30f2
    Graphics: AMD Radeon R9 M370X, AMD Radeon R9 M370X, PCIe, 2048 MB
    Graphics: Intel Iris Pro, Intel Iris Pro, Built-In
    Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533642465238412D50422020
    Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533642465238412D50422020
    AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x152), Broadcom BCM43xx 1.0 (7.21.95.175.1a6)
    Bluetooth: Version 4.4.4f4 17685, 3 services, 27 devices, 1 incoming serial ports
    Network Service: Display Ethernet, Ethernet, en4
    Network Service: Wi-Fi, AirPort, en0
    PCI Card: Apple 57761-B0, Ethernet Controller, Thunderbolt@192,0,0
    PCI Card: pci11c1,5901, IEEE 1394 Open HCI, Thunderbolt@191,0,0
    PCI Card: pci12d8,400e, USB Open Host Controller, Thunderbolt@197,0,0
    PCI Card: pci12d8,400e, USB Open Host Controller, Thunderbolt@197,0,1
    PCI Card: pci12d8,400f, USB Enhanced Host Controller, Thunderbolt@197,0,2
    PCI Card: Apple 57761-B0, Ethernet Controller, Thunderbolt@202,0,0
    PCI Card: pci11c1,5901, IEEE 1394 Open HCI, Thunderbolt@201,0,0
    PCI Card: pci12d8,400e, USB Open Host Controller, Thunderbolt@207,0,0
    PCI Card: pci12d8,400e, USB Open Host Controller, Thunderbolt@207,0,1
    PCI Card: pci12d8,400f, USB Enhanced Host Controller, Thunderbolt@207,0,2
    Serial ATA Device: APPLE SSD SM1024G, 1 TB
    USB Device: USB 3.0 Bus
    USB Device: Apple Internal Keyboard / Trackpad
    USB Device: Bluetooth USB Host Controller
    USB Device: USB 2.0 Bus
    USB Device: Hub
    USB Device: AppleTV
    USB Device: FaceTime HD Camera (Display)
    USB Device: Apple Thunderbolt Display
    USB Device: iPhone
    USB Device: Display Audio
    USB Device: USB 2.0 Bus
    USB Device: Hub
    USB Device: FaceTime HD Camera (Display)
    USB Device: Apple Thunderbolt Display
    USB Device: iPhone
    USB Device: Display Audio
    Thunderbolt Bus: MacBook Pro, Apple Inc., 27.1
    Thunderbolt Device: Thunderbolt Display, Apple Inc., 1, 26.2
    

Let me know if you want any help with this. :)

BUG Bottom scroll bar scrolls out of view.

In the midst of developing PR #17 I realized the bottom scrollbar is only visible when scrolled all the way to the bottom. Not sure why. FYI, this is a capture from the master branch (not affected by any of my changes).

2017-01-20_14-19-11

Open file does not ask to save current file, it simply overrides it

Hello,

this is an issue that I encountered and I think should be fixed.

Issue Description
Opening a file does not prompt user to save the currently modified file and it looses unsaved data.

How it should work
When the open file action is triggered and the current file has unsaved changes, the user should be notified about this and given the opportunity to Save, Don't save or Cancel to go back to editing the file.
Current work should not be lost without user consent.

thanks

XSS to RCE - re-opened

Hello,

Why would you close an issue, without any information on the decision why you have marked it invalid?
#25

You have a nice blog post about the electorn-markdownify, and I think its is a good application. It would be a pity if you just leave the security issue in there and allow people to keep using it.

Please do check the security checklist for Electron to be aware of the consequences of code execution in Electron applications due to XSS.
https://www.blackhat.com/docs/us-17/thursday/us-17-Carettoni-Electronegativity-A-Study-Of-Electron-Security-wp.pdf

In 90 days I'd disclose information on the issue, so I'm hoping for your collaboration in fixing the issue prior.

Thanks

Selection area incorrect when type Ctrl - Z

Selection area keep correct when click Bold/Italic, but incorrect when type Ctrl - Z

Steps:

  1. type "hello" in empty document, and select it.
  2. click "Bold" button in toolbar, now it is hello, "hello" is selected.
  3. type Ctrl - Z, now it is hello, only "llo" is selected.

When we type Ctrl - Z, selection area start/end does not change.

Tabbed interface for multiple open files

Currently, it is only possible to have 1 file open at a time. It would be a nice feature to be able to have multiple files open at the same time, and have tabs on the top to be able to access them.

Things that don't work in Electron-Markdownify

Firstly, I love the feel of your UI. It's very clean but for some reason it has a nice feel about it, I can't put my finger on why but nice it is.
There are a number of things which don't appear to work in electron-markdownify. They are as follows:

  1. [TOC] Table of Contents for all types eg images, contents, depth, etc.
  2. Tables
  3. To do lists - [x] or - [ ]
  4. Auto add new bullet or number if in that mode
  5. Support for mathematical equations

With luck you will add features which will expand electron-markdownify into something students would use for writing a thesis or more complicated papers.

Hope this helps

Steals Ctrl + Shift + T combo on Windows

Steps recorded in screen capture (below):

  1. Open Chrome
  2. Open electron-markdownify
  3. Switch back to Chrome and close a few tabs via ctrl + w
  4. While still in chrome: Press ctrl + shift + t to reopen last closed tab, but instead electron-markdownify has somehow kidnapped this combination globally.

2016-10-28_10-53-48

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.