Crates.io | mdbook-transcheck |
lib.rs | mdbook-transcheck |
version | 0.2.8 |
source | src |
created_at | 2020-03-18 10:52:31.427304 |
updated_at | 2021-11-04 11:44:07.20576 |
description | Checker for translated mdbook |
homepage | |
repository | https://github.com/dalance/mdbook-transcheck |
max_upload_size | |
id | 220114 |
size | 74,460 |
Checker for translated mdbook
$ cargo install mdbook-transcheck
The following command checks whether src
and tgt
are synchronized.
$ mdbook-transcheck src tgt
src
is the source directory of original mdbook.
tgt
is the source directory of translated mdbook.
The following command applies the differences between src
and tgt
to tgt
.
$ mdbook-transcheck --fix src tgt
The following command checks whether translated texts satisfy lint rules.
$ mdbook-transcheck --lint src tgt
The configuration file is transcheck.toml
, which is put at the repository root.
excludes = ["img/"]
[matcher]
enable_code_comment_tweak = true
code_comment_header = "# "
[linter]
enable_emphasis_check = true
enable_half_paren_check = true
enable_full_paren_check = true
Key | Value | Default | Description |
---|---|---|---|
excludes | String Array | [] | Exclude paths which are relative path from source directory |
[matcher]
sectionKey | Value | Default | Description |
---|---|---|---|
enable_code_comment_tweak | true, false | false | Match code comment without code_comment_header |
code_comment_header | String | "# " |
|
keep_markdown_comment | true, false | false | Keep Markdown comment in original |
markdown_comment_begin | String | ((( |
|
markdown_comment_end | String | ))) |
|
similar_threshold | Float | 0.5 | If the ratio which the original and translated lines are matched exceeds similar_threshold , the line is judged as modified. |
[linter]
sectionKey | Value | Default | Description |
---|---|---|---|
enable_emphasis_check | true, false | false | Check wether emphasis (*..* /**..** ) has spaces before and after it. |
enable_half_paren_check | true, false | false | Check wether half-width paren (() ) has ascii charactors only. |
enable_full_paren_check | true, false | false | Check wether full-width paren (() ) has non-ascii charactors. |
$ mdbook-transcheck ./testcase/original ./testcase/translated
Error: target path is not found
source path: ./testcase/original/missing_file.md
target path: ./testcase/translated/missing_file.md
Error: source line has been modified
source --> ./testcase/original/mismatch_lines.md:5
|
5 | This is an orange.
| ^^ ^^
|
target --> ./testcase/translated/mismatch_lines.md:11
|
11 | This is an apple.
| ^^^
|
Error: lines has been inserted to the source file
source --> ./testcase/original/mismatch_lines.md:2
|
2 | Orange
|
= hint: The lines should be inserted at ./testcase/translated/mismatch_lines.md:2
Error: lines has been removed from the source file
target --> ./testcase/translated/mismatch_lines.md:4
|
4 | Lemon
|
The translated markdown should follow some rules.
<!--
and -->
Apple
Orange
Peach
<!--
Apple
Orange
Peach
-->
りんご
オレンジ
桃
The following is NG because <!-- Apple
and Peach -->
are not matched with original lines.
<!-- Apple
Orange
Peach -->
りんご
オレンジ
桃
If the original text has markdown commets, the commets should be removed in the translated text because nested comment is not supported. The differences by removing the comments are ignored by default.
Apple <!-- ignore -->
Or<!-- ignore -->ange
<!-- ignore -->Peach
<!--
Apple
Orange
Peach
-->
りんご
オレンジ
桃
If you want to keep the comments, keep_markdown_comment
, markdown_comment_begin
and markdown_comment_end
can be used like below:
keep_markdown_comment = true
markdown_comment_begin = "((("
markdown_comment_end = ")))"
Apple <!-- ignore -->
Or<!-- ignore -->ange
<!-- ignore -->Peach
<!--
Apple ((( ignore )))
Or((( ignore )))ange
((( ignore )))Peach
-->
りんご
オレンジ
桃
```rust
// comment
let a = b; // comment
```
```rust
// comment
// コメント
let a = b; // comment
// コメント
```
You can use #
to hide the original comment.
enable_code_comment_tweak
should be true
, and code_comment_header
should be #
.
```rust
# // comment
// コメント
let a = b; // comment
// コメント
```
You can use # //
to hide the original code and comment.
enable_code_comment_tweak
should be true
, and code_comment_header
should be # //
.
```rust
# // // comment
// コメント
# // let a = b; // comment
let a = b; // コメント
```