Skip to content

Commit e8a8e25

Browse files
eshanrnhgitbook-bot
authored andcommitted
GITBOOK-61: Fixed Contributing Link
1 parent 9a248b6 commit e8a8e25

File tree

8 files changed

+45
-45
lines changed

8 files changed

+45
-45
lines changed

10/umbraco-cms/SUMMARY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* [Umbraco 8 Documentation](https://our.umbraco.com/documentation/)
77
* [Umbraco 7 Documentation](https://our.umbraco.com/documentation/)
88
* [Release Notes](https://our.umbraco.com/download/releases/)
9-
* [Contribute](https://docs.umbraco.com/welcome/contribute/getting-started)
9+
* [Contribute](https://docs.umbraco.com/contributing)
1010
* [Sustainability Best Practices](https://docs.umbraco.com/sustainability-best-practices/)
1111

1212
## Fundamentals
@@ -198,7 +198,7 @@
198198
* [Installing and Uninstalling Packages](extending/packages/installing-and-uninstalling-packages.md)
199199
* [Maintaining packages](extending/packages/maintaining-packages.md)
200200
* [Create accessible Umbraco packages](extending/packages/accessibility.md)
201-
* [Example Package Repository](./extending/packages/example-package-repository.md)
201+
* [Example Package Repository](extending/packages/example-package-repository.md)
202202
* [UI Library](extending/ui-library.md)
203203

204204
## Reference

10/umbraco-cms/fundamentals/setup/install/install-umbraco-with-templates.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Video tutorial
1212

1313
1. Install the latest [.NET SDK](https://dotnet.microsoft.com/download).
1414
2. Run `dotnet new install Umbraco.Templates` to install the project templates.\
15-
_The solution is packaged up into the NuGet package_ [_Umbraco.Templates_](https://www.nuget.org/packages/Umbraco.Templates) _and can be installed into the dotnet CLI_.
15+
&#xNAN;_The solution is packaged up into the NuGet package_ [_Umbraco.Templates_](https://www.nuget.org/packages/Umbraco.Templates) _and can be installed into the dotnet CLI_.
1616

1717
> Once that is complete, you can see that Umbraco was added to the list of available projects types by running `dotnet new --list`:
1818

10/umbraco-cms/fundamentals/setup/server-setup/running-umbraco-in-docker.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,32 @@ Exactly how you choose to compose your Dockerfile will depend on your project sp
44

55
## What is Docker
66

7-
Docker is a platform for developing, shipping, and running applications in containers. Multiple services exist for hosting these containers. For more information, refer to the [official Docker Documentation](https://docs.docker.com/)
7+
Docker is a platform for developing, shipping, and running applications in containers. Multiple services exist for hosting these containers. For more information, refer to the [official Docker Documentation](https://docs.docker.com/)
88

99
## The Docker file system
1010

11-
By default, files created inside a container are written to an ephemeral, writable container layer.
11+
By default, files created inside a container are written to an ephemeral, writable container layer.\
1212
This means that the files don't persist when the container is removed, and it's challenging to get files out of the container. Additionally, this writable layer is not suitable for performance-critical data processing.
1313

1414
This has implications when running Umbraco in Docker.
1515

1616
For more information, refer to the [Docker documentation on storage](https://docs.docker.com/engine/storage/).
1717

18-
### General file system consideration
18+
### General file system consideration
1919

2020
In general, when working with files and Docker you work in a "push" fashion with read-only layers. When you build, you take all your files and "push" them into this read-only layer.
2121

2222
This means that you should avoid making files on the fly, and instead rely on building your image.
2323

24-
In an Umbraco context, this means you should not create or edit template, script or stylesheet files via the backoffice. These should be deployed as part of your web application and not managed via Umbraco.
24+
In an Umbraco context, this means you should not create or edit template, script or stylesheet files via the backoffice. These should be deployed as part of your web application and not managed via Umbraco.
2525

2626
Similarly, you shouldn't use InMemory modelsbuilder, since that also relies on creating files on the disk. While this is not a hard requirement, it doesn't provide any value unless you are live editing your site.
2727

2828
Instead, configure models builder to use "source code" mode in development, and "none" in production, as [described when using runtime modes](https://docs.umbraco.com/umbraco-cms/fundamentals/setup/server-setup/runtime-modes).
2929

30-
3130
### Logs
3231

33-
Umbraco writes logs to the `/umbraco/Logs/` directory. Due to the performance implications of writing to a writable layer,
32+
Umbraco writes logs to the `/umbraco/Logs/` directory. Due to the performance implications of writing to a writable layer,\
3433
and the limited size, it is recommended to mount a volume to this directory.
3534

3635
### Data
@@ -39,18 +38,18 @@ The `/umbraco/Data/` directory is used to store temporary files, such as file up
3938

4039
### Media
4140

42-
It's recommended to not store media in the writable layer. This is for similar performance reasons as logs,
43-
but also for practical hosting reasons. You likely want to persist media files between containers.
41+
It's recommended to not store media in the writable layer. This is for similar performance reasons as logs,\
42+
but also for practical hosting reasons. You likely want to persist media files between containers.
4443

4544
One solution is to use bind mounts. The ideal setup, though, is to store the media and ImageSharp cache externally. For more information, refer to the [Azure Blob Storage documentation](https://docs.umbraco.com/umbraco-cms/extending/filesystemproviders/azure-blob-storage).
4645

4746
### Required files
4847

49-
Your solution may require some specific files to run, such as license files. You will need to pass these files into the container at build time, or mount them externally.
48+
Your solution may require some specific files to run, such as license files. You will need to pass these files into the container at build time, or mount them externally.
5049

5150
## HTTPS
5251

53-
When running websites in Docker, it's common to do so behind a reverse proxy or load balancer.
52+
When running websites in Docker, it's common to do so behind a reverse proxy or load balancer.\
5453
In these scenarios you will likely handle SSL termination at the reverse proxy. This means that Umbraco will not be aware of the SSL termination, and will complain about not using HTTPS.
5554

5655
Umbraco checks for HTTPS in two locations:
@@ -85,7 +84,7 @@ The `UseHttpsValidator` must be removed through code For more information see th
8584

8685
The code to remove the validator can look something like:
8786

88-
```C#
87+
```c#
8988
using Umbraco.Cms.Core.Composing;
9089
using Umbraco.Cms.Infrastructure.Runtime.RuntimeModeValidators;
9190

34.7 KB
Loading

10/umbraco-cms/fundamentals/setup/upgrading/version-specific/migrate-content-to-umbraco-8.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ A content migration tool has been implemented in Umbraco 8.1.0, to help you with
1313
In this guide you can read more about the tool, its limitations, and how to use it in practice.
1414

1515
{% hint style="info" %}
16-
#### Migrating Umbraco Cloud sites
16+
**Migrating Umbraco Cloud sites**
1717

1818
Follow the [steps outlined in the Umbraco Cloud documentation](../../../../../umbraco-cloud/upgrades/migrate-from-umbraco-7-to-8.md) to upgrade your Umbraco 7 site on Cloud.
1919
{% endhint %}
@@ -71,9 +71,9 @@ There are 3 options that a developer can choose to do to work around this automa
7171

7272
This option requires you to create a custom C# migrator for each of your custom property editors that store custom configuration data. It will also require that you implement these migrators before you run the Umbraco 8 content migration.
7373

74-
To do this, you will create an implementation of `IPreValueMigrator` or inherit from the base class [`DefaultPreValueMigrator`](https://github.com/umbraco/Umbraco-CMS/blob/v8/dev/src/Umbraco.Core/Migrations/Upgrade/V\_8\_0\_0/DataTypes/DefaultPreValueMigrator.cs).
74+
To do this, you will create an implementation of `IPreValueMigrator` or inherit from the base class [`DefaultPreValueMigrator`](https://github.com/umbraco/Umbraco-CMS/blob/v8/dev/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes/DefaultPreValueMigrator.cs).
7575

76-
There are plenty of examples of this in the [Umbraco-CMS codebase](https://github.com/umbraco/Umbraco-CMS/tree/v8/dev/src/Umbraco.Core/Migrations/Upgrade/V\_8\_0\_0/DataTypes).
76+
There are plenty of examples of this in the [Umbraco-CMS codebase](https://github.com/umbraco/Umbraco-CMS/tree/v8/dev/src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/DataTypes).
7777

7878
You will then need to register them in a composer:
7979

@@ -131,7 +131,7 @@ The site in this example is an Umbraco 7.13.1 site, and we will use Nuget to upd
131131

132132
Following the [general upgrade instructions](../) we will now upgrade via Nuget until we get to this point:
133133

134-
![Upgrading to v7.14](<../images/upgrading-7\_14 (1) (1) (1) (1).png>)
134+
![Upgrading to v7.14](<../images/upgrading-7_14 (1) (1) (1) (1).png>)
135135

136136
{% hint style="warning" %}
137137
When upgrading an old website, check if you are using obsolete properties in your Data Types. These should be changed to their updated counterparts. The migration **will fail if you are still using obsolete properties.**
@@ -156,7 +156,7 @@ Once it is upgraded and you have verified everything is working, move on to the
156156

157157
The first thing to do is to spin up a fresh new Umbraco 8.1+ site. Make sure everything works and that no content is there.
158158

159-
![Fresh 8.1 site](<../images/fresh-8\_1-site (1) (1) (1).png>)
159+
![Fresh 8.1 site](<../images/fresh-8_1-site (1) (1) (1).png>)
160160

161161
{% hint style="warning" %}
162162
If you have customized the `UsersMembershipProvider` on your Umbraco 7 site you need to copy that over to the 8.1 `web.config` as well. Additionally you need to update the `type` attribute to be `type="Umbraco.Web.Security.Providers.UsersMembershipProvider, Umbraco.Web"`.
@@ -174,11 +174,11 @@ The version will be set to 8.1.0, and you need to change it to the version you a
174174

175175
When you start the site it will ask you to login and then show you this screen:
176176

177-
![Upgrade database to 8.1](<../../../../../../umbraco-cloud/product-upgrades/images/upgrade-to-8\_1 (1) (1).png>)
177+
![Upgrade database to 8.1](<../images/upgrade-to-8_1 (1) (1) (1).png>)
178178

179179
From here, the automatic migration will take over, and after a little bit you can log in and see your content:
180180

181-
![Content is on 8.1](<../images/content-on-8\_1 (1) (1) (1).png>)
181+
![Content is on 8.1](<../images/content-on-8_1 (1) (1) (1).png>)
182182

183183
{% hint style="info" %}
184184
Please be aware that this is a **content migration**. If you go to the frontend after following these steps, it will throw errors.

10/umbraco-cms/reference/using-ioc.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
---
2-
3-
4-
meta.Title: "Umbraco Dependency Injection"
5-
description: "Inversion of Control/Dependency Injection in Umbraco"
2+
meta.Title: Umbraco Dependency Injection
3+
description: Inversion of Control/Dependency Injection in Umbraco
64
---
75

86
# Inversion of Control / Dependency injection
97

108
Umbraco v9+ supports dependency injection out of the box. Umbraco uses the [ASP.NET Core built-in dependency injection](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0#service-lifetimes). This means that you don't have to install external packages to register and use your dependencies. If you're familiar with ASP.NET Core, the experience will be similar.
119

12-
`IUmbracoBuilder` is a Umbraco-specific abstraction on top of the `IServiceCollection`, its purpose is to aid in adding and replacing Umbraco-specific services, such as notification handlers, filesystems, server role accessor, and so on. You can access the `IServiceCollection` directly to add your custom services through the `Services` property, see below for a concrete example:
10+
`IUmbracoBuilder` is a Umbraco-specific abstraction on top of the `IServiceCollection`, its purpose is to aid in adding and replacing Umbraco-specific services, such as notification handlers, filesystems, server role accessor, and so on. You can access the `IServiceCollection` directly to add your custom services through the `Services` property, see below for a concrete example:
1311

14-
```C#
12+
```c#
1513
IUmbracoBuilder.Services
1614
```
1715

@@ -23,7 +21,7 @@ There are two strategies for registering your own dependencies to the container,
2321

2422
When working with your site, and not a package, the recommended way to register dependencies is with the `ConfigureServices` method of the `Startup` class in `Startup.cs`:
2523

26-
```C#
24+
```c#
2725
public void ConfigureServices(IServiceCollection services)
2826
{
2927
services.AddUmbraco(_env, _config)
@@ -41,7 +39,7 @@ public void ConfigureServices(IServiceCollection services)
4139

4240
### Registering dependencies in packages
4341

44-
When working with packages, you won't have access to the `Startup.cs` file, so instead you must use a [composer](../implementation/composing.md) to register your own dependencies in the container, using the `Services` property, or appropriate extension method, of the `IUmbracoBuilder`:
42+
When working with packages, you won't have access to the `Startup.cs` file, so instead you must use a [composer](../implementation/composing.md) to register your own dependencies in the container, using the `Services` property, or appropriate extension method, of the `IUmbracoBuilder`:
4543

4644
```csharp
4745
using IOCDocs.NotificationHandlers;
@@ -65,14 +63,14 @@ namespace IOCDocs
6563
```
6664

6765
{% hint style="info" %}
68-
Remember to add `Umbraco.Cms.Core.DependencyInjection` and `Microsoft.Extensions.DependencyInjection` as 'using' statements where you register your services, to gain access to the `IUmbracoBuilder`, its extension methods, and the Microsoft `IServiceProvider.
66+
Remember to add `Umbraco.Cms.Core.DependencyInjection` and `Microsoft.Extensions.DependencyInjection` as 'using' statements where you register your services, to gain access to the `IUmbracoBuilder`, its extension methods, and the Microsoft \`IServiceProvider.
6967
{% endhint %}
7068

7169
### Builder extension methods
7270

7371
Depending on your scenario, you may have a lot of dependencies you need to register, in this case, your `Startup.cs` or Composer might become cluttered and hard to manage. A great way to manage multiple services is by creating your own custom extension methods for the `IUmbracoBuilder`, this way you can group similar dependencies in extension methods and register them all in as little as a single call:
7472

75-
```C#
73+
```c#
7674
using IOCDocs.NotificationHandlers;
7775
using IOCDocs.Services;
7876
using Microsoft.Extensions.DependencyInjection;
@@ -109,14 +107,15 @@ namespace IOCDocs
109107

110108
{% hint style="info" %}
111109
It is not required to have an interface for your dependency:
110+
112111
```csharp
113112
services.AddSingleton<Foobar>();
114113
```
115114
{% endhint %}
116115

117116
Now you can call your `AddCustomServices` in either the `Startup.cs` file, or your composer like so:
118117

119-
```C#
118+
```c#
120119
public void ConfigureServices(IServiceCollection services)
121120
{
122121
services.AddUmbraco(_env, _config)
@@ -129,7 +128,7 @@ public void ConfigureServices(IServiceCollection services)
129128
}
130129
```
131130

132-
```C#
131+
```c#
133132
using Umbraco.Cms.Core.Composing;
134133
using Umbraco.Cms.Core.DependencyInjection;
135134

@@ -159,7 +158,7 @@ IServiceCollection.AddSingleton<TService, TImplementing>();
159158
There is three possible lifetimes:
160159

161160
* Transient - always creates a new instance
162-
* A new instance will be created each time it's injected.
161+
* A new instance will be created each time it's injected.
163162
* Scoped - one unique instance per web request (connection)
164163
* Scoped services are disposed at the end of the request
165164
* Be very careful not to resolve a scoped service from a singleton, since it may cause it to have an incorrect state in subsequent requests.
@@ -214,7 +213,7 @@ namespace IOCDocs.Services
214213

215214
### Injecting dependencies into a View or Template
216215

217-
You might need to use services within your templates or views, fortunately, you can inject services directly into your views using the `@inject` keyword. You can for example inject the `Foobar` from above into a view like so:
216+
You might need to use services within your templates or views, fortunately, you can inject services directly into your views using the `@inject` keyword. You can for example inject the `Foobar` from above into a view like so:
218217

219218
```html
220219
@using Umbraco.Cms.Web.Common.PublishedModels;
@@ -243,7 +242,7 @@ Most of (if not all) the Umbraco goodies you work with every day can be injected
243242

244243
### UmbracoHelper
245244

246-
[Read more about the UmbracoHelper](../reference/querying/umbracohelper.md)
245+
[Read more about the UmbracoHelper](querying/umbracohelper.md)
247246

248247
`UmbracoHelper` is a scoped service, therefore you can only use it in services that are also scoped, or transient. To get UmbracoHelper you must inject `IUmbracoHelperAccessor` and use that to resolve it:
249248

@@ -280,13 +279,14 @@ namespace IOCDocs.Services
280279
}
281280
}
282281
```
282+
283283
{% hint style="info" %}
284-
The use of the UmbracoHelper is only possible when there's an instance of the UmbracoContext. [You can read more here](../implementation/services).
284+
The use of the UmbracoHelper is only possible when there's an instance of the UmbracoContext. [You can read more here](../implementation/services/).
285285
{% endhint %}
286286

287287
### ExamineManager
288288

289-
[Read more about examine](../reference/searching/examine).
289+
[Read more about examine](searching/examine/).
290290

291291
```csharp
292292
using System;
@@ -365,4 +365,4 @@ namespace IOCDocs.Services
365365

366366
## Using DI in Services and Helpers
367367

368-
[Services and Helpers](../implementation/services) - For more examples of using DI and gaining access to Services and Helpers, and creating your own custom Services and Helpers to inject.
368+
[Services and Helpers](../implementation/services/) - For more examples of using DI and gaining access to Services and Helpers, and creating your own custom Services and Helpers to inject.

10/umbraco-cms/tutorials/creating-a-basic-website/article-parent-and-article-items.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ To create **Articles Main** Document Type, follow these steps:
1212
2. Select **...** next to the **Document Types** in the **Settings** tree.
1313
3. Click **Document Type with Template**.
1414

15-
![Document Type with template](images/Document\_type\_with\_template.png)
15+
![Document Type with template](images/Document_type_with_template.png)
1616
4. Enter a **Name** for the **Document Type**. Let's call it _Articles Main_.
1717
5. Let's add two fields with the following specifications:
1818

@@ -30,7 +30,7 @@ To create **Articles Item** Document Type, follow these steps:
3030
2. Select **...** next to the **Document Types** in the **Settings** tree.
3131
3. Click **Document Type with Template**.
3232

33-
![Document Type with template](images/Document\_type\_with\_template.png)
33+
![Document Type with template](images/Document_type_with_template.png)
3434
4. Enter a **Name** for the **Document Type**. Let's call it _Articles Item_.
3535
5. Let's add two fields with the following specifications:
3636

@@ -74,7 +74,8 @@ To add a content node:
7474
{% hint style="info" %}
7575
If you do not see the list view, try refreshing the page.
7676
{% endhint %}
77-
5. Click **Create Articles Item** to add two child nodes called **Article 1**, **Article 2**, and click **Save and Publish**.
77+
78+
5\. Click \*\*Create Articles Item\*\* to add two child nodes called \*\*Article 1\*\*, \*\*Article 2\*\*, and click \*\*Save and Publish\*\*.
7879

7980
<figure><img src="images/figure-40-articles-created-v8.png" alt=""><figcaption><p>Content Tree with Articles</p></figcaption></figure>
8081

0 commit comments

Comments
 (0)