Convert Figma logo to code with AI

benweet logostackedit

In-browser Markdown editor

22,405
2,788
22,405
713

Top Related Projects

The last Markdown editor, ever.

50,751

📝A simple and elegant markdown editor, available for Linux, macOS and Windows.

12,496

A pleasant note-taking platform in native C++.

23,246

The Markdown-based note-taking app that doesn't suck.

Quick Overview

StackEdit is a full-featured, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites. It offers a user-friendly interface for writing and editing Markdown documents, with real-time preview and synchronization capabilities.

Pros

  • Rich feature set including real-time preview, spell checking, and LaTeX support
  • Synchronization with various cloud storage services (Google Drive, Dropbox, GitHub)
  • Offline editing capabilities
  • Customizable themes and layouts

Cons

  • May have a steeper learning curve for users new to Markdown
  • Some advanced features might require additional setup or configuration
  • Occasional synchronization issues reported by some users
  • Limited mobile support compared to desktop experience

Getting Started

To use StackEdit, you can simply visit the online version at https://stackedit.io/ and start writing. For a self-hosted version:

  1. Clone the repository:

    git clone https://github.com/benweet/stackedit.git
    
  2. Install dependencies:

    cd stackedit
    npm install
    
  3. Build and run the application:

    npm start
    
  4. Open your browser and navigate to http://localhost:8080/ to start using StackEdit.

Competitor Comparisons

The last Markdown editor, ever.

Pros of Dillinger

  • More active development with recent updates and contributions
  • Supports cloud storage integrations (Dropbox, Google Drive, OneDrive)
  • Offers a cleaner, more modern user interface

Cons of Dillinger

  • Lacks offline support, requiring an internet connection to use
  • Fewer customization options compared to StackEdit
  • Limited export formats (mainly HTML and PDF)

Code Comparison

StackEdit (Vue.js component):

<template>
  <div class="editor">
    <textarea v-model="content" @input="updatePreview"></textarea>
    <div v-html="preview"></div>
  </div>
</template>

Dillinger (Angular.js controller):

angular.module('diligent.preview', [])
  .controller('PreviewCtrl', function($scope) {
    $scope.updatePreview = function() {
      $scope.preview = marked($scope.content);
    };
  });

Both projects use different frameworks (Vue.js for StackEdit, Angular.js for Dillinger) but implement similar preview functionality. StackEdit's approach is more modern and concise, while Dillinger's controller-based structure reflects its older codebase.

50,751

📝A simple and elegant markdown editor, available for Linux, macOS and Windows.

Pros of MarkText

  • Native desktop application for Windows, macOS, and Linux
  • Offers a WYSIWYG editor with real-time preview
  • Supports multiple themes and customizable UI

Cons of MarkText

  • Lacks built-in cloud synchronization
  • May have a steeper learning curve for new users

Code Comparison

MarkText (Vue.js component):

<template>
  <div class="editor-container">
    <editor-header></editor-header>
    <editor-body></editor-body>
    <editor-footer></editor-footer>
  </div>
</template>

StackEdit (JavaScript):

const editor = new Editor({
  el: '#editor',
  initialValue: 'Hello world!',
  previewStyle: 'vertical'
});

Key Differences

  • StackEdit is a web-based application, while MarkText is a desktop application
  • StackEdit offers built-in Google Drive and Dropbox synchronization
  • MarkText provides a more native feel and potentially better performance on desktop

Use Cases

  • Choose MarkText for a dedicated desktop Markdown editing experience
  • Opt for StackEdit if you need a web-based solution with cloud integration

Both projects are open-source and actively maintained, catering to different user preferences and requirements in the Markdown editing space.

12,496

A pleasant note-taking platform in native C++.

Pros of VNote

  • Native desktop application with better performance and offline capabilities
  • Supports advanced features like mind mapping and flowcharts
  • Offers a more comprehensive note organization system with notebooks and tags

Cons of VNote

  • Less accessible across devices compared to web-based StackEdit
  • Steeper learning curve due to more complex features
  • Limited real-time collaboration options

Code Comparison

VNote (C++):

void VNoteX::initComponents()
{
    m_notebookExplorer = new NotebookExplorer(this);
    m_notebookSelector = new NotebookSelector(this);
    m_fileExplorer = new FileExplorer(this);
    m_tagExplorer = new TagExplorer(this);
}

StackEdit (JavaScript):

const initWorkspace = () => {
  store.dispatch('workspace/setLight', isLight());
  store.dispatch('workspace/setZoom', getZoom());
  store.dispatch('data/setLayoutSettings', getLayoutSettings());
};

Both projects use different programming languages and architectures, reflecting their distinct approaches to note-taking applications. VNote focuses on desktop functionality, while StackEdit emphasizes web-based accessibility and simplicity.

23,246

The Markdown-based note-taking app that doesn't suck.

Pros of Notable

  • Offers a more comprehensive note-taking experience with support for multiple note types (Markdown, KaTeX, code snippets)
  • Provides a desktop application for offline use and better system integration
  • Features a more robust tagging and organization system for notes

Cons of Notable

  • Less focus on real-time collaboration compared to StackEdit
  • May have a steeper learning curve due to its more extensive feature set
  • Lacks some of the web-based features and integrations that StackEdit offers

Code Comparison

StackEdit (JavaScript):

export function replacePairs (text, pairs) {
  let result = text
  pairs.forEach(pair => {
    result = result.replace(pair[0], pair[1])
  })
  return result
}

Notable (TypeScript):

function replaceTokens ( str: string, obj: Record<string, string> ): string {
  return str.replace ( /\{([^}]+)\}/g, ( _, token ) => obj[token] || '' );
}

Both projects use similar approaches for text replacement, but Notable's implementation is more specific to token replacement within curly braces, while StackEdit's is more general-purpose.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

StackEdit

Build Status NPM version

Full-featured, open-source Markdown editor based on PageDown, the Markdown library used by Stack Overflow and the other Stack Exchange sites.

https://stackedit.io/

Ecosystem

Build

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm start

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

Deploy with Helm

StackEdit Helm chart allows easy StackEdit deployment to any Kubernetes cluster. You can use it to configure deployment with your existing ingress controller and cert-manager.

# Add the StackEdit Helm repository
helm repo add stackedit https://benweet.github.io/stackedit-charts/

# Update your local Helm chart repository cache
helm repo update

# Deploy StackEdit chart to your cluster
helm install --name stackedit stackedit/stackedit \
  --set dropboxAppKey=$DROPBOX_API_KEY \
  --set dropboxAppKeyFull=$DROPBOX_FULL_ACCESS_API_KEY \
  --set googleClientId=$GOOGLE_CLIENT_ID \
  --set googleApiKey=$GOOGLE_API_KEY \
  --set githubClientId=$GITHUB_CLIENT_ID \
  --set githubClientSecret=$GITHUB_CLIENT_SECRET \
  --set wordpressClientId=\"$WORDPRESS_CLIENT_ID\" \
  --set wordpressSecret=$WORDPRESS_CLIENT_SECRET

Later, to upgrade StackEdit to the latest version:

helm repo update
helm upgrade stackedit stackedit/stackedit

If you want to uninstall StackEdit:

helm delete --purge stackedit

If you want to use your existing ingress controller and cert-manager issuer:

# See https://docs.cert-manager.io/en/latest/tutorials/acme/quick-start/index.html
helm install --name stackedit stackedit/stackedit \
  --set dropboxAppKey=$DROPBOX_API_KEY \
  --set dropboxAppKeyFull=$DROPBOX_FULL_ACCESS_API_KEY \
  --set googleClientId=$GOOGLE_CLIENT_ID \
  --set googleApiKey=$GOOGLE_API_KEY \
  --set githubClientId=$GITHUB_CLIENT_ID \
  --set githubClientSecret=$GITHUB_CLIENT_SECRET \
  --set wordpressClientId=\"$WORDPRESS_CLIENT_ID\" \
  --set wordpressSecret=$WORDPRESS_CLIENT_SECRET \
  --set ingress.enabled=true \
  --set ingress.annotations."kubernetes\.io/ingress\.class"=nginx \
  --set ingress.annotations."cert-manager\.io/cluster-issuer"=letsencrypt-prod \
  --set ingress.hosts[0].host=stackedit.example.com \
  --set ingress.hosts[0].paths[0]=/ \
  --set ingress.tls[0].secretName=stackedit-tls \
  --set ingress.tls[0].hosts[0]=stackedit.example.com

NPM DownloadsLast 30 Days