{data.title}
++ {" "} + at {data.context} by {data.org} +
+ )} + + + +diff --git a/next/components/date.js b/next/components/date.js
index 0ec71d3..d94fc25 100644
--- a/next/components/date.js
+++ b/next/components/date.js
@@ -1,6 +1,8 @@
import { parseISO, format } from 'date-fns'
-export default function Date({ dateString }) {
+export default function Date({ dateString, dateFormat }) {
const date = parseISO(dateString)
- return
+ const finalFormat = dateFormat || 'LLLL d, yyyy'
+
+ return
}
diff --git a/next/content/talks/cooperer.md b/next/content/talks/cooperer.md
new file mode 100644
index 0000000..023b3ab
--- /dev/null
+++ b/next/content/talks/cooperer.md
@@ -0,0 +1,9 @@
+---
+title: Coopérer avec d'autres métiers
+date: "2020-04-21"
+org: Université Rennes1
+video: https://nech.pl/bigday2020-video
+slides: https://nech.pl/bigday2020
+event: https://bioinfo-fr.net/big-day-2020
+---
+https://www.youtube.com/watch?v=un0cFiN65yg
diff --git a/next/content/talks/droidcon19.md b/next/content/talks/droidcon19.md
new file mode 100644
index 0000000..55248b5
--- /dev/null
+++ b/next/content/talks/droidcon19.md
@@ -0,0 +1,9 @@
+---
+title: 'Having a Voice on Mobile: How hard can it be?'
+date: '2019-11-02'
+context: Droidcon London 2019
+org: .droidcon
+video: https://nech.pl/droidcon19-video
+slides: https://nech.pl/droidcon19
+event: https://skillsmatter.com/conferences/11785-droidcon-london-2019
+---
diff --git a/next/content/talks/musicologist.md b/next/content/talks/musicologist.md
new file mode 100644
index 0000000..660dcfb
--- /dev/null
+++ b/next/content/talks/musicologist.md
@@ -0,0 +1,9 @@
+---
+title: The Musicologist, or Search as a Conversation
+date: '2017-11-27'
+slides: https://www.slideshare.net/PaulLouisNECH/search-as-a-conversation-paris-nlp-meetup
+video: https://www.youtube.com/watch?v=3eb4KMNcOII
+context: ParisNLP Meetup
+event: https://twitter.com/ParisNLP/status/933416243964628992
+org: ParisNLP
+---
diff --git a/next/content/talks/mwc.md b/next/content/talks/mwc.md
new file mode 100644
index 0000000..f7bc8fc
--- /dev/null
+++ b/next/content/talks/mwc.md
@@ -0,0 +1,8 @@
+---
+title: Mobile Search Patterns
+context: 4 Years From Now
+org: Mobile World Congress
+date: '2017-02-28'
+slides: https://docs.google.com/presentation/d/1tHvU26nKkabHbHBomXgeSzjuVr9juJPcckKvUcdneRk/edit?usp=sharing
+event: https://www.4yfn.com/
+---
diff --git a/next/content/talks/parisapi.md b/next/content/talks/parisapi.md
new file mode 100644
index 0000000..f502c0c
--- /dev/null
+++ b/next/content/talks/parisapi.md
@@ -0,0 +1,6 @@
+---
+title: ParisAPI#31 - A tale of two APIs
+date: '2018-01-23'
+event: https://www.meetup.com/ParisAPI/events/246453990/
+slides: https://drive.google.com/file/d/1-bzpJUjlVRhQJSLjUQJbe3AFg4mS3RoN/view?usp=sharing
+---
diff --git a/next/content/talks/serving-humans.md b/next/content/talks/serving-humans.md
new file mode 100644
index 0000000..0ab4041
--- /dev/null
+++ b/next/content/talks/serving-humans.md
@@ -0,0 +1,10 @@
+---
+title: Serving Humans? Ethics and Politics of Technological Design
+description: 'In our era of services, *who* is being served?'
+context: 'Humanities After Humans: Our Extended Bodies, Ourselves'
+org: Université de Lorraine, INHA, UCP
+date: '2020-12-11'
+video: https://nech.pl/serving-humans-video
+slides: https://nech.pl/serving-humans
+event: https://humanitiesafterhumans.wordpress.com/
+---
diff --git a/next/content/talks/talktome-berlin.md b/next/content/talks/talktome-berlin.md
new file mode 100644
index 0000000..2db90b4
--- /dev/null
+++ b/next/content/talks/talktome-berlin.md
@@ -0,0 +1,9 @@
+---
+title: TalkToMeBerlin
+date: '2018-06-15'
+event: http://talktome.berlin/
+org: TalkToMe! Berlin
+context: TalkToMe Berlin Hackathon
+slides: https://docs.google.com/presentation/d/1ofZ17FZsmUyRu5_10-ndpKAQMJ_3m_e0tA5ZXDVFp-k/edit?usp=sharing
+video: https://www.youtube.com/watch?v=_U-K9oaNBhc
+---
diff --git a/next/lib/posts.js b/next/lib/posts.js
index 36ecae3..c44cb73 100644
--- a/next/lib/posts.js
+++ b/next/lib/posts.js
@@ -1,6 +1,6 @@
import {getAllContentData, getAllContentIds, getContentData} from './utils'
-export function getSortedPostsData() {
+export function getPostsData() {
return getAllContentData('posts', true)
}
diff --git a/next/lib/talks.js b/next/lib/talks.js
new file mode 100644
index 0000000..aa827f8
--- /dev/null
+++ b/next/lib/talks.js
@@ -0,0 +1,17 @@
+import {getAllContentData, getAllContentIds, getContentData} from './utils'
+
+export function getTalksData() {
+ return getAllContentData('talks', true)
+}
+
+export function getRecentTalksData() {
+ return getAllContentData('talks', true).slice(0,3)
+}
+
+export function getAllTalkIds() {
+ return getAllContentIds("talks")
+}
+
+export async function getTalkData(id) {
+ return getContentData("talks", id)
+}
diff --git a/next/lib/utils.js b/next/lib/utils.js
index d030571..6b12c2d 100644
--- a/next/lib/utils.js
+++ b/next/lib/utils.js
@@ -5,16 +5,14 @@ import remark from "remark";
import html from "remark-html";
function getContentDirectory(name) {
- const dir = path.join(process.cwd(), "content", name);
- console.log("gCD:", dir);
- return dir;
+ return path.join(process.cwd(), "content", name)
}
function getAllContentData(name, sorted = false) {
// Get file names under /content/{name}
const contentDirectory = getContentDirectory(name);
const fileNames = fs.readdirSync(contentDirectory);
- console.log("gACD: total", fileNames.length, "items");
+ console.log(`gACD: total ${name}(s): ${fileNames.length}`);
const allContentData = fileNames.map((fileName) => {
// Remove ".md" from file name to get id
@@ -72,6 +70,16 @@ async function getContentData(name, id) {
.use(html)
.process(matterResult.content);
const contentHtml = processedContent.toString();
+ console.log(matterResult);
+ if ("description" in matterResult.data) {
+ console.log("Got desc!");
+ const processedDescription = await remark()
+ .use(html)
+ .process(matterResult.data.description);
+ matterResult.data.description = processedContent.toString();
+
+ }
+
// Combine the data with the id and contentHtml
return {
diff --git a/next/pages/_app.js b/next/pages/_app.js
index 4f1a09c..20250c8 100644
--- a/next/pages/_app.js
+++ b/next/pages/_app.js
@@ -1,5 +1,5 @@
import 'bootstrap/dist/css/bootstrap.css'
-import '../styles.css'
+import '../styles/main.css'
export default function MyApp({ Component, pageProps }) {
return
- At Algolia, I create technologies to - help humans find things and + At Algolia, I create technologies + to help humans find things and {" "} answers @@ -59,11 +64,38 @@ export default function Home({ allPostsData }) {
+ I speak about topics I care about: from + sharing my passions and teaching useful patterns, to questioning our + current mental models. +
++ {" "} + at {data.context} by {data.org} +
+ )} + + + +