Dejian blog, automated generate from CI