👆literal "MarginNote"
MarginNote - 在 iPad 上提升学习效率,它可能是最合适的 PDF 阅读器
- 如何使用 MarginNote
- MarginNote 提供的工具:批注(摘录)、大纲、思维导图、记忆卡
| // This will animate an "Explosion" whenever you complete a TODO in Roam Research. | |
| // See https://deliber.at/roam for more Roam goodies. | |
| // Put this file under {{[[roam/js]]}} block. I have a page roam/js. Under that, I have {{[[roam/js]]}} and under that the javascript block | |
| document.addEventListener("click", function ( e ) { | |
| const target = e.target; | |
| if ( | |
| target.tagName === "INPUT" && | |
| target.parentElement.className === "check-container" | |
| ) { | |
| if (target.type === "checkbox" && target.checked ) { |
| /* | |
| * credit to Dhrumil Shah (@wandcrafting) and Robert Haisfield (@RobertHaisfield) | |
| * for the original concept which was part of their RoamGames submission | |
| * and can be found at: https://www.figma.com/file/5shwLdUCHxSaPNEO7pazbe/ | |
| * | |
| */ | |
| /* ======= OPTIONS ======== */ | |
| /* note: if you change these, reload the page to see the effect */ |
| FROM nginx:alpine | |
| # https://thepracticalsysadmin.com/templated-nginx-configuration-with-bash-and-docker/ | |
| ENV LISTEN_PORT=80 \ | |
| NGINX_ENV=production \ | |
| SERVER_NAME=_ \ | |
| RESOLVER=8.8.8.8 \ | |
| UPSTREAM_API=api:3000 \ | |
| UPSTREAM_API_PROTO=http \ | |
| WORKDIR=/www \ |
👆literal "MarginNote"
MarginNote - 在 iPad 上提升学习效率,它可能是最合适的 PDF 阅读器
| // https://github.com/alfonsomunozpomer/react-fetch-mock | |
| import React from 'react' | |
| import fetchMock from 'fetch-mock' | |
| import Enzyme from 'enzyme' | |
| import {shallow, mount, render} from 'enzyme' | |
| import Adapter from 'enzyme-adapter-react-16' | |
| Enzyme.configure({ adapter: new Adapter() }) |
| version: "3" | |
| services: | |
| sonarqube: | |
| image: sonarqube | |
| expose: | |
| - 9000 | |
| ports: | |
| - "127.0.0.1:9000:9000" | |
| networks: |
| import React, { PropTypes } from 'react'; | |
| import styled from 'styled-components' | |
| const Wrapper = styled.div` | |
| // styles here that used to be for .test | |
| ` | |
| const Label = styled.label` | |
| // label styles here | |
| ` |
| import mobx from "mobx" | |
| import store from "store" | |
| export default function(_this) { | |
| let firstRun = true | |
| // will run on change | |
| mobx.autorun(() => { | |
| // on load check if there's an existing store on localStorage and extend the store | |
| if (firstRun) { |
| import firebase from 'firebase' | |
| import { filter, map } from 'lodash' | |
| import { makeExecutableSchema } from 'graphql-tools' | |
| firebase.initializeApp({ | |
| databaseURL: 'https://grafire-b1b6e.firebaseio.com', | |
| }) | |
| const mapSnapshotToEntity = snapshot => ({ id: snapshot.key, ...snapshot.val() }) | |
| const mapSnapshotToEntities = snapshot => map(snapshot.val(), (value, id) => ({ id, ...value })) |