Skip to content

Commit 69a8d5b

Browse files
committed
doc: Update README
1 parent 6878ad9 commit 69a8d5b

File tree

1 file changed

+47
-103
lines changed

1 file changed

+47
-103
lines changed

.github/README.md

Lines changed: 47 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,67 @@
11
# jcdcdev.Umbraco.ReadingTime
22

3-
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/jcdcdev.umbraco.readingtime)
4-
[![GitHub License](https://img.shields.io/github/license/jcdcdev/jcdcdev.Umbraco.ReadingTime?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime/blob/main/LICENSE)
5-
[![NuGet Downloads](https://img.shields.io/nuget/dt/jcdcdev.Umbraco.ReadingTime?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime/)
6-
7-
Custom Data Type for calculating reading time. With full variant support!
8-
9-
The following editors are currently supported:
10-
11-
- Rich Text
12-
- Markdown
13-
- Block Grid
14-
- Block List
15-
- Nested Content
16-
- Textstring
3+
[![Umbraco Marketplace](https://img.shields.io/badge/Umbraco-Marketplace-%233544B1?style=flat&logo=umbraco)](https://marketplace.umbraco.com/package/jcdcdev.Umbraco.ReadingTime)
4+
[![License](https://img.shields.io/github/license/jcdcdev/jcdcdev.Umbraco.ReadingTime?color=8AB803&label=License&logo=github)](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime?tab=MIT-1-ov-file)
5+
[![NuGet Downloads](https://img.shields.io/nuget/dt/jcdcdev.Umbraco.ReadingTime?color=cc9900&label=Downloads&logo=nuget)](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime)
6+
[![Project Website](https://img.shields.io/badge/Project%20Website-jcdc.dev-jcdcdev?style=flat&color=3c4834&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiIGNsYXNzPSJiaSBiaS1wYy1kaXNwbGF5IiB2aWV3Qm94PSIwIDAgMTYgMTYiPgogIDxwYXRoIGQ9Ik04IDFhMSAxIDAgMCAxIDEtMWg2YTEgMSAwIDAgMSAxIDF2MTRhMSAxIDAgMCAxLTEgMUg5YTEgMSAwIDAgMS0xLTF6bTEgMTMuNWEuNS41IDAgMSAwIDEgMCAuNS41IDAgMCAwLTEgMG0yIDBhLjUuNSAwIDEgMCAxIDAgLjUuNSAwIDAgMC0xIDBNOS41IDFhLjUuNSAwIDAgMCAwIDFoNWEuNS41IDAgMCAwIDAtMXpNOSAzLjVhLjUuNSAwIDAgMCAuNS41aDVhLjUuNSAwIDAgMCAwLTFoLTVhLjUuNSAwIDAgMC0uNS41TTEuNSAyQTEuNSAxLjUgMCAwIDAgMCAzLjV2N0ExLjUgMS41IDAgMCAwIDEuNSAxMkg2djJoLS41YS41LjUgMCAwIDAgMCAxSDd2LTRIMS41YS41LjUgMCAwIDEtLjUtLjV2LTdhLjUuNSAwIDAgMSAuNS0uNUg3VjJ6Ii8+Cjwvc3ZnPg==)](https://jcdc.dev/umbraco-packages/reading-time)
7+
8+
9+
Custom Data Type for calculating reading time. With full variant support!
10+
11+
The following editors are currently supported:
12+
13+
- Rich Text
14+
- Markdown
15+
- Block Grid
16+
- Block List
17+
- Nested Content
18+
- Textstring
1719
- Textarea
1820

1921
## Quick Start
2022

21-
1. Install the [NuGet package](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime) in your Umbraco CMS website project.
22-
```
23-
dotnet add package jcdcdev.Umbraco.ReadingTime
24-
```
25-
2. Add the Reading Time data type to a document type. You can configure:
26-
- `Words per minute` (default is 200)
27-
- `Min Unit` (default is Minute)
28-
- `Max Unit` (default is Minute)
29-
![A screenshot of the BackOffice showing Reading Time data type](https://raw.githubusercontent.com/jcdcdev/jcdcdev.Umbraco.ReadingTime/main/docs/screenshots/datatype.png)
30-
3. Save and publish content.
31-
4. Reading Time will display in the backoffice
32-
33-
![A screenshot of the BackOffice showing Reading Time](https://raw.githubusercontent.com/jcdcdev/jcdcdev.Umbraco.ReadingTime/main/docs/screenshots/backoffice.png)
34-
35-
## Using the value in your templates
36-
37-
In your template, you can accessing the Reading Time property value like any other property:
38-
39-
```html
40-
@Model.ReadingTime.DisplayTime()
23+
1. Install the [NuGet package](https://www.nuget.org/packages/jcdcdev.Umbraco.ReadingTime) in your Umbraco CMS website project.
24+
```
25+
dotnet add package jcdcdev.Umbraco.ReadingTime
26+
```
27+
2. Add the Reading Time data type to a document type. You can configure:
28+
- `Words per minute` (default is 200)
29+
- `Min Unit` (default is Minute)
30+
- `Max Unit` (default is Minute)
31+
3. Save and publish content.
32+
4. Reading Time will display in the backoffice
33+
34+
### Using the value in your templates
35+
36+
In your template, you can accessing the Reading Time property value like any other property:
37+
38+
```html
39+
@Model.ReadingTime.DisplayTime()
4140
```
4241

43-
![A screenshot of page showing Reading Time](https://raw.githubusercontent.com/jcdcdev/jcdcdev.Umbraco.ReadingTime/main/docs/screenshots/displaytime.png)
44-
45-
### Overriding the default display
46-
The `DisplayTime` method will format the reading time as a string using [Humanizer](https://github.com/Humanizr/Humanizer). This supports variants, meaning the reading time will be displayed based on the pluralisation rules of the current culture (e.g. "1 minute", "2 minutes", "0 minuter").
47-
48-
Min and max `TimeUnit` values are derived from the Data Type settings. The below example shows how you can ensure only seconds are displayed.
49-
50-
```csharp
51-
Model.ReadingTime.DisplayTime(minUnit: TimeUnit.Second, maxUnit: TimeUnit.Second)
52-
```
53-
54-
55-
5642
## Configuration
5743

58-
You can change the average words per minute in the data type settings.
59-
60-
When creating a new data type, the default will be 200 words per minute. To change this default, adjust your `appsettings.json` file:
61-
62-
```json
63-
{
64-
"ReadingTime": {
65-
"WordsPerMinute": 200
66-
}
67-
}
68-
```
69-
70-
## Limitations
71-
72-
**Values are derived from published content only.**
73-
74-
Draft content is _not_ included in the calculation.
75-
76-
**Words per minute applies to all variants.**
77-
78-
It is not currently possible to configure words per minute per culture.
44+
You can change the average words per minute in the data type settings.
45+
46+
When creating a new data type, the default will be 200 words per minute.
7947

8048
## Extending
8149

82-
You can extend the data type to support additional editors by implementing the `IReadingTimeValueProvider` interface.
83-
84-
```csharp
85-
public class MyCustomReadingTimeValueProvider : IReadingTimeValueProvider
86-
{
87-
public bool CanConvert(IPropertyType type)
88-
{
89-
return type.EditorAlias == "MyCustomEditorAlias";
90-
}
91-
92-
public TimeSpan? GetReadingTime(IProperty property, string? culture, string? segment, IEnumerable<string> availableCultures, ReadingTimeConfiguration config)
93-
{
94-
var value = property.GetValue(culture, segment, true);
95-
if (value is string text)
96-
{
97-
return text.GetReadingTime(config.WordsPerMinute);
98-
}
99-
100-
return null;
101-
}
102-
}
50+
The `DisplayTime` method will format the reading time as a string using [Humanizer](https://github.com/Humanizr/Humanizer). This supports variants, meaning the reading time will be displayed based on the pluralisation rules of the current culture (e.g. "1 minute", "2 minutes", "0 minuter").
51+
52+
Min and max `TimeUnit` values are derived from the Data Type settings. The below example shows how you can ensure only seconds are displayed.
53+
54+
```csharp
55+
Model.ReadingTime.DisplayTime(minUnit: TimeUnit.Second, maxUnit: TimeUnit.Second)
10356
```
10457

105-
Don't forget to register your custom value provider:
58+
## Contributing
59+
60+
Contributions to this package are most welcome! Please visit the [Contributing](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime/contribute) page.
10661

107-
```csharp
108-
public class Composer : IComposer
109-
{
110-
public void Compose(IUmbracoBuilder builder)
111-
{
112-
builder.ReadingTimeValueProviders().Append<MyCustomReadingTimeValueProvider>();
113-
}
114-
}
115-
```
62+
## Acknowledgements (Thanks)
11663

117-
## Contributing
64+
- LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter)
11865

119-
Contributions to this package are most welcome! Please read the [Contributing Guidelines](https://github.com/jcdcdev/jcdcdev.Umbraco.ReadingTime/blob/main/.github/CONTRIBUTING.md).
12066

121-
## Acknowledgments (thanks!)
12267

123-
- LottePitcher - [opinionated-package-starter](https://github.com/LottePitcher/opinionated-package-starter)

0 commit comments

Comments
 (0)