1
1
---
2
2
---
3
- < div class ="publications-container ">
4
- {% if group_values != null and group_values != empty %}
5
- {% for group in group_values %}
6
- < h3 class ="group-header "> {{ group }}</ h3 >
7
- {% bibliography -q @*[group={{group}}] %}
8
- {% endfor %}
9
- {% else %}
10
- {% bibliography %}
11
- {% endif %}
3
+ < div class ="publication-entry ">
4
+ < div class ="reference ">
5
+ {{reference}}
6
+ </ div >
12
7
13
- < div class ="publication-entry ">
14
- < div class ="reference ">
15
- {{ reference }}
16
- </ div >
17
-
18
- < div class ="action-buttons ">
19
- {% if entry.bibtex %}
20
- < button class ="pub-btn bibtex-btn " data-target ="bibtex-{{entry.key | slugify}} " aria-label ="Show BibTeX ">
21
- < svg class ="btn-icon " viewBox ="0 0 24 24 "> < path d ="M20,4H4A2,2 0 0,0 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6A2,2 0 0,0 20,4M20,18H4V6H20V18M6,10H8V12H6V10M6,14H14V16H6V14M16,14H18V16H16V14M10,10H18V12H10V10Z "/> </ svg >
22
- BibTeX
23
- </ button >
24
- {% endif %}
25
-
26
- {% if entry.abstract %}
27
- < button class ="pub-btn abstract-btn " data-target ="abstract-{{entry.key | slugify}} " aria-label ="Show Abstract ">
28
- < svg class ="btn-icon " viewBox ="0 0 24 24 "> < path d ="M4,5H20V7H4V5M4,9H20V11H4V9M4,13H20V15H4V13M4,17H14V19H4V17Z "/> </ svg >
29
- Abstract
30
- </ button >
31
- {% endif %}
32
-
33
- {% if entry.doi %}
34
- < a href ="https://doi.org/{{ entry.doi }} " class ="pub-btn doi-btn " target ="_blank " rel ="noopener ">
35
- < svg class ="btn-icon " viewBox ="0 0 24 24 "> < path d ="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z "/> </ svg >
36
- DOI
37
- </ a >
38
- {% endif %}
39
-
40
- {% if entry.preprint %}
41
- < a href ="{{ entry.preprint }} " class ="pub-btn preprint-btn " target ="_blank " rel ="noopener ">
42
- < svg class ="btn-icon " viewBox ="0 0 24 24 "> < path d ="M6,2A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6M6,4H13V9H18V20H6V4M8,12V14H16V12H8M8,16V18H13V16H8Z "/> </ svg >
43
- Preprint
44
- </ a >
45
- {% endif %}
46
-
47
- {% if entry.code %}
48
- < a href ="{{ entry.code }} " class ="pub-btn code-btn " target ="_blank " rel ="noopener ">
49
- < svg class ="btn-icon " viewBox ="0 0 24 24 "> < path d ="M8,3A2,2 0 0,0 6,5V9A2,2 0 0,1 4,11H3V13H4A2,2 0 0,1 6,15V19A2,2 0 0,0 8,21H10V19H8V14A2,2 0 0,0 6,12A2,2 0 0,0 8,10V5H10V3M16,3A2,2 0 0,1 18,5V9A2,2 0 0,0 20,11H21V13H20A2,2 0 0,0 18,15V19A2,2 0 0,1 16,21H14V19H16V14A2,2 0 0,1 18,12A2,2 0 0,1 16,10V5H14V3H16Z "/> </ svg >
50
- Code
51
- </ a >
52
- {% endif %}
53
- </ div >
54
-
55
- {% if entry.bibtex %}
56
- < div id ="bibtex-{{entry.key | slugify}} " class ="collapsible bibtex-section " role ="region " aria-hidden ="true ">
57
- < pre > < code > {{entry.bibtex}}</ code > </ pre >
58
- </ div >
59
- {% endif %}
8
+ < div class ="action-buttons ">
9
+ < button class ="pub-btn bibtex-btn " onclick ="toggleSection('bibtex-{{entry.key}}') ">
10
+ BibTeX
11
+ </ button >
60
12
61
13
{% if entry.abstract %}
62
- < div id ="abstract-{{entry.key | slugify}} " class ="collapsible abstract-section " role ="region " aria-hidden ="true ">
63
- < h4 > Abstract</ h4 >
64
- < p > {{entry.abstract}}</ p >
65
- </ div >
14
+ < button class ="pub-btn abstract-btn " onclick ="toggleSection('abstract-{{entry.key}}') ">
15
+ Abstract
16
+ </ button >
66
17
{% endif %}
67
- </ div >
68
- </ div >
69
18
70
- < style >
71
- : root {
72
- --primary-color : # 1F416F ;
73
- --hover-color : # 2c5c9e ;
74
- --bg-color : # ffffff ;
75
- --text-color : # 2c3e50 ;
76
- --border-radius : 6px ;
77
- --transition-speed : 0.2s ;
78
- }
19
+ {% if entry.doi %}
20
+ < a href ="{{ entry.doi | prepend: 'http://doi.org/' }} " class ="pub-btn doi-btn ">
21
+ DOI
22
+ </ a >
23
+ {% endif %}
79
24
80
- .publications-container {
81
- max-width : 1200px ;
82
- margin : 0 auto;
83
- }
25
+ {% if entry.preprint %}
26
+ < a href ="{{ entry.preprint }} " class ="pub-btn preprint-btn ">
27
+ Preprint
28
+ </ a >
29
+ {% endif %}
84
30
85
- .publication-entry {
86
- margin-bottom : 1.5em ; /* Reduced from 2.5em */
87
- padding : 1em ; /* Reduced from 1.5em */
88
- border-left : 3px solid var (--primary-color ); /* Slightly thinner border */
89
- background : var (--bg-color );
90
- box-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.08 ); /* Subtler shadow */
91
- border-radius : 0 var (--border-radius ) var (--border-radius ) 0 ;
92
- transition : transform var (--transition-speed );
93
- }
31
+ {% if entry.link %}
32
+ < a href ="{{ entry.link }} " class ="pub-btn link-btn ">
33
+ Link
34
+ </ a >
35
+ {% endif %}
94
36
95
- .publication-entry : hover {
96
- transform : translateX (4px );
97
- }
37
+ {% if entry.code %}
38
+ < a href ="{{ entry.code }} " class ="pub-btn code-btn ">
39
+ Code
40
+ </ a >
41
+ {% endif %}
42
+ </ div >
98
43
99
- .reference {
100
- margin-bottom : 0.8em ; /* Reduced from 1.2em */
101
- line-height : 1.4 ; /* Tighter line height */
102
- color : var (--text-color );
103
- font-size : 0.8em ; /* Slightly smaller */
104
- }
44
+ < div id ="bibtex-{{entry.key}} " class ="collapsible bibtex-section ">
45
+ < pre > {{entry.bibtex}}</ pre >
46
+ </ div >
105
47
106
- .action-buttons {
107
- display : flex;
108
- flex-wrap : wrap;
109
- gap : 0.5em ; /* Reduced from 0.8em */
110
- margin : 0.8em 0 ; /* Reduced from 1.2em */
111
- }
48
+ {% if entry.abstract %}
49
+ < div id ="abstract-{{entry.key}} " class ="collapsible abstract-section ">
50
+ < h4 > Abstract</ h4 >
51
+ < p > {{entry.abstract}}</ p >
52
+ </ div >
53
+ {% endif %}
54
+ </ div >
112
55
113
- .pub-btn {
114
- display : inline-flex;
115
- align-items : center;
116
- gap : 0.5em ;
117
- padding : 0.4em 0.8em ; /* Reduced from 0.6em 1.2em */
118
- border : 2px solid var (--primary-color );
119
- border-radius : var (--border-radius );
120
- background : transparent;
121
- color : var (--primary-color );
122
- font-size : 0.9em ; /* Slightly smaller */
123
- font-weight : 500 ;
124
- text-decoration : none;
125
- cursor : pointer;
126
- transition : all var (--transition-speed );
127
- }
56
+ < style >
57
+ .publication-entry {
58
+ margin-bottom : 1.2em ; /* Reduced from 2em */
59
+ padding : 0.7em ; /* Reduced from 1em */
60
+ border-left : 2px solid # 1F416F ;
61
+ background : # fff ;
62
+ transition : background-color 0.2s ;
63
+ }
64
+
65
+ .publication-entry : hover {
66
+ background : # f8f9fa ;
67
+ }
68
+
69
+ .reference {
70
+ margin-bottom : 0.5em ; /* Reduced from 1em */
71
+ line-height : 1.3 ; /* Tighter line height */
72
+ font-size : 0.95em ; /* Slightly smaller text */
73
+ }
74
+
75
+ .action-buttons {
76
+ display : flex;
77
+ flex-wrap : wrap;
78
+ gap : 0.3em ; /* Reduced from 0.5em */
79
+ margin : 0.5em 0 ; /* Reduced from 1em */
80
+ }
81
+
82
+ .pub-btn {
83
+ display : inline-flex;
84
+ align-items : center;
85
+ padding : 0.3em 0.6em ; /* Reduced from 0.5em 1em */
86
+ border : 1px solid # 1F416F ;
87
+ border-radius : 3px ; /* Slightly reduced */
88
+ background : transparent;
89
+ color : # 1F416F ;
90
+ font-size : 0.85em ; /* Smaller button text */
91
+ text-decoration : none;
92
+ cursor : pointer;
93
+ transition : all 0.2s ;
94
+ line-height : 1.2 ; /* Tighter button text */
95
+ }
128
96
129
97
.pub-btn : hover {
130
- background : var ( --primary-color ) ;
98
+ background : # 1F416F ;
131
99
color : white;
132
- transform : translateY (-2px );
133
- }
134
-
135
- .btn-icon {
136
- width : 1.2em ;
137
- height : 1.2em ;
138
- fill : currentColor;
139
100
}
140
101
141
102
.collapsible {
142
103
display : none;
143
- margin-top : 0.8 em ; /* Reduced from 1.2em */
144
- padding : 1em ; /* Reduced from 1.5em */
145
- background : # f8f9fa ;
146
- border-radius : var ( --border-radius ) ;
104
+ margin-top : 1 em ;
105
+ padding : 1em ;
106
+ background : # f5f5f5 ;
107
+ border-radius : 4 px ;
147
108
opacity : 0 ;
148
- transform : translateY (-10px );
149
- transition : opacity var (--transition-speed ), transform var (--transition-speed );
109
+ transition : opacity 0.3s ease;
150
110
}
151
111
152
112
.collapsible .active {
153
113
display : block;
154
114
opacity : 1 ;
155
- transform : translateY (0 );
156
115
}
157
116
158
117
.abstract-section h4 {
159
118
margin-top : 0 ;
160
- margin-bottom : 0.5em ; /* Reduced from 1em */
161
- color : var (--primary-color );
162
- font-size : 1.1em ; /* Slightly smaller */
119
+ color : # 1F416F ;
163
120
}
164
121
165
122
.bibtex-section pre {
166
123
margin : 0 ;
167
- padding : 0.8 em ; /* Reduced from 1.2em */
124
+ padding : 1 em ;
168
125
background : white;
169
- border-radius : calc ( var ( --border-radius ) - 2 px ) ;
170
- font-size : 0.85 em ; /* Slightly smaller */
126
+ border-radius : 3 px ;
127
+ font-size : 0.9 em ;
171
128
overflow-x : auto;
172
- border : 1px solid # e0e0e0 ;
173
129
}
130
+ </ style >
174
131
175
- @media (max-width : 768px ) {
176
- .publication-entry {
177
- padding : 0.8em ;
178
- }
179
-
180
- .action-buttons {
181
- gap : 0.5em ;
182
- }
132
+ < script >
133
+ function toggleSection ( id ) {
134
+ const section = document . getElementById ( id ) ;
135
+ const isActive = section . classList . contains ( 'active' ) ;
183
136
184
- .pub-btn {
185
- padding : 0.3em 0.6em ;
186
- font-size : 0.85em ;
137
+ if ( isActive ) {
138
+ section . classList . remove ( 'active' ) ;
139
+ setTimeout ( ( ) => {
140
+ section . style . display = 'none' ;
141
+ } , 300 ) ;
142
+ } else {
143
+ section . style . display = 'block' ;
144
+ requestAnimationFrame ( ( ) => {
145
+ section . classList . add ( 'active' ) ;
146
+ } ) ;
187
147
}
188
148
}
189
- </ style >
149
+ </ script > .publication-entry {
150
+ margin-bottom: 1.2em; /* Reduced from 2em */
151
+ padding: 0.7em; /* Reduced from 1em */
152
+ border-left: 2px solid #1F416F;
153
+ background: #fff;
154
+ transition: background-color 0.2s;
155
+ }
190
156
191
- < script >
192
- document . addEventListener ( 'DOMContentLoaded' , ( ) => {
193
- document . querySelectorAll ( '.pub-btn' ) . forEach ( button => {
194
- button . addEventListener ( 'click' , ( e ) => {
195
- if ( ! button . dataset . target ) return ;
196
-
197
- e . preventDefault ( ) ;
198
- const targetId = button . dataset . target ;
199
- const section = document . getElementById ( targetId ) ;
200
- const isActive = section . classList . contains ( 'active' ) ;
201
-
202
- if ( isActive ) {
203
- section . classList . remove ( 'active' ) ;
204
- section . setAttribute ( 'aria-hidden' , 'true' ) ;
205
- setTimeout ( ( ) => {
206
- section . style . display = 'none' ;
207
- } , 200 ) ;
208
- } else {
209
- section . style . display = 'block' ;
210
- requestAnimationFrame ( ( ) => {
211
- section . classList . add ( 'active' ) ;
212
- section . setAttribute ( 'aria-hidden' , 'false' ) ;
213
- } ) ;
214
- }
215
- } ) ;
216
- } ) ;
217
- } ) ;
218
- </ script >
157
+ .publication-entry:hover {
158
+ background: #f8f9fa;
159
+ }
160
+
161
+ .reference {
162
+ margin-bottom: 0.5em; /* Reduced from 1em */
163
+ line-height: 1.3; /* Tighter line height */
164
+ font-size: 0.95em; /* Slightly smaller text */
165
+ }
166
+
167
+ .action-buttons {
168
+ display: flex;
169
+ flex-wrap: wrap;
170
+ gap: 0.3em; /* Reduced from 0.5em */
171
+ margin: 0.5em 0; /* Reduced from 1em */
172
+ }
173
+
174
+ .pub-btn {
175
+ display: inline-flex;
176
+ align-items: center;
177
+ padding: 0.3em 0.6em; /* Reduced from 0.5em 1em */
178
+ border: 1px solid #1F416F;
179
+ border-radius: 3px; /* Slightly reduced */
180
+ background: transparent;
181
+ color: #1F416F;
182
+ font-size: 0.85em; /* Smaller button text */
183
+ text-decoration: none;
184
+ cursor: pointer;
185
+ transition: all 0.2s;
186
+ line-height: 1.2; /* Tighter button text */
187
+ }
0 commit comments