Revision | 55 (tree) |
---|---|
Time | 2017-09-24 21:28:27 |
Author | hirukawa_ryo |
* hammer-markdown 0.7.5
@@ -204,7 +204,7 @@ | ||
204 | 204 | if(DEBUG) { |
205 | 205 | System.out.println("HeaderNode: " + node); |
206 | 206 | } |
207 | - | |
207 | + | |
208 | 208 | if(currentHeaderAnchor != null) { |
209 | 209 | List<Node> children = node.getChildren(); |
210 | 210 | Node firstChild = children.size() >= 1 ? children.get(0) : null; |
@@ -213,9 +213,22 @@ | ||
213 | 213 | while(node.getLevel() <= currentHeaderAnchor.getLevel()) { |
214 | 214 | currentHeaderAnchor = currentHeaderAnchor.getParent(); |
215 | 215 | } |
216 | - HeaderAnchor newHeaderAnchor = new HeaderAnchor(node.getLevel(), anchorLinkNode.getName()); | |
217 | - currentHeaderAnchor.add(newHeaderAnchor); | |
218 | - currentHeaderAnchor = newHeaderAnchor; | |
216 | + | |
217 | + //自身へのアンカーリンクになってしまう場合はアンカーリンクを生成しません。 | |
218 | + Node secondChild = children.size() >= 2 ? children.get(1) : null; | |
219 | + if(secondChild instanceof ExpLinkNode) { | |
220 | + ExpLinkNode expLinkNode = (ExpLinkNode)secondChild; | |
221 | + if(expLinkNode.url != null && expLinkNode.url.equals("#" + anchorLinkNode.getName())) { | |
222 | + node.getChildren().remove(anchorLinkNode); | |
223 | + anchorLinkNode = null; | |
224 | + } | |
225 | + } | |
226 | + | |
227 | + if(anchorLinkNode != null) { | |
228 | + HeaderAnchor newHeaderAnchor = new HeaderAnchor(node.getLevel(), anchorLinkNode.getName()); | |
229 | + currentHeaderAnchor.add(newHeaderAnchor); | |
230 | + currentHeaderAnchor = newHeaderAnchor; | |
231 | + } | |
219 | 232 | } |
220 | 233 | } |
221 | 234 |
@@ -17,6 +17,8 @@ | ||
17 | 17 | } |
18 | 18 | |
19 | 19 | |
20 | +var frameRight = document.getElementById("frame-right"); | |
21 | +var frameRightOffsetTop = frameRight.offsetTop; | |
20 | 22 | var target = document.getElementById("fixed"); |
21 | 23 | var targetOffsetTop; |
22 | 24 | if(target && target.clientHeight > 0) { |
@@ -36,11 +38,21 @@ | ||
36 | 38 | } |
37 | 39 | |
38 | 40 | function adjust() { |
39 | - var scrollY = (window.scrollY || window.pageYOffset); | |
40 | - if(scrollY > targetOffsetTop) { | |
41 | - target.addClass("fixed"); | |
42 | - } else { | |
43 | - target.removeClass("fixed"); | |
41 | + if((frameRightOffsetTop + frameRight.clientHeight) > document.documentElement.clientHeight) { | |
42 | + var scrollY = (window.scrollY || window.pageYOffset); | |
43 | + if(scrollY > targetOffsetTop) { | |
44 | + if(target.clientHeight < document.documentElement.clientHeight) { | |
45 | + target.addClass("fixed"); | |
46 | + target.style.top = "0px"; | |
47 | + } else if(target.clientHeight - scrollY < document.documentElement.clientHeight) { | |
48 | + target.addClass("fixed"); | |
49 | + target.style.top = (document.documentElement.clientHeight - target.clientHeight) + "px"; | |
50 | + } else { | |
51 | + target.removeClass("fixed"); | |
52 | + } | |
53 | + } else { | |
54 | + target.removeClass("fixed"); | |
55 | + } | |
44 | 56 | } |
45 | 57 | var scrollX = (window.scrollX || window.pageXOffset); |
46 | 58 | if(scrollX > 0) { |
@@ -120,6 +120,18 @@ | ||
120 | 120 | .markdown p.image-only img.border { |
121 | 121 | border: 1px solid #c0c0c0; |
122 | 122 | } |
123 | +.markdown h3 + p.image-only { | |
124 | + margin-top: 20px; | |
125 | +} | |
126 | +.markdown h4 + p.image-only { | |
127 | + margin-top: 20px; | |
128 | +} | |
129 | +.markdown h5 + p.image-only { | |
130 | + margin-top: 20px; | |
131 | +} | |
132 | +.markdown h6 + p.image-only { | |
133 | + margin-top: 20px; | |
134 | +} | |
123 | 135 | .markdown svg { |
124 | 136 | display: block; |
125 | 137 | margin-left: auto; |
@@ -369,6 +381,10 @@ | ||
369 | 381 | line-height: 1.6; |
370 | 382 | border: 0; |
371 | 383 | } |
384 | +nav.sidebar .markdown h2 > a, | |
385 | +nav.sidebar .markdown h2 > a:visited { | |
386 | + color: #666; | |
387 | +} | |
372 | 388 | nav.sidebar .markdown a, |
373 | 389 | nav.sidebar .markdown a:visited { |
374 | 390 | color: #2573b8; |