.remarkrc.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // Source: https://github.com/codacy/codacy-remark-lint/raw/master/.remarkrc.js
  2. const fs = require("fs");
  3. const path = require("path");
  4. exports.settings = {
  5. gfm: true,
  6. commonmark: true,
  7. looseTable: false,
  8. spacedTable: false,
  9. paddedTable: false,
  10. fences: true,
  11. rule: '-',
  12. ruleRepetition: 3,
  13. emphasis: "*",
  14. strong: "*",
  15. bullet: "-",
  16. listItemIndent: 'tab',
  17. incrementListMarker: true
  18. };
  19. const personalDictionaryPath = path.join(__dirname, ".dictionary");
  20. const personalDictionary = fs.existsSync(personalDictionaryPath)
  21. ? {
  22. personal: fs.readFileSync(personalDictionaryPath, "utf8")
  23. }
  24. : {};
  25. const remarkPresetLintMarkdownStyleGuide = {
  26. plugins: require("remark-preset-lint-markdown-style-guide").plugins.filter(
  27. function(elem) {
  28. return elem != require("remark-lint-no-duplicate-headings");
  29. }
  30. )
  31. };
  32. exports.plugins = [
  33. require("remark-preset-lint-consistent"),
  34. require("remark-preset-lint-recommended"),
  35. remarkPresetLintMarkdownStyleGuide,
  36. [require("remark-lint-no-dead-urls"), { skipOffline: true }],
  37. require("remark-lint-heading-whitespace"),
  38. [require("remark-lint-maximum-line-length"), 120],
  39. [require("remark-lint-maximum-heading-length"), 120],
  40. [require("remark-lint-list-item-indent"), "tab-size"],
  41. [require("remark-lint-list-item-spacing"), false],
  42. [require("remark-lint-strong-marker"), "*"],
  43. [require("remark-lint-emphasis-marker"), "_"],
  44. [require("remark-lint-unordered-list-marker-style"), "-"],
  45. [require("remark-lint-ordered-list-marker-style"), "."],
  46. [require("remark-lint-ordered-list-marker-value"), "ordered"],
  47. /*[
  48. require("remark-lint-write-good"),
  49. [
  50. "warn",
  51. {
  52. passive: false,
  53. illusion: true,
  54. so: true,
  55. thereIs: true,
  56. weasel: true,
  57. adverb: true,
  58. tooWordy: true,
  59. cliches: true,
  60. eprime: false
  61. }
  62. ]
  63. ],*/
  64. require("remark-validate-links"),
  65. require("remark-frontmatter"),
  66. /*[
  67. require("remark-retext"),
  68. require("unified")().use({
  69. plugins: [
  70. require("retext-english"),
  71. require("retext-syntax-urls"),
  72. [
  73. require("retext-spell"),
  74. {
  75. ignoreLiteral: true,
  76. dictionary: require("dictionary-en-us"),
  77. ...personalDictionary
  78. }
  79. ],
  80. [
  81. require("retext-sentence-spacing"),
  82. {
  83. preferred: 1
  84. }
  85. ],
  86. require("retext-repeated-words"),
  87. require("retext-usage"),
  88. require("retext-indefinite-article"),
  89. require("retext-redundant-acronyms"),
  90. [
  91. require("retext-contractions"),
  92. {
  93. straight: true,
  94. allowLiteral: true
  95. }
  96. ],
  97. require("retext-diacritics"),
  98. [
  99. require("retext-quotes"),
  100. {
  101. preferred: "straight"
  102. }
  103. ],
  104. require("retext-equality"),
  105. require("retext-passive"),
  106. require("retext-profanities"),
  107. [
  108. require("retext-readability"),
  109. {
  110. age: 20
  111. }
  112. ]
  113. ]
  114. })
  115. ]*/
  116. ];