diff --git a/CONTRIBUTIONS/md2html_YAML.pl b/CONTRIBUTIONS/md2html_YAML.pl new file mode 100644 index 00000000..0313068d --- /dev/null +++ b/CONTRIBUTIONS/md2html_YAML.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl + +my $src = ""; +my $id = ""; +my $title = ""; +my $section = ""; +my $section_id = ""; +my $is_list = 0; +my $topic = ""; +my $current_level = 0; +my $prev_level = 0; + +$src = $ARGV[0]; +$id = $src; +$id =~ s/\.md$//; + +open(IN, ${src}) || die "${src}: $!\n"; +while () { + chomp; + s//>/g; + s/\r$//; + + while ($_ =~ /\[.*\]\(.*\)/g) { + $_ =~ s/\[(.*)\]\((.*)\)/$1<\/a>/; + } + + if (/^## Title: (.*)$/) { + $current_level = 2; + ${title} = $1; + print "
\n"; + print "

${title}

\n"; + print "
\n"; + $is_list = 0; + + } elsif (/^### (.*)$/) { + $current_level = 3; + ${section} = $1; + ${section} =~ s/:([\s]+|)$//; + + ${section_id} = $section; + ${section_id} =~ s/\(s\)//; + ${section_id} =~ tr/A-Z/a-z/; + + ${id} =~ tr/A-Z/a-z/; + + if ($prev_level >= $current_level) { + print "<\/dd>\n"; + } + print "
${section}
\n"; + print "
\n"; + $prev_level = $current_level; + $is_list = 0; + + } elsif (/^#### (.*)$/) { + print "

$_

\n"; + $is_list = 0; + + } elsif (/^(\-|\*) (.*)$/) { + ${topic} = $2; + if ($is_list eq 0) { + print "
    \n"; + } + print "
  • ${topic}
  • \n"; + $is_list = 1; + + } else { + if (($is_list eq 1) && (/^$/)) { + print "
\n"; + $is_list = 0; + } + if (/^```/) { + print "\n"; + } + if (/^```json/ && /^```js/) { + print "\n"; + } else { + print "$_\n"; + } + } +} + +print "<\/dd>\n"; +print "<\/dl>\n"; +print "<\/section>\n"; +close(IN);