Revert "cleanup and new navigation ideas"

This commit is contained in:
Tom Johnson 2016-06-10 16:00:23 -07:00 committed by GitHub
parent e48d3757be
commit 6653e1a846
124 changed files with 1627 additions and 987 deletions

View File

@ -1,4 +1,5 @@
source "https://rubygems.org" source "https://rubygems.org"
# gem "rails"
gem 'github-pages' gem 'github-pages'
gem 'jekyll' gem 'jekyll'

View File

@ -49,18 +49,6 @@ kramdown:
collections: collections:
tooltips: tooltips:
output: false output: false
my_docs:
title: Jekyll Doc Theme
version: 5.0
output: true
product1:
title: Product1
version: 1.0
output: true
product2:
title: Product2
version: 1.0
output: true
# collection declared here. this renders the content in _tooltips and processes it, but doesn't output it as actual files in the output. # collection declared here. this renders the content in _tooltips and processes it, but doesn't output it as actual files in the output.
defaults: defaults:
@ -82,36 +70,6 @@ defaults:
comments: true comments: true
search: true search: true
tooltip: true tooltip: true
-
scope:
path: ""
type: "my_docs"
values:
layout: "page"
comments: true
search: true
tooltip: true
collection: "my_docs"
-
scope:
path: ""
type: "product1"
values:
layout: "page"
comments: true
search: true
tooltip: true
collection: "product1"
-
scope:
path: ""
type: "product2"
values:
layout: "page"
comments: true
search: true
tooltip: true
collection: "product2"
- -
scope: scope:
@ -128,3 +86,4 @@ defaults:
description: "Intended as a documentation theme based on Jekyll for technical writers documenting software and other technical products, this theme has all the elements you would need to handle multiple products with both multi-level sidebar navigation, tags, and other documentation features." description: "Intended as a documentation theme based on Jekyll for technical writers documenting software and other technical products, this theme has all the elements you would need to handle multiple products with both multi-level sidebar navigation, tags, and other documentation features."
# the description is used in the feed.xml file # the description is used in the feed.xml file

View File

@ -0,0 +1,27 @@
# This is your sidebar TOC. The sidebar code loops through sections here and provides the appropriate formatting.
entries:
- title: Sidebar
levels: one
folders:
- title: Products
output: web
folderitems:
- title: Home
url: /
output: web
type: homepage
- title: News
url: /news/
output: web
- title: Theme instructions
url: /mydoc_introduction/
output: web
- title: Product 1
url: /p1_landing_page/
output: web
- title: Product 2
url: /p2_landing_page/
output: web

View File

@ -0,0 +1,279 @@
# This is your sidebar TOC. The sidebar code loops through sections here and provides the appropriate formatting.
entries:
- title: sidebar
product: Jekyll Doc Theme
version: 5.0
folders:
- title:
output: pdf
type: frontmatter
folderitems:
- title:
url: /titlepage/
output: pdf
type: frontmatter
- title:
url: /tocpage/
output: pdf
type: frontmatter
- title: Overview
output: web, pdf
folderitems:
- title: Get started
url: /
type: homepage
output: web, pdf
- title: 5.0 Release notes
url: /mydoc_release_notes_50/
output: web, pdf
- title: Sample page
url: /samplepage/
output: web, pdf
- title: Introduction
url: /mydoc_introduction/
output: web, pdf
- title: Supported features
url: /mydoc_supported_features/
output: web, pdf
- title: About the theme author
url: /mydoc_about/
output: web, pdf
- title: Support
url: /mydoc_support/
output: web, pdf
- title: Installation
output: web, pdf
folderitems:
- title: About Ruby, Gems, Bundler, etc.
url: /mydoc_about_ruby_gems_etc/
output: web, pdf
- title: Install Jekyll on Mac
url: /mydoc_install_jekyll_on_mac/
output: web, pdf
- title: Install Jekyll on Windows
url: /mydoc_install_jekyll_on_windows/
output: web, pdf
- title: Authoring
output: web, pdf
folderitems:
- title: Pages
url: /mydoc_pages/
output: web, pdf
- title: Posts
url: /mydoc_posts/
output: web, pdf
- title: WebStorm Text Editor
url: /mydoc_webstorm_text_editor/
output: web, pdf
- title: Conditional logic
url: /mydoc_conditional_logic/
output: web, pdf
- title: Content reuse
url: /mydoc_content_reuse/
output: web, pdf
- title: Collections
url: /mydoc_collections/
output: web, pdf
- title: Navigation
output: web, pdf
folderitems:
- title: Sidebar navigation
url: /mydoc_sidebar_navigation/
output: web, pdf
- title: YAML tutorial in the context of Jekyll
url: /mydoc_yaml_tutorial/
output: web, pdf
- title: Tags
url: /mydoc_tags/
output: web, pdf
- title: Series
url: /mydoc_series/
output: web, pdf
- title: Formatting
output: web, pdf
folderitems:
- title: Tooltips
url: /mydoc_adding_tooltips/
output: web, pdf
- title: Alerts
url: /mydoc_alerts/
output: web, pdf
- title: Icons
url: /mydoc_icons/
output: web, pdf
- title: Images
url: /mydoc_images/
output: web, pdf
- title: Labels
url: /mydoc_labels/
output: web, pdf
- title: Links
url: /mydoc_hyperlinks/
output: web, pdf
- title: Navtabs
url: /mydoc_navtabs/
output: web, pdf
- title: Tables
url: /mydoc_tables/
output: web, pdf
- title: Syntax highlighting
url: /mydoc_syntax_highlighting/
output: web, pdf
- title: Handling reviews
output: web, pdf
folderitems:
- title: Commenting on files
url: /mydoc_commenting_on_files/
output: web, pdf
# - title: Git collaboration
# url: /mydoc_git_collaboration/
# output: web, pdf
- title: Publishing
output: web, pdf
folderitems:
- title: Build arguments
url: /mydoc_build_arguments/
output: web, pdf
- title: Themes
url: /mydoc_themes/
output: web, pdf
- title: Check page title consistency
url: /mydoc_title_checker/
output: web, pdf
- title: Generating PDFs
url: /mydoc_generating_pdfs/
output: web, pdf
- title: Help APIs and UI tooltips
url: /mydoc_help_api/
output: web, pdf
- title: Search configuration
url: /mydoc_search_configuration/
output: web, pdf
- title: iTerm profiles
url: /mydoc_iterm_profiles/
output: web, pdf
- title: Pushing builds to server
url: /mydoc_push_build_to_server/
output: web, pdf
- title: Getting around the password prompts in SCP
url: /mydoc_no_password_prompts_scp/
output: web, pdf
- title: Publishing on Github Pages
url: /mydoc_publishing_github_pages/
output: web, pdf
- title: Special layouts
output: web, pdf
folderitems:
- title: Knowledge-base layout
url: /mydoc_kb_layout/
output: web, pdf
- title: Glossary layout
url: /mydoc_glossary/
output: web, pdf
- title: FAQ layout
url: /mydoc_faq_layout/
output: web, pdf
- title: Troubleshooting
output: web, pdf
folderitems:
- title: Troubleshooting
url: /mydoc_troubleshooting/
output: web, pdf
- title: Tag archives
output: web
folderitems:
- title: Tag archives overview
url: /mydoc_tag_archives_overview/
output: web
subfolders:
- title: Tag archive pages
output: web
subfolderitems:
- title: Formatting pages
url: /tag_formatting/
output: web
- title: Navigation pages
url: /tag_navigation/
output: web
- title: Content types pages
url: /tag_content_types/
output: web
- title: Publishing pages
url: /tag_publishing/
output: web
- title: Special layout pages
url: /tag_special_layouts/
output: web
- title: Collaboration pages
url: /tag_collaboration/
output: web
- title: Troubleshooting pages
url: /tag_troubleshooting/
output: web

View File

@ -0,0 +1,60 @@
# This is your sidebar TOC. The sidebar code loops through sections here and provides the appropriate formatting.
entries:
- title: Sidebar
product: Product1
version: 1.0
folders:
- title:
output: pdf
type: frontmatter
folderitems:
- title:
url: /titlepage/
output: pdf
type: frontmatter
- title:
url: /tocpage/
output: pdf
type: frontmatter
- title: Getting Started
output: web, pdf
folderitems:
- title: Product 1 home
url: /p1_landing_page/
output: web
- title: Sample 1
url: /p1_sample1/
output: web, pdf
- title: Sample 2
url: /p1_sample2/
output: web, pdf
- title: Sample 3
url: /p1_sample3/
output: web, pdf
- title: Another heading
output: web, pdf
folderitems:
- title: Sample 4
url: /p1_sample4/
output: web, pdf
- title: Sample 5
url: /p1_sample5/
output: web, pdf
- title: Sample 6
url: /p1_sample6/
output: web, pdf
- title: Sample 7
url: /p1_sample7/
output: web, pdf

View File

@ -0,0 +1,93 @@
# This is your sidebar TOC. The sidebar code loops through sections here and provides the appropriate formatting.
entries:
- title: Product2
product: Product2
version: 1.0
folders:
- title:
output: pdf
type: frontmatter
folderitems:
- title:
url: /titlepage/
output: pdf
type: frontmatter
- title:
url: /tocpage/
output: pdf
type: frontmatter
- title: Introduction
output: web, pdf
folderitems:
- title: Overview
url: /p2_landing_page/
output: web
- title: Simple Workflow
output: web, pdf
folderitems:
- title: Sample 1
url: /p2_sample1/
output: web, pdf
- title: Sample 2
url: /p2_sample2/
output: web, pdf
- title: Sample 3
url: /p2_sample3/
output: web, pdf
- title: Sample 4
url: /p2_sample4/
output: web, pdf
- title: Sample 5
url: /p2_sample5/
output: web, pdf
- title: Complex Workflow
output: web, pdf
folderitems:
- title: Sample 6
url: /p2_sample6/
output: web, pdf
- title: Sample 7
url: /p2_sample7/
output: web, pdf
- title: Sample 8
url: /p2_sample8/
output: web, pdf
- title: Sample 9
url: /p2_sample9/
output: web, pdf
- title: Sample 10
url: /p2_sample10/
output: web, pdf
- title: Sample 11
url: /p2_sample11/
output: web, pdf
- title: Sample 12
url: /p2_sample12/
output: web, pdf
- title: Sample 13
url: /p2_sample13/
output: web, pdf
- title: Sample 14
url: /p2_sample14/
output: web, pdf

View File

@ -0,0 +1,54 @@
entries:
- title: Tags Sidebar
product: Tags
version: all products
levels: one
output: web
folders:
- title: News
output: web
folderitems:
- title: News
url: /news/
output: web
- title: News archive
url: /news_archive/
output: web
- title: Tags
output: web
folderitems:
- title: Collaboration
url: /tag_collaboration/
output: web
- title: Content Types
url: /tag_content_types/
output: web
- title: Formatting
url: /tag_formatting/
output: web
- title: Getting started
url: /tag_getting_started/
output: web
- title: Mobile
url: /tag_mobile/
output: web
- title: Navigation
url: /tag_navigation/
output: web
- title: News
url: /tag_news/
output: web
- title: Publishing
url: /tag_publishing/
output: web
- title: Single sourcing
url: /tag_single_sourcing/
output: web
- title: Special layouts
url: /tag_special_layouts/
output: web
- title: Troubleshooting
url: /tag_troubleshooting/
output: web

View File

@ -1,18 +0,0 @@
my_docs:
- Overview
- Installation
- Authoring
- Navigation
- Formatting
- Handling reviews
- Publishing
- Special layouts
- Troubleshooting
- Tag archives
product1:
- Getting Started
- Another heading
product2:
- Introduction
- Simple Workflow
- Complex Workflow

View File

@ -1,24 +1,35 @@
## Topnav single links ## Topnav single links
## if you want to list an external url, use external_url instead of url. the theme will apply a different link base. ## if you want to list an external url, use external_url instead of url. the theme will apply a different link base.
- title: News topnav:
url: /news/ - title: Topnav
- title: Jekyll Resources items:
sub_items: - title: News
- title: Github Repo url: /news/
external_url: https://github.com/tomjohnson1492/documentation-theme-jekyll
- title: Jekyll Talk #Topnav dropdowns
external_url: https://talk.jekyllrb.com topnav_dropdowns:
- title: Jekyll documentation - title: Topnav dropdowns
external_url: http://jekyllrb.com/docs/home/ folders:
- title: Jekyll on Stack Overflow - title: Jekyll Resources
external_url: http://stackoverflow.com/questions/tagged/jekyll folderitems:
- title: Jekyll on my blog - title: Github Repo
external_url: http://idratherbewriting.com/category-jekyll/ external_url: https://github.com/tomjohnson1492/documentation-theme-jekyll
- title: Products - title: Jekyll Talk
sub_items: external_url: https://talk.jekyllrb.com
- title: Jekyll Documentation Theme - title: Jekyll documentation
url: /mydoc_introduction/ external_url: http://jekyllrb.com/docs/home/
- title: Product 1 - title: Jekyll on Stack Overflow
url: /p1_landing_page/ external_url: http://stackoverflow.com/questions/tagged/jekyll
- title: Product 2 - title: Jekyll on my blog
url: /p2_landing_page/ external_url: http://idratherbewriting.com/category-jekyll/
- title: Products
folderitems:
- title: Jekyll Documentation Theme
url: /mydoc_introduction/
- title: Product 1
url: /p1_landing_page/
- title: Product 2
url: /p2_landing_page/

View File

@ -1 +1 @@
<div markdown="span" class="bs-callout bs-callout-{{ include.type }}">{{ include.content }}</div> <div markdown="span" class="bs-callout bs-callout-{{include.type}}">{{include.content}}</div>

View File

@ -1,17 +1,23 @@
{% case page.sidebar %} {% if page.sidebar == "home_sidebar" %}
{% when "home_sidebar" %} {% assign sidebar = site.data.sidebars.home_sidebar.entries %}
{% assign sidebar = site.data.sidebars.home_sidebar.entries %}
{% when "product1_sidebar" %} {% elsif page.sidebar == "product1_sidebar" %}
{% assign sidebar = site.data.sidebars.product1_sidebar.entries %} {% assign sidebar = site.data.sidebars.product1_sidebar.entries %}
{% when "product2_sidebar" %}
{% assign sidebar = site.data.sidebars.product2_sidebar.entries %} {% elsif page.sidebar == "product2_sidebar" %}
{% when "mydoc_sidebar" %} {% assign sidebar = site.data.sidebars.product2_sidebar.entries %}
{% assign sidebar = site.data.sidebars.mydoc_sidebar.entries %}
{% when "tags_sidebar" %} {% elsif page.sidebar == "mydoc_sidebar" %}
{% assign sidebar = site.data.sidebars.tags_sidebar.entries %} {% assign sidebar = site.data.sidebars.mydoc_sidebar.entries %}
{% else %}
{% assign sidebar = site.data.sidebars.home_sidebar.entries %} {% elsif page.sidebar == "tags_sidebar" %}
{% endcase %} {% assign sidebar = site.data.sidebars.tags_sidebar.entries %}
{% else %}
{% assign sidebar = site.data.sidebars.home_sidebar.entries %}
{% endif %}
{% comment %} {% comment %}
sidebar configuration for print files sidebar configuration for print files

View File

@ -1,15 +1,16 @@
{% if site.disqus_shortname %} {% if site.disqus_shortname %}
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = '{{ site.disqus_shortname }}'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */ <div id="disqus_thread"></div>
(function() { <script type="text/javascript">
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; var disqus_shortname = '{{site.disqus_shortname}}'; // required: replace example with your forum shortname
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})(); /* * * DON'T EDIT BELOW THIS LINE * * */
</script> (function() {
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
{% endif %} dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
{% endif %}

View File

@ -1,11 +1,11 @@
<!-- Send feedback function --> <!-- Send feedback function -->
<script> <script>
function SendLinkByMail(href) { function SendLinkByMail(href) {
var subject= "{{ site.site_title }} feedback"; var subject= "{{site.site_title}} feedback";
var body = "I have some feedback about the {{ page.title }} page: "; var body = "I have some feedback about the {{page.title}} page: ";
body += window.location.href; body += window.location.href;
body += ""; body += "";
var uri = "mailto:{{ site.feedback_email }}?subject="; var uri = "mailto:{{site.feedback_email}}?subject=";
uri += encodeURIComponent(subject); uri += encodeURIComponent(subject);
uri += "&body="; uri += "&body=";
uri += encodeURIComponent(body); uri += encodeURIComponent(body);
@ -13,4 +13,4 @@ window.location.href = uri;
} }
</script> </script>
<li><a href="{% if site.feedback_link %}{{ site.feedback_link }}{% else %}javascript:(function()%7BSendLinkByMail()%3B%7D)()%3B{% endif %}" target="_blank">{% if site.feedback_link == null %}<i class="fa fa-envelope-o"></i>{% endif %} {% if site.feedback_text %}{{ site.feedback_text }}{% else %}Feedback{% endif %}</a></li> <li><a href="{% if site.feedback_link %}{{site.feedback_link}}{% else %}javascript:(function()%7BSendLinkByMail()%3B%7D)()%3B{% endif %}" target="_blank">{% if site.feedback_link == null %}<i class="fa fa-envelope-o"></i>{% endif %} {% if site.feedback_text %}{{site.feedback_text}}{% else %}Feedback{% endif %}</a></li>

View File

@ -1,16 +1,9 @@
<footer> <footer>
<div class="row"> <div class="row">
<div class="col-lg-12 footer"> <div class="col-lg-12 footer">
<p> &copy;{{ site.time | date: "%Y" }} {{site.company_name}}. All rights reserved. <br />
&copy;{{ site.time | date: "%Y" }} {{ site.company_name }}. All rights reserved. <br /> {% if page.last_updated %}<p>Page last updated:</span> {{page.last_updated}}<br/>{% endif %} Site last generated: {{ site.time | date: "%b %-d, %Y" }} <br />
{% if page.last_updated %} <p><img src="{{ "/images/company_logo.png" | prepend: site.baseurl }}" alt="Company logo"/></p>
Page last updated: {{ page.last_updated }}<br/> </div>
{% endif %} </div>
Site last generated: {{ site.time | date: "%b %-d, %Y" }} </footer>
</p>
<p>
<img src="{{ "/images/company_logo.png" | prepend: site.baseurl }}" alt="Company logo"/>
</p>
</div>
</div>
</footer>

View File

@ -1,5 +1,6 @@
<!-- the google_analytics_id gets auto inserted from the config file --> <!-- the google_analytics_id gets auto inserted from the config file -->
{% if site.google_analytics %} {% if site.google_analytics %}
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','{{ site.google_analytics }}','auto');ga('require','displayfeatures');ga('send','pageview');</script>
{% endif %} <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create','{{site.google_analytics}}','auto');ga('require','displayfeatures');ga('send','pageview');</script>
{% endif %}

View File

@ -1,25 +1,14 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{% if page.summary %}{{ page.summary | strip_html | strip_newlines | truncate: 160 }}{% endif %}">
{% if page.summary %} <meta name="keywords" content="{{page.tags}}{% if page.tags %}, {% endif %} {{page.keywords}}">
<meta name="description" content="{{ page.summary | strip_html | strip_newlines | truncate: 160 }}"> <title>{% if page.homepage == true %} {{site.homepage_title}} {% elsif page.title %}{{ page.title }}{% endif %} | {{ site.site_title }}</title>
{% endif %}
<meta name="keywords" content="{{ page.tags }}{% if page.tags %}, {% endif %} {{ page.keywords }}">
<title>
{% if page.homepage %}
{{ site.homepage_title }}
{% elsif page.title %}
{{ page.title }}
{% endif %}
| {{ site.site_title }}
</title>
<link rel="stylesheet" href="{{ "/css/syntax.css" | prepend: site.baseurl }}"> <link rel="stylesheet" href="{{ "/css/syntax.css" | prepend: site.baseurl }}">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<!--<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">-->
<link rel="stylesheet" href="{{ "/css/modern-business.css" | prepend: site.baseurl }}"> <link rel="stylesheet" href="{{ "/css/modern-business.css" | prepend: site.baseurl }}">
<link rel="stylesheet" href="{{ "/css/lavish-bootstrap.css" | prepend: site.baseurl }}"> <link rel="stylesheet" href="{{ "/css/lavish-bootstrap.css" | prepend: site.baseurl }}">
<link rel="stylesheet" href="{{ "/css/customstyles.css" | prepend: site.baseurl }}"> <link rel="stylesheet" href="{{ "/css/customstyles.css" | prepend: site.baseurl }}">
@ -35,7 +24,7 @@
<script src="{{ "/js/toc.js" | prepend: site.baseurl }}"></script> <script src="{{ "/js/toc.js" | prepend: site.baseurl }}"></script>
<script src="{{ "/js/customscripts.js" | prepend: site.baseurl }}"></script> <script src="{{ "/js/customscripts.js" | prepend: site.baseurl }}"></script>
<link rel="shortcut icon" href="{{ "/images/favicon.ico" | prepend: site.baseurl }}"> <link rel="shortcut icon" href="{{ "/images/favicon.ico" | prepend: site.baseurl }}">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
@ -45,3 +34,8 @@
<![endif]--> <![endif]-->
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}"> <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">

View File

@ -3,7 +3,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{% if page.summary %}{{ page.summary | strip_html | strip_newlines | truncate: 160 }}{% endif %}"> <meta name="description" content="{% if page.summary %}{{ page.summary | strip_html | strip_newlines | truncate: 160 }}{% endif %}">
<meta name="keywords" content="{{page.tags}}{% if page.tags %}, {% endif %} {{page.keywords}}"> <meta name="keywords" content="{{page.tags}}{% if page.tags %}, {% endif %} {{page.keywords}}">
<title>{% if page.homepage == true %}{{ site.homepage_title }}{% elsif page.title %}{{ page.title }}{% endif %} | {{ site.site_title }}</title> <title>{% if page.homepage == true %} {{site.homepage_title}} {% elsif page.title %}{{ page.title }}{% endif %} | {{ site.site_title }}</title>
<link rel="stylesheet" href="{{ "/css/syntax.css" | prepend: site.baseurl | prepend: site.url }}"> <link rel="stylesheet" href="{{ "/css/syntax.css" | prepend: site.baseurl | prepend: site.url }}">
@ -27,3 +27,7 @@
return "{{site.print_title}} User Guide"; return "{{site.print_title}} User Guide";
}); });
</script> </script>

View File

@ -1 +1 @@
<figure>{% if include.url %}<a class="no_icon" target="_blank" href="{{ include.url }}">{% endif %}<img class="docimage" src="{{ site.baseurl | prepend: site.url }}/images/{{ include.file }}" alt="{{ include.alt }}" {% if include.max-width %}style="max-width: {{ include.max-width }}px"{% endif %} />{% if include.url %}</a>{% endif %}{% if include.caption %}<figcaption>{{ include.caption }}</figcaption></figure>{% endif %} <figure>{% if {{include.url}} %}<a class="no_icon" target="_blank" href="{{include.url}}">{% endif %}<img class="docimage" src="{{site.baseurl | prepend: site.url}}/images/{{include.file}}" alt="{{include.alt}}" {% if {{include.max-width}} %}style="max-width: {{include.max-width}}px"{% endif %} />{% if {{include.url}} %}</a>{% endif %}{% if {{include.caption}} %}<figcaption>{{include.caption}}</figcaption></figure>{% endif %}

View File

@ -1 +1 @@
<div markdown="span" class="alert alert-warning" role="alert"><i class="fa fa-warning"></i> <b>Important:</b> {{ include.content }}</div> <div markdown="span" class="alert alert-warning" role="alert"><i class="fa fa-warning"></i> <b>Important:</b> {{include.content}}</div>

View File

@ -1 +1 @@
<img class="inline" src="{{site.image_path}}/{{ include.file }}{% if site.target == "hippo" %}._TTH_{% endif %}.{{ include.type }}" alt="{{ include.alt }}" /> <img class="inline" src="{{site.image_path}}/{{include.file}}{% if site.target == "hippo" %}._TTH_{% endif %}.{{include.type}}" alt="{{include.alt}}" />

View File

@ -1,24 +0,0 @@
{% if include.link.external_url %}
<li>
<a href="{{ include.link.external_url }}" target="_blank">
{{ include.link.title }}
</a>
</li>
{% elsif include.link.url %}
<li {% if page.url contains include.link.url %}class="active"{% endif %}>
<a href="{{ include.link.url | prepend: site.baseurl }}">
{{ include.link.title }}
</a>
</li>
{% elsif include.link.sub_items %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
{{ include.link.title }}<b class="caret"></b>
</a>
<ul class="dropdown-menu">
{% for entry in include.link.sub_items %}
{% include nav_link.html link=entry %}
{% endfor %}
</ul>
</li>
{% endif %}

View File

@ -1 +1 @@
<div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> {{ include.conten t}}</div> <div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> {{include.content}}</div>

View File

@ -1,40 +1,56 @@
{% assign product = site.collections | where: "label", include.collection | first %} {% include custom/sidebarconfigs.html %}
<div class="col-md-3"> <!-- Sidebar Column --> <ul id="mysidebar" class="nav">
<ul id="mysidebar" class="nav"> <li class="sidebarTitle">{{sidebar[0].product}} {{sidebar[0].version}}</li>
<li class="sidebarTitle"> {% for entry in sidebar %}
{{ product.title }} {{ product.version }} {% for folder in entry.folders %}
</li> {% if folder.output contains "web" %}
<li>
{% for category in site.data.sub_navigation[product.label] %} <a href="#">{{ folder.title }}</a>
{% assign items = product.docs | where: "category", category %} <ul>
{% assign items = items | sort: 'weight' %} {% for folderitem in folder.folderitems %}
{% assign number_of_items = items | size %} {% if folderitem.output contains "web" %}
{% if number_of_items > 0 %} {% if folderitem.external_url %}
<li> <li><a href="{{folderitem.external_url}}" target="_blank">{{folderitem.title}}</a></li>
<a href="#"> {% elsif page.url == folderitem.url %}
{{ category }} <li class="active"><a href="{{folderitem.url | prepend: site.baseurl}}">{{folderitem.title}}</a></li>
</a> {% else %}
<ul> <li><a href="{{folderitem.url | prepend: site.baseurl}}">{{folderitem.title}}</a></li>
{% for item in items %} {% endif %}
<li {% if page.url == item.url %}class="active"{% endif %}> {% for subfolders in folderitem.subfolders %}
<a href="{{ item.url | prepend: site.baseurl }}"> {% if subfolders.output contains "web" %}
{{ item.title }} <li class="subfolders">
</a> <a href="#">{{ subfolders.title }}</a>
</li> <ul>
{% endfor %} {% for subfolderitem in subfolders.subfolderitems %}
</ul> {% if subfolderitem.output contains "web" %}
</li> {% if subfolderitem.external_url %}
{% endif %} <li><a href="{{subfolderitem.external_url}}" target="_blank">{{subfolderitem.title}}</a></li>
{% endfor %} {% elsif page.url == subfolderitem.url %}
<!-- if you aren't using the accordion, uncomment this block: <li class="active"><a href="{{subfolderitem.url | prepend: site.baseurl}}">{{subfolderitem.title}}</a></li>
<p class="external"> {% else %}
<a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a> <li><a href="{{subfolderitem.url | prepend: site.baseurl}}">{{subfolderitem.title}}</a></li>
</p> {% endif %}
--> {% endif %}
</li> {% endfor %}
</ul> </ul>
</li>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endfor %}
{% endfor %}
<!-- if you aren't using the accordion, uncomment this block:
<p class="external">
<a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a>
</p>
-->
</li>
</ul>
</div> </div>
<!-- this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.--> <!-- this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
<script>$("li.active").parents('li').toggleClass("active");</script> <script>$("li.active").parents('li').toggleClass("active");</script>

View File

@ -1 +1 @@
<div markdown="span" class="alert alert-success" role="alert"><i class="fa fa-check-square-o"></i> <b>Tip:</b> {{ include.content }}</div> <div markdown="span" class="alert alert-success" role="alert"><i class="fa fa-check-square-o"></i> <b>Tip:</b> {{include.content}}</div>

View File

@ -1,50 +1,75 @@
<!-- Navigation --> <!-- Navigation -->
<nav class="navbar navbar-inverse navbar-fixed-top"> <nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container topnavlinks"> <div class="container topnavlinks">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span> <span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="fa fa-home fa-lg navbar-brand" href="{{ site.baseurl }}/"> <a class="fa fa-home fa-lg navbar-brand" href="{{site.baseurl}}/">&nbsp;<span class="projectTitle"> {{site.topnav_title}}</span></a>
&nbsp;<span class="projectTitle">{{ site.topnav_title }}</span> </div>
</a> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
</div> <ul class="nav navbar-nav navbar-right">
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <!-- entries without drop-downs appear here -->
<ul class="nav navbar-nav navbar-right"> {% for entry in site.data.topnav.topnav %}
<!-- entries without drop-downs appear here --> {% for item in entry.items %}
{% for entry in site.data.topnav %} {% if item.external_url %}
{% include nav_link.html link=entry %} <li><a href="{{item.external_url}}" target="_blank">{{item.title}}</a></li>
{% endfor %} {% elsif page.url contains item.url %}
<li class="active"><a href="{{item.url | prepend: site.baseurl}}">{{item.title}}</a></li>
{% unless site.feedback_disable == true %} {% else %}
{% include feedback.html %} <li><a href="{{item.url | prepend: site.baseurl }}">{{item.title}}</a></li>
{% endunless %} {% endif %}
<!--comment out this block if you want to hide search--> {% endfor %}
<li> {% endfor %}
<!--start search--> <!-- entries with drop-downs appear here -->
<div id="search-demo-container"> <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
<input type="text" id="search-input" placeholder="{{site.data.strings.search_placeholder_text}}"> {% for entry in site.data.topnav.topnav_dropdowns %}
<ul id="results-container"></ul> {% for folder in entry.folders %}
</div> <li class="dropdown">
<script src="{{ "/js/jekyll-search.js" | prepend: site.baseurl }}" type="text/javascript"></script> <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ folder.title }}<b class="caret"></b></a>
<script type="text/javascript"> <ul class="dropdown-menu">
SimpleJekyllSearch.init({ {% for folderitem in folder.folderitems %}
searchInput: document.getElementById('search-input'), {% if folderitem.external_url %}
resultsContainer: document.getElementById('results-container'), <li><a href="{{folderitem.external_url}}" target="_blank">{{folderitem.title}}</a></li>
dataSource: '{{ "/search.json" | prepend: site.baseurl }}', {% elsif page.url contains folderitem.url %}
searchResultTemplate: '<li><a href="{url}" title="{{ page.title | replace: "'", "\"}}">{title}</a></li>', <li class="dropdownActive"><a href="{{folderitem.url | prepend: site.baseurl}}">{{folderitem.title}}</a></li>
noResultsText: '{{ site.data.strings.search_no_results_text }}', {% else %}
limit: 10, <li><a href="{{folderitem.url | prepend: site.baseurl}}">{{folderitem.title}}</a></li>
fuzzy: true, {% endif %}
}) {% endfor %}
</script> </ul>
<!--end search--> </li>
</li> {% endfor %}
</ul> {% endfor %}
</div> {% if site.feedback_disable == null or site.feedback_disable == false %}
</div> {% include feedback.html %}
<!-- /.container --> {% endif %}
</nav> <!--comment out this block if you want to hide search-->
<li>
<!--start search-->
<div id="search-demo-container">
<input type="text" id="search-input" placeholder="{{site.data.strings.search_placeholder_text}}">
<ul id="results-container"></ul>
</div>
<script src="{{ "/js/jekyll-search.js" | prepend: site.baseurl }}" type="text/javascript"></script>
<script type="text/javascript">
SimpleJekyllSearch.init({
searchInput: document.getElementById('search-input'),
resultsContainer: document.getElementById('results-container'),
dataSource: '{{ "/search.json" | prepend: site.baseurl }}',
searchResultTemplate: '<li><a href="{url}" title="{{page.title | replace: "'", "\"}}">{title}</a></li>',
noResultsText: '{{site.data.strings.search_no_results_text}}',
limit: 10,
fuzzy: true,
})
</script>
<!--end search-->
</li>
</ul>
</div>
</div>
<!-- /.container -->
</nav>

View File

@ -1 +1 @@
<div markdown="span" class="alert alert-danger" role="alert"><i class="fa fa-exclamation-circle"></i> <b>Warning:</b> {{ include.content }}</div> <div markdown="span" class="alert alert-danger" role="alert"><i class="fa fa-exclamation-circle"></i> <b>Warning:</b> {{include.content}}</div>

View File

@ -1,73 +1,85 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <head>
<head> {% include head.html %}
{% include head.html %} <script>
<script> $(document).ready(function() {
$(document).ready(function() { // Initialize navgoco with default options
// Initialize navgoco with default options $("#mysidebar").navgoco({
$("#mysidebar").navgoco({ caretHtml: '',
caretHtml: '', accordion: true,
accordion: true, openClass: 'active', // open
openClass: 'active', // open save: false, // leave false or nav highlighting doesn't work right
save: false, // leave false or nav highlighting doesn't work right cookie: {
cookie: { name: 'navgoco',
name: 'navgoco', expires: false,
expires: false, path: '/'
path: '/' },
}, slide: {
slide: { duration: 400,
duration: 400, easing: 'swing'
easing: 'swing' }
} });
});
$("#collapseAll").click(function(e) { $("#collapseAll").click(function(e) {
e.preventDefault(); e.preventDefault();
$("#mysidebar").navgoco('toggle', false); $("#mysidebar").navgoco('toggle', false);
}); });
$("#expandAll").click(function(e) { $("#expandAll").click(function(e) {
e.preventDefault(); e.preventDefault();
$("#mysidebar").navgoco('toggle', true); $("#mysidebar").navgoco('toggle', true);
}); });
});
$(function () { });
$('[data-toggle="tooltip"]').tooltip()
}) </script>
</script> <script>
{% if page.datatable %} $(function () {
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css"> $('[data-toggle="tooltip"]').tooltip()
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script> })
<script> </script>
$(document).ready(function(){ {% if page.datatable == true %}
$('table.datatable').DataTable( { <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
paging: false, <script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
stateSave: true <script>
} $(document).ready(function(){
);
</script> $('table.datatable').DataTable( {
{% endif %} paging: false,
</head> stateSave: true
<body> }
{% include topnav.html %} );
<div class="container"> <!-- Page Content --> </script>
<div class="col-lg-12"> {% endif %}
&nbsp;
</div> </head>
<div class="row"> <!-- Content Row --> <body>
{% include sidebar.html collection=page.collection %} {% include topnav.html %}
<div class="col-md-9"> <!-- Content Column --> <!-- Page Content -->
{{ content }} <div class="container">
</div> <!-- /.row --> <div class="col-lg-12">&nbsp;</div>
</div> <!-- /.container --> <!-- Content Row -->
</div> <div class="row">
<script> <!-- Sidebar Column -->
jQuery(function ($) { <div class="col-md-3">
$('.post-content').annotator()
.annotator('setupPlugins', { tokenUrl: 'http://example.com/api/token' }); {% include sidebar.html %}
}); <!-- Content Column -->
</script> <div class="col-md-9">
{% include google_analytics.html %} {{content}}
</body> </div>
</html> <!-- /.row -->
</div>
<!-- /.container -->
</div>
<script>
jQuery(function ($) {
$('.post-content').annotator()
.annotator('setupPlugins', {tokenUrl: 'http://example.com/api/token'})
});
</script>
</body>
{% if site.google_analytics %}
{% include google_analytics.html %}
{% endif %}
</html>

3
_layouts/none.html Normal file
View File

@ -0,0 +1,3 @@
---
---
{{content}}

View File

@ -3,63 +3,61 @@ layout: default
--- ---
<div class="post-header"> <div class="post-header">
<h1 class="post-title-main"> <h1 class="post-title-main">{% if page.homepage == true %} {{site.homepage_title}} {% else %}{{ page.title }}{% endif %}</h1>
{% if page.homepage == true %}
{{ site.homepage_title }}
{% else %}
{{ page.title }}
{% endif %}
</h1>
</div> </div>
{% if page.map == true %} {% if page.map == true %}
<script>
$(document).ready ( function(){
$('.box{{page.box_number}}').addClass('active');
$('.modalButton{{page.box_number}}').addClass('active');
});
</script>
{% include custom/{{page.map_name}}.html %} <script>
$(document).ready ( function(){
$('.box{{page.box_number}}').addClass('active');
$('.modalButton{{page.box_number}}').addClass('active');
});
</script>
{% include custom/{{page.map_name}}.html %}
{% endif %} {% endif %}
<div class="post-content"> <div class="post-content">
{% if page.summary %} {% if page.summary %}
<div class="summary">{{ page.summary }}</div> <div class="summary">{{page.summary}}</div>
{% endif %} {% endif %}
{% unless page.toc == false %} {% unless page.toc == false %}
{% include toc.html %} {% include toc.html %}
{% endunless %} {% endunless %}
{% unless jekyll.environment == "production" %} {% unless jekyll.environment == "production" %}
{% if site.github_editme_path %}
<a target="_blank" href="https://github.com/{{ site.github_editme_path }}{% unless page.url contains "html" %}{{ page.url | replace: '.html', '.md' }}{% endunless %}{% if page.url contains "html" %}{{ page.url }}{% endif %}" class="btn btn-default githubEditButton" role="button"><i class="fa fa-github fa-lg"></i> Edit me</a>
{% endif %}
{% endunless %}
{{ content }} {% if site.github_editme_path %}
<a target="_blank" href="https://github.com/{{site.github_editme_path}}{% unless page.url contains "html" %}{{page.url | replace: '.html', '.md'}}{% endunless %}{% if page.url contains "html" %}{{page.url }}{% endif %}" class="btn btn-default githubEditButton" role="button"><i class="fa fa-github fa-lg"></i> Edit me</a>
{% endif %}
{% endunless %}
{{content}}
<div class="tags"> <div class="tags">
{% if page.tags != null %} {% if page.tags != null %}
<strong>Tags: </strong> <b>Tags: </b>
{% assign projectTags = site.data.tags.allowed-tags %} {% assign projectTags = site.data.tags.allowed-tags %}
{% for tag in page.tags %} {% for tag in page.tags %}
{% if projectTags contains tag %} {% if projectTags contains tag %}
<a href="{{ "/tag_" | prepend: site.baseurl | append: tag }}" class="btn btn-default navbar-btn cursorNorm" role="button">{{ page.tagName }}{{ tag }}</a> <a href="{{ "/tag_" | prepend: site.baseurl | append: tag }}" class="btn btn-default navbar-btn cursorNorm" role="button">{{page.tagName}}{{tag}}</a>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
</div> </div>
{% if site.disqus %} {% if site.disqus %}
{% include disqus.html %} {% include disqus.html %}
{% endif %} {% endif %}
</div> </div>
{{ site.data.alerts.hr_shaded }} {{site.data.alerts.hr_shaded}}
{% include footer.html %} {% include footer.html %}

View File

@ -3,34 +3,43 @@ layout: default
--- ---
<article class="post" itemscope itemtype="http://schema.org/BlogPosting"> <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header"> <header class="post-header">
<h1 class="post-title" itemprop="name headline">{{ page.title }}</h1> <h1 class="post-title" itemprop="name headline">{{ page.title }}</h1>
<p class="post-meta"> <p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time> {% if page.author %}<span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">/ {{ page.author }}</span></span>{% endif %}{% if page.tags != null %}/
<time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %}<span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">/ {{ page.author }}</span></span>{% endif %} {% assign projectTags = site.data.tags.allowed-tags %}
{% if page.tags != null %}/ {% for tag in page.tags %}
{% assign projectTags = site.data.tags.allowed-tags %} {% if projectTags contains tag %}
{% for tag in page.tags %} <a href="{{ "/tag_" | prepend: site.baseurl | append: tag }}">{{tag}}</a>{% unless forloop.last %}, {% endunless%}
{% if projectTags contains tag %} {% endif %}
<a href="{{ "/tag_" | prepend: site.baseurl | append: tag }}">{{ tag }}</a> {% endfor %}
{% unless forloop.last %}, {% endunless%} {% endif %}
{% endif %}
{% endfor %} </p>
{% endif %}
</p>
</header> </header>
<div class="post-content" itemprop="articleBody">
{% if page.summary %}
<div class="summary">{{page.summary}}</div>
{% endif %}
{{ content }}
</div>
<div class="post-content" itemprop="articleBody">
{% if page.summary %}
<div class="summary">{{page.summary}}</div>
{% endif %}
{{ content }}
</div>
</article> </article>
{% if site.disqus %} {% if site.disqus %}
{% include disqus.html %} {% include disqus.html %}
{% endif %} {% endif %}
{{ site.data.alerts.hr_shaded }} {{site.data.alerts.hr_shaded}}
{% include footer.html %} {% include footer.html %}

View File

@ -1,11 +1,8 @@
--- ---
title: "Test post from last year" title: "Test post from last year"
categories: categories: jekyll update
- jekyll
- update
permalink: /test-post-from-last-year/ permalink: /test-post-from-last-year/
tags: tags: [news]
- news
--- ---
This is just a test post from the previous year. This is just a test post from the previous year.

View File

@ -1,11 +1,8 @@
--- ---
title: "Welcome to Jekyll!" title: "Welcome to Jekyll!"
categories: categories: jekyll update
- jekyll
- update
permalink: /myupdate/ permalink: /myupdate/
tags: tags: [news]
- news
--- ---
@ -17,4 +14,4 @@ Theme updates:
- removed PDF output - removed PDF output
- removed some of the alternative layouts - removed some of the alternative layouts
- added blog feature - added blog feature
- sidebars configurable per page - sidebars configurable per page

View File

@ -1,15 +1,16 @@
--- ---
title: "Sample post" title: "Sample post"
published: true
permalink: /samplepost/ permalink: /samplepost/
summary: "This is some summary frontmatter for my sample post." summary: "This is some summary frontmatter for my sample post."
tags: tags: [news, getting_started]
- news, getting_started
--- ---
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries
## Heading ## Heading
but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries

View File

@ -3,4 +3,4 @@ id: baseball
product: mydoc product: mydoc
--- ---
{{ site.data.definitions.baseball }} {{site.data.definitions.baseball}}

View File

@ -1,29 +1,32 @@
--- ---
search: exclude search: exclude
layout: null layout: none
--- ---
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> <channel>
<title>{{ site.title | xml_escape }}</title> <title>{{ site.title | xml_escape }}</title>
<description>{{ site.description | xml_escape }}</description> <description>{{ site.description | xml_escape }}</description>
<link>{{ site.url }}{{ site.baseurl }}/</link> <link>{{ site.url }}{{ site.baseurl }}/</link>
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/> <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate> <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate> <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
<generator>Jekyll v{{ jekyll.version }}</generator> <generator>Jekyll v{{ jekyll.version }}</generator>
{% for post in site.posts limit:10 %} {% for post in site.posts limit:10 %}
<item> <item>
<title>{{ post.title | xml_escape }}</title> <title>{{ post.title | xml_escape }}</title>
<description>{{ post.content | xml_escape }}</description> <description>{{ post.content | xml_escape }}</description>
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate> <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link> <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid> <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
{% for tag in page.tags %} {% for tag in post.tags %}
<category>{{ cat | xml_escape }}</category> <category>{{ tag | xml_escape }}</category>
{% endfor %} {% endfor %}
</item> {% for tag in page.tags %}
{% endfor %} <category>{{ cat | xml_escape }}</category>
</channel> {% endfor %}
</item>
{% endfor %}
</channel>
</rss> </rss>

View File

@ -1,12 +1,11 @@
--- ---
title: Getting started overview title: Getting started overview
tags: tags: [getting_started]
- getting_started
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
type: homepage type: homepage
--- ---
## Overview ## Overview
These brief instructions will help you get started quickly with the theme. The other topics in this help provide additional information and detail about working with other aspects of this theme and Jekyll. These brief instructions will help you get started quickly with the theme. The other topics in this help provide additional information and detail about working with other aspects of this theme and Jekyll.
@ -14,8 +13,8 @@ These brief instructions will help you get started quickly with the theme. The o
If you're used to running Jekyll sites, you can type the normal jekyll command, `jekyll serve`, to build the Jekyll theme. However, if you're a new Jekyll user or if you run into issues, see the following two topics: If you're used to running Jekyll sites, you can type the normal jekyll command, `jekyll serve`, to build the Jekyll theme. However, if you're a new Jekyll user or if you run into issues, see the following two topics:
* {{ site.data.urls.mydoc_install_jekyll_on_mac.link }} * {{site.data.urls.mydoc_install_jekyll_on_mac.link}}
* {{ site.data.urls.mydoc_install_jekyll_on_windows.link }} * {{site.data.urls.mydoc_install_jekyll_on_windows.link}}
## Customize the Gemfile ## Customize the Gemfile
@ -115,7 +114,7 @@ entries:
product: Jekyll Doc Theme product: Jekyll Doc Theme
version: 5.0 version: 5.0
folders: folders:
- title: Overview - title: Overview
output: web, pdf output: web, pdf
folderitems: folderitems:
- title: Some page - title: Some page
@ -124,7 +123,7 @@ entries:
- title: Another page - title: Another page
url: /another-doc-page/ url: /another-doc-page/
output: web, pdf output: web, pdf
- title: Configuration - title: Configuration
output: web output: web
folderitems: folderitems:
@ -244,15 +243,15 @@ When you want to insert paragraphs, notes, code snippets, or other matter in bet
``` ```
1. First item 1. First item
``` ```
alert("hello"); alert("hello");
``` ```
2. Second item 2. Second item
Some pig! Some pig!
3. Third item 3. Third item
``` ```
@ -266,3 +265,6 @@ If you want to use a simple system for managing links, see the "Managed Links" s
## Other instructions ## Other instructions
For other details in working with the theme, see the various sections in the sidebar. For other details in working with the theme, see the various sections in the sidebar.

View File

@ -2,13 +2,10 @@
title: About the theme author title: About the theme author
keywords: documentation theme, jekyll, technical writers, help authoring tools, hat replacements keywords: documentation theme, jekyll, technical writers, help authoring tools, hat replacements
last_updated: March 20, 2016 last_updated: March 20, 2016
tags: tags: [getting_started]
- getting_started
summary: "I have used this theme for projects that I've worked on as a professional technical writer." summary: "I have used this theme for projects that I've worked on as a professional technical writer."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_about/ permalink: /mydoc_about/
category: Overview
weight: 5
--- ---
My name is Tom Johnson, and I'm a technical writer, blogger, and podcaster based in San Jose, California. My blog is here: [http://idratherbewriting.com](http://idratherbewriting.com). I write several posts there a week. See [my blog's about page](http://idratherbewriting.com/aboutme/) for more details about me. My name is Tom Johnson, and I'm a technical writer, blogger, and podcaster based in San Jose, California. My blog is here: [http://idratherbewriting.com](http://idratherbewriting.com). I write several posts there a week. See [my blog's about page](http://idratherbewriting.com/aboutme/) for more details about me.

View File

@ -1,31 +1,27 @@
--- ---
title: About Ruby, Gems, Bundler, and other prerequisites title: About Ruby, Gems, Bundler, and other prerequisites
tags: tags: [getting_started, troubleshooting]
- getting_started
- troubleshooting
keywords: keywords:
summary: "Ruby is a programming language you must have on your computer in order to build Jekyll locally. Ruby has various gems (or plugins) that provide various functionality. Each Jekyll project usually requires certain gems." summary: "Ruby is a programming language you must have on your computer in order to build Jekyll locally. Ruby has various gems (or plugins) that provide various functionality. Each Jekyll project usually requires certain gems."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_about_ruby_gems_etc/ permalink: /mydoc_about_ruby_gems_etc/
category: Installation
weight: 1
--- ---
## About Ruby ## About Ruby
Jekyll runs on Ruby, a programming language. You have to have Ruby on your computer in order to run Ruby-based programs like Jekyll. Ruby is installed on the Mac by default, but you must add it to Windows. Jekyll runs on Ruby, a programming language. You have to have Ruby on your computer in order to run Ruby-based programs like Jekyll. Ruby is installed on the Mac by default, but you must add it to Windows.
## About Ruby Gems ## About Ruby Gems
Ruby has a number of plugins referred to as "gems." Just because you have Ruby doesn't mean you have all the necessary Ruby gems that your program needs to run. Gems provide additional functionality for Ruby programs. There are thousands of [Rubygems](https://rubygems.org/) available for you to use. Ruby has a number of plugins referred to as "gems." Just because you have Ruby doesn't mean you have all the necessary Ruby gems that your program needs to run. Gems provide additional functionality for Ruby programs. There are thousands of [Rubygems](https://rubygems.org/) available for you to use.
Some gems depend on other gems for functionality. For example, the Jekyll gem might depend on 20 other gems that must also be installed. Some gems depend on other gems for functionality. For example, the Jekyll gem might depend on 20 other gems that must also be installed.
Each gem has a version associated with it, and not all gem versions are compatible with each other. Each gem has a version associated with it, and not all gem versions are compatible with each other.
## Rubygem package managers ## Rubygem package managers
[Bundler](http://bundler.io/) is a gem package manager for Ruby, which means it goes out and gets all the gems you need for your Ruby programs. If you tell Bundler you need the [jekyll gem](https://rubygems.org/gems/jekyll), it will retrieve all the dependencies on the jekyll gem as well -- automatically. [Bundler](http://bundler.io/) is a gem package manager for Ruby, which means it goes out and gets all the gems you need for your Ruby programs. If you tell Bundler you need the [jekyll gem](https://rubygems.org/gems/jekyll), it will retrieve all the dependencies on the jekyll gem as well -- automatically.
Not only does Bundler retrieve the right gem dependencies, but it's smart enough to retrieve the right versions of each gem. For example, if you get the [github-pages](https://rubygems.org/gems/github-pages) gem, it will retrieve all of these other gems: Not only does Bundler retrieve the right gem dependencies, but it's smart enough to retrieve the right versions of each gem. For example, if you get the [github-pages](https://rubygems.org/gems/github-pages) gem, it will retrieve all of these other gems:
@ -55,17 +51,17 @@ terminal-table ~> 1.
``` ```
See how Bundler retrieved version 3.0.3 of the jekyll gem, even though (as of this writing) the latest version of the jekyll gem is 3.1.2? That's because github-pages is only compatible up to jekyll 3.0.3. Bundler handles all of this dependency and version compatibility for you. See how Bundler retrieved version 3.0.3 of the jekyll gem, even though (as of this writing) the latest version of the jekyll gem is 3.1.2? That's because github-pages is only compatible up to jekyll 3.0.3. Bundler handles all of this dependency and version compatibility for you.
Trying to keep track of which gems and versions are appropriate for your project can be a nightmare. This is the problem Bundler solves. As explained on [Bundler.io](http://bundler.io/): Trying to keep track of which gems and versions are appropriate for your project can be a nightmare. This is the problem Bundler solves. As explained on [Bundler.io](http://bundler.io/):
> Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed. > Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed.
> >
> Bundler is an exit from dependency hell, and ensures that the gems you need are present in development, staging, and production. Starting work on a project is as simple as bundle install. > Bundler is an exit from dependency hell, and ensures that the gems you need are present in development, staging, and production. Starting work on a project is as simple as bundle install.
## Gemfiles ## Gemfiles
Bundler looks in a project's "Gemfile" (no file extension) to see which gems are required by the project. The Gemfile lists the source and then any gems, like this: Bundler looks in a project's "Gemfile" (no file extension) to see which gems are required by the project. The Gemfile lists the source and then any gems, like this:
``` ```
source "https://rubygems.org" source "https://rubygems.org"
@ -75,7 +71,7 @@ gem 'jekyll'
The source indicates the site where Bundler will retrieve the gems: [https://rubygems.org](https://rubygems.org). The source indicates the site where Bundler will retrieve the gems: [https://rubygems.org](https://rubygems.org).
The gems it retrieves are listed separately on each line. The gems it retrieves are listed separately on each line.
Here no versions are specified. Sometimes gemfiles will specify the versions like this: Here no versions are specified. Sometimes gemfiles will specify the versions like this:
@ -90,7 +86,7 @@ To specify a subset of versions, the Gemfile looks like this:
``` ```
gem 'jekyll', '~> 2.3' gem 'jekyll', '~> 2.3'
``` ```
The `~>` sign means greater than or equal to the *last digit before the last period in the number*. The `~>` sign means greater than or equal to the *last digit before the last period in the number*.
Here it will get any gem equal to 2.3 but less than 3.0. Here it will get any gem equal to 2.3 but less than 3.0.
@ -253,3 +249,4 @@ BUNDLED WITH
You can always delete the Gemlock file and run Bundle install again to get the latest versions. You can also run `bundle update`, which will ignore the Gemlock file to get the latest versions of each gem. You can always delete the Gemlock file and run Bundle install again to get the latest versions. You can also run `bundle update`, which will ignore the Gemlock file to get the latest versions of each gem.
To learn more about Bundler, see [Bundler's Purpose and Rationale](http://bundler.io/rationale.html). To learn more about Bundler, see [Bundler's Purpose and Rationale](http://bundler.io/rationale.html).

View File

@ -1,22 +1,19 @@
--- ---
title: Tooltips title: Tooltips
tags: tags: [formatting]
- formatting
keywords: popovers, tooltips, user interface text, glossaries, definitions keywords: popovers, tooltips, user interface text, glossaries, definitions
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "You can add tooltips to any word, such as an acronym or specialized term. Tooltips work well for glossary definitions, because you don't have to keep repeating the definition, nor do you assume the reader already knows the word's meaning." summary: "You can add tooltips to any word, such as an acronym or specialized term. Tooltips work well for glossary definitions, because you don't have to keep repeating the definition, nor do you assume the reader already knows the word's meaning."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_adding_tooltips/ permalink: /mydoc_adding_tooltips/
category: Formatting
weight: 1
--- ---
## Creating tooltips ## Creating tooltips
Because this theme is built on Bootstrap, you can simply use a specific attribute on an element to insert a tooltip. Because this theme is built on Bootstrap, you can simply use a specific attribute on an element to insert a tooltip.
Suppose you have a glossary.yml file inside your \_data folder. You could pull in that glossary definition like this: Suppose you have a glossary.yml file inside your \_data folder. You could pull in that glossary definition like this:
{% raw %} {% raw %}
```html ```html
<a href="#" data-toggle="tooltip" data-original-title="{{site.data.glossary.jekyll_platform}}">Jekyll</a> is my favorite tool for building websites.</a> <a href="#" data-toggle="tooltip" data-original-title="{{site.data.glossary.jekyll_platform}}">Jekyll</a> is my favorite tool for building websites.</a>
``` ```
@ -24,4 +21,4 @@ Suppose you have a glossary.yml file inside your \_data folder. You could pull i
This renders to the following: This renders to the following:
<a href="#" data-toggle="tooltip" data-original-title="{{site.data.glossary.jekyll_platform}}">Jekyll</a> is my favorite tool for building websites. <a href="#" data-toggle="tooltip" data-original-title="{{site.data.glossary.jekyll_platform}}">Jekyll</a> is my favorite tool for building websites.

View File

@ -1,14 +1,11 @@
--- ---
title: Alerts title: Alerts
tags: tags: [formatting]
- formatting
keywords: notes, tips, cautions, warnings, admonitions keywords: notes, tips, cautions, warnings, admonitions
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "You can insert notes, tips, warnings, and important alerts in your content. These notes make use of Bootstrap styling and are available through data references such as site.data.alerts.note." summary: "You can insert notes, tips, warnings, and important alerts in your content. These notes make use of Bootstrap styling and are available through data references such as site.data.alerts.note."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_alerts/ permalink: /mydoc_alerts/
category: Formatting
weight: 2
--- ---
## About alerts ## About alerts

View File

@ -1,14 +1,11 @@
--- ---
title: Build arguments title: Build arguments
tags: tags: [publishing]
- publishing
keywords: building, serving, serve, build keywords: building, serving, serve, build
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "You use various build arguments with your Jekyll project. You can also create shell scripts to act as shortcuts for long build commands. You can store the commands in iTerm as profiles as well." summary: "You use various build arguments with your Jekyll project. You can also create shell scripts to act as shortcuts for long build commands. You can store the commands in iTerm as profiles as well."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_build_arguments/ permalink: /mydoc_build_arguments/
category: Publishing
weight: 1
--- ---
## How to build Jekyll sites ## How to build Jekyll sites
@ -66,3 +63,7 @@ kill -9 $(ps aux | grep '[j]ekyll' | awk '{print $2}')
I recommend creating a profile in iTerm that stores this command. Here's what the iTerm settings look like: I recommend creating a profile in iTerm that stores this command. Here's what the iTerm settings look like:
![iTerm profile settings to kill all Jekyll]({{ "/images/killalljekyll.png" | prepend: site.baseurl }}) ![iTerm profile settings to kill all Jekyll]({{ "/images/killalljekyll.png" | prepend: site.baseurl }})

View File

@ -1,14 +1,11 @@
--- ---
title: Collections title: Collections
tags: tags: [content_types]
- content_types
keywords: groups, api, structure keywords: groups, api, structure
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "Collections are useful if you want to loop through a special folder of pages that you make available in a content API. You could also use collections if you have a set of articles that you want to treat differently from the other content, with a different layout or format." summary: "Collections are useful if you want to loop through a special folder of pages that you make available in a content API. You could also use collections if you have a set of articles that you want to treat differently from the other content, with a different layout or format."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_collections/ permalink: /mydoc_collections/
category: Authoring
weight: 6
--- ---
## What are collections ## What are collections
@ -37,4 +34,4 @@ I haven't found a huge use for collections in normal documentation. However, I d
## Video tutorial on collections ## Video tutorial on collections
See this [video tutorial on Jekyll.tips](http://jekyll.tips/jekyll-casts/introduction-to-collections/) for more details on collections. See this [video tutorial on Jekyll.tips](http://jekyll.tips/jekyll-casts/introduction-to-collections/) for more details on collections.

View File

@ -1,19 +1,17 @@
--- ---
title: Commenting on files title: Commenting on files
tags: tags:
- navigation - navigation
keywords: "annotations, comments, feedback" keywords: "annotations, comments, feedback"
last_updated: "November 30, 2016" last_updated: "November 30, 2016"
summary: "You can add a button to your pages that allows people to add comments." summary: "You can add a button to your pages that allows people to add comments."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_commenting_on_files/ permalink: /mydoc_commenting_on_files/
category: Handling reviews
weight: 1
--- ---
## About the review process ## About the review process
If you're using the doc as code approach, you might also consider using the same techniques for reviewing the doc as people use in reviewing code. This approach will involve using Github to edit the files. If you're using the doc as code approach, you might also consider using the same techniques for reviewing the doc as people use in reviewing code. This approach will involve using Github to edit the files.
There's an Edit me button on each page on this theme. This button allows collaborators to edit the content on Github. There's an Edit me button on each page on this theme. This button allows collaborators to edit the content on Github.
@ -51,7 +49,7 @@ If you want people to collaborate on your project so that their edits get commit
If you don't want to allow anyone to commit to your Github branch, don't add the reviewers as collaborators. When someone makes an edit, Github will fork the theme. The person's edit then will appear as a pull request to your repo. You can then choose to merge the change indicated in the pull or not. If you don't want to allow anyone to commit to your Github branch, don't add the reviewers as collaborators. When someone makes an edit, Github will fork the theme. The person's edit then will appear as a pull request to your repo. You can then choose to merge the change indicated in the pull or not.
{{site.data.alerts.note}} When you process pull requests, you have to accept everything or nothing. You can't pick and choose which changes you'll merge. Therefore you'll probably want to edit the branch you're planning to merge or ask the contributor to make some changes to the fork before processing the pull request.{{site.data.alerts.end}} {{site.data.alerts.note}} When you process pull requests, you have to accept everything or nothing. You can't pick and choose which changes you'll merge. Therefore you'll probably want to edit the branch you're planning to merge or ask the contributor to make some changes to the fork before processing the pull request.{{site.data.alerts.end}}
## Workflow ## Workflow
@ -60,10 +58,10 @@ Users will make edits in your "reviews" branch (or whatever you want to call it)
When you're finished making all updates in the branch, you can merge the branch into the master. When you're finished making all updates in the branch, you can merge the branch into the master.
Note that if you're making updates online, those updates will be out of sync with any local edits. Note that if you're making updates online, those updates will be out of sync with any local edits.
{{site.data.alerts.warning}} Don't make edits both online using Github's browser-based interface AND offline on your local machine using your local tools. When you try to push from your local, you'll likely get a merge conflict error. Instead, make sure you do a pull and update on your local after making any edits online.{{site.data.alerts.end}} {{site.data.alerts.warning}} Don't make edits both online using Github's browser-based interface AND offline on your local machine using your local tools. When you try to push from your local, you'll likely get a merge conflict error. Instead, make sure you do a pull and update on your local after making any edits online.{{site.data.alerts.end}}
## Prose.io ## Prose.io
Prose.io is an overlay on Github that would allow people to make comments in an easier interface. If you simply go to [prose.io](http://prose.io), it asks to authorize your Github account, and so it will read files directly from Github but in the Prose.io interface. Prose.io is an overlay on Github that would allow people to make comments in an easier interface. If you simply go to [prose.io](http://prose.io), it asks to authorize your Github account, and so it will read files directly from Github but in the Prose.io interface.

View File

@ -6,24 +6,22 @@ last_updated: March 20, 2016
summary: "You can implement advanced conditional logic that includes if statements, or statements, unless, and more. This conditional logic facilitates single sourcing scenarios in which you're outputting the same content for different audiences." summary: "You can implement advanced conditional logic that includes if statements, or statements, unless, and more. This conditional logic facilitates single sourcing scenarios in which you're outputting the same content for different audiences."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_conditional_logic/ permalink: /mydoc_conditional_logic/
category: Authoring
weight: 4
--- ---
## About Liquid and conditional statements ## About Liquid and conditional statements
If you want to create different outputs for different audiences, you can do all of this using a combination of Jekyll's Liquid markup and values in your configuration file. This is how I previously configured the theme. I had different configuration files for each output. Each configuration file specified different values for product, audience, version, and so on. Then I had different build processes that would leverage the different configuration files. It seemed like a perfect implementation of DITA-like techniques with Jekyll. If you want to create different outputs for different audiences, you can do all of this using a combination of Jekyll's Liquid markup and values in your configuration file. This is how I previously configured the theme. I had different configuration files for each output. Each configuration file specified different values for product, audience, version, and so on. Then I had different build processes that would leverage the different configuration files. It seemed like a perfect implementation of DITA-like techniques with Jekyll.
But I soon found that having lots of separate outputs for a project was undesirable. If you have 10 different outputs that have different nuances for different audiences, it's hard to manage and maintain. In this latest version of the theme, I consolidated all information into the same output to explicitly do away with the multi-output approach. But I soon found that having lots of separate outputs for a project was undesirable. If you have 10 different outputs that have different nuances for different audiences, it's hard to manage and maintain. In this latest version of the theme, I consolidated all information into the same output to explicitly do away with the multi-output approach.
As such, the conditional logic won't have as much play as it previously did. Instead of conditions, you'll probably want to incorporate [navtabs](mydoc_navtabs) to split up the information. As such, the conditional logic won't have as much play as it previously did. Instead of conditions, you'll probably want to incorporate [navtabs](mydoc_navtabs) to split up the information.
However, you can still of course use conditional logic as needed. However, you can still of course use conditional logic as needed.
{{site.data.alerts.tip}} Definitely check out <a href="http://docs.shopify.com/themes/liquid-documentation/basics">Liquid's documentation</a> for more details about how to use operators and other liquid markup. The notes here are a small, somewhat superficial sample from the site.{{site.data.alerts.end}} {{site.data.alerts.tip}} Definitely check out <a href="http://docs.shopify.com/themes/liquid-documentation/basics">Liquid's documentation</a> for more details about how to use operators and other liquid markup. The notes here are a small, somewhat superficial sample from the site.{{site.data.alerts.end}}
## Where to store filtering values ## Where to store filtering values
You can filter content based on values that you have set either in your page's frontmatter, a config file, or in a file in your \_data folder. If you set the attribute in your config file, you need to restart the Jekyll server to see the changes. If you set the value in a file in your \_data folder or page frontmatter, you don't need to restart the server when you make changes. You can filter content based on values that you have set either in your page's frontmatter, a config file, or in a file in your \_data folder. If you set the attribute in your config file, you need to restart the Jekyll server to see the changes. If you set the value in a file in your \_data folder or page frontmatter, you don't need to restart the server when you make changes.
## Conditional logic based on config file value ## Conditional logic based on config file value
@ -45,7 +43,7 @@ Here's some info about Windows ...
``` ```
{% endraw %} {% endraw %}
This uses simple `if-elsif` logic to determine what is shown (note the spelling of `elsif`). The `else` statement handles all other conditions not handled by the `if` statements. This uses simple `if-elsif` logic to determine what is shown (note the spelling of `elsif`). The `else` statement handles all other conditions not handled by the `if` statements.
Here's an example of `if-else` logic inside a list: Here's an example of `if-else` logic inside a list:
@ -67,7 +65,7 @@ You don't need the `elsif` or `else`. You could just use an `if` (but be sure to
## Or operator ## Or operator
You can use more advanced Liquid markup for conditional logic, such as an `or` command. See [Shopify's Liquid documentation](http://docs.shopify.com/themes/liquid-documentation/basics/operators) for more details. You can use more advanced Liquid markup for conditional logic, such as an `or` command. See [Shopify's Liquid documentation](http://docs.shopify.com/themes/liquid-documentation/basics/operators) for more details.
For example, here's an example using `or`: For example, here's an example using `or`:
@ -150,6 +148,7 @@ Then create a folder called \_data_beta.
## Conditions versus includes ## Conditions versus includes
If you have a lot of conditions in your text, it can get confusing. As a best practice, whenever you insert an `if` condition, add the `endif` at the same time. This will reduce the chances of forgetting to close the if statement. Jekyll won't build if there are problems with the liquid logic. If you have a lot of conditions in your text, it can get confusing. As a best practice, whenever you insert an `if` condition, add the `endif` at the same time. This will reduce the chances of forgetting to close the if statement. Jekyll won't build if there are problems with the liquid logic.
If your text is getting busy with a lot of conditional statements, consider putting a lot of content into includes so that you can more easily see where the conditions begin and end. If your text is getting busy with a lot of conditional statements, consider putting a lot of content into includes so that you can more easily see where the conditions begin and end.

View File

@ -6,8 +6,6 @@ last_updated: March 20, 2016
summary: "You can reuse chunks of content by storing these files in the includes folder. You then choose to include the file where you need it. This works similar to conref in DITA, except that you can include the file in any content type." summary: "You can reuse chunks of content by storing these files in the includes folder. You then choose to include the file where you need it. This works similar to conref in DITA, except that you can include the file in any content type."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_content_reuse/ permalink: /mydoc_content_reuse/
category: Authoring
weight: 5
--- ---
## About content reuse ## About content reuse

View File

@ -2,14 +2,11 @@
title: FAQ layout title: FAQ layout
permalink: /mydoc_faq_layout/ permalink: /mydoc_faq_layout/
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
tags: tags: [special_layouts]
- special_layouts
keywords: frequently asked questions, FAQ, question and answer, collapsible sections, expand, collapse keywords: frequently asked questions, FAQ, question and answer, collapsible sections, expand, collapse
last_updated: November 30, 2015 last_updated: November 30, 2015
summary: "You can use an accordion-layout that takes advantage of Bootstrap styling. This is useful for an FAQ page." summary: "You can use an accordion-layout that takes advantage of Bootstrap styling. This is useful for an FAQ page."
toc: false toc: false
category: Special layouts
weight: 3
--- ---
<p>If you want to use an FAQ format, use the syntax shown on the faq.html page. Rather than including code samples here (which are bulky with a lot of nested <code>div</code> tags), just look at the source in the mydoc_faq.html theme file.</p> <p>If you want to use an FAQ format, use the syntax shown on the faq.html page. Rather than including code samples here (which are bulky with a lot of nested <code>div</code> tags), just look at the source in the mydoc_faq.html theme file.</p>
@ -134,3 +131,4 @@ weight: 3
<!-- /.panel --> <!-- /.panel -->
</div> </div>
<!-- /.panel-group --> <!-- /.panel-group -->

View File

@ -1,16 +1,11 @@
--- ---
title: Generating PDFs title: Generating PDFs
permalink: /mydoc_generating_pdfs/ permalink: /mydoc_generating_pdfs/
tags: tags: [publishing, single_sourcing, content_types]
- publishing
- single_sourcing
- content_types
keywords: PDF, prince, prince XML, ant, xsl fo keywords: PDF, prince, prince XML, ant, xsl fo
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "You can generate a PDF from your Jekyll project. You do this by creating a web version of your project that is printer friendly. You then use utility called Prince to iterate through the pages and create a PDF from them. It works quite well and gives you complete control to customize the PDF output through CSS, including page directives and dynamic tags from Prince." summary: "You can generate a PDF from your Jekyll project. You do this by creating a web version of your project that is printer friendly. You then use utility called Prince to iterate through the pages and create a PDF from them. It works quite well and gives you complete control to customize the PDF output through CSS, including page directives and dynamic tags from Prince."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
category: Publishing
weight: 4
--- ---

View File

@ -1,8 +1,7 @@
--- ---
title: Git notes and tips title: Git notes and tips
summary: "If you're interacting with your team using Git, the notes and tips will help you collaborate efficiently." summary: "If you're interacting with your team using Git, the notes and tips will help you collaborate efficiently."
tags: tags: collaboration
- collaboration
keywords: git, github, collaboration, interaction, file sharing, push keywords: git, github, collaboration, interaction, file sharing, push
published: false published: false
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
@ -26,7 +25,7 @@ hg diff
hg revert hg revert
hg remove hg remove
hg update hg update
You have seen that it is possible to switch revision using hg update. You have seen that it is possible to switch revision using hg update.
clone clone
commit commit
@ -40,7 +39,7 @@ $ hg annotate [FILE] or $ hg blame [FILE]
To search for a pattern in version controlled files, use hg grep; it will search this pattern in every version of the file and it will print the first one in which it appears, such as hg annotate. For example: To search for a pattern in version controlled files, use hg grep; it will search this pattern in every version of the file and it will print the first one in which it appears, such as hg annotate. For example:
$ hg grep new apache2.conf $ hg grep new apache2.conf
You can also print the content of a file at a given revision even without changing the current working directory using hg cat -r REVISION. You can also print the content of a file at a given revision even without changing the current working directory using hg cat -r REVISION.
Whenever changes have been committed but not yet pushed, the outgoing command lists all the changesets that are present in the current repository but not yet found in the destination (the ones that are candidates to be pushed), whereas the incoming command shows you the changesets that are found in the source repository but have not been pulled yet. So here, if you use the outgoing command, you will see Whenever changes have been committed but not yet pushed, the outgoing command lists all the changesets that are present in the current repository but not yet found in the destination (the ones that are candidates to be pushed), whereas the incoming command shows you the changesets that are found in the source repository but have not been pulled yet. So here, if you use the outgoing command, you will see
@ -65,7 +64,7 @@ hg fetch. This extension acts as a combination of hg pull -u, hg merge and hg co
i like i like
hg fetch does a pull and update at the same time hg fetch does a pull and update at the same time
you're prompted about any conflicts you're prompted about any conflicts
@ -83,7 +82,7 @@ hg diff
hg revert hg revert
hg remove hg remove
hg update hg update
You have seen that it is possible to switch revision using hg update. You have seen that it is possible to switch revision using hg update.
clone clone
addremove, which allows you to automatically add all new files and remove (from version control) files that have been deleted. addremove, which allows you to automatically add all new files and remove (from version control) files that have been deleted.
log log
@ -98,7 +97,7 @@ $ hg annotate [FILE] or $ hg blame [FILE]
To search for a pattern in version controlled files, use hg grep; it will search this pattern in every version of the file and it will print the first one in which it appears, such as hg annotate. For example: To search for a pattern in version controlled files, use hg grep; it will search this pattern in every version of the file and it will print the first one in which it appears, such as hg annotate. For example:
$ hg grep new apache2.conf $ hg grep new apache2.conf
You can also print the content of a file at a given revision even without changing the current working directory using hg cat -r REVISION. You can also print the content of a file at a given revision even without changing the current working directory using hg cat -r REVISION.
Whenever changes have been committed but not yet pushed, the outgoing command lists all the changesets that are present in the current repository but not yet found in the destination (the ones that are candidates to be pushed), whereas the incoming command shows you the changesets that are found in the source repository but have not been pulled yet. So here, if you use the outgoing command, you will see Whenever changes have been committed but not yet pushed, the outgoing command lists all the changesets that are present in the current repository but not yet found in the destination (the ones that are candidates to be pushed), whereas the incoming command shows you the changesets that are found in the source repository but have not been pulled yet. So here, if you use the outgoing command, you will see
@ -118,7 +117,7 @@ Bookmarks are tags that move forward automatically to subsequent changes, leavin
The default branch name in Mercurial is “default”. The default branch name in Mercurial is “default”.
The slowest, safest way to create a branch with Mercurial is to make a new clone of the repository. this is really fascinating -- a clone is merely a branch. The slowest, safest way to create a branch with Mercurial is to make a new clone of the repository. this is really fascinating -- a clone is merely a branch.
Discarding a branch you dont want any more is very easy with cloned branches. Its as simple as rm -rf test-project-feature-branch. Theres no need to mess around with editing repository history, you just delete the damn thing. Discarding a branch you dont want any more is very easy with cloned branches. Its as simple as rm -rf test-project-feature-branch. Theres no need to mess around with editing repository history, you just delete the damn thing.
@ -151,7 +150,7 @@ This is a good tutorial: https://www.digitalocean.com/community/tutorials/how-to
git lg git lg
git checkout master git checkout master
git merge search | git merge --no-ff search git merge search | git merge --no-ff search
the latter (--no-ff) keeps the additional information that these commits were made on a branch. the latter (--no-ff) keeps the additional information that these commits were made on a branch.
then type a commit message (:wq) then type a commit message (:wq)
@ -160,7 +159,7 @@ git branch -d search
git add . (works same as add --all) git add . (works same as add --all)
git commit am "my commit message" (this performs both adding and commit message at same time) git commit am "my commit message" (this performs both adding and commit message at same time)
with merge conflicts: with merge conflicts:
git status (shows you all the files that can't be added due to merge conflicts) git status (shows you all the files that can't be added due to merge conflicts)
fix the conflicts fix the conflicts
@ -180,3 +179,4 @@ From the interface, you can also create a pull request to merge all of the chang
| see what has changed since last commit | `git diff` | | see what has changed since last commit | `git diff` |
| commit changes | `git commit` | | commit changes | `git commit` |
| | | | | |

View File

@ -1,20 +1,16 @@
--- ---
title: Glossary layout title: Glossary layout
tags: tags: [formatting, special_layouts]
- formatting
- special_layouts
keywords: definitions, glossaries, terms, style guide keywords: definitions, glossaries, terms, style guide
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "Your glossary page can take advantage of definitions stored in a data file. This gives you the ability to reuse the same definition in multiple places. Additionally, you can use Bootstrap classes to arrange your definition list horizontally." summary: "Your glossary page can take advantage of definitions stored in a data file. This gives you the ability to reuse the same definition in multiple places. Additionally, you can use Bootstrap classes to arrange your definition list horizontally."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_glossary/ permalink: /mydoc_glossary/
toc: false toc: false
category: Special layouts
weight: 2
--- ---
You can create a glossary for your content. First create your glossary items in a data file such as glossary.yml. You can create a glossary for your content. First create your glossary items in a data file such as glossary.yml.
Then create a page and use definition list formatting, like this: Then create a page and use definition list formatting, like this:
@ -42,7 +38,7 @@ Then create a page and use definition list formatting, like this:
</dl> </dl>
``` ```
Here's what that looks like: Here's what that looks like:
<dl class="dl"> <dl class="dl">
@ -94,6 +90,6 @@ You can also change the definition list (`dl`) class to `dl-horizontal`. This is
</dl> </dl>
If you squish your screen small enough, at a certain breakpoint this style reverts to the regular `dl` class. If you squish your screen small enough, at a certain breakpoint this style reverts to the regular `dl` class.
Although I like the side-by-side view for shorter definitions, I found it problematic with longer definitions. Although I like the side-by-side view for shorter definitions, I found it problematic with longer definitions.

View File

@ -6,8 +6,6 @@ keywords: API, content API, UI text, inline help, context-sensitive help, popove
summary: "You can loop through files and generate a JSON file that developers can consume like a help API. Developers can pull in values from the JSON into interface elements, styling them as popovers for user interface text, for example. The beauty of this method is that the UI text remains in the help system (or at least in a single JSON file delivered to the dev team) and isn't hard-coded into the UI." summary: "You can loop through files and generate a JSON file that developers can consume like a help API. Developers can pull in values from the JSON into interface elements, styling them as popovers for user interface text, for example. The beauty of this method is that the UI text remains in the help system (or at least in a single JSON file delivered to the dev team) and isn't hard-coded into the UI."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_help_api/ permalink: /mydoc_help_api/
category: Publishing
weight: 5
--- ---
## Full code demo of content API ## Full code demo of content API
@ -24,7 +22,7 @@ Additionally, instead of tooltip popovers, you could also print content directly
## Diagram overview ## Diagram overview
Here's a diagram showing the basic idea of the help API: Here's a diagram showing the basic idea of the help API:
<img src="{{ "/images/helpapi.svg" | prepend: site.baseurl }}" style="width: 650px;"/> <img src="{{ "/images/helpapi.svg" | prepend: site.baseurl }}" style="width: 650px;"/>
@ -36,7 +34,7 @@ To deliver help this way using Jekyll, follow the steps in each of the sections
## 1. Create a "collection" for the help content ## 1. Create a "collection" for the help content
A collection is another content type that extends Jekyll beyond the use of pages and posts. Call the collection "tooltips." A collection is another content type that extends Jekyll beyond the use of pages and posts. Call the collection "tooltips."
Add the following information to your configuration file to declare your collection: Add the following information to your configuration file to declare your collection:
@ -112,7 +110,7 @@ search: exclude
Change "mydoc" to the product name you used in each of the tooltip files. The template here will only include content in the JSON file if it meets the `product` attribute requirements. We need this `if` statement to prevent tooltips from other products from being included in the JSON file. Change "mydoc" to the product name you used in each of the tooltip files. The template here will only include content in the JSON file if it meets the `product` attribute requirements. We need this `if` statement to prevent tooltips from other products from being included in the JSON file.
This code will loop through all pages in the tooltips collection and insert the `id` and `body` into key-value pairs for the JSON code. Here's an example of what that looks like after it's processed by Jekyll in the site build: This code will loop through all pages in the tooltips collection and insert the `id` and `body` into key-value pairs for the JSON code. Here's an example of what that looks like after it's processed by Jekyll in the site build:
``` ```
{ {
@ -153,13 +151,13 @@ When you build your site, Jekyll will iterate through every page in your \_toolt
## 6. Allow CORS access to your help if stored on a remote server ## 6. Allow CORS access to your help if stored on a remote server
You can simply deliver the JSON file to devs to add to the project. But if you have the option, it's best to keep the JSON file stored in your own help system. Assuming you have the ability to update your content on the fly, this will give you completely control over the tooltips without being tied to a specific release window. You can simply deliver the JSON file to devs to add to the project. But if you have the option, it's best to keep the JSON file stored in your own help system. Assuming you have the ability to update your content on the fly, this will give you completely control over the tooltips without being tied to a specific release window.
When people make calls to your site *from other domains*, you must allow them access to get the content. To do this, you have to enable something called CORS (cross origin resource sharing) within the server where your help resides. When people make calls to your site *from other domains*, you must allow them access to get the content. To do this, you have to enable something called CORS (cross origin resource sharing) within the server where your help resides.
In other words, people are going to be executing calls to reach into your site and grab your content. Just like the door on your house, you have to unlock it so people can get in. Enabling CORS is unlocking it. In other words, people are going to be executing calls to reach into your site and grab your content. Just like the door on your house, you have to unlock it so people can get in. Enabling CORS is unlocking it.
How you enable CORS depends on the type of server. How you enable CORS depends on the type of server.
If your server setup allows htaccess files to override general server permissions, create an .htaccess file and add the following: If your server setup allows htaccess files to override general server permissions, create an .htaccess file and add the following:
@ -167,7 +165,7 @@ If your server setup allows htaccess files to override general server permission
Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Origin "*"
``` ```
Store this in the same directory as your project. This is what I've done in a directory on my web host (bluehost.com). Inside http://idratherassets.com/wp-content/apidemos/, I uploaded a file called ".htaccess" with the preceding code. Store this in the same directory as your project. This is what I've done in a directory on my web host (bluehost.com). Inside http://idratherassets.com/wp-content/apidemos/, I uploaded a file called ".htaccess" with the preceding code.
After I uploaded it, I renamed it to .htaccess, right-clicked the file and set the permissions to 774. After I uploaded it, I renamed it to .htaccess, right-clicked the file and set the permissions to 774.
@ -177,7 +175,7 @@ To test whether your server permissions are set correctly, open a terminal and r
curl -I http://idratherassets.com/wp-content/apidemos/tooltips.json curl -I http://idratherassets.com/wp-content/apidemos/tooltips.json
``` ```
The `-I` command tells cURL to return the request header only. The `-I` command tells cURL to return the request header only.
If the server permissions are set correctly, you should see the following line somewhere in the response: If the server permissions are set correctly, you should see the following line somewhere in the response:
@ -185,7 +183,7 @@ If the server permissions are set correctly, you should see the following line s
Access-Control-Allow-Origin: * Access-Control-Allow-Origin: *
``` ```
If you don't see this response, CORS isn't allowed for the file. If you don't see this response, CORS isn't allowed for the file.
If you have an AWS S3 bucket, you can supposedly add a CORS configuration to the bucket permissions. Log into AWS S3 and click your bucket. On the right, in the Permissions section, click **Add CORS Configuration**. In that space, add the following policy: If you have an AWS S3 bucket, you can supposedly add a CORS configuration to the bucket permissions. Log into AWS S3 and click your bucket. On the right, in the Permissions section, click **Add CORS Configuration**. In that space, add the following policy:
@ -202,7 +200,7 @@ If you have an AWS S3 bucket, you can supposedly add a CORS configuration to the
In other server setups, you may need to edit one of your Apache configuration files. See [Enable CORS](http://enable-cors.org/server.html) or search online for ways to allow CORS for your server. In other server setups, you may need to edit one of your Apache configuration files. See [Enable CORS](http://enable-cors.org/server.html) or search online for ways to allow CORS for your server.
If you don't have CORS enabled, users will see a CORS error/warning message in the console of the page making the request. If you don't have CORS enabled, users will see a CORS error/warning message in the console of the page making the request.
{{site.data.alerts.tip}} If enabling CORS is problematic, you could always just send developers the tooltips.json file and ask them to place it on their own server. {{site.data.alerts.end}} {{site.data.alerts.tip}} If enabling CORS is problematic, you could always just send developers the tooltips.json file and ask them to place it on their own server. {{site.data.alerts.end}}
@ -226,14 +224,14 @@ $.get( url, function( data ) {
}); });
}); });
}); });
</script>{% endraw %} </script>{% endraw %}
``` ```
View the <a target="_blank" href="{{ "/tooltips" | prepend: site.baseurl}}" class="noCrossRef">tooltip demo</a> for a demo. View the <a target="_blank" href="{{ "/tooltips" | prepend: site.baseurl}}" class="noCrossRef">tooltip demo</a> for a demo.
The `url` in the demo is relative, but you could equally point it to an absolute path on a remote host assuming CORS is enabled on the host. The `url` in the demo is relative, but you could equally point it to an absolute path on a remote host assuming CORS is enabled on the host.
The `each` method looks through all the JSON content to find the item whose `page.id` is equal to `basketball`. It then looks for an element on the page named `#basketball` and adds a `data-content` attribute to that element. The `each` method looks through all the JSON content to find the item whose `page.id` is equal to `basketball`. It then looks for an element on the page named `#basketball` and adds a `data-content` attribute to that element.
@ -249,7 +247,7 @@ Here's the section on the page where the popover is inserted:
Notice that I just have `id="basketball"` added to this popover element. Developers merely need to add a unique ID to each tooltip they want to pull in the help content. Either you tell developers the unique ID they should add, or ask them what IDs they added (or just tell them to use an ID that matches the field's name). Notice that I just have `id="basketball"` added to this popover element. Developers merely need to add a unique ID to each tooltip they want to pull in the help content. Either you tell developers the unique ID they should add, or ask them what IDs they added (or just tell them to use an ID that matches the field's name).
In order to use jQuery and Bootstrap, you'll need to add the appropriate references in the head tags of your page: In order to use jQuery and Bootstrap, you'll need to add the appropriate references in the head tags of your page:
```js ```js
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
@ -269,13 +267,13 @@ Again, see the <a class="noCrossRef" href="/tooltips">Tooltip Demo</a> for a dem
Note that even though you reference a Bootstrap JS script, Bootstrap's popovers require you to initialize them using the above code as well &mdash; they aren't turned on by default. Note that even though you reference a Bootstrap JS script, Bootstrap's popovers require you to initialize them using the above code as well &mdash; they aren't turned on by default.
View the source code of the <a target="_blank" href="{{ "/tooltips" | prepend: site.baseurl}}" class="noCrossRef">tooltip demo</a> for the full comments. View the source code of the <a target="_blank" href="{{ "/tooltips" | prepend: site.baseurl}}" class="noCrossRef">tooltip demo</a> for the full comments.
## 8. Create easy links to embed the help in your help site ## 8. Create easy links to embed the help in your help site
You might also want to insert the same content into different parts of your help site. For example, if you have tooltips providing definitions for fields, you'll probably want to create a page in your help that lists those same definitions. You might also want to insert the same content into different parts of your help site. For example, if you have tooltips providing definitions for fields, you'll probably want to create a page in your help that lists those same definitions.
You could use the same method developers use to pull help content into their applications. But it will probably be easier to simply use Jekyll's tags for doing it. You could use the same method developers use to pull help content into their applications. But it will probably be easier to simply use Jekyll's tags for doing it.
Here's how you would reuse the content: Here's how you would reuse the content:
@ -316,7 +314,7 @@ Here's how you would reuse the content:
</table>{% endraw %} </table>{% endraw %}
``` ```
And here's the code: And here's the code:
<h2>Reuse Demo</h2> <h2>Reuse Demo</h2>
@ -352,4 +350,4 @@ And here's the code:
</tbody> </tbody>
</table> </table>
Now you have both documentation and UI tooltips generated from the same definitions file. Now you have both documentation and UI tooltips generated from the same definitions file.

View File

@ -7,8 +7,6 @@ summary: "When creating links, you can use standard HTML or Markdown formatting.
last_updated: March 20, 2016 last_updated: March 20, 2016
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_hyperlinks/ permalink: /mydoc_hyperlinks/
category: Formatting
weight: 6
--- ---
## Create an external link ## Create an external link
@ -42,10 +40,10 @@ OR
## Managed Links ## Managed Links
You can also adopt an indirect-reference systems for managing links. This "managed links" approach involves storing the link text in YAML syntax. You can also adopt an indirect-reference systems for managing links. This "managed links" approach involves storing the link text in YAML syntax.
Look at the urls.txt file in the root directory. The urls.txt file contains more or less the same code as the table of contents (but without the conditional qualifiers). A `for` loop runs each of the product sidebars listed in the frontmatter through the url generator.
Look at the urls.txt file in the root directory. The urls.txt file contains more or less the same code as the table of contents (but without the conditional qualifiers). A `for` loop runs each of the product sidebars listed in the frontmatter through the url generator. The code iterates through every page listed in the table of contents sidebars (as well as the top navigation menus) and creates an output that looks like this for each link:
The code iterates through every page listed in the table of contents sidebars (as well as the top navigation menus) and creates an output that looks like this for each link:
```yaml ```yaml
mydoc_introduction: mydoc_introduction:
@ -75,8 +73,8 @@ From the site output folder (in \_site), open urls.txt and observe that it is pr
This will move and rename the file through a script. This will move and rename the file through a script.
Because the urls.txt is produced from the table of contents, you ensure that the same titles and URLs used in your table of contents and top navigation will also be used in your inline links. Because the urls.txt is produced from the table of contents, you ensure that the same titles and URLs used in your table of contents and top navigation will also be used in your inline links.
To create a link in a topic, just reference the appropriate value in the urls.yml file, like this: To create a link in a topic, just reference the appropriate value in the urls.yml file, like this:
{% raw %} {% raw %}
@ -91,7 +89,7 @@ This will insert the following into your topic:
<a href='/mydoc_getting_started/'>Getting started</a> <a href='/mydoc_getting_started/'>Getting started</a>
``` ```
You don't need to worry whether you can use Markdown syntax when inserting a link this way, because the code that gets inserted is HTML. You don't need to worry whether you can use Markdown syntax when inserting a link this way, because the code that gets inserted is HTML.
To insert a link in the context of a phrase, you can use this syntax: To insert a link in the context of a phrase, you can use this syntax:
@ -103,7 +101,7 @@ After downloading the theme, you can [get started in building the theme]({{site.
Note that `.url` is used instead of `.link` when using customized text links like this. Note that `.url` is used instead of `.link` when using customized text links like this.
If you're in HTML and can't use Markdown, then use the following code: If you're in HTML and can't use Markdown, then use the following code:
{% raw %} {% raw %}
```html ```html
@ -114,7 +112,7 @@ If you're in HTML and can't use Markdown, then use the following code:
The `url` value accesses the URL for the page only, whereas `link` gets the title and url in a link format. The `url` value accesses the URL for the page only, whereas `link` gets the title and url in a link format.
You shouldn't have to transfer the contents from the urls.txt file into your YAML data source too often &mdash; only when you're creating new pages. You shouldn't have to transfer the contents from the urls.txt file into your YAML data source too often &mdash; only when you're creating new pages.
I also added a simple script called "run.sh" that performs the urls-update.sh command prior to running Jekyll serve, so you can kill two birds with one stone. I also added a simple script called "run.sh" that performs the urls-update.sh command prior to running Jekyll serve, so you can kill two birds with one stone.
Note that for the index.html file, which doesn't have a permalink, this file is not included in the urls.txt generation. The frontmatter in the index.md file (`type: homepage`) triggers an exclusion from urls.txt because the empty name makes the yaml file invalid. To link to the homepage, just refer users to the root url of your site {% raw %}(`{{site.url}}` or `{{site.url}}{{site.baseurl}}`{% endraw %}). Note that for the index.html file, which doesn't have a permalink, this file is not included in the urls.txt generation. The frontmatter in the index.md file (`type: homepage`) triggers an exclusion from urls.txt because the empty name makes the yaml file invalid. To link to the homepage, just refer users to the root url of your site {% raw %}(`{{site.url}}` or `{{site.url}}{{site.baseurl}}`{% endraw %}).
@ -143,7 +141,7 @@ Or using HTML:
{%raw%}<a href="{{site.data.urls.your-page-permalink.url | append: "#myheading"}}">{{site.data.urls.your-page-permalink.title}}</a>{%endraw%} {%raw%}<a href="{{site.data.urls.your-page-permalink.url | append: "#myheading"}}">{{site.data.urls.your-page-permalink.title}}</a>{%endraw%}
``` ```
Granted, this is somewhat long, but it's the only way to continue to leverage the automated links from urls.yaml. You want to avoid manually referencing links since they are much more prone to break when you specify them that way. Granted, this is somewhat long, but it's the only way to continue to leverage the automated links from urls.yaml. You want to avoid manually referencing links since they are much more prone to break when you specify them that way.
However, I'm not too worried about this lengthy syntax because I think linking to sections on pages is somewhat fragile anyway. When you're editing sections, you generally don't know what URLs you have pointing to that section. The custom ID tag on that section is the best reminder that you are linking to the section. However, I'm not too worried about this lengthy syntax because I think linking to sections on pages is somewhat fragile anyway. When you're editing sections, you generally don't know what URLs you have pointing to that section. The custom ID tag on that section is the best reminder that you are linking to the section.
@ -157,7 +155,7 @@ If you're just linking to a section on the same page, the syntax is simple:
## How to tell what links point to a page ## How to tell what links point to a page
There's no automated way to tell what links you have pointing to a page. This is one of the shortcomings of static site generators. The only way is to search your project for the page title. This is simple in Webstorm (Cmd + Shift + F), and it's one of the reasons I like Webstorm. There's no automated way to tell what links you have pointing to a page. This is one of the shortcomings of static site generators. The only way is to search your project for the page title. This is simple in Webstorm (Cmd + Shift + F), and it's one of the reasons I like Webstorm.
If you change a page title, you generally want to search in your project and update all references to the page to the new page name. You can do this easily through the Global Replace command (Cmd + Shift + R). If you change a page title, you generally want to search in your project and update all references to the page to the new page name. You can do this easily through the Global Replace command (Cmd + Shift + R).
@ -167,7 +165,7 @@ If you change a page title, you generally want to search in your project and upd
You should treat your sidebar data files (in /_data/sidebars) with a lot of care. Every time you add a page to your site, make sure it's listed in your sidebar file (or in your top navigation). If you don't have pages listed in your sidebar file, they won't be included in the urls.txt file, and as your site grows, it will be harder to recognize pages that are absent from the TOC. You should treat your sidebar data files (in /_data/sidebars) with a lot of care. Every time you add a page to your site, make sure it's listed in your sidebar file (or in your top navigation). If you don't have pages listed in your sidebar file, they won't be included in the urls.txt file, and as your site grows, it will be harder to recognize pages that are absent from the TOC.
Because all the pages are stored in the root directory, the list of files can grow really long. I typically find pages by navigating to the page in the preview server, copying the page name (e.g., mydoc_hyperlinks), and then pressing **Shift + Shift** in WebStorm to locate the page. Because all the pages are stored in the root directory, the list of files can grow really long. I typically find pages by navigating to the page in the preview server, copying the page name (e.g., mydoc_hyperlinks), and then pressing **Shift + Shift** in WebStorm to locate the page.
This is the only sane way to locate your pages when you have hundreds of pages in your root directory. If the page isn't listed in your TOC, it will be difficult to navigate to it and find it. This is the only sane way to locate your pages when you have hundreds of pages in your root directory. If the page isn't listed in your TOC, it will be difficult to navigate to it and find it.
## Checking for broken links ## Checking for broken links
@ -179,7 +177,7 @@ One way to ensure you don't have any broken links in your output is to [generate
Both instances indicate a broken link. The "page 0" indicates that Prince XML couldn't find the page that the link points to, and so it can't create a cross reference. This may be because the page doesn't exist, or because the anchor is pointing to a missing location. Both instances indicate a broken link. The "page 0" indicates that Prince XML couldn't find the page that the link points to, and so it can't create a cross reference. This may be because the page doesn't exist, or because the anchor is pointing to a missing location.
If you see "see ." it means that the reference (for example, {% raw %}`{{mylink...}}`{% endraw %} doesn't actually refer to anything. As a result, it's simply blank in the output. If you see "see ." it means that the reference (for example, {% raw %}`{{mylink...}}`{% endraw %} doesn't actually refer to anything. As a result, it's simply blank in the output.
{{site.data.alerts.note}} To keep Prince XML from trying to insert a cross reference into a link, add <code>class="noCrossRef"</code> to the link. {{site.data.alerts.end}} {{site.data.alerts.note}} To keep Prince XML from trying to insert a cross reference into a link, add <code>class="noCrossRef"</code> to the link. {{site.data.alerts.end}}
@ -189,4 +187,4 @@ In general, avoid broken links and outdated titles in links by doing the followi
* Where possible, avoid using the exact titles in link names. For example, if you write, see the <a href="{{ "/mydoc_hyperlinks/" | prepend: site.baseurl}}">Links</a> page, this title is likely to become more outdated than if you were to write, learn how to <a href="{{ "/mydoc_hyperlinks/" | prepend: site.baseurl}}">manage links</a>. * Where possible, avoid using the exact titles in link names. For example, if you write, see the <a href="{{ "/mydoc_hyperlinks/" | prepend: site.baseurl}}">Links</a> page, this title is likely to become more outdated than if you were to write, learn how to <a href="{{ "/mydoc_hyperlinks/" | prepend: site.baseurl}}">manage links</a>.
* Use a broken link checker on your site output to see if links are broken. * Use a broken link checker on your site output to see if links are broken.
* Generate a PDF, since the PDF tends to highlight broken links more forcefully. * Generate a PDF, since the PDF tends to highlight broken links more forcefully.

View File

@ -1,14 +1,11 @@
--- ---
title: Icons title: Icons
tags: tags: [formatting]
- formatting
keywords: font icons, buttons, images, vectors, font awesome, glyphicons keywords: font icons, buttons, images, vectors, font awesome, glyphicons
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "You can integrate font icons through the Font Awesome and Glyphical Halflings libraries. These libraries allow you to embed icons through their libraries delivered as a link reference. You don't need any image libraries downloaded in your project." summary: "You can integrate font icons through the Font Awesome and Glyphical Halflings libraries. These libraries allow you to embed icons through their libraries delivered as a link reference. You don't need any image libraries downloaded in your project."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_icons/ permalink: /mydoc_icons/
category: Formatting
weight: 3
--- ---
## Font icon options ## Font icon options
@ -135,7 +132,7 @@ Then any element with the attribute `fa-10x` will be enlarged 1700%.
## Glyphicon icons available ## Glyphicon icons available
Glyphicons work similarly to Font Awesome. Go to the [Glyphicons library](http://getbootstrap.com/components/#glyphicons) to see the icons available. Glyphicons work similarly to Font Awesome. Go to the [Glyphicons library](http://getbootstrap.com/components/#glyphicons) to see the icons available.
Although the Glyphicon Halflings library doesn't provide the scalable classes like Font Awesome, there's a [StackOverflow trick](http://stackoverflow.com/questions/24960201/how-do-i-make-glyphicons-bigger-change-size) to make the icons behave in a similar way. This theme's stylesheet (customstyles.css) includes the following to the stylesheet: Although the Glyphicon Halflings library doesn't provide the scalable classes like Font Awesome, there's a [StackOverflow trick](http://stackoverflow.com/questions/24960201/how-do-i-make-glyphicons-bigger-change-size) to make the icons behave in a similar way. This theme's stylesheet (customstyles.css) includes the following to the stylesheet:
@ -156,7 +153,7 @@ And here's the result:
<span class="glyphicon glyphicon-globe gi-5x"></span> <span class="glyphicon glyphicon-globe gi-5x"></span>
Glypicons use the `span` element instead of `i` to attach their classes. Glypicons use the `span` element instead of `i` to attach their classes.
Here's another example: Here's another example:
@ -214,14 +211,15 @@ Here's the result:
You can use any of the following: You can use any of the following:
{% raw %} {% raw %}
``` ```
{{site.data.alerts.callout_default}} {{site.data.alerts.callout_default}}
{{site.data.alerts.callout_primary}} {{site.data.alerts.callout_primary}}
{{site.data.alerts.callout_success}} {{site.data.alerts.callout_success}}
{{site.data.alerts.callout_info}} {{site.data.alerts.callout_info}}
{{site.data.alerts.callout_warning}} {{site.data.alerts.callout_warning}}
``` ```
{% endraw %} {% endraw %}
The only difference is the color of the left bar. The only difference is the color of the left bar.
Callouts are explained in a bit more detail in <a href="{{ "/mydoc_alerts" | prepend: site.baseurl }}">Alerts</a>. Callouts are explained in a bit more detail in <a href="{{ "/mydoc_alerts" | prepend: site.baseurl }}">Alerts</a>.

View File

@ -1,14 +1,11 @@
--- ---
title: Images title: Images
tags: tags: [formatting]
- formatting
keywords: images, screenshots, vectors, svg, markdown syntax keywords: images, screenshots, vectors, svg, markdown syntax
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "Store images in the images folder and use the image.html include to insert images. This include has several options, including figcaptions, that extract the content from the formatting." summary: "Store images in the images folder and use the image.html include to insert images. This include has several options, including figcaptions, that extract the content from the formatting."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_images/ permalink: /mydoc_images/
category: Formatting
weight: 4
--- ---
## Image Include Template ## Image Include Template

View File

@ -5,35 +5,33 @@ keywords:
summary: "Installation of Jekyll on Mac is usually less problematic than on Windows. However, you may run into permissions issues with Ruby that you must overcome. You should also use Bundler to be sure that you have all the required gems and other utilities on your computer to make the project run. " summary: "Installation of Jekyll on Mac is usually less problematic than on Windows. However, you may run into permissions issues with Ruby that you must overcome. You should also use Bundler to be sure that you have all the required gems and other utilities on your computer to make the project run. "
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_install_jekyll_on_mac/ permalink: /mydoc_install_jekyll_on_mac/
category: Installation
weight: 2
--- ---
## Ruby and RubyGems ## Ruby and RubyGems
Ruby and [RubyGems](https://rubygems.org/pages/download) are usually installed by default on Macs. Open your Terminal and type `which ruby` and `which gem` to confirm that you have Ruby and Rubygems. You should get a response indicating the location of Ruby and Rubygems. Ruby and [RubyGems](https://rubygems.org/pages/download) are usually installed by default on Macs. Open your Terminal and type `which ruby` and `which gem` to confirm that you have Ruby and Rubygems. You should get a response indicating the location of Ruby and Rubygems.
If you get responses that look like this: If you get responses that look like this:
``` ```
/usr/local/bin/ruby /usr/local/bin/ruby
``` ```
and and
``` ```
/usr/local/bin/gem /usr/local/bin/gem
``` ```
Great! Skip down to the [Bundler](#bundler) section. Great! Skip down to the [Bundler](#bundler) section.
However, if your location is something like `/Users/MacBookPro/.rvm/rubies/ruby-2.2.1/bin/gem`, which points to your system location of Rubygems, you will likely run into permissions errors when trying to get a gem. A sample permissions error (triggered when you try to install the jekyll gem such as `gem install jekyll`) might look like this for Rubygems: However, if your location is something like `/Users/MacBookPro/.rvm/rubies/ruby-2.2.1/bin/gem`, which points to your system location of Rubygems, you will likely run into permissions errors when trying to get a gem. A sample permissions error (triggered when you try to install the jekyll gem such as `gem install jekyll`) might look like this for Rubygems:
``` ```
>ERROR: While executing gem ... (Gem::FilePermissionError) >ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory. You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
``` ```
Instead of changing the write permissions on your operating system's version of Ruby and Rubygems (which could pose security issues), you can install another instance of Ruby (one that is writable) to get around this. Instead of changing the write permissions on your operating system's version of Ruby and Rubygems (which could pose security issues), you can install another instance of Ruby (one that is writable) to get around this.
## Install Homebrew ## Install Homebrew
@ -58,7 +56,7 @@ Now use Homebrew to install Ruby:
brew install ruby brew install ruby
``` ```
Log out of terminal, and then then log back in. Log out of terminal, and then then log back in.
When you type `which ruby` and `which gem`, you should get responses like this: When you type `which ruby` and `which gem`, you should get responses like this:
@ -78,7 +76,7 @@ Note that if you don't see these paths, try restarting your computer or try inst
<h2 id="bundler">Install the Jekyll gem</h2> <h2 id="bundler">Install the Jekyll gem</h2>
At this point you should have a writeable version of Ruby and Rubygem on your machine. At this point you should have a writeable version of Ruby and Rubygem on your machine.
Now use `gem` to install Jekyll: Now use `gem` to install Jekyll:
@ -92,7 +90,7 @@ You can now use Jekyll to create new Jekyll sites following the quick-start inst
Some Jekyll themes will require certain Ruby gem dependencies. These dependencies are stored in something called a Gemfile, which is packaged with the Jekyll theme. You can install these dependencies through Bundler. (Although you don't need to install Bundler for this Documentation theme, it's a good idea to do so.) Some Jekyll themes will require certain Ruby gem dependencies. These dependencies are stored in something called a Gemfile, which is packaged with the Jekyll theme. You can install these dependencies through Bundler. (Although you don't need to install Bundler for this Documentation theme, it's a good idea to do so.)
[Bundler](http://bundler.io/) is a package manager for RubyGems. You can use it to get all the gems (or Ruby plugins) that you need for your Jekyll project. [Bundler](http://bundler.io/) is a package manager for RubyGems. You can use it to get all the gems (or Ruby plugins) that you need for your Jekyll project.
You install Bundler by using the gem command with RubyGems: You install Bundler by using the gem command with RubyGems:
@ -110,4 +108,4 @@ The vanilla Jekyll site you create through `jekyll new my-awesome-site` doesn't
1. Browse to the directory where you downloaded the Documentation theme for Jekyll. 1. Browse to the directory where you downloaded the Documentation theme for Jekyll.
2. Type `jekyll serve` 2. Type `jekyll serve`
3. Go to the preview address in the browser. (Make sure you include the `/` at the end.) 3. Go to the preview address in the browser. (Make sure you include the `/` at the end.)

View File

@ -3,17 +3,15 @@ title: Install Jekyll on Windows
permalink: /mydoc_install_jekyll_on_windows/ permalink: /mydoc_install_jekyll_on_windows/
keywords: jekyll on windows, pc, ruby, ruby dev kit keywords: jekyll on windows, pc, ruby, ruby dev kit
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
category: Installation
weight: 3
--- ---
{{site.data.alerts.tip}} For a better terminal emulator on Windows, use [Git Bash](https://git-for-windows.github.io/). Git Bash gives you Linux-like control on Windows. {{site.data.alerts.end}} {{site.data.alerts.tip}} For a better terminal emulator on Windows, use [Git Bash](https://git-for-windows.github.io/). Git Bash gives you Linux-like control on Windows. {{site.data.alerts.end}}
## Install Ruby ## Install Ruby
First you must install Ruby because Jekyll is a Ruby-based program and needs Ruby to run. First you must install Ruby because Jekyll is a Ruby-based program and needs Ruby to run.
1. Go to [RubyInstaller for Windows](http://rubyinstaller.org/downloads/). 1. Go to [RubyInstaller for Windows](http://rubyinstaller.org/downloads/).
2. Under **RubyInstallers**, download and install one of the Ruby installers (usually one of the first two options). 2. Under **RubyInstallers**, download and install one of the Ruby installers (usually one of the first two options).
3. Double-click the downloaded file and proceed through the wizard to install it. 3. Double-click the downloaded file and proceed through the wizard to install it.
@ -21,14 +19,14 @@ First you must install Ruby because Jekyll is a Ruby-based program and needs Rub
Some extensions Jekyll uses require you to natively build the code using the Ruby Development Kit. Some extensions Jekyll uses require you to natively build the code using the Ruby Development Kit.
1. Go to [RubyInstaller for Windows](http://rubyinstaller.org/downloads/). 1. Go to [RubyInstaller for Windows](http://rubyinstaller.org/downloads/).
2. Under the **Development Kit** section near the bottom, download one of the **For use with Ruby 2.0 and above...** options (either the 32-bit or 64-bit version). 2. Under the **Development Kit** section near the bottom, download one of the **For use with Ruby 2.0 and above...** options (either the 32-bit or 64-bit version).
3. Move your downloaded file onto your **C** drive in a folder called something like **RubyDevKit**. 3. Move your downloaded file onto your **C** drive in a folder called something like **RubyDevKit**.
4. Extract the compressed folder's contents into the folder. 4. Extract the compressed folder's contents into the folder.
5. Browse to the **RubyDevKit** location on your C drive using your Command Line Prompt. 5. Browse to the **RubyDevKit** location on your C drive using your Command Line Prompt.
To see the contents of your current directory, type <code>dir</code>. To move into a directory, type <code>cd foldername</code>, where "foldername" is the name of the folder you want to enter. To move up a directory, type <code>cd ../</code> one or more times depending on how many levels you want to move up. To move into your user's directory, type <code>/users</code>. The <code>/</code> at the beginning of the path automatically starts you at the root. To see the contents of your current directory, type <code>dir</code>. To move into a directory, type <code>cd foldername</code>, where "foldername" is the name of the folder you want to enter. To move up a directory, type <code>cd ../</code> one or more times depending on how many levels you want to move up. To move into your user's directory, type <code>/users</code>. The <code>/</code> at the beginning of the path automatically starts you at the root.
6. Type `ruby dk.rb init` 6. Type `ruby dk.rb init`
7. Type `ruby dk.rb install` 7. Type `ruby dk.rb install`
@ -36,7 +34,7 @@ If you get stuck, see the [official instructions for installing Ruby Dev Kit](ht
<h2 id="bundler">Install the Jekyll gem</h2> <h2 id="bundler">Install the Jekyll gem</h2>
At this point you should have Ruby and Rubygem on your machine. At this point you should have Ruby and Rubygem on your machine.
Now use `gem` to install Jekyll: Now use `gem` to install Jekyll:
@ -50,7 +48,7 @@ You can now use Jekyll to create new Jekyll sites following the quick-start inst
Some Jekyll themes will require certain Ruby gem dependencies. These dependencies are stored in something called a Gemfile, which is packaged with the Jekyll theme. You can install these dependencies through Bundler. (Although you don't need to install Bundler for this Documentation theme, it's a good idea to do so.) Some Jekyll themes will require certain Ruby gem dependencies. These dependencies are stored in something called a Gemfile, which is packaged with the Jekyll theme. You can install these dependencies through Bundler. (Although you don't need to install Bundler for this Documentation theme, it's a good idea to do so.)
[Bundler](http://bundler.io/) is a package manager for RubyGems. You can use it to get all the gems (or Ruby plugins) that you need for your Jekyll project. [Bundler](http://bundler.io/) is a package manager for RubyGems. You can use it to get all the gems (or Ruby plugins) that you need for your Jekyll project.
You install Bundler by using the gem command with RubyGems: You install Bundler by using the gem command with RubyGems:
@ -59,26 +57,26 @@ You install Bundler by using the gem command with RubyGems:
1. Install Bundler: `gem install bundler` 1. Install Bundler: `gem install bundler`
2. Initialize Bundler: `bundle init` 2. Initialize Bundler: `bundle init`
This will create a new Gemfile. This will create a new Gemfile.
3. Open the Gemfile in a text editor. 3. Open the Gemfile in a text editor.
Typically you can open files from the Command Prompt by just typing the filename, but because Gemfile doesn't have a file extension, no program will automatically open it. You may need to use your File Explorer and browse to the directory, and then open the Gemfile in a text editor such as Notepad. Typically you can open files from the Command Prompt by just typing the filename, but because Gemfile doesn't have a file extension, no program will automatically open it. You may need to use your File Explorer and browse to the directory, and then open the Gemfile in a text editor such as Notepad.
4. Remove the existing contents. Then paste in the following: 4. Remove the existing contents. Then paste in the following:
``` ```
source "https://rubygems.org" source "https://rubygems.org"
gem 'wdm' gem 'wdm'
gem 'jekyll' gem 'jekyll'
``` ```
The [wdm gem](https://rubygems.org/gems/wdm/versions/0.1.1) allows for the polling of the directory and rebuilding of the Jekyll site when you make changes. This gem is needed for Windows users, not Mac users. The [wdm gem](https://rubygems.org/gems/wdm/versions/0.1.1) allows for the polling of the directory and rebuilding of the Jekyll site when you make changes. This gem is needed for Windows users, not Mac users.
6. Save and close the file. 6. Save and close the file.
7. Type `bundle install`. 7. Type `bundle install`.
Bundle retrieves all the needed gems and gem dependencies and downloads them to your computer. At this time, Bundle also takes a snapshot of all the gems used in your project and creates a Gemfile.lock file to store this information. Bundle retrieves all the needed gems and gem dependencies and downloads them to your computer. At this time, Bundle also takes a snapshot of all the gems used in your project and creates a Gemfile.lock file to store this information.
## Serve the Jekyll Documentation theme ## Serve the Jekyll Documentation theme
@ -86,5 +84,5 @@ You install Bundler by using the gem command with RubyGems:
1. Browse to the directory where you downloaded the Documentation theme for Jekyll. 1. Browse to the directory where you downloaded the Documentation theme for Jekyll.
2. Type `jekyll serve` 2. Type `jekyll serve`
3. Go to the preview address in the browser. (Make sure you include the `/` at the end.) 3. Go to the preview address in the browser. (Make sure you include the `/` at the end.)
Unfortunately, the Command Prompt doesn't allow you to easily copy and paste the URL, so you'll have to type it manually. Unfortunately, the Command Prompt doesn't allow you to easily copy and paste the URL, so you'll have to type it manually.

View File

@ -2,7 +2,6 @@
title: Introduction title: Introduction
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_introduction/ permalink: /mydoc_introduction/
category: Overview
--- ---
## Overview ## Overview

View File

@ -1,13 +1,11 @@
--- ---
title: iTerm profiles title: iTerm profiles
tags: [publishing] tags: [publishing]
keywords: iterm, terminal, build shortcuts, mac keywords: iterm, terminal, build shortcuts, mac
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "You can set up profiles in iTerm to facilitate the build process with just a few clicks. This can make it a lot easier to quickly build multiple outputs." summary: "You can set up profiles in iTerm to facilitate the build process with just a few clicks. This can make it a lot easier to quickly build multiple outputs."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_iterm_profiles/ permalink: /mydoc_iterm_profiles/
category: Publishing
weight: 7
--- ---
## About iTerm profiles ## About iTerm profiles
@ -26,7 +24,7 @@ When you're working with tech docs, a lot of times you have builds that push fil
JEKYLL_ENV=production jekyll serve JEKYLL_ENV=production jekyll serve
``` ```
Leave the Login shell option selected. Leave the Login shell option selected.
6. In the Working Directory section, select **Directory** and enter the directory for your project, such as **/Users/tjohnson/projects/documentation-theme-jekyll**. 6. In the Working Directory section, select **Directory** and enter the directory for your project, such as **/Users/tjohnson/projects/documentation-theme-jekyll**.
7. Close the profiles panel. 7. Close the profiles panel.
@ -39,4 +37,4 @@ Here's an example:
1. In iTerm, make sure the Toolbar is shown. Go to **View > Toggle Toolbar**. 1. In iTerm, make sure the Toolbar is shown. Go to **View > Toggle Toolbar**.
2. Click the **New** button and select your profile. 2. Click the **New** button and select your profile.
{{site.data.alerts.tip}} When you're done with the session, make sure to click <b>Ctrl+C</b>.{{site.data.alerts.end}} {{site.data.alerts.tip}} When you're done with the session, make sure to click <b>Ctrl+C</b>.{{site.data.alerts.end}}

View File

@ -7,8 +7,6 @@ summary: "This shows a sample layout for a knowledge base. Each square could lin
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_kb_layout/ permalink: /mydoc_kb_layout/
toc: false toc: false
category: Special layouts
weight: 1
--- ---
Here's the sample knowledge-base style layout: Here's the sample knowledge-base style layout:
@ -78,8 +76,8 @@ Here's the sample knowledge-base style layout:
</div> </div>
</div> </div>
</div> </div>
## Generating a list of all pages with a certain tag ## Generating a list of all pages with a certain tag
If you don't want to link to a tag archive index, but instead want to list all pages that have a certain tag, you could use this code: If you don't want to link to a tag archive index, but instead want to list all pages that have a certain tag, you could use this code:
@ -94,7 +92,7 @@ If you don't want to link to a tag archive index, but instead want to list all p
<li><a href="{{ page.url | prepend: site.baseurl}}">{{page.title}}</a></li> <li><a href="{{ page.url | prepend: site.baseurl}}">{{page.title}}</a></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</ul>{% endraw %} </ul>{% endraw %}
``` ```
@ -110,5 +108,5 @@ Getting started pages:
<li><a href="{{page.url | prepend: site.baseurl }}">{{page.title}}</a></li> <li><a href="{{page.url | prepend: site.baseurl }}">{{page.title}}</a></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</ul> </ul>

View File

@ -1,14 +1,11 @@
--- ---
title: Labels title: Labels
tags: tags: [formatting]
- formatting
keywords: labels, buttons, bootstrap, api methods keywords: labels, buttons, bootstrap, api methods
last_updated: March 20, 2016 last_updated: March 20, 2016
summary: "Labels are just a simple Bootstrap component that you can include in your pages as needed. They represent one of many Bootstrap options you can include in your theme." summary: "Labels are just a simple Bootstrap component that you can include in your pages as needed. They represent one of many Bootstrap options you can include in your theme."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_labels/ permalink: /mydoc_labels/
category: Formatting
weight: 5
--- ---
@ -31,4 +28,4 @@ Labels might come in handy for adding button-like tags next to elements, such as
<span class="label label-warning">Warning</span> <span class="label label-warning">Warning</span>
<span class="label label-danger">Danger</span> <span class="label label-danger">Danger</span>
You can have a label appear within a heading simply by including the span tag in the heading. However, you can't mix Markdown syntax with HTML, so you'd have to hard-code the heading ID for the auto-TOC to work. You can have a label appear within a heading simply by including the span tag in the heading. However, you can't mix Markdown syntax with HTML, so you'd have to hard-code the heading ID for the auto-TOC to work.

View File

@ -6,14 +6,12 @@ last_updated: March 20, 2016
summary: "Navtabs provide a tab-based navagation directly in your content, allowing users to click from tab to tab to see different panels of content. Navtabs are especially helpful for showing code samples for different programming languages. The only downside to using navtabs is that you must use HTML instead of Markdown." summary: "Navtabs provide a tab-based navagation directly in your content, allowing users to click from tab to tab to see different panels of content. Navtabs are especially helpful for showing code samples for different programming languages. The only downside to using navtabs is that you must use HTML instead of Markdown."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_navtabs/ permalink: /mydoc_navtabs/
category: Formatting
weight: 7
--- ---
## Common uses ## Common uses
Navtabs are particularly useful for scenarios where you want to show a variety of options, such as code samples for Java, .NET, or PHP, on the same page. Navtabs are particularly useful for scenarios where you want to show a variety of options, such as code samples for Java, .NET, or PHP, on the same page.
While you could resort to single-source publishing to provide different outputs for each unique programming language or role, you could also use navtabs to allow users to select the content you want. While you could resort to single-source publishing to provide different outputs for each unique programming language or role, you could also use navtabs to allow users to select the content you want.
@ -22,15 +20,15 @@ Navtabs are better for SEO since you avoid duplicate content and drive users to
## Navtabs demo ## Navtabs demo
The following is a demo of a navtab. Refresh your page to see the tab you selected remain active. The following is a demo of a navtab. Refresh your page to see the tab you selected remain active.
<ul id="profileTabs" class="nav nav-tabs"> <ul id="profileTabs" class="nav nav-tabs">
<li class="active"><a class="noCrossRef" href="#profile" data-toggle="tab">Profile</a></li> <li class="active"><a class="noCrossRef" href="#profile" data-toggle="tab">Profile</a></li>
<li><a class="noCrossRef" href="#about" data-toggle="tab">About</a></li> <li><a class="noCrossRef" href="#about" data-toggle="tab">About</a></li>
<li><a class="noCrossRef" href="#match" data-toggle="tab">Match</a></li> <li><a class="noCrossRef" href="#match" data-toggle="tab">Match</a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="profile"> <div role="tabpanel" class="tab-pane active" id="profile">
<h2>Profile</h2> <h2>Profile</h2>
<p>Praesent sit amet fermentum leo. Aliquam feugiat, nibh in u ltrices mattis, felis ipsum venenatis metus, vel vehicula libero mauris a enim. Sed placerat est ac lectus vestibulum tempor. Quisque ut condimentum massa. Proin venenatis leo id urna cursus blandit. Vivamus sit amet hendrerit metus.</p> <p>Praesent sit amet fermentum leo. Aliquam feugiat, nibh in u ltrices mattis, felis ipsum venenatis metus, vel vehicula libero mauris a enim. Sed placerat est ac lectus vestibulum tempor. Quisque ut condimentum massa. Proin venenatis leo id urna cursus blandit. Vivamus sit amet hendrerit metus.</p>
</div> </div>
@ -54,9 +52,9 @@ Here's the code for the above (with the filler text abbreviated):
<li><a href="#about" data-toggle="tab">About</a></li> <li><a href="#about" data-toggle="tab">About</a></li>
<li><a href="#match" data-toggle="tab">Match</a></li> <li><a href="#match" data-toggle="tab">Match</a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="profile"> <div role="tabpanel" class="tab-pane active" id="profile">
<h2>Profile</h2> <h2>Profile</h2>
<p>Praesent sit amet fermentum leo....</p> <p>Praesent sit amet fermentum leo....</p>
</div> </div>
@ -96,10 +94,11 @@ One of the tabs needs to be set as active, depending on what tab you want to be
## Sets a cookie ## Sets a cookie
The navtabs are part of Bootstrap, but this theme sets a cookie to remember the last tab's state. The js/customscripts.js file has a long chunk of JavaScript that sets the cookie. The JavaScript comes from [this StackOverflow thread](http://stackoverflow.com/questions/10523433/how-do-i-keep-the-current-tab-active-with-twitter-bootstrap-after-a-page-reload). The navtabs are part of Bootstrap, but this theme sets a cookie to remember the last tab's state. The js/customscripts.js file has a long chunk of JavaScript that sets the cookie. The JavaScript comes from [this StackOverflow thread](http://stackoverflow.com/questions/10523433/how-do-i-keep-the-current-tab-active-with-twitter-bootstrap-after-a-page-reload).
By setting a cookie, if the user refreshes the page, the active tab is the tab the user last selected (rather than defaulting to the default active tab). By setting a cookie, if the user refreshes the page, the active tab is the tab the user last selected (rather than defaulting to the default active tab).
## Functionality to implement ## Functionality to implement
One piece of functionality I'd like to implement is the ability to set site-wide nav tab options. For example, if the user always chooses PHP instead of Java in the code samples, it would be great to set this option site-wide by default. However, this functionality isn't yet coded. One piece of functionality I'd like to implement is the ability to set site-wide nav tab options. For example, if the user always chooses PHP instead of Java in the code samples, it would be great to set this option site-wide by default. However, this functionality isn't yet coded.

View File

@ -4,8 +4,6 @@ sidebar: mydoc_sidebar
tags: [publishing, troubleshooting] tags: [publishing, troubleshooting]
permalink: /mydoc_no_password_prompts_scp/ permalink: /mydoc_no_password_prompts_scp/
summary: "You can publish your docs via SSH through a Terminal window or more likely, via a shell script that you simply execute as part of the publishing process. However, you will be prompted for your password with each file transfer unless you configure passwordless SSH. The basic process for setting up password less SSH is to create a key on your own machine that you also transfer to the remote machine. When you use the SCP command, the remote machine checks that you have the authorized key and allows access without a password prompt." summary: "You can publish your docs via SSH through a Terminal window or more likely, via a shell script that you simply execute as part of the publishing process. However, you will be prompted for your password with each file transfer unless you configure passwordless SSH. The basic process for setting up password less SSH is to create a key on your own machine that you also transfer to the remote machine. When you use the SCP command, the remote machine checks that you have the authorized key and allows access without a password prompt."
category: Publishing
weight: 9
--- ---
## Get rid of password prompts ## Get rid of password prompts
@ -18,19 +16,19 @@ To remove the password prompts when connecting to servers via SSH:
``` ```
cd ~/.ssh cd ~/.ssh
``` ```
Note that any directory that starts with a dot, like .ssh, is hidden. You can view hidden folders by enabling them on your Mac. See [this help topic](http://ianlunn.co.uk/articles/quickly-showhide-hidden-files-mac-os-x-mavericks/). Additionally, when you look at the files in a directory, use ls -a instead of just ls to view the hidden files. Note that any directory that starts with a dot, like .ssh, is hidden. You can view hidden folders by enabling them on your Mac. See [this help topic](http://ianlunn.co.uk/articles/quickly-showhide-hidden-files-mac-os-x-mavericks/). Additionally, when you look at the files in a directory, use ls -a instead of just ls to view the hidden files.
If you don't have an .ssh directory, create one with `mkdir .ssh`. If you don't have an .ssh directory, create one with `mkdir .ssh`.
2. Create a new key inside your .ssh directory: 2. Create a new key inside your .ssh directory:
``` ```
ssh-keygen -t rsa ssh-keygen -t rsa
``` ```
3. Press **Enter**. When prompted about "Enter file in which to save the key ...", press ```Enter``` again. 3. Press **Enter**. When prompted about "Enter file in which to save the key ...", press ```Enter``` again.
This will create a file called id_rsa.pub (the key) and id_rsa (your identification) in this .ssh folder. This will create a file called id_rsa.pub (the key) and id_rsa (your identification) in this .ssh folder.
When prompted for a passphrase for the key, just leave it empty and press **Enter** twice. You should see something like this: When prompted for a passphrase for the key, just leave it empty and press **Enter** twice. You should see something like this:
@ -47,7 +45,7 @@ To remove the password prompts when connecting to servers via SSH:
``` ```
The key's randomart image is: The key's randomart image is:
``` ```
+--[ RSA 2048]----+ +--[ RSA 2048]----+
|. | |. |
@ -61,9 +59,9 @@ To remove the password prompts when connecting to servers via SSH:
| *.o | | *.o |
+-----------------+ +-----------------+
``` ```
As you can see, RSA draws a picture for you. Take a screenshot of the picture, print it out, and put it up on your fridge. As you can see, RSA draws a picture for you. Take a screenshot of the picture, print it out, and put it up on your fridge.
4. Open up another terminal window (in iTerm, open another tab), and SSH in to your remote server: 4. Open up another terminal window (in iTerm, open another tab), and SSH in to your remote server:
``` ```
@ -71,61 +69,61 @@ To remove the password prompts when connecting to servers via SSH:
``` ```
5. Change `<your_username>` to your actual username, such as tjohnson. 5. Change `<your_username>` to your actual username, such as tjohnson.
When you connect, you'll be prompted for your password. When you connect, you'll be prompted for your password.
When you connect, by default you are routed to the personal folder on the directory. For example, `/home/remoteserver/<your_username>`. To see this directory, type `pwd` (or `dir` on Windows). When you connect, by default you are routed to the personal folder on the directory. For example, `/home/remoteserver/<your_username>`. To see this directory, type `pwd` (or `dir` on Windows).
6. Create a new directory called .ssh on remoteserver.com server inside the `/home/remoteserver/<your_username>` directory. 6. Create a new directory called .ssh on remoteserver.com server inside the `/home/remoteserver/<your_username>` directory.
``` ```
mkdir -p .ssh mkdir -p .ssh
``` ```
You can ensure that it's there with this command: You can ensure that it's there with this command:
``` ```
ls -a ls -a
``` ```
Without the -a, the hidden directory won't be shown. Without the -a, the hidden directory won't be shown.
7. Open another Terminal window and browse to /Users/<your_username>/.ssh on your local machine. 7. Open another Terminal window and browse to /Users/<your_username>/.ssh on your local machine.
``` ```
cd ~/.ssh cd ~/.ssh
``` ```
8. Copy the id_rsa.pub from the /.ssh directory on your local machine to the /home/remoteserver/<your_username>/.ssh directory on the remoteserver server: 8. Copy the id_rsa.pub from the /.ssh directory on your local machine to the /home/remoteserver/<your_username>/.ssh directory on the remoteserver server:
``` ```
scp id_rsa.pub <your-username>@yourserver.com:/home/remoteserver/<your-username>/.ssh scp id_rsa.pub <your-username>@yourserver.com:/home/remoteserver/<your-username>/.ssh
``` ```
9. Switch back into your terminal window that is connected to remoteserver.com, change directory to the .ssh directory, and rename the file from id_rsa.pub to `authorized_keys` (without any file extension): 9. Switch back into your terminal window that is connected to remoteserver.com, change directory to the .ssh directory, and rename the file from id_rsa.pub to `authorized_keys` (without any file extension):
``` ```
mv id_rsa.pub authorized_keys mv id_rsa.pub authorized_keys
``` ```
10. Change the file permissions to 700: 10. Change the file permissions to 700:
``` ```
chmod 700 authorized_keys chmod 700 authorized_keys
``` ```
Now you should be able to SSH onto remoteserver without any password prompts. Now you should be able to SSH onto remoteserver without any password prompts.
11. Open another terminal (which is not already SSH'd into remoteserver.com) and try the following: 11. Open another terminal (which is not already SSH'd into remoteserver.com) and try the following:
``` ```
ssh <your_username>@remoteserver.com ssh <your_username>@remoteserver.com
``` ```
If successful, you shouldn't be prompted for a password. If successful, you shouldn't be prompted for a password.
Now that you can connect without password prompts, you can use the scp scripts to transfer files to the server without password prompts. For example: Now that you can connect without password prompts, you can use the scp scripts to transfer files to the server without password prompts. For example:
``` ```
scp -r ../doc_outputs/mydoc/writers <your-username>@remoteserver:/var/www/html/ scp -r ../doc_outputs/mydoc/writers <your-username>@remoteserver:/var/www/html/
``` ```

View File

@ -6,12 +6,10 @@ last_updated: March 20, 2016
summary: "This theme primarily uses pages. You need to make sure your pages have the appropriate frontmatter. One frontmatter tag your users might find helpful is the summary tag. This functions similar in purpose to the shortdesc element in DITA." summary: "This theme primarily uses pages. You need to make sure your pages have the appropriate frontmatter. One frontmatter tag your users might find helpful is the summary tag. This functions similar in purpose to the shortdesc element in DITA."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_pages/ permalink: /mydoc_pages/
category: Authoring
weight: 1
--- ---
## Where to author content ## Where to author content
Use a text editor such as Sublime Text, WebStorm, IntelliJ, or Atom to create pages. Use a text editor such as Sublime Text, WebStorm, IntelliJ, or Atom to create pages.
My preference is IntelliJ/WebStorm, since it will treat all files in your theme as belonging to a project. This allows you to easily search for instances of keywords, do find-and-replace operations, or do other actions that apply across the whole project. My preference is IntelliJ/WebStorm, since it will treat all files in your theme as belonging to a project. This allows you to easily search for instances of keywords, do find-and-replace operations, or do other actions that apply across the whole project.
@ -19,7 +17,7 @@ My preference is IntelliJ/WebStorm, since it will treat all files in your theme
By default, everything in your project is included in the output. You can exclude all files that don't belong to that project by specifying the file name, the folder name, or by using wildcards in your configuration file: By default, everything in your project is included in the output. You can exclude all files that don't belong to that project by specifying the file name, the folder name, or by using wildcards in your configuration file:
exclude: exclude:
- filename.md - filename.md
- subfolder_name/ - subfolder_name/
@ -61,7 +59,7 @@ The following table describes each of the frontmatter that you can use with this
| **datatable** | Optional | 'true'. If you add `datatable: true` in the frontmatter, scripts for the [jQuery Datatables plugin](https://www.datatables.net/) get included on the page. You can see the scripts that conditionally appear by looking in the \_layouts/default.html page. | | **datatable** | Optional | 'true'. If you add `datatable: true` in the frontmatter, scripts for the [jQuery Datatables plugin](https://www.datatables.net/) get included on the page. You can see the scripts that conditionally appear by looking in the \_layouts/default.html page. |
| toc | Optional | If you specify `toc: false` in the frontmatter, the page won't have the table of contents that appears below the title. The toc refers to the list of jump links below the page title, not the sidebar navigation. You probably want to hide the TOC on the homepage and product landing pages.| | toc | Optional | If you specify `toc: false` in the frontmatter, the page won't have the table of contents that appears below the title. The toc refers to the list of jump links below the page title, not the sidebar navigation. You probably want to hide the TOC on the homepage and product landing pages.|
## Colons in page titles ## Colons in page titles
If you want to use a colon in your page title, you must enclose the title's value in quotation marks. If you want to use a colon in your page title, you must enclose the title's value in quotation marks.
@ -74,7 +72,7 @@ If you add `published: false` in the frontmatter, your page won't be published.
## Markdown or HTML format ## Markdown or HTML format
Pages can be either Markdown or HTML format (specified through either an .md or .html file extension). Pages can be either Markdown or HTML format (specified through either an .md or .html file extension).
If you use Markdown, you can also include HTML formatting where needed. But not vice versa &mdash; if you use HTML (as your file extension), you can't insert Markdown content in the file. If you use Markdown, you can also include HTML formatting where needed. But not vice versa &mdash; if you use HTML (as your file extension), you can't insert Markdown content in the file.
Also, if you use HTML inside a Markdown file, you cannot use Markdown inside of HTML. But you can use HTML inside of Markdown. Also, if you use HTML inside a Markdown file, you cannot use Markdown inside of HTML. But you can use HTML inside of Markdown.
@ -85,11 +83,11 @@ If you have a lot of HTML, as long as the top and bottom tags of the HTML are fl
## Where to save pages ## Where to save pages
You can store your pages in any folder structures you want, with any level of folder nesting. The site output will pull all of those pages out of their folders and put them into the root directory. Check out the \_site folder, which is where Jekyll is generated, to see the difference between your project's structure and the resulting site output. You can store your pages in any folder structures you want, with any level of folder nesting. The site output will pull all of those pages out of their folders and put them into the root directory. Check out the \_site folder, which is where Jekyll is generated, to see the difference between your project's structure and the resulting site output.
## Page names ## Page names
I recommend prefixing your page names with the product, such as "mydoc_pages" instead of just "pages." This way if you have other products that also hae topics with generic names such as "pages," there won't be naming conflicts. I recommend prefixing your page names with the product, such as "mydoc_pages" instead of just "pages." This way if you have other products that also hae topics with generic names such as "pages," there won't be naming conflicts.
Additionally, consider adding the product name in parentheses after the title, such as "Pages (Mydoc)" so that users can clearly navigate different topics for each product. Additionally, consider adding the product name in parentheses after the title, such as "Pages (Mydoc)" so that users can clearly navigate different topics for each product.
@ -123,12 +121,12 @@ You can create other layouts inside the layouts folder. If you create a new layo
## Comments ## Comments
Disqus, a commenting system, is integrated into the theme. In the configuration file, specify the Disqus code for the universal code, and Disqus will appear. If you don't add a Disqus value, the Disqus form isn't included. Disqus, a commenting system, is integrated into the theme. In the configuration file, specify the Disqus code for the universal code, and Disqus will appear. If you don't add a Disqus value, the Disqus form isn't included.
## Custom keyboard shortcuts ## Custom keyboard shortcuts
Some of the Jekyll syntax can be slow to create. Using a utility such as [aText](https://www.trankynam.com/atext/) can make creating content a lot of faster. Some of the Jekyll syntax can be slow to create. Using a utility such as [aText](https://www.trankynam.com/atext/) can make creating content a lot of faster.
For example, with my aText configuration, when I type `jlink`, aText replaces it with {% raw %}`<a href="{{ "/page" | prepend: site.baseurl }}">page</a>`{% endraw %}. For example, with my aText configuration, when I type `jlink`, aText replaces it with {% raw %}`<a href="{{ "/page" | prepend: site.baseurl }}">page</a>`{% endraw %}.
You get aText from the App Store on a Mac for about $5. However, the Mac Store version of aText won't work on Mac OSX El Capitan due to sandbox security restrictions, so you need to download the app outside of the App Store to make it work. You get aText from the App Store on a Mac for about $5. However, the Mac Store version of aText won't work on Mac OSX El Capitan due to sandbox security restrictions, so you need to download the app outside of the App Store to make it work.

View File

@ -6,17 +6,15 @@ last_updated: Feb 25, 2016
summary: "You can use posts when you want to create blogs or news type of content." summary: "You can use posts when you want to create blogs or news type of content."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_posts/ permalink: /mydoc_posts/
category: Authoring
weight: 2
--- ---
## About posts ## About posts
Posts are typically used for blogs or other news information because they contain a date and are sorted in reverse chronological order. Posts are typically used for blogs or other news information because they contain a date and are sorted in reverse chronological order.
You create a post by adding a file in the \_posts folder that is named yyyy-mm-dddd-permalink.md, which might be 2016-02-25-my-latest-updates.md. You can use any number of subfolders here that you want. You create a post by adding a file in the \_posts folder that is named yyyy-mm-dddd-permalink.md, which might be 2016-02-25-my-latest-updates.md. You can use any number of subfolders here that you want.
Posts use the post.html layout in the \_layouts folder when you are viewing the post. Posts use the post.html layout in the \_layouts folder when you are viewing the post.
The news.html file in the root directory shows a reverse chronological listing of the 10 latest posts The news.html file in the root directory shows a reverse chronological listing of the 10 latest posts
@ -41,3 +39,6 @@ tags: content_types
| **keywords** | Optional | Synonyms and other keywords for the page. This information gets stuffed into the page's metadata to increase SEO. The user won't see the keywords, but if you search for one of the keywords, it will be picked up by the search engine. | | **keywords** | Optional | Synonyms and other keywords for the page. This information gets stuffed into the page's metadata to increase SEO. The user won't see the keywords, but if you search for one of the keywords, it will be picked up by the search engine. |
| **summary** | Optional | A 1-2 word sentence summarizing the content on the page. This gets formatted into the summary section in the page layout. Adding summaries is a key way to make your content more scannable by users (check out [Jakob Nielsen's site](http://www.nngroup.com/articles/corporate-blogs-front-page-structure/) for a great example of page summaries.) The only drawback with summaries is that you can't use variables in them. | | **summary** | Optional | A 1-2 word sentence summarizing the content on the page. This gets formatted into the summary section in the page layout. Adding summaries is a key way to make your content more scannable by users (check out [Jakob Nielsen's site](http://www.nngroup.com/articles/corporate-blogs-front-page-structure/) for a great example of page summaries.) The only drawback with summaries is that you can't use variables in them. |
| **permalink**| Required | This theme uses permalinks to facilitate the linking. You specify the permalink want for the page, and the \_site output will put the page into the root directory when you publish. The page will appear inside a folder by the same name, with the actual page being index.html. Browsers will automatically show the index.html file inside of any folder, so permalinks avoid the .html extension with file names. Permalink names don't have to match your file names, but it might be easier to keep them in sync. | | **permalink**| Required | This theme uses permalinks to facilitate the linking. You specify the permalink want for the page, and the \_site output will put the page into the root directory when you publish. The page will appear inside a folder by the same name, with the actual page being index.html. Browsers will automatically show the index.html file inside of any folder, so permalinks avoid the .html extension with file names. Permalink names don't have to match your file names, but it might be easier to keep them in sync. |

View File

@ -3,8 +3,6 @@ title: Publishing on Github Pages
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_publishing_github_pages/ permalink: /mydoc_publishing_github_pages/
summary: "You can publish your project on Github Pages, which is a free web hosting service provided by Github. All you need is to put your content into a Github repo branch called gh-pages and make this your default branch in your repo. With a Jekyll site, you just commit your entire project into the gh-pages branch and Github Pages will build the site for you." summary: "You can publish your project on Github Pages, which is a free web hosting service provided by Github. All you need is to put your content into a Github repo branch called gh-pages and make this your default branch in your repo. With a Jekyll site, you just commit your entire project into the gh-pages branch and Github Pages will build the site for you."
category: Publishing
weight: 10
--- ---
## Set up your Github repo ## Set up your Github repo
@ -13,37 +11,37 @@ weight: 10
1. Go to [Github.com](http://github.com) and sign up for an account. 1. Go to [Github.com](http://github.com) and sign up for an account.
2. Click the **+** button in the upper-right corner and select **New repository**. 2. Click the **+** button in the upper-right corner and select **New repository**.
3. Name the repository something like **mydoctheme**. 3. Name the repository something like **mydoctheme**.
4. Type a description.. 4. Type a description..
5. Select the **Initialize this repository with a README** check box. 5. Select the **Initialize this repository with a README** check box.
6. Add a license if desired. 6. Add a license if desired.
7. Leave the other options at the defaults and click **Create repository**. 7. Leave the other options at the defaults and click **Create repository**.
8. Click the **Settings** button. 8. Click the **Settings** button.
9. Go to your repository's home page, and click the branch drop-down menu. 9. Go to your repository's home page, and click the branch drop-down menu.
10. Create a new branch called **gh-pages**. 10. Create a new branch called **gh-pages**.
11. Click **Settings** and change the default branch to **gh-pages**. 11. Click **Settings** and change the default branch to **gh-pages**.
11. Go back to your repository's homepage. With the gh-pages branch selected, copy the **https clone url**: 11. Go back to your repository's homepage. With the gh-pages branch selected, copy the **https clone url**:
12. Open a terminal, browse to a convenient location for your project, and type `git clone https://github.com/tomjohnson1492/myreponame.git`, replacing the `https://github.com/tomjohnson1492/myreponame.git` with your repository's https clone URL that you copied. 12. Open a terminal, browse to a convenient location for your project, and type `git clone https://github.com/tomjohnson1492/myreponame.git`, replacing the `https://github.com/tomjohnson1492/myreponame.git` with your repository's https clone URL that you copied.
13. Move the jekyll theme files into this new folder that you just created in the previous step. 13. Move the jekyll theme files into this new folder that you just created in the previous step.
14. Open the _config.yml file and add the following: 14. Open the _config.yml file and add the following:
``` ```
url: tomjohnson1492.github.io url: tomjohnson1492.github.io
baseurl: /myreponame baseurl: /myreponame
``` ```
Change the url to your github account name, and the baseurl to your repo name. Change the url to your github account name, and the baseurl to your repo name.
## Install Bundler ## Install Bundler
Bundler is a package manager for Ruby that will install all dependencies you might need to build your site locally. I recommend installing Bundler through homebrew. (Sorry, these instructions apply to Mac only.) Bundler is a package manager for Ruby that will install all dependencies you might need to build your site locally. I recommend installing Bundler through homebrew. (Sorry, these instructions apply to Mac only.)
1. Install [homebrew](http://brew.sh/): 1. Install [homebrew](http://brew.sh/):
``` ```
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
``` ```
2. Install Bundler: 2. Install Bundler:
``` ```
gem install bundler gem install bundler
``` ```
@ -51,16 +49,16 @@ Bundler is a package manager for Ruby that will install all dependencies you mig
## Add the github pages gem ## Add the github pages gem
1. In terminal, browse to your Jekyll project directory. 1. In terminal, browse to your Jekyll project directory.
2. Type `bundle init`. This creates a Gemfile and Gemfile.lock in your project. 2. Type `bundle init`. This creates a Gemfile and Gemfile.lock in your project.
3. Type `open gemfile`. This opens the gemfile in your default text editor. 3. Type `open gemfile`. This opens the gemfile in your default text editor.
4. Add the following in the gemfile (replacing the existing contents): 4. Add the following in the gemfile (replacing the existing contents):
``` ```
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'github-pages' gem 'github-pages'
``` ```
5. Run `bundle install`. 5. Run `bundle install`.
14. Add the new jekyll files to git: `git add --all`. 14. Add the new jekyll files to git: `git add --all`.
15. Commit the files: `git commit -m "committing my jekyll theme"`. 15. Commit the files: `git commit -m "committing my jekyll theme"`.
@ -71,3 +69,4 @@ Github Pages will now automatically build your site. Wait a minute or two, and t
## Customize your URL ## Customize your URL
You can also customize your Github URL. More instructions on this later.... You can also customize your Github URL. More instructions on this later....

View File

@ -6,9 +6,9 @@ last_updated: March 20, 2016
summary: "You can push your build to AWS using commands from the command line. By including your copy commands in commands, you can package all of the build and deploy process into executable scripts." summary: "You can push your build to AWS using commands from the command line. By including your copy commands in commands, you can package all of the build and deploy process into executable scripts."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_push_build_to_server/ permalink: /mydoc_push_build_to_server/
category: Publishing
weight: 8
--- ---
## Pushing to AWS S3 ## Pushing to AWS S3
If you have the AWS Command Line Interface installed and are pushing your builds to AWS, the following commands show how you can build and push to an AWS location from the command line: If you have the AWS Command Line Interface installed and are pushing your builds to AWS, the following commands show how you can build and push to an AWS location from the command line:
@ -30,3 +30,5 @@ scp -r /users/tjohnson/projects/mydocproject/ name@domain:/var/www/html/mydocpro
``` ```
Similar to the above, the first path is the local location; the second path is the destination. Similar to the above, the first path is the local location; the second path is the destination.

View File

@ -6,15 +6,13 @@ last_updated: March 20, 2016
summary: "Version 5.0 of the Documentation theme for Jekyll changes some fundamental ways the theme works to provide product-specific sidebars, intended to accommodate a site where multiple products are grouped together on the same site rather than generated out as separate outputs." summary: "Version 5.0 of the Documentation theme for Jekyll changes some fundamental ways the theme works to provide product-specific sidebars, intended to accommodate a site where multiple products are grouped together on the same site rather than generated out as separate outputs."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_release_notes_50/ permalink: /mydoc_release_notes_50/
category: Overview
weight: 2
--- ---
## Unique sidebars for each product ## Unique sidebars for each product
In previous versions of the theme, I built the theme to generate different outputs for different scenarios based on various filtering attributes that might include product, version, platform, and audience variants. In previous versions of the theme, I built the theme to generate different outputs for different scenarios based on various filtering attributes that might include product, version, platform, and audience variants.
However, this model results in siloed outputs and lots of separate file directories to manage. Instead of having 30 separate sites for your content (or however many variants you might have been producing), in this version of the theme I've moved towards a strategy of having one site with multiple products. However, this model results in siloed outputs and lots of separate file directories to manage. Instead of having 30 separate sites for your content (or however many variants you might have been producing), in this version of the theme I've moved towards a strategy of having one site with multiple products.
For each product, you can associate a unique sidebar with each of the product's pages. This allows you to have all your documentation on one site, but with separate navigation that is tailored to a view of that product. For each product, you can associate a unique sidebar with each of the product's pages. This allows you to have all your documentation on one site, but with separate navigation that is tailored to a view of that product.
@ -30,13 +28,13 @@ I also switched from redcarpet and Pygments to Kramdown and Rouge to align with
## Blog feature ## Blog feature
I included a blog feature with this version of the theme. You can write posts and view them through the News link. There's also an archive for blog posts that sorts posts by year. I included a blog feature with this version of the theme. You can write posts and view them through the News link. There's also an archive for blog posts that sorts posts by year.
Additionally, the tagging system works across both the blog and pages, so your tags allow users to move laterally across the site based on topics they're interested in. When you view a tag archive, the sidebar shows a list of tags. Additionally, the tagging system works across both the blog and pages, so your tags allow users to move laterally across the site based on topics they're interested in. When you view a tag archive, the sidebar shows a list of tags.
## Updated documentation ## Updated documentation
I updated the documentation for the theme. The switch from the multi-site outputs to the single-site with multiple sidebars required updating a lot of different parts of the documentation and code. I updated the documentation for the theme. The switch from the multi-site outputs to the single-site with multiple sidebars required updating a lot of different parts of the documentation and code.
## Fixed errors ## Fixed errors
@ -44,4 +42,4 @@ Previously I had some errors with the HTML that showed up in w3c HTML validator
## Accessing the old theme ## Accessing the old theme
If you want to access the old theme, you can still find it [here](https://github.com/tomjohnson1492/jekylldoctheme-separate-outputs). If you want to access the old theme, you can still find it [here](https://github.com/tomjohnson1492/jekylldoctheme-separate-outputs).

View File

@ -6,8 +6,6 @@ last_updated: March 20, 2016
summary: "The search feature uses JavaScript to look for keyword matches in a JSON file. The results show instant matches, but it doesn't provide a search results page like Google. Also, sometimes invalid formatting can break the JSON file." summary: "The search feature uses JavaScript to look for keyword matches in a JSON file. The results show instant matches, but it doesn't provide a search results page like Google. Also, sometimes invalid formatting can break the JSON file."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_search_configuration/ permalink: /mydoc_search_configuration/
category: Publishing
weight: 6
--- ---
## About search ## About search
@ -29,9 +27,9 @@ If any formatting in the search.json file is invalid (in the build), search won'
If this happens, go directly to the search.json file in your browser, and then copy the content. Go to a [JSON validator](http://jsonlint.com/) and paste in the content. Look for the line causing trouble. Edit the file to either exclude the page from search or fix the syntax so that it doesn't invalidate the JSON. (Note that tabs in the body will invalidate JSON.) If this happens, go directly to the search.json file in your browser, and then copy the content. Go to a [JSON validator](http://jsonlint.com/) and paste in the content. Look for the line causing trouble. Edit the file to either exclude the page from search or fix the syntax so that it doesn't invalidate the JSON. (Note that tabs in the body will invalidate JSON.)
The search.json file already tries to strip out content that would otherwise make the JSON invalid. The search.json file already tries to strip out content that would otherwise make the JSON invalid.
## Including the body field in search ## Including the body field in search
I've found that include the `body` field in the search creates too many problems, and so I've removed `body` from the search. You can see the results of including the `body` by adding this along with the other fields in search.json: I've found that include the `body` field in the search creates too many problems, and so I've removed `body` from the search. You can see the results of including the `body` by adding this along with the other fields in search.json:
{% raw %} {% raw %}
@ -110,8 +108,8 @@ The \_includes/topnav.html file then makes use of these values:
</li> </li>
``` ```
Where you see `{url}` and `{title}`, the search is retrieving the values for these as specified in the search.json file. Where you see `{url}` and `{title}`, the search is retrieving the values for these as specified in the search.json file.
## More robust search ## More robust search
For more robust search, consider integrating either [Algolia](http://algolia.com) or [Swifttype](http://swiftype.com). For more robust search, consider integrating either [Algolia](http://algolia.com) or [Swifttype](http://swiftype.com).

View File

@ -6,15 +6,13 @@ last_updated: March 20, 2016
summary: "You can automatically link together topics belonging to the same series. This helps users know the context within a particular process." summary: "You can automatically link together topics belonging to the same series. This helps users know the context within a particular process."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_series/ permalink: /mydoc_series/
category: Navigation
weight: 4
--- ---
## Using series for pages ## Using series for pages
You create a series by looking for all pages within a tag namespace that contain certain frontmatter. Here's a <a href="{{ "/mydoc_seriesdemo1" | prepend: site.baseurl }}" class="noCrossRef">demo</a>. You create a series by looking for all pages within a tag namespace that contain certain frontmatter. Here's a <a href="{{ "/mydoc_seriesdemo1" | prepend: site.baseurl }}" class="noCrossRef">demo</a>.
## 1. Create the series button ## 1. Create the series button
First create an include that contains your series button: First create an include that contains your series button:
@ -42,7 +40,7 @@ First create an include that contains your series button:
``` ```
{% endraw %} {% endraw %}
Change "ACME series" to the name of your series. Change "ACME series" to the name of your series.
Save this in your \_includes/custom folder as something like series\_acme.html. Save this in your \_includes/custom folder as something like series\_acme.html.
@ -50,7 +48,7 @@ Save this in your \_includes/custom folder as something like series\_acme.html.
## 2. Create the "next" include ## 2. Create the "next" include
Now create another include for the Next button at the bottom of the page. Copy the following code, changing the series name to your series'name: Now create another include for the Next button at the bottom of the page. Copy the following code, changing the series name to your series'name:
{% raw %} {% raw %}
```html ```html
@ -67,9 +65,9 @@ Now create another include for the Next button at the bottom of the page. Copy t
``` ```
{% endraw %} {% endraw %}
Change "acme" to the name of your series. Change "acme" to the name of your series.
Save this in your \_includes/custom/mydoc folder as series\_acme\_next.html. Save this in your \_includes/custom/mydoc folder as series\_acme\_next.html.
## 3. Add the correct frontmatter to each of your series pages ## 3. Add the correct frontmatter to each of your series pages
@ -87,7 +85,7 @@ Additionally, if your page names are prefaced with numbers, such as "1. Download
## 4. Add links to the series button and next button on each page. ## 4. Add links to the series button and next button on each page.
On each series page, add a link to the series button at the top and a link to the next button at the bottom. On each series page, add a link to the series button at the top and a link to the next button at the bottom.
{% raw %} {% raw %}
```liquid ```liquid
<!-- your frontmatter goes here --> <!-- your frontmatter goes here -->
@ -106,4 +104,4 @@ The Bootstrap menu uses the `primary` class for styling. If you change this clas
## Using a collection with your series ## Using a collection with your series
Instead of copying and pasting the button includes on each of your series, you could also create a collection and define a layout for the collection that has the include code. For more information on creating collections, see <a href="{{ "/mydoc_collections" | prepend: site.baseurl }}">Collections</a>. Instead of copying and pasting the button includes on each of your series, you could also create a collection and define a layout for the collection that has the include code. For more information on creating collections, see <a href="{{ "/mydoc_collections" | prepend: site.baseurl }}">Collections</a>.

View File

@ -6,8 +6,6 @@ keywords: sidebar, accordion, yaml, iteration, for loop, navigation, attributes,
summary: "The sidebar navigation uses a jQuery component called Navgoco. The sidebar is a somewhat complex part of the theme that remembers your current page, highlights the active item, stays in a fixed position on the page, and more. This page explains a bit about how the sidebar was put together." summary: "The sidebar navigation uses a jQuery component called Navgoco. The sidebar is a somewhat complex part of the theme that remembers your current page, highlights the active item, stays in a fixed position on the page, and more. This page explains a bit about how the sidebar was put together."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_sidebar_navigation/ permalink: /mydoc_sidebar_navigation/
category: Navigation
weight: 1
--- ---
## Navgoco foundation ## Navgoco foundation
@ -22,11 +20,11 @@ In short, the sidebar has some complex logic here. I've integrated Navgoco's fea
## Accordion sidebar feature ## Accordion sidebar feature
The sidebar.html file (inside the _includes folder) contains the `.navgoco` method called on the `#mysidebar` element. The sidebar.html file (inside the _includes folder) contains the `.navgoco` method called on the `#mysidebar` element.
There are some options to set within the `.navgoco` method. The only noteworthy option is `accordion`. This option makes it so when you expand a section, the other sections collapse. It's a way of keeping your navigation controls condensed. There are some options to set within the `.navgoco` method. The only noteworthy option is `accordion`. This option makes it so when you expand a section, the other sections collapse. It's a way of keeping your navigation controls condensed.
The value for `accordion` is a Boolean (`true` or `false`). By default, the `accordion` option is set as `true`. If you don't want the accordion, set it to `false`. Note that there's also a block of code near the bottom of sidebar.html that is commented out. Uncomment out that section to have the Collapse all and Expand All buttons appear. The value for `accordion` is a Boolean (`true` or `false`). By default, the `accordion` option is set as `true`. If you don't want the accordion, set it to `false`. Note that there's also a block of code near the bottom of sidebar.html that is commented out. Uncomment out that section to have the Collapse all and Expand All buttons appear.
There's a danger with setting the accordion to `false`. If you click Expand All and the sidebar expands beyond the dimensions of the browser, users will be stuck. When that happens, it's hard to collapse it. As a best practice, leave the sidebar's accordion option set to `true`. There's a danger with setting the accordion to `false`. If you click Expand All and the sidebar expands beyond the dimensions of the browser, users will be stuck. When that happens, it's hard to collapse it. As a best practice, leave the sidebar's accordion option set to `true`.
@ -40,7 +38,7 @@ Depending on your content, you may need to adjust `800` pixel number. If your si
## Opening sidebar links into external pages ## Opening sidebar links into external pages
In the attributes for each sidebar item, if you use `external_url` instead of `url`, the theme will insert the link into an `a href` element that opens in a blank target. In the attributes for each sidebar item, if you use `external_url` instead of `url`, the theme will insert the link into an `a href` element that opens in a blank target.
For example, the sidebar.html file contains the following code: For example, the sidebar.html file contains the following code:
@ -51,11 +49,11 @@ For example, the sidebar.html file contains the following code:
``` ```
{% endraw %} {% endraw %}
You can see that the `external_url` is a condition that applies a different formatting. Although this feature is available, I recommend putting any external navigation links in the top navigation bar instead of the side navigation bar. You can see that the `external_url` is a condition that applies a different formatting. Although this feature is available, I recommend putting any external navigation links in the top navigation bar instead of the side navigation bar.
## Sidebar item highlighting ## Sidebar item highlighting
The sidebar.html file inserts an `active` class into the sidebar element when the `url` attribute in the sidebar data file matches the page URL. The sidebar.html file inserts an `active` class into the sidebar element when the `url` attribute in the sidebar data file matches the page URL.
For example, the sidebar.html file contains the following code: For example, the sidebar.html file contains the following code:
@ -66,15 +64,15 @@ For example, the sidebar.html file contains the following code:
``` ```
{% endraw %} {% endraw %}
If the `page.url` matches the `subfolderitem.url`, then an `active` class gets applied. If not, the `active` class does not get applied. If the `page.url` matches the `subfolderitem.url`, then an `active` class gets applied. If not, the `active` class does not get applied.
The `page.url` in Jekyll is a site-wide variable. If you insert {% raw %}`{{page.url}}`{% endraw %} on a page, it will render as follows: {{page.url}}. The `url` attribute in the sidebar item must match the page URL in order to get the `active` class applied. The `page.url` in Jekyll is a site-wide variable. If you insert {% raw %}`{{page.url}}`{% endraw %} on a page, it will render as follows: {{page.url}}. The `url` attribute in the sidebar item must match the page URL in order to get the `active` class applied.
This is why the `url` value in the sidebar data file looks something like this: This is why the `url` value in the sidebar data file looks something like this:
```yaml ```yaml
- title: Understanding how the sidebar works - title: Understanding how the sidebar works
url: /mydoc_understand_sidebar/ url: /mydoc_understand_sidebar/
output: web, pdf output: web, pdf
``` ```

View File

@ -6,8 +6,6 @@ last_updated: March 20, 2016
summary: "Contact me for any support issues." summary: "Contact me for any support issues."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_support/ permalink: /mydoc_support/
category: Overview
weight: 7
--- ---
Let me know about any bugs or other issues that you find. Just email me at <a href="mailto:tomjohnson1492@gmail.com">tomjohnson1492@gmail.com</a>. You can also [create issues directly within the Github repository here](https://github.com/tomjohnson1492/jekyll-doc/issues). Let me know about any bugs or other issues that you find. Just email me at <a href="mailto:tomjohnson1492@gmail.com">tomjohnson1492@gmail.com</a>. You can also [create issues directly within the Github repository here](https://github.com/tomjohnson1492/jekyll-doc/issues).

View File

@ -1,6 +1,6 @@
--- ---
title: Supported features title: Supported features
tags: tags:
- getting_started - getting_started
keywords: "features, capabilities, scalability, multichannel output, dita, hats, comparison, benefits" keywords: "features, capabilities, scalability, multichannel output, dita, hats, comparison, benefits"
last_updated: "November 30, 2016" last_updated: "November 30, 2016"
@ -8,8 +8,6 @@ summary: "If you're not sure whether Jekyll and this theme will support your req
published: true published: true
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_supported_features/ permalink: /mydoc_supported_features/
category: Overview
weight: 5
--- ---
Before you get into exploring Jekyll as a potential platform for help content, you may be wondering if it supports some basic features needed to fulfill your tech doc requirements. The following table shows what is supported in Jekyll and this theme. Before you get into exploring Jekyll as a potential platform for help content, you may be wondering if it supports some basic features needed to fulfill your tech doc requirements. The following table shows what is supported in Jekyll and this theme.
@ -20,12 +18,12 @@ Features | Supported | Notes
--------|-----------|----------- --------|-----------|-----------
Content re-use | Yes | Supports re-use through Liquid. You can re-use variables, snippets of code, entire pages, and more. In DITA speak, this includes conref and keyref. Content re-use | Yes | Supports re-use through Liquid. You can re-use variables, snippets of code, entire pages, and more. In DITA speak, this includes conref and keyref.
Markdown | Yes | You can author content using Markdown syntax. This is a wiki-like syntax for HTML that you can probably pick up in 10 minutes. Where Markdown falls short, you can use HTML. Where HTML falls short, you use Liquid, which is a scripting that allows you to incorporate more advanced logic. Markdown | Yes | You can author content using Markdown syntax. This is a wiki-like syntax for HTML that you can probably pick up in 10 minutes. Where Markdown falls short, you can use HTML. Where HTML falls short, you use Liquid, which is a scripting that allows you to incorporate more advanced logic.
Responsive design | Yes | Uses Bootstrap framework for responsive design. Responsive design | Yes | Uses Bootstrap framework for responsive design.
Translation | Yes | I haven't done a translation project yet (just a pilot test). Here's the basic approach: Export the HTML pages and send them to a translation agency. Then create a new project for that language and insert the translated pages. Everything will be translated. Translation | Yes | I haven't done a translation project yet (just a pilot test). Here's the basic approach: Export the HTML pages and send them to a translation agency. Then create a new project for that language and insert the translated pages. Everything will be translated.
Collaboration | Yes | You collaborate with Jekyll projects the same way that developers collaborate with software projects. (You don't need a CMS.) Because you're working with text file formats, you can use any version control software (Git, Mercurial, Perforce, Bitbucket, etc.) as a CMS for your files. Collaboration | Yes | You collaborate with Jekyll projects the same way that developers collaborate with software projects. (You don't need a CMS.) Because you're working with text file formats, you can use any version control software (Git, Mercurial, Perforce, Bitbucket, etc.) as a CMS for your files.
Scalability | Yes | Your site can scale to any size. It's up to you to determine how you will design the information architecture for your thousands of pages. You can choose what you display at first, second, third, fourth, and more levels, etc. Note that when your project has thousands of pages, the build time will be longer (maybe 1 minute per thousand pages?). It really depends on how many for loops you have iterating through the pages. Scalability | Yes | Your site can scale to any size. It's up to you to determine how you will design the information architecture for your thousands of pages. You can choose what you display at first, second, third, fourth, and more levels, etc. Note that when your project has thousands of pages, the build time will be longer (maybe 1 minute per thousand pages?). It really depends on how many for loops you have iterating through the pages.
Lightweight architecture | Yes | You don't need a LAMP stack (Linux, Apache, MySQL, PHP) architecture to get your site running. All of the building is done on your own machine, and you then push the static HTML files onto a server. Lightweight architecture | Yes | You don't need a LAMP stack (Linux, Apache, MySQL, PHP) architecture to get your site running. All of the building is done on your own machine, and you then push the static HTML files onto a server.
Skinnability | Yes | You can skin your Jekyll site to look identical to pretty much any other site online. If you have a UX team, they can really skin and design the site using all the tools familiar to the modern designer -- JavaScript, HTML5, CSS, jQuery, and more. Jekyll is built on the modern web development stack rather than the XML stack (XSLT, XPath, XQuery). Skinnability | Yes | You can skin your Jekyll site to look identical to pretty much any other site online. If you have a UX team, they can really skin and design the site using all the tools familiar to the modern designer -- JavaScript, HTML5, CSS, jQuery, and more. Jekyll is built on the modern web development stack rather than the XML stack (XSLT, XPath, XQuery).
Support | Yes | The community for your Jekyll site isn't so much other tech writers (as is the case with DITA) but rather the wider web development community. [Jekyll Talk](http://talk.jekyllrb.com) is a great resource. So is Stack Overflow. Support | Yes | The community for your Jekyll site isn't so much other tech writers (as is the case with DITA) but rather the wider web development community. [Jekyll Talk](http://talk.jekyllrb.com) is a great resource. So is Stack Overflow.
Blogging features | Yes | There is a simple blogging feature. This appears as "news" and is intended to promote news that applies across products. Blogging features | Yes | There is a simple blogging feature. This appears as "news" and is intended to promote news that applies across products.
Versioning | Yes | Jekyll doesn't version your files. You upload your files to a version control system such as Github. Your files are versioned there. Versioning | Yes | Jekyll doesn't version your files. You upload your files to a version control system such as Github. Your files are versioned there.
@ -39,7 +37,7 @@ Open source | Yes | This theme is entirely open source. Every piece of code is o
## Features not available ## Features not available
The following features are not available. The following features are not available.
Features | Supported | Notes Features | Supported | Notes
--------|-----------|----------- --------|-----------|-----------
@ -51,3 +49,5 @@ Standardized templates | No | You can create pages with any structure you want.
Integration with Swagger | No | You can link to a SwaggerUI output, but there is no built-in integration of SwaggerUI into this documentation theme. Integration with Swagger | No | You can link to a SwaggerUI output, but there is no built-in integration of SwaggerUI into this documentation theme.
Templates for endpoints | No | Although static site generators work well with API documentation, there aren't any built-in templates specific to endpoints in this theme. You could construct your own, though. Templates for endpoints | No | Although static site generators work well with API documentation, there aren't any built-in templates specific to endpoints in this theme. You could construct your own, though.
eBook output | No | There isn't an eBook output for the content. eBook output | No | There isn't an eBook output for the content.

View File

@ -6,8 +6,6 @@ last_updated: March 20, 2016
summary: "You can apply syntax highlighting to your code. This theme uses pygments and applies color coding based on the lexer you specify." summary: "You can apply syntax highlighting to your code. This theme uses pygments and applies color coding based on the lexer you specify."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_syntax_highlighting/ permalink: /mydoc_syntax_highlighting/
category: Formatting
weight: 9
--- ---
## About syntax highlighting ## About syntax highlighting
@ -43,7 +41,7 @@ If you're using an HTML file, you can also use the `highlight` command with Liqu
</pre> </pre>
{% endraw %} {% endraw %}
It renders the same: It renders the same:
{% highlight ruby %} {% highlight ruby %}
def foo def foo
@ -75,3 +73,4 @@ The keywords you must add to specify the highlighting (in the previous example,
* dotnet * dotnet
* xml * xml
* http * http

View File

@ -1,31 +1,31 @@
--- ---
title: Tables title: Tables
tags: tags: [formatting]
- formatting
keywords: datatables, tables, grids, markdown, multimarkdown, jquery plugins keywords: datatables, tables, grids, markdown, multimarkdown, jquery plugins
last_updated: March 20, 2016 last_updated: March 20, 2016
datatable: true datatable: true
summary: "You can format tables using either multimarkdown syntax or HTML. You can also use jQuery datatables (a plugin) if you need more robust tables." summary: "You can format tables using either multimarkdown syntax or HTML. You can also use jQuery datatables (a plugin) if you need more robust tables."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_tables/ permalink: /mydoc_tables/
category: Formatting
weight: 8
--- ---
{% unless site.output == "pdf" %} {% unless site.output == "pdf" %}
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
$('table.display').DataTable({
paging: true, $('table.display').DataTable( {
stateSave: true, paging: true,
searching: true stateSave: true,
}); searching: true
}); }
);
});
</script> </script>
{% endunless %} {% endunless %}
## Multimarkdown Tables ## Multimarkdown Tables
You can use Multimarkdown syntax for tables. The following shows a sample: You can use Multimarkdown syntax for tables. The following shows a sample:
``` ```
Column 1 | Column 2 Column 1 | Column 2
@ -65,7 +65,7 @@ The available options for the datable are described in the [datatable documentat
Additionally, you must add a class of `display` to your tables. (You can change the class, but then you'll need to change the trigger above from `table.display` to whatever class you want to you. You might have different triggers with different options for different tables.) Additionally, you must add a class of `display` to your tables. (You can change the class, but then you'll need to change the trigger above from `table.display` to whatever class you want to you. You might have different triggers with different options for different tables.)
Since Markdown doesn't allow you to add classes to tables, you'll need to use HTML for any datatables. Here's an example: Since Markdown doesn't allow you to add classes to tables, you'll need to use HTML for any datatables. Here's an example:
```html ```html
<table id="sampleTable" class="display"> <table id="sampleTable" class="display">
@ -124,7 +124,7 @@ This renders to the following:
<tbody> <tbody>
<tr> <tr>
<td>Apples</td> <td>Apples</td>
<td>A small, somewhat round and often red-colored, crispy fruit grown on trees. <td>A small, somewhat round and often red-colored, crispy fruit grown on trees.
</td> </td>
<td>Fruit</td> <td>Fruit</td>
<td>Fuji</td> <td>Fuji</td>
@ -161,4 +161,4 @@ Notice a few features:
Read more of the [datatable documentation](https://www.datatables.net/manual/options) to get a sense of the options you can configure. You should probably only use datatables when you have long, massive tables full of information. Read more of the [datatable documentation](https://www.datatables.net/manual/options) to get a sense of the options you can configure. You should probably only use datatables when you have long, massive tables full of information.
{{site.data.alerts.note}} Try to keep the columns to 3 or 4 columns only. If you add 5+ columns, your table may create horizontal scrolling with the theme. Additionally, keep the column heading titles short.{{site.data.alerts.end}} {{site.data.alerts.note}} Try to keep the columns to 3 or 4 columns only. If you add 5+ columns, your table may create horizontal scrolling with the theme. Additionally, keep the column heading titles short.{{site.data.alerts.end}}

View File

@ -6,8 +6,6 @@ tags: [navigation]
summary: "This is an overview to the tag archives section. Really the only reason this section is listed explicitly in the TOC here is to demonstrate how to add a third-level to the navigation." summary: "This is an overview to the tag archives section. Really the only reason this section is listed explicitly in the TOC here is to demonstrate how to add a third-level to the navigation."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_tag_archives_overview/ permalink: /mydoc_tag_archives_overview/
category: Tag archives
weight: 1
--- ---
## Reasons for tags ## Reasons for tags

View File

@ -7,8 +7,6 @@ keywords: tags, navigation, buttons, links, association
summary: "Tags provide another means of navigation for your content. Unlike the table of contents, tags can show the content in a variety of arrangements and groupings. Implementing tags in this Jekyll theme is somewhat of a manual process." summary: "Tags provide another means of navigation for your content. Unlike the table of contents, tags can show the content in a variety of arrangements and groupings. Implementing tags in this Jekyll theme is somewhat of a manual process."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_tags/ permalink: /mydoc_tags/
category: Navigation
weight: 3
--- ---
@ -43,7 +41,7 @@ For simplicity, make all your tags single words (connect them with hyphens if ne
Tags have a few components. Tags have a few components.
1. In the \_data/tags.yml file, add the tag names you want to allow. For example: 1. In the \_data/tags.yml file, add the tag names you want to allow. For example:
```json ```json
allowed-tags: allowed-tags:
- getting_started - getting_started
@ -54,11 +52,11 @@ Tags have a few components.
- special_layouts - special_layouts
- content types - content types
``` ```
3. Create a tag archive file for each tag in your tags_doc.yml list. Name the file following the same pattern in the tags folder, like this: tag_collaboration.html. 3. Create a tag archive file for each tag in your tags_doc.yml list. Name the file following the same pattern in the tags folder, like this: tag_collaboration.html.
Each tag archive file needs only this: Each tag archive file needs only this:
{% raw %} {% raw %}
```liquid ```liquid
--- ---
@ -73,9 +71,9 @@ sidebar: tags_sidebar
{% endraw %} {% endraw %}
{{site.data.alerts.note}}In the \_includes/mydoc folder, there's a taglogic.html file. This file (included in each tag archive file) has common logic for getting the tags and listing out the pages containing the tag in a table with summaries or truncated excerpts. You don't have to do anything with the file &mdash; just leave it there because the tag archive pages reference it.{{site.data.alerts.end}} {{site.data.alerts.note}}In the \_includes/mydoc folder, there's a taglogic.html file. This file (included in each tag archive file) has common logic for getting the tags and listing out the pages containing the tag in a table with summaries or truncated excerpts. You don't have to do anything with the file &mdash; just leave it there because the tag archive pages reference it.{{site.data.alerts.end}}
4. Change the title, tagName, and permalink values to be specific to the tag name you just created. 4. Change the title, tagName, and permalink values to be specific to the tag name you just created.
By default, the \_layouts/page.html file will look for any tags on a page and insert them at the bottom of the page using this code: By default, the \_layouts/page.html file will look for any tags on a page and insert them at the bottom of the page using this code:
{% raw %} {% raw %}
@ -93,9 +91,9 @@ sidebar: tags_sidebar
</div> </div>
``` ```
{% endraw %} {% endraw %}
Because this code appears on the \_layouts/page.html file by default, you don't need to do anything in your page to get the tags to appear. However, if you want to alter the placement or change the button color, you can do so within the \_includes/taglogic.html file. Because this code appears on the \_layouts/page.html file by default, you don't need to do anything in your page to get the tags to appear. However, if you want to alter the placement or change the button color, you can do so within the \_includes/taglogic.html file.
You can change the button color by changing the class on the button from `btn-info` to one of the other button classes bootstrap provides. See <a href="{{ "/mydoc_labels" | prepend: site.baseurl }}">page</a> for more options on button class names. You can change the button color by changing the class on the button from `btn-info` to one of the other button classes bootstrap provides. See <a href="{{ "/mydoc_labels" | prepend: site.baseurl }}">page</a> for more options on button class names.
## Retrieving pages for a specific tag ## Retrieving pages for a specific tag
@ -104,7 +102,7 @@ If you want to retrieve pages outside of a particular tag_archive page, you coul
{% raw %} {% raw %}
```liquid ```liquid
Getting started pages: Getting started pages:
<ul> <ul>
{% for page in site.pages %} {% for page in site.pages %}
{% for tag in page.tags %} {% for tag in page.tags %}
@ -112,12 +110,12 @@ Getting started pages:
<li><a href="{{page.url | prepend: '..'}}">{{page.title}}</a></li> <li><a href="{{page.url | prepend: '..'}}">{{page.title}}</a></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</ul> </ul>
``` ```
{% endraw %} {% endraw %}
Here's how that code renders: Here's how that code renders:
Getting started pages: Getting started pages:
<ul> <ul>
@ -143,7 +141,7 @@ Getting started pages:
<li><a href="{{page.url | prepend: '..'}}">{{page.title}}</a></li> <li><a href="{{page.url | prepend: '..'}}">{{page.title}}</a></li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</ul> </ul>
{% endraw %} {% endraw %}
``` ```
@ -163,11 +161,11 @@ Getting started pages:
</ul> </ul>
## Efficiency ## Efficiency
Although the tag approach here uses `for` loops, these are somewhat inefficient on a large site. Most of my tech doc projects don't have hundreds of pages (like my blog does). If your project does have hundreds of pages, this `for` loop approach with tags is going to slow down your build times. Although the tag approach here uses `for` loops, these are somewhat inefficient on a large site. Most of my tech doc projects don't have hundreds of pages (like my blog does). If your project does have hundreds of pages, this `for` loop approach with tags is going to slow down your build times.
Without the ability to access pages inside a universal namespace with the page type, there aren't many workarounds here for faster looping. Without the ability to access pages inside a universal namespace with the page type, there aren't many workarounds here for faster looping.
With posts (instead of pages), since you can access just the posts inside `posts.tag.tagname`, you can be a lot more efficient with the looping. With posts (instead of pages), since you can access just the posts inside `posts.tag.tagname`, you can be a lot more efficient with the looping.
Still, if the build times are getting long (e.g., 1 or 2 minutes per build), look into reducing the number of `for` loops on your site. Still, if the build times are getting long (e.g., 1 or 2 minutes per build), look into reducing the number of `for` loops on your site.
@ -182,6 +180,7 @@ If you don't want tags to appear at all on your page, remove the tags property f
## Remembering the right tags ## Remembering the right tags
Since you may have many tags and find it difficult to remember what tags are allowed, I recommend creating a template that prepopulates all your frontmatter with all possible tags. Then just remove the tags that don't apply. Since you may have many tags and find it difficult to remember what tags are allowed, I recommend creating a template that prepopulates all your frontmatter with all possible tags. Then just remove the tags that don't apply.
See <a href="{{ "/mydoc_webstorm_text_editor" | prepend: site.baseurl }}">WebStorm Text Editor</a> for tips on creating file templates in WebStorm. See <a href="{{ "/mydoc_webstorm_text_editor" | prepend: site.baseurl }}">WebStorm Text Editor</a> for tips on creating file templates in WebStorm.

View File

@ -6,8 +6,6 @@ last_updated: March 20, 2016
summary: "You can choose between two different themes (one green, the other blue) for your projects. The theme CSS is stored in the CSS folder and configured in the configuration file for each project." summary: "You can choose between two different themes (one green, the other blue) for your projects. The theme CSS is stored in the CSS folder and configured in the configuration file for each project."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_themes/ permalink: /mydoc_themes/
category: Publishing
weight: 2
--- ---
@ -21,6 +19,6 @@ In the \_includes/head.html file, specify the theme file you want the output to
``` ```
## Theme differences ## Theme differences
The differences between the themes is fairly minimal. The main navigation bar, sidebar, buttons, and heading colors change color. That's about it. The differences between the themes is fairly minimal. The main navigation bar, sidebar, buttons, and heading colors change color. That's about it.
In a more sophisticated theming approach, you could use Sass files to generate rules based on options set in a data file, but I kept things simple here. In a more sophisticated theming approach, you could use Sass files to generate rules based on options set in a data file, but I kept things simple here.

View File

@ -6,8 +6,6 @@ last_updated: "November 30, 2016"
summary: "The title checker page helps ensure that the titles in your pages match the titles in your TOC." summary: "The title checker page helps ensure that the titles in your pages match the titles in your TOC."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_title_checker/ permalink: /mydoc_title_checker/
category: Publishing
weight: 3
--- ---
The theme has a file called title-checker.html. This file will iterate through all the pages listed in the sidebar navigation and top navigation, and compare the navigation titles against the page titles based on matching URLs. If there are inconsistencies in the titles, they get noted on the title-checker.html page. The theme has a file called title-checker.html. This file will iterate through all the pages listed in the sidebar navigation and top navigation, and compare the navigation titles against the page titles based on matching URLs. If there are inconsistencies in the titles, they get noted on the title-checker.html page.
@ -19,3 +17,4 @@ Note that in order for the title-checker file to run correctly, it has to detect
{{site.data.alerts.note}} If your page titles have your product name in parentheses, but your sidebar doesn't have the product name in parentheses, this title-checker tool is going to return a lot of mismatches. This is one limitation of the code right now. {{site.data.alerts.end}} {{site.data.alerts.note}} If your page titles have your product name in parentheses, but your sidebar doesn't have the product name in parentheses, this title-checker tool is going to return a lot of mismatches. This is one limitation of the code right now. {{site.data.alerts.end}}
Note also that you must manually configure your sidebar file in the first line of the code, and then repeat the same chunk of code for each sidebar. Right now the code doesn't automatically iterate over every sidebar file. It's somewhat of a manual configuration process there. Note also that you must manually configure your sidebar file in the first line of the code, and then repeat the same chunk of code for each sidebar. Right now the code doesn't automatically iterate over every sidebar file. It's somewhat of a manual configuration process there.

View File

@ -6,15 +6,13 @@ last_updated: March 20, 2016
summary: "This page lists common errors and the steps needed to troubleshoot them." summary: "This page lists common errors and the steps needed to troubleshoot them."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_troubleshooting/ permalink: /mydoc_troubleshooting/
category: Troubleshooting
weight: 1
--- ---
## Issues building the site ## Issues building the site
### Address already in use ### Address already in use
When you try to build the site, you get this error in iTerm: When you try to build the site, you get this error in iTerm:
``` ```
jekyll 2.5.3 | Error: Address already in use - bind(2) jekyll 2.5.3 | Error: Address already in use - bind(2)
@ -38,7 +36,7 @@ kill -9 $(ps aux | grep '[j]ekyll' | awk '{print $2}')
### shell file not executable ### shell file not executable
If you run into permissions errors trying to run a shell script file (such as mydoc_multibuild_web.sh), you may need to change the file permissions to make the sh file executable. Browse to the directory containing the shell script and run the following: If you run into permissions errors trying to run a shell script file (such as mydoc_multibuild_web.sh), you may need to change the file permissions to make the sh file executable. Browse to the directory containing the shell script and run the following:
``` ```
chmod +x build_writer.sh chmod +x build_writer.sh
``` ```
@ -49,17 +47,17 @@ If you're using a PC, rename your shell files with a .bat extension.
### "page 0" cross references in the PDF ### "page 0" cross references in the PDF
If you see "page 0" cross-references in the PDF, the URL doesn't exist. Check to make sure you actually included this page in the build. If you see "page 0" cross-references in the PDF, the URL doesn't exist. Check to make sure you actually included this page in the build.
If it's not a page but rather a file, you need to add a `noCrossRef` class to the file so that your print stylesheet excludes the counter from it. Add `class="noCrossRef"` as an attribute to the link. In the css/printstyles.css file, there is a style that should remove the counter from anchor elements with this class. If it's not a page but rather a file, you need to add a `noCrossRef` class to the file so that your print stylesheet excludes the counter from it. Add `class="noCrossRef"` as an attribute to the link. In the css/printstyles.css file, there is a style that should remove the counter from anchor elements with this class.
### The PDF is blank ### The PDF is blank
Check the prince-list.txt file in the output to see if it contains links. If not, you have something wrong with the logic in the prince-list.txt file. Check the conditions.html file in your \_includes to see if the audience specified in your configuration file aligns with the buildAudience in the conditions.html file Check the prince-list.txt file in the output to see if it contains links. If not, you have something wrong with the logic in the prince-list.txt file. Check the conditions.html file in your \_includes to see if the audience specified in your configuration file aligns with the buildAudience in the conditions.html file
### Sidebar not appearing ### Sidebar not appearing
If you build your site but the sidebar doesn't appear, check the following: If you build your site but the sidebar doesn't appear, check the following:
Look in \_includes/custom/sidebarconfigs.html and make sure the conditional values there match up with values you're using in each page's frontmatter. Look in \_includes/custom/sidebarconfigs.html and make sure the conditional values there match up with values you're using in each page's frontmatter.
@ -69,8 +67,12 @@ Understanding how the theme works can be helpful in troubleshooting. The \_inclu
### Sidebar isn't collapsed ### Sidebar isn't collapsed
If the sidebar levels aren't collapsed, usually your JavaScript is broken somewhere. Open the JavaScript Console and look to see where the problem is. If one script breaks, then other scripts will break too, so troubleshooting it is a little tricky. If the sidebar levels aren't collapsed, usually your JavaScript is broken somewhere. Open the JavaScript Console and look to see where the problem is. If one script breaks, then other scripts will break too, so troubleshooting it is a little tricky.
### Search isn't working ### Search isn't working
If the search isn't working, check the JSON validity in the search.json file in your output folder. Usually something is invalid. Identify the problematic line, fix the file, or put `search: exclude` in the frontmatter of the file to exclude it from search. If the search isn't working, check the JSON validity in the search.json file in your output folder. Usually something is invalid. Identify the problematic line, fix the file, or put `search: exclude` in the frontmatter of the file to exclude it from search.

View File

@ -5,8 +5,6 @@ last_updated: March 20, 2016
summary: "You can use a variety of text editors when working with a Jekyll project. WebStorm from IntelliJ offers a lot of project-specific features, such as find and replace, that make it ideal for working with tech comm projects." summary: "You can use a variety of text editors when working with a Jekyll project. WebStorm from IntelliJ offers a lot of project-specific features, such as find and replace, that make it ideal for working with tech comm projects."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_webstorm_text_editor/ permalink: /mydoc_webstorm_text_editor/
category: Authoring
weight: 3
--- ---
## About text editors and WebStorm ## About text editors and WebStorm
@ -22,7 +20,7 @@ By default, WebStorm comes packaged with a lot more functionality than you proba
You can set the way the tab works, and whether it uses spaces or a tab character. For details, see [Code Style. JavaScript](https://www.jetbrains.com/help/webstorm/2016.1/code-style-javascript.html?origin=old_help#d658997e132) in WebStorm's help. You can set the way the tab works, and whether it uses spaces or a tab character. For details, see [Code Style. JavaScript](https://www.jetbrains.com/help/webstorm/2016.1/code-style-javascript.html?origin=old_help#d658997e132) in WebStorm's help.
On a Mac, go to **WebStorm | Preferences | Editor | Code Style | Other File Types**. Don't select the "Use tab character" check box. Set **3** for the **Tab size** and **Indent** check boxes. On a Mac, go to **WebStorm | Preferences | Editor | Code Style | Other File Types**. Don't select the "Use tab character" check box. Set **3** for the **Tab size** and **Indent** check boxes.
On Windows, go to **File | Settings | Editor | Code Style | Other File Types** to access the same menu. On Windows, go to **File | Settings | Editor | Code Style | Other File Types** to access the same menu.
@ -40,7 +38,7 @@ When you're searching for content, you don't want to edit any file that appears
## Set tabs to 3 spaces ## Set tabs to 3 spaces
You can set the default number of spaces a tab sets, including whether Webstorm uses a tab character or spaces. You want spaces, and you want to set this to default number of spaces to ```3``` spaces instead of 4. Note that this is due to the way Kramdown handles the continuation of lists. You can set the default number of spaces a tab sets, including whether Webstorm uses a tab character or spaces. You want spaces, and you want to set this to default number of spaces to ```3``` spaces instead of 4. Note that this is due to the way Kramdown handles the continuation of lists.
When you intercept a list with a paragraph or code sample, the indentation of the intercepting paragraph or list must align with the beginning of the first character after the space in the list item numbering. This is typically 3 spaces, not 4. Note that this style differs from the Github-flavored Markdown style. (Welcome to the world of subtle and infuriating discrepancies between Markdown flavors.) When you intercept a list with a paragraph or code sample, the indentation of the intercepting paragraph or list must align with the beginning of the first character after the space in the list item numbering. This is typically 3 spaces, not 4. Note that this style differs from the Github-flavored Markdown style. (Welcome to the world of subtle and infuriating discrepancies between Markdown flavors.)

View File

@ -5,8 +5,6 @@ keywords: search
summary: "YAML is a format that relies on white spacing to separate out the various elements of content. Jekyll lets you use Liquid with YAML as a way to parse through the data. Storing items for your table of contents is one of the most common uses of YAML with Jekyll." summary: "YAML is a format that relies on white spacing to separate out the various elements of content. Jekyll lets you use Liquid with YAML as a way to parse through the data. Storing items for your table of contents is one of the most common uses of YAML with Jekyll."
sidebar: mydoc_sidebar sidebar: mydoc_sidebar
permalink: /mydoc_yaml_tutorial/ permalink: /mydoc_yaml_tutorial/
category: Navigation
weight: 2
--- ---
## Overview ## Overview
One of the most interesting features of Jekyll is the ability to separate out data elements from formatting elements using a combination of YAML and Liquid. This setup is most common when you're trying to create a table of contents. One of the most interesting features of Jekyll is the ability to separate out data elements from formatting elements using a combination of YAML and Liquid. This setup is most common when you're trying to create a table of contents.

View File

@ -7,37 +7,26 @@ toc: false
--- ---
<div class="home"> <div class="home">
<div class="post-list">
{% for post in site.posts limit:10 %} <div class="post-list">
<h2> {% for post in site.posts limit:10 %}
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">
{{ post.title }}
</a> <h2><a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></h2>
</h2> <span class="post-meta">{{ post.date | date: "%b %-d, %Y" }} /
<span class="post-meta"> {% for tag in post.tags %}
{{ post.date | date: "%b %-d, %Y" }} / <a href="{{ "/tag_" | prepend: site.baseurl | append: {{tag}}/">{{tag}}</a>{% unless forloop.last %}, {% endunless%}
{% for tag in post.tags %} {% endfor %}</span>
<a href="{{ "/tag_" | prepend: site.baseurl | append: {{ tag }}/"> <p>{% if page.summary %} {{ page.summary | strip_html | strip_newlines | truncate: 160 }} {% else %} {{ post.content | truncatewords: 50 | strip_html }} {% endif %}</p>
{{tag}}
</a>
{% unless forloop.last %}, {% endunless%}
{% endfor %}</span> {% endfor %}
<p>
{% if page.summary %} <p><a href="{{ "/feed.xml" | prepend: site.baseurl }}" class="btn btn-primary navbar-btn cursorNorm" role="button">RSS Subscribe{{tag}}</a></p>
{{ page.summary | strip_html | strip_newlines | truncate: 160 }}
{% else %} <hr />
{{ post.content | truncatewords: 50 | strip_html }} <p>See more posts from the <a href="{{ "/news_archive/" | prepend: site.baseurl }}">News Archive</a>. </p>
{% endif %}
</p>
{% endfor %}
<p>
<a href="{{ "/feed.xml" | prepend: site.baseurl }}" class="btn btn-primary navbar-btn cursorNorm" role="button">
RSS Subscribe{{ tag }}
</a>
</p>
<hr />
<p>
See more posts from the <a href="{{ "/news_archive/" | prepend: site.baseurl }}">News Archive</a>.
</p>
</div>
</div> </div>

View File

@ -7,30 +7,34 @@ toc: false
--- ---
<div class="home"> <div class="home">
<div class="post-list">
<section id="archive"> <div class="post-list">
<h3>This year's posts</h3>
{% for post in site.posts %}
{% unless post.next %} <section id="archive">
<ul class="this"> <h3>This year's posts</h3>
{% else %} {%for post in site.posts %}
{% capture year %}{{ post.date | date: '%Y' }}{% endcapture %} {% unless post.next %}
{% capture nyear %}{{ post.next.date | date: '%Y' }}{% endcapture %} <ul class="this">
{% if year != nyear %} {% else %}
</ul> {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %}
<h3>{{ post.date | date: '%Y' }}</h3> {% capture nyear %}{{ post.next.date | date: '%Y' }}{% endcapture %}
<ul class="past"> {% if year != nyear %}
{% endif %} </ul>
{% endunless %} <h3>{{ post.date | date: '%Y' }}</h3>
<li> <ul class="past">
<time>{{ post.date | date:"%d %b" }}</time> {% endif %}
<a href="{{ post.url | prepend: site.baseurl }}"> {% endunless %}
{{ post.title }} <li><time>{{ post.date | date:"%d %b" }}</time><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></li>
</a> {% endfor %}
</li> </ul>
{% endfor %} </section>
</ul>
</section>
<hr/> <hr/>
</div>
</div>
</div>

View File

@ -1,5 +1,5 @@
--- ---
layout: null layout: none
search: exclude search: exclude
--- ---
@ -24,4 +24,4 @@ search: exclude
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}

View File

@ -4,8 +4,6 @@ keywords: mydoc
sidebar: product1_sidebar sidebar: product1_sidebar
toc: false toc: false
permalink: /p1_landing_page/ permalink: /p1_landing_page/
category: Getting Started
weight: 1
--- ---
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
@ -237,4 +235,4 @@ weight: 1
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -4,8 +4,6 @@ keywords: sample
summary: "This is just a sample topic..." summary: "This is just a sample topic..."
sidebar: product1_sidebar sidebar: product1_sidebar
permalink: /p1_sample1/ permalink: /p1_sample1/
category: Getting Started
weight: 2
--- ---
## Sample Content ## Sample Content
@ -15,10 +13,11 @@ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like). It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
## More sample content ## More sample content
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham. The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.

View File

@ -4,8 +4,6 @@ keywords: sample
summary: "This is just a sample topic..." summary: "This is just a sample topic..."
sidebar: product1_sidebar sidebar: product1_sidebar
permalink: /p1_sample2/ permalink: /p1_sample2/
category: Getting Started
weight: 3
--- ---
## Sample Content ## Sample Content
@ -15,10 +13,11 @@ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like). It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
## More sample content ## More sample content
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham. The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.

View File

@ -4,8 +4,6 @@ keywords: sample
summary: "This is just a sample topic..." summary: "This is just a sample topic..."
sidebar: product1_sidebar sidebar: product1_sidebar
permalink: /p1_sample3/ permalink: /p1_sample3/
category: Getting Started
weight: 4
--- ---
## Sample Content ## Sample Content
@ -15,10 +13,11 @@ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like). It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
## More sample content ## More sample content
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham. The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.

View File

@ -4,8 +4,6 @@ keywords: sample
summary: "This is just a sample topic..." summary: "This is just a sample topic..."
sidebar: product1_sidebar sidebar: product1_sidebar
permalink: /p1_sample4/ permalink: /p1_sample4/
category: Another heading
weight: 1
--- ---
## Sample Content ## Sample Content
@ -15,10 +13,11 @@ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like). It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
## More sample content ## More sample content
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32. Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham. The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc. There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.

Some files were not shown because too many files have changed in this diff Show More