修订:这是一个修订后的答案,希望这更符合您的想法。它假定您有 Unix 工具fmt
来调整行的大小。这可能会在 Ruby 中通过一些工作来实现。
msg = <<MSG_END
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nunc tincidunt libero eget justo convallis tincidunt. Curabitur
augue arcu, eleifend sit amet porttitor a, porttitor ac purus.
Vivamus non leo nulla, vel pulvinar urna. Cum sociis natoque penatibus
et magnis dis parturient montes, nascetur ridiculus mus. In at purus
risus. Maecenas imperdiet commodo turpis ullamcorper porttitor. Sed
imperdiet porta rutrum. Proin sodales lorem et dui mattis accumsan.
Etiam fermentum magna sed justo tristique commodo. Nulla at purus
in leo dignissim ultrices. Mauris tincidunt egestas nunc, sit amet
placerat mauris hendrerit at. Vestibulum at vestibulum ante.
MSG_END
cols = 60 - 9 # subtract 9 to account for the extra `<!-- ` and ` -->`
sized = `echo '#{msg}' | fmt -w #{cols}`
centered = sized.split("\n").map do |l|
"<!-- #{l.center(cols)} -->\n"
end
puts centered
回报:
<!-- Lorem ipsum dolor sit amet, consectetur adipiscing -->
<!-- elit. Nunc tincidunt libero eget justo convallis -->
<!-- tincidunt. Curabitur augue arcu, eleifend sit amet -->
<!-- porttitor a, porttitor ac purus. Vivamus non leo -->
<!-- nulla, vel pulvinar urna. Cum sociis natoque -->
<!-- penatibus et magnis dis parturient montes, nascetur -->
<!-- ridiculus mus. In at purus risus. Maecenas -->
<!-- imperdiet commodo turpis ullamcorper porttitor. Sed -->
<!-- imperdiet porta rutrum. Proin sodales lorem et dui -->
<!-- mattis accumsan. Etiam fermentum magna sed justo -->
<!-- tristique commodo. Nulla at purus in leo dignissim -->
<!-- ultrices. Mauris tincidunt egestas nunc, sit amet -->
<!-- placerat mauris hendrerit at. Vestibulum at -->
<!-- vestibulum ante. -->