diff --git a/client/homebrew/navbar/print.navitem.jsx b/client/homebrew/navbar/print.navitem.jsx
index b500c24d6..ff2d75d67 100644
--- a/client/homebrew/navbar/print.navitem.jsx
+++ b/client/homebrew/navbar/print.navitem.jsx
@@ -2,12 +2,7 @@ import React, { useState, useEffect } from 'react';
import Nav from './nav.jsx';
import { printCurrentBrew } from '@shared/helpers.js';
-const processShareId = (brew)=>{
-
- return brew.googleId && !brew.stubbed ? brew.googleId + brew.shareId : brew.shareId;
-};
-
-export default ({ currentBrew })=>{
+export default function(){
const [printing, setPrinting] = useState(false);
// 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); };
- if(currentBrew?.shareId) return
-
- export
-
-
- {printing ? 'loading' : 'get PDF'}
-
-
- Markdown
-
-
- Markdown (TOML)
-
-
- Markdown (JSON)
-
-
- Markdown (Homebrewery)
-
- ;
- else return
+ return
{printing ? 'loading' : 'get PDF'}
;
};
diff --git a/client/homebrew/pages/basePages/editPage/editorPage.jsx b/client/homebrew/pages/basePages/editPage/editorPage.jsx
index 718aab442..b9fb34597 100644
--- a/client/homebrew/pages/basePages/editPage/editorPage.jsx
+++ b/client/homebrew/pages/basePages/editPage/editorPage.jsx
@@ -372,7 +372,7 @@ const EditorPage = (props)=>{
{(pageName == 'editPage') && renderAutoSaveButton()}
}
-
+
{(pageName == 'editPage') && }
diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx
index 42a9c4241..002844c2c 100644
--- a/client/homebrew/pages/sharePage/sharePage.jsx
+++ b/client/homebrew/pages/sharePage/sharePage.jsx
@@ -117,7 +117,7 @@ const SharePage = (props)=>{
view
{renderEditLink()}
-
+
download
diff --git a/package.json b/package.json
index 0f76d8fe7..6f1269f97 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,6 @@
"test:api-unit:css": "jest \"server/.*.spec.js\" -t \"Get CSS\" --verbose",
"test:api-unit:notifications": "jest \"server/.*.spec.js\" -t \"Notifications\" --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:dev": "jest --verbose --watch",
"test:basic": "jest tests/markdown/basic.test.js --verbose",
diff --git a/server/homebrew.api.js b/server/homebrew.api.js
index 8702ec42b..aa1f1f84a 100644
--- a/server/homebrew.api.js
+++ b/server/homebrew.api.js
@@ -10,7 +10,7 @@ import asyncHandler from 'express-async-handler';
import { nanoid } from 'nanoid';
import { makePatches, applyPatches, stringifyPatches, parsePatch } from '@sanity/diff-match-patch';
import { md5 } from 'hash-wasm';
-import { splitTextStyleAndMetadata, transformFrontmatter,
+import { splitTextStyleAndMetadata,
brewSnippetsToJSON, debugTextMismatch } from '../shared/helpers.js';
import checkClientVersion from './middleware/check-client-version.js';
import dbCheck from './middleware/dbCheck.js';
@@ -209,7 +209,29 @@ const api = {
return res.status(200).send(brew.style);
},
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)=>{
const tokens = hbfm.marked.lexer(text);
diff --git a/server/homebrew.api.spec.js b/server/homebrew.api.spec.js
index b4337e6fc..8bda5407b 100644
--- a/server/homebrew.api.spec.js
+++ b/server/homebrew.api.spec.js
@@ -499,6 +499,8 @@ description: this is a description
tags:
- something
- fun
+renderer: v3
+theme: phb
bleedSize:
top: .125in
bottom: .125in
@@ -516,8 +518,6 @@ columns: '2'
columnGutter: .125in
license: None
legalAuthors: ''
-renderer: v3
-theme: phb
\`\`\`
@@ -554,7 +554,7 @@ brew`);
width : '8.5in',
height : '11in',
},
- }, 'hb');
+ });
expect(result).toEqual(`\`\`\`metadata
title: some title
@@ -562,6 +562,8 @@ description: this is a description
tags:
- something
- fun
+renderer: v3
+theme: phb
bleedSize:
top: .125in
bottom: .125in
@@ -579,8 +581,6 @@ columns: '2'
columnGutter: .125in
license: None
legalAuthors: ''
-renderer: v3
-theme: phb
\`\`\`
diff --git a/server/page-routes.js b/server/page-routes.js
index 49879391e..85436d2bc 100644
--- a/server/page-routes.js
+++ b/server/page-routes.js
@@ -15,7 +15,7 @@ import fs from 'fs';
import dbCheck from './middleware/dbCheck.js';
import sanitizeFilename from 'sanitize-filename';
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 api from './homebrew.api.js';
@@ -135,19 +135,9 @@ export default function pageRoutes({
});
//Download brew source page
- app.get('/download/:format/:id', asyncHandler(getBrew('share')), async (req, res)=>{
- const markdownFormats = {
- hb : 'homebrewery',
- cm : 'commonmark',
- toml : 'toml',
- json : 'json'
- };
-
+ app.get('/download/:id', asyncHandler(getBrew('share')), (req, res)=>{
const { brew } = req;
-
- const lastBrew = brew.text;
sanitizeBrew(brew, 'share');
- brew.text = await transformFrontmatter(brew, req.params.format);
const prefix = 'HB - ';
const encodeRFC3986ValueChars = (str)=>{
@@ -162,7 +152,7 @@ export default function pageRoutes({
res.set({
'Cache-Control' : 'no-cache',
'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);
});
diff --git a/shared/helpers.js b/shared/helpers.js
index 6d8180ae1..d20687843 100644
--- a/shared/helpers.js
+++ b/shared/helpers.js
@@ -114,44 +114,6 @@ const splitTextStyleAndMetadata = (brew)=>{
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 ()=>{
if(window.typeof !== 'undefined') {
// fire a custom event for the print cycle
@@ -268,6 +230,5 @@ export {
fetchThemeBundle,
brewSnippetsToJSON,
debugTextMismatch,
- yamlSnippetsToText,
- transformFrontmatter
+ yamlSnippetsToText
};