func NewSource(all *model.MetaAll) *Source {
	s := &Source{
		Meta:      all.Meta,
		Nav:       all.NavGroup,
		Owner:     all.AuthorGroup[0],
		Comment:   all.Comment,
		Analytics: all.Analytics,
		Authors:   make(map[string]*model.Author),
		Build:     all.Build,
	}
	for _, a := range all.AuthorGroup {
		s.Authors[a.Name] = a
	}
	return s
}
NewSource return new *Source from *MetaAll,
it returns general *Source object without posts and pages,
but meta, navigation, authors,comment and analytics are loaded.
package builder
import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"sort"
	"strings"
	"github.com/Unknwon/com"
	"github.com/go-xiaohei/pugo/app/helper"
	"github.com/go-xiaohei/pugo/app/model"
	"gopkg.in/inconshreveable/log15.v2"
)
var (
	errMetaFileMissing = fmt.Errorf("meta file is missing")
)
type (
	Source struct {
		Meta      *model.Meta
		Nav       model.NavGroup
		Owner     *model.Author
		Authors   map[string]*model.Author
		Comment   *model.Comment
		Analytics *model.Analytics
		Build     *model.Build
		I18n      map[string]*helper.I18n
		Posts      model.Posts
		PagePosts  map[int]*model.PagerPosts
		IndexPosts model.PagerPosts  
		PostPage   int
		Archive    model.Archives
		Pages      model.Pages
		Tags       map[string]*model.Tag
		TagPosts   map[string]*model.TagPosts
	}
)