mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-11-04 20:29:01 +00:00
Remove files changed from incorrect base
This commit is contained in:
@@ -2,12 +2,7 @@ import React, { useState, useEffect } from 'react';
|
|||||||
import Nav from './nav.jsx';
|
import Nav from './nav.jsx';
|
||||||
import { printCurrentBrew } from '@shared/helpers.js';
|
import { printCurrentBrew } from '@shared/helpers.js';
|
||||||
|
|
||||||
const processShareId = (brew)=>{
|
export default function(){
|
||||||
|
|
||||||
return brew.googleId && !brew.stubbed ? brew.googleId + brew.shareId : brew.shareId;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default ({ currentBrew })=>{
|
|
||||||
const [printing, setPrinting] = useState(false);
|
const [printing, setPrinting] = useState(false);
|
||||||
|
|
||||||
// listen for print cycle events to display "loading" message since it can take some time.
|
// listen for print cycle events to display "loading" message since it can take some time.
|
||||||
@@ -24,27 +19,7 @@ export default ({ currentBrew })=>{
|
|||||||
|
|
||||||
const handlePrintPrepFinished = ()=>{ setPrinting(false); };
|
const handlePrintPrepFinished = ()=>{ setPrinting(false); };
|
||||||
|
|
||||||
if(currentBrew?.shareId) return <Nav.dropdown>
|
return <Nav.item onClick={printCurrentBrew} color='purple' icon='far fa-file-pdf'>
|
||||||
<Nav.item color='purple' icon='fas fa-code'>
|
|
||||||
export
|
|
||||||
</Nav.item>
|
|
||||||
<Nav.item onClick={printCurrentBrew} color='purple' icon='far fa-file-pdf'>
|
|
||||||
{printing ? 'loading' : 'get PDF'}
|
|
||||||
</Nav.item>
|
|
||||||
<Nav.item color='blue' icon='fas fa-download' href={`/download/cm/${processShareId(currentBrew)}`}>
|
|
||||||
Markdown
|
|
||||||
</Nav.item>
|
|
||||||
<Nav.item color='blue' icon='fas fa-download' href={`/download/toml/${processShareId(currentBrew)}`}>
|
|
||||||
Markdown (TOML)
|
|
||||||
</Nav.item>
|
|
||||||
<Nav.item color='blue' icon='fas fa-download' href={`/download/json/${processShareId(currentBrew)}`}>
|
|
||||||
Markdown (JSON)
|
|
||||||
</Nav.item>
|
|
||||||
<Nav.item color='blue' icon='fas fa-download' href={`/download/hb/${processShareId(currentBrew)}`}>
|
|
||||||
Markdown (Homebrewery)
|
|
||||||
</Nav.item>
|
|
||||||
</Nav.dropdown>;
|
|
||||||
else return <Nav.item onClick={printCurrentBrew} color='purple' icon='far fa-file-pdf'>
|
|
||||||
{printing ? 'loading' : 'get PDF'}
|
{printing ? 'loading' : 'get PDF'}
|
||||||
</Nav.item>;
|
</Nav.item>;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -372,7 +372,7 @@ const EditorPage = (props)=>{
|
|||||||
{(pageName == 'editPage') && renderAutoSaveButton()}
|
{(pageName == 'editPage') && renderAutoSaveButton()}
|
||||||
</Nav.dropdown>}
|
</Nav.dropdown>}
|
||||||
<NewBrewItem />
|
<NewBrewItem />
|
||||||
<PrintNavItem currentBrew={currentBrew}/>
|
<PrintNavItem />
|
||||||
<HelpNavItem />
|
<HelpNavItem />
|
||||||
<VaultNavItem />
|
<VaultNavItem />
|
||||||
{(pageName == 'editPage') && <ShareNavItem brew={currentBrew} currentPage={currentBrewRendererPageNum} />}
|
{(pageName == 'editPage') && <ShareNavItem brew={currentBrew} currentPage={currentBrewRendererPageNum} />}
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ const SharePage = (props)=>{
|
|||||||
view
|
view
|
||||||
</Nav.item>
|
</Nav.item>
|
||||||
{renderEditLink()}
|
{renderEditLink()}
|
||||||
<Nav.item color='blue' icon='fas fa-download' href={`/download/hb/${processShareId()}`}>
|
<Nav.item color='blue' icon='fas fa-download' href={`/download/${processShareId()}`}>
|
||||||
download
|
download
|
||||||
</Nav.item>
|
</Nav.item>
|
||||||
<Nav.item color='blue' icon='fas fa-clone' href={`/new/${processShareId()}`}>
|
<Nav.item color='blue' icon='fas fa-clone' href={`/new/${processShareId()}`}>
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
"test:api-unit:css": "jest \"server/.*.spec.js\" -t \"Get CSS\" --verbose",
|
"test:api-unit:css": "jest \"server/.*.spec.js\" -t \"Get CSS\" --verbose",
|
||||||
"test:api-unit:notifications": "jest \"server/.*.spec.js\" -t \"Notifications\" --verbose",
|
"test:api-unit:notifications": "jest \"server/.*.spec.js\" -t \"Notifications\" --verbose",
|
||||||
"test:content-negotiation": "jest \"server/middleware/.*.spec.js\" --verbose",
|
"test:content-negotiation": "jest \"server/middleware/.*.spec.js\" --verbose",
|
||||||
"test:static-content": "jest \"tests/routes/static-content.test.js\" --verbose",
|
|
||||||
"test:coverage": "jest --coverage --silent --runInBand",
|
"test:coverage": "jest --coverage --silent --runInBand",
|
||||||
"test:dev": "jest --verbose --watch",
|
"test:dev": "jest --verbose --watch",
|
||||||
"test:basic": "jest tests/markdown/basic.test.js --verbose",
|
"test:basic": "jest tests/markdown/basic.test.js --verbose",
|
||||||
|
|||||||
+24
-2
@@ -10,7 +10,7 @@ import asyncHandler from 'express-async-handler';
|
|||||||
import { nanoid } from 'nanoid';
|
import { nanoid } from 'nanoid';
|
||||||
import { makePatches, applyPatches, stringifyPatches, parsePatch } from '@sanity/diff-match-patch';
|
import { makePatches, applyPatches, stringifyPatches, parsePatch } from '@sanity/diff-match-patch';
|
||||||
import { md5 } from 'hash-wasm';
|
import { md5 } from 'hash-wasm';
|
||||||
import { splitTextStyleAndMetadata, transformFrontmatter,
|
import { splitTextStyleAndMetadata,
|
||||||
brewSnippetsToJSON, debugTextMismatch } from '../shared/helpers.js';
|
brewSnippetsToJSON, debugTextMismatch } from '../shared/helpers.js';
|
||||||
import checkClientVersion from './middleware/check-client-version.js';
|
import checkClientVersion from './middleware/check-client-version.js';
|
||||||
import dbCheck from './middleware/dbCheck.js';
|
import dbCheck from './middleware/dbCheck.js';
|
||||||
@@ -209,7 +209,29 @@ const api = {
|
|||||||
return res.status(200).send(brew.style);
|
return res.status(200).send(brew.style);
|
||||||
},
|
},
|
||||||
mergeBrewText : (brew)=>{
|
mergeBrewText : (brew)=>{
|
||||||
return transformFrontmatter(brew);
|
let text = brew.text;
|
||||||
|
if(brew.style !== undefined) {
|
||||||
|
text = `\`\`\`css\n` +
|
||||||
|
`${brew.style || ''}\n` +
|
||||||
|
`\`\`\`\n\n` +
|
||||||
|
`${text}`;
|
||||||
|
}
|
||||||
|
const metadata = _.pick(brew, ['title', 'description', 'tags', 'renderer', 'theme']);
|
||||||
|
const snippetsArray = brewSnippetsToJSON('brew_snippets', brew.snippets, null, false).snippets;
|
||||||
|
metadata.snippets = snippetsArray.length > 0 ? snippetsArray : undefined;
|
||||||
|
metadata.bleedSize = { top: brew?.bleedSize?.top, bottom: brew?.bleedSize?.bottom, inner: brew?.bleedSize?.inner, outer: brew?.bleedSize?.outer };
|
||||||
|
metadata.safetySpace = { top: brew?.safetySpace?.top, bottom: brew?.safetySpace?.bottom, outer: brew?.safetySpace?.outer, inner: brew?.safetySpace?.inner };
|
||||||
|
metadata.trimSize = { width: brew?.trimSize?.width, height: brew?.trimSize?.height };
|
||||||
|
metadata.columns = brew?.columns;
|
||||||
|
metadata.columnGutter = brew?.columnGutter;
|
||||||
|
metadata.license = brew?.license;
|
||||||
|
metadata.legalAuthors = brew?.legalAuthors;
|
||||||
|
|
||||||
|
text = `\`\`\`metadata\n` +
|
||||||
|
`${yaml.dump(metadata)}\n` +
|
||||||
|
`\`\`\`\n\n` +
|
||||||
|
`${text}`;
|
||||||
|
return text;
|
||||||
},
|
},
|
||||||
getGoodBrewTitle : (text)=>{
|
getGoodBrewTitle : (text)=>{
|
||||||
const tokens = hbfm.marked.lexer(text);
|
const tokens = hbfm.marked.lexer(text);
|
||||||
|
|||||||
@@ -499,6 +499,8 @@ description: this is a description
|
|||||||
tags:
|
tags:
|
||||||
- something
|
- something
|
||||||
- fun
|
- fun
|
||||||
|
renderer: v3
|
||||||
|
theme: phb
|
||||||
bleedSize:
|
bleedSize:
|
||||||
top: .125in
|
top: .125in
|
||||||
bottom: .125in
|
bottom: .125in
|
||||||
@@ -516,8 +518,6 @@ columns: '2'
|
|||||||
columnGutter: .125in
|
columnGutter: .125in
|
||||||
license: None
|
license: None
|
||||||
legalAuthors: ''
|
legalAuthors: ''
|
||||||
renderer: v3
|
|
||||||
theme: phb
|
|
||||||
|
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
@@ -554,7 +554,7 @@ brew`);
|
|||||||
width : '8.5in',
|
width : '8.5in',
|
||||||
height : '11in',
|
height : '11in',
|
||||||
},
|
},
|
||||||
}, 'hb');
|
});
|
||||||
|
|
||||||
expect(result).toEqual(`\`\`\`metadata
|
expect(result).toEqual(`\`\`\`metadata
|
||||||
title: some title
|
title: some title
|
||||||
@@ -562,6 +562,8 @@ description: this is a description
|
|||||||
tags:
|
tags:
|
||||||
- something
|
- something
|
||||||
- fun
|
- fun
|
||||||
|
renderer: v3
|
||||||
|
theme: phb
|
||||||
bleedSize:
|
bleedSize:
|
||||||
top: .125in
|
top: .125in
|
||||||
bottom: .125in
|
bottom: .125in
|
||||||
@@ -579,8 +581,6 @@ columns: '2'
|
|||||||
columnGutter: .125in
|
columnGutter: .125in
|
||||||
license: None
|
license: None
|
||||||
legalAuthors: ''
|
legalAuthors: ''
|
||||||
renderer: v3
|
|
||||||
theme: phb
|
|
||||||
|
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
|
|||||||
+3
-13
@@ -15,7 +15,7 @@ import fs from 'fs';
|
|||||||
import dbCheck from './middleware/dbCheck.js';
|
import dbCheck from './middleware/dbCheck.js';
|
||||||
import sanitizeFilename from 'sanitize-filename';
|
import sanitizeFilename from 'sanitize-filename';
|
||||||
import { DEFAULT_BREW } from './brewDefaults.js';
|
import { DEFAULT_BREW } from './brewDefaults.js';
|
||||||
import { splitTextStyleAndMetadata, transformFrontmatter } from '../shared/helpers.js';
|
import { splitTextStyleAndMetadata } from '../shared/helpers.js';
|
||||||
import GoogleActions from './googleActions.js';
|
import GoogleActions from './googleActions.js';
|
||||||
|
|
||||||
import api from './homebrew.api.js';
|
import api from './homebrew.api.js';
|
||||||
@@ -135,19 +135,9 @@ export default function pageRoutes({
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Download brew source page
|
//Download brew source page
|
||||||
app.get('/download/:format/:id', asyncHandler(getBrew('share')), async (req, res)=>{
|
app.get('/download/:id', asyncHandler(getBrew('share')), (req, res)=>{
|
||||||
const markdownFormats = {
|
|
||||||
hb : 'homebrewery',
|
|
||||||
cm : 'commonmark',
|
|
||||||
toml : 'toml',
|
|
||||||
json : 'json'
|
|
||||||
};
|
|
||||||
|
|
||||||
const { brew } = req;
|
const { brew } = req;
|
||||||
|
|
||||||
const lastBrew = brew.text;
|
|
||||||
sanitizeBrew(brew, 'share');
|
sanitizeBrew(brew, 'share');
|
||||||
brew.text = await transformFrontmatter(brew, req.params.format);
|
|
||||||
const prefix = 'HB - ';
|
const prefix = 'HB - ';
|
||||||
|
|
||||||
const encodeRFC3986ValueChars = (str)=>{
|
const encodeRFC3986ValueChars = (str)=>{
|
||||||
@@ -162,7 +152,7 @@ export default function pageRoutes({
|
|||||||
res.set({
|
res.set({
|
||||||
'Cache-Control' : 'no-cache',
|
'Cache-Control' : 'no-cache',
|
||||||
'Content-Type' : 'text/plain',
|
'Content-Type' : 'text/plain',
|
||||||
'Content-Disposition' : `attachment; filename*=UTF-8''${encodeRFC3986ValueChars(fileName)}.${markdownFormats[req.params.format]}.md`
|
'Content-Disposition' : `attachment; filename*=UTF-8''${encodeRFC3986ValueChars(fileName)}.txt`
|
||||||
});
|
});
|
||||||
res.status(200).send(brew.text);
|
res.status(200).send(brew.text);
|
||||||
});
|
});
|
||||||
|
|||||||
+1
-40
@@ -114,44 +114,6 @@ const splitTextStyleAndMetadata = (brew)=>{
|
|||||||
if(typeof brew.tags === 'string') brew.tags = brew.tags ? [brew.tags] : [];
|
if(typeof brew.tags === 'string') brew.tags = brew.tags ? [brew.tags] : [];
|
||||||
};
|
};
|
||||||
|
|
||||||
const transformFrontmatter = (brew, format = 'hb')=>{
|
|
||||||
const markdownFormats = {
|
|
||||||
hb : '```metadata',
|
|
||||||
cm : '---',
|
|
||||||
toml : '+++',
|
|
||||||
json : ';;;'
|
|
||||||
};
|
|
||||||
|
|
||||||
let text = brew.text;
|
|
||||||
if((brew.style !== undefined) && (format == 'hb')) {
|
|
||||||
text = `\`\`\`css\n` +
|
|
||||||
`${brew.style || ''}\n` +
|
|
||||||
`\`\`\`\n\n` +
|
|
||||||
`${text}`;
|
|
||||||
}
|
|
||||||
const metadata = _.pick(brew, ['title', 'description', 'tags']);
|
|
||||||
if(format == 'hb') {
|
|
||||||
const snippetsArray = brewSnippetsToJSON('brew_snippets', brew.snippets, null, false).snippets;
|
|
||||||
metadata.snippets = snippetsArray.length > 0 ? snippetsArray : undefined;
|
|
||||||
metadata.bleedSize = { top: brew?.bleedSize?.top, bottom: brew?.bleedSize?.bottom, inner: brew?.bleedSize?.inner, outer: brew?.bleedSize?.outer };
|
|
||||||
metadata.safetySpace = { top: brew?.safetySpace?.top, bottom: brew?.safetySpace?.bottom, outer: brew?.safetySpace?.outer, inner: brew?.safetySpace?.inner };
|
|
||||||
metadata.trimSize = { width: brew?.trimSize?.width, height: brew?.trimSize?.height };
|
|
||||||
metadata.columns = brew?.columns;
|
|
||||||
metadata.columnGutter = brew?.columnGutter;
|
|
||||||
metadata.license = brew?.license;
|
|
||||||
metadata.legalAuthors = brew?.legalAuthors;
|
|
||||||
metadata.renderer = brew.renderer;
|
|
||||||
metadata.theme = brew.theme;
|
|
||||||
}
|
|
||||||
|
|
||||||
text = `${markdownFormats[format]}\n` +
|
|
||||||
`${format != 'json' ? yaml.dump(metadata) : JSON.stringify(metadata)}\n` +
|
|
||||||
`${markdownFormats[format].slice(0, 3)}\n\n` +
|
|
||||||
`${text}`;
|
|
||||||
|
|
||||||
return text;
|
|
||||||
};
|
|
||||||
|
|
||||||
const printCurrentBrew = async ()=>{
|
const printCurrentBrew = async ()=>{
|
||||||
if(window.typeof !== 'undefined') {
|
if(window.typeof !== 'undefined') {
|
||||||
// fire a custom event for the print cycle
|
// fire a custom event for the print cycle
|
||||||
@@ -268,6 +230,5 @@ export {
|
|||||||
fetchThemeBundle,
|
fetchThemeBundle,
|
||||||
brewSnippetsToJSON,
|
brewSnippetsToJSON,
|
||||||
debugTextMismatch,
|
debugTextMismatch,
|
||||||
yamlSnippetsToText,
|
yamlSnippetsToText
|
||||||
transformFrontmatter
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user