@docsector/docsector-reader 0.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 (372) hide show
  1. package/.eslintrc.cjs +42 -0
  2. package/LICENSE.md +9 -0
  3. package/README.md +175 -0
  4. package/bin/docsector.js +129 -0
  5. package/docsector.config.js +54 -0
  6. package/index.html +20 -0
  7. package/jsconfig.json +16 -0
  8. package/package.json +99 -0
  9. package/postcss.config.cjs +5 -0
  10. package/public/Docsphere/flags/abkhazia.png +0 -0
  11. package/public/Docsphere/flags/afghanistan.png +0 -0
  12. package/public/Docsphere/flags/aland-islands.png +0 -0
  13. package/public/Docsphere/flags/albania.png +0 -0
  14. package/public/Docsphere/flags/algeria.png +0 -0
  15. package/public/Docsphere/flags/american-samoa.png +0 -0
  16. package/public/Docsphere/flags/andorra.png +0 -0
  17. package/public/Docsphere/flags/angola.png +0 -0
  18. package/public/Docsphere/flags/anguilla.png +0 -0
  19. package/public/Docsphere/flags/antigua-and-barbuda.png +0 -0
  20. package/public/Docsphere/flags/argentina.png +0 -0
  21. package/public/Docsphere/flags/armenia.png +0 -0
  22. package/public/Docsphere/flags/aruba.png +0 -0
  23. package/public/Docsphere/flags/australia.png +0 -0
  24. package/public/Docsphere/flags/austria.png +0 -0
  25. package/public/Docsphere/flags/azerbaijan.png +0 -0
  26. package/public/Docsphere/flags/azores-islands.png +0 -0
  27. package/public/Docsphere/flags/bahamas.png +0 -0
  28. package/public/Docsphere/flags/bahrain.png +0 -0
  29. package/public/Docsphere/flags/balearic-islands.png +0 -0
  30. package/public/Docsphere/flags/bangladesh.png +0 -0
  31. package/public/Docsphere/flags/barbados.png +0 -0
  32. package/public/Docsphere/flags/basque-country.png +0 -0
  33. package/public/Docsphere/flags/belarus.png +0 -0
  34. package/public/Docsphere/flags/belgium.png +0 -0
  35. package/public/Docsphere/flags/belize.png +0 -0
  36. package/public/Docsphere/flags/benin.png +0 -0
  37. package/public/Docsphere/flags/bermuda.png +0 -0
  38. package/public/Docsphere/flags/bhutan-1.png +0 -0
  39. package/public/Docsphere/flags/bhutan.png +0 -0
  40. package/public/Docsphere/flags/bolivia.png +0 -0
  41. package/public/Docsphere/flags/bonaire.png +0 -0
  42. package/public/Docsphere/flags/bosnia-and-herzegovina.png +0 -0
  43. package/public/Docsphere/flags/botswana.png +0 -0
  44. package/public/Docsphere/flags/brazil.png +0 -0
  45. package/public/Docsphere/flags/british-columbia.png +0 -0
  46. package/public/Docsphere/flags/british-indian-ocean-territory.png +0 -0
  47. package/public/Docsphere/flags/british-virgin-islands.png +0 -0
  48. package/public/Docsphere/flags/brunei.png +0 -0
  49. package/public/Docsphere/flags/bulgaria.png +0 -0
  50. package/public/Docsphere/flags/burkina-faso.png +0 -0
  51. package/public/Docsphere/flags/burundi.png +0 -0
  52. package/public/Docsphere/flags/cambodia.png +0 -0
  53. package/public/Docsphere/flags/cameroon.png +0 -0
  54. package/public/Docsphere/flags/canada.png +0 -0
  55. package/public/Docsphere/flags/canary-islands.png +0 -0
  56. package/public/Docsphere/flags/cape-verde.png +0 -0
  57. package/public/Docsphere/flags/cayman-islands.png +0 -0
  58. package/public/Docsphere/flags/central-african-republic.png +0 -0
  59. package/public/Docsphere/flags/ceuta.png +0 -0
  60. package/public/Docsphere/flags/chad.png +0 -0
  61. package/public/Docsphere/flags/chile.png +0 -0
  62. package/public/Docsphere/flags/china.png +0 -0
  63. package/public/Docsphere/flags/christmas-island.png +0 -0
  64. package/public/Docsphere/flags/cocos-island.png +0 -0
  65. package/public/Docsphere/flags/colombia.png +0 -0
  66. package/public/Docsphere/flags/comoros.png +0 -0
  67. package/public/Docsphere/flags/cook-islands.png +0 -0
  68. package/public/Docsphere/flags/corsica.png +0 -0
  69. package/public/Docsphere/flags/costa-rica.png +0 -0
  70. package/public/Docsphere/flags/croatia.png +0 -0
  71. package/public/Docsphere/flags/cuba.png +0 -0
  72. package/public/Docsphere/flags/curacao.png +0 -0
  73. package/public/Docsphere/flags/cyprus.png +0 -0
  74. package/public/Docsphere/flags/czech-republic.png +0 -0
  75. package/public/Docsphere/flags/democratic-republic-of-congo.png +0 -0
  76. package/public/Docsphere/flags/denmark.png +0 -0
  77. package/public/Docsphere/flags/djibouti.png +0 -0
  78. package/public/Docsphere/flags/dominica.png +0 -0
  79. package/public/Docsphere/flags/dominican-republic.png +0 -0
  80. package/public/Docsphere/flags/east-timor.png +0 -0
  81. package/public/Docsphere/flags/ecuador.png +0 -0
  82. package/public/Docsphere/flags/egypt.png +0 -0
  83. package/public/Docsphere/flags/england.png +0 -0
  84. package/public/Docsphere/flags/equatorial-guinea.png +0 -0
  85. package/public/Docsphere/flags/eritrea.png +0 -0
  86. package/public/Docsphere/flags/estonia.png +0 -0
  87. package/public/Docsphere/flags/ethiopia.png +0 -0
  88. package/public/Docsphere/flags/european-union.png +0 -0
  89. package/public/Docsphere/flags/falkland-islands.png +0 -0
  90. package/public/Docsphere/flags/faroe-islands.png +0 -0
  91. package/public/Docsphere/flags/fiji.png +0 -0
  92. package/public/Docsphere/flags/finland.png +0 -0
  93. package/public/Docsphere/flags/france.png +0 -0
  94. package/public/Docsphere/flags/french-polynesia.png +0 -0
  95. package/public/Docsphere/flags/gabon.png +0 -0
  96. package/public/Docsphere/flags/galapagos-islands.png +0 -0
  97. package/public/Docsphere/flags/gambia.png +0 -0
  98. package/public/Docsphere/flags/georgia.png +0 -0
  99. package/public/Docsphere/flags/germany.png +0 -0
  100. package/public/Docsphere/flags/ghana.png +0 -0
  101. package/public/Docsphere/flags/gibraltar.png +0 -0
  102. package/public/Docsphere/flags/greece.png +0 -0
  103. package/public/Docsphere/flags/greenland.png +0 -0
  104. package/public/Docsphere/flags/grenada.png +0 -0
  105. package/public/Docsphere/flags/guam.png +0 -0
  106. package/public/Docsphere/flags/guatemala.png +0 -0
  107. package/public/Docsphere/flags/guernsey.png +0 -0
  108. package/public/Docsphere/flags/guinea-bissau.png +0 -0
  109. package/public/Docsphere/flags/guinea.png +0 -0
  110. package/public/Docsphere/flags/guyana.png +0 -0
  111. package/public/Docsphere/flags/haiti.png +0 -0
  112. package/public/Docsphere/flags/hawaii.png +0 -0
  113. package/public/Docsphere/flags/honduras.png +0 -0
  114. package/public/Docsphere/flags/hong-kong.png +0 -0
  115. package/public/Docsphere/flags/hungary.png +0 -0
  116. package/public/Docsphere/flags/iceland.png +0 -0
  117. package/public/Docsphere/flags/india.png +0 -0
  118. package/public/Docsphere/flags/indonesia.png +0 -0
  119. package/public/Docsphere/flags/iran.png +0 -0
  120. package/public/Docsphere/flags/iraq.png +0 -0
  121. package/public/Docsphere/flags/ireland.png +0 -0
  122. package/public/Docsphere/flags/isle-of-man.png +0 -0
  123. package/public/Docsphere/flags/israel.png +0 -0
  124. package/public/Docsphere/flags/italy.png +0 -0
  125. package/public/Docsphere/flags/ivory-coast.png +0 -0
  126. package/public/Docsphere/flags/jamaica.png +0 -0
  127. package/public/Docsphere/flags/japan.png +0 -0
  128. package/public/Docsphere/flags/jersey.png +0 -0
  129. package/public/Docsphere/flags/jordan.png +0 -0
  130. package/public/Docsphere/flags/kazakhstan.png +0 -0
  131. package/public/Docsphere/flags/kenya.png +0 -0
  132. package/public/Docsphere/flags/kiribati.png +0 -0
  133. package/public/Docsphere/flags/kosovo.png +0 -0
  134. package/public/Docsphere/flags/kuwait.png +0 -0
  135. package/public/Docsphere/flags/kyrgyzstan.png +0 -0
  136. package/public/Docsphere/flags/laos.png +0 -0
  137. package/public/Docsphere/flags/latvia.png +0 -0
  138. package/public/Docsphere/flags/lebanon.png +0 -0
  139. package/public/Docsphere/flags/lesotho.png +0 -0
  140. package/public/Docsphere/flags/liberia.png +0 -0
  141. package/public/Docsphere/flags/libya.png +0 -0
  142. package/public/Docsphere/flags/liechtenstein.png +0 -0
  143. package/public/Docsphere/flags/lithuania.png +0 -0
  144. package/public/Docsphere/flags/luxembourg.png +0 -0
  145. package/public/Docsphere/flags/macao.png +0 -0
  146. package/public/Docsphere/flags/madagascar.png +0 -0
  147. package/public/Docsphere/flags/madeira.png +0 -0
  148. package/public/Docsphere/flags/malawi.png +0 -0
  149. package/public/Docsphere/flags/malaysia.png +0 -0
  150. package/public/Docsphere/flags/maldives.png +0 -0
  151. package/public/Docsphere/flags/mali.png +0 -0
  152. package/public/Docsphere/flags/malta.png +0 -0
  153. package/public/Docsphere/flags/marshall-island.png +0 -0
  154. package/public/Docsphere/flags/martinique.png +0 -0
  155. package/public/Docsphere/flags/mauritania.png +0 -0
  156. package/public/Docsphere/flags/mauritius.png +0 -0
  157. package/public/Docsphere/flags/melilla.png +0 -0
  158. package/public/Docsphere/flags/mexico.png +0 -0
  159. package/public/Docsphere/flags/micronesia.png +0 -0
  160. package/public/Docsphere/flags/moldova.png +0 -0
  161. package/public/Docsphere/flags/monaco.png +0 -0
  162. package/public/Docsphere/flags/mongolia.png +0 -0
  163. package/public/Docsphere/flags/montenegro.png +0 -0
  164. package/public/Docsphere/flags/montserrat.png +0 -0
  165. package/public/Docsphere/flags/morocco.png +0 -0
  166. package/public/Docsphere/flags/mozambique.png +0 -0
  167. package/public/Docsphere/flags/myanmar.png +0 -0
  168. package/public/Docsphere/flags/namibia.png +0 -0
  169. package/public/Docsphere/flags/nato.png +0 -0
  170. package/public/Docsphere/flags/nauru.png +0 -0
  171. package/public/Docsphere/flags/nepal.png +0 -0
  172. package/public/Docsphere/flags/netherlands.png +0 -0
  173. package/public/Docsphere/flags/new-zealand.png +0 -0
  174. package/public/Docsphere/flags/nicaragua.png +0 -0
  175. package/public/Docsphere/flags/niger.png +0 -0
  176. package/public/Docsphere/flags/nigeria.png +0 -0
  177. package/public/Docsphere/flags/niue.png +0 -0
  178. package/public/Docsphere/flags/norfolk-island.png +0 -0
  179. package/public/Docsphere/flags/north-korea.png +0 -0
  180. package/public/Docsphere/flags/northen-cyprus.png +0 -0
  181. package/public/Docsphere/flags/northern-marianas-islands.png +0 -0
  182. package/public/Docsphere/flags/norway.png +0 -0
  183. package/public/Docsphere/flags/oman.png +0 -0
  184. package/public/Docsphere/flags/orkney-islands.png +0 -0
  185. package/public/Docsphere/flags/ossetia.png +0 -0
  186. package/public/Docsphere/flags/pakistan.png +0 -0
  187. package/public/Docsphere/flags/palau.png +0 -0
  188. package/public/Docsphere/flags/palestine.png +0 -0
  189. package/public/Docsphere/flags/panama.png +0 -0
  190. package/public/Docsphere/flags/papua-new-guinea.png +0 -0
  191. package/public/Docsphere/flags/paraguay.png +0 -0
  192. package/public/Docsphere/flags/peru.png +0 -0
  193. package/public/Docsphere/flags/philippines.png +0 -0
  194. package/public/Docsphere/flags/pitcairn-islands.png +0 -0
  195. package/public/Docsphere/flags/portugal.png +0 -0
  196. package/public/Docsphere/flags/puerto-rico.png +0 -0
  197. package/public/Docsphere/flags/qatar.png +0 -0
  198. package/public/Docsphere/flags/rapa-nui.png +0 -0
  199. package/public/Docsphere/flags/republic-of-macedonia.png +0 -0
  200. package/public/Docsphere/flags/republic-of-poland.png +0 -0
  201. package/public/Docsphere/flags/republic-of-the-congo.png +0 -0
  202. package/public/Docsphere/flags/romania.png +0 -0
  203. package/public/Docsphere/flags/russia.png +0 -0
  204. package/public/Docsphere/flags/rwanda.png +0 -0
  205. package/public/Docsphere/flags/saba-island.png +0 -0
  206. package/public/Docsphere/flags/saint-kitts-and-nevis.png +0 -0
  207. package/public/Docsphere/flags/salvador.png +0 -0
  208. package/public/Docsphere/flags/samoa.png +0 -0
  209. package/public/Docsphere/flags/san-marino.png +0 -0
  210. package/public/Docsphere/flags/sao-tome-and-principe.png +0 -0
  211. package/public/Docsphere/flags/sardinia.png +0 -0
  212. package/public/Docsphere/flags/saudi-arabia.png +0 -0
  213. package/public/Docsphere/flags/scotland.png +0 -0
  214. package/public/Docsphere/flags/senegal.png +0 -0
  215. package/public/Docsphere/flags/serbia.png +0 -0
  216. package/public/Docsphere/flags/seychelles.png +0 -0
  217. package/public/Docsphere/flags/sierra-leone.png +0 -0
  218. package/public/Docsphere/flags/singapore.png +0 -0
  219. package/public/Docsphere/flags/sint-eustatius.png +0 -0
  220. package/public/Docsphere/flags/sint-maarten.png +0 -0
  221. package/public/Docsphere/flags/slovakia.png +0 -0
  222. package/public/Docsphere/flags/slovenia.png +0 -0
  223. package/public/Docsphere/flags/solomon-islands.png +0 -0
  224. package/public/Docsphere/flags/somalia.png +0 -0
  225. package/public/Docsphere/flags/somaliland.png +0 -0
  226. package/public/Docsphere/flags/south-africa.png +0 -0
  227. package/public/Docsphere/flags/south-korea.png +0 -0
  228. package/public/Docsphere/flags/south-sudan.png +0 -0
  229. package/public/Docsphere/flags/spain.png +0 -0
  230. package/public/Docsphere/flags/sri-lanka.png +0 -0
  231. package/public/Docsphere/flags/st-barts.png +0 -0
  232. package/public/Docsphere/flags/st-lucia.png +0 -0
  233. package/public/Docsphere/flags/st-vincent-and-the-grenadines.png +0 -0
  234. package/public/Docsphere/flags/sudan.png +0 -0
  235. package/public/Docsphere/flags/suriname.png +0 -0
  236. package/public/Docsphere/flags/swaziland.png +0 -0
  237. package/public/Docsphere/flags/sweden.png +0 -0
  238. package/public/Docsphere/flags/switzerland.png +0 -0
  239. package/public/Docsphere/flags/syria.png +0 -0
  240. package/public/Docsphere/flags/taiwan.png +0 -0
  241. package/public/Docsphere/flags/tajikistan.png +0 -0
  242. package/public/Docsphere/flags/tanzania.png +0 -0
  243. package/public/Docsphere/flags/thailand.png +0 -0
  244. package/public/Docsphere/flags/tibet.png +0 -0
  245. package/public/Docsphere/flags/togo.png +0 -0
  246. package/public/Docsphere/flags/tokelau.png +0 -0
  247. package/public/Docsphere/flags/tonga.png +0 -0
  248. package/public/Docsphere/flags/transnistria.png +0 -0
  249. package/public/Docsphere/flags/trinidad-and-tobago.png +0 -0
  250. package/public/Docsphere/flags/tunisia.png +0 -0
  251. package/public/Docsphere/flags/turkey.png +0 -0
  252. package/public/Docsphere/flags/turkmenistan.png +0 -0
  253. package/public/Docsphere/flags/turks-and-caicos.png +0 -0
  254. package/public/Docsphere/flags/tuvalu.png +0 -0
  255. package/public/Docsphere/flags/uganda.png +0 -0
  256. package/public/Docsphere/flags/ukraine.png +0 -0
  257. package/public/Docsphere/flags/united-arab-emirates.png +0 -0
  258. package/public/Docsphere/flags/united-kingdom.png +0 -0
  259. package/public/Docsphere/flags/united-nations.png +0 -0
  260. package/public/Docsphere/flags/united-states-of-america.png +0 -0
  261. package/public/Docsphere/flags/uruguay.png +0 -0
  262. package/public/Docsphere/flags/uzbekistn.png +0 -0
  263. package/public/Docsphere/flags/vanuatu.png +0 -0
  264. package/public/Docsphere/flags/vatican-city.png +0 -0
  265. package/public/Docsphere/flags/venezuela.png +0 -0
  266. package/public/Docsphere/flags/vietnam.png +0 -0
  267. package/public/Docsphere/flags/virgin-islands.png +0 -0
  268. package/public/Docsphere/flags/wales.png +0 -0
  269. package/public/Docsphere/flags/western-sahara.png +0 -0
  270. package/public/Docsphere/flags/yemen.png +0 -0
  271. package/public/Docsphere/flags/zambia.png +0 -0
  272. package/public/Docsphere/flags/zimbabwe.png +0 -0
  273. package/public/favicon.ico +0 -0
  274. package/public/images/flags/brazil.png +0 -0
  275. package/public/images/flags/united-states-of-america.png +0 -0
  276. package/public/images/logo.png +0 -0
  277. package/public/logo.png +0 -0
  278. package/public/robots.txt +2 -0
  279. package/public/sad.svg +1 -0
  280. package/quasar.config.js +117 -0
  281. package/src/App.vue +235 -0
  282. package/src/boot/QZoom.js +7 -0
  283. package/src/boot/axios.js +11 -0
  284. package/src/boot/i18n.js +15 -0
  285. package/src/boot/store.js +26 -0
  286. package/src/components/DH1.vue +42 -0
  287. package/src/components/DH2.vue +36 -0
  288. package/src/components/DH3.vue +36 -0
  289. package/src/components/DH4.vue +26 -0
  290. package/src/components/DH5.vue +26 -0
  291. package/src/components/DH6.vue +26 -0
  292. package/src/components/DMenu.vue +446 -0
  293. package/src/components/DMenuItem.vue +127 -0
  294. package/src/components/DPage.vue +222 -0
  295. package/src/components/DPageAnchor.vue +123 -0
  296. package/src/components/DPageBlockquote.vue +19 -0
  297. package/src/components/DPageMeta.vue +203 -0
  298. package/src/components/DPageSection.vue +243 -0
  299. package/src/components/DPageSourceCode.vue +376 -0
  300. package/src/components/DSubpage.vue +33 -0
  301. package/src/components/QZoom.js +278 -0
  302. package/src/components/QZoom.styl +43 -0
  303. package/src/composables/useNavigator.js +113 -0
  304. package/src/css/app.sass +279 -0
  305. package/src/css/quasar.variables.scss +24 -0
  306. package/src/i18n/index.js +126 -0
  307. package/src/i18n/languages/en-US.hjson +98 -0
  308. package/src/i18n/languages/pt-BR.hjson +97 -0
  309. package/src/i18n/tags.hjson +44 -0
  310. package/src/index.js +99 -0
  311. package/src/layouts/DefaultLayout.vue +95 -0
  312. package/src/layouts/SystemLayout.vue +4 -0
  313. package/src/pages/@/404Page.vue +15 -0
  314. package/src/pages/@/BootPage.vue +106 -0
  315. package/src/pages/boot.js +10 -0
  316. package/src/pages/guide/configuration.overview.en-US.md +107 -0
  317. package/src/pages/guide/configuration.overview.pt-BR.md +107 -0
  318. package/src/pages/guide/deployment.overview.en-US.md +49 -0
  319. package/src/pages/guide/deployment.overview.pt-BR.md +49 -0
  320. package/src/pages/guide/getting-started.overview.en-US.md +59 -0
  321. package/src/pages/guide/getting-started.overview.pt-BR.md +59 -0
  322. package/src/pages/guide/i18n-and-markdown.overview.en-US.md +77 -0
  323. package/src/pages/guide/i18n-and-markdown.overview.pt-BR.md +77 -0
  324. package/src/pages/guide/pages-and-routing.overview.en-US.md +85 -0
  325. package/src/pages/guide/pages-and-routing.overview.pt-BR.md +85 -0
  326. package/src/pages/guide/plugins.overview.en-US.md +3 -0
  327. package/src/pages/guide/plugins.overview.pt-BR.md +3 -0
  328. package/src/pages/guide/theming.overview.en-US.md +55 -0
  329. package/src/pages/guide/theming.overview.pt-BR.md +55 -0
  330. package/src/pages/index.js +385 -0
  331. package/src/pages/manual/components/d-headings.overview.en-US.md +54 -0
  332. package/src/pages/manual/components/d-headings.overview.pt-BR.md +54 -0
  333. package/src/pages/manual/components/d-headings.showcase.en-US.md +32 -0
  334. package/src/pages/manual/components/d-headings.showcase.pt-BR.md +32 -0
  335. package/src/pages/manual/components/d-menu.overview.en-US.md +59 -0
  336. package/src/pages/manual/components/d-menu.overview.pt-BR.md +59 -0
  337. package/src/pages/manual/components/d-page-anchor.overview.en-US.md +49 -0
  338. package/src/pages/manual/components/d-page-anchor.overview.pt-BR.md +49 -0
  339. package/src/pages/manual/components/d-page-blockquote.overview.en-US.md +44 -0
  340. package/src/pages/manual/components/d-page-blockquote.overview.pt-BR.md +44 -0
  341. package/src/pages/manual/components/d-page-blockquote.showcase.en-US.md +27 -0
  342. package/src/pages/manual/components/d-page-blockquote.showcase.pt-BR.md +27 -0
  343. package/src/pages/manual/components/d-page-meta.overview.en-US.md +51 -0
  344. package/src/pages/manual/components/d-page-meta.overview.pt-BR.md +51 -0
  345. package/src/pages/manual/components/d-page-section.overview.en-US.md +55 -0
  346. package/src/pages/manual/components/d-page-section.overview.pt-BR.md +55 -0
  347. package/src/pages/manual/components/d-page-section.showcase.en-US.md +43 -0
  348. package/src/pages/manual/components/d-page-section.showcase.pt-BR.md +43 -0
  349. package/src/pages/manual/components/d-page-source-code.overview.en-US.md +54 -0
  350. package/src/pages/manual/components/d-page-source-code.overview.pt-BR.md +54 -0
  351. package/src/pages/manual/components/d-page-source-code.showcase.en-US.md +50 -0
  352. package/src/pages/manual/components/d-page-source-code.showcase.pt-BR.md +50 -0
  353. package/src/pages/manual/components/d-page.overview.en-US.md +56 -0
  354. package/src/pages/manual/components/d-page.overview.pt-BR.md +56 -0
  355. package/src/pages/manual/components/d-page.showcase.en-US.md +35 -0
  356. package/src/pages/manual/components/d-page.showcase.pt-BR.md +35 -0
  357. package/src/pages/manual/components/d-subpage.overview.en-US.md +56 -0
  358. package/src/pages/manual/components/d-subpage.overview.pt-BR.md +56 -0
  359. package/src/pages/manual/components/q-zoom.overview.en-US.md +71 -0
  360. package/src/pages/manual/components/q-zoom.overview.pt-BR.md +71 -0
  361. package/src/pages/manual/composables/use-navigator.overview.en-US.md +89 -0
  362. package/src/pages/manual/composables/use-navigator.overview.pt-BR.md +89 -0
  363. package/src/pages/manual/store/modules.overview.en-US.md +96 -0
  364. package/src/pages/manual/store/modules.overview.pt-BR.md +96 -0
  365. package/src/router/index.js +30 -0
  366. package/src/router/routes.js +93 -0
  367. package/src/store/App.js +43 -0
  368. package/src/store/I18n.js +22 -0
  369. package/src/store/Layout.js +124 -0
  370. package/src/store/Page.js +103 -0
  371. package/src/store/Settings.js +18 -0
  372. package/src/store/index.js +24 -0
@@ -0,0 +1,49 @@
1
+ ## Overview
2
+
3
+ `DPageAnchor` renders the **Table of Contents (ToC) tree** in the right-side drawer. It displays a navigable tree of all headings on the current page, allowing users to jump directly to any section.
4
+
5
+ ## How It Works
6
+
7
+ 1. As each heading component (DH1–DH6) mounts, it registers itself in the `page/nodes` store via `useNavigator`
8
+ 2. `DPageAnchor` reads the `page/nodes` getter to render the tree
9
+ 3. When the user scrolls, the scroll observer in `DPage` updates the selected anchor
10
+ 4. Clicking a tree node navigates to the corresponding heading
11
+
12
+ ## Store Integration
13
+
14
+ DPageAnchor interacts with these store state/getters:
15
+
16
+ - `page/nodes` — The tree structure of headings
17
+ - `page/nodesExpanded` — Which tree nodes are expanded
18
+ - `page/anchor` — Currently selected heading ID
19
+ - `layout/metaToggle` — Controls drawer visibility
20
+
21
+ ## Tree Rendering
22
+
23
+ Uses Quasar's `QTree` component with `default-expand-all`. The node key is the heading's numeric `id`, and the label is the heading text.
24
+
25
+ The root node (from DH1) shows the page title from i18n when no label is set:
26
+
27
+ ```html
28
+ <template v-slot:default-header="props">
29
+ <b v-if="props.node.label">
30
+ &#123;&#123; props.node.label &#125;&#125;
31
+ </b>
32
+ <b v-else>
33
+ &#123;&#123; $t('_.' + $store.state.i18n.base + '._') &#125;&#125;
34
+ </b>
35
+ </template>
36
+ ```
37
+
38
+ ## Scroll Synchronization
39
+
40
+ When the user scrolls the page content, the `DPage` scroll observer calls `useNavigator().scrolling()`, which iterates over registered anchors and selects the one closest to the current scroll position. This keeps the ToC tree in sync with the visible content.
41
+
42
+ ## Lifecycle
43
+
44
+ - **onMounted** — Enables meta toggle, starts scroll tracking after 1s delay, anchors to URL hash if present
45
+ - **onBeforeUnmount** — Resets anchors, nodes, and disables scroll tracking
46
+
47
+ ## Styling
48
+
49
+ The tree uses Quasar's default tree styling with custom colors for light/dark modes. Selected nodes get the primary color background. Heading text is displayed in bold at 15px.
@@ -0,0 +1,49 @@
1
+ ## Visão Geral
2
+
3
+ `DPageAnchor` renderiza a **árvore de Índice (ToC)** no drawer lateral direito. Exibe uma árvore navegável de todos os títulos na página atual, permitindo que os usuários saltem diretamente para qualquer seção.
4
+
5
+ ## Como Funciona
6
+
7
+ 1. Conforme cada componente de título (DH1–DH6) é montado, ele se registra no store `page/nodes` via `useNavigator`
8
+ 2. `DPageAnchor` lê o getter `page/nodes` para renderizar a árvore
9
+ 3. Quando o usuário faz scroll, o observador de scroll no `DPage` atualiza a âncora selecionada
10
+ 4. Clicar em um nó da árvore navega até o título correspondente
11
+
12
+ ## Integração com Store
13
+
14
+ DPageAnchor interage com estes estados/getters da store:
15
+
16
+ - `page/nodes` — A estrutura em árvore dos títulos
17
+ - `page/nodesExpanded` — Quais nós da árvore estão expandidos
18
+ - `page/anchor` — ID do título atualmente selecionado
19
+ - `layout/metaToggle` — Controla visibilidade do drawer
20
+
21
+ ## Renderização da Árvore
22
+
23
+ Usa o componente `QTree` do Quasar com `default-expand-all`. A chave do nó é o `id` numérico do título, e o label é o texto do título.
24
+
25
+ O nó raiz (do DH1) mostra o título da página do i18n quando nenhum label é definido:
26
+
27
+ ```html
28
+ <template v-slot:default-header="props">
29
+ <b v-if="props.node.label">
30
+ &#123;&#123; props.node.label &#125;&#125;
31
+ </b>
32
+ <b v-else>
33
+ &#123;&#123; $t('_.' + $store.state.i18n.base + '._') &#125;&#125;
34
+ </b>
35
+ </template>
36
+ ```
37
+
38
+ ## Sincronização de Scroll
39
+
40
+ Quando o usuário faz scroll no conteúdo da página, o observador de scroll do `DPage` chama `useNavigator().scrolling()`, que itera sobre as âncoras registradas e seleciona a mais próxima da posição de scroll atual. Isso mantém a árvore de ToC sincronizada com o conteúdo visível.
41
+
42
+ ## Ciclo de Vida
43
+
44
+ - **onMounted** — Habilita toggle de meta, inicia rastreamento de scroll após 1s de delay, ancora no hash da URL se presente
45
+ - **onBeforeUnmount** — Reseta âncoras, nós e desabilita rastreamento de scroll
46
+
47
+ ## Estilização
48
+
49
+ A árvore usa a estilização padrão de árvore do Quasar com cores customizadas para modos claro/escuro. Nós selecionados recebem fundo com a cor primária. O texto dos títulos é exibido em negrito a 15px.
@@ -0,0 +1,44 @@
1
+ ## Overview
2
+
3
+ `DPageBlockquote` renders **styled blockquotes** with semantic categorization. It supports three message types: important, warning, and note — each with a distinct visual label.
4
+
5
+ ## Props
6
+
7
+ | Prop | Type | Default | Description |
8
+ |------|------|---------|-------------|
9
+ | `message` | `String` | `''` | Type of blockquote: `'important'`, `'warning'`, or `'note'` |
10
+
11
+ ## Slot
12
+
13
+ The default slot receives the blockquote content.
14
+
15
+ ## Message Types
16
+
17
+ | Type | Label | Purpose |
18
+ |------|-------|---------|
19
+ | `important` | **Important** | Critical information the reader must know |
20
+ | `warning` | **Warning** | Potential pitfalls or breaking changes |
21
+ | `note` | **Note** | Additional context or tips |
22
+ | (empty) | *(none)* | Generic blockquote with no label |
23
+
24
+ ## Usage
25
+
26
+ DPageBlockquote is not currently auto-rendered by DPageSection from Markdown blockquotes. To use it, you would include it directly in a custom component:
27
+
28
+ ```html
29
+ <d-page-blockquote message="important">
30
+ <p>This is critically important information.</p>
31
+ </d-page-blockquote>
32
+
33
+ <d-page-blockquote message="warning">
34
+ <p>Be careful with this operation!</p>
35
+ </d-page-blockquote>
36
+
37
+ <d-page-blockquote message="note">
38
+ <p>This is an optional tip for advanced users.</p>
39
+ </d-page-blockquote>
40
+ ```
41
+
42
+ ## Styling
43
+
44
+ The component renders a standard `<blockquote>` element. The `<strong>` label is conditionally shown based on the `message` prop. Customize the appearance in your global `app.sass` or by targeting `blockquote` in your CSS.
@@ -0,0 +1,44 @@
1
+ ## Visão Geral
2
+
3
+ `DPageBlockquote` renderiza **blockquotes estilizados** com categorização semântica. Suporta três tipos de mensagem: important, warning e note — cada um com um label visual distinto.
4
+
5
+ ## Props
6
+
7
+ | Prop | Tipo | Padrão | Descrição |
8
+ |------|------|--------|-----------|
9
+ | `message` | `String` | `''` | Tipo de blockquote: `'important'`, `'warning'` ou `'note'` |
10
+
11
+ ## Slot
12
+
13
+ O slot padrão recebe o conteúdo do blockquote.
14
+
15
+ ## Tipos de Mensagem
16
+
17
+ | Tipo | Label | Propósito |
18
+ |------|-------|-----------|
19
+ | `important` | **Important** | Informação crítica que o leitor precisa saber |
20
+ | `warning` | **Warning** | Armadilhas potenciais ou breaking changes |
21
+ | `note` | **Note** | Contexto adicional ou dicas |
22
+ | (vazio) | *(nenhum)* | Blockquote genérico sem label |
23
+
24
+ ## Uso
25
+
26
+ DPageBlockquote não é atualmente auto-renderizado pelo DPageSection a partir de blockquotes Markdown. Para usá-lo, inclua-o diretamente em um componente customizado:
27
+
28
+ ```html
29
+ <d-page-blockquote message="important">
30
+ <p>Esta é uma informação criticamente importante.</p>
31
+ </d-page-blockquote>
32
+
33
+ <d-page-blockquote message="warning">
34
+ <p>Tenha cuidado com esta operação!</p>
35
+ </d-page-blockquote>
36
+
37
+ <d-page-blockquote message="note">
38
+ <p>Esta é uma dica opcional para usuários avançados.</p>
39
+ </d-page-blockquote>
40
+ ```
41
+
42
+ ## Estilização
43
+
44
+ O componente renderiza um elemento `<blockquote>` padrão. O label `<strong>` é exibido condicionalmente baseado na prop `message`. Customize a aparência no seu `app.sass` global ou direcionando `blockquote` no seu CSS.
@@ -0,0 +1,27 @@
1
+ ## Showcase
2
+
3
+ Here are the three blockquote types rendered:
4
+
5
+ ## Important
6
+
7
+ Used for critical information:
8
+
9
+ > **Important**: This setting cannot be reverted once applied. Make sure you have a backup before proceeding.
10
+
11
+ ## Warning
12
+
13
+ Used for potential issues:
14
+
15
+ > **Warning**: This API is deprecated and will be removed in the next major version. Migrate to the new endpoint as soon as possible.
16
+
17
+ ## Note
18
+
19
+ Used for tips and additional context:
20
+
21
+ > **Note**: You can override the default configuration by creating a `docsector.config.js` file in your project root. This is optional — sensible defaults are provided.
22
+
23
+ ## Generic
24
+
25
+ A blockquote without a message type:
26
+
27
+ > This is a standard blockquote with no special label or styling. It renders as a plain HTML blockquote element.
@@ -0,0 +1,27 @@
1
+ ## Demonstração
2
+
3
+ Aqui estão os três tipos de blockquote renderizados:
4
+
5
+ ## Important
6
+
7
+ Usado para informações críticas:
8
+
9
+ > **Important**: Esta configuração não pode ser revertida uma vez aplicada. Certifique-se de ter um backup antes de prosseguir.
10
+
11
+ ## Warning
12
+
13
+ Usado para problemas potenciais:
14
+
15
+ > **Warning**: Esta API está depreciada e será removida na próxima versão major. Migre para o novo endpoint o mais rápido possível.
16
+
17
+ ## Note
18
+
19
+ Usado para dicas e contexto adicional:
20
+
21
+ > **Note**: Você pode sobrescrever a configuração padrão criando um arquivo `docsector.config.js` na raiz do seu projeto. Isso é opcional — valores padrão sensatos são fornecidos.
22
+
23
+ ## Genérico
24
+
25
+ Um blockquote sem tipo de mensagem:
26
+
27
+ > Este é um blockquote padrão sem label ou estilização especial. Ele renderiza como um elemento blockquote HTML simples.
@@ -0,0 +1,51 @@
1
+ ## Overview
2
+
3
+ `DPageMeta` is the **page footer** component that displays GitHub integration, translation progress, and prev/next navigation links.
4
+
5
+ ## Sections
6
+
7
+ ### Edit on GitHub
8
+
9
+ A button that links to the Markdown source file on GitHub. The URL is composed of:
10
+
11
+ - `docsector.config.js` → `github.editBaseUrl`
12
+ - Current route path (transformed to match the file naming convention)
13
+ - Current locale
14
+
15
+ The button label changes based on page status:
16
+
17
+ | Status | Label | Color |
18
+ |--------|-------|-------|
19
+ | `done` | "Edit this page" | White |
20
+ | `draft` | "Complete this page" | Warning (orange) |
21
+ | `empty` | "Start this page" | Red |
22
+
23
+ ### Translation Progress
24
+
25
+ Two chips are displayed:
26
+
27
+ - **Language progress** — Shows the translation completion percentage for the current locale based on `_sections.done / _sections.count` metadata
28
+ - **Available translations** — Shows how many locales have translations compared to total available locales
29
+
30
+ ### Previous/Next Navigation
31
+
32
+ Links to the previous and next pages in the route sequence. The page title is loaded from i18n. Links are only shown when adjacent pages exist.
33
+
34
+ ## Store Integration
35
+
36
+ - `page/base` — Current page for finding prev/next routes
37
+ - `i18n/absolute` — Path for loading translation metadata
38
+
39
+ ## Configuration
40
+
41
+ The "Edit on GitHub" URL is built from `docsector.config.js`:
42
+
43
+ ```javascript
44
+ github: &#123;
45
+ editBaseUrl: 'https://github.com/org/docs/edit/main/src/pages'
46
+ &#125;
47
+ ```
48
+
49
+ ## Disabling
50
+
51
+ DPageMeta is automatically excluded when `DPage` has `disableNav` prop set to `true`.
@@ -0,0 +1,51 @@
1
+ ## Visão Geral
2
+
3
+ `DPageMeta` é o componente de **rodapé de página** que exibe integração com GitHub, progresso de tradução e links de navegação anterior/próximo.
4
+
5
+ ## Seções
6
+
7
+ ### Editar no GitHub
8
+
9
+ Um botão que linka para o arquivo fonte Markdown no GitHub. A URL é composta de:
10
+
11
+ - `docsector.config.js` → `github.editBaseUrl`
12
+ - Caminho da rota atual (transformado para corresponder à convenção de nomes de arquivo)
13
+ - Locale atual
14
+
15
+ O label do botão muda baseado no status da página:
16
+
17
+ | Status | Label | Cor |
18
+ |--------|-------|-----|
19
+ | `done` | "Edite esta página" | Branco |
20
+ | `draft` | "Complete esta página" | Warning (laranja) |
21
+ | `empty` | "Comece esta página" | Vermelho |
22
+
23
+ ### Progresso de Tradução
24
+
25
+ Dois chips são exibidos:
26
+
27
+ - **Progresso do idioma** — Mostra a porcentagem de conclusão da tradução para o locale atual baseado no metadata `_sections.done / _sections.count`
28
+ - **Traduções disponíveis** — Mostra quantos locales têm traduções comparado ao total de locales disponíveis
29
+
30
+ ### Navegação Anterior/Próximo
31
+
32
+ Links para as páginas anterior e próxima na sequência de rotas. O título da página é carregado do i18n. Links são mostrados apenas quando páginas adjacentes existem.
33
+
34
+ ## Integração com Store
35
+
36
+ - `page/base` — Página atual para encontrar rotas prev/next
37
+ - `i18n/absolute` — Caminho para carregar metadata de tradução
38
+
39
+ ## Configuração
40
+
41
+ A URL "Editar no GitHub" é construída a partir do `docsector.config.js`:
42
+
43
+ ```javascript
44
+ github: &#123;
45
+ editBaseUrl: 'https://github.com/org/docs/edit/main/src/pages'
46
+ &#125;
47
+ ```
48
+
49
+ ## Desabilitando
50
+
51
+ DPageMeta é automaticamente excluído quando `DPage` tem a prop `disableNav` definida como `true`.
@@ -0,0 +1,55 @@
1
+ ## Overview
2
+
3
+ `DPageSection` is the **Markdown rendering engine** at the heart of Docsector Reader. It tokenizes Markdown source from the current i18n path and renders each token as the appropriate Vue component.
4
+
5
+ ## Props
6
+
7
+ | Prop | Type | Required | Description |
8
+ |------|------|----------|-------------|
9
+ | `id` | `Number` | Yes | Base ID used for anchor generation |
10
+
11
+ ## How It Works
12
+
13
+ 1. Reads the Markdown source from the i18n store path `_.&#123;absolute&#125;.source`
14
+ 2. Parses it with **markdown-it** + **markdown-it-attrs**
15
+ 3. Tokenizes the parsed AST into a flat array of renderable tokens
16
+ 4. Each token is rendered as the corresponding Docsector component
17
+
18
+ ## Token Types and Rendering
19
+
20
+ | Markdown | Token Tag | Component |
21
+ |----------|-----------|-----------|
22
+ | `## Heading 2` | `h2` | `DH2` |
23
+ | `### Heading 3` | `h3` | `DH3` |
24
+ | `#### Heading 4` | `h4` | `DH4` |
25
+ | `##### Heading 5` | `h5` | `DH5` |
26
+ | `###### Heading 6` | `h6` | `DH6` |
27
+ | Paragraph text | `p` | `<p v-html>` |
28
+ | Unordered list | `ul` | `<ul v-html>` |
29
+ | Ordered list | `ol` | `<ol v-html>` |
30
+ | Table | `table` | `<table v-html>` |
31
+ | Fenced code block | `code` | `DPageSourceCode` |
32
+
33
+ ## Nesting Support
34
+
35
+ DPageSection handles one level of nesting for:
36
+
37
+ - Bullet lists (`ul > li`)
38
+ - Ordered lists (`ol > li`)
39
+ - Tables (`table > thead/tbody > tr > th/td`)
40
+
41
+ Nested content is accumulated into a single HTML string and rendered with `v-html`.
42
+
43
+ ## Custom Attributes
44
+
45
+ The `markdown-it-attrs` plugin uses `:` and `;` as delimiters. Currently, only the `filename` attribute is used:
46
+
47
+ ```
48
+ :filename="server.php";
49
+ ```
50
+
51
+ This attribute is extracted from fenced code blocks and passed to `DPageSourceCode` for display.
52
+
53
+ ## Anchor IDs
54
+
55
+ Each heading token receives an anchor ID calculated as `id + token.map[0]`, where `token.map[0]` is the source line number. This creates unique, deterministic anchors for the ToC tree.
@@ -0,0 +1,55 @@
1
+ ## Visão Geral
2
+
3
+ `DPageSection` é o **motor de renderização Markdown** no coração do Docsector Reader. Ele tokeniza o source Markdown a partir do caminho i18n atual e renderiza cada token como o componente Vue apropriado.
4
+
5
+ ## Props
6
+
7
+ | Prop | Tipo | Obrigatório | Descrição |
8
+ |------|------|-------------|-----------|
9
+ | `id` | `Number` | Sim | ID base usado para geração de âncoras |
10
+
11
+ ## Como Funciona
12
+
13
+ 1. Lê o source Markdown do caminho da store i18n `_.&#123;absolute&#125;.source`
14
+ 2. Faz o parse com **markdown-it** + **markdown-it-attrs**
15
+ 3. Tokeniza o AST parseado em um array flat de tokens renderizáveis
16
+ 4. Cada token é renderizado como o componente Docsector correspondente
17
+
18
+ ## Tipos de Token e Renderização
19
+
20
+ | Markdown | Tag do Token | Componente |
21
+ |----------|-------------|-----------|
22
+ | `## Título 2` | `h2` | `DH2` |
23
+ | `### Título 3` | `h3` | `DH3` |
24
+ | `#### Título 4` | `h4` | `DH4` |
25
+ | `##### Título 5` | `h5` | `DH5` |
26
+ | `###### Título 6` | `h6` | `DH6` |
27
+ | Texto de parágrafo | `p` | `<p v-html>` |
28
+ | Lista não ordenada | `ul` | `<ul v-html>` |
29
+ | Lista ordenada | `ol` | `<ol v-html>` |
30
+ | Tabela | `table` | `<table v-html>` |
31
+ | Bloco de código cercado | `code` | `DPageSourceCode` |
32
+
33
+ ## Suporte a Aninhamento
34
+
35
+ DPageSection lida com um nível de aninhamento para:
36
+
37
+ - Listas com marcadores (`ul > li`)
38
+ - Listas ordenadas (`ol > li`)
39
+ - Tabelas (`table > thead/tbody > tr > th/td`)
40
+
41
+ Conteúdo aninhado é acumulado em uma única string HTML e renderizado com `v-html`.
42
+
43
+ ## Atributos Customizados
44
+
45
+ O plugin `markdown-it-attrs` usa `:` e `;` como delimitadores. Atualmente, apenas o atributo `filename` é utilizado:
46
+
47
+ ```
48
+ :filename="servidor.php";
49
+ ```
50
+
51
+ Este atributo é extraído de blocos de código cercados e passado ao `DPageSourceCode` para exibição.
52
+
53
+ ## IDs de Âncora
54
+
55
+ Cada token de título recebe um ID de âncora calculado como `id + token.map[0]`, onde `token.map[0]` é o número da linha no source. Isso cria âncoras únicas e determinísticas para a árvore de ToC.
@@ -0,0 +1,43 @@
1
+ ## Showcase
2
+
3
+ Here is the Markdown source that renders the content you see on the Overview tab:
4
+
5
+ ```
6
+ ## My Section Title
7
+
8
+ Paragraph text with **bold** and *italic*.
9
+
10
+ - Item one
11
+ - Item two
12
+ - Item three
13
+
14
+ | Column A | Column B |
15
+ |----------|----------|
16
+ | Cell 1 | Cell 2 |
17
+
18
+ ### Sub-Section
19
+
20
+ More content here.
21
+ ```
22
+
23
+ Each element becomes a token in DPageSection's tokenizer. Headings create anchors in the right-side ToC tree.
24
+
25
+ ## Supported Markdown Elements
26
+
27
+ DPageSection renders the following Markdown elements:
28
+
29
+ - Headings (H2 through H6)
30
+ - Paragraphs with inline formatting (bold, italic, links, code)
31
+ - Unordered and ordered lists
32
+ - Tables with headers
33
+ - Fenced code blocks with syntax highlighting
34
+
35
+ ## Code Block with Filename
36
+
37
+ Use the `:filename;` attribute to display a filename header:
38
+
39
+ ```php
40
+ echo "Hello, Docsector!";
41
+ ```
42
+
43
+ The filename appears in the info bar above the code block along with the language identifier.
@@ -0,0 +1,43 @@
1
+ ## Demonstração
2
+
3
+ Aqui está o source Markdown que renderiza o conteúdo que você vê na aba Overview:
4
+
5
+ ```
6
+ ## Título da Seção
7
+
8
+ Texto de parágrafo com **negrito** e *itálico*.
9
+
10
+ - Item um
11
+ - Item dois
12
+ - Item três
13
+
14
+ | Coluna A | Coluna B |
15
+ |----------|----------|
16
+ | Célula 1 | Célula 2 |
17
+
18
+ ### Sub-Seção
19
+
20
+ Mais conteúdo aqui.
21
+ ```
22
+
23
+ Cada elemento se torna um token no tokenizador do DPageSection. Títulos criam âncoras na árvore de ToC à direita.
24
+
25
+ ## Elementos Markdown Suportados
26
+
27
+ DPageSection renderiza os seguintes elementos Markdown:
28
+
29
+ - Títulos (H2 até H6)
30
+ - Parágrafos com formatação inline (negrito, itálico, links, código)
31
+ - Listas ordenadas e não ordenadas
32
+ - Tabelas com cabeçalhos
33
+ - Blocos de código cercados com syntax highlighting
34
+
35
+ ## Bloco de Código com Nome de Arquivo
36
+
37
+ Use o atributo `:filename;` para exibir um cabeçalho com nome de arquivo:
38
+
39
+ ```php
40
+ echo "Olá, Docsector!";
41
+ ```
42
+
43
+ O nome do arquivo aparece na barra de info acima do bloco de código junto com o identificador de linguagem.
@@ -0,0 +1,54 @@
1
+ ## Overview
2
+
3
+ `DPageSourceCode` renders **fenced code blocks** with syntax highlighting, line numbers, copy-to-clipboard functionality, and optional filename display. It uses **Prism.js** for highlighting.
4
+
5
+ ## Props
6
+
7
+ | Prop | Type | Required | Default | Description |
8
+ |------|------|----------|---------|-------------|
9
+ | `index` | `Number` | Yes | — | Unique index for anchor generation |
10
+ | `language` | `String` | No | `'html'` | Programming language for highlighting |
11
+ | `text` | `String` | Yes | — | Raw code text to display |
12
+ | `filename` | `String` | No | `''` | Optional filename shown in the info bar |
13
+
14
+ ## Supported Languages
15
+
16
+ Out of the box, DPageSourceCode supports:
17
+
18
+ - **PHP** — via `prismjs/components/prism-php`
19
+ - **Bash** — via `prismjs/components/prism-bash`
20
+ - **HTML** — built-in Prism support
21
+ - **JavaScript** — built-in Prism support
22
+
23
+ To add more languages, import additional Prism components in `DPageSourceCode.vue`.
24
+
25
+ ## Features
26
+
27
+ ### Syntax Highlighting
28
+
29
+ Code is highlighted at render time using `Prism.highlight()`. The highlighted HTML is injected via `v-html` into a `<code>` element.
30
+
31
+ ### Line Numbers
32
+
33
+ When the code block has more than 1 line, line numbers are displayed on the left side. Each line number is a clickable anchor link.
34
+
35
+ ### Copy to Clipboard
36
+
37
+ A copy button appears in the info bar. When clicked, it selects the code content and copies it to the clipboard using `document.execCommand('copy')`.
38
+
39
+ ### Filename Display
40
+
41
+ When a `filename` prop is provided (extracted from the `:filename;` Markdown attribute), it appears in the info bar alongside the language identifier.
42
+
43
+ ## Dark/Light Theme
44
+
45
+ DPageSourceCode has completely separate color schemes for:
46
+
47
+ - **Light mode** (`.white` class) — Traditional light syntax colors
48
+ - **Dark mode** (`.dark` class) — Dark background with vibrant token colors
49
+
50
+ The color scheme is automatically selected based on `$q.dark.isActive`.
51
+
52
+ ## Anchor System
53
+
54
+ Each code block gets a letter-based anchor (A, B, C, ..., Z, AA, AB, ...) generated from its index. Line numbers within the code block are appended to this anchor (e.g., `#A1`, `#A2`).
@@ -0,0 +1,54 @@
1
+ ## Visão Geral
2
+
3
+ `DPageSourceCode` renderiza **blocos de código cercados** com syntax highlighting, números de linha, funcionalidade de copiar para clipboard e exibição opcional de nome de arquivo. Usa **Prism.js** para highlighting.
4
+
5
+ ## Props
6
+
7
+ | Prop | Tipo | Obrigatório | Padrão | Descrição |
8
+ |------|------|-------------|--------|-----------|
9
+ | `index` | `Number` | Sim | — | Índice único para geração de âncora |
10
+ | `language` | `String` | Não | `'html'` | Linguagem de programação para highlighting |
11
+ | `text` | `String` | Sim | — | Texto de código bruto para exibir |
12
+ | `filename` | `String` | Não | `''` | Nome de arquivo opcional exibido na barra de info |
13
+
14
+ ## Linguagens Suportadas
15
+
16
+ Por padrão, DPageSourceCode suporta:
17
+
18
+ - **PHP** — via `prismjs/components/prism-php`
19
+ - **Bash** — via `prismjs/components/prism-bash`
20
+ - **HTML** — suporte embutido do Prism
21
+ - **JavaScript** — suporte embutido do Prism
22
+
23
+ Para adicionar mais linguagens, importe componentes adicionais do Prism em `DPageSourceCode.vue`.
24
+
25
+ ## Funcionalidades
26
+
27
+ ### Syntax Highlighting
28
+
29
+ O código é destacado em tempo de renderização usando `Prism.highlight()`. O HTML destacado é injetado via `v-html` em um elemento `<code>`.
30
+
31
+ ### Números de Linha
32
+
33
+ Quando o bloco de código tem mais de 1 linha, números de linha são exibidos no lado esquerdo. Cada número de linha é um link de âncora clicável.
34
+
35
+ ### Copiar para Clipboard
36
+
37
+ Um botão de cópia aparece na barra de info. Quando clicado, seleciona o conteúdo do código e copia para o clipboard usando `document.execCommand('copy')`.
38
+
39
+ ### Exibição de Nome de Arquivo
40
+
41
+ Quando a prop `filename` é fornecida (extraída do atributo Markdown `:filename;`), ela aparece na barra de info junto com o identificador de linguagem.
42
+
43
+ ## Tema Escuro/Claro
44
+
45
+ DPageSourceCode tem esquemas de cores completamente separados para:
46
+
47
+ - **Modo claro** (classe `.white`) — Cores de sintaxe tradicionais claras
48
+ - **Modo escuro** (classe `.dark`) — Fundo escuro com cores vibrantes de token
49
+
50
+ O esquema de cores é selecionado automaticamente baseado em `$q.dark.isActive`.
51
+
52
+ ## Sistema de Âncoras
53
+
54
+ Cada bloco de código recebe uma âncora baseada em letras (A, B, C, ..., Z, AA, AB, ...) gerada a partir do seu índice. Números de linha dentro do bloco são adicionados a esta âncora (ex: `#A1`, `#A2`).