GithubHelp home page GithubHelp logo

thomaspeklak / node-wiki Goto Github PK

View Code? Open in Web Editor NEW
29.0 4.0 14.0 8.74 MB

HTML5 editor powered wiki with drag and drop file upload and easy page creation

License: MIT License

JavaScript 87.66% Shell 0.03% Handlebars 0.86% CSS 2.25% HTML 9.19%

node-wiki's People

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

Watchers

 avatar  avatar  avatar  avatar

node-wiki's Issues

i18n + language switch

In version 0.1 i18n was prepared with only one language. 0.2 should provide a language switch and at least one addtional language

Paste media links

Pasting links into the content area should have the same effect as dropping.

Task List

let users create a task list. This can either be implemented via input/checkboxes with values or more sophisticated via custom styles.

  • Ensure that the modifications are persisted
  • Ensure that tasks are clickable

Create a wiki help page

As more features land in Node Wiki it seems necessary to document the features.

Possible solutions:

  • dedicated page inside the wiki
  • wiki page on github
  • page inside the wiki the can be modified by the user (probably a bad idea due to update and translations issues)

Static navigation middleware

Most Wiki systems are missing an easy and intuitive navigation construction.

I implemented a middleware script in my work for static navigation.
For that, the special page name 'navigation' is reserved for defining a static menu structure of the wiki.

The content of this page will be incuded and shown on the left hand side in the column topmost above the pages-section (subpages list section).

Implementation already commited in my fork.

Create a json api

Creating an api for the wiki, can be the starting point for other tools to link into the project. This should make frontend development inside node wiki easier.

bug in tag editing

If you edit tags and remove all input from the input field (0 chars) and bluring the input field (loosing focus) will end up in a non-editable tags section because editing tags depends on a click event on the tags HTML element section.

Possible solution: Add a CSS rule for tags HTML-markup to let it display a padding and a special editing cursor. With a padding, the tags secion will be editable even if no content is displayed in the HTML markup section.

I will implement that in my fork.

User management

If node-wiki is being worked on still, it would be nice to have a user management and respective permissions for pages.

Any plans on that?

Build test cases

As node wiki advances from a playground to a serious project it needs a good test base. Otherwise contributions are too hard.

delete a page

From a usability perspective deletion should be as easy as creating a page. Best thing to do is probably provide a delete flag on pages and filter all lists.

  • Deleted pages should not be editable.
  • Deleted pages should get a seperate view where they can be restored.
  • An undo feature could be implemented to revert the action as long as the flash message is displayed.
  • A job can cleanup deleted pages, if they were deleted before a configurable amount of time.

I'm not sure if a user should be able to permanently delete a page?

slash in page title bug

When entering a slash in page title the page will not be displayed.
Maybe mongodb has issues here

Versioning

Version the content of a page. Show diffs and possibility to go back.

app doesn't boot

  1. nodemon dependency needs to be part of the install docs
  2. default boot renders following error:
21 Jan 11:10:56 - [nodemon] v1.3.2
21 Jan 11:10:56 - [nodemon] to restart at any time, enter `rs`
21 Jan 11:10:56 - [nodemon] watching: /Users/cdieringer/node/node-wiki/lib/**/* /Users/cdieringer/node/node-wiki/models/**/* /Users/cdieringer/node/node-wiki/routes/**/*
21 Jan 11:10:56 - [nodemon] starting `node .`
Live reload watching public dir
watching frontend for changes
Express server listening on port 3000
Could not connect to database "mongodb://localhost/nodewiki". Ensure that a mongo db instance is up and running.
[Error: failed to connect to [localhost:27017]]
21 Jan 11:10:57 - [nodemon] app crashed - waiting for file changes before starting...

net.js:614
    throw new TypeError('invalid data');
          ^
TypeError: invalid data
    at WriteStream.Socket.write (net.js:614:11)
    at finder.deleted (/Users/cdieringer/node/node-wiki/lib/wipe-deleted-pages.js:11:24)
    at NativeConnection.Connection.error (/Users/cdieringer/node/node-wiki/node_modules/mongoose/lib/connection.js:381:24)
    at /Users/cdieringer/node/node-wiki/node_modules/mongoose/lib/connection.js:409:14
    at /Users/cdieringer/node/node-wiki/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:56:21
    at /Users/cdieringer/node/node-wiki/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:267:16
    at null.<anonymous> (/Users/cdieringer/node/node-wiki/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:550:7)
    at emit (events.js:106:17)
    at null.<anonymous> (/Users/cdieringer/node/node-wiki/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
    at emit (events.js:98:17)

text drag & drop bug

When content gets edited, text gets selected in edit mode and you drag the selected text and drop it in content section, uploading file attempt is happending which is resulting in an unkown server error.

Optimistic locking

Let a user know that someone else has edited the content and prevent saving of stale content.

page locking

disable the possibility to edit a page, if someone is currently working on it.

Page-Navigation not shown on special pages

The navigation isn't shown on tags, all pages, search etc. special pages. Makes navigation in the wiki a little difficult; will implement a config option for that in config/app.js and trigger the rendering of the page navigation on every special page if enabled.

Sanitize input

Ensure that no script blocks are passed stored in the content

Gist Support

drag and drop a gist

gist are not that easy as they do not have an iframe solution, but heavily use document.write to provide their code. There are two possibilities to get a gist into the wiki

  • make an internal iframe around this (could be seamless if the browser supports it)
  • display the gist in the side bar and open it on click

Missing Modules - nodemon and paste-media

nodemon isn't in your package.json nor mentioned in the "getting started." Could probably go there for beginners.

Once I got it running, I got this error:

Error: module "./paste-media" not found from "/Users/jeff/workspace/node-wiki/frontend/app.js"

Drag and drop of files seems to be broken. Perhaps because of this?

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.