View source for Notes
From Critiques Of Libertarianism
Jump to:
navigation
,
search
== Languages == Initially, I thought using mediawiki would be a very easy way to build my site. But it turned out that it really called upon many of my nerdy skills. # Wikitext -- the mediawiki markup language; the bulk of the work is in this. # HTML -- needed intermittently in conjunction with wikitext. # DPL -- Dynamic Page List, an extension that allows more complicated lists than mediawiki categories. # PHP -- mediawiki is implemented in and configured with PHP. # MySQL -- the database I use for mediawiki. # javascript -- I use it primarily for forms that generate wikitext for new articles. # XML -- I use dumps from Delicious Library in XML. Typing in hundreds of books is much more tedious than scanning them. # Python -- I use it primarily to generate wikitext for new articles about books from XML dumps. # Various extensions: DPL, Nuke, Interwiki, ParserFunctions, StringFunctions # CSS -- not yet used, but fundamental to the display of a wiki. == Implementation Tricks == Producing indexes using categories is simple, but had several ugly drawbacks: * Their titles all start with "Category:". * Categories do not let you add extra information beyond the title of a page. * Categories do not let you mix wiki pages with external links. Making manual indexes means that if you want to link something twice in different indexes, you have to copy the link and description each place. Hard to maintain! I solved these problems with several tricks. * Extensions ParserFunctions, MyVariables, DynamicPageList. * [[:Template:DES]] which allows me to associate descriptions with each page. * [[:Template:URL]] which allows me to optionally associate an external URL with a page. * Index templates [[:Template:List]] and [[:Template:Quotations]]. These let me list categories with DPL and display descriptions with each page. If a page is for an external link, that link is used rather than the internal wiki link. * Link templates, [[:Template:Link]], let me treat internal and external links uniformly, relying on the single URL stored on a page. * A number of templates that associate other data with pages, such as external links ([[:Template:URL]]), text from external links ([[:Template:Text]]) and citation information. External URLs exist as only one copy on one page, and are retrieved with templates. * A few templates create debugging categories, which are hidden with <nowiki>__HIDDENCAT__</nowiki>. * Page building services written in JavaScript that automatically construct wiki page code and open the page to paste it into. [[http://dl.dropbox.com/u/20086520/js/new_external.html Indexable Page/Quote]] * A short hack to the mediawiki OutputPage.php code that makes the categories links at the bottom of each page go directly to a main namespace page instead of a category namespace page when the main namespace page exists. <code> # MRH Make category listings at bottom of page go directly to page with the # MRH name of the category. Can still use the Go box to get to the categories. # MRH $title = Title::makeTitleSafe( NS_CATEGORY, $category ); $title = Title::makeTitleSafe( NS_MAIN, $category ); if ( ! $title->isknown() ) { $title = Title::makeTitleSafe( NS_CATEGORY, $category ); } # MRH end of changes </code> Thus, no sending people to category pages or having category pages redirect to regular pages. You can still go to Category pages directly. The end result is: * I can make and rapidly index pages with the category mechanism in a flexible and powerful way that allows me to present more information than the title. * I can index external pages with the same category mechanism. * External page code rot due to URL changes is simple to fix in one place. * Broken external links can be automatically looked up in the internet archive from the in-wiki page. * External text can be searched within the wiki because it is in the database. * Categories can be combined for listing by making them subcategories of each other. Category:Friedrich Hayek is a subcategory of Category:Friedrich von Hayek, so listing the latter includes the former. == Interwiki == * http://www.mediawiki.org/wiki/Extension:SpecialInterwiki * [[Special:Interwiki]] to edit interwiki table * Use <nowiki>[[wikipedia:pagename]]</nowiki> * I use huben, hybridize, and critiques for mine == Other Notes == When upgraded to version > 1.17: * http://en.wikipedia.org/wiki/Wikipedia:NavFrame * http://en.wikipedia.org/wiki/Help:Collapsing * http://www.mediawiki.org/wiki/Manual:Collapsible_elements to revise structure to collapse and expand <code> <div class="toccolours mw-collapsible"> Header <div class="mw-collapsible-content"> <div class="toccolours mw-collapsible mw-collapsed"> ; First : test <div class="toccolours mw-collapsible-content"> ;sfgarg :sfwf ;regregter :ertwert </div> </div> <div class="toccolours mw-collapsible mw-collapsed"> ; Second : test <div class="toccolours mw-collapsible-content"> ;sfgarg :sfwf ;regregter :ertwert </div> </div> </div> </div> </code> Investigate using: * [http://www.webcitation.org WebCite] * DeadUrl Things to fix: * generation of book pages * main page choices at top * test if an external link works before leaving site: if broken, go to in-wiki page with broken link message. * remove old category redirects * examine where I should be using <pre><blockquote></pre>
Return to
Notes
.
Navigation menu
Views
Page
Discussion
View source
History
Personal tools
Log in
Search
Search For Page Title
in Wikipedia
with Google
Translate This Page
Google Translate
Navigation
Main Page (fast)
Main Page (long)
Blog
Original Critiques site
What's new
Current events
Recent changes
Bibliography
List of all indexes
All indexed pages
All unindexed pages
All external links
Random page
Under Construction
To Be Added
Site Information
About This Site
About The Author
How You Can Help
Support us at Patreon!
Site Features
Site Status
Credits
Notes
Help
Toolbox
What links here
Related changes
Special pages
Page information
Guidelines To Create
Indexable Page/Quote
Indexable Book/Quote
Indexable Quote
Unindexed
Templates
Edit Sidebar
Purge cache this page