Merge pull request #605 from anaqreon/doco

Another iteration of documentation
This commit is contained in:
zotlabs 2016-12-01 14:30:23 +11:00 committed by GitHub
commit abf1d7da23
9 changed files with 558 additions and 114 deletions

10
doc/about/about_hub.html Normal file
View File

@ -0,0 +1,10 @@
<h1>Terms of Service</h1>
<ul>
<li><a href="/help/TermsOfService">Terms of Service for this hub</a></li>
</ul>
<h1>Site Info</h1>
<ul>
<li><a href="/siteinfo">Site Info</a></li>
<li><a href="/siteinfo/json">Site Info (JSON format)</a></li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,4 @@
<p><strong>Table of Contents</strong></p>
<p></p><ul id="admin-guide-toc"><li><a href="/help/admin/administrator_guide#Overview">Overview</a></li><li><a href="/help/admin/administrator_guide#Where_to_find_more_help">Where to find more help</a></li><li><a href="/help/admin/administrator_guide#Before_you_begin">Before you begin</a><ul><li><a href="/help/admin/administrator_guide#Choose_a_domain_name_or_subdomain_name_for_your_server">Choose a domain name or subdomain name for your server</a></li><li><a href="/help/admin/administrator_guide#Decide_if_you_will_use_SSL_and_obtain_an_SSL_certificate_before_software_installation">Decide if you will use SSL and obtain an SSL certificate before software installation</a></li></ul></li><li><a href="/help/admin/administrator_guide#Deployment">Deployment</a></li><li><a href="/help/admin/administrator_guide#Requirements">Requirements</a></li><li><a href="/help/admin/administrator_guide#Manual_Installation">Manual Installation</a><ul><li><a href="/help/admin/administrator_guide#Unpack_the_Hubzilla_files_into_the_root_of_your_web_server_document_area">Unpack the Hubzilla files into the root of your web server document area</a></li><li><a href="/help/admin/administrator_guide#Official_addons">Official addons</a><ul><li><a href="/help/admin/administrator_guide#Installation">Installation</a></li><li><a href="/help/admin/administrator_guide#Updating">Updating</a></li></ul></li></ul></li><li><a href="/help/admin/administrator_guide#Automated_installation_via_the_homeinstall_shell_script">Automated installation via the .homeinstall shell script</a><ul><li><a href="/help/admin/administrator_guide#Requirements">Requirements</a></li><li><a href="/help/admin/administrator_guide#Overview_of_installation_steps">Overview of installation steps</a></li></ul></li><li><a href="/help/admin/administrator_guide#Service_Classes">Service Classes</a></li><li><a href="/help/admin/administrator_guide#Theme_management">Theme management</a><ul><li><a href="/help/admin/administrator_guide#Repo_management_example">Repo management example</a></li></ul></li><li><a href="/help/admin/administrator_guide#Channel_Directory">Channel Directory</a><ul><li><a href="/help/admin/administrator_guide#Keywords">Keywords</a></li></ul></li><li><a href="/help/admin/administrator_guide#Upgrading_from_RedMatrix_to_Hubzilla">Upgrading from RedMatrix to Hubzilla</a><ul><li><a href="/help/admin/administrator_guide#How_to_migrate_an_individual_channel_from_RedMatrix_to_Hubzilla">How to migrate an individual channel from RedMatrix to Hubzilla</a></li></ul></li><li><a href="/help/admin/administrator_guide#Troubleshooting">Troubleshooting</a><ul><li><a href="/help/admin/administrator_guide#Log_files">Log files</a><ul><li><a href="/help/admin/administrator_guide#Rotating_log_files">Rotating log files</a></li></ul></li></ul></li></ul><p></p>
<hr><h1 id="Overview">Overview</h1>
<h1 id="Overview">Overview</h1>
<p>Hubzilla is more than a simple web application. It is a
complex communications system which more closely resembles an email server

View File

@ -1,6 +1,3 @@
<p><strong>Table of Contents</strong>
</p><ul id="developer-guide-toc"><li><a href="/help/admin/administrator_guideWho_is_a_Hubzilla_developer_Should_I_read_this_">Who is a Hubzilla developer? Should I read this?</a></li><li><a href="/help/admin/administrator_guideVersioning_system">Versioning system</a></li><li><a href="/help/admin/administrator_guideGit_repository_branches">Git repository branches</a></li><li><a href="/help/admin/administrator_guideDeveloper_tools_and_workflows">Developer tools and workflows</a><ul><li><a href="/help/admin/administrator_guideHub_Snapshots">Hub Snapshots</a></li></ul></li><li><a href="/help/admin/administrator_guideTranslations">Translations</a><ul><li><a href="/help/admin/administrator_guideTranslation_Process">Translation Process</a></li><li><a href="/help/admin/administrator_guideUtilities">Utilities</a></li><li><a href="/help/admin/administrator_guideKnown_Problems">Known Problems</a></li></ul></li><li><a href="/help/admin/administrator_guideTo_be_organized_information">To-be-organized information</a></li></ul><p></p>
<h2 id="Who_is_a_Hubzilla_developer_Should_I_read_this_">Who is a Hubzilla developer? Should I read this?</h2>
<p>Anyone who contributes to making Hubzilla better is a developer. There are many different and important ways you can contribute to this amazing technology, <em>even if you do not know how to write code</em>. The software itself is only a part of the Hubzilla project. You can contribute by</p>

View File

@ -9,11 +9,11 @@
<hr>
<h3 id="I_am_able_to_edit_a_post_s_text_after_I_saved_it_but_is_there_a_way_to_change_the_permissions_">I am able to edit a post's text after I saved it, but is there a way to change the permissions?</h3>
<h1 id="I_am_able_to_edit_a_post_s_text_after_I_saved_it_but_is_there_a_way_to_change_the_permissions_">I am able to edit a post's text after I saved it, but is there a way to change the permissions?</h1>
<br>Short answer: No, there isn't. There are reasons. You are able to change permissions to your files, photos and the likes, but not to posts after you have saved them. The main reason is: Once you have saved a post it is being distributed either to the public channel and from there to other Hubzilla servers or to those you intended it to go. Just like you cannot reclaim something you gave to another person, you cannot change permissions to Hubzilla posts. We would need to track everywhere your posting goes, keep track of everyone you allowed to see it and then keep track of from whom to delete it. <br>If a posting is public this is even harder, as Hubzilla is a global network and there is no way to follow a post, let alone reclaim it reliably. Other networks that may receive your post have no reliable way to delete or reclaim the post.<br><br>
<h3 id="I_downloaded_my_channel_and_imported_it_cloned_my_identity_to_another_site_but_there_is_no_content_no_posts_no_photos_What_is_wrong_">I downloaded my channel and imported it (cloned my identity) to another site but there is no content, no posts, no photos. What is wrong???</h3>
<h1 id="I_downloaded_my_channel_and_imported_it_cloned_my_identity_to_another_site_but_there_is_no_content_no_posts_no_photos_What_is_wrong_">I downloaded my channel and imported it (cloned my identity) to another site but there is no content, no posts, no photos. What is wrong???</h1>
<br>Posts and photos/files are provided separately from the channel basic information. This is due to memory limitations dealing with years of conversations and photo archives. Posts and conversations can be synced separately from the basic channel information. Photos and file archives can be transferred using a plugin tool such as 'redfiles', which is currently listed as "experimental".&nbsp;&nbsp;When creating this feature we thought that keeping all your contacts was the most important task. Your friends have already seen your old content. Posts/conversations were next in priority and these may now be synced. Files and photos are the last bit to get completely working. Once we find someone willing to finish implementing this, it will be done. :)<br>
<h3 id="I_can_t_see_private_resources">I can't see private resources</h3>
<h1 id="I_can_t_see_private_resources">I can't see private resources</h1>
<br>You have probably disabled third party cookies.&nbsp;&nbsp;You need to enable them for remote authentication to work.<br>
<h3 id="There_are_a_lot_of_foreign_language_posts_Let_s_auto_translate_them_">There are a lot of foreign language posts. Let's auto-translate them.</h3>
<h1 id="There_are_a_lot_of_foreign_language_posts_Let_s_auto_translate_them_">There are a lot of foreign language posts. Let's auto-translate them.</h1>
<br>There are also a lot of <strong>private</strong> foreign language posts and auto-translation services would require us to transmit these private messages to the translation service; and we don't know what they will do with them on their servers. Actually we do know thanks to Edward Snowden. Our best bet is a project called <strong><em>Apertium</em></strong> which is an open source translator we can install locally. It is currently missing German translations - which are the most requested translation in the matrix. Once again, this will be implemented when we find somebody who really wants to make it happen.

View File

@ -1,18 +1,3 @@
<p><strong>Table of Contents</strong></p>
<ul id="member-guide-toc">
<li><a href="/help/member/member_guide#overview">Overview</a></li>
<li><a href="/help/member/member_guide#Registration">Registration</a></li>
<li><a href="/help/member/member_guide#Profiles">Profiles</a></li>
<li><a href="/help/member/member_guide#Channels">Channels</a></li>
<li><a href="/help/member/member_guide#roles">Account Permission Roles</a></li>
<li><a href="/help/member/member_guide#connecting-to-channels">Connecting To Channels</a></li>
<li><a href="/help/member/member_guide#permissions">Permissions and Access Control</a></li>
<li><a href="/help/member/member_guide#cloud-storage">Cloud Storage</a></li>
<li><a href="/help/member/member_guide#remove-channel">Remove Channel or Account</a></li>
</ul>
<hr>
<h1 id="overview">Overview</h1>
<p> While many features and capabilities of

View File

@ -8,84 +8,99 @@
.doco-list-group-item {
padding-left: 15px;
}
.widget {
position: fixed;
top:70px;
width: inherit;
height: 80%;
overflow-y: scroll;
.doco-list-group-item > a {
font-weight: bold;
font-size: 1.1em;
}
#doco-content h1 {
border-bottom: #cccccc thin solid;
padding-bottom: 0.3em;
}
#doco-content > h1,
#doco-content > h2,
#doco-content > h3,
#doco-content > h4 {
padding-top: 60px;
margin-top: -60px;
}
#region_1 .widget ul ul {
list-style-type: none;
padding-left: 15px;
}
.toc-content {
background-color: white;
border-left: #cccccc 2px solid;
margin-left: 10px;
}
</style>
<div class="panel-group" id="accordion">
<div class="panel">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#about"><span class="glyphicon glyphicon-folder-open">
</span>About</a>
<a data-toggle="collapse" data-parent="#accordion" href="#about">
About</a>
</h4>
</div>
<div id="about" class="panel-collapse collapse">
<div id="about" class="panel-collapse collapse in">
<ul class="list-group">
<li class="doco-list-group-item"><a href="/help/about/about_hubzilla#about-hubzilla-toc"><span class="glyphicon glyphicon-file"></span>Hubzilla project</a></li>
<li class="doco-list-group-item"><a href="/help/about/about_hub"><span class="glyphicon glyphicon-file"></span>About this hub</a></li>
<li class="doco-list-group-item"><a href="/help/about/about_hubzilla">Hubzilla project</a></li>
<li class="doco-list-group-item"><a href="/help/about/about_hub">About this hub</a></li>
</ul>
</div>
</div>
<div class="panel">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#members"><span class="glyphicon glyphicon-folder-open">
</span>Members</a>
<a data-toggle="collapse" data-parent="#accordion" href="#members">
Members</a>
</h4>
</div>
<div id="members" class="panel-collapse collapse">
<div id="members" class="panel-collapse collapse in">
<ul class="list-group">
<li class="doco-list-group-item"><a href="/help/member/member_guide#member-guide-toc">Contents</a></li>
<li class="doco-list-group-item"><a href="/help/member/member_faq#member-faq-toc">FAQ</a></li>
<li class="doco-list-group-item"><a href="/help/member/member_guide">Guide</a></li>
<li class="doco-list-group-item"><a href="/help/member/member_faq">FAQ</a></li>
</ul>
</div>
</div>
<div class="panel">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#administrators"><span class="glyphicon glyphicon-folder-open">
</span>Administrators</a>
<a data-toggle="collapse" data-parent="#accordion" href="#administrators">
Administrators</a>
</h4>
</div>
<div id="administrators" class="panel-collapse collapse">
<div id="administrators" class="panel-collapse collapse in">
<ul class="list-group">
<li class="doco-list-group-item"><a href="/help/admin/administrator_guide#admin-guide-toc">Contents</a></li>
<li class="doco-list-group-item"><a href="/help/admin/administrator_guide#Before_you_begin">Installation</a></li>
<li class="doco-list-group-item"><a href="/help/admin/administrator_guide">Guide</a></li>
</ul>
</div>
</div>
<div class="panel">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#developers"><span class="glyphicon glyphicon-folder-open">
</span>Developers</a>
<a data-toggle="collapse" data-parent="#accordion" href="#developers">
Developers</a>
</h4>
</div>
<div id="developers" class="panel-collapse collapse">
<div id="developers" class="panel-collapse collapse in">
<ul class="list-group">
<li class="doco-list-group-item"><a href="/help/developer/developer_guide#developer-guide-toc">Contents</a></li>
<li class="doco-list-group-item"><a href="/help/developer/developer_guide#Who_is_a_Hubzilla_developer_Should_I_read_this_">Overview</a></li>
<li class="doco-list-group-item"><a href="/help/developer/developer_guide">Guide</a></li>
</ul>
</div>
</div>
<div class="panel">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#tutorials"><span class="glyphicon glyphicon-folder-open">
</span>Tutorials</a>
<a data-toggle="collapse" data-parent="#accordion" href="#tutorials">
Tutorials</a>
</h4>
</div>
<div id="tutorials" class="panel-collapse collapse">
<div id="tutorials" class="panel-collapse collapse in">
<ul class="list-group">
<li class="doco-list-group-item"><a href="/help/tutorials/personal_channel">Personal Channel</a></li>
</ul>
@ -93,38 +108,320 @@
</div>
</div>
<div id="page-toc-container" style="margin-top:1.0em;">
<h3>Contents</h3>
</div>
<script>
// Sticky Plugin v1.0.4 for jQuery
// =============
// Author: Anthony Garand
// Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk)
// Improvements by Leonardo C. Daronco (daronco)
// Created: 02/14/2011
// Date: 07/20/2015
// Website: http://stickyjs.com/
// Description: Makes an element on the page stick on the screen as you scroll
// It will only set the 'top' and 'position' of your element, you
// might need to adjust the width in some cases.
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory);
} else if (typeof module === 'object' && module.exports) {
// Node/CommonJS
module.exports = factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
var slice = Array.prototype.slice; // save ref to original slice()
var splice = Array.prototype.splice; // save ref to original slice()
var defaults = {
topSpacing: 0,
bottomSpacing: 0,
className: 'is-sticky',
wrapperClassName: 'sticky-wrapper',
center: false,
getWidthFrom: '',
widthFromWrapper: true, // works only when .getWidthFrom is empty
responsiveWidth: false,
zIndex: 'auto'
},
$window = $(window),
$document = $(document),
sticked = [],
windowHeight = $window.height(),
scroller = function() {
var scrollTop = $window.scrollTop(),
documentHeight = $document.height(),
dwh = documentHeight - windowHeight,
extra = (scrollTop > dwh) ? dwh - scrollTop : 0;
for (var i = 0, l = sticked.length; i < l; i++) {
var s = sticked[i],
elementTop = s.stickyWrapper.offset().top,
etse = elementTop - s.topSpacing - extra;
//update height in case of dynamic content
s.stickyWrapper.css('height', s.stickyElement.outerHeight());
if (scrollTop <= etse) {
if (s.currentTop !== null) {
s.stickyElement
.css({
'width': '',
'position': '',
'top': '',
'z-index': ''
});
s.stickyElement.parent().removeClass(s.className);
s.stickyElement.trigger('sticky-end', [s]);
s.currentTop = null;
}
}
else {
var newTop = documentHeight - s.stickyElement.outerHeight()
- s.topSpacing - s.bottomSpacing - scrollTop - extra;
if (newTop < 0) {
newTop = newTop + s.topSpacing;
} else {
newTop = s.topSpacing;
}
if (s.currentTop !== newTop) {
var newWidth;
if (s.getWidthFrom) {
newWidth = $(s.getWidthFrom).width() || null;
} else if (s.widthFromWrapper) {
newWidth = s.stickyWrapper.width();
}
if (newWidth == null) {
newWidth = s.stickyElement.width();
}
s.stickyElement
.css('width', newWidth)
.css('position', 'fixed')
.css('top', newTop)
.css('z-index', s.zIndex);
s.stickyElement.parent().addClass(s.className);
if (s.currentTop === null) {
s.stickyElement.trigger('sticky-start', [s]);
} else {
// sticky is started but it have to be repositioned
s.stickyElement.trigger('sticky-update', [s]);
}
if (s.currentTop === s.topSpacing && s.currentTop > newTop || s.currentTop === null && newTop < s.topSpacing) {
// just reached bottom || just started to stick but bottom is already reached
s.stickyElement.trigger('sticky-bottom-reached', [s]);
} else if(s.currentTop !== null && newTop === s.topSpacing && s.currentTop < newTop) {
// sticky is started && sticked at topSpacing && overflowing from top just finished
s.stickyElement.trigger('sticky-bottom-unreached', [s]);
}
s.currentTop = newTop;
}
// Check if sticky has reached end of container and stop sticking
var stickyWrapperContainer = s.stickyWrapper.parent();
var unstick = (s.stickyElement.offset().top + s.stickyElement.outerHeight() >= stickyWrapperContainer.offset().top + stickyWrapperContainer.outerHeight()) && (s.stickyElement.offset().top <= s.topSpacing);
if( unstick ) {
s.stickyElement
.css('position', 'absolute')
.css('top', '')
.css('bottom', 0)
.css('z-index', '');
} else {
s.stickyElement
.css('position', 'fixed')
.css('top', newTop)
.css('bottom', '')
.css('z-index', s.zIndex);
}
}
}
},
resizer = function() {
windowHeight = $window.height();
for (var i = 0, l = sticked.length; i < l; i++) {
var s = sticked[i];
var newWidth = null;
if (s.getWidthFrom) {
if (s.responsiveWidth) {
newWidth = $(s.getWidthFrom).width();
}
} else if(s.widthFromWrapper) {
newWidth = s.stickyWrapper.width();
}
if (newWidth != null) {
s.stickyElement.css('width', newWidth);
}
}
},
methods = {
init: function(options) {
return this.each(function() {
var o = $.extend({}, defaults, options);
var stickyElement = $(this);
var stickyId = stickyElement.attr('id');
var wrapperId = stickyId ? stickyId + '-' + defaults.wrapperClassName : defaults.wrapperClassName;
var wrapper = $('<div></div>')
.attr('id', wrapperId)
.addClass(o.wrapperClassName);
stickyElement.wrapAll(function() {
if ($(this).parent("#" + wrapperId).length == 0) {
return wrapper;
}
});
var stickyWrapper = stickyElement.parent();
if (o.center) {
stickyWrapper.css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"});
}
if (stickyElement.css("float") === "right") {
stickyElement.css({"float":"none"}).parent().css({"float":"right"});
}
o.stickyElement = stickyElement;
o.stickyWrapper = stickyWrapper;
o.currentTop = null;
sticked.push(o);
methods.setWrapperHeight(this);
methods.setupChangeListeners(this);
});
},
setWrapperHeight: function(stickyElement) {
var element = $(stickyElement);
var stickyWrapper = element.parent();
if (stickyWrapper) {
stickyWrapper.css('height', element.outerHeight());
}
},
setupChangeListeners: function(stickyElement) {
if (window.MutationObserver) {
var mutationObserver = new window.MutationObserver(function(mutations) {
if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) {
methods.setWrapperHeight(stickyElement);
}
});
mutationObserver.observe(stickyElement, {subtree: true, childList: true});
} else {
if (window.addEventListener) {
stickyElement.addEventListener('DOMNodeInserted', function() {
methods.setWrapperHeight(stickyElement);
}, false);
stickyElement.addEventListener('DOMNodeRemoved', function() {
methods.setWrapperHeight(stickyElement);
}, false);
} else if (window.attachEvent) {
stickyElement.attachEvent('onDOMNodeInserted', function() {
methods.setWrapperHeight(stickyElement);
});
stickyElement.attachEvent('onDOMNodeRemoved', function() {
methods.setWrapperHeight(stickyElement);
});
}
}
},
update: scroller,
unstick: function(options) {
return this.each(function() {
var that = this;
var unstickyElement = $(that);
var removeIdx = -1;
var i = sticked.length;
while (i-- > 0) {
if (sticked[i].stickyElement.get(0) === that) {
splice.call(sticked,i,1);
removeIdx = i;
}
}
if(removeIdx !== -1) {
unstickyElement.unwrap();
unstickyElement
.css({
'width': '',
'position': '',
'top': '',
'float': '',
'z-index': ''
})
;
}
});
}
};
// should be more efficient than using $window.scroll(scroller) and $window.resize(resizer):
if (window.addEventListener) {
window.addEventListener('scroll', scroller, false);
window.addEventListener('resize', resizer, false);
} else if (window.attachEvent) {
window.attachEvent('onscroll', scroller);
window.attachEvent('onresize', resizer);
}
$.fn.sticky = function(method) {
if (methods[method]) {
return methods[method].apply(this, slice.call(arguments, 1));
} else if (typeof method === 'object' || !method ) {
return methods.init.apply( this, arguments );
} else {
$.error('Method ' + method + ' does not exist on jQuery.sticky');
}
};
$.fn.unstick = function(method) {
if (methods[method]) {
return methods[method].apply(this, slice.call(arguments, 1));
} else if (typeof method === 'object' || !method ) {
return methods.unstick.apply( this, arguments );
} else {
$.error('Method ' + method + ' does not exist on jQuery.sticky');
}
};
$(function() {
setTimeout(scroller, 0);
});
}));
</script>
<script>
// Determine the content section from the URL and expand the appropriate menu section
var url = document.createElement('a');
url.href = window.location;
switch (url.pathname.split('/')[2]) {
case 'tutorials':
$('#tutorials').addClass('in');
break;
case 'about':
$('#about').addClass('in');
break;
case 'admin':
$('#administrators').addClass('in');
break;
case 'member':
$('#members').addClass('in');
break;
case 'developer':
$('#developers').addClass('in');
break;
default:
break;
}
// Generate the table of contents in the side nav menu (see view/tpl/help.tpl)
$(document).ready(function () {
var tocUl = $('#page-toc-container').append('<ul>').find('ul');
tocUl.removeClass();
tocUl.toc({content: "#doco-content", headings: "h1,h2,h3,h4"});
$(".panel-collapse.in").find('a').each(function(){
window.console.log($(this).attr('href'));
var url = document.createElement('a');
url.href = window.location;
var pageName = url.href.split('/').pop().split('#').shift();
window.console.log('pageName: ' + pageName);
var linkName = $(this).attr('href').split('/').pop();
window.console.log('linkName: ' + linkName);
if(pageName === linkName) {
var tocUl = $(this).closest('li').append('<ul>').find('ul');
tocUl.removeClass(); // Classes are automatically added to <ul> elements by something else
tocUl.toc({content: "#doco-content", headings: "h1,h2"});
tocUl.addClass('toc-content');
tocUl.sticky({topSpacing:$('nav').outerHeight(true), zIndex: 1000});
}
});
//$('#accordion').sticky({topSpacing:$('nav').outerHeight(true)});
});
</script>
</script>

View File

@ -1,17 +1,3 @@
<p><strong>Table of Contents</strong></p>
<ul id="tutorial-toc">
<li><a href="/help/tutorials/personal_channel#Create_a_new_channel">Create a new channel</a></li>
<li><a href="/help/tutorials/personal_channel#Configure_your_channel_features">Configure your channel features</a></li>
<li><a href="/help/tutorials/personal_channel#Add_a_profile_photo">Add a profile photo</a></li>
<li><a href="/help/tutorials/personal_channel#Compose_a_post">Compose a post</a></li>
<li><a href="/help/tutorials/personal_channel#Use_an_uploaded_image_as_a_channel_cover_photo">Use an uploaded image as a channel cover photo</a></li>
<li><a href="/help/tutorials/personal_channel#Make_a_connection">Make a connection</a></li>
</ul>
<hr>
<h1 id="personal-channel">Personal Channel</h1>
<p>This tutorial is intended to be followed in sequence as if you were setting up a
channel for the first time. It introduces some of the tools and features related

View File

@ -1,5 +1,5 @@
<div id="help-content" class="generic-content-wrapper">
<div class="section-title-wrapper">
<div class="section-title-wrapper" style="display: none;">
<h2>{{$title}}</h2>
</div>
<div class="section-content-wrapper" id="doco-content">