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
(I don't think the snark is needed... unless the magmawiki devs were the ones adding it. You can talk to User:Emi if you're curious, she's around)
 
(44 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 +
magmawiki was a web development project to replace the mediaWiki engine. It has not been updated since 2010.
 +
 
magmawiki is the project to replace the mediaWiki engine.
 
magmawiki is the project to replace the mediaWiki engine.
  
 
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]
 +
 +
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 11: Line 16:
 
| 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' | 12
+
| 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' | 145
+
| colspan='2' width='1%' style='font-size: 200%; padding: 0.2em; border-bottom: 3px solid #999; background: #eeeeee' | 246
 
| colspan='4' |
 
| colspan='4' |
 
|-
 
|-
Line 80: Line 85:
 
| 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|12|total=32}}
+
{{progress_bar|17|total=34}}
 
*Header
 
*Header
 
**Tabs
 
**Tabs
Line 96: Line 105:
 
**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>
***Delete
 
 
**<s>Named URIs (slugs)</s>
 
**<s>Named URIs (slugs)</s>
 
***<s>Immutable until page move (NYI)</s>
 
***<s>Immutable until page move (NYI)</s>
Line 110: Line 118:
 
*<s>Missing unit tests</s>
 
*<s>Missing unit tests</s>
 
*Users
 
*Users
**Captcha
 
 
**<s>Account creation</s>
 
**<s>Account creation</s>
**Login / Logout (sessions)
+
**<s>Login / Logout (sessions)</s>
 
**Account management
 
**Account management
 +
***<s>Localization options</s>
 +
***Change password
 +
***Change email
 
**IP Tracking
 
**IP Tracking
 +
**Revision / Article edit tied to user
 
*<s>Localization backend stuff</s>
 
*<s>Localization backend stuff</s>
  
Line 120: Line 131:
 
{{progress_bar|0|total=1}}
 
{{progress_bar|0|total=1}}
 
*Articles
 
*Articles
 +
**Actions
 +
***Delete
 
**Optimistic Locking Merges (<s>I don't remember what I meant by this</s> page merge screen for changes when changes are blocked by optimistic locking)
 
**Optimistic Locking Merges (<s>I don't remember what I meant by this</s> page merge screen for changes when changes are blocked by optimistic locking)
 
**Page moves
 
**Page moves
Line 126: Line 139:
 
**Redirects
 
**Redirects
 
*Users
 
*Users
 +
**Captcha
 
**User Permissions
 
**User Permissions
 
**User Permission Levels
 
**User Permission Levels
Line 148: Line 162:
 
**Sandboxes
 
**Sandboxes
 
***Sandbox merging
 
***Sandbox merging
 +
== 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]]
 +
*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
 +
<pre>
 +
[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
 +
</pre>
 +
*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 ==
Line 182: Line 247:
 
**{{ryg|0|Disabling edits to large categories of pages}}
 
**{{ryg|0|Disabling edits to large categories of pages}}
 
**{{ryg|0|Automated spam filtering}}
 
**{{ryg|0|Automated spam filtering}}
[[Category:Wikiprojects]]
+
[[Category:Wikiprojects]][[Category:Wiki]]

Latest revision as of 05:21, 26 January 2023

magmawiki was a web development project to replace the mediaWiki engine. It has not been updated since 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[edit]

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[edit]

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[edit]

Version 0.1 Features[edit]

  

  • 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[edit]

  

  • 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[edit]

  

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

Version 0.4 Features[edit]

  

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

Points of discussion[edit]

  • 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[edit]

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