Ruby Einzeiler für String.to_media_wiki

ary=[]; File.read('/path/to/file').each_byte{|x| ary << (x == 10 ? "\n" : '&#'+x.to_s+';')}; ary.each_index{|i| ary[i] = ' ' if ary[i] == "&#32;" };puts ary.join('')

Muss man diesen Einzeiler noch kommentieren? ;)

Mediawiki interpretiert bestimmte Zeichen, z.b. ” und macht folgenden Text in der Zeile kursiv. Um dies zu vermeiden kann man die Zeichen als ASCII Notation angeben. Normalen Text mit ASCII zu mischen ist aber recht unhübsch weshalb es sich anbietet gleich die ganze Wikiseite in ASCII zu speichern. Der Einzeiler liest eine Datei ein und gibt ihn in ASCII formatiert aus. Mediawiki ignoriert Steuerreichen (z.B. \n) in ASCII Notation weshalb wir den ASCII-Test entsprechend formatiert ausgeben. Ein Beispiel:
#!/usr/bin/env ruby

require 'ipaddr'
(Um den ASCII Code zu sehen bitte den Quellcode der Seite lesen ;))

Verbesserung eines Arbeitskollegen:

ary=[]; File.read('/path/to/file').each_byte{|x| ary << (x == 10 ? "\n" : '&#'+x.to_s+';'); ary[-1].gsub!("&#32;"," ");};puts ary.join('')
This entry was posted in General, Nerd Stuff. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.