- Location - The location of the application. Usually just a URL, but the location can contain multiple pieces of information that can be used by an app
- pathname - The "file/directory" portion of the URL, like
invoices/123
- search - The stuff after
?
in a URL like/assignments?showGrades=1
. - query - A parsed version of search, usually an object but not a standard browser feature.
- hash - The
#
portion of the URL. This is not available to servers inrequest.url
so its client only. By default it means which part of the page the user should be scrolled to, but developers use it for various things. - state - Object associated with a location. Think of it like a hidden URL query. It's state you want to keep with a specific location, but you don't want it to be visible in the URL.
- pathname - The "file/directory" portion of the URL, like
Assuming you don't want to statically export
a Sapper app, most of the parts to build a simple SSG for Svelte already exist. The only thing that is missing is the tooling ('only').
However, you don't need a lot to get things going: just a couple of rollup builds and a config file will get you most of the way there. Just some glue.
What follows is a bunch of rambling, half thought out thoughts on how I would probably go about this. Most of the stuff discussed here is stuff I've actually done or half done or am in the process of doing with varying degrees of success. It is something I'll be spending more time on in the future. There are other things I have done, want to do, or think would be a good idea that are not listed here as they don't fall into the scope of a simple SSG.
*Dislaimer: This is how I would build an SSG, this isn't the only way, but I like this approach as there are a bunch of compile-time optimisations you can per
const MarkdownArray = [ | |
// `<Comment />`. | |
{ syntax: /^\/\/(.*)(?:$|\n)/, | |
parser: (key, [children]) => <Comment key={key} children={parseText(children)} /> }, | |
// `<Header />`. | |
{ syntax: /^(#{1,6})( .*)(?:$|\n)/, | |
parser: (key, [open, children]) => <Header key={key} open={open} children={parseText(children)} /> }, |
The instructions in the official getting started are tailored to Windows and AddressBase premium. This is a simple guide for those working on mac using Addressbase Plus.
You should received a zip file with the following folder structure when unzipped;
ABFLGB_CSV
|
+-- data
| |-- AddressBasePlus_FULL_2018-03-19_001.csv
@use 'sass:map'; | |
@use 'variants' as * with ( | |
$breakpoints: ( | |
'small': 640px, | |
'medium': 768px, | |
'large': 1024px, | |
'wide': 1280px, | |
) | |
); |
const firebase = require('firebase'); | |
function getCurrentEventsByStateForAdmins(state) { | |
const db = firebase.firestore(); | |
db.collection('events') | |
.orderBy('expirationDate', 'asc') | |
.where('expirationDate', '>', new Date().toISOString()) | |
.where('state', '==', state) | |
.where('isAdmin', '==', true) |
package main | |
import ( | |
"context" | |
"database/sql" | |
"encoding/base64" | |
"encoding/json" | |
"fmt" | |
"time" |
TypeScript 21 hrs 47 mins ββββββββββββββββββββ 67.1% | |
Vue.js 6 hrs 21 mins ββββββββββββββββββββ 19.6% | |
JSON 2 hrs 10 mins ββββββββββββββββββββ 6.7% | |
JavaScript 46 mins ββββββββββββββββββββ 2.4% |
.embed-responsive { | |
@apply relative; | |
} | |
.embed-responsive::before { | |
@apply block; | |
content: ""; | |
} | |
.embed-responsive .embed-responsive-item, |
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file | |
// for details. All rights reserved. Use of this source code is governed by a | |
// BSD-style license that can be found in the LICENSE file. | |
import 'dart:math' as math; | |
import 'package:flutter/material.dart'; | |
void main() => runApp(MyApp()); | |
class MyApp extends StatelessWidget { |