v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "Dwarf Fortress Wiki:Magmawiki"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (Changed the forum discussion link to the first page, instead of the fifth.)
m (removed erronous pipe)
(13 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
Source code is hosted on [http://www.github.com/locriani/magmawiki Github].
 
Source code is hosted on [http://www.github.com/locriani/magmawiki Github].
  
IRC channel for '''software development''' ('''[[IRC|NOT dwarf fortress questions / discussions, check here for those channels!]]''') is [http://irc.freenode.org/#magmawiki| #magmawiki on freenode.org]
+
IRC channel for '''software development''' ('''[[IRC|NOT dwarf fortress questions / discussions, check here for those channels!]]''') is [http://irc.freenode.org/#magmawiki #magmawiki on freenode.org]
 
 
Discussion of the magmawiki project on the forums is [http://www.bay12forums.com/smf/index.php?topic=55613.0 here].
 
  
 +
Discussion of the magmawiki project on the forums is [http://www.bay12forums.com/smf/index.php?topic=55613.0 here]
 
== Versioning ==
 
== Versioning ==
 
{| style='width: 35em; margin: 1em auto; border-spacing: 0; text-align: center'
 
{| style='width: 35em; margin: 1em auto; border-spacing: 0; text-align: center'
Line 15: Line 14:
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #9df; background: #eef5ff' | 0
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #9df; background: #eef5ff' | 0
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0' | .
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0' | .
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #db8; background: #fff5ee' | 14
+
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #db8; background: #fff5ee' | 17
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0' | .
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0' | .
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #bd8; background: #f5ffee' | 0
 
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #bd8; background: #f5ffee' | 0
 
| colspan='1' width='1%' style='font-size: 200%; padding: 0' | .
 
| colspan='1' width='1%' style='font-size: 200%; padding: 0' | .
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #999; background: #eeeeee' | 153
+
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #999; background: #eeeeee' | 246
 
| colspan='4' |
 
| colspan='4' |
 
|-
 
|-
Line 84: Line 83:
 
| colspan='2' style='padding: 0.25em; border: 2px solid #999; background: #eeeeee' | Number of expletives uttered during development.  
 
| colspan='2' style='padding: 0.25em; border: 2px solid #999; background: #eeeeee' | Number of expletives uttered during development.  
 
|}
 
|}
 +
 +
== Conceptual screenshots / sketches ==
 +
[[File:Screen_shot_2010-05-11_at_5.08.20_PM.png]] loginbox design (modal dialogs)
 +
THE FONT SIZE IS BUGGING ME AUGH THE PAIN
  
 
==Planned Versions ==
 
==Planned Versions ==
 
=== Version 0.1 Features ===
 
=== Version 0.1 Features ===
{{progress_bar|14|total=34}}
+
{{progress_bar|17|total=34}}
 
*Header
 
*Header
 
**Tabs
 
**Tabs
Line 100: Line 103:
 
**Actions
 
**Actions
 
***<s>Create (New)</s>
 
***<s>Create (New)</s>
***Read (Show)
+
***<s>Read (Show)</s>
****Parser (Mediawiki)
+
****<s>Parser (Mediawiki)</s>
*****Article Links
+
*****<s>Article Links</s>
 
***<s>Update (Edit)</s>
 
***<s>Update (Edit)</s>
 
**<s>Named URIs (slugs)</s>
 
**<s>Named URIs (slugs)</s>
Line 158: Line 161:
 
***Sandbox merging
 
***Sandbox merging
 
== Points of discussion ==
 
== Points of discussion ==
 +
*Mass deletion of a users contribs (perhaps ranges and checkbox methods?)
 
*Talk forums -- see [[DF: Magmawiki/Emmys Talk Forum Mockup|this page]]
 
*Talk forums -- see [[DF: Magmawiki/Emmys Talk Forum Mockup|this page]]
 
*Article ratings
 
*Article ratings
Line 178: Line 182:
 
[09:18am] epitron: but it would be slick
 
[09:18am] epitron: but it would be slick
 
</pre>
 
</pre>
*AUGH PASSWORDS (Mediawiki: <code>":B:"+ salt + md5(salt + "-" + md5(password))</code> )
+
*AUGH PASSWORDS (Mediawiki: <code>":B:"+ salt (31 bit, hex between 0 and 7fff ffff inclusive) + ":" + md5(salt + "-" + md5(password))</code> )
 +
*file uploads, html5 display methods, etc (video, <code><canvas></code> tags, media, acceptable formats, etc)
 +
*Document management stuffs
 +
 
 +
*Inline-comments
 +
<pre>
 +
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
 +
                revisions
 +
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/
 +
</pre>
 +
 
 +
----
  
 
== Considered Features ==
 
== Considered Features ==

Revision as of 03:05, 21 June 2010

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

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.

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

Planned Versions

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

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

Version 0.3 Features

  

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

Version 0.4 Features

  

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

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
                 revisions
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/

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