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
    lawyer_riclawyer_ric
    fengyukongzhoufengyukongzhou
    oyasimioyasimi
    AnnatarHeAnnatarHe

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!