Difference between revisions of "Notes"
From Critiques Of Libertarianism
Line 1: | Line 1: | ||
− | + | == 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! | |
− | [http:// | + | 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:// | + | * 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 | ||
− | http:// | + | == Other Notes == |
− | http:// | + | |
− | http://www. | + | 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> |