mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-01-13 10:52:46 +00:00
Merge pull request #1393 from G-Ambatte/updateSourcePage
Incorporate Brew.Style into Source + Download pages
This commit is contained in:
14
server.js
14
server.js
@@ -11,9 +11,11 @@ const sanitizeFilename = require('sanitize-filename');
|
|||||||
const asyncHandler = require('express-async-handler');
|
const asyncHandler = require('express-async-handler');
|
||||||
const dedent = require('dedent-tabs').default;
|
const dedent = require('dedent-tabs').default;
|
||||||
|
|
||||||
|
const brewAccessTypes = ['edit', 'share', 'raw'];
|
||||||
|
|
||||||
//Get the brew object from the HB database or Google Drive
|
//Get the brew object from the HB database or Google Drive
|
||||||
const getBrewFromId = asyncHandler(async (id, accessType)=>{
|
const getBrewFromId = asyncHandler(async (id, accessType)=>{
|
||||||
if(accessType !== 'edit' && accessType !== 'share')
|
if(!brewAccessTypes.includes(accessType))
|
||||||
throw ('Invalid Access Type when getting brew');
|
throw ('Invalid Access Type when getting brew');
|
||||||
let brew;
|
let brew;
|
||||||
if(id.length > 12) {
|
if(id.length > 12) {
|
||||||
@@ -26,6 +28,10 @@ const getBrewFromId = asyncHandler(async (id, accessType)=>{
|
|||||||
|
|
||||||
brew = sanitizeBrew(brew, accessType === 'edit' ? false : true);
|
brew = sanitizeBrew(brew, accessType === 'edit' ? false : true);
|
||||||
//Split brew.text into text and style
|
//Split brew.text into text and style
|
||||||
|
//unless the Access Type is RAW, in which case return immediately
|
||||||
|
if(accessType == 'raw') {
|
||||||
|
return brew;
|
||||||
|
}
|
||||||
if(brew.text.startsWith('```css')) {
|
if(brew.text.startsWith('```css')) {
|
||||||
const index = brew.text.indexOf('```\n\n');
|
const index = brew.text.indexOf('```\n\n');
|
||||||
brew.style = brew.text.slice(7, index - 1);
|
brew.style = brew.text.slice(7, index - 1);
|
||||||
@@ -36,7 +42,7 @@ const getBrewFromId = asyncHandler(async (id, accessType)=>{
|
|||||||
/* Any CSS here will apply to your document! */
|
/* Any CSS here will apply to your document! */
|
||||||
|
|
||||||
.myExampleClass {
|
.myExampleClass {
|
||||||
color: black;
|
color: black;
|
||||||
}`;
|
}`;
|
||||||
}
|
}
|
||||||
return brew;
|
return brew;
|
||||||
@@ -109,7 +115,7 @@ app.get('/robots.txt', (req, res)=>{
|
|||||||
|
|
||||||
//Source page
|
//Source page
|
||||||
app.get('/source/:id', asyncHandler(async (req, res)=>{
|
app.get('/source/:id', asyncHandler(async (req, res)=>{
|
||||||
const brew = await getBrewFromId(req.params.id, 'share');
|
const brew = await getBrewFromId(req.params.id, 'raw');
|
||||||
|
|
||||||
const replaceStrings = { '&': '&', '<': '<', '>': '>' };
|
const replaceStrings = { '&': '&', '<': '<', '>': '>' };
|
||||||
let text = brew.text;
|
let text = brew.text;
|
||||||
@@ -122,7 +128,7 @@ app.get('/source/:id', asyncHandler(async (req, res)=>{
|
|||||||
|
|
||||||
//Download brew source page
|
//Download brew source page
|
||||||
app.get('/download/:id', asyncHandler(async (req, res)=>{
|
app.get('/download/:id', asyncHandler(async (req, res)=>{
|
||||||
const brew = await getBrewFromId(req.params.id, 'share');
|
const brew = await getBrewFromId(req.params.id, 'raw');
|
||||||
const prefix = 'HB - ';
|
const prefix = 'HB - ';
|
||||||
|
|
||||||
let fileName = sanitizeFilename(`${prefix}${brew.title}`).replaceAll(' ', '');
|
let fileName = sanitizeFilename(`${prefix}${brew.title}`).replaceAll(' ', '');
|
||||||
|
|||||||
Reference in New Issue
Block a user