Merge branch 'master' into process_markdown_in_sqlite

This commit is contained in:
Magnus Hoff 2018-06-13 22:22:08 +02:00
commit a582d3a627
9 changed files with 593 additions and 321 deletions

View file

@ -14,8 +14,8 @@ before_install:
script:
- rustup target add x86_64-unknown-linux-musl
- cargo test --target=x86_64-unknown-linux-musl
- cargo build --release --target=x86_64-unknown-linux-musl
- cargo test --release --target=x86_64-unknown-linux-musl
- strip -s target/x86_64-unknown-linux-musl/release/sausagewiki
- XZ_OPT=-9 tar Jcf sausagewiki.tar.xz -C target/x86_64-unknown-linux-musl/release/ sausagewiki

4
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,4 @@
Thank you for your interest in contributing to Sausagewiki!
The high level design of Sausagewiki is described in [DESIGN.md](DESIGN.md).
Please consider your contribution in light of this document.

821
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -16,21 +16,21 @@ matches = "0.1"
bart = "0.1.4"
bart_derive = "0.1.4"
chrono = "0.4"
clap = "2.26"
diff = "0.1.10"
clap = "2.31"
diff = "0.1"
futures = "0.1"
futures-cpupool = "0.1"
hyper = "0.11"
lazy_static = "0.2"
maplit = "1"
percent-encoding = "1.0.0"
percent-encoding = "1.0"
r2d2 = "0.8"
r2d2-diesel = "1.0.0"
regex = "0.2"
serde = "1.0.0"
serde_derive = "1.0.0"
serde_json = "1.0"
serde_urlencoded = "0.5.0"
serde_urlencoded = "0.5"
slug = "0.1"
titlecase = "0.10"
tokio-io = "0.1"
@ -39,22 +39,22 @@ tokio-service = "0.1"
[dependencies.libsqlite3-sys]
features = ["bundled"]
version = "0.9"
version = "0.9.1"
[dependencies.diesel]
default-features = false
features = ["sqlite", "chrono"]
version = "1.0.0"
version = "1.3.0"
[dependencies.diesel_migrations]
default-features = false
features = ["sqlite"]
version = "1.0.0"
version = "1.3.0"
[dependencies.diesel_infer_schema]
default-features = false
features = ["sqlite"]
version = "1.0.0"
version = "1.3.0"
[dependencies.num]
default-features = false
@ -74,18 +74,11 @@ walkdir = "1"
[build-dependencies.diesel]
default-features = false
features = ["sqlite", "chrono"]
version = "1.0.0"
version = "1.3.0"
[build-dependencies.diesel_migrations]
default-features = false
features = ["sqlite"]
version = "1.0.0"
version = "1.3.0"
[workspace]
[patch.crates-io]
diesel = { git = 'https://github.com/maghoff/diesel', branch = 'sqlite_custom_function' }
diesel_migrations = { git = 'https://github.com/maghoff/diesel', branch = 'sqlite_custom_function' }
diesel_infer_schema = { git = 'https://github.com/maghoff/diesel', branch = 'sqlite_custom_function' }
infer_schema_macros = { git = 'https://github.com/maghoff/diesel', branch = 'sqlite_custom_function' }
migrations_internals = { git = 'https://github.com/maghoff/diesel', branch = 'sqlite_custom_function' }

42
DESIGN.md Normal file
View file

@ -0,0 +1,42 @@
Sausagewiki is a simple, self-contained wiki engine. This is not merely a
description, but in fact design goals. Let's look closer at them.
Sausagewiki is simple
=====================
Sausagewiki is somewhat feature sparse. Of course, implementing features takes
time and effort, but that is not all. Sausagewiki attempts to attain
simplicity in part by being very restrictive with which features to add. Which
features belong in Sausagewiki? That is hard to pin down. There are many
features that could be included in a simple wiki engine, but it is probably
true that including _all_ those features would make the engine no longer
simple. Because of this, Sausagewiki is extremely restrictive with which
features to add.
Sausagewiki is simple to use. The user interface is clean and simple. The wiki
language is small and easy to fully grasp. For example: In order to keep the
wiki syntax small and easy, the inline HTML feature of Markdown has been
excluded. It would make the wiki syntax too large.
The executable has few command line options. It is easy for the system
administrator to get up and running correctly. As a user you can also be sure
that Sausagewiki is the same when using it in different places.
Sausagewiki is self-contained
=============================
The binary does not have runtime dependencies. It does not dynamically link
with any library. (This is true for Linux. For other systems it needs to link
to the C standard library) It does not require any other program during
run time, and it does not require any resource file external to the
Sausagewiki binary.
Sausagewiki has no configuration file. This is sensible only as long as it
also has very few command line options.
The data for a given wiki instance is contained in one file only. This makes
a wiki instance easy to back up, copy and move.
Sausagewiki is a wiki engine
============================
The user experience is geared towards collaborative editing rather than a
division between editors and readers. Sausagewiki aims for a low barrier to
entry; new readers should feel invited to edit the text if appropriate.

View file

@ -5,7 +5,7 @@
#[macro_use] extern crate bart_derive;
#[macro_use] extern crate codegen;
#[macro_use] extern crate diesel_infer_schema;
#[macro_use] #[allow(deprecated)] extern crate diesel_infer_schema;
#[macro_use] extern crate diesel_migrations;
#[macro_use] extern crate diesel;
#[macro_use] extern crate hyper;

View file

@ -49,7 +49,7 @@ fn args<'a>() -> clap::ArgMatches<'a> {
.get_matches()
}
fn core_main() -> Result<(), Box<std::error::Error>> {
fn main() -> Result<(), Box<std::error::Error>> {
let args = args();
const CLAP: &str = "Guaranteed by clap";
@ -67,13 +67,3 @@ fn core_main() -> Result<(), Box<std::error::Error>> {
trust_identity,
)
}
fn main() {
match core_main() {
Ok(()) => (),
Err(err) => {
eprintln!("{:#?}", err);
std::process::exit(1)
}
}
}

View file

@ -115,7 +115,7 @@ impl<'a> SyncState<'a> {
Ok(article_revisions::table
.filter(article_revisions::article_id.eq(article_id))
.filter(article_revisions::latest.eq(true))
.select((article_revisions::slug))
.select(article_revisions::slug)
.first::<String>(self.db_connection)
.optional()?)
}

View file

@ -4,7 +4,7 @@
<title>{{title}}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
{{#base}}<base href="{{.}}">{{/base}}
<link rel=preload href="_assets/amatic-sc-v9-latin-regular.woff" as=font crossorigin>
<link rel=preload href="_assets/amatic-sc-v9-latin-regular.woff" as=font type="font/woff" crossorigin=anonymous>
<link href="_assets/style-{{style_css_checksum()}}.css" rel="stylesheet">
<meta name="generator" content="{{project_name()}} {{version()}}" />
</head>