improve generate article content, add publish function