GithubHelp home page GithubHelp logo

flotwig / markdown-notebooks Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 1.0 943 KB

Create markdown-based notebooks stored in Gists with image support

Home Page: https://mdnb.bloomqu.ist

HTML 1.14% CSS 1.13% JavaScript 97.59% SCSS 0.15%

markdown-notebooks's Introduction

MDNB: Markdown Notebooks

Live at https://mdnb.bloomqu.ist/

Features

Full Markdown Support

MDNB uses Marked to parse your Markdown, so any standard Markdown is supported.

Additionally, there is support for GFM Task Lists:

  • Something to do
  • Something done

GFM tables:

colA colB
0.123 0.456

Inserted image support

Adding screenshots or other images on your clipboard to your notebook can be done by just pasting them into the active notebook:

Pasted image

Or by dragging and dropping them in:

Drag n dropped image

Pages

A notebook can consist of multiple pages. You can create pages, delete pages, and reorder pages by dragging and dropping:

Page stuff

Resizable Panes

The sidebar, editor, and renderer are all resizable:

Resizable panes

Development

To install dependencies, run yarn.

Then, run yarn start to start the app on port 3000.

To test GitHub login, you'll need to supply a client ID and secret from GitHub.com in the GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET environment variables. On Mac and Linux:

GITHUB_CLIENT_ID=your-client-id GITHUB_CLIENT_SECRET=your-client-secret yarn start

To run the Cypress integration tests, do yarn run cypress:open.

To run the unit tests, do yarn run test.

markdown-notebooks's People

Contributors

renovate-bot avatar flotwig avatar renovate[bot] avatar

Stargazers

r avatar Matías Agustín Méndez avatar  avatar Jeremy avatar  avatar Harsha Goli avatar

Watchers

James Cloos avatar  avatar

markdown-notebooks's Issues

Checkbox rendering support

Please support checkboxes in markdown so the following can be rendered properly.

markdown:

- [x] Done
- [x] Done
- [ ] Not done

render:

  • Done
  • Done
  • Not done

Add routing

  • load a Gist by visiting /username/gistId (match Github gist url format)
  • change url appropriately when creating/changing notebooks
  • warn user when navigating away w/ unsaved changes (local user preference)

Add note searching

Could be via a search bar at the top of page list, if there's enough real estate

Add page coloring/page front-matter

Similar to how Jekyll does it, allow YAML front-matter in notebook pages to specify (for now) the color that the page will be in the sidebar

Handle concurrent windows better

Currently it looks like markdown-notebooks doesn't handle multiple clients accessing the same gist files well. Simply by having 2 tabs open across my machine, I managed to have this result:

image

Which seems to result from an out of sync saving functionality

Add user preferences

  • store in localStorage? in custom Gist? on our server?
  • add modal for changing
  • preferences:
    • showing keyboard shortcuts
    • periodic autosave on/off?
    • button to delete local data and log out/invalidate session
    • 4 spaces or \t character

Investigate gist limits

  • is there a limit to the max number of pages in a gist? if so we need to prevent that
  • how should it handle gistfiles >1MB? currently it won't work right

Update README

  • add build instructions
  • add dev instructions
  • add .gif of program operation
  • add current feature list

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • Replace dependency babel-eslint with @babel/eslint-parser 7.11.0
  • Update dependency postcss-preset-env to v6.7.2
  • Update dependency @babel/core to v7.24.6
  • Update dependency babel-loader to v8.3.0
  • Update dependency case-sensitive-paths-webpack-plugin to v2.4.0
  • Update dependency eslint-plugin-import to v2.29.1
  • Update dependency eslint-plugin-jsx-a11y to v6.8.0
  • Update dependency eslint-plugin-react to v7.34.1
  • Update dependency html-webpack-plugin to v4.5.2
  • Update dependency mini-css-extract-plugin to v0.12.0
  • Update dependency moment to v2.30.1
  • Update dependency pnp-webpack-plugin to v1.7.0
  • Update dependency redux to v4.2.1
  • Update dependency redux-thunk to v2.4.2
  • Update dependency resolve to v1.22.8
  • Update dependency sanitize-html to v1.27.5
  • Update dependency whatwg-fetch to v3.6.20
  • Update react monorepo (@types/react, @types/react-dom, react, react-dom)
  • Update dependency @blueprintjs/core to v5
  • Update dependency @blueprintjs/icons to v5
  • Update dependency @svgr/webpack to v8
  • Update dependency babel-loader to v9
  • Update dependency babel-preset-react-app to v10
  • Update dependency bfj to v8
  • Update dependency chalk to v5
  • Update dependency css-loader to v7
  • Update dependency cypress to v13
  • Update dependency dotenv to v16
  • Update dependency dotenv-expand to v11
  • Update dependency eslint to v9
  • Update dependency eslint-config-react-app to v7
  • Update dependency eslint-loader to v4
  • Update dependency eslint-plugin-flowtype to v8
  • Update dependency fs-extra to v11
  • Update dependency history to v5
  • Update dependency html-webpack-plugin to v5
  • Update dependency marked to v12
  • Update dependency mini-css-extract-plugin to v2
  • Update dependency node-sass to v9
  • Update dependency optimize-css-assets-webpack-plugin to v6
  • Update dependency postcss-flexbugs-fixes to v5
  • Update dependency postcss-loader to v8
  • Update dependency postcss-preset-env to v9
  • Update dependency postcss-safe-parser to v7
  • Update dependency react-app-polyfill to v3
  • Update dependency react-dev-utils to v12
  • Update dependency react-redux to v9
  • Update dependency redux to v5
  • Update dependency redux-starter-kit to v2
  • Update dependency redux-thunk to v3
  • Update dependency sanitize-html to v2
  • Update dependency sass-loader to v14
  • Update dependency style-loader to v4
  • Update dependency terser-webpack-plugin to v5
  • Update dependency url-loader to v4
  • Update dependency wait-on to v7
  • Update dependency webpack to v5
  • Update dependency webpack-dev-server to v5
  • Update dependency webpack-manifest-plugin to v5
  • Update react monorepo to v18 (major) (@types/react, @types/react-dom, react, react-dom)
  • 🔐 Create all rate-limited PRs at once 🔐

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

npm
package.json
  • @blueprintjs/core 3.36.0
  • @blueprintjs/icons 3.16.0
  • history 4.10.1
  • left-pad 1.3.0
  • marked 0.8.2
  • moment 2.25.3
  • react 16.13.1
  • react-app-polyfill 0.2.2
  • react-dom 16.13.1
  • react-redux 6.0.1
  • react-split-pane 2.0.3
  • redux 4.0.5
  • redux-logger 3.0.6
  • redux-starter-kit 0.9.1
  • redux-thunk 2.3.0
  • sanitize-html 1.23.0
  • whatwg-fetch 3.0.0
  • @babel/core 7.12.10
  • @svgr/webpack 4.3.3
  • @types/react 16.9.35
  • @types/react-dom 16.9.8
  • babel-core 7.0.0-bridge.0
  • babel-eslint 10.1.0
  • babel-jest 23.6.0
  • babel-loader 8.2.2
  • babel-plugin-named-asset-import 0.3.6
  • babel-preset-react-app 7.0.2
  • bfj 6.1.2
  • case-sensitive-paths-webpack-plugin 2.3.0
  • chalk 2.4.2
  • css-loader 2.1.1
  • cypress 3.8.3
  • cypress-get-react-component 1.0.0-dev4
  • cypress-react-unit-test 2.10.0
  • dotenv 6.2.0
  • dotenv-expand 4.2.0
  • eslint 5.16.0
  • eslint-config-react-app 3.0.8
  • eslint-loader 2.2.1
  • eslint-plugin-flowtype 3.13.0
  • eslint-plugin-import 2.20.2
  • eslint-plugin-jsx-a11y 6.2.3
  • eslint-plugin-react 7.20.0
  • file-loader 3.0.1
  • fork-ts-checker-webpack-plugin-alt 0.4.14
  • fs-extra 7.0.1
  • html-webpack-plugin 4.3.0
  • identity-obj-proxy 3.0.0
  • jest 23.6.0
  • jest-pnp-resolver 1.0.1
  • jest-resolve 23.6.0
  • mini-css-extract-plugin 0.9.0
  • node-sass 4.13.1
  • optimize-css-assets-webpack-plugin 5.0.3
  • pnp-webpack-plugin 1.6.4
  • postcss-flexbugs-fixes 4.2.1
  • postcss-loader 3.0.0
  • postcss-preset-env 6.7.0
  • postcss-safe-parser 4.0.2
  • react-dev-utils 7.0.5
  • resolve 1.17.0
  • sass-loader 7.3.1
  • style-loader 0.23.1
  • terser-webpack-plugin 1.4.3
  • url-loader 1.1.2
  • wait-on 3.3.0
  • webpack 4.41.2
  • webpack-dev-server 3.11.0
  • webpack-manifest-plugin 2.2.0
  • workbox-webpack-plugin 3.6.3

  • Check this box to trigger a request for Renovate to run again on this repository

Make open dialog better

  • make it filterable by name
  • maybe don't show things that probably aren't notebooks based on the filenames in them? by default, turn off w/ user preference?
  • pagination & preload a sufficiently high number of gists to search through
  • add error checking to open dialog + open notebook

Move controls to top bar

image

This is too big. Move all the controls, maybe even the page list somehow to a top nav bar where it will be easier to condense + add new stuff

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.