Skip to content

Commit

Permalink
feat: new xml draft templates + markdown language support
Browse files Browse the repository at this point in the history
  • Loading branch information
NGPixel committed Feb 9, 2024
1 parent 29780ee commit da76272
Show file tree
Hide file tree
Showing 8 changed files with 209 additions and 159 deletions.
8 changes: 4 additions & 4 deletions src-electron/electron-main.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ function createWindow () {
mergeWithHeaders(requestHeaders, 'Access-Control-Allow-Origin', ['*'])
clb({ requestHeaders })
})
mainWindow.webContents.session.webRequest.onHeadersReceived(({ requestHeaders }, clb) => {
mergeWithHeaders(requestHeaders, 'Access-Control-Allow-Headers', ['*'])
mergeWithHeaders(requestHeaders, 'Access-Control-Allow-Origin', ['*'])
clb({ requestHeaders })
mainWindow.webContents.session.webRequest.onHeadersReceived(({ responseHeaders }, clb) => {
mergeWithHeaders(responseHeaders, 'Access-Control-Allow-Headers', ['*'])
mergeWithHeaders(responseHeaders, 'Access-Control-Allow-Origin', ['*'])
clb({ responseHeaders })
})

// -> Load start URL
Expand Down
6 changes: 4 additions & 2 deletions src-electron/handlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@ export async function openDocument (mainWindow) {
filters: [
{
name: 'RFC/Internet Draft',
extensions: ['txt', 'xml']
extensions: ['md', 'txt', 'xml']
}
],
properties: ['openFile', 'multiSelections']
})
if (!files.canceled) {
for (const fl of files.filePaths) {
const fileContents = await fs.readFile(fl, 'utf8')
const filePath = path.parse(fl)
mainWindow.webContents.send('openDocument', {
type: filePath.ext.slice(1),
path: fl,
fileName: path.parse(fl).base,
fileName: filePath.base,
data: fileContents
})
app.addRecentDocument(fl)
Expand Down
49 changes: 0 additions & 49 deletions src/components/EssentialLink.vue

This file was deleted.

1 change: 1 addition & 0 deletions src/components/MainToolbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ function newDocument () {
height: 32px;
padding-top: 7px;
display: flex;
padding-left: 48px;
.q-btn-group {
margin-right: 8px;
Expand Down
79 changes: 72 additions & 7 deletions src/components/NewDraftDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,69 @@ q-dialog(ref='dialogRef', @hide='onDialogHide')
q-list.q-mt-sm(bordered separator)
q-item(
clickable
@click='selectType(`xml`)'
)
q-item-section(side)
q-icon(name='mdi-xml')
q-item-section
q-item-label RFC XML v3
q-item-label(caption): em Recommended
q-item-label(caption): em.text-grey Recommended
q-menu(
touch-position
transition-show='jump-down'
transition-hide='jump-up'
)
q-list(separator bordered)
q-item(clickable @click='selectType(`xml`)')
q-item-section(side)
q-icon(name='mdi-note-text-outline')
q-item-section
q-item-label Blank
q-item-label.text-grey(caption) Empty Draft
q-item(clickable @click='selectType(`xml`, `standard`)')
q-item-section(side)
q-icon(name='mdi-note-text-outline')
q-item-section
q-item-label Standard
q-item-label.text-grey(caption) Template with most commonly used features with comments
q-item(clickable @click='selectType(`xml`, `bare`)')
q-item-section(side)
q-icon(name='mdi-note-text-outline')
q-item-section
q-item-label Bare
q-item-label.text-grey(caption) Template for experienced authors
q-item(clickable @click='selectType(`xml`, `annotated`)')
q-item-section(side)
q-icon(name='mdi-note-text-outline')
q-item-section
q-item-label Annotated
q-item-label.text-grey(caption) Template with almost all features, examples and comments

q-item(
clickable
@click='selectType(`md`)'
)
q-item-section(side)
q-icon(name='mdi-language-markdown-outline')
q-item-section Markdown
q-item-section
q-item-label Markdown
q-item(
clickable
@click='selectType(`txt`)'
)
q-item-section(side)
q-icon(name='mdi-text-long')
q-item-section Plain Text
q-item-section
q-item-label Plain Text
</template>

<script setup>
import { useDialogPluginComponent } from 'quasar'
import { useDialogPluginComponent, useQuasar } from 'quasar'
import { useDocsStore } from 'src/stores/docs'
const docsStore = useDocsStore()
const $q = useQuasar()
// EMITS
defineEmits([
Expand All @@ -58,11 +92,42 @@ const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginC
// METHODS
function selectType (docType) {
async function selectType (docType, tmpl) {
let data = ''
if (tmpl) {
let tmplUrl = ''
switch (tmpl) {
case 'standard':
tmplUrl = 'https://github.com/ietf-tools/rfcxml-templates-and-schemas/raw/main/draft-rfcxml-general-template-standard-00.xml'
break
case 'bare':
tmplUrl = 'https://github.com/ietf-tools/rfcxml-templates-and-schemas/raw/main/draft-rfcxml-general-template-bare-00.xml'
break
case 'annotated':
tmplUrl = 'https://github.com/ietf-tools/rfcxml-templates-and-schemas/raw/main/draft-rfcxml-general-template-annotated-00.xml'
break
}
if (tmplUrl) {
try {
data = await fetch(tmplUrl, {
credentials: 'omit'
}).then(r => r.text())
} catch (err) {
$q.notify({
message: 'Failed to fetch template',
caption: err.message,
color: 'negative',
icon: 'mdi-alert'
})
}
}
}
docsStore.loadDocument({
type: docType,
fileName: `untitled-draft.${docType}`,
data: ''
data
})
onDialogOK()
}
Expand Down
92 changes: 31 additions & 61 deletions src/layouts/MainLayout.vue
Original file line number Diff line number Diff line change
@@ -1,76 +1,46 @@
<template lang="pug">
q-layout(view='hHh lpr fFf')
q-header(elevated)
q-header
main-toolbar
//- q-drawer.bg-dark-4.text-white(v-model='leftDrawerOpen' show-if-above mini persistent)
//- q-list
//- q-item-label(header) Essential Links
//- essential-link(v-for='link in linksList' :key='link.title' v-bind='link')
//- q-drawer.bg-dark-4(
//- :model-value='true'
//- show-if-above
//- :mini='state.miniState'
//- @mouseover='state.miniState = false'
//- @mouseout='state.miniState = true'
//- mini-to-overlay
//- persistent
//- )
//- q-scroll-area.fit(
//- :horizontal-thumb-style='{ opacity: 0 }'
//- )
//- q-list(padding)
//- q-item(clickable)
//- q-item-section(side)
//- q-icon(name='mdi-library-shelves' size='xs' color='light-blue-4')
//- q-item-section
//- q-item-label Library
//- q-item-label.text-light-blue-3(caption) Quick Insert Code Snippets
//- q-separator(inset)
//- q-item(clickable)
//- q-item-section(side)
//- q-icon(name='mdi-page-previous-outline' size='xs' color='light-blue-4')
//- q-item-section
//- q-item-label Reindent
//- q-item-label.text-light-blue-3(caption) Reformat Document Indentation
footer-toolbar
q-page-container
router-view
</template>

<script setup>
// import { ref } from 'vue'
// import { reactive } from 'vue'
import MainToolbar from 'components/MainToolbar.vue'
import FooterToolbar from 'components/FooterToolbar.vue'
// import EssentialLink from 'components/EssentialLink.vue'
/* eslint-disable space-before-function-paren */
// const linksList = [
// {
// title: 'Test',
// caption: 'testing',
// icon: 'mdi-file-document-edit-outline',
// link: 'https://ietf.org'
// },
// {
// title: 'Test',
// caption: 'testing',
// icon: 'mdi-magnify',
// link: 'https://ietf.org'
// },
// {
// title: 'Test',
// caption: 'testing',
// icon: 'mdi-source-branch',
// link: 'https://ietf.org'
// },
// {
// title: 'Test',
// caption: 'testing',
// icon: 'mdi-wan',
// link: 'https://ietf.org'
// },
// {
// title: 'Test',
// caption: 'testing',
// icon: 'mdi-account-multiple',
// link: 'https://ietf.org'
// },
// {
// title: 'Test',
// caption: 'testing',
// icon: 'mdi-comment-check-outline',
// link: 'https://ietf.org'
// }
// ]
// const leftDrawerOpen = ref(false)
// function minimize() {
// window.myWindowAPI?.minimize()
// }
// function toggleMaximize() {
// window.myWindowAPI?.toggleMaximize()
// }
// function closeApp() {
// window.myWindowAPI?.close()
// }
// const isElectron = process.env.MODE === 'electron'
// const state = reactive({
// miniState: true
// })
</script>
Loading

0 comments on commit da76272

Please sign in to comment.