瀏覽代碼

Add Talks feature and widgets (#63)

ymcrcat 8 年之前
父節點
當前提交
bddf9c07bb

+ 10 - 0
archetypes/talk.md

@@ -0,0 +1,10 @@
++++
+math = false
+title = ""
+abstract = ""
+abstract_short = ""
+selected = false
+url_pdf = ""
+url_slides = ""
+url_video = ""
++++

+ 30 - 0
layouts/partials/talk_li_detailed.html

@@ -0,0 +1,30 @@
+<div class="pub-list-item" itemscope itemtype="http://schema.org/CreativeWork">
+  <div class="row">
+
+      <h3 class="article-title" itemprop="name">
+        <a href="{{ .Permalink }}" itemprop="url">{{ .Title }}</a>
+      </h3>
+
+      <div class="talk-abstract" itemprop="text">
+        {{ if .Params.abstract_short }}
+        {{ .Params.abstract_short }}
+        {{ else }}
+        {{ .Params.abstract }}
+        {{ end }}
+      </div>
+
+      <div class="talk-event">
+        {{ if .Params.event }}
+          {{ .Params.event | markdownify }}
+        {{ else if .Params.event_short }}
+          {{ .Params.event_short | markdownify }}
+        {{ end }}
+      </div>
+
+      <div class="talk-links">
+        {{ partial "talk_links" (dict "content" . "is_list" 1) }}
+      </div>
+
+    </div>
+  </div>
+</div>

+ 12 - 0
layouts/partials/talk_li_simple.html

@@ -0,0 +1,12 @@
+<li itemscope itemtype="http://schema.org/CreativeWork">
+  <i class="fa-li fa fa-file-text-o pub-icon" aria-hidden="true"></i>
+  <span itemprop="name">{{ .Title }}</span>
+  <div class="talk-event">
+    {{ if .Params.event_short }}
+        {{ .Params.event_short | markdownify }}
+    {{ else if .Params.event }}
+            {{ .Params.event | markdownify }}
+    {{ end }}
+  </div>
+  <p>{{ partial "talk_links" (dict "content" . "is_list" 1) }}</p>
+</li>

+ 28 - 0
layouts/partials/talk_links.html

@@ -0,0 +1,28 @@
+{{ $is_list := .is_list }}
+{{ $ := .content }}
+
+{{ if $is_list }}
+<a class="btn btn-primary btn-outline btn-xs" href="{{ $.Permalink }}">
+  Details
+</a>
+{{ end }}
+{{ with $.Params.url_pdf }}
+<a class="btn btn-primary btn-outline{{ if $is_list }} btn-xs{{end}}" href="{{ . | absURL }}">
+  PDF
+</a>
+{{ end }}
+{{ with $.Params.url_slides }}
+<a class="btn btn-primary btn-outline{{ if $is_list }} btn-xs{{end}}" href="{{ . | absURL }}">
+  Slides
+</a>
+{{ end }}
+{{ with $.Params.url_video }}
+<a class="btn btn-primary btn-outline{{ if $is_list }} btn-xs{{end}}" href="{{ . | absURL }}">
+  Video
+</a>
+{{ end }}
+{{ range $.Params.url_custom }}
+<a class="btn btn-primary btn-outline{{ if $is_list }} btn-xs{{end}}" href="{{ .url | absURL }}">
+  {{ .name }}
+</a>
+{{ end }}

+ 35 - 0
layouts/partials/widgets/talks.html

@@ -0,0 +1,35 @@
+{{ $ := .root }}
+{{ $page := .page }}
+{{ $talks_len := len (where $.Data.Pages "Type" "talk") }}
+
+<!-- Talks widget -->
+<div class="row">
+  <div class="col-xs-12 col-md-4 section-heading">
+    <h1>{{ with $page.Title }}{{ . | markdownify }}{{ end }}</h1>
+    {{ with $page.Params.subtitle }}<p>{{ . | markdownify }}</p>{{ end }}
+    {{ if gt $talks_len $page.Params.count }}
+    <p class="view-all">
+      <a href="{{ $.Site.BaseURL }}talk/">
+        {{ with $page.Params.str_all }}{{ . | markdownify }}{{ end }}
+        <i class="fa fa-angle-double-right"></i>
+      </a>
+    </p>
+    {{ end }}
+  </div>
+  <div class="col-xs-12 col-md-8">
+    {{ with $page.Content }}<p>{{ . | markdownify }}</p>{{ end }}
+
+    {{ if $page.Params.detailed_list }}
+    {{ range first $page.Params.count (where $.Data.Pages "Type" "talk") }}
+    {{ partial "talk_li_detailed" . }}
+    {{ end }}
+    {{ else }}
+    <ul class="fa-ul">
+      {{ range first $page.Params.count (where $.Data.Pages "Type" "talk") }}
+      {{ partial "talk_li_simple" . }}
+      {{ end }}
+    </ul>
+    {{ end }}
+
+  </div>
+</div>

+ 26 - 0
layouts/partials/widgets/talks_selected.html

@@ -0,0 +1,26 @@
+{{ $ := .root }}
+{{ $page := .page }}
+
+<!-- Selected Talks widget -->
+<div class="row">
+  <div class="col-xs-12 col-md-4 section-heading">
+    <h1>{{ with $page.Title }}{{ . | markdownify }}{{ end }}</h1>
+    {{ with $page.Params.subtitle }}<p>{{ . | markdownify }}</p>{{ end }}
+  </div>
+  <div class="col-xs-12 col-md-8">
+    {{ with $page.Content }}<p>{{ . | markdownify }}</p>{{ end }}
+
+    {{ if $page.Params.detailed_list }}
+    {{ range (where (where $.Data.Pages "Type" "talk") ".Params.selected" true) }}
+    {{ partial "talk_li_detailed" . }}
+    {{ end }}
+    {{ else }}
+    <ul class="fa-ul">
+      {{ range (where (where $.Data.Pages "Type" "talk") ".Params.selected" true) }}
+      {{ partial "talk_li_simple" . }}
+      {{ end }}
+    </ul>
+    {{ end }}
+
+  </div>
+</div>

+ 35 - 0
layouts/section/talk.html

@@ -0,0 +1,35 @@
+{{ partial "header.html" . }}
+{{ partial "navbar.html" . }}
+<div class="container">
+  <div class="row">
+    <div class="col-md-12">
+      <h1>Talks</h1>
+
+      {{ range .Data.Pages.GroupByDate "2006" }}
+      <div class="row" id="talk_list">
+        <div class="col-md-2">
+          <h3>{{ .Key }}</h3>
+        </div>
+        <div class="col-md-10">
+          <ul class="compact fa-ul">
+
+            {{ range .Pages.ByDate.Reverse }}
+            <li>
+              <i class="fa-li fa fa-file-text-o" aria-hidden="true"
+                 style="color:#03396c;font-size:80%;padding-top:6px;"></i>
+              {{ .Title }}
+              <p>{{ partial "talk_links" (dict "content" . "is_list" 1) }}</p>
+            </li>
+            {{ end }}
+
+          </ul>
+        </div>
+      </div>
+      {{ end }}
+
+    </div>
+  </div>
+
+</div>
+{{ partial "footer_container.html" . }}
+{{ partial "footer.html" . }}

+ 81 - 0
layouts/talk/single.html

@@ -0,0 +1,81 @@
+{{ partial "header.html" . }}
+{{ partial "navbar.html" . }}
+<div class="container">
+
+  <div class="pub" itemscope itemtype="http://schema.org/CreativeWork">
+    <div class="pub-title">
+      <h1 itemprop="name">{{ .Title }}</h1>
+      <span class="pub-authors" itemprop="author">
+        {{ with .Params.authors }}
+        {{ delimit . ", " }}
+        {{ end }}
+      </span>
+      <span class="pull-right">
+        {{ partial "share.html" . }}
+      </span>
+    </div>
+
+    {{ if .Params.image }}
+    <img src="{{ $.Site.BaseURL }}img/{{ .Params.image }}" class="pub-banner" itemprop="image">
+    {{end}}
+
+    {{ if .Params.abstract }}
+      <h3>Abstract</h3>
+      <p class="pub-abstract" itemprop="text">{{ .Params.abstract }}</p>
+    {{ else }}
+      <br>
+    {{ end }}
+
+    <div class="row">
+      <div class="col-sm-1"></div>
+      <div class="col-sm-10">
+        <div class="row">
+          <div class="col-xs-12 col-sm-3 pub-row-heading">Event</div>
+          <div class="col-xs-12 col-sm-9">{{ .Params.event | markdownify }}</div>
+        </div>
+      </div>
+      <div class="col-sm-1"></div>
+    </div>
+    <div class="visible-xs space-below"></div>
+
+    <div class="row">
+      <div class="col-sm-1"></div>
+      <div class="col-sm-10">
+        <div class="row">
+          <div class="col-xs-12 col-sm-3 pub-row-heading">Date</div>
+          <div class="col-xs-12 col-sm-9" itemprop="datePublished">
+            {{ .Date.Format "January, 2006" }}
+          </div>
+        </div>
+      </div>
+      <div class="col-sm-1"></div>
+    </div>
+    <div class="visible-xs space-below"></div>
+
+    <div class="row" style="padding-top: 10px">
+      <div class="col-sm-1"></div>
+      <div class="col-sm-10">
+        <div class="row">
+          <div class="col-xs-12 col-sm-3 pub-row-heading" style="line-height:34px;">Links</div>
+          <div class="col-xs-12 col-sm-9">
+
+            {{ partial "publication_links" (dict "content" . "is_list" 0) }}
+
+          </div>
+        </div>
+      </div>
+      <div class="col-sm-1"></div>
+    </div>
+    <div class="visible-xs space-below"></div>
+
+    <div class="space-below"></div>
+
+    <div class="article-style">{{ .Content }}</div>
+
+  </div>
+
+  {{ partial "section_pager.html" . }}
+
+</div>
+{{ partial "footer_container.html" . }}
+{{ partial "footer.html" . }}

+ 10 - 0
static/css/hugo-academic.css

@@ -491,6 +491,16 @@ article {
   padding-top: 10px;
 }
 
+
+/*************************************************
+ * Talks 
+ **************************************************/
+
+.talk-event {
+  color: #090;
+  font-size: 1rem;
+}
+
 /*************************************************
  *  Projects
  **************************************************/