A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
|
|
@ -0,0 +1,38 @@
|
|||
def formatCell = { cell ->
|
||||
"<td>${cell.replaceAll('&','&').replaceAll('<','<')}</td>"
|
||||
}
|
||||
|
||||
def formatRow = { row ->
|
||||
"""<tr>${row.split(',').collect { cell -> formatCell(cell) }.join('')}</tr>
|
||||
"""
|
||||
}
|
||||
|
||||
def formatTable = { csv, header=false ->
|
||||
def rows = csv.split('\n').collect { row -> formatRow(row) }
|
||||
header \
|
||||
? """
|
||||
<table>
|
||||
<thead>
|
||||
${rows[0]}</thead>
|
||||
<tbody>
|
||||
${rows[1..-1].join('')}</tbody>
|
||||
</table>
|
||||
""" \
|
||||
: """
|
||||
<table>
|
||||
${rows.join('')}</table>
|
||||
"""
|
||||
}
|
||||
|
||||
def formatPage = { title, csv, header=false ->
|
||||
"""<html>
|
||||
<head>
|
||||
<title>${title}</title>
|
||||
<style type="text/css">
|
||||
td {background-color:#ddddff; }
|
||||
thead td {background-color:#ddffdd; text-align:center; }
|
||||
</style>
|
||||
</head>
|
||||
<body>${formatTable(csv, header)}</body>
|
||||
</html>"""
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
def csv = '''Character,Speech
|
||||
The multitude,The messiah! Show us the messiah!
|
||||
Brians mother,<angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry>
|
||||
The multitude,Who are you?
|
||||
Brians mother,I'm his mother; that's who!
|
||||
The multitude,Behold his mother! Behold his mother!'''
|
||||
|
||||
println 'Basic:'
|
||||
println '-----------------------------------------'
|
||||
println (formatPage('Basic', csv))
|
||||
println '-----------------------------------------'
|
||||
println()
|
||||
println()
|
||||
println 'Extra Credit:'
|
||||
println '-----------------------------------------'
|
||||
println (formatPage('Extra Credit', csv, true))
|
||||
println '-----------------------------------------'
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Basic</title>
|
||||
<style type="text/css">
|
||||
td {background-color:#ddddff; }
|
||||
thead td {background-color:#ddffdd; text-align:center; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr><td>Character</td><td>Speech</td></tr>
|
||||
<tr><td>The multitude</td><td>The messiah! Show us the messiah!</td></tr>
|
||||
<tr><td>Brians mother</td><td><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></td></tr>
|
||||
<tr><td>The multitude</td><td>Who are you?</td></tr>
|
||||
<tr><td>Brians mother</td><td>I'm his mother; that's who!</td></tr>
|
||||
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Extra Credit</title>
|
||||
<style type="text/css">
|
||||
td {background-color:#ddddff; }
|
||||
thead td {background-color:#ddffdd; text-align:center; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><td>Character</td><td>Speech</td></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>The multitude</td><td>The messiah! Show us the messiah!</td></tr>
|
||||
<tr><td>Brians mother</td><td><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></td></tr>
|
||||
<tr><td>The multitude</td><td>Who are you?</td></tr>
|
||||
<tr><td>Brians mother</td><td>I'm his mother; that's who!</td></tr>
|
||||
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
import groovy.xml.MarkupBuilder
|
||||
|
||||
def formatRow = { doc, row ->
|
||||
doc.tr { row.each { cell -> td { mkp.yield(cell) } } }
|
||||
}
|
||||
|
||||
def formatPage = { titleString, csv, header=false ->
|
||||
def writer = new StringWriter()
|
||||
def doc = new MarkupBuilder(writer)
|
||||
def rows = csv.split('\n').collect { row -> row.split(',') }
|
||||
doc.html {
|
||||
head {
|
||||
title (titleString)
|
||||
style (type:"text/css") {
|
||||
mkp.yield('''
|
||||
td {background-color:#ddddff; }
|
||||
thead td {background-color:#ddffdd; text-align:center; }
|
||||
''')
|
||||
}
|
||||
}
|
||||
body {
|
||||
table {
|
||||
header && thead { formatRow(doc, rows[0]) }
|
||||
header && tbody { rows[1..-1].each { formatRow(doc, it) } }
|
||||
header || rows.each { formatRow(doc, it) }
|
||||
}
|
||||
}
|
||||
}
|
||||
writer.toString()
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Basic</title>
|
||||
<style type='text/css'>
|
||||
td {background-color:#ddddff; }
|
||||
thead td {background-color:#ddffdd; text-align:center; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Character</td>
|
||||
<td>Speech</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>The messiah! Show us the messiah!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brians mother</td>
|
||||
<td><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>Who are you?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brians mother</td>
|
||||
<td>I'm his mother; that's who!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>Behold his mother! Behold his mother!</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Extra Credit</title>
|
||||
<style type='text/css'>
|
||||
td {background-color:#ddddff; }
|
||||
thead td {background-color:#ddffdd; text-align:center; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Character</td>
|
||||
<td>Speech</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>The messiah! Show us the messiah!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brians mother</td>
|
||||
<td><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>Who are you?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brians mother</td>
|
||||
<td>I'm his mother; that's who!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>Behold his mother! Behold his mother!</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
procedure main(arglist)
|
||||
pchar := &letters ++ &digits ++ '!?;. ' # printable chars
|
||||
|
||||
write("<TABLE>")
|
||||
firstHead := (!arglist == "-heading")
|
||||
tHead := write
|
||||
while row := trim(read()) do {
|
||||
if \firstHead then write(" <THEAD>") else tHead(" <TBODY>")
|
||||
writes(" <TR><TD>")
|
||||
while *row > 0 do
|
||||
row ?:= ( (=",",writes("</TD><TD>")) |
|
||||
writes( tab(many(pchar)) |
|
||||
("&#" || ord(move(1))) ), tab(0))
|
||||
write("</TD></TR>")
|
||||
if (\firstHead) := &null then write(" </THEAD>\n <TBODY>")
|
||||
tHead := 1
|
||||
}
|
||||
write(" </TBODY>")
|
||||
write("</TABLE>")
|
||||
end
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<TABLE>
|
||||
<THEAD>
|
||||
<TR><TD>Character</TD><TD>Speech</TD></TR>
|
||||
</THEAD>
|
||||
<TBODY>
|
||||
<TR><TD>The multitude</TD><TD>The messiah! Show us the messiah!</TD></TR>
|
||||
<TR><TD>Brians mother</TD><TD><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></TD></TR>
|
||||
<TR><TD>The multitude</TD><TD>Who are you?</TD></TR>
|
||||
<TR><TD>Brians mother</TD><TD>I'm his mother; that's who!</TD></TR>
|
||||
<TR><TD>The multitude</TD><TD>Behold his mother! Behold his mother!</TD></TR>
|
||||
</TBODY>
|
||||
</TABLE>
|
||||
22
Task/CSV-to-HTML-translation/J/csv-to-html-translation-1.j
Normal file
22
Task/CSV-to-HTML-translation/J/csv-to-html-translation-1.j
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
require 'strings tables/csv'
|
||||
encodeHTML=: ('&';'&';'<';'<';'>';'>')&stringreplace
|
||||
|
||||
tag=: adverb define
|
||||
'starttag endtag'=.m
|
||||
(,&.>/)"1 (starttag , ,&endtag) L:0 y
|
||||
)
|
||||
|
||||
markupCells=: ('<td>';'</td>') tag
|
||||
markupHdrCells=: ('<th>';'</th>') tag
|
||||
markupRows=: ('<tr>';'</tr>',LF) tag
|
||||
markupTable=: (('<table>',LF);'</table>') tag
|
||||
|
||||
makeHTMLtablefromCSV=: verb define
|
||||
0 makeHTMLtablefromCSV y NB. default left arg is 0 (no header row)
|
||||
:
|
||||
t=. fixcsv encodeHTML y
|
||||
if. x do. t=. (markupHdrCells@{. , markupCells@}.) t
|
||||
else. t=. markupCells t
|
||||
end.
|
||||
;markupTable markupRows t
|
||||
)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
tag=: adverb def '[: (,&.>/)"1 m&(0&{::@[ , 1&{::@[ ,~ ]) L:0@]'
|
||||
makeHTMLtablefromCSV6=: 0&$: : ([: ; markupTable@markupRows@([ markupCells`(markupHdrCells@{. , markupCells@}.)@.[ fixcsv@encodeHTML))
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
CSVstrng=: noun define
|
||||
Character,Speech
|
||||
The multitude,The messiah! Show us the messiah!
|
||||
Brians mother,<angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry>
|
||||
The multitude,Who are you?
|
||||
Brians mother,I'm his mother; that's who!
|
||||
The multitude,Behold his mother! Behold his mother!
|
||||
)
|
||||
1 makeHTMLtablefromCSV CSVstrng
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<table>
|
||||
<tr><th>Character</th><th>Speech</th></tr>
|
||||
<tr><td>The multitude</td><td>The messiah! Show us the messiah!</td></tr>
|
||||
<tr><td>Brians mother</td><td><angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry></td></tr>
|
||||
<tr><td>The multitude</td><td>Who are you?</td></tr>
|
||||
<tr><td>Brians mother</td><td>I'm his mother; that's who!</td></tr>
|
||||
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr>
|
||||
</table>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
newline$ ="|"
|
||||
' No escape behaviour, so can't refer to '/n'.
|
||||
' Generally imported csv would have separator CR LF; easily converted first if needed
|
||||
|
||||
csv$ ="Character,Speech" +newline$+_
|
||||
"The multitude,The messiah! Show us the messiah!" +newline$+_
|
||||
"Brians mother,<angry>Now you listen here! He's not the messiah; he's a very naughty boy! Now go away!</angry>" +newline$+_
|
||||
"The multitude,Who are you?" +newline$+_
|
||||
"Brians mother,I'm his mother; that's who!" +newline$+_
|
||||
"The multitude,Behold his mother! Behold his mother!"
|
||||
|
||||
print "<HTML>"
|
||||
print "<HEAD>"
|
||||
print "</HEAD>"
|
||||
print "<BODY>"
|
||||
print "<center><H1>CSV to HTML translation </H1></center>"
|
||||
print "<table border=1 cellpadding =10>"
|
||||
print "<tr><td>"
|
||||
|
||||
for i =1 to len( csv$)
|
||||
c$ =mid$( csv$, i, 1)
|
||||
select case c$
|
||||
case "|": print "</td></tr>": print "<tr><td>"
|
||||
case ",": print "</td><td>";
|
||||
case "<": print "&"+"lt;";
|
||||
case ">": print "&"+"gt;";
|
||||
case "&": print "&"+"amp;";
|
||||
case else: print c$;
|
||||
end select
|
||||
next i
|
||||
|
||||
print "</td></tr>"
|
||||
print "</table>"
|
||||
print "</BODY>"
|
||||
print "</HTML>"
|
||||
end
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
MCSKIP "WITH" NL
|
||||
"" CSV to HTML
|
||||
"" assumes macros on input stream 1, terminal on stream 2
|
||||
MCSKIP MT,[]
|
||||
MCSKIP SL WITH ~
|
||||
MCINS %.
|
||||
"" C1=th before header output, td afterwards
|
||||
MCCVAR 1,2
|
||||
MCSET C1=[th]
|
||||
"" HTML escapes
|
||||
MCDEF < AS [[<]]
|
||||
MCDEF > AS [[>]]
|
||||
MCDEF & AS [[&]]
|
||||
"" Main line processing
|
||||
MCDEF SL N1 OPT , N1 OR NL ALL
|
||||
AS [[ <tr>]
|
||||
MCSET T2=1
|
||||
%L1.MCGO L2 IF T2 GR T1
|
||||
[<]%C1.[>]%AT2.[</]%C1.[>]
|
||||
MCSET T2=T2+1
|
||||
MCGO L1
|
||||
%L2.[ </tr>]
|
||||
MCSET C1=[td]
|
||||
]
|
||||
[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>HTML converted from CSV</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css"><!--
|
||||
th {
|
||||
font-weight:bold;
|
||||
text-align:left
|
||||
}
|
||||
table,td,th {
|
||||
border:1px solid;
|
||||
border-collapse:collapse
|
||||
}
|
||||
td,th {
|
||||
padding:10px
|
||||
}
|
||||
//-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table>]
|
||||
MCSET S1=1
|
||||
~MCSET S10=2
|
||||
~MCSET S1=0
|
||||
[</table>
|
||||
</body>
|
||||
</html>
|
||||
]
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>HTML converted from CSV</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style type="text/css"><!--
|
||||
th {
|
||||
font-weight:bold;
|
||||
text-align:left
|
||||
}
|
||||
table,td,th {
|
||||
border:1px solid;
|
||||
border-collapse:collapse
|
||||
}
|
||||
td,th {
|
||||
padding:10px
|
||||
}
|
||||
//-->
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Character</th>
|
||||
<th>Speech</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>The messiah! Show us the messiah!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brians mother</td>
|
||||
<td><angry>Now you listen here! He's not the messiah; he's a
|
||||
very naughty boy! Now go away!</angry></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>Who are you?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Brians mother</td>
|
||||
<td>I'm his mother; that's who!</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>The multitude</td>
|
||||
<td>Behold his mother! Behold his mother!</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
a="Character,Speech
|
||||
The multitude,The messiah! Show us the messiah!
|
||||
Brians mother,<angry>Now you listen here! He's not the messiah;he's a very naughty boy! Now go away!</angry>
|
||||
The multitude,Who are you?
|
||||
Brians mother,I'm his mother;that's who!
|
||||
The multitude,Behold his mother! Behold his mother!";
|
||||
(*Naive*)
|
||||
StringJoin["<table>\n",Map[StringJoin["<tr><td>",#,"</td></tr>\n"]&,
|
||||
StringSplit[StringReplace[a,{","->"</td><td>","<"->"<",">"->">"}],"\n"]]
|
||||
,"</table>"]
|
||||
(*Extra*)
|
||||
StringJoin["<table>\n",StringJoin["<tr><th>",#,"</th></tr>\n"]&[
|
||||
StringSplit[StringReplace[a,{","->"</td><td>","<"->"<",">"->">"}],"\n"]//First]
|
||||
,Map[StringJoin["<tr><td>",#,"</td></tr>\n"]&,
|
||||
StringSplit[StringReplace[a,{","->"</td><td>","<"->"<",">"->">"}],"\n"]//Rest]
|
||||
,"</table>"]
|
||||
|
||||
Output:
|
||||
|
||||
<table>
|
||||
<tr><td>Character</td><td>Speech</td></tr>
|
||||
<tr><td>The multitude</td><td>The messiah! Show us the messiah!</td></tr>
|
||||
<tr><td>Brians mother</td><td><angry>Now you listen here! He's not the messiah;he's a very naughty boy! Now go away!</angry></td></tr>
|
||||
<tr><td>The multitude</td><td>Who are you?</td></tr>
|
||||
<tr><td>Brians mother</td><td>I'm his mother;that's who!</td></tr>
|
||||
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr><th>Character</td><td>Speech</th></tr>
|
||||
<tr><td>The multitude</td><td>The messiah! Show us the messiah!</td></tr>
|
||||
<tr><td>Brians mother</td><td><angry>Now you listen here! He's not the messiah;he's a very naughty boy! Now go away!</angry></td></tr>
|
||||
<tr><td>The multitude</td><td>Who are you?</td></tr>
|
||||
<tr><td>Brians mother</td><td>I'm his mother;that's who!</td></tr>
|
||||
<tr><td>The multitude</td><td>Behold his mother! Behold his mother!</td></tr>
|
||||
</table>
|
||||
Loading…
Add table
Add a link
Reference in a new issue