Anonymous user
Rosetta Code/Fix code tags: Difference between revisions
m
Fixed lang tags.
(Added R code) |
m (Fixed lang tags.) |
||
Line 12:
<pre>cat wikisource.txt | ./convert.py > converted.txt</pre>
=={{header|AutoHotkey}}==
<lang AutoHotkey>; usage: > fixtags.ahk input.txt ouput.txt
FileRead, text, %1%
langs = ada,awk,autohotkey,etc
Line 22 ⟶ 21:
tag1 = <%A_LoopField%>
tag2 = </%A_LoopField%>
text := RegExReplace(text, tag1, "<lang
text := RegExReplace(text, tag2, slang)
text := RegExReplace(text, "<code (.+?)>(.*?)</code>"
, "<lang
}
FileAppend, % text, %2%</lang>
=={{header|Perl}}==
<lang perl>my @langs = qw(ada cpp-qt pascal lscript z80 visualprolog▼
▲my @langs = qw(ada cpp-qt pascal lscript z80 visualprolog
html4strict cil objc asm progress teraterm hq9plus genero tsql
email pic16 tcl apt_sources io apache vhdl avisynth winbatch
Line 51 ⟶ 48:
my $slang="/lang";
for (@langs) {
$text =~ s|<$_>|<lang
$text =~ s|</$_>|<$slang>|g;
}
$text =~ s|<code (.+?)>(.*?)</code>|<lang
print $text;</lang>
=={{header|Python}}==
<lang python># coding: utf-8
import sys
Line 92 ⟶ 87:
for i in langs:
text = text.replace("<%s>" % i,"<lang
text = text.replace("</%s>" % i, "<%s>" % slang)
text = re.sub("(?s)<code (.+?)>(.*?)</code>", r"<lang
sys.stdout.write(text)</lang>
=={{header|R}}==
Note that the instances of ##### are to stop the wiki getting confused. Please remove them before running the code.
<lang R>fixtags <- function(page)
{
langs <- c("c", "c-sharp", "r") # a complete list is required, obviously
langs <- paste(langs, collapse="|")
page <- gsub(paste("<(", langs, ")>", sep=""), "<lang
page <- gsub(paste("</(", langs, ")>", sep=""), "</#####lang>", page)
page <- gsub(paste("<code(", langs, ")>", sep=""), "<lang
page <- gsub(paste("</code>", sep=""), "</#####lang>", page)
page
Line 116 ⟶ 109:
page <- "lorem ipsum <c>some c code</c>dolor sit amet,<c-sharp>some c-sharp code</c-sharp>
consectetur adipisicing elit,<code r>some r code</code>sed do eiusmod tempor incididunt"
fixtags(page)</lang>
=={{header|Ruby}}==
Line 127 ⟶ 119:
langs = %w(foo bar baz) # actual list of languages declared here
for lang in langs
text.gsub!(Regexp.new("<(#{lang})>")) {"<lang
text.gsub!(Regexp.new("</#{lang}>"), "<#{slash_lang}>")
end
text.gsub!(/<code (.*?)>/, '<lang
text.gsub!(/<\/code>/, "<#{slash_lang}>")
print text
Line 140 ⟶ 132:
altera electram. Tota adhuc altera te sea, <code bar>soluta appetere ut mel</bar>.
Quo quis graecis vivendo te, <baz>posse nullam lobortis ex usu</code>. Eam volumus perpetua
constituto id, mea an omittam fierent vituperatoribus.
<pre>Lorem ipsum
atomorum inciderint usu.
ius ex tale civibus omittam. <barf>Vix ut doctus cetero invenire</barf>, his eu
altera electram. Tota adhuc altera te sea,
Quo quis graecis vivendo te,
constituto id, mea an omittam fierent vituperatoribus. </pre>
Line 166 ⟶ 158:
set slang /lang
foreach lang $langs {
set text [regsub -all "<$lang>" $text "<lang
set text [regsub -all "</$lang>" $text "<$slang>"]
}
set text [regsub -all "<code (.+?)>(.+?)</code>" $text "<lang
Alternatively, for foreach loop may be replaced with:
<lang tcl>set text [regexp -all "<([join $langs |])>" $text {<lang
set text [regexp -all "</(?:[join $langs |])>" $text "<$slang>"]</lang>
|