Note to Future Family History Maintainers

Design Choice

To optimize this set of data for a single place to update family history information, the solution I designed is to use a plain text format called AsciiDoc.

I have been in situations where I have had to update multiple places with changes and this can quickly get out of control. Family history is too important to let mistakes creep in because I forgot to update the book after updating the website. This solution allows me to update one place and the change propagates to all forms of published content from that source.

This choice allows me to use free tools.

For more details, see the book, Making eBooks - How To Make and Publish your Books With Free Tools, by Michael Lynnmore at amazon.

Of course, a future maintainer may choose an entirely different path.

If I can’t find a descendant interested in maintaining this data, then I may stop when I pass from mortality.

Website

I use a free tool to create the website, called Hugo. It is a static site generator that allows me to build and rebuild the site easily using the format of Text that I chose to use, called AsciiDoc.

Images

I used mostly png files for images.

I edit images in a free rastor editor called gimp.

Text

With this plain text format, which should be able to last decades without going bad, I have chosen to apply asciidoctor conditional publishing to produce both the book and website from the same data source.

So if you want to maintain this data, you need to learn the following:

  • How to use plain text in any text editor of your choice. Not, Microsoft Word, but a plain text editor. Free example tools are Notepad++ and Atom.

Book

For both print and ebook options, I am using asciidoctor.

For print, I use asciidoctor-pdf. It is a small piece of code written in Ruby and can be easily added using gem install asciidoctor-pdf after you have installed the Ruby programming language on your machine.

Note
Although the tool is written in Ruby, I am not writing Ruby code. I am just using the tool. -+*

Conventions I Have Opted to Use

  • Made the content a website first and then make the book from the website as source data.

    • In addition to the normal Hugo static site generator header information inside the --- characters, I added the asciidoctor attribute :website: to every web page source. It does not render for users, but you will see it as the maintainer. This attribute triggers all instances of conditional content started by ifdef::website[] and ended with endif::website[].

      Caution
      If you remove the attribute :website:, you will break the website.
    • In addition to the normal Hugo static site generator header information inside the --- characters, I added the asciidoctor attribute :book: to content that the book needs that Hugo does not need. This attribute does not render for users, but you will see it as the maintainer. This attribute triggers all instances of conditional content started by ifdef::book[] and ended with endif::book[].

      Caution
      If you remove the attribute :book: from the main book file OurLanhamFamilyBook_PullingWebsiteContent.adoc, you will break the print book and ebook.
    • TBD

comments powered by Disqus