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
; 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 " . A_LoopField . "autohotkey>")
text := RegExReplace(text, tag2, slang)
text := RegExReplace(text, "<code (.+?)>(.*?)</code>"
, "<lang $1autohotkey>$2" . slang)
}
FileAppend, % text, %2%</lang>
</lang>
 
=={{header|Perl}}==
<lang perl>my @langs = qw(ada cpp-qt pascal lscript z80 visualprolog
<lang perl>
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 $_perl>|g;
$text =~ s|</$_>|<$slang>|g;
}
 
$text =~ s|<code (.+?)>(.*?)</code>|<lang $1perl>$2<$slang>|sg;
 
print $text;</lang>
</lang>
 
=={{header|Python}}==
 
<lang python># coding: utf-8
# coding: utf-8
 
import sys
Line 92 ⟶ 87:
 
for i in langs:
text = text.replace("<%s>" % i,"<lang %spython>" % i)
text = text.replace("</%s>" % i, "<%s>" % slang)
 
text = re.sub("(?s)<code (.+?)>(.*?)</code>", r"<lang \1python>\2<%s>" % slang, text)
 
sys.stdout.write(text)</lang>
</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)
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 \\1r>", page)
page <- gsub(paste("</(", langs, ")>", sep=""), "</#####lang>", page)
page <- gsub(paste("<code(", langs, ")>", sep=""), "<lang \\1r>", page)
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>
</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 #$1ruby>"}
text.gsub!(Regexp.new("</#{lang}>"), "<#{slash_lang}>")
end
text.gsub!(/<code (.*?)>/, '<lang \1ruby>')
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. </lang>
 
<pre>Lorem ipsum <lang fooruby>saepe audire</lang> elaboraret ne quo, id equidem
atomorum inciderint usu. <lang fooruby>In sit inermis deleniti percipit</lang>,
ius ex tale civibus omittam. <barf>Vix ut doctus cetero invenire</barf>, his eu
altera electram. Tota adhuc altera te sea, <lang barruby>soluta appetere ut mel</lang>.
Quo quis graecis vivendo te, <lang bazruby>posse nullam lobortis ex usu</lang>. Eam volumus perpetua
constituto id, mea an omittam fierent vituperatoribus. </pre>
 
Line 166 ⟶ 158:
set slang /lang
foreach lang $langs {
set text [regsub -all "<$lang>" $text "<lang $langtcl>"]
set text [regsub -all "</$lang>" $text "<$slang>"]
}
set text [regsub -all "<code (.+?)>(.+?)</code>" $text "<lang \\1tcl>\\2<$slang>"]</lang>
Alternatively, for foreach loop may be replaced with:
<lang tcl>set text [regexp -all "<([join $langs |])>" $text {<lang \1tcl>}]
set text [regexp -all "</(?:[join $langs |])>" $text "<$slang>"]</lang>
Anonymous user