diff options
author | Joe Rayhawk <jrayhawk@omgwallhack.org> | 2013-04-22 19:43:42 -0700 |
---|---|---|
committer | Joe Rayhawk <jrayhawk@omgwallhack.org> | 2013-04-22 19:43:42 -0700 |
commit | 62286982f4bb3014639063cc0c5937da5ddc5fdb (patch) | |
tree | 1908fc3dde29402744cac65061439bf4752c98a5 | |
parent | 4b69f8995476bb9c05e24e797276180248fa0771 (diff) |
Wiki: Various increasingly sophisticated preview tools
-rw-r--r-- | wiki/preview.mdwn | 22 | ||||
-rw-r--r-- | wiki/preview/ikiwiki-fdo-mangler.pl | 50 | ||||
-rw-r--r-- | wiki/preview/ikiwiki-fdo-mangler.pl.asc | 17 | ||||
-rw-r--r-- | wiki/preview/ikiwiki-fdo-preview-full.sh | 27 | ||||
-rw-r--r-- | wiki/preview/ikiwiki-fdo-preview-full.sh.asc | 17 | ||||
-rw-r--r-- | wiki/preview/ikiwiki-fdo-preview.sh | 18 | ||||
-rw-r--r-- | wiki/preview/ikiwiki-fdo-preview.sh.asc | 17 |
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----- |