diff --git a/.github/ISSUE_TEMPLATE/presentation-submission.md b/.github/ISSUE_TEMPLATE/presentation-submission.md new file mode 100644 index 0000000..ad7edb4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/presentation-submission.md @@ -0,0 +1,13 @@ +--- +name: Presentation Submission +about: Submit Vue.js presentation to post for the community +title: "[Presentation]" +labels: '' +assignees: '' +--- + +## Presentation + +No need to post an issue for a presentation just get the presentation author authorization and submit a pull request following [this format](https://github.com/vuejs/events/compare/master...presnetation-pr-example?template=pull-request-presentation.md) + +If you meet a deadlink or a wrong informations please contact the author of the presentation. diff --git a/.github/PULL_REQUEST_TEMPLATE/pull-request-presentation.md b/.github/PULL_REQUEST_TEMPLATE/pull-request-presentation.md new file mode 100644 index 0000000..18472f8 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull-request-presentation.md @@ -0,0 +1,35 @@ +--- +name: Presentation PR +about: Share a new presnetation +title: '' +labels: '' +assignees: '' +--- + +Thank you for submitting a presentation. + +To submit a presentation you just need to add a json file that contain your data at: src/.vuepress/data/presentations/\[theme\]/\[year\]/presentation-title.json + +The json format is the following, please copy it fully even if some fields are not filled: + +{ + "slides": "", + "author": "", + "sourceLanguage": "", + "city": "", + "country": "", + "vueVersion": "", + "event": { + "name": "", + "link": "" + }, + "gitRepository": "", + "videoLink": "", + "reachSpeaker": { + "twitter": "", + "github": "", + "vueDiscord": "", + "email": "" + }, + "description": "" +} \ No newline at end of file diff --git a/src/.vuepress/components/PresentationFilters.vue b/src/.vuepress/components/PresentationFilters.vue new file mode 100644 index 0000000..5d06688 --- /dev/null +++ b/src/.vuepress/components/PresentationFilters.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/.vuepress/components/PresentationInfoLine.vue b/src/.vuepress/components/PresentationInfoLine.vue new file mode 100644 index 0000000..89e5675 --- /dev/null +++ b/src/.vuepress/components/PresentationInfoLine.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/.vuepress/components/PresentationItem.vue b/src/.vuepress/components/PresentationItem.vue new file mode 100644 index 0000000..ed8c691 --- /dev/null +++ b/src/.vuepress/components/PresentationItem.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/.vuepress/components/PresentationList.vue b/src/.vuepress/components/PresentationList.vue new file mode 100644 index 0000000..dd353f6 --- /dev/null +++ b/src/.vuepress/components/PresentationList.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js index 3fa0ef9..5300b5b 100644 --- a/src/.vuepress/config.js +++ b/src/.vuepress/config.js @@ -46,6 +46,19 @@ module.exports = { } ] }, + { + text: 'Presentation', + items: [ + { + text: 'Discover', + link: '/presentations/#discover' + }, + { + text: "Submit", + link: '/presentations/#submit' + }, + ] + }, { text: 'Contact', items: [ diff --git a/src/.vuepress/data/index.js b/src/.vuepress/data/index.js index dc36fe3..fd09b89 100644 --- a/src/.vuepress/data/index.js +++ b/src/.vuepress/data/index.js @@ -1,6 +1,8 @@ const dataFiles = require.context(".", false, /\.json$/); +const presentationDataFiles = require.context("./presentations", true, /\.json$/); const data = {}; +const presentationData = {}; dataFiles.keys().forEach((fileName) => { const fileData = dataFiles(fileName); @@ -8,4 +10,20 @@ dataFiles.keys().forEach((fileName) => { data[year] = fileData.default || fileData; }); +presentationDataFiles.keys().forEach((fileName) => { + let fileData = presentationDataFiles(fileName); + fileName = fileName.replace(/\.\//, '').replace(/\.json/, '') + const [theme, year, title] = fileName.split("/", 3) + if (!presentationData[theme]) { + presentationData[theme] = {} + } + if (!presentationData[theme][year]) { + presentationData[theme][year] = [] + } + fileData = fileData.default || fileData; + fileData = {...fileData, title} + presentationData[theme][year].push(fileData.default || fileData) +}); + export default data; +export { data, presentationData}; diff --git a/src/.vuepress/data/presentations/Components/2018/Create your own component library.json b/src/.vuepress/data/presentations/Components/2018/Create your own component library.json new file mode 100644 index 0000000..74c29aa --- /dev/null +++ b/src/.vuepress/data/presentations/Components/2018/Create your own component library.json @@ -0,0 +1,21 @@ +{ + "slides": "https://github.com/AMontagu/vue-components-lib/blob/master/componentReuse.pptx", + "author": "Adrien Montagu", + "sourceLanguage": "French", + "city": "Lyon", + "country": "France", + "vueVersion": "2", + "event": { + "name": "Vue.js Lyon #4", + "link": "https://www.meetup.com/fr-FR/Vue-js-Lyon/events/255052432/" + }, + "gitRepository": "https://github.com/AMontagu/vue-complex-project", + "videoLink": null, + "reachSpeaker": { + "twitter": null, + "github": "https://github.com/amontagu", + "vueDiscord": "Adrien Montagu#0597", + "email": "adrienmontagu@gmail.com" + }, + "description": "Discover how to create your own component library." +} diff --git a/src/.vuepress/data/presentations/Pattern/2018/Setup a complex vue project.json b/src/.vuepress/data/presentations/Pattern/2018/Setup a complex vue project.json new file mode 100644 index 0000000..649218e --- /dev/null +++ b/src/.vuepress/data/presentations/Pattern/2018/Setup a complex vue project.json @@ -0,0 +1,21 @@ +{ + "slides": "https://github.com/AMontagu/vue-complex-project/blob/master/VueWorkshop.pptx", + "author": "Adrien Montagu", + "sourceLanguage": "French", + "city": "Lyon", + "country": "France", + "vueVersion": "2", + "event": { + "name": "Vue.js Lyon Workshop", + "link": "https://www.meetup.com/fr-FR/Vue-js-Lyon/events/253089389/" + }, + "gitRepository": "https://github.com/AMontagu/vue-complex-project", + "videoLink": null, + "reachSpeaker": { + "twitter": null, + "github": "https://github.com/amontagu", + "vueDiscord": "Adrien Montagu#0597", + "email": "adrienmontagu@gmail.com" + }, + "description": "How create a good base for a complex project in Vue ? See how integrate vue-i18n, code splitting, automatic component registration, vuex namespace, with a bonus or login reusable logic (on the separate branch withLogin)" +} diff --git a/src/.vuepress/data/presentations/Webpack/2020/The Vue on Webpack.json b/src/.vuepress/data/presentations/Webpack/2020/The Vue on Webpack.json new file mode 100644 index 0000000..0d129ba --- /dev/null +++ b/src/.vuepress/data/presentations/Webpack/2020/The Vue on Webpack.json @@ -0,0 +1,21 @@ +{ + "slides": null, + "author": "Adrien Montagu", + "sourceLanguage": "English", + "city": "Lyon", + "country": "France", + "vueVersion": "2", + "event": { + "name": "Vue Global Meetup #1", + "link": "https://www.eventbrite.com/e/vue-global-meetup-tickets-101090117262?aff=ebdssbonlinesearch" + }, + "gitRepository": "https://github.com/AMontagu/WebpackAndVue", + "videoLink": null, + "reachSpeaker": { + "twitter": null, + "github": "https://github.com/amontagu", + "vueDiscord": "Adrien Montagu#0597", + "email": "adrienmontagu@gmail.com" + }, + "description": "Let discover how Vue and Webpack work together: Create complex dev server, adding custom plugin, understanding the vue webpack config and more. The slide are coming soon." +} diff --git a/src/presentations/README.md b/src/presentations/README.md new file mode 100644 index 0000000..067bc72 --- /dev/null +++ b/src/presentations/README.md @@ -0,0 +1,28 @@ +--- +sidebar: auto +--- + +# Presentations + +## Introduction + +This is an effort to centralize all public presentations about Vue.js and associated libraries/frameworks. It catalogs presentations by theme and year, and can be used to help speakers find presentations that are open for reuse. So that knowledge can be shared at local events without having to recreate each presentation. + +To submit your go to the end of the page or [click here](/presentations/#submit) + +## Discover + + + + + +## Submit + +Sharing your presentation with the community is entirely voluntary. + +To add your presentation, you need to create a pull request with a JSON file containing all the data about the presentation you want to share. + +Click here to see examples + + +Click here to submit your