Dwarf Fortress Wiki:Magmawiki

From Dwarf Fortress Wiki
Jump to: navigation, search

magmawiki is the project to replace the mediaWiki engine.

Source code is hosted on Github.

IRC channel for software development (NOT dwarf fortress questions / discussions, check here for those channels!) is #magmawiki on freenode.org

Discussion of the magmawiki project on the forums is here


[edit] Versioning

0 . 0 . 17 . 0 . 246
Major version number.
Level of magma (0-6/7), new major version when it reaches 7.
Minor feature version.
Bug/security fixes on current "major.magma.minor" version combo.
Number of expletives uttered during development.

[edit] Conceptual screenshots / sketches

Screen shot 2010-05-11 at 5.08.20 PM.png loginbox design (modal dialogs) THE FONT SIZE IS BUGGING ME AUGH THE PAIN

[edit] Planned Versions

[edit] Version 0.1 Features


  • Header
    • Tabs
      • Article Actions (Read / Edit / History)
      • Talk
      • Menu
      • Favorite
      • Special tabs
    • User Bar
  • Articles
    • Optimistic Locking
    • Actions
      • Create (New)
      • Read (Show)
        • Parser (Mediawiki)
          • Article Links
      • Update (Edit)
    • Named URIs (slugs)
      • Immutable until page move (NYI)
      • Mutable titles, as long as same slug is generated
    • Revisions
      • Counter cache
      • History
      • Differences view
  • Missing unit tests
  • Users
    • Account creation
    • Login / Logout (sessions)
    • Account management
      • Localization options
      • Change password
      • Change email
    • IP Tracking
    • Revision / Article edit tied to user
  • Localization backend stuff

[edit] Version 0.2 Features


  • Articles
    • Actions
      • Delete
    • Optimistic Locking Merges (I don't remember what I meant by this page merge screen for changes when changes are blocked by optimistic locking)
    • Page moves
    • Namespaces
    • Page level protection
    • Redirects
  • Users
    • Captcha
    • User Permissions
    • User Permission Levels
  • Search
    • Basic article name search

[edit] Version 0.3 Features


  • Articles
    • Parser (Textile / Markdown?)
    • Templates
      • Mediawiki
      • Python
    • Subpages
    • Fulltext search

[edit] Version 0.4 Features


  • Articles
    • Live edit preview
    • Mediawiki Import functionality
    • Sandboxes
      • Sandbox merging

[edit] Points of discussion

  • Mass deletion of a users contribs (perhaps ranges and checkbox methods?)
  • Talk forums -- see this page
  • Article ratings
  • Line / Word comments (post it notes / discussion thread reference points?)
  • Alternative url implementations (RESTful state w/o /[new, edit, create, etc])
  • Side by side rendering
[09:17am] epitron: side-by-side markup/rendered-html
[09:17am] epitron: you click "preview" and it re-renders it
[09:18am] epitron: and if you scroll, it scrolls both windows in synch
[09:18am] epitron: like the way MELD does
[09:18am] locriani: that's good
[09:18am] epitron: the preview will scroll a lot less sometimes
[09:18am] epitron: like for your version number table monstrousity
[09:18am] locriani: and the cursor position in the markup window
[09:18am] locriani: or in the html window
[09:18am] locriani: will highlight the appropriate element in the other window
[09:18am] epitron: yeah!
[09:18am] epitron: cursor position would be harder
[09:18am] epitron: but it would be slick
  • AUGH PASSWORDS (Mediawiki: ":B:"+ salt (31 bit, hex between 0 and 7fff ffff inclusive) + ":" + md5(salt + "-" + md5(password)) )
  • file uploads, html5 display methods, etc (video, <canvas> tags, media, acceptable formats, etc)
  • Document management stuffs
  • Inline-comments
12:00 <@epitron> i think i just solved the marking problem
12:01 <@epitron> 1) the match is saved as plaintext with an integer
12:02 <@epitron>   1.a) the integer represents which occurance of that match you've marked
12:02 <@epitron> 2) html can be stripped to find the same position in the markup doc
12:03 <@epitron> 3) to deal with new edits, the integer can increment when a diff
                 contains the plaintext match
12:03 <@epitron> (a diff before the marked area)
12:03 <@epitron> (we can ignore diffs afterwards)
12:03 <@epitron> sound good?
12:04 <@epitron> it gets around the round-tripping problem by reducing everything to
                 good old plaintext :D
12:04 <@epitron> i believe that's a reliable 1:1 mapping
12:05 <@epitron> just gotta normalize it by doing gsub(/\s+/, ' ')
13:27 <@epitron> the only piece remaining is how to persist the inline comments across
13:28 <@epitron> the marked area will be active on a revision up until it's overwritten
13:29 <@epitron> (there's a little edge case where a marking is overwritten, then a
                 few revisions down the road you revert back to an earlier copy with
                 the marking... it should be re-connected to that document)
13:29 <@epitron> s/document/revision/

[edit] Considered Features

Items are color coded. Green means very important, yellow means fairly important, and red means near feature, but we need to get the other stuff done first.

  • Categories
  • Templates
  • Talk forums (could temporarily use article system as stop-gap)
  • User accounts
    • Permission levels
    • Blocking
    • Per-user JS
    • Per-user CSS
  • Search
  • Articles
    • History
    • Diff view
    • Redirects
    • Per-page JS
    • Per-page CSS
  • Namespaces
    • Aliases
  • User Preferences
    • Default search namespace
    • Change password (if there are users)
    • Signature? (with forums not really needed)
  • Maintenance
    • API for bots
    • Disabling edits to large categories of pages
    • Automated spam filtering
Personal tools