#! /usr/bin/env perl use warnings; undef $/; $_=<>; # Undo Windows newlines. s/\r\n/\n/sg; # URLs have damn inconsistent handling in reST. s|:http: ``(.+)``|$1|g; s|:telnet: ``(.+)``|telnet: $1|g; s|:ssh: ``(.+)``|ssh: $1|g; s|:tiles: ``(.+)``|tiles: $1|g; # Notes. s/\.\. note::/Note: /g; # Local references. s/`(.)\.\s+(.*?)`_/$1. "$2"/sg; # added "" for a nicer look # HTML and reST escapes. s/<//g; s/"/"/g; s/�*39;/'/g; s/&/&/g; s/\\(.)/$1/g; # Table of contents. my $contents = "Contents\n--------\n"; for (/\*{9,}\n(.\. .+)\n\*{9,}/g) { /(.)\. (.+)/; $contents .= "\nAppendices\n" if $1 eq "1"; $contents .= "$1. $2\n"; } s/\.\. contents::\n :depth: 5/$contents/; # Main headers. my $DCSShead = <