aboutsummaryrefslogtreecommitdiff
path: root/swn.pl
diff options
context:
space:
mode:
Diffstat (limited to 'swn.pl')
-rwxr-xr-xswn.pl199
1 files changed, 0 insertions, 199 deletions
diff --git a/swn.pl b/swn.pl
deleted file mode 100755
index 312999e..0000000
--- a/swn.pl
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use warnings;
-
-use File::Path qw(make_path remove_tree);
-use Path::Class;
-use Getopt::Std;
-
-# Root in directory.
-my $dir;
-my $VERSION = "v0.1";
-
-sub help {
- print<<EOF
-$0 [switches]
- -v print version and exits
- -h print this help and exits
- -d set the input directory (by default in/)
-EOF
-}
-
-sub version {
- print <<EOF
-$0 $VERSION
-EOF
-}
-
-sub styles {
- # Unset $/, the Input Record Separator, to make <> give you the whole file at once.
- local $/=undef;
- open FILE, "styles.css" or die "Cannot open file $!";
- my $styles = <FILE>;
- close FILE;
-
- return $styles;
-}
-
-sub markdown {
- my ($file) = @_;
- my $filename = "$file";
- $filename =~ s/\.html$/.md/g;
- return `markdown "$filename"`;
-}
-
-sub generate_page {
- my $file = $_[0];
- my $sidebar = transverse($dir, $file);
- my $styles = styles;
- my $body = markdown $file;
- my $page = <<EOF
-<!doctype html>
-<html>
-<head>
-<title>Deprecated</title>
-<link rel="icon" href="/favicon.png" type="image/png"/>
-<meta charset="UTF-8">
-<style>
-$styles
-</style>
-</head>
-<body>
-<div class="header">
-<h1 class="headerTitle">
-<a href="/">Deprecated</a> <span class="headerSubtitle">Just coding for fun</span>
-</h1>
-</div>
-
-<div id="side-bar">
-$sidebar
-</div>
-
-<div id="main">
-$body
-</div>
-
-
-<div id="footer">
-<div class="right">Powered by <a href="https://github.com/jroimartin/sw">swn</a></div>
-</div>
-</body>
-</html>
-EOF
-;
- return $page;
-}
-
-sub generate_link {
- my ($file, $options) = @_;
- $options->{hl} = 0 if !exists($options->{hl});
-
- # Get the path.
- my $path = $file->stringify;
- $path =~ s/^$dir//g;
- $path =~ s/\.md$/.html/g;
-
- # String to show
- my $str = $file->basename;
- $str =~ s/\.md$//g;
-
- # Higlight?
- my $hl = "";
- if($options->{hl} eq 1) {
- $hl = "class='hl'";
- }
-
- return "<li><a $hl href='$path'>$str</a></li>";
-}
-
-sub transverse {
- my ($directory, $file_needed) = @_;
- my $retval = "";
-
- $retval = "<ul>";
- while(my $file = $directory->next) {
- my $filename = $file->stringify;
-
- # Some conditions
- next if $filename =~ /(\.|\.\.)$/;
- next if $filename eq $directory;
-
- if($file_needed eq $file) {
- $retval = "$retval" . generate_link($file, { hl => 1 });
- } else {
- $retval = "$retval" . generate_link($file);
- }
-
- if($file->is_dir()) {
- my $d = $file_needed->dir->stringify;
- if($file =~ /$d/ and !($d eq $directory)) {
- $retval = "$retval" . transverse($file, $file_needed);
- }
- }
- }
- $retval = "$retval</ul>";
-
- return $retval;
-}
-
-sub run_on {
- my $mddir = $_[0] || dir($dir);
- remove_tree $mddir;
-
- while(my $file = $mddir->next) {
- my $outfile = $file->stringify;
-
- # Some conditions
- next if $outfile =~ /(\.|\.\.)$/;
- next if $outfile eq $mddir;
-
- $outfile =~ s/$dir\//out\//g;
- !($outfile =~ m/^$dir/) or die "$outfile =~ m/$dir/";
-
- if($file->is_dir()) {
- # make a directory
- make_path $outfile;
- run_on($file);
- next;
- }
-
- $outfile =~ s/md$/html/g;
- print STDERR "* writing: $outfile\n";
- my $contents = generate_page $file;
-
- open FD, ">$outfile";
-
- print FD $contents;
-
- close FD;
- }
-}
-
-sub main {
- my %opts = (
- 'v' => 0,
- 'h' => 0,
- 'd' => "in"
- );
- getopts('vhd:', \%opts);
-
- if($opts{h})
- {
- help;
- exit 0;
- }
- elsif($opts{v})
- {
- version;
- exit 0;
- }
- elsif($opts{d})
- {
- $dir = dir $opts{d};
- }
-
- run_on dir($dir);
-}
-
-main @ARGV;
-