Configuring a Standalone Blog

The Gigatrees website is built as a standalone blog (The <GedcomFile> was left blank). When building a standalone blog, the pages are saved at the root folder, no subfolders are used, with the exception of the plugins folder of course, but you can relocate the plugins folder anywhere on your server, so that doesn't really count. The website is divided up into the Gigatrees documentation and the Gigatrees blog. The documentation pages, like the blog pages, use the <BlogPosts> option to create the pages, but unlike the blog pages, they are excluded from appearing in the blog. To accomplish this, every documentation page includes the following settings.

  <BlogPost>
    ...
    <Author>                        </Author>
    <SkipFeed>                 true </SkipFeed>
    <ExcludeFromBlog>          true </ExcludeFromBlog>
    <ExcludeFromRelatedPosts>  true </ExcludeFromRelatedPosts>
    <HideRelatedPosts>         true </HideRelatedPosts>
    <HidePageBanner>           true </HidePageBanner>
    <StyleOverrides><![CDATA[ 
      <style>
        #footer, .gt-article-meta {display:none;}
      </style>
    ]]></Overrides>
    ...
  </BlogPost>

Note in the above settings, the author was left blank. This is will prevent an author card, when defined, from appearing at the bottom of the page. The style overrides hide the page metadata (date, time, author, category and hashtags) and the last updated banner which appears in the footer.

To setup the website, several necessary changes were made. The setup is shown below, but briefly, starting with the default configuration file ( user.xml ) included in the distribution, I loaded my plugins, which should always be loaded first. These include the gigatrees plugin and theme.b. I then added some shortcuts up front for ease in setting up the website and database, and overrode the avatar link in the default header plugin to point to my blog author page. I then made sure no GEDCOM file was defined and then set the website domain using the shortcut defined. This should always be the root domain. If I was going to install my website into a subfolder of that domain, I would have defined the root path to include the subfolder, but I did not do that here. Next, I setup the site data and then hand crafted my own sidebar menu using embedded references when possible. Lastly, I enabled the database, renamed the blog title, loaded the sample images and added an author card for moi. Here it is.

, but I added the mobile grid plugin to display option tables on the website and the dynamic font size plugin to make the blog more mobile friendly.

  <Plugins>
    <Plugin> plugins\gigatrees </Plugin>
    <Plugin> plugins\theme.b   </Plugin>
  </Plugins>
  
  <Placeholders>
    <Placeholder> <Name> $SERVER$      </Name> <Content> [Super Secret Server Path]  </Content> </Placeholder>
    <Placeholder> <Name> $DOMAIN$      </Name> <Content> https://gigatrees.com       </Content> </Placeholder>
    <Placeholder> <Name> $SITE$        </Name> <Content> gigatrees                   </Content> </Placeholder>
    <Placeholder> <Name> $DATABASE$    </Name> <Content> $SITE$.db                   </Content> </Placeholder>
	
    <Placeholder> <Name> $AVATAR_LINK$ </Name> <Content> <![CDATA[ %RootPath%author-tim-forsythe%Extension% ]]> </Content> </Placeholder>  
  </Placeholders>
  
  <Main>
    <GedcomFile>  </GedcomFile>
  </Main>
  
  <Setup>
    <Domain>          $DOMAIN$                         </Domain>
    <RootPath>                                         </RootPath>
    <SiteTitle>       %AppName%                        </SiteTitle>
    <SiteOwner>       Tim Forsythe                     </SiteOwner>
    <SiteDescription> ...                              </SiteDescription>
    <SiteBanner>      https://i.imgur.com/leCooYk.jpg  </SiteBanner>
    <SiteAvatar>      https://i.imgur.com/AeHsfl4s.png </SiteAvatar>
    <Favicon>         %PluginsURL%gigatrees/imgs/favicon.png  </Favicon>
    <DropHeader><![CDATA[ <link href="%PluginsURL%gigatrees/flexible.grid.css" rel="stylesheet" /> ]]^</DropHeader>
    <DropHeader><![CDATA[ <link href="%PluginsURL%gigatrees/dynamic.font.size.css" rel="stylesheet" /> ]]^</DropHeader>	
  
    <DropMenu> <![CDATA[ 
      <li class="push-menu-brand"> <a href="%HomePage%"> %AppName% </a> </li>

      <li><url>%BlogPage%<:><span>Blog</span></url></li>
      <li><url>%RootPath%index-list%Extension%<:><span>List of Articles</span></url></li>
      <li>{ref:index@<span>Overview</span>}</li>
      <li>{ref:policies@<span>Usage Policies</span>}</li>
      <li>{ref:start@<span>Quick Start Guide</span>}</li>
      <li>{ref:downloads@<span>Downloads</span>}</li> 
      
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span>Configuration</span><span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span></a>
        <ul class="dropdown-menu" role="menu">
        <li>{ref:main}</li>
        <li>{ref:setup}</li>
        <li>{ref:security}</li>
        <li>{ref:pages}</li>
        <li>{ref:profile}</li>
        <li>{ref:alists}</li>
        <li>{ref:dlists}</li>
        <li>{ref:census}</li>
        <li>{ref:validation}</li>
        <li>{ref:sources}</li>
        <li>{ref:dna}</li>
        <li>{ref:database}</li>
        <li>{ref:plugins}</li>
        <li>{ref:menu}</li>
        <li>{ref:translation}</li>
        <li>{ref:placeholders}</li>
        <li>{ref:locations}</li>
        <li>{ref:blogsetup}</li>
        <li>{ref:posts}</li>
        <li>{ref:media}</li>
        <li>{ref:gallery}</li>
        <li>{ref:gedcom}</li>
        <li>{ref:misc}</li>
        </ul>
      </li>
			
    ]]></DropMenu>
  
  </Setup>
  
  <Database>
    <EnableServerDatabase> true          </EnableServerDatabase>
    <LocalDatabasePath>    %OutputPath%  </LocalDatabasePath>
    <ServerDatabasePath>   $SERVER$      </ServerDatabasePath> 
    <ServerDatabaseName>   $DATABASE$    </ServerDatabaseName>
  </Database>

  <Translations>
    <Translate> <English> Posts </English> <Display> Gigatrees Blog </Display> </Translate>
  </Translations>
  
  <Media>
    <Image>
      <Id>SI1</Id> 
      <Large>https://i.imgur.com/6Rxs6eO.png</Large>
      <Small>https://i.imgur.com/6Rxs6eOb.png</Small>
      <Title>Index</Title>
    </Image>
    ... more loaded ...
  </Media>
  
  <Blog>
    <Author>
      <Name>Tim Forsythe</Name>
      <Avatar>https://i.imgur.com/AeHsfl4s.png</Avatar>
      <Description><![CDATA[ 
        ...
      ]]></Description>
      <ContactInfo><![CDATA[ ]]></ContactInfo>
    </Author>
  </Blog>   


The last point to make is that this website has a landing page created by setting a blog post filename to index.

  <BlogPost>
    <Id> landing </Id>
    <Filename> index </Filename>
    ...
  </BlogPost>

By doing this the blog index page gets renamed automatically to blog. Hence the need in the menu to use %BlogPage% to access the blog.

So there you have it. These instructions should get you started in building a standalone website/blog.

Comments