Rubyists Blog Feed Links
Rubyistsのブログのフィードを集めるページです。自分のものでも他の人のものでも構いませんので、Rubyistが書いているブログのフィードをリストに追加していってください。フィードのURLがわからなければブログ自体のURLでも大丈夫です。
フォーマットはすでにあるものを参考にしてください。ブログの著者については表記は自由(名前でもIDでも可)です。
【日本語】
【英語】
【成果物(OPML)】
【コード】
code:json
{"@okuramasafumi":{"name":"okuramasafumi","email":null,"title":"okuramasafumiのブログ","updated":"2023-12-31T22:20:40+09:00","feed_type":"atom","html_link":"https://okuramasafumi.hatenablog.jp/","url":"https://okuramasafumi.hatenablog.jp/feed"},"フサギコ":{"title":"このIP網の片隅で","updated":null,"feed_type":"rss","html_link":"https://fusagiko.hatenablog.jp/","name":"フサギコ","url":"https://fusagiko.hatenablog.jp/rss"},"koic":{"title":"koicの日記","updated":null,"feed_type":"rss","html_link":"https://koic.hatenablog.com/","name":"koic","url":"https://koic.hatenablog.com/rss"},"sinsoku":{"title":"アジャイルSEの憂鬱","updated":null,"feed_type":"rss","html_link":"https://sinsoku.hatenablog.com/","name":"sinsoku","url":"https://sinsoku.hatenablog.com/rss"},"chiastolite":{"title":"chiastolite’s blog","updated":null,"feed_type":"rss","html_link":"https://chiastolite.hatenablog.com/","name":"chiastolite","url":"https://chiastolite.hatenablog.com/rss"},"sue445":{"title":"くりにっき","updated":null,"feed_type":"rss","html_link":"https://sue445.hatenablog.com/","name":"sue445","url":"https://sue445.hatenablog.com/rss"},"pocke":{"title":"pockestrap","updated":null,"feed_type":"rss","html_link":"https://pocke.hatenablog.com/","name":"pocke","url":"https://pocke.hatenablog.com/rss"},"willnet":{"title":"おもしろwebサービス開発日記","updated":null,"feed_type":"rss","html_link":"https://blog.willnet.in/","name":"willnet","url":"https://blog.willnet.in/rss"},"mametter":{"title":"まめめも","updated":null,"feed_type":"rss","html_link":"https://mametter.hatenablog.com/","name":"mametter","url":"https://mametter.hatenablog.com/rss"},"osyo":{"title":"Secret Garden(Instrumental)","updated":null,"feed_type":"rss","html_link":"https://secret-garden.hatenablog.com/","name":"osyo","url":"https://secret-garden.hatenablog.com/rss"},"tmtms":{"title":"tmtms のメモ","updated":null,"feed_type":"rss","html_link":"https://blog.tmtms.net/","name":"tmtms","url":"https://blog.tmtms.net/rss"},"znz":{"title":"@znz blog","updated":null,"feed_type":"rss","html_link":"https://blog.n-z.jp/","name":"znz","url":"https://blog.n-z.jp/feed.xml"},"ima1zumi":{"title":"Eggshell","updated":null,"feed_type":"rss","html_link":"https://imaizumimr.hatenablog.com/","name":"ima1zumi","url":"https://imaizumimr.hatenablog.com/rss"},"k0kubun":{"title":"k0kubun's blog","updated":null,"feed_type":"rss","html_link":"https://k0kubun.hatenablog.com/","name":"k0kubun","url":"https://k0kubun.hatenablog.com/rss"},"S.H.":{"title":"ゲームリンクスの徒然なる日常","updated":null,"feed_type":"rss","html_link":"https://gamelinks007.hatenablog.com/","name":"S.H.","url":"https://gamelinks007.hatenablog.com/rss"},"sugamasao":{"title":"すがブロ","updated":null,"feed_type":"rss","html_link":"https://sugamasao.hatenablog.com/","name":"sugamasao","url":"https://sugamasao.hatenablog.com/rss"},"onk":{"title":"id:onk のはてなブログ","updated":null,"feed_type":"rss","html_link":"https://onk.hatenablog.jp/","name":"onk","url":"https://onk.hatenablog.jp/rss"},"y-yagi":{"title":"なるようになるブログ","updated":null,"feed_type":"rss","html_link":"https://y-yagi.hatenablog.com/","name":"y-yagi","url":"https://y-yagi.hatenablog.com/rss"},"nagachika":{"title":"ruby trunk changes","updated":null,"feed_type":"rss","html_link":"https://ruby-trunk-changes.hatenablog.com/","name":"nagachika","url":"https://ruby-trunk-changes.hatenablog.com/rss"},"ydah":{"title":"I Would Prefer Not To.","updated":null,"feed_type":"rss","html_link":"https://ydah.hatenablog.com/","name":"ydah","url":"https://ydah.hatenablog.com/rss"},"joker1007":{"title":"joker1007’s diary","updated":null,"feed_type":"rss","html_link":"https://joker1007.hatenablog.com/","name":"joker1007","url":"https://joker1007.hatenablog.com/rss"},"jnchito":{"title":"give IT a try","updated":null,"feed_type":"rss","html_link":"https://blog.jnito.com/","name":"jnchito","url":"https://blog.jnito.com/rss"},"ledsun":{"title":"@ledsun blog","updated":null,"feed_type":"rss","html_link":"https://ledsun.hatenablog.com/","name":"ledsun","url":"https://ledsun.hatenablog.com/rss"},"udzura":{"title":"ローファイ日記","updated":null,"feed_type":"rss","html_link":"https://udzura.hatenablog.jp/","name":"udzura","url":"https://udzura.hatenablog.jp/rss"},"jinroq":{"title":"虚無庵","updated":null,"feed_type":"rss","html_link":"https://jinroq.hatenablog.jp/","name":"jinroq","url":"https://jinroq.hatenablog.jp/rss"},"ohbarye":{"title":"valid,invalid","updated":null,"feed_type":"rss","html_link":"https://ohbarye.hatenablog.jp/","name":"ohbarye","url":"https://ohbarye.hatenablog.jp/rss"},"yui-knk":{"title":"かねこにっき","updated":null,"feed_type":"rss","html_link":"https://yui-knk.hatenablog.com/","name":"yui-knk","url":"https://yui-knk.hatenablog.com/rss"},"akitoshiga":{"title":"しがブログ(仮)","updated":null,"feed_type":"rss","html_link":"https://akitoshiga.hatenablog.com/","name":"akitoshiga","url":"https://akitoshiga.hatenablog.com/rss"},"coe401":{"title":"shioimm || coe401_","updated":null,"feed_type":"rss","html_link":"https://coe401.hatenablog.com/","name":"coe401","url":"https://coe401.hatenablog.com/rss"},"tompng":{"title":"tompngのブログ","updated":null,"feed_type":"rss","html_link":"https://tompng.hatenablog.com/","name":"tompng","url":"https://tompng.hatenablog.com/rss"},"yahonda":{"title":"TiDB commits","updated":null,"feed_type":"rss","html_link":"https://yahonda.hatenablog.com/","name":"yahonda","url":"https://yahonda.hatenablog.com/rss"},"fugakkbn":{"title":"No day younger than today","updated":null,"feed_type":"rss","html_link":"https://fuga-ch85.hatenablog.com/","name":"fugakkbn","url":"https://fuga-ch85.hatenablog.com/rss"},"shinkufencer":{"title":"コード日進月歩","updated":null,"feed_type":"rss","html_link":"https://shinkufencer.hateblo.jp/","name":"shinkufencer","url":"https://shinkufencer.hateblo.jp/rss"},"naitoh":{"title":"@naitohの日記","updated":null,"feed_type":"rss","html_link":"https://naitoh.hatenablog.com/","name":"naitoh","url":"https://naitoh.hatenablog.com/rss"}} code:ruby
require 'builder'
require 'json'
list = JSON.load_file('list.json')
builder = Builder::XmlMarkup.new
builder.instruct! :xml, :version=>"1.0", :encoding=>"UTF-8"
xml = builder.opml(version: '1.0') do |opml|
opml.head do |head|
head.title("This is the title")
head.dateCreated(Time.now)
head.dateModified(Time.now)
head.ownerName("OKURA Masafumi")
head.ownerEmail("okuramasafumi@gmail.com")
end
opml.body do |body|
body.outline(text: 'Rubyists Feed', title: 'Rubyists Feed') do |rubyists_feed|
list.each do |name, data|
rubyists_feed.outline(text: title, description: title, title: title, type: 'rss', xmlUrl: data'url', htmlUrl: data'html_link') end
end
end
end
File.open('rubyists-feed-opml.xml', 'w') do |f|
f.puts xml
end