Code Monkey home page Code Monkey logo

wiki's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

cgay rjmacready

wiki's Issues

HTTPS

Get HTTPS working. This doesn't block launch because the current wiki doesn't use it either.

{{include: ...}} should be a reference

{{include: ...}} should be implemented as a reference so that such uses are discoverable. e.g., they should show up in the Connections page and should be distinguishable from normal references.

Show bad page references

Provide a way to display a list of page targets that need to be written. Possibilities include {{wiki: show-broken-links}} or adding another special item below the Users, Groups, and Pages links.

The list should show which pages the broken references come from.

Maybe add this to the home page: Want to help make this wiki better? Try writing one of these pages: ...list...

Sanitize all inputs

Notably anything that conflicts with being passed on the command line within double quotes. e.g., commit comments with double quotes. (I couldn't get run-application to work with a pre-parsed command line.)

Fix file descriptor leak

cgay@lovelace:~/dylan-wiki$ ps -ef | grep org
cgay 14463 1 0 13:55 pts/3 00:00:04 opendylan-dot-org --config /home/cgay/dylan-wiki/config.xml
cgay 28104 31095 0 15:59 pts/1 00:00:00 grep org

cgay@lovelace:~/dylan-wiki$ lsof | grep cgay | grep pipe | grep opendylan | wc -l
298

The wiki has been up for just over two hours, with only my using it lightly, and has 300 pipes open. I have to assume this is related to running rst2html or some other call to run-application.

Write a test to verify that fds get closed properly for those calls.

Too many open files

Wiki died with

2011-06-17T21:03:47.000+0200 ERROR [HTTP Listener for 0.0.0.0:8001] Error accepting connections: socket error 24

Too many open files. I bet anything I'm leaving an fd open after running rst2html.

Encode filenames

Encode filenames so that they're safe for passing as args to exec and for storing in the file system. Probably just percent encoding is fine.

ACLs not written to file

D'oh! ACLs are in effect as long as the server is up, but they're not written to file when edited and hence not restored on startup.

Make page links case insensitive

If there is a page named Code Examples then {{code examples}} should display as "code examples" but should link to the "Code Examples" page.

Preview is broken

"title" isn't in the query values.

To reproduce it just go to a new, non-existing page and try to preview it.

Fix password storage

Still storing passwords in cleartext. I meant to fix this when I was originally working on the git back-end code but forgot. (Hooray for not writing stuff down.)

Also, whatever mechanism is used to encode the password must not contain colons, given the storage format.

Also (but not closely related), put some verbiage on the registration page saying not to use secure passwords on this site.

Fix whitespace within wiki markup

If wiki markup contains a line break in the middle it can break the link. e.g.,

{{Dylan
Compilers}}

doesn't link to "Dylan Compilers". This can happen when the browser's textarea widget auto-wraps the line (which I believe can be fixed in the HTML) but also if someone is writing RST and hard-wraps the lines for readability. I think it's okay to convert all contiguous white space inside {{...}} to a single space.

Update refs when new page created

If there is a reference to a non-existant page P, and then P is created, the reference doesn't get updated. The link will show a (?) even though the page exists and the link works.

Implement file upload

File upload is important so that people have a place to store files (e.g., images) that they reference in their wiki pages.

Error launching wiki

Error with stack trace:

Cannot add-method {<simple-closure-method>: ??? (<case-insensitive-string-table>) => (<function>, <function>)} in {<library>} on {<incremental-generic-function>: table-protocol} because it is blocked by the sealed domain over {<simple-object-vector>: {<class>: <case-insensitive-string-table>}} defined in {<library>}.
Khandle_missed_dispatchVKgI+561 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
general_engine_node_n+63 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
Kdefault_handlerVKdMM1I+26 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
Khandle_missed_dispatchVKgI+561 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
general_engine_node_n+63 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
0xb7503fa9 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
0xb7504036 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
Khandle_missed_dispatchVKgI+561 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
general_engine_node_n_optionals+106 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
KerrorVKdMM0I+58 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
Khandle_missed_dispatchVKgI+561 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
general_engine_node_n_optionals+106 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
KbletchVKgMM1I+33 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
Khandle_missed_dispatchVKgI+561 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
general_engine_node_n+63 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
KPadd_a_methodVKnI+1080 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
_Init_wiki__X_wiki_for_user_4+38 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libwiki.so)
_Init_wiki__X_wiki_for_user+28 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libwiki.so)
0xb770dbeb (/home/user/dylan-foundry/wiki/_build/bin/../lib/libwiki.so)
0xb770da6b (/home/user/dylan-foundry/wiki/_build/bin/../lib/libwiki.so)
mps_tramp+53 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libdylan.so)
0xb770dae5 (/home/user/dylan-foundry/wiki/_build/bin/../lib/libwiki.so)
0x80488e0 (_build/bin/wiki)
__libc_start_main+243 (/lib/i386-linux-gnu/libc.so.6)
Segmentation fault (core dumped)

Saving a large page too slow

Saving the FAQ page (which is the largest so far) takes a crazy amount of time. ~30 seconds. Need to track down the problem.

Replace or augment the Options menu

While the Options menu seems to remove clutter, when I'm editing "in anger" I find it far too annoying to have to go find the "edit" menu item every time. Perhaps it's enough to add an "edit" link/icon near the page title when applicable. Perhaps a horizontal menu that is always visible would be better. IIRC that tiny little Options link on the right wasn't at all obvious when I first started using Turbo's wiki.

Better RST stylesheet

In particular, the examples in the "Help" page are tiny and should have a slightly different color for the background, to set them off.

Support git 1.5

Lovelace has git 1.5, which has different output formats than 1.7, so some tweaking needs to be done to the screen scraping. (I know, screen scraping sucks...can look at libgit2 later.)

First check whether we can just upgrade git on Lovelace.

Improve page diffs

Currently page diffs just show the raw output from git diff. See if there's some reusable code, e.g., for the github commit diffs.

Implement basic markup syntax

Currently the only wiki markup that works (other than RST) is {{Page}}.

Implement at least these for initial launch:

{{page: Foo, text: Bar}} -- link text "Bar" to page "Foo"
{{Foo,Bar}}              -- shorthand for {{page:Foo,text:Bar}}
{{Foo}}                  -- shorthand for {{page:Foo,text:Foo}}
{{page: "x,y"}}          -- names may be quoted
{{page: 'The "x" Page'}} -- single or double quotes work.
{{user: cgay, text: Carl}}  -- a user link
{{group: group}}            -- a group link

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.