summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Rayhawk <jrayhawk@omgwallhack.org>2013-04-22 19:43:42 -0700
committerJoe Rayhawk <jrayhawk@omgwallhack.org>2013-04-22 19:43:42 -0700
commit62286982f4bb3014639063cc0c5937da5ddc5fdb (patch)
tree1908fc3dde29402744cac65061439bf4752c98a5
parent4b69f8995476bb9c05e24e797276180248fa0771 (diff)
Wiki: Various increasingly sophisticated preview tools
-rw-r--r--wiki/preview.mdwn22
-rw-r--r--wiki/preview/ikiwiki-fdo-mangler.pl50
-rw-r--r--wiki/preview/ikiwiki-fdo-mangler.pl.asc17
-rw-r--r--wiki/preview/ikiwiki-fdo-preview-full.sh27
-rw-r--r--wiki/preview/ikiwiki-fdo-preview-full.sh.asc17
-rw-r--r--wiki/preview/ikiwiki-fdo-preview.sh18
-rw-r--r--wiki/preview/ikiwiki-fdo-preview.sh.asc17
7 files changed, 168 insertions, 0 deletions
diff --git a/wiki/preview.mdwn b/wiki/preview.mdwn
new file mode 100644
index 0000000..91551d0
--- /dev/null
+++ b/wiki/preview.mdwn
@@ -0,0 +1,22 @@
+### offline edit preview
+
+To preview just the markdown portions, install `markdown` and run something like
+
+ markdown file_to_preview.mdwn
+
+For preview more sophisticated Ikiwiki and template features, we'll need some additional infrastructure:
+
+ curl -o ~/bin/ikiwiki-fdo-mangler.pl http://wiki.freedesktop.org/sitewranglers/wiki/preview/ikiwiki-fdo-mangler.pl
+ gpg --verify <(curl -s http://wiki.freedesktop.org/sitewranglers/wiki/preview/ikiwiki-fdo-mangler.pl.asc) ~/bin/ikiwiki-fdo-mangler.pl && chmod a+x ~/bin/ikiwiki-fdo-mangler.pl
+ curl -o ~/bin/ikiwiki-fdo-preview.sh http://wiki.freedesktop.org/sitewranglers/wiki/preview/ikiwiki-fdo-preview.sh
+ gpg --verify <(curl -s http://wiki.freedesktop.org/sitewranglers/wiki/preview/ikiwiki-fdo-preview.sh.asc) ~/bin/ikiwiki-fdo-preview.sh && chmod a+x ~/bin/ikiwiki-fdo-preview.sh
+ curl -o ~/bin/ikiwiki-fdo-preview-full.sh http://wiki.freedesktop.org/sitewranglers/wiki/preview/ikiwiki-fdo-preview-full.sh
+ gpg --verify <(curl -s http://wiki.freedesktop.org/sitewranglers/wiki/preview/ikiwiki-fdo-preview-full.sh.asc) ~/bin/ikiwiki-fdo-preview-full.sh && chmod a+x ~/bin/ikiwiki-fdo-preview-full.sh
+
+To preview a temporary simple Ikiwiki rendering of a file, relying on configuration from wiki.freedesktop.org for every run:
+
+ ikiwiki-fdo-preview.sh relative_path/to_file.mdwn
+
+To preview a persistent full Ikiwiki rendering of the whole repository, relying only on configuration from wiki.freedesktop.org on the first run:
+
+ ikiwiki-fdo-preview-full.sh optional_relative_path/to_file.mdwn
diff --git a/wiki/preview/ikiwiki-fdo-mangler.pl b/wiki/preview/ikiwiki-fdo-mangler.pl
new file mode 100644
index 0000000..0f430d1
--- /dev/null
+++ b/wiki/preview/ikiwiki-fdo-mangler.pl
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+my $outputdir=$ARGV[0];
+
+-d $outputdir || exit 2;
+
+package IkiWiki::Setup::Standard;
+
+$INC{"IkiWiki/Setup/Standard.pm"} = "/fake/path";
+
+use Data::Dumper qw( );
+
+sub import {
+ my ( $class, $config ) = @_;
+
+# foreach my $key ( grep { /^[^aeiou]/i } keys %{$config} ) {
+# delete $config->{$key};
+# };
+
+ delete $config->{cgiurl};
+ delete $config->{diffurl};
+ delete $config->{historyurl};
+ delete $config->{wrappers};
+
+ # delete cgi-relevant plugins
+ @{$config->{add_plugins}} = grep(!/^(wmd|httpauth|attachment|rename|remove|search)$/, @{$config->{add_plugins}});
+
+ push(@{$config->{disable_plugins}}, 'recentchanges', 'git');
+
+ $config->{srcdir} = `git rev-parse --show-toplevel`; # We'll have to specify this on the command line
+ chomp($config->{srcdir});
+ $config->{add_underlays} = [ "$outputdir/underlay" ];
+ $config->{templatedir} = "$outputdir/templates";
+ $config->{destdir} = "$outputdir/output";
+ $config->{url} = "file://$outputdir/output";
+
+ $config->{wikistatedir} = "$outputdir/state";
+
+ my $newconfig = Data::Dumper->new( [ $config ] );
+ $newconfig->Terse( 1 );
+
+ print "#!/usr/bin/perl\n\nuse IkiWiki::Setup::Standard " . $newconfig->Dump( ) . ";\n";
+
+};
+
+do "/dev/stdin";
+
diff --git a/wiki/preview/ikiwiki-fdo-mangler.pl.asc b/wiki/preview/ikiwiki-fdo-mangler.pl.asc
new file mode 100644
index 0000000..32d0360
--- /dev/null
+++ b/wiki/preview/ikiwiki-fdo-mangler.pl.asc
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+iQIcBAABAgAGBQJRdfJKAAoJEN+cO+D+7b7vcaYP/1adNjvssZEgRa9j7dTiZJul
+J6E9jZvvKD9BdTlaMPHl7ivZKMVQoAYmwJPAF5XnkVv60sFBRC0690jx5XeURTaL
+7h7+NuxBoA/Neg8bvaRuhNNVOTw6pi+DAW0vDQjs7c1Wm7+ScJYNZWwDTfCbf2RT
+T+9DBHy7JlKG+L67ixaR5kyn19ZLYeVc1DPv+8nY9khgEFHKUBYYkoCEdfPVg1li
+xWG72UnDMOua6o/4vNahSSyQ37egegoE12KeNzeesQKUcC+P5fnCxHTvvIRg/Wah
+n+FMhRfQeUXcErDR7qHD9A6038XzDGECBjbZ8bY1IB/6JUQhmxM0uH+mIkz9np5G
+hVOOgSuHATnDlNHm2uCPGfnX62bm/byQVGaIbtCG8cqvuRi9+PGw+b4JG4kVTVIj
+BalURTLTss4XPvKeFr9I+7rRx+tLrA51aEy9VBVpGbglQ1EOBiGyVEj9cDTZfHwJ
+cIUQBMOvpnaSGXYs3e0kL9x0dVVXptw2SLZe/BHH9z+1g2a+/2UUrEF3349Q/GmC
+uRcBGxD8FLb2bQMMf2vKav/pP78gm0Wd00Q57gqYBH2ri54lpmMHp6aGoTefqHav
+wF7sRdzcKeIZQexVJax6xe/bTRuKN2j60C0Fn/D2EjkWQpOES5NpSQg0rv7M2s1w
+6m5/Azfub9amovh5IZE2
+=nxYD
+-----END PGP SIGNATURE-----
diff --git a/wiki/preview/ikiwiki-fdo-preview-full.sh b/wiki/preview/ikiwiki-fdo-preview-full.sh
new file mode 100644
index 0000000..8021130
--- /dev/null
+++ b/wiki/preview/ikiwiki-fdo-preview-full.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+#set -xe
+
+REPO=$(git remote -v show | grep freedesktop.org | head -n 1 | perl -pe 's~.+/(.+) .+~\1~')
+
+OUTPUTDIR=/tmp/fdo-ikiwiki-${REPO} # you may want to change this to survive across reboots
+#trap 'rm -rf ${OUTPUTDIR}' EXIT
+
+mkdir -p ${OUTPUTDIR}
+(
+ cd ${OUTPUTDIR}
+ [ -f ${OUTPUTDIR}/${REPO}.setup ] || curl -O https://secure.freedesktop.org/ikiwiki/setup/${REPO}.setup # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652480
+ [ -d ${OUTPUTDIR}/underlay ] || wget --no-host-directories --cut-dirs=1 --no-check-certificate -r https://secure.freedesktop.org/ikiwiki/underlay/ # the rest of these aren't executables, so whatever.
+ [ -d ${OUTPUTDIR}/templates ] || wget --no-host-directories --cut-dirs=1 --no-check-certificate -r https://secure.freedesktop.org/ikiwiki/templates/
+)
+
+# this crappy filename translation will break on special characters, but works on the common relative_path/file_name.mdwn case at least
+[[ "$1" =~ ^(.+)\..+$ ]] || true
+SANSEXT=${BASH_REMATCH[1]}
+[[ $PWD =~ ^$(git rev-parse --show-toplevel)(/|())(.*) ]] # Bash hates (thing|)
+CHECKOUTPATH=${BASH_REMATCH[3]}
+
+cat ${OUTPUTDIR}/${REPO}.setup | ikiwiki-fdo-mangler.pl $OUTPUTDIR | ikiwiki --setup - --refresh # --verbose
+
+# The following line will work with or without that first argument.
+x-www-browser ${OUTPUTDIR}/output/${CHECKOUTPATH}/${SANSEXT}/index.html
diff --git a/wiki/preview/ikiwiki-fdo-preview-full.sh.asc b/wiki/preview/ikiwiki-fdo-preview-full.sh.asc
new file mode 100644
index 0000000..2ad559d
--- /dev/null
+++ b/wiki/preview/ikiwiki-fdo-preview-full.sh.asc
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+iQIcBAABAgAGBQJRdfJPAAoJEN+cO+D+7b7vOrYP/j/nxJzzESp5wL4TPyjSPIf4
+KDi8KByiJUCwLRBnhHbexxzAxiHOE6ouPXVflg1RXzJYz5Layyrtcg6H1WfzodMb
+hYU8ZllJLBX8o5bwYXMV+NpJU8nM9kVYBl+hO7N73slnniEclAssnUaHr/akn47W
+wGO9Y1FEEWgjgseA4PDqk1x2J4vjIWxrX9zoXHrCP0A5rR+/6rLo6SVXBw/N6W9n
+rLM+iRZ9ACTH4yB1yY6YGpYZukIZQ39k47gJDQ0SwPYCJrMp3Br5mG/as0fmHmDn
+uSfntj6ZiOg22JJHC1EsFVT7pA83a4w6BTKQyAQcmltnFcI6tFu1n+plAGGRBjJL
+7RBtIjJ8yHtGIDQZNyu585e/nQ1KM1K0QpJnUl6J/j7DZkTIRXOnU73Ax2bBzDtG
+jQW3A7Yv1WeT0LY39+R/8nZ0aQStc9oPq1sQNLV8wTJvTeEMwOZhgwFsglzFD3Xj
+xW0ENF5lKwbXarFOHI6Njp7Xq96RO3nzTcy0+08AWHvVQOH+yWqBsaX8eYo1sxlG
+/70v/zLL7YPU8VTQBa7Jsj42q1j17N3OYvzk8/a2u5SD1a4tLIJEnltbpzwDFTKl
+vOxfEK7eXpYDg6+SHKaBK8WHszBXZUxxAJ+nwu4Ld4LLTM82lh9Fu4FNF6DnBGBg
+BGnfApyP5qUmXDCOgmjs
+=9Xnc
+-----END PGP SIGNATURE-----
diff --git a/wiki/preview/ikiwiki-fdo-preview.sh b/wiki/preview/ikiwiki-fdo-preview.sh
new file mode 100644
index 0000000..383cb39
--- /dev/null
+++ b/wiki/preview/ikiwiki-fdo-preview.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+#set -ex
+
+OUTPUTDIR="$( mktemp -d )"
+trap 'rm -rf ${OUTPUTDIR}' EXIT
+
+# this crappy filename translation will break on special characters, but works on the common relative_path/file_name.mdwn case at least
+[[ "$1" =~ ^(.+)\..+$ ]]
+SANSEXT=${BASH_REMATCH[1]}
+[[ $PWD =~ ^$(git rev-parse --show-toplevel)/(.*) ]]
+CHECKOUTPATH=${BASH_REMATCH[1]}
+
+mkdir -p ${OUTPUTDIR}/output/${CHECKOUTPATH}/${SANSEXT}
+
+curl -s https://secure.freedesktop.org/ikiwiki/setup/$(git remote -v show | grep freedesktop.org | head -n 1 | perl -pe 's~.+/(.+) .+~\1~').setup | ikiwiki-fdo-mangler.pl $OUTPUTDIR | ikiwiki --setup - --verbose --render "$1" > ${OUTPUTDIR}/output/${CHECKOUTPATH}/${SANSEXT}/index.html
+
+x-www-browser ${OUTPUTDIR}/output/${CHECKOUTPATH}/${SANSEXT}/index.html
diff --git a/wiki/preview/ikiwiki-fdo-preview.sh.asc b/wiki/preview/ikiwiki-fdo-preview.sh.asc
new file mode 100644
index 0000000..0341512
--- /dev/null
+++ b/wiki/preview/ikiwiki-fdo-preview.sh.asc
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+iQIcBAABAgAGBQJRdfJRAAoJEN+cO+D+7b7vWTMP/2KaJLgFL8JYV0GyiP7HWIOf
+BCi1laXGkbm38upQorS/CX67gcM0vDOp5RRLjjZnXBm8JVljxp1Ain2wJTwIIGi6
+p7frlxAl6Wl0ZJFjocLJu+ignVgWHPMpaIhbO2bOfgrBTdZLHgVopxJ8iTKsfJlo
+lpQYs+77KObAzP8TpwIeWwcUv9cpvTx1BCUS8+gB3HP3kQ714w8DQjUFI6WTuK4b
+GTIT7/hSQW8EmDxXyhgFzCcXf3MDTLPJpKX5DV8J4OK9F+767BHm/Di75bk/Cuxg
+CB6/PtUMuLk1fhtZQ+jzjOUZz3jog1rlr1cXXCBdjkkrkDf0utigXXrW8SCREHoz
+gNQHNC7DqAj6KR4D5VLztzkH0OW4OwkYBX7deNeu/umh/tEpbb1AHA9MGDUD3XuZ
+ryxGzcPozDC9dxRbZ2I6TNM2wp+fVgwZKySytw3F4EVCihflZNG3Vh3QSHaf/a5c
+V0XEqH8ihPsesFHY5lhhCZRWAPSO4uP9FaJ9anFQGYl9PrHgd9YPDL1PZ+ArR7WY
+4NiusxKWMafTbP4GEmopZixVrSiFFndOsyGAV8cMxMDqIRo5rYxXBG97QBqbedpg
+S42yaMN2vOeGJMlGHB5TN7kk4Gn6ueZ7FY7SEDMt4IeUF4ukdVcmoJ9gtoFj2/4F
+jyzXs87Mp5xWVqBbKvHi
+=KaLu
+-----END PGP SIGNATURE-----