bg-lights

ClippingKK

Read, Reflect, Enlighten: Discover Goodness, Seek Truth, Enlighten Others.

How to use?

Reading books

悲惨世界(上中下)

悲惨世界(上中下)

[法] 维克多·雨果

安娜·卡列尼娜

安娜·卡列尼娜

[俄] 列夫·托尔斯泰

水浒全传校注(全十册)

水浒全传校注(全十册)

施耐庵集撰 罗贯中纂修 王利器校注

故事

故事

[美]罗伯特·麦基

被讨厌的勇气

被讨厌的勇气

岸见一郎 古贺史健

耿济之译卡拉马佐夫兄弟

耿济之译卡拉马佐夫兄弟

[俄] 费奥多尔·陀思妥耶夫斯基

刘擎西方现代思想讲义

刘擎西方现代思想讲义

刘擎

用得上的哲学

用得上的哲学

徐英瑾

User clippings

Readers

Due to privacy issues, users’ book clippings are not displayed

Feature List

我在想:“什么是地狱?”我认为,地狱就是“再也不能爱”这样的痛苦

—— 《卡拉马佐夫兄弟》 [俄]费奥多尔·陀思妥耶夫斯基

AnnatarHe 摘录于

Web Widget

click `copy embed html` in detail page

Modern

Web arch

Arch

The Modern software architecture used in this app
extern crate ck_cli;
use serde_json;
use std::{env, fs};
use std::fs::File;
use std::io::prelude::*;

#[test]
fn parse_en_file() {
    let file_name = "clippings_en";
    let mut current_dir = env::current_dir().unwrap();
    current_dir.push("fixtures");
    let mut src_en_file = current_dir.clone();
    src_en_file.push(format!("{}.txt", file_name));
    let mut f = File::open(src_en_file).unwrap();
    let mut result = String::new();
    f.read_to_string(&mut result).unwrap();

    let mut parsed_data = ck_cli::CKParser::do_parse(&result).unwrap();

    let mut result_en_file = current_dir.clone();
    result_en_file.push(format!("{}.result.json", file_name));
    let mut r = File::open(result_en_file).unwrap();
    let mut expected_json = String::new();
    r.read_to_string(&mut expected_json).unwrap();

    let mut expected_struct: Vec<ck_cli::CKParser::TClippingItem> =
        serde_json::from_str(&expected_json).unwrap();

    parsed_data.sort_by(|a, b| a.content.cmp(&b.content));
    expected_struct.sort_by(|a, b| a.content.cmp(&b.content));

    let ss = serde_json::to_string(&parsed_data).unwrap();
    let dd = serde_json::to_string(&expected_struct).unwrap();

    assert_eq!(ss, dd)
}

Code

Testable, maintainable stable code

Sense

Privacy

iOS Widget

we offer iOS widget to display your clippings in home screen

Privacy

we really care about your privacy. So you have option to hide some clippings you highlighted
Privacy
👍

Comminicate

You can leave some deep comments here and comminicate with each other

Make Reading Greate Aagain

ios
android
wechat mini program
ios
Go!