Open main menu

Changes

No change in size ,  10:36, 31 January 2020
fix nesting of <source>
See Also: [[Syntax highlighting]]<source syntaxhighlight lang=php>
#!/usr/bin/php
<?php
/**
* This script is meant to be used as a command-line tool, or else as the target of a custom action within * Quanta * The script will get the contents of a file which is the generated output of a PHPMyAdmin SQL Schema export, and change the * format of the table defintion 'headings' into the H2 heading format suitable for posting into MediaWiki * This process creates easy to navigate and reference SQL schema files in the wiki * The exact tag output by this script (<sql> or <source lang=sql>) must correlate with the MediaWiki extension you use to get syntax highlighting * In any case, you need to have a GeSHi syntax highlighting extension active in your MediaWiki installation. * * @Usage * php /path/to/pma2wiki.php /some/pma-schema.sql */
$content = file_get_contents($argv[1]);
/** replace the
* -- -------------------------------------------------------- * with nothing */
$content = preg_replace ("/^[\s-]+$\n/m", '', $content);
/** Handle the 'header' output
* e.g.
-- phpMyAdmin SQL Dump
-- version 2.9.1.1-Debian-3
-- http://www.phpmyadmin.net
*/
$pattern = '/
/**
* Make the DB name a H2 */
$pattern = '/^--[\s]([^:]+): `(.*)`$/mU';
$replacement = "== $1: $2 == \n";
/** handle the heading metadata
* e.g.-- Host: hermesfoo.dc0example.oasis-open.netcom
-- Generation Time: May 03, 2007 at 12:33 PM
-- Server version: 3.23.55
-- PHP Version: 5.2.0-8+etch1
--
-- Database: `kavi_live_wgorgmyDatabase` */
$pattern = '/^--[\s]([^:]+): (.*)$/mU';
$replacement = "; $1: $2";
/** replace the
* -- Table -- * comment with a * === Table === * wiki syntax heading */
//$content = preg_replace("/^--\s+\n^-- Table structure for table `([^`]+)`\n^--\s+\n/imUs", "\n=== $1 ===\n", $content);
$content = preg_replace("/\n^-- Table structure for table `([^`]+)`$/imUs", "\n=== $1 ===\n", $content);
/** replace the
* -- -------------------------------------------------------- * with nothing */
$content = preg_replace ("/^[\s-]+$\n/m", '', $content);
/** wrap the CREATE statement in <sql> tags (relies on geshi)
*/
$pattern = '/(CREATE TABLE [^;]+;)/U';
// depends on GeSHi and which extension you have$replacement = '<source lang=sql> // depends on GeSHi and which extension you have
$1
</source>
echo $content;
?>
</sourcesyntaxhighlight[[Category:Wiki]]