Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

Github workflows - Markdown lint tool #537

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/.markdownlint.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
all
#Allow ? in headers - used in FAQ
rule 'MD026', :punctuation => '.,;:!'
#Allow ordered lists by 123
rule 'MD029', :style => 'ordered'
#Allow long lines in tables
rule 'MD013', :tables => false
#Allow inline HTML - using <br> for multiple lines in tables
exclude_rule 'MD033'
exclude_rule 'MD023' #False positives
20 changes: 20 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: lint

on:
push:
branches: master
pull_request:

jobs:
markdown-lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/setup-ruby@v1
with:
ruby-version: '2.6'
- name: Lint documentation markdown files
run: |
gem install mdl
mdl docs/ -s '.github/workflows/.markdownlint.rb'
61 changes: 46 additions & 15 deletions docs/Acknowledgements.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,103 +3,134 @@
## Tools and Services

### Resharper

Kudos to Jetbrains for providing open-source license for [Resharper Ultimate](https://www.jetbrains.com/resharper/).
Resharper makes development much intutive and easier. You should really check it out.
If you become a regular contributor to Captura, you may request for the Resharper license.
Resharper makes development much intutive and easier. You should really check
it out.If you become a regular contributor to Captura, you may request for the
Resharper license.

### Crowdin
Great thanks to [Crowdin](https://crowdin.com/) for providing open-source license.
The translation for Captura is done on Crowdin.
Also, thanks to everyone who contributed the translations.

Great thanks to [Crowdin](https://crowdin.com/) for providing open-source
license. The translation for Captura is done on Crowdin. Also, thanks to
everyone who contributed the translations.

### AppVeyor
We use [AppVeyor](https://www.appveyor.com/) for Continuous Integration. The build and release processes run there.
It's free for open-source projects and especially good for .NET projects.

We use [AppVeyor](https://www.appveyor.com/) for Continuous Integration.
The build and release processes run there. It's free for open-source projects
and especially good for .NET projects.

### GitHub
I can't thank [GitHub](https://github.com/) enough for being an open platform for developers.
The source code and the website are both hosted here.

I can't thank [GitHub](https://github.com/) enough for being an open
platform for developers. The source code and the website are both hosted here.

### Cake Build
[Cake](https://cakebuild.net/) allows us to write our build scripts in C# instead of using other scripting languages.

[Cake](https://cakebuild.net/) allows us to write our build scripts in C#
instead of using other scripting languages.

### Visual Studio Community
[Visual Studio IDE](https://visualstudio.microsoft.com/) for free for open-source and small organisations.

[Visual Studio IDE](https://visualstudio.microsoft.com/) for free for
open-source and small organisations.

### Visual Studio Code
[Visual Studio Code](https://code.visualstudio.com) is an open-source text editor used to build the website and write the documentation.

[Visual Studio Code](https://code.visualstudio.com) is an open-source text
editor used to build the website and write the documentation.

### Inno Setup

Setup files for Captura are built using [Inno Setup](http://www.jrsoftware.org/isinfo.php).

## Libraries

### CommandLineParser

[GitHub](https://github.com/commandlineparser/commandline/) -
[MIT License](https://github.com/commandlineparser/commandline/blob/master/License.md)

```
```nuget
NuGet Install CommandLineParser
```

### CroppingAdorner
[CodeProject Article](https://www.codeproject.com/Articles/23158/A-Photoshop-like-Cropping-Adorner-for-WPF) -

[CodeProject Article](https://www.codeproject.com/Articles/23158/A-Photoshop-like-Cropping-Adorner-for-WPF)
[Code Project Open License (CPOL)](https://www.codeproject.com/info/cpol10.aspx)

### DirectShowLib

[SourceForge](http://directshownet.sourceforge.net/)

### FFmpeg

[Website](https://ffmpeg.org/)

### MouseKeyHook

[GitHub](https://github.com/gmamaladze/globalmousekeyhook) -
[MIT License](https://github.com/gmamaladze/globalmousekeyhook/blob/vNext/LICENSE.txt)

```
```nuget
nuget install MouseKeyHook
```

### MUI.Extended.Toolkit

[GitHub](https://github.com/samoatesgames/mui.extended.toolkit) -
[MIT License](https://github.com/samoatesgames/mui.extended.toolkit/blob/master/LICENSE)

### MUI

[GitHub](https://github.com/firstfloorsoftware/mui) -
[MS-PL](https://github.com/firstfloorsoftware/mui/blob/master/LICENSE.md)

### NAudio

[GitHub](https://github.com/naudio/NAudio) -
[MS-PL](https://github.com/naudio/NAudio/blob/master/license.txt)

### Newtonsoft.Json

[Website](https://www.newtonsoft.com/json) -
[GitHub](https://github.com/JamesNK/Newtonsoft.Json) -
[MIT License](https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md)

### Ooki.Dialogs

[Website](http://www.ookii.org/software/dialogs/)

### ReactiveProperty

[GitHub](https://github.com/runceel/ReactiveProperty)

### ScreenToGif

[Website](https://www.screentogif.com/)

### SharpAvi

[GitHub](https://github.com/baSSiLL/SharpAvi)

### SharpDX

[GitHub](https://github.com/sharpdx/SharpDX)

### WPFNotifyIcon

[Website](http://www.hardcodet.net/wpf-notifyicon)

### WpfToolkit

[GitHub](https://github.com/xceedsoftware/wpftoolkit)

### Media Foundation .NET

[SourceForge](http://mfnet.sourceforge.net/)

### ReactiveX

[GitHub](https://github.com/dotnet/reactive)
26 changes: 18 additions & 8 deletions docs/Build.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,36 @@
## Setting up locally

### Prerequisites

- Visual Studio 2019 or newer with .NET desktop development workload.
- .Net Core 2.1 or greater
- Cake tool
- Cake tool
Install: `dotnet tool install -g Cake.Tool --version 0.32.1`
- Some features have other specific requirements, see [here](https://mathewsachin.github.io/Captura/sys-req).

### Steps
1. Clone

1. Clone
`git clone https://github.com/MathewSachin/Captura.git`
2. Setup Api Keys. These are loaded from environment variables during development and embedded into the app on production builds.


2. Setup Api Keys. These are loaded from environment variables during
development and embedded into the app on production builds.

Environment Variable | Description
---------------------|-------------
imgur_client_id | Imgur Client Id
yt_client_id | YouTube Client Id
yt_client_secret | YouTube Client Secret

Imgur credentials are only required if you want to upload to Imgur. See [here](https://apidocs.imgur.com/) for more info.
Imgur credentials are only required if you want to upload to Imgur.
See [here](https://apidocs.imgur.com/) for more info.

YouTube credentials are only required if you want to upload to YouTube.
See [here](https://developers.google.com/youtube/registering_an_application)
for more info.

YouTube credentials are only required if you want to upload to YouTube. See [here](https://developers.google.com/youtube/registering_an_application) for more info.
3. Download FFmpeg from within the app or from
<https://ffmpeg.zeranoe.com/builds/> or use a custom build.

3. Download FFmpeg from within the app or from https://ffmpeg.zeranoe.com/builds/ or use a custom build.
4. Now, you're good to go. You can build using Visual Studio or the [cake script](Cake.md).
4. Now, you're good to go. You can build using Visual Studio or the
[cake script](Cake.md).
10 changes: 6 additions & 4 deletions docs/CI.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# Continuous Integration

We use [Appveyor](https://www.appveyor.com/) for CI.
When a commit is pushed to the GitHub repository, AppVeyor clones the repo and builds and tests it using the Cake build script.
If it is a tag build, the release is deployed to GitHub Releases as a draft and to Chocolatey.
When a commit is pushed to the GitHub repository, AppVeyor clones the repo
and builds and tests it using the Cake build script.If it is a tag build,
the release is deployed to GitHub Releases as a draft and to Chocolatey.

### Getting dev builds
## Getting dev builds

> Dev builds can be unstable and should be used for testing purposes only.

1. Go to [AppVeyor project](https://ci.appveyor.com/project/MathewSachin/Captura/branch/master) page.
1. Go to [AppVeyor project](https://ci.appveyor.com/project/MathewSachin/Captura/branch/master)
page.

2. Select Build Configuration: **Debug** or **Release**.

Expand Down
16 changes: 9 additions & 7 deletions docs/Cake.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
# Cake build script

### Installing Cake
## Installing Cake

.NET Core 2.1 is required.

```
```dotnet
dotnet tool install -g Cake.Tool --version 0.32.1
```

### Running the build script
```
## Running the build script

```dotnet
dotnet-cake
```

### Arguments
## Arguments

Option | Description
---------------|--------------
-build_version | Build version. Should be like v9.0.0 for stable and CI builds and like v9.0.0-beta3 for prerelease builds. AssemblyInfo.cs files are updated based on this value during build.
-build_version | Build version. Should be like v9.0.0 for stable and CI builds <br> and like v9.0.0-beta3 for prerelease builds. AssemblyInfo.csfiles <br> are updated based on this value during build.
-configuration | Configuration: Release or Debug
-target | The Task to run in the build script. See build.cake

```
```dotnet
dotnet-cake --target=CI --configuration=Release
```
Loading