Scan timing: clone 2.79s · analysis 14.71s · 1.9 MB · GitHub preflight 413ms
https://github.com/tropical-algae/TABlog
· scanned 2026-06-05 18:26 UTC (4 days, 19 hours ago)
· 10 languages
132 raw signals (86 security + 46 graph) 39th percentile · Javascript · small (2-20K LoC) System graph score 80 (lower by 22)
Last scanned 4 days, 19 hours ago · v2 · 91 actionable findings from 2 signal sources. 18 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
47.8 | 0.25 | 11.95 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
69.7 | 0.15 | 10.46 |
practices_score |
77.0 | 0.15 | 11.55 |
code_quality |
80.0 | 0.10 | 8.00 |
| Overall | 1.00 | 57.0 |
All 199 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
fixMdAssetsRef |
software | healthy | public/scripts/mdProcessor.js:fixMdAssetsRef |
extractMdMetadata |
software | healthy | public/scripts/mdProcessor.js:extractMdMetadata |
removeMdMetadata |
software | healthy | public/scripts/mdProcessor.js:removeMdMetadata |
getFileHash |
software | healthy | public/scripts/fileProcessor.js:getFileHash |
getTextHash |
software | healthy | public/scripts/fileProcessor.js:getTextHash |
getNewParentDir |
software | healthy | public/scripts/fileProcessor.js:getNewParentDir |
getNewHashedPath |
software | healthy | public/scripts/fileProcessor.js:getNewHashedPath |
getFiles |
software | healthy | public/scripts/fileProcessor.js:getFiles |
sortFiles |
software | healthy | public/scripts/fileProcessor.js:sortFiles |
ensureDirExists |
software | healthy | public/scripts/fileProcessor.js:ensureDirExists |
clearDirectory |
software | healthy | public/scripts/fileProcessor.js:clearDirectory |
getFileRealName |
software | healthy | public/scripts/fileProcessor.js:getFileRealName |
makePostTitlesUnique |
software | healthy | public/scripts/fileProcessor.js:makePostTitlesUnique |
movePosts |
software | healthy | public/scripts/fileProcessor.js:movePosts |
moveConfig |
software | healthy | public/scripts/fileProcessor.js:moveConfig |
buildPostIndex |
software | healthy | public/scripts/fileProcessor.js:buildPostIndex |
updateStartupStatus |
software | healthy | src/main.js:updateStartupStatus |
startApp |
software | healthy | src/main.js:startApp |
Home |
software | healthy | src/router/index.js:Home |
Post |
software | healthy | src/router/index.js:Post |
Archive |
software | healthy | src/router/index.js:Archive |
Timeline |
software | healthy | src/router/index.js:Timeline |
NotFound |
software | healthy | src/router/index.js:NotFound |
PostNavigator |
software | healthy | src/router/index.js:PostNavigator |
load |
software | healthy | src/stores/home.js:load |
reset |
software | healthy | src/stores/home.js:reset |
throwIfAborted |
software | healthy | src/stores/post.js:throwIfAborted |
start |
software | healthy | src/stores/post.js:start |
load |
software | healthy | src/stores/config.js:load |
reset |
software | healthy | src/stores/config.js:reset |
load |
software | healthy | src/stores/map.js:load |
getValue |
software | healthy | src/stores/map.js:getValue |
reset |
software | healthy | src/stores/map.js:reset |
inlineKatex |
software | healthy | src/utils/mdKatex.js:inlineKatex |
blockKatex |
software | healthy | src/utils/mdKatex.js:blockKatex |
fetchOk |
software | healthy | src/utils/http.js:fetchOk |
normalizeKey |
software | healthy | src/utils/pageReady.js:normalizeKey |
createAbortError |
software | healthy | src/utils/pageReady.js:createAbortError |
ensureReadyEntry |
software | healthy | src/utils/pageReady.js:ensureReadyEntry |
abortReadyEntry |
software | healthy | src/utils/pageReady.js:abortReadyEntry |
beginPageReady |
software | healthy | src/utils/pageReady.js:beginPageReady |
registerPageReady |
software | healthy | src/utils/pageReady.js:registerPageReady |
consumePageReady |
software | healthy | src/utils/pageReady.js:consumePageReady |
cancelPageReady |
software | healthy | src/utils/pageReady.js:cancelPageReady |
initializeApp |
software | healthy | src/utils/startup.js:initializeApp |
preloadAllRouteChunks |
software | healthy | src/utils/startup.js:preloadAllRouteChunks |
preloadRouteChunksWhenIdle |
software | healthy | src/utils/startup.js:preloadRouteChunksWhenIdle |
preload |
software | healthy | src/utils/startup.js:preload |
normalizeKey |
software | healthy | src/utils/pageMotion.js:normalizeKey |
createDeferredEntry |
software | healthy | src/utils/pageMotion.js:createDeferredEntry |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
vite.config.js |
software | warning | vite.config.js |
jsconfig.json |
software | healthy | jsconfig.json |
README.md |
software | healthy | README.md |
.stylelintrc.json |
software | healthy | .stylelintrc.json |
package.json |
software | healthy | package.json |
index.html |
software | healthy | index.html |
Dockerfile |
software | healthy | Dockerfile |
package-lock.json |
software | healthy | package-lock.json |
.env.example |
software | healthy | .env.example |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
README_CN.md |
software | healthy | README_CN.md |
clean.sh |
software | healthy | scripts/clean.sh |
run.sh |
software | healthy | scripts/run.sh |
build.sh |
software | healthy | scripts/build.sh |
Organizing Markdown Files.md |
software | healthy | public/markdowns/example-fg9avj3i/Organizing Markdown Files… |
Advanced Markdown Showcase.md |
software | healthy | public/markdowns/example-63a25gat/Advanced Markdown Showcas… |
Mathematical Writing with LaTeX in Markdown.md |
software | healthy | public/markdowns/example-t9fr23j6/Mathematical Writing with… |
A Clean and Minimal Article Layout Building a Modern Markdo… |
software | healthy | public/markdowns/example-8d9wfrb0/A Clean and Minimal Artic… |
home.md |
software | healthy | public/config/home.md |
app.json |
software | healthy | public/config/app.json |
mdProcessor.js |
software | healthy | public/scripts/mdProcessor.js |
run.sh |
software | healthy | public/scripts/run.sh |
buildPost.js |
software | warning | public/scripts/buildPost.js |
fileProcessor.js |
software | healthy | public/scripts/fileProcessor.js |
local_build_cn.md |
software | healthy | .github/assets/local_build_cn.md |
local_build_en.md |
software | healthy | .github/assets/local_build_en.md |
release.yml |
software | healthy | .github/workflows/release.yml |
App.vue |
software | healthy | src/App.vue |
main.js |
software | healthy | src/main.js |
index.js |
software | healthy | src/router/index.js |
home.js |
software | healthy | src/stores/home.js |
post.js |
software | healthy | src/stores/post.js |
config.js |
software | healthy | src/stores/config.js |
map.js |
software | healthy | src/stores/map.js |
mdKatex.js |
software | healthy | src/utils/mdKatex.js |
http.js |
software | healthy | src/utils/http.js |
pageReady.js |
software | healthy | src/utils/pageReady.js |
startup.js |
software | healthy | src/utils/startup.js |
pageMotion.js |
software | healthy | src/utils/pageMotion.js |
theme.js |
software | healthy | src/utils/theme.js |
animation.js |
software | healthy | src/utils/animation.js |
sanitizeHtml.js |
software | healthy | src/utils/sanitizeHtml.js |
markdown.js |
software | healthy | src/utils/markdown.js |
TheNavbar.vue |
software | healthy | src/components/layout/TheNavbar.vue |
ProfileSidebar.vue |
software | healthy | src/components/layout/ProfileSidebar.vue |
TheFooter.vue |
software | healthy | src/components/layout/TheFooter.vue |
PostNavigator.vue |
software | healthy | src/components/post/PostNavigator.vue |
PostContent.vue |
software | healthy | src/components/post/PostContent.vue |
main.css |
software | healthy | src/assets/styles/main.css |
home.css |
software | healthy | src/assets/styles/base/home.css |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
scripts |
software | healthy | scripts |
public |
software | healthy | public |
markdowns |
software | healthy | public/markdowns |
example-fg9avj3i |
software | healthy | public/markdowns/example-fg9avj3i |
example-63a25gat |
software | healthy | public/markdowns/example-63a25gat |
example-t9fr23j6 |
software | healthy | public/markdowns/example-t9fr23j6 |
example-8d9wfrb0 |
software | healthy | public/markdowns/example-8d9wfrb0 |
config |
software | healthy | public/config |
scripts |
software | healthy | public/scripts |
.github |
software | healthy | .github |
assets |
software | healthy | .github/assets |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
router |
software | healthy | src/router |
stores |
software | healthy | src/stores |
utils |
software | healthy | src/utils |
components |
software | healthy | src/components |
layout |
software | healthy | src/components/layout |
post |
software | healthy | src/components/post |
assets |
software | healthy | src/assets |
styles |
software | healthy | src/assets/styles |
base |
software | healthy | src/assets/styles/base |
layouts |
software | healthy | src/layouts |
views |
software | healthy | src/views |
| Label | Layer | Status | Path |
|---|---|---|---|
/ |
frontend | healthy | src/router/index.js |
/archive |
frontend | healthy | src/router/index.js |
/timeline |
frontend | healthy | src/router/index.js |
/post/:title |
frontend | healthy | src/router/index.js |
/404 |
frontend | healthy | src/router/index.js |
/:pathMatch(.*)* |
frontend | healthy | src/router/index.js |
| Label | Layer | Status | Path |
|---|---|---|---|
DOCKERHUB_TOKEN |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
DOCKERHUB_USERNAME |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
release |
cicd | healthy | .github/workflows/release.yml |
publish |
cicd | healthy | .github/workflows/release.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-o2dp9isf |
software | healthy | /tmp/repobility-clone-o2dp9isf |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::release |
cicd | healthy | .github/workflows/release.yml |
This page is publicly accessible at:
https://repobility.com/scan/8c21307b-38c7-4a9c-897b-75981cf3a755/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/8c21307b-38c7-4a9c-897b-75981cf3a755/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.