aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Developers.md2
-rw-r--r--doc/Features.md2
-rw-r--r--doc/Plugins.md12
-rw-r--r--doc/Privacy.md6
-rw-r--r--doc/Translations.md2
-rw-r--r--doc/account_basics.bb2
-rw-r--r--doc/addons_gnusocial.bb8
-rw-r--r--doc/campaign.bb18
-rw-r--r--doc/channels.bb2
-rw-r--r--doc/cloud.bb2
-rw-r--r--doc/comanche.bb51
-rw-r--r--doc/connecting_to_channels.bb2
-rw-r--r--doc/connecting_to_channels.md2
-rw-r--r--doc/context/en/connedit/help.html12
-rw-r--r--doc/context/es-es/connedit/help.html12
-rw-r--r--doc/contributor/covenant.html106
-rw-r--r--doc/develop.bb4
-rw-r--r--doc/developers.bb4
-rw-r--r--doc/extra_features.bb2
-rw-r--r--doc/faq_admins.bb2
-rw-r--r--doc/faq_members.bb4
-rw-r--r--doc/feature/access_tokens.bb47
-rw-r--r--doc/hidden_configs.bb2
-rw-r--r--doc/permissions.bb2
-rw-r--r--doc/plugins.bb6
-rw-r--r--doc/problems-following-an-update.bb2
-rw-r--r--doc/red2pi.bb2
-rw-r--r--doc/sv/main.bb2
-rw-r--r--doc/zot.md2
29 files changed, 270 insertions, 52 deletions
diff --git a/doc/Developers.md b/doc/Developers.md
index b19b4fc2f..ef02c8327 100644
--- a/doc/Developers.md
+++ b/doc/Developers.md
@@ -18,7 +18,7 @@ to notify us to merge your work.
**Translations**
-Our translations are managed through Transifex. If you wish to help out translating the $Projectname to another language, sign up on transifex.com, visit [https://www.transifex.com/projects/p/red-matrix/](https://www.transifex.com/projects/p/red-matrix/) and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
+Our translations are managed through Transifex. If you wish to help out translating $Projectname to another language, sign up on transifex.com, visit [https://www.transifex.com/projects/p/red-matrix/](https://www.transifex.com/projects/p/red-matrix/) and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
[Translations - More Info](help/Translations)
diff --git a/doc/Features.md b/doc/Features.md
index 3c5105582..a43fd73fa 100644
--- a/doc/Features.md
+++ b/doc/Features.md
@@ -1,7 +1,7 @@
Extra Features
==============
-The default interface of the $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the [Extra Features](settings/features) link of your [Settings](settings) page.
+The default interface of $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the [Extra Features](settings/features) link of your [Settings](settings) page.
**Content Expiration**
diff --git a/doc/Plugins.md b/doc/Plugins.md
index 90ff0fb7d..88b42185b 100644
--- a/doc/Plugins.md
+++ b/doc/Plugins.md
@@ -1,9 +1,9 @@
-Creating Plugins/Addons for the $Projectname
+Creating Plugins/Addons for $Projectname
==========================================
-So you want to make the $Projectname do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon.
+So you want to make $Projectname do something it doesn't already do. There are lots of ways. But let's learn how to write a plugin or addon.
In your $Projectname folder/directory, you will probably see a sub-directory called 'addon'. If you don't have one already, go ahead and create it.
@@ -49,7 +49,7 @@ In our case, we'll call them randplace_load() and randplace_unload(), as that is
* pluginname_uninstall()
-Next we'll talk about **hooks**. Hooks are places in the $Projectname code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a "handler function" for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
+Next we'll talk about **hooks**. Hooks are places in $Projectname code where we allow plugins to do stuff. There are a [lot of these](help/Hooks), and they each have a name. What we normally do is use the pluginname_load() function to register a "handler function" for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
We register hook handlers with the 'register_hook()' function. It takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your $Projectname installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now.
@@ -246,18 +246,18 @@ we will create an argc/argv list for use by your module functions
***Porting Friendica Plugins***
-The $Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
+$Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica plugins can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
* Friendica's pluginname_install() is pluginname_load()
* Friendica's pluginname_uninstall() is pluginname_unload()
-The $Projectname has _install and _uninstall functions but these are used differently.
+$Projectname has _install and _uninstall functions but these are used differently.
* Friendica's "plugin_settings" hook is called "feature_settings"
* Friendica's "plugin_settings_post" hook is called "feature_settings_post"
-Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in the $Projectname. Many structured data names (especially DB schema columns) are also quite different.
+Changing these will often allow your plugin to function, but please double check all your permission and identity code because the concepts behind it are completely different in $Projectname. Many structured data names (especially DB schema columns) are also quite different.
#include doc/macros/main_footer.bb;
diff --git a/doc/Privacy.md b/doc/Privacy.md
index 089977d7e..1ac019f5a 100644
--- a/doc/Privacy.md
+++ b/doc/Privacy.md
@@ -36,11 +36,11 @@ Any information or anything posted by you within $Projectname MAY be public or v
Your profile photo, your channel name, and the location (URL or network address) of your channel are visible to anybody on the internet and privacy controls will not affect the display of these items.
-You MAY additionally provide other profile information. Any information which you provide in your "default" or **public profile** MAY be transmitted to other hubs in the $Projectname and additionally MAY be displayed in the channel directory. You can restrict the viewing of this profile information. It may be restricted only to members of your hub, or only connections (friends), or other limited sets of viewers as you desire. If you wish for your profile to be restricted, you must set the appropriate privacy setting, or simply DO NOT provide additional information.
+You MAY additionally provide other profile information. Any information which you provide in your "default" or **public profile** MAY be transmitted to other hubs in $Projectname and additionally MAY be displayed in the channel directory. You can restrict the viewing of this profile information. It may be restricted only to members of your hub, or only connections (friends), or other limited sets of viewers as you desire. If you wish for your profile to be restricted, you must set the appropriate privacy setting, or simply DO NOT provide additional information.
**Content**
-Content you provide (status posts, photos, files, etc.) belongs to you. The $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
+Content you provide (status posts, photos, files, etc.) belongs to you. $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
Content (especially status posts) that you share with other networks or that you have made visible to anybody on the internet (PUBLIC) cannot easily be taken back once it has been published. It MAY be shared with other networks and made available through RSS/Atom feeds. It may also be syndicated on other $Projectname sites. It MAY appear on other networks and websites and be visible in internet searches. If you do not wish this default behaviour please adjust your channel settings and restrict who can see your content.
@@ -56,7 +56,7 @@ $Projectname developers will ensure that any content you provide which is design
Privacy for your identity is another aspect. Because you have a decentralized identity in $Projectname, your privacy extends beyond your home hub. If you want to have complete control of your privacy and security you should run your own hub on a dedicated server. For many people, this is complicated and may stretch their technical abilities. So let's list a few precautions you can make to assure your privacy as much as possible.
-A decentralized identity has a lot of advantages and gives you al lot of interesting features, but you should be aware of the fact that your identity is known by other hubs in the $Projectname network. One of those advantages is that other channels can serve you customized content and allow you to see private things (such as private photos which others wish to share with you). Because of this those channels need to know who you are. But we understand that sometimes those other channels know more from you than you might desire. For instance the plug-in Visage that can tell a channel owner the last time you visit their profile. You can easily OPT-OUT of this low level and we think, harmless tracking.
+A decentralized identity has a lot of advantages and gives you al lot of interesting features, but you should be aware of the fact that your identity is known by other hubs in $Projectname network. One of those advantages is that other channels can serve you customized content and allow you to see private things (such as private photos which others wish to share with you). Because of this those channels need to know who you are. But we understand that sometimes those other channels know more from you than you might desire. For instance the plug-in Visage that can tell a channel owner the last time you visit their profile. You can easily OPT-OUT of this low level and we think, harmless tracking.
* You can enable [Do Not Track (DNT)](http://donottrack.us/) in your web browser. We respect this new privacy policy proposal. All modern browsers support DNT. You will find it in the privacy settings of your browsers or else you can consult the web browser's manual. This will not affect the functionality of $Projectname. This setting is probably enough for most people.
diff --git a/doc/Translations.md b/doc/Translations.md
index 226fa2e1a..654ba1b83 100644
--- a/doc/Translations.md
+++ b/doc/Translations.md
@@ -1,4 +1,4 @@
-Translating the $Projectname
+Translating $Projectname
==========================
Translation Process
diff --git a/doc/account_basics.bb b/doc/account_basics.bb
index ba2380df7..664949d6e 100644
--- a/doc/account_basics.bb
+++ b/doc/account_basics.bb
@@ -10,7 +10,7 @@ Please provide a valid email address. Your email address is never published. Thi
[b]Password[/b]
-Enter a password of your choice, and repeat it in the second box to ensure it was typed correctly. As the $Projectname offers a decentralised identity, your account can log you in to many other websites.
+Enter a password of your choice, and repeat it in the second box to ensure it was typed correctly. As $Projectname offers a decentralised identity, your account can log you in to many other websites.
[b]Terms Of Service[/b]
diff --git a/doc/addons_gnusocial.bb b/doc/addons_gnusocial.bb
index dfdce5f6a..d9aed9ac5 100644
--- a/doc/addons_gnusocial.bb
+++ b/doc/addons_gnusocial.bb
@@ -8,7 +8,7 @@ https://yourgnusocialinstance.org/settings/oauthapps
Next, click the link to Register a new application. That brings up the new application form. Here's what to do on each field.
-Icon. I uploaded the $Projectname icon located at this link, after saving it to my computer:
+Icon. I uploaded $Projectname icon located at this link, after saving it to my computer:
https://github.com/redmatrix/hubzilla/blob/master/images/rm-32.png
@@ -39,7 +39,7 @@ Then click on the icon or the name of the application for the information you'll
Now open up a new tab or window and go to your $Projectname account, to Settings > Feature settings. Find the StatusNet Posting Settings.
-Insert the strings of numbers given on the GNUsocial site into the $Projectname fields for Consumer Key and Consumer Secret.
+Insert the strings of numbers given on the GNUsocial site into $Projectname fields for Consumer Key and Consumer Secret.
The Base API Path (remember the trailing /) will be your instance domain, plus the /api/ following. It will probably look like this:
@@ -51,9 +51,9 @@ StatusNet application name: Insert the name you gave to the application over on
Click Submit.
-A button will appear for you to "Sign in to StatusNet." Click it and that will open a tab or window on the GNUsocial site for you to click "Allow." Once clicked and successfully authorized, a security code number will appear. Copy it and go back to the $Projectname app you just left and insert it in the field: "Copy the security code from StatusNet here." Click Submit.
+A button will appear for you to "Sign in to StatusNet." Click it and that will open a tab or window on the GNUsocial site for you to click "Allow." Once clicked and successfully authorized, a security code number will appear. Copy it and go back to $Projectname app you just left and insert it in the field: "Copy the security code from StatusNet here." Click Submit.
-If successful, your information from the GNUsocial instance should appear in the $Projectname app.
+If successful, your information from the GNUsocial instance should appear in $Projectname app.
You now have several options to choose, if you desire, and those will need to be confirmed by clicking "Submit" also. The most interesting is "Send public postings to StatusNet by default." This option automatically sends any post of yours made in your $Projectname account to your GNUsocial instance.
diff --git a/doc/campaign.bb b/doc/campaign.bb
index 48f28f0c0..750412ba3 100644
--- a/doc/campaign.bb
+++ b/doc/campaign.bb
@@ -4,7 +4,7 @@
[b][color= grey][size=18]Single-click sign on, nomadic identity, censorship-resistance, privacy, self-hosting[/size][/color][/b]
-We started the $Projectname project by asking ourselves a few questions:
+We started $Projectname project by asking ourselves a few questions:
- Imagine if it was possible to just access the content of different web sites, without the need to enter usernames and passwords for every site. Such a feature would permit Single-Click user identification: the ability to access sites simply by clicking on links to remote sites.
Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
@@ -52,7 +52,7 @@ Think of it this way: the internet is nothing, but a bunch of permissions and a
[b][color= grey][size=20]The Matrix is Born![/size][/color][/b]
-After asking and striving to answer a number of such questions, we realized that we were imagining a general purpose communication network with a number of unique, and potentially game-changing, features. We called it the $Projectname and started thinking of it as an over-lay on top of the internet as it exists today; an operating system re-invented as a communication network, with its own permissions, access control lists, protocol, connectors to others services, and open-ended possibilities via its API. The sum of the matrix is greater than it's parts. We're not building website, but a way for websites to link together and grow into something that is unique and ever-changing, with autonomy and privacy.
+After asking and striving to answer a number of such questions, we realized that we were imagining a general purpose communication network with a number of unique, and potentially game-changing, features. We called it $Projectname and started thinking of it as an over-lay on top of the internet as it exists today; an operating system re-invented as a communication network, with its own permissions, access control lists, protocol, connectors to others services, and open-ended possibilities via its API. The sum of the matrix is greater than it's parts. We're not building website, but a way for websites to link together and grow into something that is unique and ever-changing, with autonomy and privacy.
It's a lot of work, for anyone. So far, we've got a team of a handful of volunteers, code geeks, brave early adopters, system administrators and other good people, willing to give the project a shot. We're motivated by our commitment to a free web, where privacy is built-in, and corporations don't have a stranglehold on our daily communication.
@@ -60,7 +60,7 @@ We need your help to finish it and release it to the world!
[b][color= grey][size=20]What have we written so far[/size][/color][/b]
-As of the today, the $Projectname is in developer preview (alpha) state. It is not ready for everyday use, but some of the initial set of core features are implemented (again, in alpha state). These include:
+As of the today, $Projectname is in developer preview (alpha) state. It is not ready for everyday use, but some of the initial set of core features are implemented (again, in alpha state). These include:
- Zot, the protocol powering the matrix
- Single-signon logins.
@@ -71,7 +71,7 @@ As of the today, the $Projectname is in developer preview (alpha) state. It is
[b][color= grey][size=20]Our TO-DO List[/size][/color][/b]
-However, in addition to finishing and polishing the above, there are a number of features that have to implemented to make the $Projectname ready for daily use. If we meet our fundraising goal, we hope to dive into the following road map, by order of priority:
+However, in addition to finishing and polishing the above, there are a number of features that have to implemented to make $Projectname ready for daily use. If we meet our fundraising goal, we hope to dive into the following road map, by order of priority:
- A professionally designed user interface (UI), interface that is adaptive to any user level, from end users who want to use the Matrix as a social network, to tinkerers who will put together a customized blog using Comanche, to hackers who will develop and extend the matrix using a built-in code editor, that hooks to the API and the git.
@@ -145,7 +145,7 @@ You get one of your $Projectname t-shirts, as well as our undying gratitude.
Each contributor at this level gets their own $Projectname virtual private server, installed, hosted and supported by us for a period of 1 year.
-[b][color= grey][size=20]Why are we so excited about the $Projectname?[/size][/color][/b]
+[b][color= grey][size=20]Why are we so excited about $Projectname?[/size][/color][/b]
{SOMETHING ABOUT THE POTENTIAL IMPACT OF RED, ITS INNOVATIONS, ETC>
@@ -167,7 +167,7 @@ Perhaps you're good at writing and documenting stuff. Grab an account at one of
[b]1. Is Red a social network?[/b]
-The $Projectname is not a social network. We're thinking of it as a general purpose communication network, with sharing, and public/private communications built into the matrix.
+$Projectname is not a social network. We're thinking of it as a general purpose communication network, with sharing, and public/private communications built into the matrix.
[b]2. What is the difference between Red and Friendica?[/b]
@@ -177,7 +177,7 @@ Friendica is really, really good at sending postcards. It can do all sorts of th
What Friendica can't do, is wave a postcard at somebody and expect them to believe that holding this postcard prove you are who you say you are. Sure, if you've been sending somebody postcards, they might accept that it is you in the picture, but somebody who has never heard of you will not accept ownership of a postcard as proof of identity.
-The $Projectname offers a passport.
+$Projectname offers a passport.
You can still use it to send postcards. At the same time, when you wave your passport at somebody, they do accept it as proof of identity. No longer do you need to register at every single site you use. You already have an account - it's just not necessarily at our site - so we'll ask to see your passport instead.
@@ -194,7 +194,7 @@ We use MySQL as our database (this include any forks such as, MariaDB or Percona
[b]5. How is the Affinity Slider different from Mozilla's Persona?[/b]
{COMPLETE}
-[b]6. Does the $Projectname use encryption? Details please![/b]
+[b]6. Does $Projectname use encryption? Details please![/b]
Yes, we do our best to use free and open source encryption libraries to help achieve privacy from general, mass surveillance.
@@ -207,7 +207,7 @@ For more info on our initial implementation of encrypted communication, check ou
[b]7. What do you mean by decentralization? [/b]
-[b]8. Can I build my own website with in the $Projectname?[/b]
+[b]8. Can I build my own website with in $Projectname?[/b]
Yes. The short explanation: We've got this spiffy idea we're calling "Comanche", which will allow non-programmers to build complete custom websites, and any such website will be able to connect to any other website or channel in the matrix. The goal of Comanche is to hide the technical complexities of communicating in the matrix, while encouraging people to use their creativity and put together their own unique presence on the matrix.
diff --git a/doc/channels.bb b/doc/channels.bb
index 14d588266..eca8dd0e6 100644
--- a/doc/channels.bb
+++ b/doc/channels.bb
@@ -28,7 +28,7 @@ Once you have done this, your channel is ready to use. At [observer=1][observer.
[h3]The grid, permissions and delegation[/h3]
-The "Grid" page contains all recent posts from across the $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
+The "Grid" page contains all recent posts from across $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for "Can write to my "public" file storage" than a personal account. For more information, see the [zrl=[baseurl]/help/roles]permissions section[/zrl].
diff --git a/doc/cloud.bb b/doc/cloud.bb
index 3e0ac1fd3..2ad22806b 100644
--- a/doc/cloud.bb
+++ b/doc/cloud.bb
@@ -1,6 +1,6 @@
[b]Personal Cloud Storage[/b]
-The $Projectname provides an ability to store privately and/or share arbitrary files with friends.
+$Projectname provides an ability to store privately and/or share arbitrary files with friends.
You may either upload files from your computer into your storage area, or copy them directly from the operating system using the WebDAV protocol.
diff --git a/doc/comanche.bb b/doc/comanche.bb
index 6a96d5251..4b198d657 100644
--- a/doc/comanche.bb
+++ b/doc/comanche.bb
@@ -65,17 +65,23 @@ By default, $nav is placed in the "nav" page region and $content is pl
To select a theme for your page, use the 'theme' tag.
[code]
- [theme]apw[/theme]
+ [theme]suckerberg[/theme]
[/code]
-This will select the theme named "apw". By default your channel's preferred theme will be used.
+This will select the theme named "suckerberg". By default your channel's preferred theme will be used.
[code]
- [theme=passion]apw[/theme]
+ [theme=passion]suckerberg[/theme]
[/code]
-This will select the theme named "apw" and select the "passion" schema (theme variant).
+This will select the theme named "suckerberg" and select the "passion" schema (theme variant). Alternatively it may be possible to use a condensed theme notation for this.
+[code]
+ [theme]suckerberg:passion[/theme]
+
+[/code]
+
+The condensed notation isn't part of Comanche itself but is recognised by $Projectname platform as a theme specifier.
[b]Regions[/b]
Each region has a name, as noted above. You will specify the region of interest using a 'region' tag, which includes the name. Any content you wish placed in this region should be placed between the opening region tag and the closing tag.
@@ -164,7 +170,42 @@ The 'comment' tag is used to delimit comments. These comments will not appear on
[comment]This is a comment[/comment]
[/code]
-
+
+[b]Conditional Execution[/b]
+You can use an 'if' construct to make decisions. These are currently based on system configuration variable or the current observer.
+
+[code]
+ [if $config.system.foo]
+ ... the configuration variable system.foo evaluates to 'true'.
+ [else]
+ ... the configuration variable system.foo evaluates to 'false'.
+ [/if]
+
+ [if $observer]
+ ... this content will only be show to authenticated viewers
+ [/if]
+
+[/code]
+
+ The 'else' clause is optional.
+
+ Several tests are supported besides boolean evaluation.
+
+[code]
+ [if $config.system.foo == bar]
+ ... the configuration variable system.foo is equal to the string 'bar'
+ [/if]
+ [if $config.system.foo != bar]
+ ... the configuration variable system.foo is not equal to the string 'bar'
+ [/if]
+ [if $config.system.foo {} bar ]
+ ... the configuration variable system.foo is a simple array containing a value 'bar'
+ [/if]
+ [if $config.system.foo {*} bar]
+ ... the configuration variable system.foo is a simple array containing a key named 'bar'
+ [/if]
+[/code]
+
[b]Complex Example[/b]
[code]
[comment]use an existing page template which provides a banner region plus 3 columns beneath it[/comment]
diff --git a/doc/connecting_to_channels.bb b/doc/connecting_to_channels.bb
index be37eb25c..291323f75 100644
--- a/doc/connecting_to_channels.bb
+++ b/doc/connecting_to_channels.bb
@@ -1,6 +1,6 @@
[b]Connecting To Channels[/b]
-Connections in the $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
+Connections in $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the "Can send me their channel stream and posts" permission to "Anybody in this network" will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
diff --git a/doc/connecting_to_channels.md b/doc/connecting_to_channels.md
index 60834c244..349f58b67 100644
--- a/doc/connecting_to_channels.md
+++ b/doc/connecting_to_channels.md
@@ -1,6 +1,6 @@
# Connecting To Channels #
-Connections in the $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
+Connections in $Projectname can take on a great many different meanings. But let's keep it simple, you want to be friends with somebody like you are familiar with from social networking. How do you do it?
First, you need to find some channels to connect to. There are two primary ways of doing this. Firstly, setting the "Can send me their channel stream and posts" permission to "Anybody in this network" will bring posts from complete strangers to your matrix. This will give you a lot of public content and should hopefully help you find interesting, entertaing people, forums, and channels.
diff --git a/doc/context/en/connedit/help.html b/doc/context/en/connedit/help.html
new file mode 100644
index 000000000..9eb62ecc7
--- /dev/null
+++ b/doc/context/en/connedit/help.html
@@ -0,0 +1,12 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>This page allows you to change or edit any individual settings for a particular connection or delete a connection completely. You may have arrived at this page after creating or approving a new connection. If so, you are not required to do anything. Your connection has already been established. You <strong>may</strong> wish to add them to a group or adjust special permissions, and this page is presented so that you may do this while the opportunity is fresh.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Click to highlight element...">Connection Tools</a></dt>
+ <dd>The <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Click to highlight element...">Connection Tools</a> menu access several settings. View Profile, View Recent Activity, Refresh Permissions, set or reset flags (Block, Ignore, Archive, Hide) and Delete the connection.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#group-sidebar", 0); return false;' title="Click to highlight element...">Privacy Groups</a></dt>
+ <dd>Each connection may be assigned to one or more Privacy Groups for grouping collections of friends with access to specific posts, media and other content. You may add them to an existing privacy group here, or create a new privacy group. When you add them to an existing group the action is immediate and you are not required to submit a form. </dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#perms-tool", 0); return false;' title="Click to highlight element...">Individual Permissions</a></dt>
+ <dd>Granting of permissions is usually automatic and require no action on your part. However you may wish to adjust specific permsisions for this connection which are different than for others.</dd>
+ <dt>Feature Specific Settings</dt>
+ <dd>A number of individual settings are controlled through additional features which may or may not be activated on your hub or for your channel. Several optional features have settings for each connection, and those may be set on this page through additional form tabs which may be present.</dd>
+</dl>
diff --git a/doc/context/es-es/connedit/help.html b/doc/context/es-es/connedit/help.html
new file mode 100644
index 000000000..000f28950
--- /dev/null
+++ b/doc/context/es-es/connedit/help.html
@@ -0,0 +1,12 @@
+<dl class="dl-horizontal">
+ <dt>General</dt>
+ <dd>Esta página le permite cambiar o modificar cualquier ajuste individual para una conexión en concreto o eliminar una conexión completamente. Ha podido llegar a esta página tras crear o aprobar una conexión nueva. Si es así, no tiene por qué hacer nada. Su conexión ya se ha establecido. <strong>Es posible</strong> que desee añadirla a un grupo o ajustar para ella permisos especiales; si es así, esta página se presenta de modo que usted pueda hacerlo mientras todo el proceso es aún reciente.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Pulsar para resaltar el elemento...">Conexiones</a></dt>
+ <dd>El menú <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Pulsar para resaltar el elemento...">Conexiones</a> le da acceso a varios ajustes: "Ver el perfil", "Ver la actividad reciente", "Recargar los permisos", añadir o quitar estados ("flags") ("Bloquear", "Ignorar", "Archivar", "Ocultar") y eliminar la conexión.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#group-sidebar", 0); return false;' title="Pulsar para resaltar el elemento...">Grupos de canales</a></dt>
+ <dd>Todas las conexiones se puede incluir en uno o varios grupos de canales para formar conjuntos de amigos con acceso a publicaciones concretas, ficheros multimedia y otros tipos de contenido. Puede añadirla aquí a un grupo de canales ya existente o crear un grupo nuevo. Cuando añade la conexión a un grupo que ya existe, el efecto es inmediato y no será requerido para confirmarlo.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#perms-tool", 0); return false;' title="Pulsar para resaltar el elemento...">Permisos individuales</a></dt>
+ <dd>La concesión de permisos es, generalmente, automática y no requiere ninguna acción por su parte. Sin embargo, puede, si lo desea, ajustar permisos especiales, diferentes de los permisos concedidos a otros, para una conexión concreta.</dd>
+ <dt>Ajustes de funcionalidades concretas</dt>
+ <dd>Una serie de ajustes individuales se controlan mediante funcionalidades adicionales que pueden, o no, estar activadas en un hub o para su canal en concreto. Varias funcionalidades adicionales tienen ajustes para cada conexión, Estas funcionalidades se pueden configurar en esta página, de forma adicional, mediante pestañas que pueden estar presentes.</dd>
+</dl>
diff --git a/doc/contributor/covenant.html b/doc/contributor/covenant.html
new file mode 100644
index 000000000..4facac24e
--- /dev/null
+++ b/doc/contributor/covenant.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+
+<html lang="en">
+<head>
+ <meta charset="utf-8"/>
+ <title>Contributor Covenant 1.4.0</title>
+ <style>
+ body {
+ font-family: monospace;
+ padding: 4em;
+ }
+ a {
+ color: #990000;
+ }
+ </style>
+ <link rel="alternate" hreflang="de" href="version/1/3/0/de/" />
+ <link rel="alternate" hreflang="es" href="version/1/4/es/" />
+ <link rel="alternate" hreflang="fr" href="version/1/3/0/fr/" />
+ <link rel="alternate" hreflang="hu" href="version/1/3/0/hu/" />
+ <link rel="alternate" hreflang="it" href="version/1/3/0/it/" />
+ <link rel="alternate" hreflang="ja" href="version/1/3/0/ja/" />
+ <link rel="alternate" hreflang="pl" href="version/1/4/pl/" />
+ <link rel="alternate" hreflang="pt" href="version/1/3/0/pt/" />
+ <link rel="alternate" hreflang="pt" href="version/1/3/0/pt_br/" />
+ <link rel="alternate" hreflang="ru" href="version/1/3/0/ru/" />
+ <link rel="alternate" hreflang="sl" href="version/1/4/sl/" />
+ <link rel="alternate" hreflang="uk" href="version/1/4/uk/" />
+</head>
+
+<body>
+
+<h1>Contributor Covenant Code of Conduct</h1>
+
+<h2>Our Pledge</h2>
+
+<p>In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of experience,
+nationality, personal appearance, race, religion, or sexual identity and
+orientation.</p>
+
+<h2>Our Standards</h2>
+
+<p>Examples of behavior that contributes to creating a positive environment
+include:</p>
+
+<ul>
+ <li>Using welcoming and inclusive language</li>
+ <li>Being respectful of differing viewpoints and experiences</li>
+ <li>Gracefully accepting constructive criticism</li>
+ <li>Focusing on what is best for the community</li>
+ <li>Showing empathy towards other community members</li>
+</ul>
+
+<p>Examples of unacceptable behavior by participants include:</p>
+
+<ul>
+ <li>The use of sexualized language or imagery and unwelcome sexual attention or advances</li>
+ <li>Trolling, insulting/derogatory comments, and personal or political attacks</li>
+ <li>Public or private harassment</li>
+ <li>Publishing others' private information, such as a physical or electronic address, without explicit permission</li>
+ <li>Other conduct which could reasonably be considered inappropriate in a professional setting</li>
+</ul>
+
+<h2>Our Responsibilities</h2>
+
+<p>Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.</p>
+
+<p>Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.</p>
+
+<h2>Scope</h2>
+
+<p>This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.</p>
+
+<h2>Enforcement</h2>
+
+<p>Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at project&#x40;hubzilla.org. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.</p>
+
+<p>Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.</p>
+
+<h2>Attribution</h2>
+
+<p>This Code of Conduct is adapted from the <a href="http://contributor-covenant.org">Contributor Covenant</a>, version 1.4,
+available at <a href="http://contributor-covenant.org/version/1/4/">http://contributor-covenant.org/version/1/4</a>.</p>
+
+</body>
+</html>
diff --git a/doc/develop.bb b/doc/develop.bb
index ef3ea5bd0..20e987a5a 100644
--- a/doc/develop.bb
+++ b/doc/develop.bb
@@ -20,12 +20,12 @@
[zrl=[baseurl]/help/api_posting]Posting to $Projectname using the API[/zrl]
[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
[zrl=[baseurl]/doc/html/]Code Reference (Doxygen generated - sets cookies)[/zrl]
-[zrl=[baseurl]/help/to_do_doco]To-Do list for the $Projectname Documentation Project[/zrl]
+[zrl=[baseurl]/help/to_do_doco]To-Do list for $Projectname Documentation Project[/zrl]
[zrl=[baseurl]/help/to_do_code]To-Do list for Developers[/zrl]
[zrl=[baseurl]/help/roadmap]Roadmap[/zrl]
[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
[zrl=[baseurl]/help/dev_beginner]Step-for-step manual for beginning developers[/zrl]
[h3]External Resources[/h3]
-[url=https://zothub.com/channel/one]Development Channel[/url]
+[url=https://grid.reticu.li/channel/hubzilla]Development Channel[/url]
[url=https://federated.social/channel/postgres]Postgres-specific $Projectname Admin Support Channel[/url]
diff --git a/doc/developers.bb b/doc/developers.bb
index 6f7752577..f8489640b 100644
--- a/doc/developers.bb
+++ b/doc/developers.bb
@@ -1,6 +1,6 @@
[b]$Projectname Developer Guide[/b]
-We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
+We're pretty relaxed when it comes to developers. We don't have a lot of rules. Some of us are over-worked and if you want to help we're happy to let you help. That said, attention to a few guidelines will make the process smoother and make it easier to work together. All developers are expected to abide by our [zrl=[baseurl]/help/contributor/covenant]code of conduct[/zrl]. We have developers from across the globe with different abilities and different cultural backgrounds and different levels of patience. Our primary rule is to respect others. Sometimes this is hard and sometimes we have very different opinions of how things should work, but if everybody makes an effort, we'll get along just fine.
[b]Here is how you can join us.[/b]
@@ -19,7 +19,7 @@ to notify us to merge your work.
[b]Translations[/b]
-Our translations are managed through Transifex. If you wish to help out translating the $Projectname to another language, sign up on transifex.com, visit [url=https://www.transifex.com/projects/p/red-matrix/]https://www.transifex.com/projects/p/red-matrix/[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
+Our translations are managed through Transifex. If you wish to help out translating $Projectname to another language, sign up on transifex.com, visit [url=https://www.transifex.com/projects/p/red-matrix/]https://www.transifex.com/projects/p/red-matrix/[/url] and request to join one of the existing language teams or create a new one. Notify one of the core developers when you have a translation update which requires merging, or ask about merging it yourself if you're comfortable with git and PHP. We have a string file called 'messages.po' which is gettext compliant and a handful of email templates, and from there we automatically generate the application's language files.
[zrl=[baseurl]/help/Translations]Translations - More Info[/zrl]
diff --git a/doc/extra_features.bb b/doc/extra_features.bb
index 9fb43d9a1..0044a06a7 100644
--- a/doc/extra_features.bb
+++ b/doc/extra_features.bb
@@ -1,7 +1,7 @@
// multiple of these have been enabled by default. should we note this here somewhere, move it or remove them from this file?
[b]Features[/b]
-The default interface of the $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the Extra Features link of your Settings page.
+The default interface of $Projectname was designed to be uncluttered. There are a huge number of extra features (some of which are extremely useful) which you can turn on and get the most of the application. These are found under the Extra Features link of your Settings page.
[b]Content Expiration[/b]
diff --git a/doc/faq_admins.bb b/doc/faq_admins.bb
index 63418c1dc..0b54a41de 100644
--- a/doc/faq_admins.bb
+++ b/doc/faq_admins.bb
@@ -1,4 +1,4 @@
-[size=large][b]The $Projectname FAQ[/b][/size]
+[size=large][b]$Projectname FAQ[/b][/size]
[toc]
diff --git a/doc/faq_members.bb b/doc/faq_members.bb
index 7af61df9b..c7f50314d 100644
--- a/doc/faq_members.bb
+++ b/doc/faq_members.bb
@@ -1,11 +1,11 @@
-[size=large][b]The $Projectname FAQ[/b][/size]
+[size=large][b]$Projectname FAQ[/b][/size]
[toc]
[h3]I am able to edit a post's text after I saved it, but is there a way to change the permissions?[/h3]
Short anser: No, there isn't. There are reasons. You are able to change permissons 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 $Projectname 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 $Projectname 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.
-If a posting is public this is even harder, as the $Projectname 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.
+If a posting is public this is even harder, as $Projectname 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.
[h3]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]
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". 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. :)
diff --git a/doc/feature/access_tokens.bb b/doc/feature/access_tokens.bb
new file mode 100644
index 000000000..eb5c03717
--- /dev/null
+++ b/doc/feature/access_tokens.bb
@@ -0,0 +1,47 @@
+Feature: Zot Access Tokens
+Status: Draft
+Date: 15 July 2016
+
+
+Purpose:
+
+In order to facilitate sharing of private resources with non-members or members of federation nodes with limited identification discovery, Hubzilla should provide members with a mechanism to create and manage temporary ("throwaway") logins, aka "Zot Access Tokens". These tokens/credentials may be used to authenticate to a hubzilla site for the sole purpose of accessing privileged or access controlled resources (files, photos, posts, webpages, chatrooms, etc.).
+
+
+Scope:
+
+Zot Access Tokens do not convey membership in the site or network. In particular, they do not provide an account or channel; which may be necessary to interact with the hub owner or with others in the network or federation of networks. In most cases they can only be used to consume restricted resources and do not have an ability to create those resources, however this ability may be provided by custom configurations or in future releases or addons.
+
+For instance the ability for a temporary login to access a chatroom may provide suitable permission to create chat messages inside that chatroom.
+
+
+Implementation:
+
+Zot Access Tokens are managed through a "tab" of the settings page. Access to this tab may be controlled by site configuration. On this page, channels may create, edit, list, and remove any access tokens under their control.
+
+The form to create/edit accepts three parameters, a human readable name, a password or access token, and an optional expiration. Once expired, the access token is no longer valid, may no longer be used, and will be automatically purged from the list of temporary accounts. The password field in the create/edit forms displays the text of the access token and not an obscured password. By default we will create a token using the autoname() function, which generally produces a random character sequence which is "pronounceable", hence easy to convey or remember. This can be changed to any other character sequence which is acceptable to the site password complexity policy. (In most Hubzilla installations this imposes a minimum of three characters, but may be extended by plugin or site policy).
+
+
+Usage:
+
+We do not specify mechanisms for sharing these tokens with others. Any communication method may be used. Any tokens you have created are added to the Access Control List selector and may be used anywhere that Access Control Lists are provided.
+
+ Example: A visitor arrives at your site. She has an access token you have provided, and attempts to visit one of your photo albums (which is restricted to be viewed only by yourself and one temporary identity). Permission is denied.
+
+The visitor now selects "Login" from the menu navigation bar. This presents a login page. She enters the name and password you have provided her, and she can now view the restricted photo album.
+
+
+Alternatively, you may share a link to a protected file by adding a parameter "&zat=abc123" to the URL, where the string "abc123" is the access token or password for the temporary login. No further negotiation is required, and the file is presented.
+
+Zot Acess Tokens are represented internally as an authenticated "observer". Querying the observer in code should return a pseudo or system generated xchan with an unknown protocol and a default profile photo. It will match (successfully) any access control rule which allows authenticated observers.
+
+Security Considerations:
+
+The URL form of authentication is inherently less secure than using a login, but may be preferable for some uses of this feature. It probably should not be transmitted over non-SSL links.
+
+
+Future development:
+
+It might be desirable for future implementations to provide an options for single-use, where the access token is removed promptly following first use.
+
+ \ No newline at end of file
diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb
index 6e093dbfc..35408c037 100644
--- a/doc/hidden_configs.bb
+++ b/doc/hidden_configs.bb
@@ -67,7 +67,7 @@ Options are:
[*= system.paranoia ] As the pconfig, but on a site-wide basis. Can be overwritten by member settings.
[*= system.photo_cache_time ] How long to cache photos, in seconds. Default is 86400 (1 day). Longer time increases performance, but it also means it takes longer for changed permissions to apply.
[*= system.platform_name ] What to report as the platform name in webpages and statistics. (*) Must be set in .htconfig.php
- [*= system.poco_rating_enable ] Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections.
+ [*= system.rating_enabled ] Distributed reputation reporting and data collection. This feature is currently being re-worked.
[*= system.poke_basic ] Reduce the number of poke verbs to exactly 1 ("poke"). Disable other verbs.
[*= system.proc_run_use_exec ] If 1, use the exec system call in proc_run to run background tasks. By default we use proc_open and proc_close. On some (currently rare) systems this does not work well.
[*= system.projecthome ] Display the project page on your home page for logged out viewers.
diff --git a/doc/permissions.bb b/doc/permissions.bb
index cc831dd61..0721c763d 100644
--- a/doc/permissions.bb
+++ b/doc/permissions.bb
@@ -28,7 +28,7 @@ We highly recommend that you use the "typical social network" settings when you
[*= Anybody On This Hub ] Anybody with a channel on the same hub/website as you will have permission approved. Anybody who is registered at a different hub will have this permission denied.
- [*= Anybody in this network ] Anybody in the $Projectname will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
+ [*= Anybody in this network ] Anybody in $Projectname will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
[*= Anybody authenticated ] This is similar to "anybody in this network" except that it can include anybody who can authenticate by any means - and therefore [i]may[/i] include visitors from other networks.
diff --git a/doc/plugins.bb b/doc/plugins.bb
index f2f0b04e8..a320de790 100644
--- a/doc/plugins.bb
+++ b/doc/plugins.bb
@@ -45,7 +45,7 @@ In our case, we'll call them randplace_load() and randplace_unload(), as that is
pluginname_uninstall()
[/code]
-Next we'll talk about [b]hooks[/b]. Hooks are places in the $Projectname code where we allow plugins to do stuff. There are a [url=[baseurl]/help/hooklist]lot of these[/url], and they each have a name. What we normally do is use the pluginname_load() function to register a &quot;handler function&quot; for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
+Next we'll talk about [b]hooks[/b]. Hooks are places in $Projectname code where we allow plugins to do stuff. There are a [url=[baseurl]/help/hooklist]lot of these[/url], and they each have a name. What we normally do is use the pluginname_load() function to register a &quot;handler function&quot; for any hooks you are interested in. Then when any of these hooks are triggered, your code will be called.
We register hook handlers with the 'Zotlabs\Extend\Hook::register()' function. It typically takes 3 arguments. The first is the hook we wish to catch, the second is the filename of the file to find our handler function (relative to the base of your $Projectname installation), and the third is the function name of your handler function. So let's create our randplace_load() function right now.
@@ -295,13 +295,13 @@ If you want to keep your plugin hidden from the siteinfo page, simply create a f
***Porting Friendica Plugins***
-The $Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
+$Projectname uses a similar plugin architecture to the Friendica project. The authentication, identity, and permissions systems are completely different. Many Friendica can be ported reasonably easily by renaming a few functions - and then ensuring that the permissions model is adhered to. The functions which need to be renamed are:
[li] Friendica's pluginname_install() is pluginname_load()[/li]
[li] Friendica's pluginname_uninstall() is pluginname_unload()[/li]
-The $Projectname has _install and _uninstall functions but these are used differently.
+$Projectname has _install and _uninstall functions but these are used differently.
[li] Friendica's &quot;plugin_settings&quot; hook is called &quot;feature_settings&quot;[/li]
diff --git a/doc/problems-following-an-update.bb b/doc/problems-following-an-update.bb
index 3bc7e9a51..2d1fefc5b 100644
--- a/doc/problems-following-an-update.bb
+++ b/doc/problems-following-an-update.bb
@@ -28,7 +28,7 @@ We use the Smarty3 template engine to generate pages. These templates are compi
[b]Theme Issues[/b]
-There are many themes for The $Projectname. Only Redbasic is officialy supported by the core developers. This applies [i]even if a core developer happens to support an additional theme[/i]. This means new features are only guaranteed to work in Redbasic.
+There are many themes for $Projectname. Only Redbasic is officialy supported by the core developers. This applies [i]even if a core developer happens to support an additional theme[/i]. This means new features are only guaranteed to work in Redbasic.
Redbasic uses a few javascript libraries that are done differently, or entirely absent in other themes. This means new features may only work properly in Redbasic. Before reporting an issue, therefore, you should switch to Redbasic to see if it exists there. If the issue goes away, this is not a bug - it's a theme that isn't up to date.
diff --git a/doc/red2pi.bb b/doc/red2pi.bb
index 18e7d325a..28db7dc70 100644
--- a/doc/red2pi.bb
+++ b/doc/red2pi.bb
@@ -1,4 +1,4 @@
-[b]How to install the $Projectname on a Raspberry Pi[/b]
+[b]How to install $Projectname on a Raspberry Pi[/b]
You just bought a Raspberry Pi and want to run the RED Matrix with your own domain name?
diff --git a/doc/sv/main.bb b/doc/sv/main.bb
index a5c1d4f7a..1ab77a499 100644
--- a/doc/sv/main.bb
+++ b/doc/sv/main.bb
@@ -13,7 +13,7 @@ Zot är en fantastisk ny kommunikationsprotokoll uppfunnit speciellt för $Proje
[h3]Kom igång[/h3]
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
[zrl=[baseurl]/help/registration]Account Registration[/zrl]
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at the $Projectname: accounts, profiles and channels in short[/zrl]
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at $Projectname: accounts, profiles and channels in short[/zrl]
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
[zrl=[baseurl]/help/channels]Channels[/zrl]
[zrl=[baseurl]/help/sv/roles]Behörighetsförval för kanaler[/zrl]
diff --git a/doc/zot.md b/doc/zot.md
index 1e454e495..06c4d6083 100644
--- a/doc/zot.md
+++ b/doc/zot.md
@@ -57,7 +57,7 @@ In order to implement high performance communications, the data transfer format
Bi-directional encryption is based on RSA 4096-bit keys expressed in DER/ASN.1 format using the PKCS#8 encoding variant, with AES-256-CBC used for block encryption of variable length or large items.
-Some aspects of well known "federation protocols" (webfinger, salmon, activitystreams, portablecontacts, etc.) may be used in zot, but we are not tied to them and will not be bound by them. The $Projectname project is attempting some rather novel developments in decentralised communications and if there is any need to diverge from such "standard protocols" we will do so without question or hesitation.
+Some aspects of well known "federation protocols" (webfinger, salmon, activitystreams, portablecontacts, etc.) may be used in zot, but we are not tied to them and will not be bound by them. $Projectname project is attempting some rather novel developments in decentralised communications and if there is any need to diverge from such "standard protocols" we will do so without question or hesitation.
In order to create a globally unique ID, we will base it on a whirlpool hash of the identity URL of the origination node and a psuedo-random number, which should provide us with a 256 bit ID with an extremely low probability of collision (256 bits represents approximately 115 quattuorviginitillion or 1.16 X 10^77 unique numbers). This will be represented in communications as a base64url-encoded string. We will not depend on probabilities however and the ID must also be attached to a public key with public key cryptography used to provide an assurance of identity which has not been copied or somehow collided in whirlpool hash space.