Skip to content

Commit 9dc0ae3

Browse files
committed
Don't bother with the two level structure for single namespace projects
1 parent f64f47f commit 9dc0ae3

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

resources/templates/master-toc.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
<li><a href="index.html" class="wiki_link">Overview</a></li>
77
<li><a href="api-index.html" class="wiki_link">API Index</a></li>
88
</ul>
9-
<span class="toc-header">Namespaces</span>
10-
<ul id="left-sidebar-list">
11-
<li><a class="wiki_link" href="link target">Namespace short name</a></li>
12-
</ul>
9+
<div class="NamespaceTOC">
10+
<span class="toc-header">Namespaces</span>
11+
<ul id="left-sidebar-list">
12+
<li><a class="wiki_link" href="link target">Namespace short name</a></li>
13+
</ul>
14+
</div>
1315
<div class="BranchTOC">
1416
<span class="toc-header">Other Versions</span>
1517
<ul id="left-sidebar-branch-list">

src/autodoc/build_html.clj

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,16 @@ looks in the base template directory."
213213
(deffragment make-master-toc *master-toc-file* [ns-info branch-info all-branch-info prefix]
214214
[:#project-name] (content (:name params))
215215
[:#version] (content (:version branch-info))
216-
[:ul#left-sidebar-list :li] (clone-for [ns ns-info]
217-
#(at %
216+
[:div.NamespaceTOC] #(when (> (count ns-info) 1)
217+
(at %
218+
[:ul#left-sidebar-list :li]
219+
(clone-for [ns ns-info]
220+
(fn [n]
221+
(at n
218222
[:a] (do->
219223
(set-attr :href (ns-html-file ns))
220-
(content (:short-name ns)))))
221-
[:div.BranchTOC] #(when all-branch-info
224+
(content (:short-name ns))))))))
225+
[:div.BranchTOC] #(when (> (count all-branch-info) 1)
222226
(at %
223227
[:ul#left-sidebar-branch-list :li]
224228
(clone-for [{:keys [version name status]}
@@ -388,10 +392,11 @@ actually changed). This reduces the amount of random doc file changes that happe
388392
[:div#sub-namespaces]
389393
(substitute (map #(render-sub-namespace-api % branch-info external-docs) (:subspaces ns))))))
390394

391-
(defn make-ns-page [ns master-toc external-docs branch-info prefix]
392-
(create-page (ns-html-file ns)
395+
(defn make-ns-page [unique-ns? ns master-toc external-docs branch-info prefix]
396+
(create-page (if unique-ns? "index.html" (ns-html-file ns))
393397
(when (not (:first? branch-info)) (:name branch-info))
394-
(cl-format nil "~a - ~a ~a API documentation" (:short-name ns) (params :name) (:version branch-info))
398+
(cl-format nil "~a - ~a ~a API documentation"
399+
(:short-name ns) (params :name) (:version branch-info))
395400
prefix
396401
master-toc
397402
(make-local-toc (ns-toc-data ns))
@@ -420,15 +425,16 @@ vars in ns-info that begin with that letter"
420425
"\n *" " ")
421426
suffix)))
422427

423-
(defn gen-index-line [v ns]
428+
(defn gen-index-line [v ns unique-ns?]
424429
(let [var-name (:name v)
425430
overhead (count var-name)
426431
short-name (:short-name ns)
427432
doc-len (+ 50 (min 0 (- 18 (count short-name))))]
428433
#(at %
429434
[:a] (do->
430435
(set-attr :href
431-
(str (ns-html-file ns) "#" (:full-name ns) "/" (:name v)))
436+
(str (if unique-ns? "index.html" (ns-html-file ns))
437+
"#" (:full-name ns) "/" (:name v)))
432438
(content (:name v)))
433439
[:#line-content] (content
434440
(cl-format nil "~vt~a~vt~a~vt~a~%"
@@ -438,7 +444,7 @@ vars in ns-info that begin with that letter"
438444
(doc-prefix v doc-len))))))
439445

440446
;; TODO: skip entries for letters with no members
441-
(deffragment make-index-content *index-html-file* [branch-info vars-by-letter]
447+
(deffragment make-index-content *index-html-file* [branch-info vars-by-letter unique-ns?]
442448
[:#header-project] (content (:name params))
443449
[:#header-version] (content (:version branch-info))
444450
[:#header-status] (content (:status branch-info))
@@ -448,16 +454,18 @@ vars in ns-info that begin with that letter"
448454
[:h2] (set-attr :id letter)
449455
[:span#section-head] (content letter)
450456
[:span#section-content] (clone-for [[v ns] vars]
451-
(gen-index-line v ns)))))
457+
(gen-index-line v ns unique-ns?)))))
452458

453459
(defn make-index-html [ns-info master-toc branch-info prefix]
454460
(create-page *index-html-file*
455461
(when (not (:first? branch-info)) (:name branch-info))
456-
(cl-format nil "Index - ~a ~a API documentation" (params :name) (:version branch-info))
462+
(cl-format nil "Index - ~a ~a API documentation"
463+
(params :name) (:version branch-info))
457464
prefix
458465
master-toc
459466
nil
460-
(make-index-content branch-info (vars-by-letter ns-info))))
467+
(make-index-content branch-info (vars-by-letter ns-info)
468+
(<= (count ns-info) 1))))
461469

462470
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
463471
;;;
@@ -576,9 +584,11 @@ vars in ns-info that begin with that letter"
576584
(let [prefix (if (:first? branch-info) nil "../")
577585
master-toc (make-master-toc ns-info branch-info all-branch-info prefix)
578586
external-docs (wrap-external-doc doc-dir master-toc)]
579-
(make-overview ns-info master-toc branch-info prefix)
580-
(doseq [ns ns-info]
581-
(make-ns-page ns master-toc external-docs branch-info prefix))
587+
(if (> (count ns-info) 1)
588+
(do (make-overview ns-info master-toc branch-info prefix)
589+
(doseq [ns ns-info]
590+
(make-ns-page false ns master-toc external-docs branch-info prefix)))
591+
(make-ns-page true (first ns-info) master-toc external-docs branch-info prefix))
582592
(make-index-html ns-info master-toc branch-info prefix)
583593
(make-index-clj ns-info branch-info)
584594
(make-index-json ns-info branch-info)))))

0 commit comments

Comments
 (0)