@cornhsu/polymigrate-darwin-arm64 3.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/NOTICE.txt +59 -27
  2. package/THIRD-PARTY-NOTICES.md +2 -2
  3. package/bin/AngleSharp.dll +0 -0
  4. package/bin/Magick.NET-Q8-AnyCPU.dll +0 -0
  5. package/bin/Magick.NET.Core.dll +0 -0
  6. package/bin/Magick.Native-Q8-arm64.dll.dylib +0 -0
  7. package/bin/Microsoft.CSharp.dll +0 -0
  8. package/bin/Microsoft.VisualBasic.Core.dll +0 -0
  9. package/bin/Microsoft.VisualBasic.dll +0 -0
  10. package/bin/Microsoft.Win32.Primitives.dll +0 -0
  11. package/bin/Microsoft.Win32.Registry.dll +0 -0
  12. package/bin/PolyMigrate.Core.dll +0 -0
  13. package/bin/PolyMigrate.Core.pdb +0 -0
  14. package/bin/PolyMigrate.Core.xml +491 -29
  15. package/bin/ReverseMarkdown.dll +0 -0
  16. package/bin/System.AppContext.dll +0 -0
  17. package/bin/System.Buffers.dll +0 -0
  18. package/bin/System.Collections.Concurrent.dll +0 -0
  19. package/bin/System.Collections.Immutable.dll +0 -0
  20. package/bin/System.Collections.NonGeneric.dll +0 -0
  21. package/bin/System.Collections.Specialized.dll +0 -0
  22. package/bin/System.Collections.dll +0 -0
  23. package/bin/System.ComponentModel.Annotations.dll +0 -0
  24. package/bin/System.ComponentModel.DataAnnotations.dll +0 -0
  25. package/bin/System.ComponentModel.EventBasedAsync.dll +0 -0
  26. package/bin/System.ComponentModel.Primitives.dll +0 -0
  27. package/bin/System.ComponentModel.TypeConverter.dll +0 -0
  28. package/bin/System.ComponentModel.dll +0 -0
  29. package/bin/System.Configuration.dll +0 -0
  30. package/bin/System.Console.dll +0 -0
  31. package/bin/System.Core.dll +0 -0
  32. package/bin/System.Data.Common.dll +0 -0
  33. package/bin/System.Data.DataSetExtensions.dll +0 -0
  34. package/bin/System.Data.dll +0 -0
  35. package/bin/System.Diagnostics.Contracts.dll +0 -0
  36. package/bin/System.Diagnostics.Debug.dll +0 -0
  37. package/bin/System.Diagnostics.DiagnosticSource.dll +0 -0
  38. package/bin/System.Diagnostics.FileVersionInfo.dll +0 -0
  39. package/bin/System.Diagnostics.Process.dll +0 -0
  40. package/bin/System.Diagnostics.StackTrace.dll +0 -0
  41. package/bin/System.Diagnostics.TextWriterTraceListener.dll +0 -0
  42. package/bin/System.Diagnostics.Tools.dll +0 -0
  43. package/bin/System.Diagnostics.TraceSource.dll +0 -0
  44. package/bin/System.Diagnostics.Tracing.dll +0 -0
  45. package/bin/System.Drawing.Primitives.dll +0 -0
  46. package/bin/System.Drawing.dll +0 -0
  47. package/bin/System.Dynamic.Runtime.dll +0 -0
  48. package/bin/System.Formats.Asn1.dll +0 -0
  49. package/bin/System.Formats.Tar.dll +0 -0
  50. package/bin/System.Globalization.Calendars.dll +0 -0
  51. package/bin/System.Globalization.Extensions.dll +0 -0
  52. package/bin/System.Globalization.dll +0 -0
  53. package/bin/System.IO.Compression.Brotli.dll +0 -0
  54. package/bin/System.IO.Compression.FileSystem.dll +0 -0
  55. package/bin/System.IO.Compression.ZipFile.dll +0 -0
  56. package/bin/System.IO.Compression.dll +0 -0
  57. package/bin/System.IO.FileSystem.AccessControl.dll +0 -0
  58. package/bin/System.IO.FileSystem.DriveInfo.dll +0 -0
  59. package/bin/System.IO.FileSystem.Primitives.dll +0 -0
  60. package/bin/System.IO.FileSystem.Watcher.dll +0 -0
  61. package/bin/System.IO.FileSystem.dll +0 -0
  62. package/bin/System.IO.IsolatedStorage.dll +0 -0
  63. package/bin/System.IO.MemoryMappedFiles.dll +0 -0
  64. package/bin/System.IO.Pipelines.dll +0 -0
  65. package/bin/System.IO.Pipes.AccessControl.dll +0 -0
  66. package/bin/System.IO.Pipes.dll +0 -0
  67. package/bin/System.IO.UnmanagedMemoryStream.dll +0 -0
  68. package/bin/System.IO.dll +0 -0
  69. package/bin/System.Linq.AsyncEnumerable.dll +0 -0
  70. package/bin/System.Linq.Expressions.dll +0 -0
  71. package/bin/System.Linq.Parallel.dll +0 -0
  72. package/bin/System.Linq.Queryable.dll +0 -0
  73. package/bin/System.Linq.dll +0 -0
  74. package/bin/System.Memory.dll +0 -0
  75. package/bin/System.Net.Http.Json.dll +0 -0
  76. package/bin/System.Net.Http.dll +0 -0
  77. package/bin/System.Net.HttpListener.dll +0 -0
  78. package/bin/System.Net.Mail.dll +0 -0
  79. package/bin/System.Net.NameResolution.dll +0 -0
  80. package/bin/System.Net.NetworkInformation.dll +0 -0
  81. package/bin/System.Net.Ping.dll +0 -0
  82. package/bin/System.Net.Primitives.dll +0 -0
  83. package/bin/System.Net.Quic.dll +0 -0
  84. package/bin/System.Net.Requests.dll +0 -0
  85. package/bin/System.Net.Security.dll +0 -0
  86. package/bin/System.Net.ServerSentEvents.dll +0 -0
  87. package/bin/System.Net.ServicePoint.dll +0 -0
  88. package/bin/System.Net.Sockets.dll +0 -0
  89. package/bin/System.Net.WebClient.dll +0 -0
  90. package/bin/System.Net.WebHeaderCollection.dll +0 -0
  91. package/bin/System.Net.WebProxy.dll +0 -0
  92. package/bin/System.Net.WebSockets.Client.dll +0 -0
  93. package/bin/System.Net.WebSockets.dll +0 -0
  94. package/bin/System.Net.dll +0 -0
  95. package/bin/System.Numerics.Vectors.dll +0 -0
  96. package/bin/System.Numerics.dll +0 -0
  97. package/bin/System.ObjectModel.dll +0 -0
  98. package/bin/System.Private.CoreLib.dll +0 -0
  99. package/bin/System.Private.DataContractSerialization.dll +0 -0
  100. package/bin/System.Private.Uri.dll +0 -0
  101. package/bin/System.Private.Xml.Linq.dll +0 -0
  102. package/bin/System.Private.Xml.dll +0 -0
  103. package/bin/System.Reflection.DispatchProxy.dll +0 -0
  104. package/bin/System.Reflection.Emit.ILGeneration.dll +0 -0
  105. package/bin/System.Reflection.Emit.Lightweight.dll +0 -0
  106. package/bin/System.Reflection.Emit.dll +0 -0
  107. package/bin/System.Reflection.Extensions.dll +0 -0
  108. package/bin/System.Reflection.Metadata.dll +0 -0
  109. package/bin/System.Reflection.Primitives.dll +0 -0
  110. package/bin/System.Reflection.TypeExtensions.dll +0 -0
  111. package/bin/System.Reflection.dll +0 -0
  112. package/bin/System.Resources.Reader.dll +0 -0
  113. package/bin/System.Resources.ResourceManager.dll +0 -0
  114. package/bin/System.Resources.Writer.dll +0 -0
  115. package/bin/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  116. package/bin/System.Runtime.CompilerServices.VisualC.dll +0 -0
  117. package/bin/System.Runtime.Extensions.dll +0 -0
  118. package/bin/System.Runtime.Handles.dll +0 -0
  119. package/bin/System.Runtime.InteropServices.JavaScript.dll +0 -0
  120. package/bin/System.Runtime.InteropServices.RuntimeInformation.dll +0 -0
  121. package/bin/System.Runtime.InteropServices.dll +0 -0
  122. package/bin/System.Runtime.Intrinsics.dll +0 -0
  123. package/bin/System.Runtime.Loader.dll +0 -0
  124. package/bin/System.Runtime.Numerics.dll +0 -0
  125. package/bin/System.Runtime.Serialization.Formatters.dll +0 -0
  126. package/bin/System.Runtime.Serialization.Json.dll +0 -0
  127. package/bin/System.Runtime.Serialization.Primitives.dll +0 -0
  128. package/bin/System.Runtime.Serialization.Xml.dll +0 -0
  129. package/bin/System.Runtime.Serialization.dll +0 -0
  130. package/bin/System.Runtime.dll +0 -0
  131. package/bin/System.Security.AccessControl.dll +0 -0
  132. package/bin/System.Security.Claims.dll +0 -0
  133. package/bin/System.Security.Cryptography.Algorithms.dll +0 -0
  134. package/bin/System.Security.Cryptography.Cng.dll +0 -0
  135. package/bin/System.Security.Cryptography.Csp.dll +0 -0
  136. package/bin/System.Security.Cryptography.Encoding.dll +0 -0
  137. package/bin/System.Security.Cryptography.OpenSsl.dll +0 -0
  138. package/bin/System.Security.Cryptography.Primitives.dll +0 -0
  139. package/bin/System.Security.Cryptography.X509Certificates.dll +0 -0
  140. package/bin/System.Security.Cryptography.dll +0 -0
  141. package/bin/System.Security.Principal.Windows.dll +0 -0
  142. package/bin/System.Security.Principal.dll +0 -0
  143. package/bin/System.Security.SecureString.dll +0 -0
  144. package/bin/System.Security.dll +0 -0
  145. package/bin/System.ServiceModel.Web.dll +0 -0
  146. package/bin/System.ServiceProcess.dll +0 -0
  147. package/bin/System.Text.Encoding.CodePages.dll +0 -0
  148. package/bin/System.Text.Encoding.Extensions.dll +0 -0
  149. package/bin/System.Text.Encoding.dll +0 -0
  150. package/bin/System.Text.Encodings.Web.dll +0 -0
  151. package/bin/System.Text.Json.dll +0 -0
  152. package/bin/System.Text.RegularExpressions.dll +0 -0
  153. package/bin/System.Threading.AccessControl.dll +0 -0
  154. package/bin/System.Threading.Channels.dll +0 -0
  155. package/bin/System.Threading.Overlapped.dll +0 -0
  156. package/bin/System.Threading.Tasks.Dataflow.dll +0 -0
  157. package/bin/System.Threading.Tasks.Extensions.dll +0 -0
  158. package/bin/System.Threading.Tasks.Parallel.dll +0 -0
  159. package/bin/System.Threading.Tasks.dll +0 -0
  160. package/bin/System.Threading.Thread.dll +0 -0
  161. package/bin/System.Threading.ThreadPool.dll +0 -0
  162. package/bin/System.Threading.Timer.dll +0 -0
  163. package/bin/System.Threading.dll +0 -0
  164. package/bin/System.Transactions.Local.dll +0 -0
  165. package/bin/System.Transactions.dll +0 -0
  166. package/bin/System.ValueTuple.dll +0 -0
  167. package/bin/System.Web.HttpUtility.dll +0 -0
  168. package/bin/System.Web.dll +0 -0
  169. package/bin/System.Windows.dll +0 -0
  170. package/bin/System.Xml.Linq.dll +0 -0
  171. package/bin/System.Xml.ReaderWriter.dll +0 -0
  172. package/bin/System.Xml.Serialization.dll +0 -0
  173. package/bin/System.Xml.XDocument.dll +0 -0
  174. package/bin/System.Xml.XPath.XDocument.dll +0 -0
  175. package/bin/System.Xml.XPath.dll +0 -0
  176. package/bin/System.Xml.XmlDocument.dll +0 -0
  177. package/bin/System.Xml.XmlSerializer.dll +0 -0
  178. package/bin/System.Xml.dll +0 -0
  179. package/bin/System.dll +0 -0
  180. package/bin/WindowsBase.dll +0 -0
  181. package/bin/createdump +0 -0
  182. package/bin/libSystem.Globalization.Native.dylib +0 -0
  183. package/bin/libSystem.IO.Compression.Native.dylib +0 -0
  184. package/bin/libSystem.Native.dylib +0 -0
  185. package/bin/libSystem.Net.Security.Native.dylib +0 -0
  186. package/bin/libSystem.Security.Cryptography.Native.Apple.dylib +0 -0
  187. package/bin/libclrgc.dylib +0 -0
  188. package/bin/libclrgcexp.dylib +0 -0
  189. package/bin/libclrjit.dylib +0 -0
  190. package/bin/libcoreclr.dylib +0 -0
  191. package/bin/libhostfxr.dylib +0 -0
  192. package/bin/libhostpolicy.dylib +0 -0
  193. package/bin/libmscordaccore.dylib +0 -0
  194. package/bin/libmscordbi.dylib +0 -0
  195. package/bin/mscorlib.dll +0 -0
  196. package/bin/netstandard.dll +0 -0
  197. package/bin/polymigrate +0 -0
  198. package/bin/polymigrate.deps.json +222 -222
  199. package/bin/polymigrate.dll +0 -0
  200. package/bin/polymigrate.pdb +0 -0
  201. package/bin/polymigrate.runtimeconfig.json +1 -1
  202. package/package.json +1 -1
@@ -94,6 +94,14 @@
94
94
  合法值見 <see cref="F:PolyMigrate.Core.Pairing.PairingSuggester.KnownHeuristics"/>;空 = 只做對稱路徑、不給建議。
95
95
  </summary>
96
96
  </member>
97
+ <member name="P:PolyMigrate.Core.Configuration.PairingSection.Decisions">
98
+ <summary>
99
+ 人工配對決定檔(CSV,欄位 <c>translation_key,decision,other_key,note</c>;格式見 docs/contracts.md)。
100
+ <c>extract</c> 每次都讀、從不寫:確認的配對、否決的建議、確認沒有對應語言的頁,重跑都保留。
101
+ 相對路徑:<see cref="M:PolyMigrate.Core.Configuration.SiteConfigLoader.LoadFile(System.String)"/> 以 config 檔所在目錄為準,
102
+ <see cref="M:PolyMigrate.Core.Configuration.SiteConfigLoader.Load(System.String,System.String)"/> 與程式內組 config 時以目前工作目錄為準。null = 不用。
103
+ </summary>
104
+ </member>
97
105
  <member name="P:PolyMigrate.Core.Configuration.MediaSection.WebPrefix">
98
106
  <summary>媒體改寫後的根絕對網路路徑前綴。</summary>
99
107
  </member>
@@ -325,6 +333,22 @@
325
333
  的 <c>extract</c> 從 exit 0 變 1。exit code 是對外契約,不在 patch 版動它。</para>
326
334
  </summary>
327
335
  </member>
336
+ <member name="P:PolyMigrate.Core.Extraction.ExtractionReport.ConfirmedPairs">
337
+ <summary>人工決定檔(<c>pairing.decisions</c>)確認的配對組數;沒設決定檔是 0。</summary>
338
+ </member>
339
+ <member name="P:PolyMigrate.Core.Extraction.ExtractionReport.ConfirmedSingle">
340
+ <summary>人工確認沒有其他語言版本的 translation_key 數。</summary>
341
+ </member>
342
+ <member name="P:PolyMigrate.Core.Extraction.ExtractionReport.RejectedPairs">
343
+ <summary>人工否決、這次因此沒再建議的配對數。</summary>
344
+ </member>
345
+ <member name="P:PolyMigrate.Core.Extraction.ExtractionReport.UnappliedDecisions">
346
+ <summary>
347
+ 決定檔裡這次沒套上的列(<c>line N: 原因</c>):key 不在這次的 inventory、已經靠路徑配上了、兩邊同語言…
348
+ 計入 <see cref="P:PolyMigrate.Core.Extraction.ExtractionReport.HasWarnings"/>:人做過的決定沒生效,不能安靜地略過。只有設了決定檔的人會遇到,
349
+ 既有使用者的 exit code 不變。
350
+ </summary>
351
+ </member>
328
352
  <member name="T:PolyMigrate.Core.Extraction.ExtractionPipeline">
329
353
  <summary>
330
354
  Phase 2 管線(規格 main):巡鏡像檔 → 逐頁抽取寫 Markdown → 聚合寫四份清單與待補媒體清單。
@@ -362,8 +386,24 @@
362
386
  純比對,不動磁碟。
363
387
  </summary>
364
388
  </member>
365
- <member name="M:PolyMigrate.Core.Extraction.ExtractionPipeline.SuggestPairs(System.Collections.Generic.SortedDictionary{System.String,PolyMigrate.Core.Inventory.InventoryRecord},System.Collections.Generic.List{System.String},PolyMigrate.Core.Pairing.HreflangIndex)">
366
- <summary>對「只有單語」的 key 產生啟發式配對建議(§1.4);回傳 key → 建議,兩端各一筆。</summary>
389
+ <member name="M:PolyMigrate.Core.Extraction.ExtractionPipeline.SuggestPairs(System.Collections.Generic.SortedDictionary{System.String,PolyMigrate.Core.Inventory.InventoryRecord},System.Collections.Generic.List{System.String},PolyMigrate.Core.Pairing.HreflangIndex,PolyMigrate.Core.Pairing.DecisionOutcome,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{PolyMigrate.Core.Pairing.PairingSuggester.Candidate}}@)">
390
+ <summary>
391
+ 對「只有單語」的 key 產生啟發式配對建議(§1.4);回傳 key → 建議,兩端各一筆。
392
+ 人工已有結論的 key(確認的配對、確定沒有對應)不進候選池;否決過的配對不再建議。
393
+ </summary>
394
+ </member>
395
+ <member name="F:PolyMigrate.Core.Extraction.ExtractionPipeline.CandidatesPerKey">
396
+ <summary><c>pair_candidates.csv</c> 每個 key 列幾名(建議中的那一個若不在前幾名,另外補上)。</summary>
397
+ </member>
398
+ <member name="M:PolyMigrate.Core.Extraction.ExtractionPipeline.WritePairCandidates(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{PolyMigrate.Core.Pairing.PairingSuggester.Candidate}},System.Collections.Generic.Dictionary{System.String,PolyMigrate.Core.Pairing.PairSuggestion})">
399
+ <summary>
400
+ <c>pair_candidates.csv</c>(4.1 起):還要人工覆核的每個 key,前幾名候選與信心分級。
401
+ content_inventory 的 suggested_pair 是貪婪配對的結果、只有一筆;被別人先配走的更好對象、
402
+ 第二名差多少,原本都看不到。不動 content_inventory 的欄位(欄序是契約),另開一份。
403
+ </summary>
404
+ </member>
405
+ <member name="M:PolyMigrate.Core.Extraction.ExtractionPipeline.PairColumns(System.String,System.Collections.Generic.Dictionary{System.String,PolyMigrate.Core.Pairing.PairSuggestion},PolyMigrate.Core.Pairing.DecisionOutcome)">
406
+ <summary>suggested_pair 與 pair_evidence:人工結論優先,其次啟發式建議。</summary>
367
407
  </member>
368
408
  <member name="T:PolyMigrate.Core.Extraction.ExtractionPipeline.MediaManifest">
369
409
  <summary>算好的 media_manifest.csv 列與更新過的雜湊快取(寫檔留給呼叫端,見 Run)。</summary>
@@ -1210,6 +1250,58 @@
1210
1250
  <member name="M:PolyMigrate.Core.Pairing.HreflangIndex.RejectReason(PolyMigrate.Core.Inventory.HreflangLink,System.String)">
1211
1251
  <summary>逐則就能判斷的門檻;null = 這一則自己沒問題(還要再過 ambiguous_target)。</summary>
1212
1252
  </member>
1253
+ <member name="F:PolyMigrate.Core.Pairing.DecisionKind.Pair">
1254
+ <summary>這兩個 key 是同一篇的不同語言版(確認建議,或人工找到的對應)。</summary>
1255
+ </member>
1256
+ <member name="F:PolyMigrate.Core.Pairing.DecisionKind.NotPair">
1257
+ <summary>這兩個 key 不是同一篇(否決建議;啟發式會改找下一個候選)。</summary>
1258
+ </member>
1259
+ <member name="F:PolyMigrate.Core.Pairing.DecisionKind.Single">
1260
+ <summary>這頁確定沒有其他語言版本(不再列為 missing)。</summary>
1261
+ </member>
1262
+ <member name="T:PolyMigrate.Core.Pairing.DecisionKeyState">
1263
+ <summary>決定檔裡一個 key 在這次 inventory 的狀態(套用前的檢查用)。null = 這次的 inventory 沒有它。</summary>
1264
+ </member>
1265
+ <member name="M:PolyMigrate.Core.Pairing.DecisionKeyState.#ctor(System.Boolean,System.Boolean,System.String)">
1266
+ <summary>決定檔裡一個 key 在這次 inventory 的狀態(套用前的檢查用)。null = 這次的 inventory 沒有它。</summary>
1267
+ </member>
1268
+ <member name="T:PolyMigrate.Core.Pairing.DecisionOutcome">
1269
+ <summary>套用結果。<see cref="P:PolyMigrate.Core.Pairing.DecisionOutcome.Unapplied"/> 是這次沒套上的列(站改了、key 打錯…),回報給人看,不默默略過。</summary>
1270
+ </member>
1271
+ <member name="M:PolyMigrate.Core.Pairing.DecisionOutcome.#ctor(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Collections.Generic.IReadOnlySet{System.String},System.Collections.Generic.IReadOnlySet{System.ValueTuple{System.String,System.String}},System.Collections.Generic.IReadOnlyDictionary{System.String,System.String},System.Collections.Generic.IReadOnlyList{System.String})">
1272
+ <summary>套用結果。<see cref="P:PolyMigrate.Core.Pairing.DecisionOutcome.Unapplied"/> 是這次沒套上的列(站改了、key 打錯…),回報給人看,不默默略過。</summary>
1273
+ </member>
1274
+ <member name="T:PolyMigrate.Core.Pairing.PairingDecisions">
1275
+ <summary>
1276
+ 人工配對決定檔(<c>pairing.decisions</c>)。<c>content_inventory.csv</c> 每次 extract 都整份重寫,
1277
+ 人在上面做的決定沒有地方放——這份檔案就是那個固定的落點:extract 每次都讀、從不寫。
1278
+ <para>決定只影響<b>覆核狀態</b>(pair_status、建議要不要再出現),不改寫 <c>translation_key</c>:
1279
+ 它流進 frontmatter、redirect_map 與使用者自己的匯入程式,改寫的理由與風險見 docs/hreflang_量測與決策.md。</para>
1280
+ </summary>
1281
+ </member>
1282
+ <member name="M:PolyMigrate.Core.Pairing.PairingDecisions.Load(System.String)">
1283
+ <summary>
1284
+ 讀檔並檢查格式。寫壞的地方一次全部列出(點名行號),擲 <see cref="T:PolyMigrate.Core.Configuration.ConfigException"/>(exit 2)——
1285
+ 在寫任何輸出之前:決定檔讀錯一半就照樣跑,等於把人做過的決定安靜地丟掉一部分。
1286
+ </summary>
1287
+ </member>
1288
+ <member name="M:PolyMigrate.Core.Pairing.PairingDecisions.Resolve(System.Func{System.String,PolyMigrate.Core.Pairing.DecisionKeyState},System.Boolean)">
1289
+ <summary>
1290
+ 對這次的 inventory 套用。套不上的不是錯(舊站改了、頁下架了都會發生),但要回報——
1291
+ 人做過的決定沒生效,不能安靜地略過。
1292
+ </summary>
1293
+ <param name="state">key → 這次的狀態;null = 不在 inventory 裡。</param>
1294
+ <param name="multilingual">false = 單語站,配對不適用。</param>
1295
+ </member>
1296
+ <member name="M:PolyMigrate.Core.Pairing.PairingDecisions.Ordered(System.String,System.String)">
1297
+ <summary>無序的一對(否決不分前後)。</summary>
1298
+ </member>
1299
+ <member name="M:PolyMigrate.Core.Pairing.PairingDecisions.Unguard(System.String)">
1300
+ <summary>
1301
+ 去掉前後空白,以及從 content_inventory 複製過來時帶的公式防護單引號(<c>'-foo</c> → <c>-foo</c>,
1302
+ 見 <see cref="M:PolyMigrate.Core.Inventory.Csv.Write(System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.IReadOnlyList{System.String}},System.Boolean)"/>)。只拿掉「單引號 + 公式字元」那一種,其他單引號照留。
1303
+ </summary>
1304
+ </member>
1213
1305
  <member name="T:PolyMigrate.Core.Pairing.UnpairedGroup">
1214
1306
  <summary>配對建議的候選:只有單一語言版本的 translation_key(§1.4「配不起來的」)。</summary>
1215
1307
  </member>
@@ -1243,6 +1335,38 @@
1243
1335
  <member name="F:PolyMigrate.Core.Pairing.PairingSuggester.TitleSimilarityThreshold">
1244
1336
  <summary>title_similarity 低於此值不當證據(跨語言標題相似度本就偏弱)。</summary>
1245
1337
  </member>
1338
+ <member name="M:PolyMigrate.Core.Pairing.PairingSuggester.Suggest(System.Collections.Generic.IEnumerable{PolyMigrate.Core.Pairing.UnpairedGroup},System.Collections.Generic.IReadOnlySet{System.ValueTuple{System.String,System.String}})">
1339
+ <param name="rejected">人工否決過的配對(<see cref="M:PolyMigrate.Core.Pairing.PairingDecisions.Ordered(System.String,System.String)"/> 的無序一對):不再建議,改找下一個候選。</param>
1340
+ </member>
1341
+ <member name="T:PolyMigrate.Core.Pairing.PairingSuggester.Candidate">
1342
+ <summary>一個候選:對方、命中的證據、排序分數。</summary>
1343
+ </member>
1344
+ <member name="M:PolyMigrate.Core.Pairing.PairingSuggester.Candidate.#ctor(PolyMigrate.Core.Pairing.UnpairedGroup,System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{System.String,System.String}},System.Int64)">
1345
+ <summary>一個候選:對方、命中的證據、排序分數。</summary>
1346
+ </member>
1347
+ <member name="M:PolyMigrate.Core.Pairing.PairingSuggester.Ranked(PolyMigrate.Core.Pairing.UnpairedGroup,System.Collections.Generic.IEnumerable{PolyMigrate.Core.Pairing.UnpairedGroup},System.Collections.Generic.IReadOnlySet{System.ValueTuple{System.String,System.String}})">
1348
+ <summary>
1349
+ <paramref name="a"/> 的所有候選,好的在前——貪婪配對與 <see cref="M:PolyMigrate.Core.Pairing.PairingSuggester.Candidates(System.Collections.Generic.IEnumerable{PolyMigrate.Core.Pairing.UnpairedGroup},System.Collections.Generic.IReadOnlySet{System.ValueTuple{System.String,System.String}})"/> 共用這一份,兩邊的排序才不會各說各話。
1350
+ 同 section 是啟發式的護欄:共用相簿、同日期、標題像,跨 section 太容易巧合。
1351
+ hreflang 不受這條限制——它是作者宣告的,而語言版本換 section 是真的會發生
1352
+ (中文在 /ch/news/、英文在 /en/press/),那正是對稱路徑配不起來的原因之一。
1353
+ </summary>
1354
+ </member>
1355
+ <member name="M:PolyMigrate.Core.Pairing.PairingSuggester.Candidates(System.Collections.Generic.IEnumerable{PolyMigrate.Core.Pairing.UnpairedGroup},System.Collections.Generic.IReadOnlySet{System.ValueTuple{System.String,System.String}})">
1356
+ <summary>
1357
+ 每個 key 的全部候選(好的在前),<b>不管</b>對方是不是已經被別人配走——
1358
+ 貪婪配對只出一筆,被搶走的那個更好的對象原本就看不到;覆核時要的正是「還有誰可能是它」。
1359
+ 沒有任何候選的 key 不在結果裡。
1360
+ </summary>
1361
+ </member>
1362
+ <member name="M:PolyMigrate.Core.Pairing.PairingSuggester.Confidence(System.Collections.Generic.IReadOnlyCollection{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
1363
+ <summary>
1364
+ 信心分級:看<b>是哪幾種證據</b>,不是分數——分數只用來排序,換算成百分比會假裝有它沒有的精確度。
1365
+ 由高到低:<c>declared</c>(原站作者宣告的 hreflang)、<c>exact_slug</c>(slug 只差分隔符或大小寫,與對稱路徑同級)、
1366
+ <c>corroborated</c>(兩種以上互相獨立的啟發式同時成立)、<c>single_signal</c>(只有共用相簿或只有同日期)、
1367
+ <c>title_only</c>(只有標題相似——跨語言最弱)。
1368
+ </summary>
1369
+ </member>
1246
1370
  <member name="M:PolyMigrate.Core.Pairing.PairingSuggester.Evaluate(PolyMigrate.Core.Pairing.UnpairedGroup,PolyMigrate.Core.Pairing.UnpairedGroup)">
1247
1371
  <summary>
1248
1372
  回傳命中的證據(依 fallback 順序);空 = 無任何依據,不建議。
@@ -1374,6 +1498,13 @@
1374
1498
  不會寫出半份 <c>verify_report.csv</c>。參數意義與上面相同(這裡沒有預設值,避免與上一個多載互相模糊)。
1375
1499
  </summary>
1376
1500
  </member>
1501
+ <member name="M:PolyMigrate.Core.PolyMigrator.Verify(System.String,System.String,System.String,System.Collections.Generic.IReadOnlyCollection{System.String},System.String,System.Threading.CancellationToken)">
1502
+ <summary>
1503
+ 同上,另外離線檢查一份轉址表(4.1 起;CLI 的 <c>--redirects</c>):目標頁存在、沒有連鎖、沒有迴圈、
1504
+ 同一個來源沒有兩個目標。<paramref name="redirects"/> 是 <c>redirect_map.csv</c>(.csv)或 <c>_redirects</c> 格式;
1505
+ null 等同上一個多載。
1506
+ </summary>
1507
+ </member>
1377
1508
  <member name="M:PolyMigrate.Core.PolyMigrator.MirrorSlugs(System.String,System.String,System.String)">
1378
1509
  <summary>
1379
1510
  鏡像裡已有的 slug(<c>raw/{lang}/{section}/</c> 檔名),字典序、跨語言去重;
@@ -1461,12 +1592,217 @@
1461
1592
  <member name="T:PolyMigrate.Core.Redirects.NetlifyRedirectExporter">
1462
1593
  <summary>Netlify <c>_redirects</c>:<c>{old} {new} 301</c>。</summary>
1463
1594
  </member>
1595
+ <member name="T:PolyMigrate.Core.Redirects.RedirectRule">
1596
+ <summary>轉址表的一條規則。<see cref="P:PolyMigrate.Core.Redirects.RedirectRule.Line"/> 是檔案裡的行號(從 1 起,含表頭),報告點名用。</summary>
1597
+ </member>
1598
+ <member name="M:PolyMigrate.Core.Redirects.RedirectRule.#ctor(System.Int32,System.String,System.String)">
1599
+ <summary>轉址表的一條規則。<see cref="P:PolyMigrate.Core.Redirects.RedirectRule.Line"/> 是檔案裡的行號(從 1 起,含表頭),報告點名用。</summary>
1600
+ </member>
1601
+ <member name="T:PolyMigrate.Core.Redirects.RedirectTable">
1602
+ <summary>讀回的轉址表:能檢查的規則、刻意略過的條數(萬用字元、非 3xx)、讀不懂的行號。</summary>
1603
+ </member>
1604
+ <member name="M:PolyMigrate.Core.Redirects.RedirectTable.#ctor(System.String,System.Collections.Generic.List{PolyMigrate.Core.Redirects.RedirectRule},System.Int32,System.Collections.Generic.List{System.Int32})">
1605
+ <summary>讀回的轉址表:能檢查的規則、刻意略過的條數(萬用字元、非 3xx)、讀不懂的行號。</summary>
1606
+ </member>
1607
+ <member name="T:PolyMigrate.Core.Redirects.RedirectRules">
1608
+ <summary>
1609
+ 讀轉址表給 <c>verify --redirects</c> 離線檢查。兩種格式,依副檔名分:
1610
+ <list type="bullet">
1611
+ <item><c>.csv</c>:<c>redirect_map.csv</c>(<c>old_url</c> → <c>new_path</c>),<c>extract</c> 產出的那份;</item>
1612
+ <item>其他:<c>_redirects</c>(Netlify / Cloudflare Pages:<c>來源 目標 [狀態碼]</c>,<c>#</c> 開頭是註解)——
1613
+ 部署上線的是這份,手改也多半改這份。</item>
1614
+ </list>
1615
+ nginx 那份是同一批資料的另一種寫法,不另外讀。
1616
+ </summary>
1617
+ </member>
1618
+ <member name="T:PolyMigrate.Core.Templates.TemplatePage">
1619
+ <summary>一個鏡像頁在模板分群裡的結果。</summary>
1620
+ <param name="ContentMatches"><c>extract.content</c> 在這頁選到幾個元素;0 = extract 會寫出只有 frontmatter 的空頁。</param>
1621
+ </member>
1622
+ <member name="M:PolyMigrate.Core.Templates.TemplatePage.#ctor(System.String,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.String)">
1623
+ <summary>一個鏡像頁在模板分群裡的結果。</summary>
1624
+ <param name="ContentMatches"><c>extract.content</c> 在這頁選到幾個元素;0 = extract 會寫出只有 frontmatter 的空頁。</param>
1625
+ </member>
1626
+ <member name="P:PolyMigrate.Core.Templates.TemplatePage.ContentMatches">
1627
+ <summary><c>extract.content</c> 在這頁選到幾個元素;0 = extract 會寫出只有 frontmatter 的空頁。</summary>
1628
+ </member>
1629
+ <member name="T:PolyMigrate.Core.Templates.TemplateGroup">
1630
+ <summary>一個模板(版面骨架相近的一群頁)。<see cref="P:PolyMigrate.Core.Templates.TemplateGroup.Id"/> 依頁數由多到少編號,從 1 起。</summary>
1631
+ </member>
1632
+ <member name="M:PolyMigrate.Core.Templates.TemplateGroup.#ctor(System.Int32,System.Collections.Generic.List{PolyMigrate.Core.Templates.TemplatePage})">
1633
+ <summary>一個模板(版面骨架相近的一群頁)。<see cref="P:PolyMigrate.Core.Templates.TemplateGroup.Id"/> 依頁數由多到少編號,從 1 起。</summary>
1634
+ </member>
1635
+ <member name="P:PolyMigrate.Core.Templates.TemplateGroup.ContentEmpty">
1636
+ <summary><c>extract.content</c> 一個元素都沒選到的頁數。選到了但沒有字(只有圖的活動海報頁)不算——那是內容本來就是圖。</summary>
1637
+ </member>
1638
+ <member name="P:PolyMigrate.Core.Templates.TemplateGroup.ContentCoverage">
1639
+ <summary><c>extract.content</c> 抓到的字數占整頁字數的中位數(0~100);整頁沒有字的頁不算。</summary>
1640
+ </member>
1641
+ <member name="P:PolyMigrate.Core.Templates.TemplateGroup.Suggested">
1642
+ <summary>這群頁最常見的內容區候選,以及有幾頁是它。沒有任何頁找得到候選時是 null。</summary>
1643
+ </member>
1644
+ <member name="T:PolyMigrate.Core.Templates.TemplateSurvey">
1645
+ <summary>
1646
+ 模板分群(<c>polymigrate templates</c>):寫 config 之前,先知道舊站有幾種版面、<c>extract.content</c> 在每一種上抓不抓得到東西。
1647
+ <c>extract.content</c> 只有一個 selector,舊站卻常有好幾種模板(首頁、列表、文章、活動、舊版殘留…)——
1648
+ 原本要整份 extract 跑完、一頁一頁看 Markdown 才知道哪一種漏了。
1649
+ <para>分群看的是<b>版面骨架</b>:body 底下前幾層的版面元素(div、section、nav…)連同 id 與第一個 class 的路徑集合,
1650
+ 兩頁的集合 Jaccard 相似度 ≥ <see cref="F:PolyMigrate.Core.Templates.TemplateSurvey.SameTemplate"/> 就算同一種。id / class 裡的數字一律視為相同
1651
+ (<c>post-123</c> 與 <c>post-456</c> 是同一種模板)。純本地、只讀鏡像,不碰網路、不寫 content/。</para>
1652
+ </summary>
1653
+ </member>
1654
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.#ctor(PolyMigrate.Core.Configuration.SiteConfig)">
1655
+ <summary>
1656
+ 模板分群(<c>polymigrate templates</c>):寫 config 之前,先知道舊站有幾種版面、<c>extract.content</c> 在每一種上抓不抓得到東西。
1657
+ <c>extract.content</c> 只有一個 selector,舊站卻常有好幾種模板(首頁、列表、文章、活動、舊版殘留…)——
1658
+ 原本要整份 extract 跑完、一頁一頁看 Markdown 才知道哪一種漏了。
1659
+ <para>分群看的是<b>版面骨架</b>:body 底下前幾層的版面元素(div、section、nav…)連同 id 與第一個 class 的路徑集合,
1660
+ 兩頁的集合 Jaccard 相似度 ≥ <see cref="F:PolyMigrate.Core.Templates.TemplateSurvey.SameTemplate"/> 就算同一種。id / class 裡的數字一律視為相同
1661
+ (<c>post-123</c> 與 <c>post-456</c> 是同一種模板)。純本地、只讀鏡像,不碰網路、不寫 content/。</para>
1662
+ </summary>
1663
+ </member>
1664
+ <member name="F:PolyMigrate.Core.Templates.TemplateSurvey.SameTemplate">
1665
+ <summary>同一種模板的門檻:骨架路徑集合的 Jaccard 相似度。</summary>
1666
+ </member>
1667
+ <member name="F:PolyMigrate.Core.Templates.TemplateSurvey.SkeletonDepth">
1668
+ <summary>骨架看到 body 底下第幾層為止:再往下是內文本身,每頁都不一樣。</summary>
1669
+ </member>
1670
+ <member name="F:PolyMigrate.Core.Templates.TemplateSurvey.ContentShare">
1671
+ <summary>內容區候選:字數至少占整頁這麼多的元素裡,最深的那一個。</summary>
1672
+ </member>
1673
+ <member name="P:PolyMigrate.Core.Templates.TemplateSurvey.OnCheckpoint">
1674
+ <summary>測試用:每頁之前呼叫一次(<c>page:&lt;raw 相對路徑&gt;</c>),讓測試能在半途取消。</summary>
1675
+ </member>
1676
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Write(System.String,PolyMigrate.Core.Templates.TemplateSurveyReport)">
1677
+ <summary>
1678
+ 寫兩份清單:<c>template_report.csv</c>(一個模板一列)與 <c>template_pages.csv</c>(一頁一列,方便查某一頁屬於哪一種)。
1679
+ </summary>
1680
+ </member>
1681
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Counts(System.Collections.Generic.IEnumerable{System.String})">
1682
+ <summary><c>news=12;events=3</c>:多的在前,同數依名稱。</summary>
1683
+ </member>
1684
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Skeleton(AngleSharp.Dom.IElement)">
1685
+ <summary>body 底下前 <see cref="F:PolyMigrate.Core.Templates.TemplateSurvey.SkeletonDepth"/> 層版面元素的路徑集合。</summary>
1686
+ </member>
1687
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Token(AngleSharp.Dom.IElement)">
1688
+ <summary><c>tag#id</c> 或 <c>tag.第一個class</c>,數字一律換成 <c>0</c>。</summary>
1689
+ </member>
1690
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.ContentCandidate(AngleSharp.Dom.IElement,System.Int32,System.Collections.Generic.Dictionary{AngleSharp.Dom.IElement,System.Int32})">
1691
+ <summary>
1692
+ 內容區候選:有 id 或 class、而且字數占整頁至少 <see cref="F:PolyMigrate.Core.Templates.TemplateSurvey.ContentShare"/> 的元素裡最深的那一個——
1693
+ 越外層越容易把選單、頁尾一起包進來。回傳可以直接貼進 <c>extract.content</c> 的 selector;找不到是 null。
1694
+ </summary>
1695
+ </member>
1696
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Selector(AngleSharp.Dom.IElement)">
1697
+ <summary>可以直接用的 selector:<c>#id</c>,否則 <c>tag.class</c>;名字含特殊字元(要跳脫的)就不用。</summary>
1698
+ </member>
1699
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Chars(AngleSharp.Dom.IElement,System.Collections.Generic.Dictionary{AngleSharp.Dom.IElement,System.Int32})">
1700
+ <summary>
1701
+ 元素的字數(每段文字空白正規化後的長度加總,不含 script / style / noscript),順手記下每個子元素的字數——
1702
+ 一頁只走一趟,找內容區候選時直接查表,不必每一層重算整棵子樹。
1703
+ </summary>
1704
+ </member>
1705
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.IsChrome(AngleSharp.Dom.IElement)">
1706
+ <summary>網站外框:header / footer / nav / aside,或 id、class 看得出是外框的(header、footer、nav、menu、sidebar、breadcrumb)。</summary>
1707
+ </member>
1708
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.ChromeName">
1709
+ <remarks>
1710
+ Pattern:<br/>
1711
+ <code>header|footer|nav|menu|sidebar|breadcrumb</code><br/>
1712
+ Options:<br/>
1713
+ <code>RegexOptions.IgnoreCase</code><br/>
1714
+ Explanation:<br/>
1715
+ <code>
1716
+ ○ Match with 6 alternative expressions, atomically.<br/>
1717
+ ○ Match a sequence of expressions.<br/>
1718
+ ○ Match a character in the set [Hh].<br/>
1719
+ ○ Match a character in the set [Ee].<br/>
1720
+ ○ Match a character in the set [Aa].<br/>
1721
+ ○ Match a character in the set [Dd].<br/>
1722
+ ○ Match a character in the set [Ee].<br/>
1723
+ ○ Match a character in the set [Rr].<br/>
1724
+ ○ Match a sequence of expressions.<br/>
1725
+ ○ Match a character in the set [Ff].<br/>
1726
+ ○ Match a character in the set [Oo] exactly 2 times.<br/>
1727
+ ○ Match a character in the set [Tt].<br/>
1728
+ ○ Match a character in the set [Ee].<br/>
1729
+ ○ Match a character in the set [Rr].<br/>
1730
+ ○ Match a sequence of expressions.<br/>
1731
+ ○ Match a character in the set [Nn].<br/>
1732
+ ○ Match a character in the set [Aa].<br/>
1733
+ ○ Match a character in the set [Vv].<br/>
1734
+ ○ Match a sequence of expressions.<br/>
1735
+ ○ Match a character in the set [Mm].<br/>
1736
+ ○ Match a character in the set [Ee].<br/>
1737
+ ○ Match a character in the set [Nn].<br/>
1738
+ ○ Match a character in the set [Uu].<br/>
1739
+ ○ Match a sequence of expressions.<br/>
1740
+ ○ Match a character in the set [Ss].<br/>
1741
+ ○ Match a character in the set [Ii].<br/>
1742
+ ○ Match a character in the set [Dd].<br/>
1743
+ ○ Match a character in the set [Ee].<br/>
1744
+ ○ Match a character in the set [Bb].<br/>
1745
+ ○ Match a character in the set [Aa].<br/>
1746
+ ○ Match a character in the set [Rr].<br/>
1747
+ ○ Match a sequence of expressions.<br/>
1748
+ ○ Match a character in the set [Bb].<br/>
1749
+ ○ Match a character in the set [Rr].<br/>
1750
+ ○ Match a character in the set [Ee].<br/>
1751
+ ○ Match a character in the set [Aa].<br/>
1752
+ ○ Match a character in the set [Dd].<br/>
1753
+ ○ Match a character in the set [Cc].<br/>
1754
+ ○ Match a character in the set [Rr].<br/>
1755
+ ○ Match a character in the set [Uu].<br/>
1756
+ ○ Match a character in the set [Mm].<br/>
1757
+ ○ Match a character in the set [Bb].<br/>
1758
+ </code>
1759
+ </remarks>
1760
+ </member>
1761
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Digits">
1762
+ <remarks>
1763
+ Pattern:<br/>
1764
+ <code>[0-9]+</code><br/>
1765
+ Explanation:<br/>
1766
+ <code>
1767
+ ○ Match a character in the set [0-9] atomically at least once.<br/>
1768
+ </code>
1769
+ </remarks>
1770
+ </member>
1771
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.Whitespace">
1772
+ <remarks>
1773
+ Pattern:<br/>
1774
+ <code>\\s+</code><br/>
1775
+ Explanation:<br/>
1776
+ <code>
1777
+ ○ Match a whitespace character atomically at least once.<br/>
1778
+ </code>
1779
+ </remarks>
1780
+ </member>
1781
+ <member name="M:PolyMigrate.Core.Templates.TemplateSurvey.PlainName">
1782
+ <remarks>
1783
+ Pattern:<br/>
1784
+ <code>^[A-Za-z_][A-Za-z0-9_-]*$</code><br/>
1785
+ Explanation:<br/>
1786
+ <code>
1787
+ ○ Match if at the beginning of the string.<br/>
1788
+ ○ Match a character in the set [A-Z_a-z].<br/>
1789
+ ○ Match a character in the set [\-0-9A-Z_a-z] atomically any number of times.<br/>
1790
+ ○ Match if at the end of the string or if before an ending newline.<br/>
1791
+ </code>
1792
+ </remarks>
1793
+ </member>
1464
1794
  <member name="T:PolyMigrate.Core.Verify.VerifyIssue">
1465
1795
  <summary>一筆巡檢發現。severity:error(阻斷發布)/ warning(已知或可接受,記錄)。</summary>
1466
1796
  </member>
1467
1797
  <member name="M:PolyMigrate.Core.Verify.VerifyIssue.#ctor(PolyMigrate.Core.Diagnostics.Severity,System.String,System.String,System.String)">
1468
1798
  <summary>一筆巡檢發現。severity:error(阻斷發布)/ warning(已知或可接受,記錄)。</summary>
1469
1799
  </member>
1800
+ <member name="P:PolyMigrate.Core.Verify.VerifyReport.RedirectsChecked">
1801
+ <summary>檢查過的轉址規則數(4.1 起,只在給了轉址表時才檢查;沒給是 0)。</summary>
1802
+ </member>
1803
+ <member name="P:PolyMigrate.Core.Verify.VerifyReport.RedirectsSkipped">
1804
+ <summary>轉址表裡刻意略過的規則數:萬用字元、具名參數、非 3xx(改寫、自訂錯誤頁)。</summary>
1805
+ </member>
1470
1806
  <member name="T:PolyMigrate.Core.Verify.OutputVerifier">
1471
1807
  <summary>
1472
1808
  全站巡檢(§3.6):只讀 Phase 2 輸出(content/ 與清單),不碰網路與鏡像——契約完整性的試金石。
@@ -1494,6 +1830,30 @@
1494
1830
  <para>方法開頭刻意不另外檢查:第一頁之前就是一個檢查點(<c>content/</c> 不存在時什麼都不做、立刻結束)。</para>
1495
1831
  </summary>
1496
1832
  </member>
1833
+ <member name="M:PolyMigrate.Core.Verify.OutputVerifier.Run(System.String,System.String,System.String,System.Collections.Generic.IReadOnlyCollection{System.String},System.String,System.Threading.CancellationToken)">
1834
+ <summary>
1835
+ 同上,另外離線檢查一份轉址表(4.1 起):目標頁存在、沒有連鎖轉址、沒有迴圈、同一個來源沒有兩個目標。
1836
+ <paramref name="redirects"/> 是 <c>redirect_map.csv</c>(副檔名 .csv)或 <c>_redirects</c> 格式的檔案;null = 不檢查。
1837
+ 刻意做成選用:預設就檢查的話,轉址表剛好有連鎖的既有使用者什麼都沒改就從 exit 0 變 1(新增一種 warning 是破壞性的)。
1838
+ </summary>
1839
+ </member>
1840
+ <member name="M:PolyMigrate.Core.Verify.OutputVerifier.CheckRedirects(PolyMigrate.Core.Redirects.RedirectTable,System.Collections.Generic.HashSet{System.String},System.String)">
1841
+ <summary>
1842
+ 轉址表的離線檢查。比對單位是「去掉尾斜線、解碼後的路徑」(與內部連結檢查同一套正規化);
1843
+ 帶 query 的來源(<c>/news.php?id=3</c>)保留 query,它只會被同樣帶 query 的網址打到。
1844
+ <list type="bullet">
1845
+ <item><c>redirect_conflict</c>(error):同一個來源兩條規則、目標不同——伺服器只會用其中一條,哪條看平台。</item>
1846
+ <item><c>redirect_loop</c>(error):跟著轉會回到走過的地方(含轉到自己),瀏覽器最後報「重新導向次數過多」。每個迴圈報一次。</item>
1847
+ <item><c>redirect_chain</c>(warning):目標本身又是另一條規則的來源。到得了,但多一跳——舊網址的搜尋權重每跳都打折,
1848
+ 而且多半是搬兩次的殘留,直接指到終點就好。</item>
1849
+ <item><c>redirect_target_missing</c>(error):目標是站內頁、卻不在 <c>content/</c> 裡,也不是另一條規則的來源 → 404。</item>
1850
+ </list>
1851
+ 外站目標(http/https 完整網址)與媒體路徑不檢查存在與否:離線無從得知。
1852
+ </summary>
1853
+ </member>
1854
+ <member name="M:PolyMigrate.Core.Verify.OutputVerifier.RedirectKey(System.String)">
1855
+ <summary>轉址的比對鍵:解碼、去尾斜線、去 #fragment;query 保留(見 <see cref="M:PolyMigrate.Core.Verify.OutputVerifier.CheckRedirects(PolyMigrate.Core.Redirects.RedirectTable,System.Collections.Generic.HashSet{System.String},System.String)"/>)。</summary>
1856
+ </member>
1497
1857
  <member name="M:PolyMigrate.Core.Verify.OutputVerifier.BuildRoutes(System.String,System.Collections.Generic.List{System.String})">
1498
1858
  <summary>content 樹 → 路由集:{prefix}/{section}/{slug};index 檔代表其目錄路由。</summary>
1499
1859
  </member>
@@ -1935,98 +2295,194 @@
1935
2295
  <param name="inputSpan">The text being scanned by the regular expression.</param>
1936
2296
  <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
1937
2297
  </member>
1938
- <member name="T:System.Text.RegularExpressions.Generated.MarkdownTarget_9">
2298
+ <member name="T:System.Text.RegularExpressions.Generated.ChromeName_9">
2299
+ <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the ChromeName method.</summary>
2300
+ </member>
2301
+ <member name="F:System.Text.RegularExpressions.Generated.ChromeName_9.Instance">
2302
+ <summary>Cached, thread-safe singleton instance.</summary>
2303
+ </member>
2304
+ <member name="M:System.Text.RegularExpressions.Generated.ChromeName_9.#ctor">
2305
+ <summary>Initializes the instance.</summary>
2306
+ </member>
2307
+ <member name="T:System.Text.RegularExpressions.Generated.ChromeName_9.RunnerFactory">
2308
+ <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2309
+ </member>
2310
+ <member name="M:System.Text.RegularExpressions.Generated.ChromeName_9.RunnerFactory.CreateInstance">
2311
+ <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2312
+ </member>
2313
+ <member name="T:System.Text.RegularExpressions.Generated.ChromeName_9.RunnerFactory.Runner">
2314
+ <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
2315
+ </member>
2316
+ <member name="M:System.Text.RegularExpressions.Generated.ChromeName_9.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2317
+ <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
2318
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2319
+ </member>
2320
+ <member name="M:System.Text.RegularExpressions.Generated.ChromeName_9.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2321
+ <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
2322
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2323
+ <returns>true if a possible match was found; false if no more matches are possible.</returns>
2324
+ </member>
2325
+ <member name="M:System.Text.RegularExpressions.Generated.ChromeName_9.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2326
+ <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
2327
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2328
+ <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
2329
+ </member>
2330
+ <member name="T:System.Text.RegularExpressions.Generated.Digits_10">
2331
+ <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the Digits method.</summary>
2332
+ </member>
2333
+ <member name="F:System.Text.RegularExpressions.Generated.Digits_10.Instance">
2334
+ <summary>Cached, thread-safe singleton instance.</summary>
2335
+ </member>
2336
+ <member name="M:System.Text.RegularExpressions.Generated.Digits_10.#ctor">
2337
+ <summary>Initializes the instance.</summary>
2338
+ </member>
2339
+ <member name="T:System.Text.RegularExpressions.Generated.Digits_10.RunnerFactory">
2340
+ <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2341
+ </member>
2342
+ <member name="M:System.Text.RegularExpressions.Generated.Digits_10.RunnerFactory.CreateInstance">
2343
+ <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2344
+ </member>
2345
+ <member name="T:System.Text.RegularExpressions.Generated.Digits_10.RunnerFactory.Runner">
2346
+ <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
2347
+ </member>
2348
+ <member name="M:System.Text.RegularExpressions.Generated.Digits_10.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2349
+ <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
2350
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2351
+ </member>
2352
+ <member name="M:System.Text.RegularExpressions.Generated.Digits_10.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2353
+ <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
2354
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2355
+ <returns>true if a possible match was found; false if no more matches are possible.</returns>
2356
+ </member>
2357
+ <member name="M:System.Text.RegularExpressions.Generated.Digits_10.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2358
+ <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
2359
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2360
+ <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
2361
+ </member>
2362
+ <member name="T:System.Text.RegularExpressions.Generated.PlainName_11">
2363
+ <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the PlainName method.</summary>
2364
+ </member>
2365
+ <member name="F:System.Text.RegularExpressions.Generated.PlainName_11.Instance">
2366
+ <summary>Cached, thread-safe singleton instance.</summary>
2367
+ </member>
2368
+ <member name="M:System.Text.RegularExpressions.Generated.PlainName_11.#ctor">
2369
+ <summary>Initializes the instance.</summary>
2370
+ </member>
2371
+ <member name="T:System.Text.RegularExpressions.Generated.PlainName_11.RunnerFactory">
2372
+ <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2373
+ </member>
2374
+ <member name="M:System.Text.RegularExpressions.Generated.PlainName_11.RunnerFactory.CreateInstance">
2375
+ <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2376
+ </member>
2377
+ <member name="T:System.Text.RegularExpressions.Generated.PlainName_11.RunnerFactory.Runner">
2378
+ <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
2379
+ </member>
2380
+ <member name="M:System.Text.RegularExpressions.Generated.PlainName_11.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2381
+ <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
2382
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2383
+ </member>
2384
+ <member name="M:System.Text.RegularExpressions.Generated.PlainName_11.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2385
+ <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
2386
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2387
+ <returns>true if a possible match was found; false if no more matches are possible.</returns>
2388
+ </member>
2389
+ <member name="M:System.Text.RegularExpressions.Generated.PlainName_11.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2390
+ <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
2391
+ <param name="inputSpan">The text being scanned by the regular expression.</param>
2392
+ <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
2393
+ </member>
2394
+ <member name="T:System.Text.RegularExpressions.Generated.MarkdownTarget_12">
1939
2395
  <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the MarkdownTarget method.</summary>
1940
2396
  </member>
1941
- <member name="F:System.Text.RegularExpressions.Generated.MarkdownTarget_9.Instance">
2397
+ <member name="F:System.Text.RegularExpressions.Generated.MarkdownTarget_12.Instance">
1942
2398
  <summary>Cached, thread-safe singleton instance.</summary>
1943
2399
  </member>
1944
- <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_9.#ctor">
2400
+ <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_12.#ctor">
1945
2401
  <summary>Initializes the instance.</summary>
1946
2402
  </member>
1947
- <member name="T:System.Text.RegularExpressions.Generated.MarkdownTarget_9.RunnerFactory">
2403
+ <member name="T:System.Text.RegularExpressions.Generated.MarkdownTarget_12.RunnerFactory">
1948
2404
  <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
1949
2405
  </member>
1950
- <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_9.RunnerFactory.CreateInstance">
2406
+ <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_12.RunnerFactory.CreateInstance">
1951
2407
  <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
1952
2408
  </member>
1953
- <member name="T:System.Text.RegularExpressions.Generated.MarkdownTarget_9.RunnerFactory.Runner">
2409
+ <member name="T:System.Text.RegularExpressions.Generated.MarkdownTarget_12.RunnerFactory.Runner">
1954
2410
  <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
1955
2411
  </member>
1956
- <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_9.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2412
+ <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_12.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
1957
2413
  <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
1958
2414
  <param name="inputSpan">The text being scanned by the regular expression.</param>
1959
2415
  </member>
1960
- <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_9.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2416
+ <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_12.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
1961
2417
  <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
1962
2418
  <param name="inputSpan">The text being scanned by the regular expression.</param>
1963
2419
  <returns>true if a possible match was found; false if no more matches are possible.</returns>
1964
2420
  </member>
1965
- <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_9.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2421
+ <member name="M:System.Text.RegularExpressions.Generated.MarkdownTarget_12.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
1966
2422
  <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
1967
2423
  <param name="inputSpan">The text being scanned by the regular expression.</param>
1968
2424
  <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
1969
2425
  </member>
1970
- <member name="T:System.Text.RegularExpressions.Generated.HtmlTarget_10">
2426
+ <member name="T:System.Text.RegularExpressions.Generated.HtmlTarget_13">
1971
2427
  <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the HtmlTarget method.</summary>
1972
2428
  </member>
1973
- <member name="F:System.Text.RegularExpressions.Generated.HtmlTarget_10.Instance">
2429
+ <member name="F:System.Text.RegularExpressions.Generated.HtmlTarget_13.Instance">
1974
2430
  <summary>Cached, thread-safe singleton instance.</summary>
1975
2431
  </member>
1976
- <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_10.#ctor">
2432
+ <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_13.#ctor">
1977
2433
  <summary>Initializes the instance.</summary>
1978
2434
  </member>
1979
- <member name="T:System.Text.RegularExpressions.Generated.HtmlTarget_10.RunnerFactory">
2435
+ <member name="T:System.Text.RegularExpressions.Generated.HtmlTarget_13.RunnerFactory">
1980
2436
  <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
1981
2437
  </member>
1982
- <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_10.RunnerFactory.CreateInstance">
2438
+ <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_13.RunnerFactory.CreateInstance">
1983
2439
  <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
1984
2440
  </member>
1985
- <member name="T:System.Text.RegularExpressions.Generated.HtmlTarget_10.RunnerFactory.Runner">
2441
+ <member name="T:System.Text.RegularExpressions.Generated.HtmlTarget_13.RunnerFactory.Runner">
1986
2442
  <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
1987
2443
  </member>
1988
- <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_10.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2444
+ <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_13.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
1989
2445
  <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
1990
2446
  <param name="inputSpan">The text being scanned by the regular expression.</param>
1991
2447
  </member>
1992
- <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_10.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2448
+ <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_13.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
1993
2449
  <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
1994
2450
  <param name="inputSpan">The text being scanned by the regular expression.</param>
1995
2451
  <returns>true if a possible match was found; false if no more matches are possible.</returns>
1996
2452
  </member>
1997
- <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_10.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2453
+ <member name="M:System.Text.RegularExpressions.Generated.HtmlTarget_13.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
1998
2454
  <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
1999
2455
  <param name="inputSpan">The text being scanned by the regular expression.</param>
2000
2456
  <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
2001
2457
  </member>
2002
- <member name="T:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11">
2458
+ <member name="T:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14">
2003
2459
  <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the AnyHrefOrSrcAttribute method.</summary>
2004
2460
  </member>
2005
- <member name="F:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.Instance">
2461
+ <member name="F:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.Instance">
2006
2462
  <summary>Cached, thread-safe singleton instance.</summary>
2007
2463
  </member>
2008
- <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.#ctor">
2464
+ <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.#ctor">
2009
2465
  <summary>Initializes the instance.</summary>
2010
2466
  </member>
2011
- <member name="T:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.RunnerFactory">
2467
+ <member name="T:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.RunnerFactory">
2012
2468
  <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2013
2469
  </member>
2014
- <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.RunnerFactory.CreateInstance">
2470
+ <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.RunnerFactory.CreateInstance">
2015
2471
  <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
2016
2472
  </member>
2017
- <member name="T:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.RunnerFactory.Runner">
2473
+ <member name="T:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.RunnerFactory.Runner">
2018
2474
  <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
2019
2475
  </member>
2020
- <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2476
+ <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
2021
2477
  <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
2022
2478
  <param name="inputSpan">The text being scanned by the regular expression.</param>
2023
2479
  </member>
2024
- <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2480
+ <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
2025
2481
  <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
2026
2482
  <param name="inputSpan">The text being scanned by the regular expression.</param>
2027
2483
  <returns>true if a possible match was found; false if no more matches are possible.</returns>
2028
2484
  </member>
2029
- <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_11.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2485
+ <member name="M:System.Text.RegularExpressions.Generated.AnyHrefOrSrcAttribute_14.RunnerFactory.Runner.TryMatchAtCurrentPosition(System.ReadOnlySpan{System.Char})">
2030
2486
  <summary>Determine whether <paramref name="inputSpan"/> at base.runtextpos is a match for the regular expression.</summary>
2031
2487
  <param name="inputSpan">The text being scanned by the regular expression.</param>
2032
2488
  <returns>true if the regular expression matches at the current position; otherwise, false.</returns>
@@ -2052,6 +2508,9 @@
2052
2508
  <member name="M:System.Text.RegularExpressions.Generated.Utilities.StackPush(System.Int32[]@,System.Int32@,System.Int32,System.Int32,System.Int32)">
2053
2509
  <summary>Pushes 3 values onto the backtracking stack.</summary>
2054
2510
  </member>
2511
+ <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_asciiLettersAndDigitsAndDashUnderscore">
2512
+ <summary>Supports searching for characters in or not in "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".</summary>
2513
+ </member>
2055
2514
  <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_ascii_1080000010800">
2056
2515
  <summary>Supports searching for characters in or not in "HShs".</summary>
2057
2516
  </member>
@@ -2067,6 +2526,9 @@
2067
2526
  <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_indexOfAnyStrings_OrdinalIgnoreCase_C804C12D58FD3623AF413AA299E8AC7DADACD43B8E4D2D0CDA250EF106FCC0B3">
2068
2527
  <summary>Supports searching for the specified strings.</summary>
2069
2528
  </member>
2529
+ <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_indexOfAnyStrings_OrdinalIgnoreCase_CE14BE80414964F12AF344F10FAD00C09799B1E84D7A0EEC7588CF55CDB1E64A">
2530
+ <summary>Supports searching for the specified strings.</summary>
2531
+ </member>
2070
2532
  <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_indexOfString_D6C4E7344B6A4489C17D4C7253959B7C7CA0F177B28A195A1B1C5269EEF2AAFD">
2071
2533
  <summary>Supports searching for the string "[](".</summary>
2072
2534
  </member>