GithubHelp home page GithubHelp logo

mojomojo / mojomojo Goto Github PK

View Code? Open in Web Editor NEW
126.0 18.0 48.0 9.16 MB

A Catalyst & DBIx::Class powered Wiki.

Home Page: http://mojomojo.org/

Perl 74.00% CSS 11.43% JavaScript 13.85% Ruby 0.04% Shell 0.32% HTML 0.04% Sass 0.32%
catalyst perl wiki

mojomojo's Introduction

MojoMojo -- A Catalyst & DBIx::Class powered Wiki

Join the chat at https://gitter.im/mojomojo/mojomojo

Build Status

Website located at http://mojomojo.org/

Installation: See lib/MojoMojo/Installation.pod

After Installation: Run script/mojomojo_server.pl to test the application.

License: This is free software. You can redistribute it and/or modify it under the same terms as perl itself.

mojomojo's People

Contributors

autarch avatar b10m avatar bayashi avatar cub-uanic avatar dabg avatar dandv avatar diegok avatar f00li5h avatar fireartist avatar gitter-badger avatar gregoa avatar hoelzro avatar iarnell avatar kraih avatar lestrrat avatar linio avatar marcusramberg avatar mateu avatar nilsonsfj avatar ntyni avatar plu avatar rafl avatar ryan52 avatar samv avatar sauber avatar simaxw avatar tardisx avatar tcaine avatar tdelmas avatar tomredsky 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

mojomojo's Issues

The Markdown in <div>s issue

Summary:

Markdown is designed to NOT interpret text within HTML block elements (like <div>, <table> etc.) as markdown. The rationale is that you may want to paste a whole blob of HTML from somewhere else (counter code, widgets etc.).

On the other hand, when adding any sort of grid-based structure to your page, you want the text inside <div>s to be interpreted as Markdown:

<div class="navbar">
* [Home](/)
* [Products](/products)
* [About](/about)
</div>

You also generally want Markdown to be parsed in <div>s for centering images or any other object in a <div>.

See the thread about this issue at http://n2.nabble.com/No-Markdown-in-%3Cdiv%3Es-or-%3Ctable%3Es---tt2682337.html .

Currently, MojoMojo uses an option markdown_in_html_blocks => 1 in MojoMojo::Formatter::Markdown. This is bound to cause confusion, as different wiki users, who do not see the MojoMojo::Formatter::Markdown code, will assume different things about Markdown being interpreted in <div>s or not. Especially when pasting outside HTML, it can be hard to catch the errors resulting from Markdown parsing the stuff in HTML block elements.

The proposal is to have <div markdown="1">, which is also implemented in PHP Markdown Extra.

blockquotes are broken

The following markup should create a blockquote:

> quoted stuff

This is new in 0.28. Added tests for it to formatter_all_markdown.t.

MojoMojo doesn't clean up temp files

Reported by mst (major annoyance for Catwiki), Khisanth (Cache::FastMmap 1.34), dandv (/tmp/mojomojo/session and /tmp/sharefile-* take about 500Mb each, after ~100 MojoMojo restarts and relatively low wiki usage).

Possible solutions at http://www.perlmonks.org/?node_id=379922

Cache::FastMmap seems to better take care of removing temp files on exit since v1.31 but Khisanth still reports the issue.

Creation of two or more non-existent pages in a row is broken

Steps to reproduce:

  1. Go to http://mojomojo.org/test/new1/new2
  2. You will be greeted with a page that says "Click on any non-existent page to create it. Any missing pages above it will be created automatically."
  3. Click "new2" and create the page with some content.
  4. Go to http://mojomojo.org/test/new1/
  5. Enter some content there and click "Create"/
  6. You will get an error page with the URL http://mojomojo.org/test/new1.test/new1, saying that the URL was not found. Also, the URL displayed does not match the URL of the page.

Add a real delete page feature

Since this is a wiki, it should not actually expunge the page entirely.

Instead, it should do the following:

  • Mark the page as deleted in the database
  • Remove the page from the search index
  • Don't show the page in sub pages lists

What happens to existing links to the page? Probably nothing, just let them exist.

It should be possible to undelete a deleted page.

There could also be a separate expunge option (for administrators only) that actually deleted the page from the system entirely.

Testing GFL

These lines are separated
by a linebreak in the output

But these
-- aren't

line breaks are scrubbed

The following markdown will NOT generate a line break:

Roses are red
<br/>Violets are blue

This is new as of 0.28. The scrubber seems to be eating up the <br>.

Kinosearch re-indexes incompletely

The following process seems to get a complete search index (for only a period of time).

remove files from index/
restart MojoMojo
request a page – then the index is rebuilt.

This process creates one _number.cfs file and a file named segments. The segments file (I believe) references the .cfs by its number.

However after a period of time (less than a day I’ve witnessed) another .cfs file is created and segments is updated to reference it. The problem is that the newly created .cfs file is not complete. I can see this by the reduction in bytes compared to the original. In addition searches on certain terms don’t get as many hits as before. In other words, the newer index does not included all pages.

Edit summaries

Edit summaries are required for any serious wiki.

TWiki started without and finally smartened up in the very recent versions and implemented them. They are very important on Wikipedia, and a feature to be checked on the wiki comparison engine Wikimatrix.

Looks like we can map the edit summary onto the content.abstract field and just need the UI for it.

Permissions are not checked properly for rollback

If there is an anonymous username set in the database, anyone can roll a page back, even if anon users don't have edit perms!

The PageAdmin->auto method is just broken, and needs to check perms like ->edit does.

Review MojoMojo::Formatter::File

The whole File formatter is a bit dubious:

  • the documentation appears to be incorrect (only the "filename" parameter is mentioned for =file, but the code parses a second plugin parameter)
  • what is the base path to the file?
  • the code doesn't do any checks against attempts to render /etc/passwrd
  • there's a leftover Test.pm
  • what is the use case for this exactly? That should go in the documentation

Email notification of page updates

Easy:

  • notify the administrator(s) whenever a page is modified
  • notify all editors of a page whenever a page was modified

Not so easy:

  • do the above if a setting is present - may require schema changes

More difficult

  • allow anyone (with permissions) to subscribe to a page changing. TWiki does this via... err... some settings page somewhere. I used to know this but I've been searching for it for the past 5 minutes. It's neither in the user's page, nor in WebPreferences, nor in the web's home page. Hint: don't do it that way.

Double scrollbar in the user search autocomplete drop-down

  1. Have a site with many users (~30 here)
  2. Go to roles
  3. Type 'e' or another common character that's bound to match many usernames
  4. If there are sufficient results, the scrollbar to the right of the dropdown will be doubled.

This may happen to any autocomplete, including page and photo tags.

Backlinks are not calculated correctly for new pages

Let's say we have a link from /TopicA to /TopicB, and the /TopicB page does not exist. When we create the /TopicB page, the link table will not be populated until any page linking to /TopicB is edited and saved. This means backlinks are often wrong.

One fix is to store backlinks as from a page id to a page name.

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.